51单片机数据管的消影问题

Posted wait_for_that_day5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机数据管的消影问题相关的知识,希望对你有一定的参考价值。

数码管的消影


未消影


代码

#include<reg52.h>
 
sbit wela=P2^7;        //位选  
sbit dula=P2^6;        //段选
void main()

      while(1)
                    //一直显示
           dula=1;
           P0=0x06;   //显示1
           dula=0;
          
           wela=1;
           P0=0xfe;   //选择第一个数码管
           wela=0;
              


运行结果


 

原因


第一个数码管的1显示较亮但是同时伴随着另外较弱一点段位的显示,可以看出是下面位选的影响(0xfe),然后几

个未选择的数码管亮了,可以看出是前面段选带来的影响(0x06->对应位选的就是1,4,5,6位数码管)。

其实消除影响就是把选择过的状态重新置为没有选择过的状态,段选是置为1才选中所以消除影响应该置为0,位选是

置为0才选中所以消除影响全部置为1 。


如何消影


为了消除段选对位选的影响:应该在两者之间加上P0=0xff;

为了消除位选对段选的影响:应该在两者之间加上 P0=0x00;


 

消影


代码

#include<reg52.h>
 
sbit wela=P2^7;        //位选  
sbit dula=P2^6;        //段选
void main()

      while(1)
                    //一直显示
           dula=1;
           P0=0x06;   //显示1
           dula=0;
           P0=0xff;   //消除段选对位选的影响
           wela=1;
           P0=0xfe;   //选择第一个数据管
           wela=0;
           P0=0x00;   //消除位选对段选的影响
              


运行结果



以上是关于51单片机数据管的消影问题的主要内容,如果未能解决你的问题,请参考以下文章

画出单片机连接两位LED数码管显示器的硬件电路,说明显示原理。

时钟程序单片机

怎样用单片机io口控制大功率led灯亮灭,用1117芯片

互联网+上半场,分享经济爆发,腾讯云占据段位优势

单片机RS485通信问题

51单片机学习笔记3 C51数据类型及最小系统