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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)內(nèi)部定時/計數(shù)器和中斷系統(tǒng)

          單片機(jī)內(nèi)部定時/計數(shù)器和中斷系統(tǒng)

          作者: 時間:2012-08-08 來源:網(wǎng)絡(luò) 收藏

          三、程序設(shè)計

          定時器0 應(yīng)用測試程序( 控制D1 閃爍)。

          #includeAT89X52.h> (1)

          #define led P0_0 (2)

          unsigned char count=0; (3)

          void main(void) (4)

          {

          TMOD=0X01; (5)

          TH0=(65536-50000)/256; (6)

          TL0=(65536-50000)%256; (7)

          EA=1; (8)

          ET0=1; (9)

          TR0=1; (10)

          PT0=1; (11)

          while(1) ; (12)

          }

          void timer0(void) interrupt 1 (13)

          {

          TH0=(65536-50000)/256; (14)

          TL0=(65536-50000)%256; (15)

          count++; (16)

          if(count==10) (17)

          {

          count=0; (18)

          led=!led; (19)

          }

          }

          1. 程序詳細(xì)說明:

          (1)頭文件包含。程序接下來調(diào)用的P0_0 就是該頭文件中定義好的一個寄存器地址。在對內(nèi)部的寄存器操作之前,應(yīng)申明其來處,有興趣的讀者可以看看AT89X52.h 文件中的內(nèi)容。

          (2)宏定義led,便于直觀理解也便于程序修改,將P0_0 口命名為led,這樣在程序中就可以用led代替P0_0 口進(jìn)行操作。

          (3)定義一個8 位的全局變量。

          (4)主函數(shù)入口。主函數(shù)不傳遞參數(shù)也不返回值。

          (5)設(shè)定定時器0 工作在模式1,為16 位的。

          (6)定時器高8 位賦初值。對256 取整。

          (7)定時器低8 位賦初值。對256 取余。

          (8)開總中斷。

          (9)開定時器0 中斷。

          (10)定時器0 啟動,開始計數(shù)。

          (11)設(shè)置開定時器0 中斷為優(yōu)先中斷。

          (12)死循環(huán),等待中斷。

          (13)定時器0 中斷服務(wù)函數(shù)入口。

          (14)定時器高8 位賦初值。對256 取整。

          (15)定時器低8 位賦初值。對256 取余。

          (16)對變量count 進(jìn)行加1 操作。

          (17)如果count 增長到10。

          (18)count 變量清0。

          (19)led 輸出取反。

          塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理


          評論


          相關(guān)推薦

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

          關(guān)閉