目录

介绍

    使用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. Maven经验分享(八)maven去除jar报依赖

    又是项目总结的时候了,说一下maven使用中遇到的问题以及解决方案. 在新项目的开发中,使用maven进行持续构建,在搭建框架的过程中经常遇到jar冲突的问题,现在来介绍下如何去除jar传递依赖. 1 ...

  2. 组长:你熟悉过React,开发个Next项目模板吧,我:怎么扯上关系的?

    组长:你熟悉过React,开发个Next项目模板吧,我:怎么扯上关系的? 最近工作安排我开发一个Next.js项目模板,心里默笑,React用得少得都快忘光了,现在得搞Next?虽然我曾是React的 ...

  3. JavaScript 的优雅编程技巧:Singleton Pattern

    JavaScript 的优雅编程技巧:Singleton Pattern 定义 单例模式:保证一个类仅有一个实例,并提供一个访问的全局访问点. 特点 仅有一个实例对象 全局都可访问该实例 主动实例化 ...

  4. 22.11.20 ICPC合肥站 打星记录

    A,B,H签到. B题:注意区分相对误差与绝对误差!!小数相对误差小于1e-6,至少要输出十二位! G题优先队列.场上十几分钟就想出来了,表扬自己一波,留个坑位写题解. M题情况不多直接暴搜, 最后一 ...

  5. 一文讲清楚static关键字

    static能修饰的地方 静态变量 静态变量: 又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它:静态变量在内存中只存在一份. 实例变量: 每创建一个实例就 ...

  6. 玄机蓝队靶场_应急响应_01:linux日志分析

    个人感觉这个靶场主要考验对linux的命令的基础掌握,对日志路径的基本了解. 一:解题 (1)ssh连接靶场,先用命令lsb_release -a看看是什么系统.然后发现是Debian GNU/Lin ...

  7. 【YashanDB知识库】生成迁移报告失败,"报错未知类型错误异常:"

    [标题]YMP迁移 [问题分类]迁移报告 [关键字]迁移报告.未知类型错误异常 [问题描述]下载迁移报告时报错"未知类型错误异常:",一长串英文 日志报错: [问题原因分析]jav ...

  8. 即构 UIKits 重磅发布!高效开发与自定义UI兼备,打造互动场景新标杆

    即构UIKits上线,新一代场景化实时互动SDK! 即构科技发布了首款面向中小团队的整合型实时互动产品UIKits , 基于场景化最佳实践,整合RTC.IM.直播.美颜等多款产品,打造了音视频通话UI ...

  9. CSS & JS Effect – Statistics Counter

    效果 当 scroll 到那些号码的时候, 号码从 0 开始跳动, 一直到最终的值. 实现思路 1. 一开始把号码 set to 0 2. 使用 IntersectionObserver 监听号码出现 ...

  10. C++ string类型常用操作

    string类型操作 字符串切割 str.substr(索引,切割的个数)  ->  返回字符串 注意:第二个参数为切割的个数 string buf = "abcdefg"; ...