freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機c語言學習心得-文庫吧資料

2024-10-21 08:15本頁面
  

【正文】 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}。但是鍵盤的是怎么工作的呢?一般有2種方式:(1)掃描法,不斷掃描鍵盤的狀態(tài),送CPU判斷并處理。(這里比如我們10小時快1秒)那么可以通過以下語句if(hour % 10 = 0){sec。燒入單片機看看效果,怎么樣,你第一次精確多了吧。TR0 = 0。count++。TH0 +=(_TH0_TL0_ + 9)/ 256 +(char)CY。TR0 = 0。} }簡單吧,還是有點看不懂哦,那你自己慢慢體會吧,如果你自己能寫個時鐘程序來,那么你的51單片機也就學了80 % 了。}/******************************************************************************************/ void main(void)//主函數(shù) {Timer0Init()。ET0 = 1。TL0 = LO。}}//if}//if}//if }/******************************************************************************************/ void Timer0Init(void)//定時器0 {TMOD = 0x01。min = 0。sec = 0。sec++。//定義靜態(tài)變量countcount++。P2_5 = 0。P1 = SEG_TAB_B[ sec % 10 ]。P2_4 = 0。P1 = SEG_TAB_B[ sec / 10 ]。P2_3 = 0。P1 =S EG_TAB_A[ min % 10 ]。P2_2 = 0。P1 = SEG_TAB_B[ min / 10 ]。P2_1 = 0。P1 = SEG_TAB_A[ hou % 10 ]。P2_0 = 0。P1 = SEG_TAB_B[ hou / 10 ]。j++)。while(a!= 0){for(j = 0。//09數(shù)字 unsigned char SEG_TAB_A[ ] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}。好了,講了那么多,現(xiàn)在我們來寫個時間的程序吧!^_^includedefine HI((6553650000)% 256)define _TH0_TL0_(6553650000)define M//(1000/25)/**********************************************************************************************/ unsigned hou = 12, min = 0, sec = 0。如果在12M的晶體下,?那么我們讓他每50毫秒中斷一次好了!這樣我們就20次搞定一秒的時間了!若為0則表示關(guān)閉!這樣我們,就初始化定時器T0和中斷了,也就是定時器滿5毫秒后,產(chǎn)生一次中斷。//載入低8位初值TR0 = 1。TR0 = 1;這句就是啟動定時器0,開始記數(shù)!哦,還有一點,有些朋友會問,你是65536是哪里來的呢?呵呵你可別忘了:設(shè)置定時器0 工作方式0是16位的(2的16次方是多少,自己算算就知道了)簡單吧?但是如何和中斷一起使用呢?請繼續(xù)看下面的講解!TMOD = 0X01。若在12M晶體下,定時5000微秒,即為5毫秒;但是如果不是在12M下,那又該怎么計算了呢??還記不記得,我們前面講過的機器周期和時鐘周期的概念? ^_^忘了,還是看看前面吧!呵呵!沒事,學習嘛,忘了再翻翻書,看看就可以了!其實上訴的5000 = 1 * C 很顯然C=5000,那么5000 = * C,則C就為5000 / = ? 具體多少,大家自己去算算吧?同理TL0也是一樣的!但是,細心的朋友會發(fā)現(xiàn)網(wǎng)上或者是資料上的TH0,TL0并不是和上面一樣的,而是直接TH0 = 0XEC;TL0 = 0X78 是不是和上面的一樣的,別忘了單片機也是計算機的一種哦。//載入高8位初值TL0 =(655365000)/ 256。Target中填寫晶體的大小,Output中,在Create HEX Files 前打上鉤,點確定。 1Optionsfor 39。,關(guān)閉對話框。) 1右擊Source Group 1Add Files to Group 39。New輸入我們編寫的程序。}}} char _cror_(unsigned char a, unsigned char n)右移也可以實現(xiàn)同樣的效果!這里就不再累述。b = P1。i 8。while(1){b = 0xfe。i++)。while(a!= 0){for(i = 0。(三)上面我們講了如何使LED產(chǎn)生流動,但是你是否發(fā)現(xiàn)一個問題:寫的太冗長了!能不能再簡單點呢?可以!。Delay函數(shù)使單片機空轉(zhuǎn),LED持續(xù)點亮后,再滅,下一個LED亮。}}sbit 定義位變量,unsigned char a 定義無符字符型變量a,以節(jié)省單片機內(nèi)部資源,其有效值為0~255。Delay(250)。P1_6 = 1。P1_6 = 0。Delay(250)。P1_4 = 1。P1_4 = 0。Delay(250)。P1_2 = 1。P1_2 = 0。Delay(250)。P1_0 = 1。}//i 從0加到125,CPU大概就耗時1毫秒}void main(void){while(1){P1_0 = 0。//一個。i 125。void Delay(unsigned char a){unsigned char i。sbit P1_6 = P1 ^ 6。sbit P1_4 = P1 ^ 4。sbit P1_2 = P1 ^ 2。例程如下:includesbit P1_0 = P1 ^ 0。假設(shè)我們有8個LED分別接在P1口的8個引腳上。點亮了幾個LED后,是不是讓我們聯(lián)想到了繁華的街區(qū)上流動的彩燈。如果我們要試著點亮其他的LED,也類似上述語句。那么這樣就能達到了我們預先的要求了。P1_0 = 0。//低電平有效,如果把LED反過來接那么就是高電平有效}}就那么簡單,我們就把接在單片機P1_0上的LED點亮了,當然LED是低電平,才能點亮。//在Keil安裝文件夾中,找到相應(yīng)的文件,比較一下便知!sbit P1_0 = P1 ^ 0。include//頭文件定義。那個單片機究竟有什么功能和作用呢?先不要著急!接下來讓我們點亮一個LED(搞電子的應(yīng)該知道LED是什么吧^_^)我們在單片機最小系統(tǒng)上接個LED,看我們能否點亮它!對了,上面也有好幾次提到過單片機最小系統(tǒng)了,所謂單片機最小系統(tǒng)就是在單片機上接上最少的外圍電路元件讓單片機工作?;蚴悄憧炊速Y料上某個相似的程序,你自己卻寫不出來。你一定會遇到很多很多的問題。這樣的學習效率一定很高!真正的高手是從論壇中泡出來的!有了上述3個條件后,你就可以開始學你的單片機了。如果沒有PC,什么也做不了!!有了PC最好還要可以上網(wǎng),因為如果你沒有可以和你交流單片機的人,遇到自己解決不了的問題,一直都想不通,那么估計你學習單片機的熱情就會隨著時間的推移而慢慢耗盡。我花了160大樣買了個編程器(很不幸的是,這個編程器更本用不了,一燒芯片,芯片就燒壞了)把我給氣的,這個編程器,現(xiàn)在還躺在我的抽屜里呢不過,現(xiàn)在想想,唯一讓我覺得欣慰的是,那個老板每次能解答我的問題,連那種超級幼稚的問題,他也能不嫌麻煩地盡量幫我解答!這點讓我很感動!第三,想學單片機的必需品PC。嘿嘿。我一開始也不知道上面3個的概念和作用,嘿嘿,原本想買個實驗板(不想焊板,因為不可能為了點亮幾個流水燈,而去焊個單片機的最小系統(tǒng))的,可是結(jié)果,確和我想的正好相反,人家出售的是編程器。但是對于電子開發(fā)人員來說,作用并不是很大(3)仿真器仿真器是直接把HEX或者BIN文件暫時放在一個芯片里,再通過這個芯片的引腳連接到實驗板或者系統(tǒng)上工作。(2)實驗板實驗板是專為初學者根據(jù)某些要求而特做的板,一般上面就有一個單片機的最小系統(tǒng),使用者只需寫好程序,燒好芯片,放到上面加以驗證的這么一個工具。于是,我最終還是決定學C51,畢竟C51和我們課上講的C語言,有些類似,編程的思想可以說是相通的。當你明白了單片機是這么一回事的時候,顯而易見的問題出來了:我要選擇那種語言為單片機編寫程序呢?這個問題,困擾了我好久。嘿嘿,你可千萬別笑,有些大四畢業(yè)的人也同樣不知道單片機長成什么樣子呢!而我對單片機的癡迷更是常人所不能想象的地步,大二的期末考試,我全放棄了復習,每當室友拿著書在埋頭復習的時候,我卻捧著自己從圖書館借的單片機書在那看,雖然有很多不懂,但是我還是堅持了下來,當時我就想過,為了單片機值不值得我這樣去付出,或許這也是在一些三流學校的好處吧,考試掛科后,明年開學交上幾十元一門的補考費,應(yīng)該大部分都能過了。但是你錯了,我只是把我個人學習的經(jīng)歷講述一遍而已,僅僅對那些想學習單片機,但又找不到好方法或者途徑的朋友,提供一個幫助,使他們在學習過程中,盡量少走些彎路而已!首先,你必須有學習單片機的熱情,不是說今天去圖書館看了一個下午關(guān)于單片機的書,而明天玩上半天,后天就不知道那個本書在講什么東西了。不過這一切都沒什么關(guān)系,因為我(當然也包括任何人)都是從不知道轉(zhuǎn)變成知道的,再轉(zhuǎn)變成精通的。簡稱為:單片微型計算機或單片機(Single Chip Computer)。不過有些朋友可能只聽說他叫單片機,他的全稱是什么也許并不太清楚,更不用說他的英文全稱和簡稱了。 指向結(jié)構(gòu)體:如果指針p指向結(jié)構(gòu)體數(shù)組msg1[0]的首地址,則:(1)(*p).flg與pflg和msg1[0].flg三者完全等價,即(*p).成員名 與p成員名 以及 結(jié)構(gòu)體數(shù)組元素成員名三種形式是等價的;(2)p+1:使指針指向結(jié)構(gòu)數(shù)組msg1[0]的下一個元素msg1[1]的首地址;(3)由于指向運算符的優(yōu)先級高于自加運算符++,則:(++p)flg:先使p自加1指向msg1[1]的地址,再指向msg1[1]的flg成員值;(p++)flg:先得到msg1[0].flg的值,再使p自加1指向msg1[1]的首地址; pflg++:先得到msg1[0].flg的值,使用完后再使msg1[0].flg的值加1; ++pflg:先將msg1[0].flg的值加1,再使用。 a[1][3]等價,指向a[1][3]的地址;*(*(p+1)+3)與a[1][3]等價,表示a[1][3]的值; 一般的:對于數(shù)組a[i][j]來講,有*(p+i)+j相當于amp。(注意:列數(shù)相同(第二維相同))使指針變量指向數(shù)組:p = a。 指向多維數(shù)組:定義一個二維數(shù)組:a[3][4]。用數(shù)組找元素必須每次計算元素的地址,效率不高;而用指針則直接指向某個元素,不必每次計算地址,可以大大的提高運算效率。(1)app+I 或a+i就是數(shù)組元素a[i]的地址;(2)*(app+i)或 *(a+i)就是元素a[i]中的內(nèi)容;(3)指針變量也可以帶下表,即app[i]與*(app+i)等價。或 app = amp。則有兩種方法:app = amp。 指向數(shù)組的指針變量的定義,應(yīng)用,賦值:int a[10]。a與*ap等價,即*amp。a:由于amp。*ap與amp。
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1