求大侠改进程序、优化电路,8051汇编,数码管从0000-9999循环跳转。。。

overmind 2012-01-26 09:08:05
初次写这方面的代码,不知道哪里需要优化,哪里应该修改。
以及电路图是否合理等等。

请高手不吝赐教。
下面是代码。

ACALL SETSEG0
ACALL SHOWDIGIT
ACALL SETSEG1
ACALL SHOWDIGIT
ACALL SETSEG2
ACALL SHOWDIGIT
ACALL SETSEG3
ACALL SHOWDIGIT
ACALL SETSEG4
ACALL SHOWDIGIT
ACALL SETSEG5
ACALL SHOWDIGIT
LOOP3:
LOOP2:
LOOP1:
LOOP0:
ACALL SETSEG0
ACALL SHOWDIGIT
ACALL DELAY
INC 0H
MOV R0,0H
CJNE R0,#10,LOOP0
MOV 0H,#0
INC 1H
ACALL SETSEG0
ACALL SHOWDIGIT
ACALL SETSEG1
ACALL SHOWDIGIT
MOV R0,1H
CJNE R0,#10,LOOP1
MOV 0H,#0
MOV 1H,#0
INC 2H
ACALL SETSEG0
ACALL SHOWDIGIT
ACALL SETSEG1
ACALL SHOWDIGIT
ACALL SETSEG2
ACALL SHOWDIGIT
MOV R0,2H
CJNE R0,#10,LOOP2
MOV 0H,#0
MOV 1H,#0
MOV 2H,#0
INC 3H
ACALL SETSEG0
ACALL SHOWDIGIT
ACALL SETSEG1
ACALL SHOWDIGIT
ACALL SETSEG2
ACALL SHOWDIGIT
ACALL SETSEG3
ACALL SHOWDIGIT
CJNE R0,#10,LOOP3
AJMP 0000H

SETSEG0:
MOV R0,0H
MOV P2,#00000101B
RET
SETSEG1:
MOV R0,1H
MOV P2,#00000100B
RET
SETSEG2:
MOV R0,2H
MOV P2,#00000011B
RET
SETSEG3:
MOV R0,3H
MOV P2,#00000010B
RET
SETSEG4:
MOV R0,4H
MOV P2,#00000001B
RET
SETSEG5:
MOV R0,5H
MOV P2,#00000000B
RET

SHOWDIGIT:
MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
RET

DELAY:
MOV R5,#01FH
DL1:MOV R6,#03FH
DL2: MOV R7,#005H
DL3: DJNZ R7,DL3
DJNZ R6,DL2
DJNZ R5,DL1
RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END

我在uVision里面看不到内存的样子0H,1H,2H,3H,如何才能看到呢?
谢谢!!!
...全文
225 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshi_ziyu 2012-01-30
  • 打赏
  • 举报
回复
电路有点复杂

使用一个锁存器就行 动态显示
overmind 2012-01-29
  • 打赏
  • 举报
回复
恩,非常感谢!
[Quote=引用 4 楼 lbing7 的回复:]

给一个思路:

印象中,51时也有BCD码运算的支持指令(如果是我记错,那么就自己实现一个)

实现一个4位数的BCD码计数A

定时器里,定时把A更新显示到数码管上,反正有锁存,定时周期里一次扫完即可
[/Quote]
lbing7 2012-01-29
  • 打赏
  • 举报
回复
给一个思路:

印象中,51时也有BCD码运算的支持指令(如果是我记错,那么就自己实现一个)

实现一个4位数的BCD码计数A

定时器里,定时把A更新显示到数码管上,反正有锁存,定时周期里一次扫完即可
overmind 2012-01-26
  • 打赏
  • 举报
回复
我自己优化了一下,感觉这样效率更高一些,请高手赐教!!!

LOOP5:
ACALL SETSEG5
ACALL SHOWDIGIT
MOV 4H,#0
LOOP4:
ACALL SETSEG4
ACALL SHOWDIGIT
MOV 3H,#0
LOOP3:
ACALL SETSEG3
ACALL SHOWDIGIT
MOV 2H,#0
LOOP2:
ACALL SETSEG2
ACALL SHOWDIGIT
MOV 1H,#0
LOOP1:
ACALL SETSEG1
ACALL SHOWDIGIT
MOV 0H,#0
LOOP0:
ACALL SETSEG0
ACALL SHOWDIGIT
ACALL DELAY
INC 0H
MOV R0,0H
CJNE R0,#10,LOOP0
INC 1H
MOV R0,1H
CJNE R0,#10,LOOP1
INC 2H
MOV R0,2H
CJNE R0,#10,LOOP2
INC 3H
MOV R0,3H
CJNE R0,#10,LOOP3
INC 4H
MOV R0,4H
CJNE R0,#10,LOOP4
INC 5H
MOV R0,5H
CJNE R0,#10,LOOP5
AJMP 0000H

SETSEG0:
MOV R0,0H
MOV P2,#00000101B
RET
SETSEG1:
MOV R0,1H
MOV P2,#00000100B
RET
SETSEG2:
MOV R0,2H
MOV P2,#00000011B
RET
SETSEG3:
MOV R0,3H
MOV P2,#00000010B
RET
SETSEG4:
MOV R0,4H
MOV P2,#00000001B
RET
SETSEG5:
MOV R0,5H
MOV P2,#00000000B
RET

SHOWDIGIT:
MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
RET

DELAY:
RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END

aydf1 2012-01-26
  • 打赏
  • 举报
回复
看不懂
net_friends 2012-01-26
  • 打赏
  • 举报
回复
很复杂 看不懂
你想当“李逍遥”式的“大侠”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:http://pan.baidu.com/s/1gflxreN 密码:sou5;刘老师讲Unity学员群(2) 497429806一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

27,372

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