单片机驱动数码管设计详解(用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
51单片机实例讲解,数码管显示数字“5555”程序
利用单片机及某些数字电路块的结合,可以实现静态字符的显示。本例是利用74LS164八位移位寄存器(串入、并出)与单片机串行口结合,使数码管静态显示数字“5555”。
(1)数码管显示数字“5555”硬件电路(见图20)。
图20 显示字符“5555”接线原理图
在图20的电路中,74LS164的相关引脚与数码管的a、b、c、d、e、f、g引脚相连接,并且74LS164为串行输入、并行输出,所以L4LS164串行输入的数据与数码管对应字符的关系见表7。
表7 L4LS164串行输入的数据与数码管对应字符的关系表
(2)数码管显示数字“5555”硬件电路元器件(见表8)。
表8 数码管显示数字“5555”硬件电路元器件表
(3)数码管显示数字“5555”程序流程图(见图21)。
图21 显示数字“5555”程序流程图
(4)数码管显示数字“5555”程序。
相关问答
单片机 开发板上,怎么拆焊 4位数码管 ?-ZOL问答原因:51系列单片机(如果你用的是的话)的输出方式为强下拉/弱上拉,一看这名字就知道,高电平输出电流很小,所以数码管会很暗。举个例子,最简单的流水灯实验电路为...
74HC373和ULN2003接入 单片机 后能驱动 4位 的 数码管 么,详细说明下,非常感谢?最好先查一下这两颗芯片的驱动电流大小。一般来说,灌电流大一些。其次,要关注数码管的型号,因为不同数码管需要的驱动电流大小不同最好先查一下这两颗芯片的...
arduino 单片机 四 位数码管 怎么接?四位数码管可以使用共阴或共阳的方式进行接线。共阴方式的接法是将四个阴极分别接到单片机的不同输出端口,共阳方式的接法是将四个阳极分别接到单片机的不同输...
AT89C51 单片机 怎么用汇编语言让4个 数码管 同时显示1234?ORG00HAJMPMAINORG30HMAIN:LCALLDISPMOV20H,#1MOV21H,#2MOV22H,#3MOV23H,#4AJMPMAINDISP:MOVA,...
单片机 C51与12脚 4位数码管 的连接?与单片机的连接没有什么要求,你自己写程序的时候对应就可以了比如说我将1234四个脚分别接P2.0~P2.3引脚,在写程序的时候注意1对应P2.0引脚,同理234.尽管数码...
单片机数码管 四位和四位时钟有什么区别?回答如下:单片机数码管四位和四位时钟的区别在于它们的功能和用途不同。单片机数码管四位是一种显示器件,用于显示数字、字母和符号等信息,通常用于电子钟表...
共阳极四位七段 数码管 (12个引脚)怎么连接到 单片机 上啊_作业帮[最佳回答]哦,这个啊……正面看的话,上面6脚,下面6脚,共12脚上面从左到右是1,a,f,2,3,b下面从左到右是e,d,dp,c,g,4其中1,2,3,4是4个数码管的位选,因为是共阳,...
51 单片机 8个 数码管 初始显示“87654321”,然后用8个独立按键...51单片机8个数码管初始显示“87654321”,然后用8个独立按键分别控制这8个数码管,每按一个键,相对应的数码管更换显示字符,要求8只按键按完后,数码管显示“nJnU...
单片机 与 数码管 的连接?拿8段1位数码管做例子。8段指有8个LED,如果是共阴极的,那这8个LED的负极连在一起,正极不连。8个LED的8个正极分别连一个限流电阻,再接到单片机一个IO引脚上。...
单片机 一般用 数码管 还是LCD1602?单片机的显示设备可以选择使用数码管或LCD1602两种。数码管具有显示数字、字母、符号等的优势,而且价格便宜,电源消耗小,是一种比较常用的显示方式。但数码管...