;99-0倒計時程序
;單片機型號:STC8a4k32s2,如果使用其它型號單片機,延時要調節一下
;功能:上電之后自動顯示99-0的倒計時程序
;COM1,COM2和OUT可以在EQU中修改
;因為我手頭上沒有共陽的數碼管,所以,這是一個共陰的程序,
;仿真的時候自己做一些修改就可以了,這是一個已經在開發板上驗證過的程序,代碼復制就可以運行的
;===================================================
COM1 EQU P2.0
COM2 EQU P2.1
OUT EQU P0
P2M0 EQU 096H ;
P2M1 EQU 095H ;控制P2端口輸出模式的寄存器
;===================================================
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV R7,#100
CLR COM1
CLR COM2
MOV P2M1,#0H ;
MOV P2M0,#0FFH ;
LOOP_0: MOV R2,#99
LOOP_1: CALL DISPLAY
DEC R2
MOV A,R2
CJNE A,#0,LOOP_1
JMP $
;======================================
DISPLAY: MOV DPTR,#TABLE
MOV A,R2
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV OUT,A
SETB COM1
LCALL DELAY
CLR COM1
MOV OUT,#00H
MOV A,B
MOVC A,@A+DPTR
MOV OUT,A
SETB COM2
CALL DELAY
CLR COM2
MOV OUT,#00H
DJNZ R7,DISPLAY
RET
;===================================================
;這個是10mS的延時程序,在STC下載器中可以用軟件自動計算
;如果是仿真,可以相應的減少延時的時長
DELAY: MOV R5,#156
MOV R6,#106
DELAY_1: DJNZ R5,DELAY_1
DJNZ R6,DELAY_1
RET
;===================================================
;TABLE: DB 00000011B,10011111B,00100101B,00001101B,10011001B,01001001B,01000001B,00011111B,00000001B,00001001B ;表:共陽數碼管 0-9
TABLE: DB 11111100B,01100000B,11011010B,11110010B,01100110B,10110110B,10111110B,11100000B,11111110B,11110110B ;表:共陰數碼管 0-9
END
|