找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

12位数码管同时显示单片机源代码 仿真图 数码管闪烁问题?

查看数: 2810 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-3-18 17:33

正文摘要:

利用片外RAM 扩展12位数码管,同时显示,仿真不显示, 实际电路显示,但数码管闪烁。求助,数码管如何才能不 闪烁?程序有问题?还是这种扩展方式不行?求教各位。多谢了。 单片机源程序如下: #include<reg5 ...

回复

ID:332444 发表于 2023-4-9 20:54
我初学编程时就到论坛1是看看别人是怎么写的,2是有机会就回复力所能及的,有一次好像是回复不怎样,有人奚落我一边呆着去,我问什么意思,答“哪凉快哪呆着去”,然而这种人我觉得不值一提,没那么了不起,反而是没见识鄙陋的表现,其实学单片机我也是一样来看看别人是怎么写的,不是赋值粘贴的,最重要的是自己思考推敲才要紧,其实这种驱动没什么特别的,多动脑子就有办法,很简单的,不是什么很难的时序。
ID:1038987 发表于 2023-4-9 20:32
哈哈。我只想说用1640根本就没有那么多的麻烦事。TM1640可以驱动1-16位也不会闪。也省单片机的资源。之前发过一个文章。应该里面有代码。
ID:290290 发表于 2023-3-30 16:16
有道理,实验一下,多谢。
ID:332444 发表于 2023-3-26 18:10
本帖最后由 xianfajushi 于 2023-3-27 09:23 编辑
centch 发表于 2023-3-20 21:55
由于电流超出,用245做了电流缓冲。

数字芯片中74系列07缓冲器有40毫安电流可以选用。如我上图电路就可以使用缓冲器扩大电流给12位数码段,而位电流则直接273够用不需扩流当然要扩流也是可以的,这样算起来也就使用8个缓冲器,或许会问74*07是对电源开集电路,对于共阴数码管接位直接上即可,对于段怎么弄,很简单的加上拉电阻即可,若不满意那就复杂些添加PNP基极电阻4.7K射极限流电阻247即可从仿真可以调节射极电阻大小值达到调节电流目标。
ID:332444 发表于 2023-3-26 08:51

ID:290290 发表于 2023-3-20 21:57
xianfajushi 发表于 2023-3-20 05:32
用3片锁存器分别控制段=控制位只有4速度可以说是很快的时间很好安排,若段是共用的则是控制位为12速度稍慢 ...

可能需要严格的时序,数码管才会不闪,调试中;多谢。
ID:290290 发表于 2023-3-20 21:55
xianfajushi 发表于 2023-3-19 08:42
273和245同属锁存器,且273已经分别控制了直接P0即可245可以不用。

由于电流超出,用245做了电流缓冲。
ID:290290 发表于 2023-3-20 21:53
a185980800 发表于 2023-3-19 23:37
此回答来自gpt 3.5闪烁问题可能来自于数据和位选信号同时改变导致的,可以考虑在更改数据之前先将位选信号 ...

多谢您的指点,按照您说的方法,修改了程序,闪烁还存在。我再试试定时中断。
ID:332444 发表于 2023-3-20 05:32
用3片锁存器分别控制段=控制位只有4速度可以说是很快的时间很好安排,若段是共用的则是控制位为12速度稍慢时间也不是不能安排,因为锁存器是并行数据,若是用串行传送数据则更慢,数码管闪烁原因基本就是时间安排问题。
ID:857072 发表于 2023-3-19 23:37
此回答来自gpt 3.5闪烁问题可能来自于数据和位选信号同时改变导致的,可以考虑在更改数据之前先将位选信号置位,然后再更改数据,最后才将位选信号清零。修改程序如下所示:  while (1) {     for (i = 0; i < 4; i++)     {         hc273_U6 = w[i]; // 先置位选信号         hc273_U3 = c[a[i]];         hc273_U4 = c[b[i]];         hc273_U5 = c[e[i]];         for (t = 0; t < 1000; t++);         hc273_U6 = 0xFF; // 清除位选信号     } } 此外,还需要注意以下几点。  在使用绝对地址访问外部RAM时,需要确保地址线连接正确,否则会导致无法访问到RAM中的数据。  如果数码管闪烁问题依然存在,可以考虑增加延时时间或者使用定时器实现定时刷新。
ID:332444 发表于 2023-3-19 08:42
centch 发表于 2023-3-18 22:25
此图应属于总线控制范畴

273和245同属锁存器,且273已经分别控制了直接P0即可245可以不用。
ID:290290 发表于 2023-3-18 22:25
xianfajushi 发表于 2023-3-18 21:52
如果使用排阻的话并且P0口又没做其他事情的话用573毫无意义P0口应接排阻

此图应属于总线控制范畴
ID:290290 发表于 2023-3-18 22:24
xianfajushi 发表于 2023-3-18 21:52
如果使用排阻的话并且P0口又没做其他事情的话用573毫无意义P0口应接排阻

P0口为数据与地址(第位)复用口,273触发器。我只画了部分电路,按键复用P0口没有画出。
ID:332444 发表于 2023-3-18 21:52
如果使用排阻的话并且P0口又没做其他事情的话用573毫无意义P0口应接排阻
ID:290290 发表于 2023-3-18 21:39
wulin 发表于 2023-3-18 20:57
给你一个示例参考

多谢,下载来参考一下。
ID:213173 发表于 2023-3-18 20:57
给你一个示例参考
16位数码管万年历1302 仿真.rar (133.06 KB, 下载次数: 23)

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

Powered by 单片机教程网

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