|
LEDBUF EQU 30H ;顯示碼緩存區(qū) HOUR EQU 40H MINUTE EQU 41H SECOND EQU 42H C100US EQU 43H TICK EQU 10000 ;置中斷次數(shù) T100US EQU 256-100 ;置定時(shí)器初值 LJMP START ;跳轉(zhuǎn)到主程序
ORG 0003H LJMP DISPLYLED RETI
ORG 000BH ;定時(shí)器0中斷入口 TOINT: PUSH PSW ;狀態(tài)保護(hù) PUSH ACC MOV A,C100US+1 JNZ GOOD ;計(jì)數(shù)值是否為0 DEC C100US GOOD: DEC C100US+1 MOV A,C100US ORL A,C100US+1 JNZ EXIT MOV C100US,#HIGH(TICK) ;重置計(jì)數(shù)值 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: ; 延時(shí)子程序 MOV R7,#0FEH DELAYLOOP: DJNZ R7,DELAYLOOP DJNZ R6,DELAYLOOP ; R6是否有錯(cuò),是否應(yīng)改為R7? RET
LEDMAP: ;數(shù)碼管顯示碼 DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H
這是我寫(xiě)的程序,怎么實(shí)現(xiàn)計(jì)時(shí)停止?高手賜教! |