目录

介绍

    使用SN74HC595N 为 ESP8266 扩展
  • SN74HC595N(8位移位寄存器IC)

     1. Vcc 16引脚 电压输入 (必须)
    2. GND 地 (必须)
    3. OE 需要接GND(必须)
    4. MR 需要接高电压(必须)
    5. Q0 ~ Q7 并行输出引脚,一般是5v
    6. 12引脚 ST大平台
    7. 11引脚 SH活塞
    8. 14引脚 DS数据
    9. 9引脚 扩充使用
  • SN74HC595N (实物图DC图)

  • SN74HC595N(简洁图)

准备

  • 面包板
  • 杜邦线
  • SN74HC595N
  • ESP8266
  • LED * 8
  • 200k电阻 * 8

连线

  根据原理图,把 SN74HC595N 模块分为 4大块
1. 大平台(ST)
2. 数据(DS)
3. 活塞(SH)
4. GPIO引脚
  • ST(大平台) 连接 ESP8266引脚 5
  • DS(数据) 连接 ESP8266引脚 4
  • SH(活塞) 连接 ESP8266引脚 0
  • Vcc 连接 ESP8266引脚3V或者5V
  • GND 连接 ESP8266引脚 GND
  • OE 连接 GND(必须)
  • MR 连接 Vcc(必须)
  • Q0 ~ Q7 连接 LED灯和电阻

代码

#include <Arduino.h>
// SN74HC595 简称 N74
// ST 大平台 5
// DS 数据 4
// SH 活塞 0
const short N74_ST_BIG = 5;
const short N74_DS_DATA = 4;
const short N74_SH_PUSH = 0; void setup()
{
pinMode(N74_ST_BIG, OUTPUT);
pinMode(N74_DS_DATA, OUTPUT);
pinMode(N74_SH_PUSH, OUTPUT);
} void loop()
{
digitalWrite(N74_ST_BIG, LOW); // 放下大平台 digitalWrite(N74_SH_PUSH, LOW); // 活塞拉回
digitalWrite(N74_DS_DATA, 0); // 放入数据
digitalWrite(N74_SH_PUSH, HIGH); // 活塞推动数据 digitalWrite(N74_SH_PUSH, LOW);
digitalWrite(N74_DS_DATA, 1);
digitalWrite(N74_SH_PUSH, HIGH); digitalWrite(N74_SH_PUSH, LOW);
digitalWrite(N74_DS_DATA, 0);
digitalWrite(N74_SH_PUSH, HIGH); digitalWrite(N74_SH_PUSH, LOW);
digitalWrite(N74_DS_DATA, 1);
digitalWrite(N74_SH_PUSH, HIGH); digitalWrite(N74_SH_PUSH, LOW);
digitalWrite(N74_DS_DATA, 0);
digitalWrite(N74_SH_PUSH, HIGH); digitalWrite(N74_SH_PUSH, LOW);
digitalWrite(N74_DS_DATA, 1);
digitalWrite(N74_SH_PUSH, HIGH); digitalWrite(N74_SH_PUSH, LOW);
digitalWrite(N74_DS_DATA, 0);
digitalWrite(N74_SH_PUSH, HIGH); digitalWrite(N74_SH_PUSH, LOW);
digitalWrite(N74_DS_DATA, 1);
digitalWrite(N74_SH_PUSH, HIGH); digitalWrite(N74_ST_BIG, HIGH); // 拉起大平台
}

代码优化

#include <Arduino.h>
// SN74HC595 简称 N74
// ST 大平台 5
// DS 数据 4
// SH 活塞 0
const short N74_ST_BIG = 5;
const short N74_DS_DATA = 4;
const short N74_SH_PUSH = 0; const int LED[] = {0, 1, 0, 1, 0, 1, 0, 1}; void pull_push_data(short num); // 数据活塞 num:0或1 void setup()
{
pinMode(N74_ST_BIG, OUTPUT);
pinMode(N74_DS_DATA, OUTPUT);
pinMode(N74_SH_PUSH, OUTPUT);
} void loop()
{
digitalWrite(N74_ST_BIG, LOW); // 放下大平台 for (unsigned short i = 0; i < 8; i++)
{
pull_push_data(LED[i]);
} digitalWrite(N74_ST_BIG, HIGH); // 拉起大平台
} void pull_push_data(short num)
{
digitalWrite(N74_SH_PUSH, LOW); // 活塞拉回
digitalWrite(N74_DS_DATA, num); // 放入数据
digitalWrite(N74_SH_PUSH, HIGH); // 活塞推动数据
}

运行

ok

问题

总结

