ESP8266-Arduino编程实例-74HC595位移寄存驱动

74HC595位移寄存驱动

1、74HC595介绍

74HC595 是一款高速 CMOS 器件。

在这里插入图片描述

74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出。移位寄存器和存储寄存器都有独立的时钟。该器件具有串行输入 (DS) 和串行输出 (Q7S) 以启用级联和异步复位

M

R

\overline {MR}

MR 输入。

M

R

\overline {MR}

MR 上的低电平将重置移位寄存器。数据在 SHCP 输入的低到高转换时移动。移位寄存器中的数据在 STCP 输入从低到高转换时传输到存储寄存器。如果两个时钟连接在一起,移位寄存器总是比存储寄存器快一个时钟脉冲。只要输出使能输入 (

O

E

\overline {OE}

OE) 为低电平,存储寄存器中的数据就会出现在输出端。

O

E

\overline {OE}

OE 上的高电平导致输出呈现高阻抗关断状态。

O

E

\overline {OE}

OE 输入的操作不会影响寄存器的状态。输入包括钳位二极管。这使得可以使用限流电阻将输入连接到超过

V

C

C

V_{CC}

VCC​ 的电压。

其引脚说明如下:

在这里插入图片描述

前面的文章,对74HC595的应用作了详细的介绍,请参考:

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • 74HC595模块一个
  • LED 8个,阻值270欧姆的电阻8个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线图如下:

在这里插入图片描述

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

1)定义74HC595引脚

1
2
3
4
5
6
int latchPin = D8; // 输入锁存引脚
int clockPin = D7; // 数据输入时钟引脚
int dataPin = D6; // 串行数据输入引脚

long randNumber; // 随机数

2)配置74HC595引脚

1
2
3
4
5
6
7
8
9
10
void setup() 
{
// 配置引脚
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
// 设置随机种子
randomSeed(analogRead(A0));
}

3)数据传输

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void loop()
{
// 生成随机数
randNumber = random(1, 255);
// 数据输入时钟引脚设置低电平,开始传输数据
digitalWrite(latchPin, LOW);
// 移出数据位
shiftOut(dataPin, clockPin, MSBFIRST, randNumber);
// 数据输入时钟引脚设置高电平,开始输出数据
digitalWrite(latchPin, HIGH);

delay(500);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126098266