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(以二進制方式顯示亮燈)。