色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 從定時器開始說中斷

          從定時器開始說中斷

          作者: 時間:2013-04-10 來源:網(wǎng)絡(luò) 收藏

          #i nclude "reg51.h"

          void initTimer(void)

          {

          TMOD=0x1;

          TH0=0xd8;

          TL0=0xf0;

          }

          void timer0(void) interrupt 1

          {

          TH0=0xd8;

          TL0=0xf0;

          //add your code here.

          }

          void main(void)

          {

          initTimer();

          TR0=1;

          ET0=1;

          EA=1;

          while(1);

          }

          上面的代碼是12M晶振下定時10000US的程序,也就是10MS發(fā)生一次中斷。initTimer()是初始化函數(shù),設(shè)置定時值和中斷的。

          10000US在12M晶振下就是100000個機器周期了,65536-100000=55536=D8F0(十六進制),所以上面就是TH0=0xd8;TL0=0xf0;

          void timer0(void) interrupt 1就是0,我們不需要理會匯編的中斷先,只需要知道當(dāng)中斷來臨的時候,程序就自動跳到timer0(void)這個函數(shù)運行了,運行完后就會回到原來中斷處繼續(xù)執(zhí)行原先的程序。

          interrupt是C51中的關(guān)鍵字,后面跟有interrupt的函數(shù)都是,那么對應(yīng)哪個中斷呢?請大家參考:一開始為大家介紹的 Keil Software –Cx51 編譯器用戶手冊 中文完整版,(名字太長了,以后叫KEIL手冊)的第125頁。

          中斷號 中斷地址

          0 0003H

          1 000BH

          2 0013H

          3 001BH

          4 0023H

          5 002BH

          6 0033H

          7 003BH

          8 0043H

          9 004BH

          10 0053H

          11 005BH

          12 0063H



          評論


          相關(guān)推薦

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

          關(guān)閉