标题: 关于单片机驱动5641数码管的鬼影现象 [打印本页]

作者: wojiaodongrui    时间: 2019-11-26 22:12
标题: 关于单片机驱动5641数码管的鬼影现象
单片机萌新发问,搞了个测温系统(用的stc89c52rc),其中的数码管显示遇到了困难,显示测试时发现显示完全相同的四个数字没问题,只要有不同的数字就会出现数字重叠现象  大佬们帮看看呗

电路图.png (104.39 KB, 下载次数: 74)

电路图.png

4321.png (46.73 KB, 下载次数: 62)

4321.png

作者: csmyldl    时间: 2019-11-27 00:44
只需在每一位输出显示前先消除上次显示的数据即可,电路中采用共阳数码管,程序中P0=d[];语句前各加一条P0=0xff;即可
作者: huwqly    时间: 2019-11-27 05:03
你真执着也真懒,宁可截屏都不拷代码,你的硬件电路应该带移位寄存器吧,P0送消隐P0=0xff后要送P2显示一下的,下面2种方式,你看哪一个适合你;
1:
P0=0xff;
P2=0x8f;
P0=d[4];
P2=0x8f;
delay(300);
P0=0xff;
P2=0x4f;
P0=d[4];
P2=0x4f;
delay(300);
P0=0xff;
P2=0x2f;
P0=d[4];
P2=0x2f;
delay(300);
P0=0xff;
P2=0x1f;
P0=d[4];
P2=0x1f;
delay(300);

2硬件电路应该有移位寄存器:
P0=d[4];
P2=0x8f;
P0=d[4];
P2=0x4f;
P0=d[4];
P2=0x2f;
P0=d[4];
P2=0x1f;
delay(300);
P0=0xff;
P2=0x8f;
P2=0x4f;
P2=0x2f;
P2=0x1f;
作者: moluxiyan    时间: 2019-11-27 08:46
刷新之前清一下缓存
作者: zhuming    时间: 2019-11-27 09:43
消隐是段位控制的,你用的位码,所有的P0=0XFF,改P2=0XFF,就O了
作者: wojiaodongrui    时间: 2019-11-27 23:46
huwqly 发表于 2019-11-27 05:03
你真执着也真懒,宁可截屏都不拷代码,你的硬件电路应该带移位寄存器吧,P0送消隐P0=0xff后要送P2显示一下 ...

谢谢大佬批评,但是这程序有点问题,第一个程序我让它显示4321但显示的是反着的6、8、9、8.第二个程序我让他显示4321但显示的是111灭。最后还是很感谢。
作者: huwqly    时间: 2019-11-28 05:42
wojiaodongrui 发表于 2019-11-27 23:46
谢谢大佬批评,但是这程序有点问题,第一个程序我让它显示4321但显示的是反着的6、8、9、8.第二个程序我 ...

你的电路是IO直接驱动数码管位的,第二个程序是支持移位寄存器的参考代码




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1