<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 學習51單片機有感

          學習51單片機有感

          作者: 時間:2016-11-19 來源:網(wǎng)絡 收藏
          這里有專門的一個

          定義特殊功能寄存器位變量。

          本文引用地址:http://www.ex-cimer.com/article/201611/318120.htm

            bit和sbit都是C51擴展的變量類型。

          典型應用是:sbit P0_0=P0^0;//即定義P0_0為P0口的第1位,以便進行位操作。

          利用異或操作取位,進行,,,,,,

          在設置定時器的時候發(fā)現(xiàn)下列的代碼

          THO = (65536 - 5000)/256;//賦值高8位

          TLO = (65536 - 5000)%256;//賦值低8位

          你說這與直接將65536 - 5000 賦予寄存器 有什么區(qū)別,這樣有什么好處?怎么有種脫了褲子放屁的感覺,----后來了解到原來是兩個8位寄存器合成的,怪不得要分別賦值。

          //產(chǎn)生 3:1的脈沖 燈亮1s 熄滅3s  交替相間 #include           //  包含51單片機寄存器定義的頭文件unsigned int beforeFlag = 0,afterFlag = 0;sbit Signal = P1^1;void beforeHalf(void) interrupt 1 using 1{beforeFlag++;TR1 = 1;//open oppsiteTR0 = 0;// close myselfTL0 = 0x06;//250 us}void afterHalf(void) interrupt 3 using 2 //這里的中斷號不能亂寫哦,0-4..。后面都是空的沒用{afterFlag++;TR0 = 1;//open oppsiteTR1 = 0;// close myselfTH0 = 0x06;//250 us}void main(void){Signal = 1;TMOD = 0x03;//我們在這里使用兩個定時器形如TMOD = 0x11并不可行。這樣的話,中斷從未被激活。調(diào)試器里的statue 一直增加,(本子上)》》》?????EA = 1;ET0 = 1;ET1 = 1;TH0 = 0x6;TL0 = 0x6;TR0 = 1;TR1 = 1;//這兩句賦值后 TL和TH會發(fā)生改變 (因為是片內(nèi)定時,所以一打開便開始計時)while(1){if(beforeFlag == 12000)//3s{Signal = ~Signal;//在這里我們發(fā)現(xiàn)使用Signal = 0;然后下面的使用 Signal = 1并不可行,調(diào)試發(fā)現(xiàn)一個beforeFlag++的定時器 一直都未關過(雖然上面有關的語句TR1 = 0;),這是為什么呢?(本子上測試通過,用的是3版本的)beforeFlag = 0;}if(afterFlag == 4000)//1s{Signal = ~Signal;afterFlag = 0;}}return ;}


          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();