戴眼镜的小鸟:
还没。我重新写了几个程序还是不行。我把自动加1和进位放到主程序,把动态扫描作为子程序还是没成。最后我觉得是思路上有问题,在动态扫描做主程序,把自动加1做子程序调用会在扫描时间隔1S到时扫描不成功。自动加1做主程序,把动态扫描做子程序调用会在动态扫描前有1S间隔还是不成功。不知道该怎么弄了。我贴个程序,你看看应该怎么调整这个思路?还有程序?;main:个位的自动加1和进位;子程序:开始动态扫描org0000hl1:movr5,#00h ;初始化movr6,#00hmovr0,#01hmovr1,#00hmovdptr,#tab ;开始l0:mova,r0 movca,@a+dptrmovr5,a ;r5存储个位的段码clra ;清零amova,r1movca,@a+dptrmovr6,a ;r6存储十位的段码calldtsm ;调用动态扫描callys1s ;调用延时1Sincr0cjner0,#0ah,l0 ;个位是否有进位,没有返回incr1cjner1,#0ah,l0 ;十位是否有进位,没有返回sjmpl1 ;十位进位则重新计数dtsm:movp0,#00h ;动态扫描movp2,#0ffhmovp0,r5callys1msmovp0,#00hmovp2,#0fbhmovp0,r6retys1s:movr2,#10 ;延时1Sloop:movr3,#200loop1:movr4,#250djnzr4,$djnzr3,loop1djnzr2,loopretys1ms:movr2,#250 ;延时1msmovr3,#2djnzr2,$djnzr3,$rettab:db3fh,06h,5bh,4fh,66h,6dh,7ch,07h,7fh,67hend