技术文档

单片机编程数码管 51单片机实例讲解,数码管显示数字“5555”程序

小编 2024-11-24 技术文档 23 0

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”程序。

单片机驱动数码管设计详解(用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

相关问答

单片机数码管 程序怎么写?

单片机数码管程序可以通过以下步骤来编写:首先,需要确定使用的数码管类型(共阴极还是共阳极),并且了解其引脚连接方式。然后,通过设置相应的端口为输出模...

单片机编程 交通灯,求 数码管 显示程序,先显示45秒倒计时,然后从25秒开始倒计时,再从45秒倒计时?

仿真实例,有汇编的也有C语言的。仿真实例,有汇编的也有C语言的。

单片机数码管 亮度怎么调?

有两种常用方法,一种是用硬件对数码管的发光管进行限流调节,即是加装电理进行电流控制,从而控制数码管的亮度。弟二种方法是用软件对数码管的发光时间进行控...

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

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

51 单片机 8个 数码管 初始显示“87654321”,然后用8个独立按键...

51单片机8个数码管初始显示“87654321”,然后用8个独立按键分别控制这8个数码管,每按一个键,相对应的数码管更换显示字符,要求8只按键按完后,数码管显示“nJnU...

如何将 数码管 与LCD同时接入 单片机 ,我想做一个999秒的倒计时,同时用LCD显示我的英文名字?

用个引脚比较多的单片机就可以了。比如STC89C52等等。数码管用扫描方式,LCD如果用1602就直接写,也不会占用单片机多少时间。用个引脚比较多的单片机就可以了...

什么是 数码管 的消影? 单片机 是如何做的?

这主要为下面锁存位选码做准备,共阴数码管,位选为0有效,这样先输出全1,下面wela=1;开位选锁存器了,但因P0为全1,不会有数码管亮。然后才输出有用位选码,P0...

你好,问下4位8段共阴 数码管 ,段选接 单片机 P0口时为什么要加上拉电阻,电阻加多大的合适?

一般的单片机的输出电流都不大,不足以直接点亮数码管,加上拉电阻是为了提高数码管亮度,除了用上拉电阻,还可以加三极管,电路如图所示。数码管可以是共阴的也...

单片机 C语言中 数码管 的断码和位码定义起什么作用?

在单片机C语言中,数码管的段码定义了数码管的显示内容,比如0~9的显示段码分别定义为:共阳:ucharcodeledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7...

数码管 段选和位选在接线上怎么体现,求大神,感激不尽?

单片机和数码管的动态扫描接口时,用到段选与位选的概念,段选用一个输出口(8位二进制数0-7,不用小数点为7位,用小数点8位),位选用一个输出口(可根据数码管...

猜你喜欢