LEDBUF EQU 30H ;顯示碼緩存區
HOUR EQU 40H
MINUTE EQU 41H
SECOND EQU 42H
C100US EQU 43H
TICK EQU 10000 ;置中斷次數
T100US EQU 256-100 ;置定時器初值
LJMP START ;跳轉到主程序
ORG 0003H
LJMP DISPLYLED
RETI
ORG 000BH ;定時器0中斷入口
TOINT: PUSH PSW ;狀態保護
PUSH ACC
MOV A,C100US+1
JNZ GOOD ;計數值是否為0
DEC C100US
GOOD: DEC C100US+1
MOV A,C100US
ORL A,C100US+1
JNZ EXIT
MOV C100US,#HIGH(TICK) ;重置計數值
MOV C100US+1,#LOW(TICK)
INC SECOND ;秒加一
MOV A,SECOND
CJNE A,#60,EXIT ;判斷秒針是否為60
MOV SECOND,#0
INC MINUTE
MOV A,MINUTE
CJNE A,#60,EXIT
MOV MINUTE,#0
INC HOUR
MOV A,HOUR
CJNE A,#24,EXIT
MOV HOUR,#0
EXIT: POP ACC
POP PSW
RETI
DELAY: ; 延時子程序
MOV R7,#0FEH
DELAYLOOP:
DJNZ R7,DELAYLOOP
DJNZ R6,DELAYLOOP ; R6是否有錯,是否應改為R7?
RET
LEDMAP: ;數碼管顯示碼
DB 3FH,06H,5BH,4FH
DB 66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH
DB 39H,5EH,79H,71H
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |