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

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

单片机引脚如何控制数码管(如何用单片机控制数码管)(1)

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

单片机引脚如何控制数码管(如何用单片机控制数码管)(2)

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

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

原理图如下:

单片机引脚如何控制数码管(如何用单片机控制数码管)(3)

原理图

单片机引脚如何控制数码管(如何用单片机控制数码管)(4)

原理图

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

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

单片机引脚如何控制数码管(如何用单片机控制数码管)(5)

74H573

单片机引脚如何控制数码管(如何用单片机控制数码管)(6)

原理图

如果想让上图中第一个数码管显示字母'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,把你的答案写在评论区,分享一下吧!

,