产品概述

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

小编 2024-10-06 产品概述 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,把你的答案写在评论区,分享一下吧!

单片机驱动数码管设计详解(用74HC595实现)

简单设计了一个单片机驱动数码管的电路,该设计中只使用了4位数码管,占用了单片机3个IO口,如果驱动芯片全用满可以驱动8位数码管。仅供初学者分享学习。

1. 数码管显示设计

本设计使用了一个4位的数码管,为共阳型,为了节省单片机的IO口,使用了两片74HC595作为数码管的驱动芯片,共占用3个IO口。74HC595部分电路图如下:

与单片机相连接的三个脚分别为:HC_DAT,HC_RCK,HC_CLK。两片595采用级联方式,即U2的第9脚接到U3的第14引脚。

2. 74HC595简介

74HC595是8位的移位寄存器,串入并出,并具有锁存功能,被广泛的用于数码管、点阵的驱动电路中。其管脚介绍如下:

15:数据输出A-接数码管数据A段;

1:数据输出B-接数码管数据B段;

2:数据输出C-接数码管数据C段;

3:数据输出D-接数码管数据D段;

4:数据输出E-接数码管数据E段;

5:数据输出F-接数码管数据F段;

6:数据输出G-接数码管数据G段;

7:数据输出H-接数码管数据H段;

16:电源正脚-接电源正;

8:电源负脚-接电源负;

14:数据输入脚-接单片机管脚;

12:数据锁存时钟-接单片机管脚;

11:数据输入时钟-接单片机管脚;

13:使能输出脚-低电平有效,接低电平;

10:数据清零-不清零,接高电平;

9:数据级联输出-接下一片595的数据输入脚;

74HC595的真值表如下:

知道了74HC595的引脚定义和真值表,那该如何编程呢?下面重点来了,通过时序图来编程。看重点!!!

3. 74HC595时序图

我是重点!我是重点!我是重点!

通过时序可以看出:

SCK是上升沿的时候要把数据写入;

RCK是上升沿的时候数据才能锁存显示;

有数据操作的过程中RESET必须是高电平;

EN必须是低电平,595才能工作;

知道了以上4点就可以写程序了。其中3、4条是硬件连接上的事情(也可以用单片机的IO口来连接,这样的话可以随时控制74HC595的工作与否情况)。写程序主要靠1、2条。下面具体操作。

4. 程序实例

看下面一段程序:

第39行:HC595_CLK(0)的原型如下:

HC595_CLK(0)是让CLK处于低电平,即上升沿还没有来到;

HC595_DAT(1)就是要把写入的数据准备好;

temp<<1是将数据移位,即一个字节分八次写入;

HC595_CLK(1)是让CLK处于高电平,即上升沿来了;

以上几句解释一下就是:

在CLK时钟上升沿来临之前把要写入的数据准备好,等上升沿来了就把准备好的数据写入。 这就是对时序图的解释。

记住,这仅仅是把数据写入到了74HC595中,但是还没有让74HC595锁存,即没有让数据显示出来,如果让数据显示的话,必须要给RCK一个上升沿(即时序图中的第2条),操作如下:

单片机执行完这个程序后,数据才会在数码管上显示出来。

这一节内容的难度较大,主要是因为时序图这个东西是很模糊的一个内容,大家可以慢慢理解体会。

本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。公众号:micropoint8

相关问答

单片机 数码管接 线需要什么?

单片机和数码管接线要限流电阻。单片机和数码管接线要限流电阻。

单片机数码管 与芯片怎么接?

数码管分共阴和共阳两种,公共端接电源或者地,其他ABCDEFGH接单片机的IO,数码管的断怎么分配看数码管的引脚图,之后通过单片机的IO可以驱动数码管,多个数码管...

单片机 驱动两位 数码管 怎么连接?

1.连接电源和地线:将单片机的VCC引脚连接到数码管的VCC引脚,将单片机的GND引脚连接到数码管的GND引脚。2.连接控制引脚:将单片机的IO引脚分别连接到数码管的...

单片机 如何驱动四位 数码管 ?

驱动四位数码管,这要看数码管是共阴极或共阳极两种数码管,要四位数码管显示,只需要让a、b、c、d、e、f、g、dp(这几段称为段选端)单片机控制这8段中的其中几...

图中的6位 数码管 是怎么连接到51 单片机 I/O口上啊-ZOL问答

每个数码管的对应段都并联在一起,这样一共就有8根线,这8根线就是段信号,每个数码管的公共端分别引出来,这个都叫位信号,数码管分共阳和共阴的,这个不一样的话...

8段led 数码管 怎么找 单片机 ?

拿8段1位数码管做例子。8段指有8个LED,如果是共阴极的,那这8个LED的负极连在一起,正极不连。8个LED的8个正极分别连一个限流电阻,再接到单片机一个IO引脚上...

单片机 数码管 显示时位控和段控的信号怎么输进来?

显示分静态/动态2种,动态需定时循环刷新位控码和段码,静态时不用段码一般由2种方式驱动,一种是并口直接驱动或者并口加锁存器驱动,一种是串口转并口驱动这...

共阳极四位七段 数码管 (12个引脚)怎么连接到 单片机 上啊?

哦,这个啊……正面看的话,上面6脚,下面6脚,共12脚上面从左到右是1,a,f,2,3,b下面从左到右是e,d,dp,c,g,4其中1,2,3,4是4个数码管的位选,因为是共阳,所以这...

单片机 仿真 数码管 怎么找?

要找单片机仿真数码管,你可以在电子元器件市场或在线电子商务平台上搜索。在搜索框中输入关键词,如“单片机仿真数码管”或“数字显示模块”,然后浏览结果。...

hs5461共阴极 数码管 怎么接在C52 单片机 上,哪个引脚接哪个?

四位共阴数码管的4个公共端要接一个驱动器,再接到单片机的某4个端口上就行了,这4个引脚是可以随便找的,主要看单片机的引脚是未用的就行了。驱动器可用同相的...

猜你喜欢