;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
|