当前位置: 首页 > news >正文

如何级联移位寄存器(74HC595)


        在这个项目中,我们将使用 74HC595 移位寄存器将 2 个移位寄存器级联在一起。这样级联移位寄存器现在可以控制 16 个输出。

        当然您可以级联任意数量的移位寄存器。如果您要级联第三个移位寄存器,它可以控制 24 个输出。如果您级联第四个移位寄存器,它可以控制 32 个输出。

        但在这个项目电路中,我们将只级联一个移位寄存器,总共有2个。

        级联移位寄存器非常简单,只要您知道如何操作即可,因为 74HC595 专门设计为能够添加额外的移位寄存器。因此,只要您知道如何连接它,它就非常简单。

        如上所述,优点是我们可以控制更多输出。我们将添加 一个移位寄存器,我们就可以控制 16 个输出。

        我们需要为这个项目准备16个电阻器和 LED。

组件:

  • 74HC595移位寄存器
  • 16 个 LED
  • 16个220Ω电阻
  • Arduino

        74HC595 移位寄存器是电子行业中最流行、应用最广泛的移位寄存器之一。单个 74HC595 可以控制 8 个输出。这意味着它可以控制例如 8 个 LED。

        该移位寄存器共有16个引脚。

        移位寄存器的引脚排列如下所示。

74HC595移位寄存器引脚排列


下表总结了这些引脚连接。

别针功能
QA-QH移位寄存器的输出一个8个输出引脚
VCC (引脚16)移位寄存器电源接口
GND(引脚 8)移位寄存器的接地
Q H '(引脚 9)串行输出用于将数据移位到另一个 74HC595 移位寄存器(级联引脚
CLEAR (引脚 10)这会将移位寄存器中的所有位设置为 0,拉低则关闭。清除寄存器引脚
SRCLK(引脚 11)如果拉高,这会将移位寄存器中的所有值向前移动一位。存入引脚
RCLK(引脚 12)当拉高时,它会输出新的移位寄存器值。输出数据引脚(将寄存器中的数据输出到对应的管脚)
OE(引脚 13)当接地时启用输出,当高电平时禁用输出。(常接地)使能引脚
SER(引脚 14)这是新串行数据的输入引脚。(接arduino 开发板管脚)

        首先我们接通电源。因此我们将移位寄存器的 两个 V CC连接到 5V arduino 端子。我们将移位寄存器的接地连接到 GND arduino 端子。这样可以为两个移位寄存器提供足够的电源。

        接下来,我们将两个SRCLK(引脚 11)连接到 arduino 的数字引脚 9。

        我们将RCLK(引脚 12)连接到 arduino 上的数字引脚 8。

        对于第一个移位寄存器,我们将串行数据输入引脚14连接到 arduino 上的数字引脚7。第二个移位寄存器上的数据输入将与Q H '(引脚 9)连接。

        由于我们要级联一个额外的移位寄存器,因此对于移位寄存器,我们将串行数据输出线连接到第二个移位寄存器上的串行数据输入线。这样可以让数据无缝地从移位寄存器流到第二个移位寄存器,我们可以将其理解成级联形成了一个16位的移位寄存器。

        最后,我们将 LED 连接到输出引脚 Q A - Q H。我们为每个 LED 连接一个限流 220Ω 电阻。

        74HC595 移位寄存器有 8 个输出。这意味着您可以将最多 8 个输出设备(例如 LED 或蜂鸣器)连接到移位寄存器。

        为了给 74HC595 移位寄存器供电,我们为 V CC提供 +5V ,并将 GND 连接到 arduino 上的地。

        将移位寄存器连接到arduino 时,SER(引脚 14)连接到 arduino 上的数字引脚 7。通过此连接,通过我们的代码,我们将写入想要在输出端显示的数据。例如,我们可以将 11111111 写入串行数据线。每一次将移位寄存器的11管脚拉高时会将一个1移入存储寄存器,然后将其拉低,重复以上动作8次,才能将所有的数据移入寄存器中。如果是两个移位寄存器串联,这个过程就需要16次了,一旦我们完成数据的移入,下一步将移位寄存器的12管脚拉高就可以一次性将寄存器中的数据输出到输出管脚,这意味着我们将数据从存储寄存器传输到输出端,这意味着 LED 全部会亮起。

级联移位寄存器电路:

相关文章:

  • 【Linux】基础IO——文件描述符,重定向,FILE
  • WordPress 技巧:如何限制或取消自动清空回收站功能
  • 怎样去掉卷子上的答案并打印
  • mac下Xcode在iphone真机上测试运行iOS软件
  • [信号与系统]有关时域信号与频域信号的转换
  • 红队内网攻防渗透:内网渗透之内网对抗:隧道技术篇防火墙组策略FRPNPSChiselSocks代理端口映射C2上线
  • 力扣85.最大矩形
  • 【深度学习驱动流体力学】VTK创建、处理和可视化流体数据
  • 路由的params参数,命名路由,路由的params参数,命名路由
  • 架构师指南:现代 Datalake 参考架构
  • 深入理解Java虚拟机(JVM)中的垃圾回收器
  • VUE3 使用 vite-plugin-svg-icons加载SVG
  • 浅谈请求中数据转换
  • 程序猿成长之路之数据挖掘篇——决策树分类算法(1)——信息熵和信息增益
  • java:JWT的简单例子
  • 收藏网友的 源程序下载网
  • android图片蒙层
  • CSS3 变换
  • ES学习笔记(12)--Symbol
  • extract-text-webpack-plugin用法
  • JavaScript异步流程控制的前世今生
  • JS变量作用域
  • node.js
  • Python利用正则抓取网页内容保存到本地
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 日剧·日综资源集合(建议收藏)
  • 试着探索高并发下的系统架构面貌
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #pragam once 和 #ifndef 预编译头
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (libusb) usb口自动刷新
  • (Matlab)使用竞争神经网络实现数据聚类
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (一)kafka实战——kafka源码编译启动
  • (转载)hibernate缓存
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .DFS.
  • .NET Core 2.1路线图
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net Stream篇(六)
  • .net wcf memory gates checking failed
  • .NET 材料检测系统崩溃分析
  • .net 调用php,php 调用.net com组件 --
  • .NET 发展历程
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .Net多线程Threading相关详解
  • 。Net下Windows服务程序开发疑惑
  • :=