74HC597( 8位输入锁存移位存放器) 使用总结

本文介绍了74HC597并行转串行芯片的基本原理及应用,通过具体的管脚说明和示例代码展示了如何使用该芯片进行数据读取。文章还提供了初始化设置和数据读取过程的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

74hc595为串行转并行芯片(输出芯片)

74hc597为并行转串行芯片(输入芯片)

管脚图:

HC597管脚图

典型应用:

典型应用

真值表:
真值表

时序图:
时序图

//应用程序

sbit HC597_PL0  = P0^3;  //并行加载  (高电平时禁止输出(高阻态))
sbit HC597_STcp = P0^2;  //移位时钟  (上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变)
sbit HC597_SHcp = P0^1;  //储存时钟  (上升沿时数据寄存器的数据移位)
sbit HC597_MR0  = P0^0;  //主复位    (低电平时将移位寄存器的数据清零)

sbit HC597_U1D = P1^0;   //数据口

unsigned char read_HC597(void)
{
    unsigned char  Dat1=0;
	u8  i = 0;
	HC597_MR0 = 0;  //清除寄存器数据
	_nop_();_nop_();

	HC597_PL0  = 0;  //	
	HC597_STcp = 0;	

	_nop_();_nop_();

	HC597_MR0  = 1;  //输入数据
	_nop_();_nop_();	

	HC597_PL0  = 1;  //读取开关数据
	HC597_STcp = 1;	 //RCK置上升沿(数据加载到输入锁存器)	

	for(i=0;i<8;i++)
	{
		 Dat1 <<= 1 ;
		if(HC597_U1D) Dat1 |= 0x01;
		
		HC597_SHcp = 0; //数据可变
		_nop_();	
		HC597_SHcp = 1; //数据不变	
		_nop_();	
	}
	return Dat1;
}