高校网站建设花费,建设银行支付宝网站,竞价托管公司排名,四川成都网站制作公司目录 0x00 74595芯片简介0x01 实现原理 0x00 74595芯片简介
74595芯片有很多种封装#xff0c;不管是贴片的还是直插式的#xff0c;它们的引脚定义都如下图所示#xff1a;
其中 #xff1a;
Q0-Q7为并行数据输出口#xff0c;可以输出高低电平。OE 为使能引脚#… 目录 0x00 74595芯片简介0x01 实现原理 0x00 74595芯片简介
74595芯片有很多种封装不管是贴片的还是直插式的它们的引脚定义都如下图所示
其中
Q0-Q7为并行数据输出口可以输出高低电平。OE 为使能引脚低电平有效DS 为串行数据输入引脚也称SER也就是你用于输入数据的引脚MR为复位引脚将其拉低可以清空数据STCP在上升沿时数据从移位寄存器转存到存储寄存器SHCP在上升沿时数据移位并且可以接收新的数据(从DS引脚输入)Q7S为串行数据输出引脚这个引脚可以用于级联其他的74595芯片。
其工作原理为74595内部有两个8位的寄存器其中一个用于存储一个用于移位输入新的数据74595将根据用于存储的8位寄存器内容8个引脚按位依次输出对应的电平值。
0x01 实现原理
以下将介绍如何编写函数向74595发送一个字节的数据如果需要控制两个74595芯片将这个函数调用两次即可。
实现的原理都在代码之中结合引脚介绍即可看懂
void SendTo595(uint8_t byteData)
{int i0;uint8_t SER;for(;i8;i){//判断最高位数据是 0 或 1SER (byteData7) 0x01; if(SER)gpio_bit_set(GPIO_PORT_SER,GPIO_PIN_SER);elsegpio_bit_reset(GPIO_PORT_SER,GPIO_PIN_SER);byteData byteData1; //上升沿让串行输入时钟变为高电平并延时2个时钟周期gpio_bit_set(GPIO_PORT_SCK,GPIO_PIN_SCK);/delay_1us(5);gpio_bit_reset(GPIO_PORT_SCK,GPIO_PIN_SCK);//变为低电平为下次准备}/*位移寄存器数据准备完毕,转移到存储寄存器*/ //上升沿让存储寄存器时钟变为高电平并延时2个时钟周期gpio_bit_set(GPIO_PORT_RCK,GPIO_PIN_RCK);delay_1us(5);gpio_bit_reset(GPIO_PORT_RCK,GPIO_PIN_RCK);
}