[51单片机] 动态扫描间隔500ms怎么依次全部显示?

[复制链接]
920|7
 楼主| FBIII 发表于 2019-9-18 09:54 | 显示全部楼层 |阅读模式
点亮第一位数码管,500ms后同时亮第一第二位,在500ms后同时亮第一第二第三位,一直到5位全部点亮,使用动态扫描是怎样一个思路?
ayb_ice 发表于 2019-9-18 10:30 | 显示全部楼层
通用解决思路
开辟个缓冲区
往缓冲区送什么就显示什么,显示最好放在定时中断中完成
tianxj01 发表于 2019-9-18 10:53 | 显示全部楼层
动态扫描,是用比较快的速度依次点亮需要点亮的笔划。
你这里需要的是半秒一个逐步提升位数的显示效果,这个不是动态扫描。
比较清晰的动态扫描驱动思路,一般是放在某个固定的时钟中断里面,根据时钟计数,取对应缓冲区,输出到段扫描和位扫描。
需要实现0.5秒显示效果的,你只是需要在缓冲区,按照0.5秒的节奏,改写要点亮或者熄灭的段位就成。
比如我需要显示数据是4位,8段,则正好一个8位4字节数组,作显示缓冲。
对应的组成成员按照LED顺位排列,数组【0】=第一位LED,如果里面是1111111,则显示一个8+。当全部为0则熄灭。
而动态扫描,则根据时钟计数,是第一位显示的,则位扫描值就是0,再根据笔划扫描时钟,读取位显示缓冲,直接按位输出就行了。

评论

数码管一直动态扫描但是不显示,利用软件延时500ms后依次点亮能不能实现  发表于 2019-9-19 11:15
 楼主| FBIII 发表于 2019-9-19 11:16 | 显示全部楼层
ayb_ice 发表于 2019-9-18 10:30
通用解决思路
开辟个缓冲区
往缓冲区送什么就显示什么,显示最好放在定时中断中完成 ...

数码管一直动态扫描但是不显示,利用软件延时500ms后依次点亮能不能实现
 楼主| FBIII 发表于 2019-9-19 11:16 | 显示全部楼层
FBIII 发表于 2019-9-19 11:16
数码管一直动态扫描但是不显示,利用软件延时500ms后依次点亮能不能实现  ...

数码管一直动态扫描但是不显示,利用软件延时500ms后依次点亮能不能实现
tianxj01 发表于 2019-9-19 11:17 | 显示全部楼层
FBIII 发表于 2019-9-19 11:16
数码管一直动态扫描但是不显示,利用软件延时500ms后依次点亮能不能实现  ...

已经跟你说了,动态扫描和逐步点亮这是2个过程。
先把动态扫描做好了。逐步点亮只是根据延时要求,修改显示缓存而已。怎么可能做不到呢?
ayb_ice 发表于 2019-9-19 11:19 | 显示全部楼层
FBIII 发表于 2019-9-19 11:16
数码管一直动态扫描但是不显示,利用软件延时500ms后依次点亮能不能实现  ...

动态扫描在定时中断上完成,显示的数据从缓冲区获取,主循环往缓冲区送数据即可

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

本版积分规则

9

主题

20

帖子

0

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