数码管静态显示

  今天就来说一下二极管的显示,也帮助我自己理解。

  下面来看一段代码。

这是让第一个数码管显示一个8字。

#include<reg52.h>
sbit dula=P2^6;
sbit wela=P2^7;
void main()
{
   wela=1;
   P0=0xFE;
   wela=0;
   dula=1;
   P0=0x7F;
   dula=0;
   while(1);
}

第一行是52系列单片机头文件,我们来看第二行,申明U1锁存器的锁存端,因为数码管的阳极都是连接到U1锁存器的输出端,锁存器的数据输入端是链接到单片机的P0口,第三行就是申明U2锁存器,每一个数码管都对应一个位选端,与U2锁存器的输出端的第六位相连,U2锁存器的数据输入端也是连接的单片机的 P0口相连,两个锁存器的锁存端分别与单片机的P2.6和P2.7相连,因为单片机可以控制锁存器的锁存端,进而控制锁存器的数据输出。

进入主函数后,首先打开U2锁存器,就给他一个高电平,然后输入位选信号,这里的P0=0xFE,是十六进制数,转换成二进制数就是1111 1110就是打开第一个数码管的位选,位选选通时为低电平,关闭时为高电平。然后关闭U2锁存器。位选确定后,再确定段选,要显示8,除了点不亮意外,其余都要亮,所以接着用操作U2的方法操作U1,给U1的数据输出端再送一个0x7F,二进制为0111 1111。

这是数码管的静态显示。通过一个简单的例子,来了解它如何通过写一端正序程序来让数码管那几个显示显示什么数。


猜你喜欢

转载自blog.csdn.net/xhl1123456789/article/details/80050534