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
   71   72   73   74   75   76   77   78   79   80   81