74HC595的用法与原理

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

VCC:2V~6V,5V最好
IQn:± 35mA

使用方法:

74hc595有移位寄存器、存储寄存器,移位寄存器可以存储8位电平,存储寄存器中的数据可以输出8位电平

先给SER电平,再给SCK上升沿,就可以把SER电平读取到移位寄存器,并将原本的第一位数据往下移一位,重复八次就可以存满8位,然后给RCK一个上升沿就可以把8位移位寄存器的数据传给存储寄存器,然后存储寄存器就会自动输出电平。

级联:几个74HC595的级联原理

因为74hc595如果移位寄存器输入超8位,就会从Q7'/Q7S引脚输出出去,所以将Q7'/Q7S与另一一个74hc595的SER引脚相连,然后把要级联的74hc595的SCK  RCK连在一起,这样就可以让全部的移位寄存器一起移位,等第一个74hc595的移位寄存器满,第九位数的读取就会把hc74595多出的最先第一位,从Q7'/Q7S引脚输出出去并被第二个74hc595读取重复八次就又读满一个hc74595,就这样一直读取,想用n个74hc595,就可以读取n*8位电平,又因为RCK全部连在一起,然后给RCK一个上升沿就可以把8位移位寄存器的数据传给存储寄存器,然后存储寄存器就会自动输出电平,输出n*8位电平

下面是级联三个74hc595的案例

void SCK_ON(void)
{
	GPIO_ResetBits(GPIOB, GPIO_Pin_1|GPIO_Pin_0);
}

void SCK_OFF(void)
{
	GPIO_SetBits(GPIOB, GPIO_Pin_1|GPIO_Pin_0);
}
void SER_ON(void)
{
	GPIO_ResetBits(GPIOB, GPIO_Pin_7);
}

void SER_OFF(void)
{
	GPIO_SetBits(GPIOB, GPIO_Pin_7);
}
void RCK_ON(void)
{
	GPIO_ResetBits(GPIOB, GPIO_Pin_2 | GPIO_Pin_10);
}

void RCK_OFF(void)
{
	GPIO_SetBits(GPIOB, GPIO_Pin_2 | GPIO_Pin_10);
}
int kk = 0;
void hc545_output(u32 status)
{
	SCK_OFF();
	SER_OFF();
	RCK_OFF();
	for(kk=0;kk<24;kk++)
	{
		SCK_OFF();
		if(status&0x00800000)
		{
			SER_ON();
		}
		else
		{
			SER_OFF();
		}
		status<<=1;
		SCK_ON();
	}
	kk=0;
	RCK_OFF();
	Delay_ms(3);
	RCK_ON();
	Delay_ms(3);
}

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

广药门徒

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值