Page 79 -
P. 79

; 本程式設定 Timer0 Timer1 為模式 2 計數使用,分別由輸入埠 T0 T1 輸入計數值

   5與3

; P0 與 P1 分別為計數完成次數之輸出

;

; 說明: 暫存器 R0 用以計數 Timer0 完成次數,

; 暫存器 R1 用以計數 Timer1 完成次數,

;

   ORG 00H

   JMP INIT        ;規避 00H 至 2FH 間之中斷向量執行位址

   ORG 30H

INIT: MOV SP,#30H  ;將堆疊指標重新指向

   MOV TMOD,#66H   ;設定 Timer0 與 Timer1 為模式 2 計數方式

   MOV TL0,#(256-5) ;設定計數 5 次

   MOV TH0,#(256-5) ;儲存計數次

   MOV TL1,#(256-3) ;設定計數 3 次

   MOV TH1,#(256-3) ;儲存計數次

   MOV R0,#0

   MOV R1,#0

   SETB TR0        ;開始計數

   SETB TR1        ;開始計數

WAIT: JBC TF0,OVERFLOW0 ;等待計數 5 完畢

   JBC TF1,OVERFLOW1 ;等待計數 3 完畢

   JMP WAIT

OVERFLOW0:

   INC R0

   MOV P0,R0

   JMP WAIT

OVERFLOW1:

   INC R1

   MOV P1,R1

   JMP WAIT

   END

程式說明:本程式分別由 T0、T1 接腳輸入計數次數,Timer0 與 Timer1 則分別設定為 5
               與 3 做為計數溢位值。每當完成 5 次或 3 次,發生溢位,則會在 P0 與 P1 顯
               示值累加 1(以二進制方式顯示亮燈)。
   74   75   76   77   78   79   80   81   82   83   84