找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

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

查看数: 2580 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-11-26 22:12

正文摘要:

单片机萌新发问,搞了个测温系统(用的stc89c52rc),其中的数码管显示遇到了困难,显示测试时发现显示完全相同的四个数字没问题,只要有不同的数字就会出现数字重叠现象  大佬们帮看看呗

回复

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

你的电路是IO直接驱动数码管位的,第二个程序是支持移位寄存器的参考代码
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:401500 发表于 2019-11-27 09:43
消隐是段位控制的,你用的位码,所有的P0=0XFF,改P2=0XFF,就O了
ID:470332 发表于 2019-11-27 08:46
刷新之前清一下缓存
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:235200 发表于 2019-11-27 00:44
只需在每一位输出显示前先消除上次显示的数据即可,电路中采用共阳数码管,程序中P0=d[];语句前各加一条P0=0xff;即可

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

Powered by 单片机教程网

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