74hc595为串行转并行芯片(输出芯片)
74hc597为并行转串行芯片(输入芯片)
管脚图:
典型应用:
真值表:
时序图:
//应用程序
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;
}