简述74HC595功能

74HC595是串行输入,并行输出的锁存器(可以不用理解)

简述74HC595功能

 

从Q0~Q7是输出端

VCC电源端;GND接地端

14端口DS是数据输入端

Q7‘是串行数据输出端,(与14端口的输入数据相同,不过要晚一步)可用于级联74HC595(一般不用)

11,12,是时钟输入端口

/MR低电平数据清零,一般接高电平

/OE是高电平高阻态,禁止输出,(有的也说是锁存,具体没试过),一般接低电平。

连接好的电路图如下(大家根据端口号自己对,VCC和GND省略了简述74HC595功能

 

 

端口介绍完毕,接下来贴程序

sbit SRCLK1=P2^0;          //595的SH_CP端口要接的单片机上的端口P2^0(P2^0可以更改为任意端口)
sbit RCLK1=P2^1;             //595的ST_CP端口要接的单片机上的端口P2^1(P2^1可以更改为任意端口)
sbit SER1=P2^2;               //595的DS端 连接,可以更改为任意端口

void Hc595SendByte(u8 dat1)
{
    u8 a;
    SRCLK1=0;
    RCLK1=0;
    for(a=0;a<8;a++)                  //串行输入过程
    {
        SER1=dat1>>7;        
        dat1<<=1;            
        SRCLK1=1;
        _nop_();
        _nop_();
        SRCLK1=0;    
    }

    RCLK1=1;                            //并行输出过程
    _nop_();
    _nop_();
    RCLK1=0;
}

 

ok,简单的介绍完毕后,就可以使用

接下来讲解多个74HC595的使用

方式一:选择级联595,大概图示如下

简述74HC595功能

两个11端口公用一个时钟脉冲,两个12公用一个时钟脉冲

这样连的效果就是后面芯片的输出总是比前面芯片的输出有延时(如果是保持同一个第一个的输出不变的话,两个输出就没有区别)

方式二:采用相同的时钟端口输入,不同的数据输入

简述74HC595功能

这样做的优点就是可以保证每一个芯片的输出人为可控且同步

下面贴代码

sbit SRCLK1=P2^0;         //四个芯片的SH-CP端 
sbit RCLK1=P2^1;            //四个芯片的ST-CP端 
sbit SER1=P2^2;           // 第一个芯片的DS端
sbit SER2=P2^3;           // 第二个芯片的DS端
sbit SER3=P2^4;             // 第三个芯片的DS端
sbit SER4=P2^5;             // 第四个芯片的DS端
void Hc595SendByte(unsigned char dat1,unsigned char dat2,unsigned char dat3,unsigned char dat4)    

   //每一个unsigned char都不可少啊,这是血的教训
{
    u8 a;
    SRCLK1=0;
    RCLK1=0;
    for(a=0;a<8;a++)               //串行输入过程
    {
        SER1=dat1>>7;        
        SER2=dat2>>7;
        SER3=dat3>>7;        
        SER4=dat4>>7;
        dat1<<=1;            
        dat2<<=1;
        dat3<<=1;            
        dat4<<=1;
        SRCLK1=1;
        _nop_();
        _nop_();
        SRCLK1=0;    
    }

    RCLK1=1;                       //并行输出过程
    _nop_();
    _nop_();
    RCLK1=0;
}

 

 

再深入讲解,什么叫串行输入,并行输出

输入输出相信小伙伴们都明白,这里不赘述

以公司指派命令来举例

你有一个老板,八个员工。

老板每两个小时向你指定一个员工的任务

在十六个小时之后你一次性向八个员工指派任务

 

那么串行输入在这里指的就是 老板发令的过程,每隔一段时间发送一个指令

并行输出 指的就是你一次性向八个员工发令的过程,一个时刻控制多个端口的输出状态

SH-CP就相当于这里的两小时的节点提示

ST-CP就相当于这里的16小时的节点提示

因为单片机的高速作业能力,使得时间会相当短暂,以至于我们在观察的时候分辨不出来。