Page 94 -
P. 94
MOVC A,@A+DPTR ;載入 DPTR 所指位址之資料至累積器 A 中
INC DPTR ;儲存 Timer1 計頻 16 位元之低 8 位元
MOV TL1,A ;載入 DPTR 所指位址之資料至累積器 A 中
MOV Tone_L,A ;啟動 Timer1 計時
MOV A,#0
MOVC A,@A+DPTR ;停止 Timer1 計時
INC DPTR ;停止 Timer1 中斷
CJNE R6,#0,$
SETB TR1
LOOP2: CJNE R6,#19,$
CJNE R6,#0,$
DJNZ A,LOOP2
CLR TR1
JMP LOOP1
OVER: CLR ET1
SETB P3.0
RET
;
; Timer0 中斷服務程式, 用於計數時間
;
TIMER0_DRV: TR0 ;停止計時
CLR TL0,#<(65536-46079) ;重新儲存 16 位元之低 8 位元
MOV TH0,#>(65536-46079) ;重新儲存 16 位元之高 8 位元
MOV TR0 ;再啟動計時
SETB P3.7
CPL R6 ;整點報時聲音設定
INC R6,#20,PASS
CJNE R6,#0
MOV R0
INC R0,#60,PASS
CJNE R0,#0
MOV R1
INC R1,#60,PASS
CJNE R1,#0
MOV MusicF,#0
MOV