产品选型

单片机 led数码管 如何用单片机控制数码管(带原理图程序注释)

小编 2024-10-09 产品选型 23 0

如何用单片机控制数码管(带原理图程序注释)

说起数码管这个器件时,你可能会对它产生好奇,是怎样控制它显示数字字母的,也许正是因为这个好奇心驱使我们总想去了解它使用它。

数码管:由多个发光二极管封装在一起组成8字结构,引线已在内部完成,我们只需引出他们的各个笔画,公共电极。数码管实际上由七个发光二极管组成“8”字型结构,加上小数点就是8个,这些段位分别由a,b,c,d,e,f,g,dp来表示。

数码管(图片来源于网络)

数码管(图片来源于网络)

数码管(图片来源于网络)

在市场上可以分为两种数码管,分别为共阳极,共阴极,共阳极顾名思义就是把LED的正极端连在一块,在点亮的时候只需要把另一端通过单片机的指令让其接地即可,共阳极也是如此(本篇中为共阴极)。

原理图如下:

原理图

原理图

在单片系统中扩展LED数码管多用共阳极数码管,原因就是选用共阴极数码管在用单片机驱动时,所用的驱动功率较大,共阳极就避免了这个问题,在使用的时候为了避免电流过大,还需在每个字段要串联一个电阻。

但是在使用的时候由于数码管端口较多,想要控制多个数码管的话,还需加74H573锁存器,在本篇讲解中使用该锁存器,数码管采用共阴极。

74H573

原理图

如果想让上图中第一个数码管显示字母'b',则只需要控制相应的位拉高(既c,d,e,f,g),其余为低电平即可,转化成二进制就是0111 1100。

控制代码如下

#include <reg52.h>

sbit duan=P2^6;//定义段选

sbit wei=P2^7;//定义位选

main()

{

P0=0x07;//0111 1100--b

duan=1;//锁存IC失能

duan=0;

P0=0xfe;//1111 1110

wei=1;//锁存IC使能

wei=0;

while(1);

}

在程序中出现断选和位选,所谓断选就是控制数码管显示什么,位选是控制哪一个数码管亮,文章中是想让第一个数码管点亮,在程序中只需让第一个数码管是低电平,其余是高电平即可,转化为二进制就是1111 1110,另外程序中还有让断选或位选等于0和等于1的那句话,这可以理解为锁存器的启动,这样可以把数据写进去而且后期不能随便修改。

小伙伴们你们学会了吗?敢不敢来试试,点亮第三个数码管,显示数字9,把你的答案写在评论区,分享一下吧!

详解数码管显示控制

数码管种类繁多,按外观来划分,可以分为七段数码管、米字型数码管、点阵块等。图8-5所示为各种不同形状的数码管。

图8-5 各种不同形状的数码管

LED数码管结构与工作原理

单片机系统中常用的是七段数码管,它由8个发光二极管(以下简称字段)构成,如图8-6(a)图所示(注:由于小数点字段不常用,所以一般称为七段),通过不同的组合可以显示数字0~9、字符A~F、H、L、P、U、符号“-”及小数点“.”。

根据发光二极管物理连接的不同,七段数码管可以分为共阴极和共阳极两种结构。共阴极型数码管如图8-6(b)所示,所有字段的阴极均连接低电平,因此在使用共阴极数码时,需要在相应字段上加高电平,才会使其发光。共阳极数码管如图8-6(c)所示,所有字段的阳极均连接高电平,在使用时,需要在相应字段上加低电平。

图8-6 7段数码管结构

LED数码管字型编码

在单片机与数码管组成的应用系统中,一般将单片机的一个并口与数码管的8个段控制引脚连接,且按照口线位的顺序由低到高与a、b、c、d、e、f、g、h连接,这样,若要显示不同字符,只需应用单片机的口线输出相应的控制的电平就可以实现。向口线送的数据就是LED的字型编码。共阴和共阳的字型编码如表8-2所示。

表8-2 共阴和共阳的字型编码表

LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态显式和动态显式两类。

LED数码管静态显示

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口线进行驱动,或者使用如BCD码、二–十进位解码器解码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口较多,如驱动5个数码管静态显示则需要5×8=40根I/O口线来驱动,而1个89S51单片机可用的I/O口线才32个。

2位共阳极数码管的静态显示电路如图8-7所示。

图8-7 2位共阳极数码管的静态显示电路原理图

显示数字12的C51程序如下:

LED数码管动态显示

数码管动态显示是单片机中应用最为广泛的显示方式,动态驱动是将所有数码管的8个同名端“a,b,c,d,e,f,g,h”连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。

当单片机输出字形码时,所有数码管都接收到相同的字形码,究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制。通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示,不会有闪烁感,动态显示的效果和静态显示相同,并且能够节省大量的I/O口线,降低功耗。

2位共阳极数码管动态显示电路如图8-8所示。

显示数字12的C51程序如下:

图8-8 2位共阳极数码管动态显示电路原理图

相关问答

(求大神解答)选择:1.一个 单片机 应用系统用 LED数码管 显示字...

[最佳回答]1.一个单片机应用系统用LED数码管显示字符“8”的段码是80H,可以断定该显示系统用的是(B)。A、不加反相驱动的共阴极数码管B、加反相驱动的共阴极...

单片机 里声明 LED数码管 为共阴,共阳的代码怎么写?

共阳共阴不通用,共阳的消隐应该是P0=0。在位选打开之后首先读到的就是消隐程序(P0=0xff),郭的数码管是共阴,也就是位选低电平有效,而P0=0xff八位都是高...共...

单片机数码管 ac是共阴还是?

单片机数码管AC是共阳,不是共阴。共阳数码管的阳极连接到电源正极,而阴极则连接到单片机的输出接口。在控制数码管显示数字时,单片机会通过输出接口控制相应的...

单片机 控制的 LED 动态扫描显示原理?

现已DS8为个位来讨论,十、百、千为分别为DS7、DS6、DS5。1、首先要了解的是此数码管为共阴极数码管,即三极管Q16、Q15、Q14、Q13导通时数码管才能点亮,亦即相...

求问关于 单片机LED 灯的问题我让P0^2亮是左数第三个亮,为什么...

[最佳回答]第一种可能:看单片机的数据手册,确定P0^2对应的是第几个BIT.看你的结果,貌似是P0^0对应最高bit第二种可能:你的板子上LED的排列导致的.第一种可能...

关于 单片机 独立按键切换 数码管 显示不同数字?

都是逐个点亮,只不过流水灯间隔时间慢一点,数码管间隔时间快一点,当后者间隔时间小于0.1s时(实际上最好小于0.01s),由于视觉暂留效应,人类就觉察不到数码...

在mc s51系列 单片机 应用系统中 led数码管 显示电路通常有什么显示方式?

在51系列单片机的应用系统中,LED数码管通常采用共阳扫描显示方式,选择单片机的一个8位IO口,作为数码管的段驱动,也就是a、b……dp段驱动,每段都需串联限流电...

单片机led 是高电平亮还是低电平亮?

单片机引脚驱动,LED是高低电平均可点亮,但通常是低电平驱动LED发光管,原因是单片机低电平输出电流比高电平输出电流要大一些。不管是高电平还是低电平,驱动L...

LED单片机 音量灯用的什么型号的集成块-ZOL问答

5条回答:【推荐答案】LM3915音频指示可以驱动10个led投影机轰天砲讨论回答(5)可以考虑用热风枪,简单方便其实用个AD转化芯片就好,采集音量的模拟信号,然后...

51 单片机 ,用外部中断0和外部中断1实现:1个七段 LED数码管 显示值加1和减1。程序怎么编?

另类计数器,仿真实例,可以参考一下,仿真试试。功能,1个主机---3个从机,主机按键1#、2#、3#、分别控制从机1、2、3、按钮按一下加1,从机x1#控制主机...

猜你喜欢