ESP8266 + SN74HC595N(8位移位寄存器)的更多相关文章

  1. 74HC595 8位移位寄存器的使用小结

    请查看我的博客园文章,比较详细. https://www.cnblogs.com/CodeWorkerLiMing/p/11964258.html

  2. AC620教程 第十五节 8位7段数码管驱动设计与验证

    本章导读 电子系统中常用的显示设备有数码管.LCD液晶以及VGA显示器等.其中数码管又可分为段式显示(7段.米字型等)以及点阵显示(8*8.16*16等),LCD液晶的应用可以分为字符式液晶(1602 ...

  3. [FPGA]Verilog实现8位串并转换器HC595

    目录 想说的话... 正文 IC介绍_HC595 电路连接图 功能表 逻辑图 代码实现 代码已经更新,新的代码按照电路编写,忠实于原电路的逻辑,已注于文末(11/16) 修复并行输出数据出错的bug, ...

  4. 单片机与控制实验(2)——LED点阵显示屏

    一.实验目的和要求 了解LED点阵显示的基本原理和实现方法.掌握点阵汉字库的编码和从标准字库中提取汉字编码的方法. 二.实验设备 单片机测控实验系统 LED点阵显示器实验模块 Keil开发环境 STC ...

  5. 串行移位锁存并行输出可级联器件74HC595

    一.背景 老同学今天突然咨询关于74HC595,自己没用过,同学说可以级联10级!10级?我艹,这么叼,级联又是 什么鬼,这勾起了我极大兴趣,二话不说,手册down下来研究,并在此做个记录. 二.正文 ...

  6. 基于S5PC100裸机程序之SPI(上)

    作者:杨老师,华清远见嵌入式学院讲师. SPI作为应用最为广泛的通信总线协议之一,开发人员应当掌握,本章将介绍SPI总线协议的基本理论,以及S5PC100的SPI总线控制器的操作方法. 1. SPI总 ...

  7. 74HC595 for STM32 源代码【worldsing笔记】

    74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准. 74HC595是具有8位移位寄存器和一个存储器,三态输出功能. 移位寄存器和存储器是分别的时钟. 数据在SHcp(移 ...

  8. CRC校验源码分析

    这两天做项目,需要用到 CRC 校验.以前没搞过这东东,以为挺简单的.结果看看别人提供的汇编源程序,居然看不懂.花了两天时间研究了一下 CRC 校验,希望我写的这点东西能够帮助和我有同样困惑的朋友节省 ...

  9. SPI通信

    SPI是由Motorola公司提出的一种同步串行外围接口:它在速度要求不高,低功耗,需要保存少量参数的智能化传感系统中得到了广泛应用: SPI是一个全双工的同步串行接口,在数据传输过程中,总线上只能是 ...

  10. 基于FPGA的OLED真彩色动态图像显示的实现

    源:基于FPGA的OLED真彩色动态图像显示的实现 作为第3代显示器,有机电致发光器件(Organic Light Emitting Diode,OLED)由于其主动发光.响应快.高亮度.全视角.直流 ...

随机推荐

  1. 流体饱和多孔介质的本构关系 + Föppl-von Kármán 方程

    向有液体的多孔介质上施加应力,应力一部分分布到骨架上,一部分分布到孔隙流体上.骨架上的应力会导致变形,所以被称为 "有效应力".这里考虑拉伸应力为正,有效应力原理写为 \[\sig ...

  2. MFC树形控件加载Access数据库数据

    研究了好几天,今天终于弄好了,下面是代码 [dlg.cpp] 在初始函数OnInitDialog()中加 HICON hIcon[3]; HTREEITEM hRoot; //加载三个图标 hIcon ...

  3. LaTeX 常用引用标签前缀

    引用对象 标签前缀 Chapter ch Section sec Subsection sec Appendix app Figure fig Table tab List item itm Equa ...

  4. 深入浅出Stream流

    Java 8的新特性之一就是流stream,配合同版本出现的 Lambda ,使得操作集合(Collection)提供了极大的便利. 案例引入 在JAVA中,涉及到对数组.Collection等集合类 ...

  5. 模N取余法实现大整数进制转换 ——C语言版(2-16进制均可)

    思路如标题所说采用模N取余法,难点是这个除法过程如何实现. 个人推荐先到这篇博客学习一下,大佬的思路就是不一样:大数除法--超详细讲解 我所做的就是在上面博文代码的基础上增加了循环,用一个字符数组逆序 ...

  6. dotnet 读 WPF 源代码笔记 从 WM_POINTER 消息到 Touch 事件

    本文记录我读 WPF 源代码的笔记,在 WPF 底层是如何从 Win32 的消息循环获取到的 WM_POINTER 消息处理转换作为 Touch 事件的参数 由于 WPF 触摸部分会兼顾开启 Poin ...

  7. 在stable diffussion中完美修复AI图片

    无论您的提示和模型有多好,一次性获得完美图像的情况很少见. 修复小缺陷的不可或缺的方法是图像修复(inpainting).在这篇文章中,我将通过一些基本示例来介绍如何使用图像修复来修复缺陷. 需要的软 ...

  8. 学习高校课程-软件设计模式-软件设计原则(lec2)

    Feature of Good Design (1) 优秀设计的特点(一) Code reuse 代码复用 – Challenge: tight coupling between components ...

  9. 使用 Flutter 3.19 更高效地开发

    我们已隆重推出全新的 Flutter 版本--Flutter 3.19.此版本引入了专为 Gemini 设计的新 Dart SDK.一个能让开发者对 Widget 动画实现精细化控制的全新 Widge ...

  10. Web刷题之polarctf靶场(2)

    1.蜜雪冰城吉警店 点开靶场, 发现题目说点到隐藏奶茶(也就是第九杯)就给flag, 但是明显就只有八杯, 猜测大概率考的是前端代码修改 把id=1修改为id=9, 然后回到页面点击原味奶茶即可弹出f ...