目录

介绍

    使用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. 02-canvas注意点

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  2. 如何在 Recovery 中启用应用

    如果因为禁用了某个应用手机无法开机,那么你需要这个方法来救命 https://xdaforums.com/t/enable-or-disable-apps-directly-from-the-file ...

  3. disconf分布式配置管理(一) 安装与配置

    一.背景 在生产部署过程中,遇到以下问题: 1.由于节点较多,每次增量修改配置文件后都需要每个节点替换配置文件. 2.有些动态配置修改后,需要重启服务. 二.解决方案 1.使用linux文件共享配置文 ...

  4. 20.从0学ARM-移植uboot支持exynos4412

    经过前面一章的学习,我们已经了解了什么是uboot,本章主要目的是如何编译和移植uboot,增加串口.网络.emmc等功能,让他支持exynos4412开发板. 一.移植步骤 1. Uboot配置 指 ...

  5. React 18 自定义 Hook 获取 useState 最新值

    原理:通过同步更新 useRef  来获取最新值 // util.ts export const useRefState = (init: any = null) => { const [sta ...

  6. Win32 sdk 下树形控件响应鼠标单击与双击,获得选中项的名称

    //窗口过程函数INT_PTR CALLBACK myWin::myWinDlgProc(HWND dlgHwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ...

  7. Linux samba的配置和使用

    samba是什么 samba是什么?能干什么?什么场合需要用到它? samba 是基于SMB协议(ServerMessage Block,信息服务块)的开源软件,samba也可以是SMB协议的商标.S ...

  8. el-popover - 问题

    背景:elemet - ui和vue , el-table中使用了 el-popover , el-popover 中使用了form, 每编辑一行数据,点击编辑按钮,出现el-popover弹窗,页面 ...

  9. 每天5分钟复习OpenStack(十五)Ceph与Bcache结合

    上一章我们成功部署了bcache,这一章我们将Ceph与Bcache结合来使用,使用Bcache来为ceph的数据盘提速. 1 ceph 架构 一个标准的ceph集群可能是如下的架构,SSD/NVME ...

  10. JavaScript中class的静态属性和静态方法

    我们可以把一个方法赋值给类的函数本身,而不是赋给它的 "prototype" .这样的方法被称为 静态的(static). 例如这样: class Animal { static ...