74HC595芯片工作原理(附使用方法)

一、74HC595脚位图及说明
在这里插入图片描述
管脚说明:

14脚:DS(SER),串行数据输入引脚
13脚:OE,输出使能控制脚,它是低电才使能输出,所以接GND
12脚:RCK(STCP),存储寄存器时钟输入引脚。上升沿时,数据从移位寄存器转存到存储寄存器。
11脚:SCK(SHCP),移位寄存器时钟引脚,上升沿时,移位寄存器中的bit 数据整体后移,并接受新的bit(从SER输入)。
10脚:MR,低电平时,清空移位寄存器中已有的bit数据,一般不用,接 高电平即可。
9 脚 :串行数据出口引脚。当移位寄存器中的数据多于8bit时,会把已有的bit“挤出去”,就是从这里出去的。用于595的级联。
Q0~Q7:并行输出引脚
使用参数:

VCC:2V~6V,5V最好
IQn:± 35mA
注意事项:

第一个从SER送入的bit将会从Q7出去。
二、74HC595详细介绍
74HC595的最重要的功能就是:串行输入,并行输出。

其次,74HC595里面有2个8位寄存器:移位寄存器、存储寄存器。

74HC595的数据来源只有一个口,一次只能输入一个位,那么连续输入8次,就可以积攒为一个字节了。

2.1、移位寄存器
74HC595的移位寄存器工作方式就像弹夹,但是子弹的发射(移位寄存器中的数据转储到存储寄存器)。

为什么说和弹夹很像呢?

1、串行输入,已进入的位数据依次下移(所以叫移位寄存器) | 子弹也是一颗一颗上的,先上的子弹,被后上的慢慢往下压。
2、第一个输入的位,是并行输出的最后一个位 | 最先进入弹夹的子弹,最后射出。
74HC595的14脚:DS,又叫SER 英文全称是:Serial data input ,顾名思义,就是串行数据输入口。
595的数据来源只有这一个口,一次只能输入一个位,那么连续输入8次,就可以积攒为一个字节了。

假如,我们要将二进制数据0111 1111 输入到595的移位寄存器中,下面来上一张动态图,模拟了前2个位输入的情景。
在这里插入图片描述
0111 1111 这个数据完全输入后是这样的:
在这里插入图片描述
74HC595的11脚,(shift register clock input) 移位寄存器时钟引脚。上升沿有效。
首先我们要介绍这个引脚的作用,我们知道单片机的工作离不开晶振,他使CPU的工作步调稳定有序,就像跑步时喊1,2,1的那个人。那么这里的位移寄存器时钟也是同样的道理,当一个新的位数据要进来时,已经进入的位数据就在移位寄存器时钟脉冲的控制下,整体后移,让出位置。

上升沿:电平从低到高的那个过程。移位寄存器时钟在上升沿这个过程中才起作用。
在这里插入图片描述

2.2、存储寄存器
怎么将移位寄存器的数据转移到存储寄存器。存储寄存器是直接和8个输出引脚相通的,将移位寄存器的数据转移到存储寄存器后,Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 就可以接收到我们开始输入的一个字节的数据。所谓存储寄存器,就是数据可以存在这个寄存器中,并不会随着一次输出就消失,只要595不断电,也没有新的数据从移位寄存器中过来,数据就一直不变且有效。新的数据过来后,存储寄存器中的数据就会被覆盖更新。

74HC595的12脚: (storage register clock input ) 存储寄存器时钟
数据从位移寄存器转移到存储寄存器,也是需要时钟脉冲驱动的,这就是12脚的作用。它也是上升沿有效
在这里插入图片描述
2.3、74HC595级联
就是说,通过将多个595串联起来,可以实现更大容量的数据输入和输出。这就好比将多个单个的595组合在一起,形成一个更强大的595,可以同时控制更多的设备或输出更多的数据。这种串联的方式可以扩展输出的数量,使得控制电路更加灵活和功能更加强大。

部分程序:

// ****************************************************************************
// 595控制操作函数
// ****************************************************************************
void HC595_Send(u16t Data)
{
	u16t mbx;
	
	for(mbx = 0; mbx < 16; mbx++)
	{
		SHCP_595 = 0;
		if(Data & 0x8000)     // DS引脚输出高电平
		{
			DS_595 = 1;
		}
		else                  // 否则输出低电平
		{
			DS_595 = 0;
		}		
		Data <<= 1; 
		SHCP_595 = 1;
	} 
		SHCP_595 = 0;	
		Delay(2);
		STCP_595 = 1;
		Delay(2);
		STCP_595 = 0;
		Delay(2);
		OE_595 = 0;
	
  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就爱吃夜宵

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值