【51单片机】七段数码管显示实验+详细讲解

发布时间:2024-04-07  

前言

继上次仿真实验——【51单片机】矩阵键盘线反转法实验仿真之后,尽管也对点阵LED进行了学习,但是,点阵LED的显示效果不佳(仿真时的色彩、明亮程度等),加上大多数时候我们在计算器上看到的是七段数码管,所以在学习了学校课程之后,我也进行了尝试。这次主要是记录七段数码管的使用方法,在此之后,我考虑把键盘扫描(线反转法)、七段数码管、80C51结合起来,把整个计算器的功能完善,也算是完成一个小项目。

因为我认为光学理论只是很容易忘记,且容易磨灭兴趣,所以在学习过程中以做一个计算器为目标,循序渐进地学习,缺什么知识就补充什么知识,就像前几次所作的一样:
【51单片机】矩阵键盘线反转法实验仿真
【51单片机】点阵LED的显示实验
【51单片机】矩阵键盘逐行扫描法仿真实验+超详细Proteus仿真和Keil操作步骤
下面是这次七段数码管的学习记录。

一、兵马未动,粮草先行——认识七段数码管

1、关于显示器

我们常见的显示器一般分为LED、LCD和CRT,当然除此之外还有其他种类的显示器。其中:

  • LED是发光二极管,核心原理是半导体的电光转化,在电光转化过程中发热很少,相对白炽灯更节能,目前常用作照明工具;

  • LCD是液晶显示器,核心原理是液晶(介于液体和晶体的一种物质)的各向异性使特定区域透光、部分区域不透光来呈现画面;

  • CRT是阴极射线管,常用在示波器和老式电视机上,核心原理是控制电子束的偏转角来控制电子打在荧光屏上的不同位置,使之出现我们想要的图案。

2、七段数码管

今天要说的就是LED中的一员——七段数码管。七段数码管也叫七段LED显示器,是由数个LED组成的阵列,并封装在一个标准的外壳内。
在这里插入图片描述

如图,七段数码管通常有七段,但现在为了表示小数,加入了小数点,所以其实变成了名字叫七段数码管的八段数码管。图上a、b、c、d、e、f、g、dp则是每段的名字。cs管脚类似于片选信号。
我们只需要点亮特定的管脚就能形成一个数字或者字母。

3、七段数码管的结构

在这里插入图片描述
如图是七段数码管的内部结构,将图中的二极管按特定阵列排布就得到了常见的数码管。

  • 共阴极

    :顾名思义,这是将二极管的阴极连接到同一条导线上,只要某路地阳极变为高电平,该路LED就会被点亮。

  • 共阳极

    :二极管地阳极连接到一条到线上并连接电源。当某路阴极变为低电平,该路地LED就会亮起。

4、数码管显示方法

七段数码管显示也有两种方式,分别是静态显示和动态显示

  • 静态显示:在静态显示系统中,每一位显示器都应该有各自地锁存器、译码器和驱动器锁存器,如果软件译码,译码器也可以省略。锁存器用来所存待显示数字的BCD码,所以每次显示输出后都能保持不变。但是占用的位数很多,每一位需要8根数据线。

  • 动态显示

    :在动态显示系统中,微处理器要定时地向各个显示器进行扫描,只要扫描速率足够快,由于视觉暂留现象就会给人以恒定显示的表现。动态显示可以减少硬件的使用,但是需要微处理器一直为它工作。

二、数码管显示程序

1、静态显示

静态显示用到的元件有:74LS273(锁存器)×4、80C51、7SEG-MPX1-CA(七段数码管)×4、RESPACK-8(电阻)、GROUND、POWER和BUTTON
连接线路如图:
在这里插入图片描述

静态显示的代码如下:


#include

 

unsigned int d[4]={0xA4,0xC0,0xA4,0xf9};//共阳极的数码管显示的数字,一次是2、0、2、1

unsigned int cs[4]={0x0E,0x0D,0x0B,0x07};//片选,低电平时,锁存器打开,可以写入数据。高电平时锁存

void main(void)

 { 

   int i;

EA=1;//开中断

EX0=1;//开外部中断0

INT0=1;//下降沿触发INT0中断

for(i=0;i<4;i++){

P2=cs[i];//打开一个锁存器

P0=d[i];//向该锁存器写入数据

}

P2=0xff;//所有锁存器锁存CLK置高电平

 }

 

 void int0() interrupt 0{//终端服务程序

P2=cs[0];

P0=0x8E;

}


效果

在这里插入图片描述

2.动态显示

动态显示用到的元件有:8051、7SEG-MPX4-CA(4位七段数码管)、RESPACK-8(电阻)、GROUND、POWER和BUTTON
接线如图:
在这里插入图片描述


动态显示的代码如下:


#include

 

unsigned int d[4]={0x5B,0x3f,0x5B,0x06};//共阴极的数码管,输出为静态时的反码,由与所用的七段数码管内部不同所致。

unsigned int cs[4]={0x0E,0x0D,0x0B,0x07};//与静态不同,4位7段数码管的片选信号不由锁存器决定,自带的片选管脚功能为高电平选中

void delay(int n){//延时程序

int i;

int j;

for(i=0;i for(j=0;j<120;j++);

}

void main(void)

 { 

int i;

EA=1;

EX0=1;

INT0=1;

while(1){//因为是动态扫描,所以必须不停地扫描

for(i=0;i<4;i++){

P2=cs[i];

P0=d[i];

delay(10);

}

}

 }

 void int0() interrupt 0{

P2=cs[0];

P0=0x71;

}


效果

在这里插入图片描述


总结

以上就是两种类型的七段数码管(共阴极和共阳极)的两种不同的显示方式(静态和动态)。这里对七段数码管的学习,我会用到计算器的制作中,加以巩固。也希望和小伙伴们一起学习,有时间我也会多多分享学习的知识,记录学习过程。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>