74HC595介绍
74HC595芯片是一个串行输入,并行输出设备。其内部包括一个8位移位寄存器、一个存储器以及三态输出门电路,其中移位寄存器和存储器都有相互独立的时钟。
引脚说明
-
VCC、GND为芯片供电管脚,工作电压5V。
-
Q0~Q7这8个引脚是芯片的输出引脚。
-
DS引脚为串行输入引脚。我们需要将数据一位一位的写入该引脚。
-
STCP引脚为锁存引脚。当移位寄存器的8位数据全部传输完毕后,通过控制此引脚将数据复制到锁存器准备并行输出。
-
SHCP引脚为时钟引脚。通过控制此引脚将数据写入移位寄存器。
-
OE引脚为输出使能。其作用是控制锁存器里的数据是否最终输出到Q0-Q7输出引脚上。低电平时输出,高电平时不输出,本实验直接接在GND使其一直保持低电平输出数据。
-
MR是用来重置内部寄存器的引脚。低电平时重置内部寄存器。本实验直接连接在VCC上一直保持高电平。
-
Q7S引脚为串行输出引脚,专门用于芯片级联。
在8个数据输入满的情况下,第一个数据会被传输到七号输出,最后一个数据被传输到0号输出,就像填充弹药一样,第一颗子弹在最下面 -
V,MR 接5V
-
0-7 接输出
-
OE,GND 接地
-
ST 接io
-
SH 接io
-
DS 接 io
程序
/*
Shift
74HC595扩展IO,串行驱动8路LED灯
*/
int latchPin = 10;//锁存引脚 STCP
int clockPin = 9; //时钟引脚 SHCP
int dataPin = 8; //数据引脚 ds
void setup ()
{
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT); //让三个脚都是输出状态
}
void loop()
{
digitalWrite(latchPin,LOW); //设置平台为低电平
//第一个信号
digitalWrite(clockPin,LOW); //推进器为低电平
digitalWrite(dataPin ,1); //将1放入数据
digitalWrite(clockPin,HIGH);//推进器将数据推上平台
//第二个信号
digitalWrite(clockPin,LOW);
digitalWrite(dataPin ,0);
digitalWrite(clockPin,HIGH);
//第三个信号
digitalWrite(clockPin,LOW);
digitalWrite(dataPin ,1);
digitalWrite(clockPin,HIGH);
//第四个信号
digitalWrite(clockPin,LOW);
digitalWrite(dataPin ,1);
digitalWrite(clockPin,HIGH);
//第五个信号
digitalWrite(clockPin,LOW);
digitalWrite(dataPin ,0);
digitalWrite(clockPin,HIGH);
//第六个信号
digitalWrite(clockPin,LOW);
digitalWrite(dataPin ,0);
digitalWrite(clockPin,HIGH);
//第七个信号
digitalWrite(clockPin,LOW);
digitalWrite(dataPin ,1);
digitalWrite(clockPin,HIGH);
//第八个信号
digitalWrite(clockPin,LOW);
digitalWrite(dataPin ,0);
digitalWrite(clockPin,HIGH);
digitalWrite(latchPin,HIGH);//平台高电平将数据推到输出
}
最后的0-7输出应该为0,1,0,0,1,1,0,1
参考链接
https://blog.csdn.net/weixin_44919631/article/details/89531969
https://blog.csdn.net/TonyIOT/article/details/82796291