74HC595

这里写图片描述
由真值表可以看出,我们在这里,当SER(串行数据输入端)是低电平的时候,并且SCK是上升沿的时候,并且SCLR(取非)是高电平的时候,数据输入端的值也就是低电平,同理当SER是高电平的时候,SCK是上升沿,SCLR(取非)是高电平的时候,数据输入端的值是高电平,这个就是我们需要去写的数据的方法,

再去看看那个RCK(数据输出时钟线),这个时钟线是用来使串行数据的数据并行输出的一个时钟线,当RCK是上升沿的时候,这里就直接通过8个并行口输出出去,当是下降沿的时候,这里就是寄存器保持所存状态,就是输出上一次的数据(锁存当前数据,输出上一次的数据,跟上一次的数据结果是一样的)

void my595_Out(void)//上升沿产生
{
    Duan_RCLK = 1;//数据输出时钟线
    _nop_();//这里需要1us左右的时间去等待它
    Duan_RCLK = 0;//数据输出时钟线
}

void SendData(unsigned char Byte)
{
    int i;
    for(i=0;i<8;i++)
    {
        Duan_SRCLK = 0;//
        Duan_SER = Byte&0x80;//这里我们是用来去将我们的数据一位位传给锁存器,所以这样传输
        Byte<<=1;
        Duan_SRCLK = 1;
    }

}

猜你喜欢

转载自blog.csdn.net/qq_34988341/article/details/78816774
今日推荐