2021-05-08 51单片机74HC164、74LS164、74HCT164、74HC154、74HCT154应用三极管控制继电器

74HC164、74HCT164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,非同步地清除寄存器,强制所有的输出为低电平。
兼顾回复求大佬题目三,串行静态显示系统设计_编程语言-CSDN问答

2021-05-08 51单片机74HC164、74LS164、74HCT164、74HC154、74HCT154应用三极管控制继电器_第1张图片2021-05-08 51单片机74HC164、74LS164、74HCT164、74HC154、74HCT154应用三极管控制继电器_第2张图片2021-05-08 51单片机74HC164、74LS164、74HCT164、74HC154、74HCT154应用三极管控制继电器_第3张图片
发送数据时序可看到8个时钟脉冲对应的数据为11110010,程序与电路图如下。

#include "reg52.h"
sbit Sab=P3^4;
sbit clk=P3^5;
void QD164(unsigned char sj)
{
	char aa=8;
	clk=0;
	while(aa--)
	{
//		Sab=sj%2;sj/=2;//数据发送从低位
//		Sab=(127+sj%2)/(sj%2);sj/=2;//对应位移八位
		Sab=sj&0x80;sj<<=1;//数据发送从高位
    clk=1;//上升沿发生移位 上升沿时数据寄存器的数据锁存。
    clk=0;
	}
}
void main()
{
	unsigned int ys=0;unsigned char xd=0,a=0x66;QD164(a);
	while(1)
	{
//		QD164(a);
		//if(!(++xd))
	}
}

2021-05-08 51单片机74HC164、74LS164、74HCT164、74HC154、74HCT154应用三极管控制继电器_第4张图片

2021-05-08 51单片机74HC164、74LS164、74HCT164、74HC154、74HCT154应用三极管控制继电器_第5张图片

你可能感兴趣的:(51单片机,嵌入式硬件,单片机)