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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51學(xué)習(xí)之定時器中斷

          51學(xué)習(xí)之定時器中斷

          作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
          定時器中斷可用兩種方式處理:查詢和進入中斷處理。
          1.查詢
          void Init_T0 (void) 定時器初始化
          {
          TMOD = 0x01;
          TH0 = (65536-65000) /256;
          TL0 = (65536-65000) %6;
          EA = 1;
          ET0 = 1;
          TR0 = 1;
          }
          void Main() 主函數(shù)
          { Init_T0 ();
          Speak1 =1;
          if(TF0==1) 查詢中斷標(biāo)志
          {
          Speak1=~Speak1;
          //TH0 = (65536-65000) /256;
          //TL0 = (65536-65000) %6;
          TF0=0;
          }
          }
          2.進入中斷處理
          void Init_T0 (void) 定時器初始化
          {
          TMOD = 0x01;
          TH0 = (65536-65000) /256;
          TL0 = (65536-65000) %6;
          EA = 1;
          ET0 = 1;
          TR0 = 1;
          }
          void Time0_Int() interrupt 1 中斷處理函數(shù)
          {
          Speak1=~Speak1;
          //TH0 = (65536-65000) /256;
          //TL0 = (65536-65000) %6;
          }
          void Main() 主函數(shù)
          {
          Init_T0 ();
          Speak1 =1;
          while(1); 等待中斷
          }
          對于查詢方式,一定要手動清楚中斷標(biāo)志。
          上面2段程序,我屏蔽了,中斷時重新裝計數(shù)初值的語句,程序都可正常運行,所以我認(rèn)為無論對于那種處理方式,重裝初值都不必要。
          初始化時,可定義輸出口的初始狀態(tài)。而在處理中斷時,一定要用取反語句。手動置0或1,程序不能正常運行。
          對于方式2,開始main中沒寫最后的while(1),程序不正常運行。
          上述定時最大為65535,約65ms.如果計時大于此,可在中斷中處理。
          程序如下:
          int a;
          void Time0_Int() interrupt 1
          {
          if(a++==20)
          { a=0;
          Speak1=~Speak1;
          }
          }
          呵呵,在寫上面這一小段時,開始沒寫a=0,燈一直亮,后來參考下,發(fā)現(xiàn)不清0.a一直變大,程序只能執(zhí)行一次。



          關(guān)鍵詞: 51學(xué)習(xí)定時器中

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();