ORG 0000H
AJMP MAIN
ORG 30H
MAIN: MOV R1,#0
XUNH:
LCALL DISP
LCALL DELAY
INC R1
CJNE R1,#100,XUNH
AJMP MAIN
;显示P1口十位P2口个位,这样做就怎么也不会闪烁了把
DISP: MOV DPTR,#TAB ;共阴
MOV A,R1
MOV B,#10
MUL AB
MOV A
MOVC A,@A+DPTR
MOV P1,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;延时1s,要精确延时可以稍微调一下数值
DELAY:MOV R2,#25
DEL1: MOV R3,#100
DEL2: MOV R4,#200
DEL3: DJNZ R4,$
DJNZ R3,DEL2
DJNZ R2,DEL1
RET
END
;做动态显示也可以,人眼是看不出闪烁的。那样会省点口线,嘿嘿反正你只有2个 数码管没别的东西,就干脆做个静态的咯。怎么也闪烁不了的
延时用显示来完成就可以了!
具体说就是计算动态显示一次的时间,然后计算出1s时间调用动态显示的次数。
根据这个次数,来多次调用显示达到1s的延时,加一循环就可以了!!!
这个程序的思想就是延时的时候得显示!!!