Arduino 74HC595扩展IO

1.74HC595介绍

Arduino 74HC595扩展IO_第1张图片

1.引脚

Arduino 74HC595扩展IO_第2张图片
VCC、GND为芯片供电管脚,工作电压5V。

Q0~Q7这8个引脚是芯片的输出引脚。

DS引脚为串行输入引脚。我们需要将数据一位一位的写入该引脚。

STCP引脚为锁存引脚。当移位寄存器的8位数据全部传输完毕后,通过控制此引脚将数据复制到锁存器准备并行输出。

SHCP引脚为时钟引脚。通过控制此引脚将数据写入移位寄存器。

OE引脚为输出使能。其作用是控制锁存器里的数据是否最终输出到Q0-Q7输出引脚上。低电平时输出,高电平时不输出,本实验直接接在GND使其一直保持低电平输出数据。

MR是用来重置内部寄存器的引脚。低电平时重置内部寄存器。本实验直接连接在VCC上一直保持高电平。

Q7S引脚为串行输出引脚,专门用于芯片级联。
根据74HC595引脚说明,有三个重要的引脚:数据引脚(data)、锁存引脚(latch)、时钟引脚(clock)。

2.74HC595操作步骤 操作说明

latch = LOW 只有为low时才可以输入数据
data 通过data传输数据第一位,HIGH/LOW
clock = HIGH 数据锁存
clock = LOW 准备下一个
data… 继续上面步骤,直到传输完成
clock = HIGH 储存全部的数据
clock = LOW 禁止数据再进行传输
latch = HIGH 并行送出数据

2.接线

8个LED发光二极管的负极接开发板GND,正极分别接入220Ω限流电阻,电阻另一端分别接入74HC595芯片的Q0~Q7输出引脚。

74HC595的VCC、MR引脚接入开发板5V,OE、GND引脚接入开发板的GND。DS、SHCP、STCP这三个控制引脚分别接入开发板的8、9、10数字引脚。
q0-q7分别接在小灯正极
Arduino 74HC595扩展IO_第3张图片

3.流水灯

/*
   Shift
   74HC595扩展IO,串行驱动8路LED灯
*/
int latchPin = 10;//锁存引脚
int clockPin = 9; //时钟引脚
int dataPin = 8; //数据引脚

void setup ()
{
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT); //让三个脚都是输出状态
}
void loop()
{
  for (int data = 0; data < 255; data++)
  {
    digitalWrite(latchPin, LOW); //将ST_CP口上加低电平让芯片准备好接收数据
    shiftOut(dataPin, clockPin, LSBFIRST, data);
    digitalWrite(latchPin, HIGH); //将ST_CP这个针脚恢复到高电平
    delay(1000); //暂停1秒钟观看显示效果
  }
}

你可能感兴趣的:(单片机,嵌入式硬件,c语言)