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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 定時計數(shù)器T0作定時應(yīng)用技術(shù)(二)

          定時計數(shù)器T0作定時應(yīng)用技術(shù)(二)

          作者: 時間:2011-02-27 來源:網(wǎng)絡(luò) 收藏

          1. 實驗任務(wù)

          AT89S51的定時/計數(shù)器T0產(chǎn)生2秒鐘的定時,每當(dāng)2秒定時到來時,更換指示燈閃爍,每個指示閃爍的頻率為0.2秒,也就是說,開始L1指示燈以0.2秒的速率閃爍,當(dāng)2秒定時到來之后,L2開始以0.2秒的速率閃爍,如此循環(huán)下去。0.2秒的閃爍速率也由定時/計數(shù)器T0來完成。

          2. 電路原理圖

          4.16.1

          3. 系統(tǒng)板硬件連線

          (1. 把“系統(tǒng)”區(qū)域中的P1.0P1.3用導(dǎo)線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的L1L4

          4. 程序設(shè)計內(nèi)容

          (1. 由于采用中斷方式來完成,因此,對于中斷源必須它的中斷入口地址,對于定時/計數(shù)器T0來說,中斷入口地址為000BH,因此在中斷入口地方加入長跳轉(zhuǎn)指令來執(zhí)行中斷服務(wù)程序。書寫匯編源程序格式如下所示:

          ORG 00H

          LJMP START

          ORG 0BH ;定時/計數(shù)器T0中斷入口地址

          LJMP INT_T0

          START: NOP ;主程序開始

          .

          .

          INT_T0: PUSH ACC ;定時/計數(shù)器T0中斷服務(wù)程序

          PUSH PSW

          .

          .

          POP PSW

          POP ACC

          RETI ;中斷服務(wù)程序返回

          END

          (2. 定時2秒,采用16位定時50ms,共定時40次才可達(dá)到2秒,每50ms產(chǎn)生一中斷,定時的40次數(shù)在中斷服務(wù)程序中完成,同樣0.2秒的定時,需要4次才可達(dá)到0.2秒。對于中斷程序,在主程序中要對中斷開中斷。

          (3. 由于每次2秒定時到時,L1L4要交替閃爍。采用ID來號來識別。當(dāng)ID0時,L1在閃爍,當(dāng)ID1時,L2在閃爍;當(dāng)ID2時,L3在閃爍;當(dāng)ID3時,L4在閃爍

          5. 程序框圖

          T0中斷服務(wù)程序框圖

          主程序框圖

          4.16.2

          6. 匯編源程序

          TCOUNT2S EQU 30H

          TCNT02S EQU 31H

          ID EQU 32H

          ORG 00H

          LJMP START

          ORG 0BH

          LJMP INT_T0

          START: MOV TCOUNT2S,#00H

          MOV TCNT02S,#00H

          MOV ID,#00H

          MOV TMOD,#01H

          MOV TH0,#(65536-50000) / 256

          MOV TL0,#(65536-50000) MOD 256

          SETB TR0

          SETB ET0

          SETB EA

          SJMP $

          INT_T0: MOV TH0,#(65536-50000) / 256

          MOV TL0,#(65536-50000) MOD 256

          INC TCOUNT2S

          MOV A,TCOUNT2S

          CJNE A,#40,NEXT

          MOV TCOUNT2S,#00H

          INC ID

          MOV A,ID

          CJNE A,#04H,NEXT

          MOV ID,#00H

          NEXT: INC TCNT02S

          MOV A,TCNT02S

          CJNE A,#4,DONE

          MOV TCNT02S,#00H

          MOV A,ID

          CJNE A,#00H,SID1

          CPL P1.0

          SJMP DONE

          SID1: CJNE A,#01H,SID2

          CPL P1.1

          SJMP DONE

          SID2: CJNE A,#02H,SID3

          CPL P1.2

          SJMP DONE

          SID3: CJNE A,#03H,SID4

          CPL P1.3

          SID4: SJMP DONE

          DONE: RETI

          END

          7. C語言源程序

          #include AT89X51.H>

          unsigned char tcount2s;

          unsigned char tcount02s;

          unsigned char ID;

          void main(void)

          {

          TMOD=0x01;

          TH0=(65536-50000)/256;

          TL0=(65536-50000)%256;

          TR0=1;

          ET0=1;

          EA=1;

          while(1);

          }

          void t0(void) interrupt 1 using 0

          {

          tcount2s++;

          if(tcount2s==40)

          {

          tcount2s=0;

          ID++;

          if(ID==4)

          {

          ID=0;

          }

          }

          tcount02s++;

          if(tcount02s==4)

          {

          tcount02s=0;

          switch(ID)

          {

          case 0:

          P1_0=~P1_0;

          break;

          case 1:

          P1_1=~P1_1;

          break;

          case 2:

          P1_2=~P1_2;

          break;

          case 3:

          P1_3=~P1_3;

          break;

          }

          }

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


          評論


          相關(guān)推薦

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

          關(guān)閉