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

正文內(nèi)容

[1小時(shí)學(xué)會(huì)c語言51單片機(jī)]c語言入門教程(文件)

2025-07-14 01:31 上一頁面

下一頁面
 

【正文】 ^_^忘了,還是看看前面吧!呵呵!沒事,學(xué)習(xí)嘛,忘 了再翻翻書,看看就可以了!其實(shí)上訴的5000 = 1 * C 很顯然C=5000,那么5000 = 工作方式0是16位的(2的16次方是多少,自己算算就知道了)簡(jiǎn)單吧?但是如何和中斷一起使用呢?請(qǐng)繼續(xù)看下面的講解! TMOD = 0X01。 爽 unsigned char SEG_TAB_B[ ] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 } } /*********************************************************************************************/ void Disp(void)//數(shù)碼管顯示 { P2_0 = 1。Delay(5)。 Delay(5)。 P2_4 = 1。Delay(5)。 P2_5 = 1。Delay(5)。 } /********************************************************************************************/ void IsrTimer0(void) interrupt 1 using 1 if(count == M) { count = 0。 if(min == 60) { if(hou == 24) hou = 0。 TH0 = HI。 EA = 1。 中斷和 定時(shí)/記數(shù)器器,是個(gè)很重要的東西,幾乎用到單片機(jī)的地方都會(huì)涉及到中斷和定時(shí)!所以大家要好好掌握哦! ^_^ 哈哈,趕緊編譯HEX文件,搭好硬件,燒入單片機(jī),上電看看效果先!呵呵,現(xiàn)在你應(yīng)該有成就感了吧,想不到一個(gè)時(shí)鐘居然那么 簡(jiǎn)單, 嘿嘿!但是問題來了!時(shí)鐘雖然做出來了,但是他的精度怎么樣呢?一兩個(gè)小時(shí),或許看不出什么誤差,但是一天或者一年呢? 暈,我的天呀,要是按年來算的話,那這個(gè)時(shí)鐘根本沒有實(shí)用價(jià)值!人家都說用C寫不出,精度高的時(shí)鐘程序來的!??!是不是有點(diǎn)后悔 了,去學(xué)匯編吧!但是既然選擇了C,那么就不要后悔!嘿嘿,想想C的高級(jí)語言,怎么會(huì)輸給匯編呢 ^_^ 呵呵!看下面這段代碼: static unsigned char count = 0。 TR0 = 1。 在中斷處理服務(wù)程序中,我們加入上面的代碼。但是還是有誤差!郁悶!為什么呢?那是硬件造成的誤差,我們可以用軟件來彌補(bǔ)!我們先 把時(shí)鐘點(diǎn)亮,讓他走上幾個(gè)小時(shí)或者是幾天,看看到底誤差是多少!取個(gè)平均值。 這回我們來講講鍵盤,大家肯定見過銀行柜員機(jī)吧,取錢輸入密碼就要用到鍵盤,超市購(gòu)物取回寄存物品要輸入密碼,還有你現(xiàn)在在 用的PC機(jī)的鍵盤。 現(xiàn)在我們?cè)赑1口接個(gè)4*4的鍵盤,--,再接4個(gè)4K7的上拉電阻至VCC。 i=t。i255。 if(P1!=0xf0) return 1。 while(1) { { j++) s=P1amp。switch(s) case 0xe0: key=4*j+0。 case 0xb0: key=4*j+2。 default: break。 0xf0)==0xf0) Delayt(50)。 col = P1amp。 col = colamp。 return(key_val(row|col))。 while( 1 ) { if(P1_0 == 0) { } switch( b ) 為什么?我的按鍵不是可以正常工作嗎? EX1: unsigned char Delaytime。 //...add your other code here } Delay函數(shù)具體延時(shí)多長(zhǎng)時(shí)間,就要看你設(shè)定的T0定時(shí)器中斷和Delaytime的乘積,比如你的定時(shí)器中斷為50MS,Delaytime為20的話,那么50MS*20=1S。 if(new_value amp。 //...add your other code here. } old_value = new_value。其實(shí)51也就那么簡(jiǎn)單,真的很希望大家看完這篇文字以后,很自信的說,51單片機(jī)也已經(jīng)入門。 當(dāng)然單片機(jī)和外部其他的芯片還有很多,比如數(shù)字溫度傳感器DS18B20,實(shí)時(shí)時(shí)鐘芯片DS1302,還有比如訪問AT24CXX的EEPROM存儲(chǔ)器等,更多的電路,還要靠大家在平時(shí)的學(xué)習(xí)過程當(dāng)中,慢慢掌握。時(shí)隔13個(gè)月之久再來繼續(xù)寫這些東西,沒有以前的激_情和熱情,所以就草草了事結(jié)尾,希望大家不要在背地里罵我哦,^_^。 // ...add your other code } 當(dāng)然在實(shí)際過程當(dāng)中,并不是如此簡(jiǎn)單簡(jiǎn)潔的,還希望大家能夠舉一反三哦... ^_^。 !old_value)//識(shí)別按鍵。//定義按鍵的I/O void P_key(void) { char new_value,old_value。//等在這里,直到Delaytime為0。 解決方法大致有如下2種: ,在中斷里查詢延時(shí)的標(biāo)志位。再看Delay函數(shù),完全讓CPU執(zhí)行(;空語句),所以在做大的產(chǎn)品或者代碼時(shí),這個(gè)是非常耗費(fèi)單片機(jī)內(nèi)部資源的。 請(qǐng)看這里: if(P1_0 == 0) { Delay(10)。 case 2: P2_1 = 0xfd。 case 1: P2_0 = 0xFE。 { //等待鍵松開 } b = 0。 if( b == N )//N為鍵的功能數(shù)目 { Delay(10)。 0xF0。0xF0。 P1 = 0xF0。 P0=tab[key]。 P1=k。 case 0x70: key=4*j+3。 case 0xd0: key=4*j+1。 { {for(j=0。 P1=0xfe。 if(pkey()==1) return 0。 } else } /******************************************************************************/ bit pkey(void)//判斷鍵的否被按下,通過返回值確定 { P1=0xf0。 //0到F的16個(gè)鍵植 /******************************************************************************/ void Delayt(unsigned char t)//延時(shí)函數(shù) { unsigned char i。 如果鍵盤數(shù)目一 大的話,顯然不適合(2)線反轉(zhuǎn)法,通過行列狀態(tài)的改變來判斷有無鍵被按下! } 來彌補(bǔ)!這樣可能會(huì)出現(xiàn)這樣的現(xiàn)象:秒直接跳變!我們可以再通過細(xì)分來實(shí)現(xiàn),不要10小時(shí)那么大,小些的就行!具體的操作還是留給 朋友們吧! (七) 先關(guān)閉定時(shí)器T0,然后重新給TH0和TL0 賦值,再開啟 TR0 = 1。 TL0 += (_TH0_TL0_ + 9) % 256。 while(1) { Disp()。 TR0 = 1。 { hou++。if(sec == 60) { min++。 //定時(shí)50ms { static unsigned char count = 0。Delay(5)。 P2_3 = 1。Delay(5)。 P2_2 = 1。 P2_1 = 1。 j 125。// /*********************************************************************************************/ void Delay(unsigned char a)//延時(shí)程序a*1MS { unsigned char j。 產(chǎn)生中斷后,我們?cè)趺刺幚砟??嘿嘿!仔?xì)想想? ^_^ 每次中斷后,我們可以讓一個(gè)變量自加1,那么200次中斷后,不就是1秒的時(shí)間了嗎?比起上面我們說的延時(shí)來出來是不是更加精確多了呢? 那是肯定的!但是想想1秒種的時(shí)間就讓單片機(jī)產(chǎn)生那么多次的中斷,單片機(jī)會(huì)不會(huì)累著呢?恩,那么不好。EA = 1;//開總中斷 ET0 = 1;//開定時(shí)器中斷。//啟動(dòng)定時(shí)器 //載入高8位初值 TL0 = (65536 5000) % 256。 TR0 = 1;這句就是啟動(dòng)定時(shí)器0,開始記數(shù)!哦,還有一點(diǎn),有些朋友會(huì)問,你是65536是哪里來的呢?呵呵你可別忘了:設(shè)置定時(shí)器0 * C,則C就為5000 / = ? 具體多少,大家自己去算算吧?同理TL0也是一樣的! 但是,細(xì)
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1