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

正文內(nèi)容

(1小時學(xué)會c語言51單片機)c語言入門教程-文庫吧資料

2025-07-01 04:49本頁面
  

【正文】 是不是和上面的一樣的,別忘了單片機也是計算機的一種哦。若在12M晶體下,定時5000微秒,即為5毫秒;但是如果不是在12M下,那又該怎么計算 了呢??還記不記得,我們前面講過的機器周期和時鐘周期的概念? ^_^忘了,還是看看前面吧!呵呵!沒事,學(xué)習(xí)嘛,忘 了再翻翻書,看看就可以了!其實上訴的5000 = 1 * C 很顯然C=5000,那么5000 = TH0 = (65536 5000) / 256。 還需要轉(zhuǎn)換一下! TMOD= 0X01;//至于為什么是0X01,大家看:我們選擇的是定時器0方式0, 所以T/C1全為0,而T/C0的M1為0。 說了一大堆,感到有點困惑了吧。 若M1=1;M0=0則為方式2,自動裝載8位 定時/記數(shù)器。M1和M0工作方 式的選擇:若M1=0;M0=0 則為方式0:13位定時/記數(shù)器。 C/T就是counter(記數(shù)器)和timer(定時器)的選擇位,若值為1,則作計數(shù)器用。 | T/C0 | |T/C1 __________| | __________| |_________|_________ GATE C/T M1 M0 M0 M1GATE C/T_ _其中TMOD為T/C方式控制寄存器: D7 D6 D5 D4 D3 D2 D1 D0 //載入低8位初值 TR0 = 1。//設(shè)置定時器0 工作方式0 TH0 = (65536 5000) / 256。有些朋友一定會問:定時器如何啟動?風(fēng)扇的定時器,相信大家一定都用過吧!但是單片機的定時器, 該如何啟動呢?總不該也用手一擰定時器吧! ^_^ 當(dāng)然不是,我們只要給單片機一些指令,就可以啟動定時器了!下面我們就定時器0,來說 說怎么啟動定時器0。不過不要緊,我們繼續(xù)往下看,下面我們來講講單片機的定時器是什 么?如何工作的?定時器,大家從字面上就可以看出其大概的意思吧?簡單的說:就是起定時作用!也就是讓單片機計數(shù)。 51系列 的單片機共有5個中斷源,分別為:外中斷0 、定時器T0中斷、外中斷定時器T1中斷、串口中斷。單片機當(dāng)然不會看電視了,也不會接電話了 ! ^_^ 但是,類 比一下:比如單片機正在執(zhí)行某個任務(wù),突然要有更重要的事件,要求單片機響應(yīng),單片機就會應(yīng)答響應(yīng),去執(zhí)行更為重要的任務(wù)(中斷處理 ),原來的任務(wù)就繼續(xù)等待(現(xiàn)場的保護)。 但是這個好象和單片機沒什么聯(lián)系呀?有的朋友或許會這樣疑問。這就是個中斷的例子,中斷是由電話引起了,你跑過去就是響應(yīng)中斷,接電話就是中斷的處理!接完電話后,接續(xù)看電視, 即恢復(fù)中斷,等待下個中斷的到來! 矣...怎么一直顯示12:00:00,難道是時鐘沒有啟動?還是,另外的原因呢? 哦,原來是3個變量 sec,min,hour初始化后,其值一直沒有改變!那我們怎么樣才能讓他改變數(shù)值呢?有的朋友一定會這么認(rèn)為:讓秒個位延時1秒,后加1, 而秒十位延時10秒后,再加1,一直加到6,分個位加1,依次類推...這樣的想法是不錯,但是朋友你有沒有想過C語言的一般延時(除非你 把他放到中斷里)極不精確!這樣累計下來,一天24小時的誤差,肯定很大很大,我曾經(jīng)也用延時的方法寫過時鐘,1個小時誤差8秒,那是 個什么概念!一天24小時就要24*8=192,約為3分鐘,一個月就是10分鐘...有沒有其他的方法可以改進些呢?有!這里就要涉及到單片機中 另一個比較重要的核心部分:單片機的中斷和定時器的運用!想寫出比較精確(這里說的只的相對前面的做法而言比較精確而已,如果要做 更加精確的時鐘,用時鐘芯片比較好點,常用的有DS12887和DS1302等)的時鐘程序,就一定要調(diào)用中斷和定時器。 while( 1 ) { disp( )。 } void main(void) { Delay(15)。 P0 = SEG_TAB[ hour / 10 ]。 Delay(15)。 P0 = SEG_TAB[ hour % 10 ]。 Delay(15)。 P0 = SEG_TAB[ min / 10 ]。 Delay(15)。 P0 = SEG_TAB[ min % 10 ]。 Delay(15)。 P0 = SEG_TAB[ sec / 10 ]。 Delay(15)。 } } void disp(void) { P0 = SEG_TAB[ sec % 10 ]。 i 125。 //09數(shù)字 void Delay(unsigned char a) { unsigned char i。 上面只顯示了一個數(shù)碼管的數(shù)字09,但是怎么樣要讓他顯示6個數(shù)字呢?這樣我們就可以做個時鐘出來玩玩了!還記不記得我們前面 講過的P2口的位選作用!嘿嘿,沒忘記就好! include unsigned char hour = 12, min = 0, sec = 0。 是不是顯示從09,跳動顯示,你的心是不是也跟著一起跳呀,離我們的目標(biāo)又邁進了一步!不錯,繼續(xù)努力! } } } P2 = 0X01。 //取SEG_TAB數(shù)組中的值 i 10。 } } void main(void) { unsigned char i。 i 125。 //09數(shù)字 void Delay(unsigned int a) //unsigned int 定義為無符整形,取值范圍為032768 { unsigned char i。 接上面所講的,我們先來做個簡單的實驗:在一個數(shù)碼管上輪流顯示09這10個數(shù)字。但是今天 你也可以把他做出來了,是不是覺得自己很有成就感呢!呵呵! ^_^ 相信大家一定見過數(shù)字時鐘,教學(xué)樓大廳一定有吧。 } } (五) Delay(20)。P2 = 0x20。//6的碼段 P0 = 0X00。//選通一位,或者P2_4 = 1。 P0 = 0x6d。 Delay(20)。//4的碼段 P2 = 0x08。 P0 = 0X00。 //選通一位,或者P2_2 = 1。 P0 = 0x4f。 Delay(20)。//2的碼段 P2 = 0x02。//延時約20毫秒 P0 = 0X00。//選通一位,或者P2_0 = 1。 } } void main(void) { while(1) { P0 = 0x06。 i 125。看你自己可以搞定不?你自己先試著寫寫看咯... include void Delay(unsigned char a) { unsigned char i。記住,在任何某一時刻,有且只有一個數(shù)碼管能發(fā)光。 說著說著,跑了這么遠(yuǎn)了...還是回到原來的話題,如果我們把位選的P2也看作上面的“煙”一劃而過,那么我們看到的是不是6個一起亮 或一起滅了! ^_^ 哈哈,原來如此... 一個機器周期12*1/12 = 1微妙。而1個機器周期包括12個時鐘周期。 這里再說說51單片機的機器周期和時鐘周期等概念。 嘿嘿,問你個問題?黑夜里,拿著一支煙,在你面前快速的晃動,你會發(fā)現(xiàn)什么樣的現(xiàn)象?是不是原本不連續(xù)的點變成了一條看上去連 續(xù)的曲線或者直線!再回過頭來,仔細(xì)想想我們的數(shù)碼管!原理是一樣的,你可別忘了,我們的單片機可是一個計算機哦,計算機的運算速 度,大家可想而知吧! 但是,細(xì)心的朋友,會問這樣的問題:P2位選,是讓數(shù)碼管一個一個亮 的,那還是不能控制6個一起亮或滅嘛??? ^_^ 想想好象是對的哦?怎么辦...難道錯了? 但是如果我們采用動態(tài)掃描的方法,比如顯示6個數(shù)碼管,硬件 連接可以這樣解決:。但是如果我們采用動態(tài)掃 描顯示,那么就可以解決上面的問題,即可以顯示多個數(shù)碼管了。 說到這里,我們來講講數(shù)碼管的顯示方式,可分為兩種:動態(tài)掃描和靜態(tài)顯示。 看到這里,想必大家一定可以把0F顯示出來了吧!但是如果要你顯示兩位數(shù),三位數(shù)呢?或許,有的朋友會這么想:在P0口上接一個 數(shù)碼管,再在P1口上接個數(shù)碼管!但是,如果要顯示4位、5位的數(shù)字呢?那豈不是一塊AT8951都接不過來!難到就不能接4位或5位以上的嗎? 肯定不是的! } P0 = 0X00。 P0 = 0X06。//延時 P0 = 0X00。 } } void main(void) { P0 = 0X3F。 i 125。 include void Delay(unsigned char a) { unsigned char i。其他的數(shù)字或字符,也同理可以得到。那么比如:P0 = 0X3F;則顯示為數(shù)字 0 。 ,注意:P0口需接上拉電阻。這樣我們只 要給某個口,賦一個值,則相應(yīng)的LED段就被點亮,但是在硬件連接上要注意了:單片機可能不能直接驅(qū)動LED,所以我們可以通過控制三級管 的導(dǎo)通或截止,
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1