Page 76 -
P. 76
計時模式 1 程式
;
; 本程式以計時方式掃描驅動,以 P0.0 為 0.05 秒的閃爍,
; P1 到 P3 分別為秒分時的輸出
;
; 應用指令:
; 位元設定指令 SETB 用以設定位元為 1
; 比較跳躍指令 CJNE 若暫存器與參數值比較不相等實則跳躍
; 位元為 1 時清除並跳躍指令 JBC 若暫存器位元為 1 則清除並跳躍
;
; 動作: P0.0 之 LED 閃爍 20Hz, 秒分時以十進制二進位法顯示
; 說明: 利用 Timer0 做 0.05 秒計時, 並為求執行時間控制, 進位累加.
; 顯示秒. 顯示分與顯示時分四次迴路執行, 以求可分別在 0.05 秒內
; 執行完畢
;
ORG 00H
JMP START
ORG 30H
MOV SP,#30H ;將堆疊指標重新指向
START: MOV TMOD,#01 ;設定 16 位元計時模式
MOV P0,#0 ;將埠 0 設定為全滅
MOV R6,#0 ;頻率記數初值設定為 0
MOV R0,#0 ;時 R2 分 R1 秒 R0 初值設定為 0
MOV R1,#0
MOV R2,#0
LOOP: MOV TL0,#<(65536-46079) ;儲存 16 位元之低 8 位元
MOV TH0,#>(65536-46079) ;儲存 16 位元之高 8 位元
SETB TR0 ;啟動計時
CJNE R6,#20,SHOW
MOV R6,#0
SEC INC R0
CJNE R0,#60,WAIT
MOV R0,#0
INC R1
CJNE R1,#60,WAIT
MOV R1,#0