74HC595的驱动

74HC595的引脚如下


74HC595的驱动_第1张图片
图片.png

其逻辑如下


74HC595的驱动_第2张图片
图片.png

引脚说明


74HC595的驱动_第3张图片
图片.png

Ds :串行数据的输入,简称SER
Q0-Q7:并行输出,
Q7‘ :则是为了级联多个595设置的引脚,级联的话会连接到下一个595的Ds
OE : 芯片使能脚
SHCP:移位时钟,一般简称 SCLK
STCP : 锁存时钟, 一般简称 RCLK

其中对于数据的流向,有些人一直搞不清楚,其实就可以按照下面画的红线去理解


74HC595的驱动_第4张图片
图片.png

按D7-D0组成的二进制序列数即为要从串口输入的数据

具体的程序如下

#define  SER  //此添加引脚的输出寄存器
#define  SCLK   //此添加引脚的输出寄存器
#define  RCLK  //此添加引脚的输出寄存器
driver_595(uint8_t data)
{
    uint8_t i = 0;
    uint8_t temp = 0x80;
    
    for(i = 0; i

如果是多个595级联,则用下面的函数


driver_multi_595(uint32_t data, uint8_t bitCnt)
{
    uint8_t i = 0;
    uint32_t temp = 0x000001<<(num-1);
    
    for(i = 0; i

当然,如果使用的这个函数的时候bitCnt设为8,则和单个595是一样的

需要注意的事情
(1)这个是没有加使能控制, 如果上电对引脚电平以及功耗有要求,可以加上使能引脚的控制
(2)如果系统本身的速度就不快,延时可以省略掉
(3)SCLK,RCLK引脚在初始化结束的时候,一般立即设为低电平

你可能感兴趣的:(74HC595的驱动)