求助:七段数码管动态显示的问题

[复制链接]
3132|5
 楼主| liokok119 发表于 2008-10-30 14:42 | 显示全部楼层 |阅读模式
各位好 我是一个单片机初学者,今天在写一个气短数码管动态显示的程序用Proteus 出现问题我总是调不好请高手帮我看一下
  程序要完成0-60的计数显示每秒计数自动加一
  出现问题:
      1、0-9能正常显示,超过10后各位不能正常显示
      2、计数到10后时间对不上
  程序如下
       org    0000h
     ljmp   main
     org    0040h
main:mov    30h,#0
     mov    31h,#0
     mov    dptr,#tab
loop:mov    r2,#200
lop: mov a,30h
     movc a,@a+dptr
     mov p2,#02h
     mov p1,a
     lcall dly
     mov a,31h
     jz ten
     movc a,@a+dptr
     mov p1,a
     mov p2,#01h
     lcall dly
ten: djnz r2,lop
     inc 30h
     mov r3,30h
     cjne r3,#10,loop
     inc 31h
     mov 30h,#0
     mov r4,31h
     cjne r4,#6,loop
     ljmp main
dly:   MOV  R6,#10  
DLP1:  MOV  R7,#250 
DLP2:  DJNZ R7,DLP2 
       DJNZ R6,DLP1 
       RET          
tab: db 0c0h,0f9h,0a4h,0b0h,99h
     db 92h,82h,0f8h,80h,90h
     end
 
benxiaoyu4 发表于 2008-10-30 15:09 | 显示全部楼层

我认为的问题

计数到十后每次循环比没到十之前的多一个延时
lop: mov a,30h
     movc a,@a+dptr
     mov p2,#02h
     mov p1,a
     lcall dly
     mov p1,0ffH  ;该行为新增,每次都将关闭显示
     mov a,31h
     jz ten
     movc a,@a+dptr
     mov p1,a 
     mov p2,#01h ;建议把TEN提前到该处。并将延时函数延时值降低一半 

     lcall dly 
     MOV P1,#0FFH
ten: djnz r2,lop
 楼主| liokok119 发表于 2008-10-30 15:42 | 显示全部楼层

还是不行

感谢 2楼
  不过改了过后还是不行
   程序如下
     org    0000h
     ljmp   main
     org    0040h
main:mov    30h,#0
     mov    31h,#0
     mov    dptr,#tab
loop:mov    r2,#200
lop: mov a,30h
     movc a,@a+dptr
     mov p2,#02h
     mov p1,a
    lcall dly
     mov p1,#0ffh
     mov a,31h
     jz ten
     movc a,@a+dptr
     mov p1,a
     mov p2,#01h
ten: djnz r2,lop 
     lcall dly
     inc 30h
     mov r3,30h
     cjne r3,#10,loop
     inc 31h
     mov 30h,#0
     mov r4,31h
     cjne r4,#6,loop
     ljmp main
问题:
  时间正常 不过不显示十位,在keil中调试又正常  
   
 楼主| liokok119 发表于 2008-10-30 16:28 | 显示全部楼层

感谢2楼

问题解决了   
benxiaoyu4 发表于 2008-10-30 16:30 | 显示全部楼层

理解错误是把标号TEN上移,而不是整行上移

benxiaoyu4 发表于 2008-10-30 16:31 | 显示全部楼层

习惯的问一句是什么问题??

您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

45

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部