简介
74HC595 是一个 8 位串行输入、并行输出的位移缓存器,其中并行输出为三 态输出(即高电平、低电平和高阻抗)

15 和 1 到 7 脚 QA--QH:并行数据输出
9 脚 QH 非:串行数据输出
10 脚 SCLK 非( MR) : 低电平复位引脚
11 脚 SCK( SHCP) : 移位寄存器时钟输入
12 脚 RCK( STCP) : 存储寄存器时钟输入
13 脚 G 非( OE) : 输出有效
14 脚 SER( DS) : 串行数据输入
74HC595 是具有 8 位移位寄存器和一个存储器,三态输出功能。
移位寄存器 和存储器是单独的时钟。
数据在 SCK 的上升沿输入,在 RCK 的上升沿进入到存 储器中。
如果两个时钟连在一起,则移位寄存器总是比存储器早一个脉冲。
移位 寄存器有一个串行输入(DS),和一个串行输出(Q7 非),和一个异步的低电
平复位,存储寄存器有一个并行 8 位的,具有三态的总线输出,当 MR 为高电
平,OE 为低电平时,数据在 SHCP 上升沿进入移位寄存器,在 STCP 上升沿输
出到并行端口
595 驱动函数
595 发送数据 驱动函数
//void hc595_write_data(u8 dat)
//{
// /*一个位一个位传输,把字节分为一个位传输 使用 for i*/
// u8 i =0;
// for(i=0;i<8;i++) //循环 8 次即可将一个字节写入寄存器中
// {
// // 先传高位
// SER = dat>>7; // 将dat 赋值给SER 右移7位 1000 0000 将dat最高位移动7位 0000 0001 //优先传输一个字节中的高位
// dat<<=1; // dat 左移一位 //将低位移动到高位
// // 将1000 0000 将0 左移移位
// SRCLK=0; // 初始低电平 反复循环
// deplay(1); //10us
// SRCLK=1; // 初始高电平
// deplay(1); // 高电平也要延时 形成一个周期 //移位寄存器时钟上升沿将端口数据送入寄存器中
// }
//
// // 上升沿的过程
// rCLK = 0;
// deplay(1);
// rCLK =1; ;//存储寄存器时钟上升沿将前面写入到寄存器的数据输出
//}