找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2335|回复: 6
收起左侧

关于单片机驱动5641数码管的鬼影现象

[复制链接]
ID:629108 发表于 2019-11-26 22:12 | 显示全部楼层 |阅读模式
单片机萌新发问,搞了个测温系统(用的stc89c52rc),其中的数码管显示遇到了困难,显示测试时发现显示完全相同的四个数字没问题,只要有不同的数字就会出现数字重叠现象  大佬们帮看看呗

电路图.png
4321.png
回复

使用道具 举报

ID:235200 发表于 2019-11-27 00:44 | 显示全部楼层
只需在每一位输出显示前先消除上次显示的数据即可,电路中采用共阳数码管,程序中P0=d[];语句前各加一条P0=0xff;即可
回复

使用道具 举报

ID:278179 发表于 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;
回复

使用道具 举报

ID:470332 发表于 2019-11-27 08:46 | 显示全部楼层
刷新之前清一下缓存
回复

使用道具 举报

ID:401500 发表于 2019-11-27 09:43 | 显示全部楼层
消隐是段位控制的,你用的位码,所有的P0=0XFF,改P2=0XFF,就O了
回复

使用道具 举报

ID:629108 发表于 2019-11-27 23:46 | 显示全部楼层
huwqly 发表于 2019-11-27 05:03
你真执着也真懒,宁可截屏都不拷代码,你的硬件电路应该带移位寄存器吧,P0送消隐P0=0xff后要送P2显示一下 ...

谢谢大佬批评,但是这程序有点问题,第一个程序我让它显示4321但显示的是反着的6、8、9、8.第二个程序我让他显示4321但显示的是111灭。最后还是很感谢。
回复

使用道具 举报

ID:278179 发表于 2019-11-28 05:42 | 显示全部楼层
wojiaodongrui 发表于 2019-11-27 23:46
谢谢大佬批评,但是这程序有点问题,第一个程序我让它显示4321但显示的是反着的6、8、9、8.第二个程序我 ...

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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