找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何解决单片机+595数码管显示程序其他功能干扰显示的稳定性?

[复制链接]
跳转到指定楼层
楼主
ID:254747 发表于 2021-11-28 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的数码管是595的驱动程序     
现在我的程序功能越来越多,在有的函数中执行时间比较长,例如我调节占空比的时候,我把实时值发送到了数码管,但是数码管无法显示,原因找到了,就是函数执行时间过长,导致长时间没有扫描数码管所致,请问该如何处理
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2021-11-28 23:30 | 只看该作者
1)数码管的动态扫描,必须在定时器里完成
2)必须每20毫秒完成一次数码管所有位的点亮。即:如果是4位数码管,必须每5毫秒点亮一个位,8位数码管则必须每2.5毫秒点亮一个位。
回复

使用道具 举报

板凳
ID:752974 发表于 2021-11-29 08:40 | 只看该作者
595驱动的数码管应该是静态显示,显示的数据没有更新时不需要刷新显示器。你这种现象可能是有某个中断服务程序执行时间太长造成的,解决方法一是修改中断服务程序,做到运行时间最短,记住,不要在中断里处理数据。二是执行显示程序时关中断。
回复

使用道具 举报

地板
ID:254747 发表于 2021-11-29 09:36 | 只看该作者
munuc_w 发表于 2021-11-29 08:40
595驱动的数码管应该是静态显示,显示的数据没有更新时不需要刷新显示器。你这种现象可能是有某个中断服务 ...

你回答的确实如此  就是我有一个调节占空比的函数 执行时间比较长 但是我这个时间没有办法缩短  缩短了频率或者占空比就没有办法调节了  请问还有什么好办法吗  PWM占空比我用的是中断变量 中断里面只对这个变量++其它什么都不做  
回复

使用道具 举报

5#
ID:254747 发表于 2021-11-29 09:38 | 只看该作者
188610329 发表于 2021-11-28 23:30
1)数码管的动态扫描,必须在定时器里完成
2)必须每20毫秒完成一次数码管所有位的点亮。即:如果是4位数 ...

非常感谢你的指导   我重新开了一个定时器 给数码管用了  可以显示     结果按键又没法用了    哈哈哈哈
回复

使用道具 举报

6#
ID:161164 发表于 2021-11-29 12:18 | 只看该作者
不将就123 发表于 2021-11-29 09:36
你回答的确实如此  就是我有一个调节占空比的函数 执行时间比较长 但是我这个时间没有办法缩短  缩短了频 ...

要问解决方法
先要把代码贴上来
云讨论没用
回复

使用道具 举报

7#
ID:578842 发表于 2021-11-29 12:42 | 只看该作者
不将就123 发表于 2021-11-29 09:38
非常感谢你的指导   我重新开了一个定时器 给数码管用了  可以显示     结果按键又没法用了    哈哈哈哈

你在定时器中断里面做标志位,形成软件定时开关,就可以兼顾不同的时间需求。全部放定时计数器里面,肯定乱套
回复

使用道具 举报

8#
ID:57657 发表于 2021-11-29 12:46 | 只看该作者
不将就123 发表于 2021-11-29 09:38
非常感谢你的指导   我重新开了一个定时器 给数码管用了  可以显示     结果按键又没法用了    哈哈哈哈

无论是什么程序,至少开一个定时器中断(用于控制数码管显示、按键消抖什么的),软件延时尽量少用,595可以做到段码和位码并行发送,所以不需要消影。
回复

使用道具 举报

9#
ID:298123 发表于 2021-11-29 13:24 | 只看该作者
定时中断扫描,前提是你别的逻辑判断能被这个中断打断就行
回复

使用道具 举报

10#
ID:752974 发表于 2021-11-29 13:38 | 只看该作者
不将就123 发表于 2021-11-29 09:36
你回答的确实如此  就是我有一个调节占空比的函数 执行时间比较长 但是我这个时间没有办法缩短  缩短了频 ...

用的是什么单片机?现在的单片机内部定时器都有PWM功能,软件只需要根据要求设置占空比的数据就可以了,不用占用大量的CPU时间。
回复

使用道具 举报

11#
ID:624769 发表于 2021-11-29 14:25 | 只看该作者
不将就123 发表于 2021-11-29 09:38
非常感谢你的指导   我重新开了一个定时器 给数码管用了  可以显示     结果按键又没法用了    哈哈哈哈

调节占空比不要用现场计算, 提前计算完做成表, 现场用查表, 占用时间就不长了.

另外定时器里面执行显示,也可以同时执行按键检测, 正常人的正常按键速度大约 150ms,就算是故意找茬用的极限手速也需要10ms完成一次按键,所以,如果定时器刷新LED间隔5ms也不会错过按键。

唯一的就是,别再定时器里延时。
回复

使用道具 举报

12#
ID:213173 发表于 2021-11-29 19:28 | 只看该作者
使用595驱动数码管基本不会给单片机带来什么额外负担。楼主没有上代码,大家只能泛泛而谈,都是隔宿瘙痒,没有什么实际意义。可以肯定的说是楼主程序结构有严重缺陷。众人盲人摸象般指教只会使楼主如坠云雾,于事无补。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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