技术文档

单片机 595 单片机IO口不够用?用74HC595这个芯片搭建电路就可以了

小编 2024-10-14 技术文档 23 0

单片机IO口不够用?用74HC595这个芯片搭建电路就可以了

半导体工艺的发展,已经让集成电路的规模越来越大

高集成度芯片

这也促使单片机的价格越来越低,应用越来越广泛

功能强大的单片机

在单片机应用中,常遇到单片机IO口不够用的情况

这个时候就需要一款芯片来扩展IO口了,它就是——74HC595

芯片74HC595

芯片74HC595

芯片74HC595简介

74HC595是一个8位串行输入,并行输出的位移缓存器,管脚图如下所示

74CH595管脚图

(1). 1~7&15脚(Q0~Q7):并行数据输出脚,分别对应并行数据的8位

(2). 8脚(GND):电源负极

(3). 9脚(SQH):串行输出端,SCK的每一个脉冲,Q7当前数据移出

(4). 10脚(SCLR):寄存器清除端,此脚电平为低电平时,清除移位寄存器的数据

(5). 11脚(SCK):移位寄存器的时钟输入脚,在上升沿时,数据被移位

(6). 12脚(RCK):输出控制引脚,输入上升沿时,Q0~Q7就输出移位寄存器的数据

(7). 13脚(CE):并行输出控制引脚,此引脚为高电平时,Q0~Q7输出为高阻态,低电平时输出为数据

(8). 14脚(SI):串行数据输入脚,输入的串行数据必须在11脚(SCK )为低电平时改变才能正确输入数据

(9). 16脚(VCC):电压正极,最大输入电压5.5V

74HC595逻辑表

典型应用电路

74HC595最多需要5个IO口来控制,既SCLR,SCK,RCK,CE,SI

5个单片机IO口电路

其中SCLR 可以直接接到高电平,使用软件清零(即SCK 多送8个脉冲把数据挤出去)

若不需要高阻态模式,CE 可直接接到低电平,这样就仅需3个单片机IO口就可以扩展多个IO口

3个单片机IO口电路

如果需要扩展多个IO口,只需把上一个74HC595的SQH接到下一个74HC595的SI即可,SCK和RCK时钟共用

3个IO口扩展多个IO口电路

关注作者,学习更多电子电路知识,感谢您的阅读!!!

单片机驱动数码管设计详解(用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 单片机 +74HC 595 控制LED,程序怎样实现整体渐变?( 595 不接OE脚)?

如果你是静态显示,那么灰度是没戏了。如果是动态显示,那就先点亮一个LED,再将595的数据刷新,令所有的LED灭掉,然后亮第二个LED,再将595的数据刷新,令所有...

如何驱动sdi sclk load的74hc 595 数码管?

不懂74595是串入并出8位移位寄存器。数据输入管脚SDA,时钟输入管脚SCL。明白了这些,怎么接单片机就容易了。用一个端口线接SDA,比如p11;再用一个端口线接SCL,...

驱动8*8的点阵屏用什么芯片?

其硬件原理图如下图所示。74HC595只需要占用单片机的3个GPIO口即可,74HC138也占用3个GPIO口,所以使用6个GPIO口即可驱动一个8*8点阵。38*8点阵的取模点阵的...

新手如何入门 单片机 开发?

现在的电子设备几乎离不开单片机,在大学里有学了这么久的单片机。那如何利用单片机来设计一款产品呢?今天来和大家探讨一下。1制定需求首先要清楚你要做一个...

为什么用74hc 595 驱动的数码管没有闪烁感

http://www.crystalradio.cn/bbs/viewthread.php?tid=26564&extra=&page=2有讲多位数码管的,要注册才可以看数码管是一种...

请问51 单片机 中串行通讯方式0中的移位脉冲是什么?是周期的发送脉冲吗?为什么叫移位脉冲?谢谢?

51单片机中串行通讯方式0,还是不要在单片机的这个小范围讨论。使用串行通讯方式0,必须要外接一个移位寄存器:74LS164(或74HC595)、74LS165等。51单片机输出移...

C语言肿么写74hl 595 程序-ZOL问答

74hl595是个芯片。你要往一个芯片上写程序,首先要对这个芯片各个引脚定义非常清楚。把芯片放到单片机烧录器上。用将烧录器用com连接到电脑上,在电...

在线的大侠!求指教 自主研发的 单片机 应用设计方案, 单片机 应...

[回答]通过单片机IO控制扩展口,增加单片机IO口能控制的端口的数量。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据...

单片机 IO口的第二功能是什么??-ZOL问答

单片机IO口第二功能是:P0口的第二功能是数据/地址总线。P2口的第二功能是地址总线P3口的第二功能是控制总线,具体是:P3.0--RXDP3.1--TXDP3.2-...

可不可以帮我编写用51 单片机 加四个按钮分别控制两个步进电机...

5条回答:【推荐答案】程序不复杂,没开发板只能盲写,有点不实际

猜你喜欢