Page 93 -
P. 93

;     轉換十六進制值以十進位方式顯示
;
BCD:  CJNE       A,#FFH,CON
CON:  JMP        NC
      MOV        R3,A
NC:   MOV        B,#10
      DIV        AB
      MOV        R4,B
      MOV        B,#16
      MUL        AB
      ADD        A,R4
      RET

;
; 時間延遲副程式
;

DELAY: MOV       R5,#15      ;延遲時間約為 R5*20 mS
D1: MOV          R6,#40
D2: MOV          R7,#249
                 R7,$
           DJNZ  R6,D2
           DJNZ  R5,D1
           DJNZ
           RET

;
; 聲音產生副程式, 用於報時提醒
;

MUSIC: SETB      ET1         ;致能 Timer1 中斷
           MOV   DPTR,#DAT
                 A,#0        ;載入 DPTR 所指位址之資料至累積器 A 中
LOOP1: MOV       A,@A+DPTR   ;測試是否為資料結束值 0
           MOVC  OVER        ;儲存 Timer1 計頻 16 位元之高 8 位元
           JZ    TH1,A
           MOV   Tone_H,A
           MOV   DPTR
           INC   A,#0
           MOV
   88   89   90   91   92   93   94   95   96   97   98