找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 956|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机汇编数码管什么移动啊?求思路

[复制链接]
跳转到指定楼层
楼主
ID:1047713 发表于 2022-10-18 11:40 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就是我显示一条数字在向左移位
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2022-10-19 10:38 | 只看该作者
先都教你更复杂的:LED各个位闪烁的方法(设8个LED):
"1、做一个标记S03,S03每0.3秒求反一次。(在时间中断中实现,你可以不用0.3秒,改用其它值)
2、用一个字节BX其8个位叫:BX7-BX0(其中的一个叫BXN),分别对应指出哪个LED位正在闪烁。
   例如当BX=10000000(即BX7=1,BX6-0=0)表示只有LED7闪动显示,其它不闪。BX=10100000,表示LED7,5同时闪。
3、定义一个字节ID,指示扫描正处于显示哪一个LED,每次时间中断将ID+1,且ID=0-7。比如ID=4,则显示LED4,其它的不显示。
4、定义8个字节RXS7-RXS0,用于存放LED的显示内容(当然需要你事先做好译码工作)。
5、每次中断只显示的一个LED(先关全部,再显示一个),显示哪一位由ID指出。
6、是否将RXSN(RXS7-RXS0中的一个)送到LED进行显示,由下列计算决定:BXS=/BXN+BXN*S03
     当BXS=1时,表示显示,则将RXSN送至LED显示;

     当BXS=0时,则将不显示(实际是将黑字送到LED,通常是FFH或00H,也可用“-”)。
例如:ID=2,RXS2=“3”(译码后的3),BX2=1(闪动),S03=0。则:BXS=/BX2+BX2*S03=/1+1*0=0,所以不显示,将FFH送至LED2(无显)。
     如果送“_”则形成“_”与“3”互闪。
例如:ID=2,RXS2=“3”(译码后的3),BX2=1(闪动),S03=1。则:BXS=/BX2+BX2*S03=/1+1*1=1,所以显示,将“3”送至LED2。
例如:ID=2,RXS2=“3”(译码后的3),BX2=0(不闪动),S03=x。则:BXS=/BX2+BX2*S03=/0+1*S03=1,所以显示,将“3”送至LED2。

如此闪动就操作简单了:需要哪位闪动,就将哪位对应的BXn置1,即可。不闪就清0。
"
回复

使用道具 举报

板凳
ID:123289 发表于 2022-10-19 10:40 | 只看该作者
再教你:LED移位显示的方式
LED移位的方式(8个LED右移):
继承“LED各个位闪烁的方法:”的贴子。
假设每秒右移一次,8秒后移完变黑,黑显示值为“FFH”。
则每秒做一件事,即可达成目的:
"FFH"→RXS7→RXS6→RXS5→RXS4→RXS3→RXS2→RXS1→RXS0。
当然应先做RXS1→RXS0,最后做"FFH"→RXS7。
如是移完后显示“--------”,则:
"-"→RXS7→RXS6→RXS5→RXS4→RXS3→RXS2→RXS1→RXS0。

如此:移位的动作,仅仅是修改显示缓冲RXSn的内容而矣。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表