我用汇编写了个2位数码管动态扫描的程序,个位是1S加1,逢10进位,自己循环;十位1-9,逢10清零。但是2个数码管不能同时点亮,我知道是时间和延时上的问题,但是不知该如何修改。求大神指导,提供下思路。如果哪里不对请指出,谢谢了。
org 0000h
clr p1.1 ;打开数码管
clr p1.2
setb p1.3
clr p1.4
mov r5,#01h
main: clr p1.0 ;个位
sz0_9:mov dptr,#tab ;从0-9
mov r0,#00h
GW: mov a,r0
movc a,@a+dptr
mov p0,alcall YS1S ;延时1s
inc r0
cjne r0,#0ah,GW ;判断各位到9没
setb P1.0 ;十位
szjw:mov dptr,#tab ;从0-9
JW: mov a,r5
movc a,@a+dptr
mov p0,a
inc r5
lcall YS1S
cjne r5,#0ah,main
mov r5,#01h
ajmp main
YS1S:mov r1,#10
loop:mov r2,#200
loop1:mov r3,#250
djnz r3,$
djnz r2,loop1
djnz r1,loop
ret
tab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,98h
end