74HC595

74HC595是一个移位寄存器,它是8位串行输入,并排输出!

首先74HC595不用管它,只要知道这个名字就好,那什么是移位寄存呢?什么又是8位串行输入并排输出呢?

这里我们先来理解什么是移位寄存8位串行输入


74HC595移位寄存器+8位串行输入(01)

8位串行输入:

看到上面的一串数字了吗?,就是那个视频,它是由8个数字组成(当然这八个数字是我随意输入的二进制数

所谓8位串行输入,就是由8个数字组成,每一个数字占据一个位,共有8个位,像串在一起一样以一行的方式输入到蓝色方框内!

(备注:蓝色方框,就代表咱们本文所介绍的主角儿74HC595移位寄存器)

移位寄存:

移位寄存又是什么意思呢?我们再次看向那一串数字

它不是直接进去的,而是以“移位”的方式进去的,每次只移动一个数字进去

蓝色方框内最多可以移进去8个数字,也就说74HC595移位寄存器最多可存储8个数字,称为“寄存”

绿色方框SH_CP

因为移位寄存是需要条件的,

就像绿色方框 给了蓝色方框8个数一样,

那么移位寄存器的输入条件就是SH_CP这个引脚,

当它处于高电频时,数字才能被送进74HC595

现在不理解不要紧,待会儿咱们看实物!

并排输出

74HC595移位寄存器+并行输出

并排输出开关=ST_CP   (由蓝色变成黄色为打开开关)

跟上面一个意思,一个输出条件的引脚,处于高电频时触发输出

最后这个并排输出又啥?看上面的视频,当“并排输出开关”触发时74HC595移位寄存器里面存储的数字就会被输出出来,它不是一个一个的出来的,而是并排同时出来,称为“并排输出”

74HC595移位寄存器实物(引脚)

74HC595移位寄存器(引脚图)
引脚功能
         Q0~Q7       8个数字输出(二进制)
Vcc 接电源正极
GND 接电源负极
DS 高电频输入1,低电平输入0
/OE

低电平74HC595有效使用(接地GND就好了)

/MR 低电平复位(如果不需要复位直接电源就行)
SH_CP 高电平触发时,DS的数被存入,一次存一个
ST_CP 高电平触发时,DS存入的所有二进制数被输出
Q7' 不用接

如何判断74HC595移位寄存器的方向?

双排直插式(74HC595N)

贴片式(74HC595D)

哪边有豁口哪边就朝上,然后对照那个“74HC595移位寄存器(引脚图)”认一下就知道咋接了!

I/O表:

Arduino与74HC595之间的接线
74HC595移位寄存器 Arduino UNO开发板
Vcc 电源正极
GND GND
DS D5
/MR 电源正极
/OE GND
Q0~Q7 LED1~LED8(灯)
SH_CP D3
ST_CP

D4

程序部分:

//74HC595
int SH_CP=3;//输入条件
int ST_CP=4;//输出条件
int DS=5;//二进制数的输入void setup() //子函数(只执行一次)
{pinMode(SH_CP,OUTPUT);//定义为输出模式pinMode(ST_CP,OUTPUT);//定义为输出模式pinMode(DS,OUTPUT);//定义为输出模式
}void loop() //主函数(无限循环执行)
{digitalWrite(ST_CP,LOW);//初始化输出条件为低电平,一开始我们不需要它并排输出什么,因为DS还没有输入二进制数digitalWrite(SH_CP,LOW);  //初始化输入条件为低电平,等我们把DS输入完数之后再用它(高电平)写进去digitalWrite(DS,1);       //我这里就写一个二进制数1digitalWrite(SH_CP,HIGH); //高电平把1写入digitalWrite(SH_CP,LOW);//再次将其至低电平,因为只有它处于低电平模式,DS才能写二进制数进去digitalWrite(DS,0);     //这里我写的二进制数是0digitalWrite(SH_CP,HIGH);//高电平写入/*下面的都是以此类推8*/digitalWrite(SH_CP,LOW);digitalWrite(DS,1);digitalWrite(SH_CP,HIGH);digitalWrite(SH_CP,LOW);digitalWrite(DS,0);digitalWrite(SH_CP,HIGH);digitalWrite(SH_CP,LOW);digitalWrite(DS,1);digitalWrite(SH_CP,HIGH);digitalWrite(SH_CP,LOW);digitalWrite(DS,0);digitalWrite(SH_CP,HIGH);digitalWrite(SH_CP,LOW);digitalWrite(DS,1);digitalWrite(SH_CP,HIGH);digitalWrite(SH_CP,LOW);digitalWrite(DS,0);digitalWrite(SH_CP,HIGH);digitalWrite(ST_CP,HIGH);//等到8个数都写完了以后,就把这个输出条件至于高电平,进行“并排输出”,结果就可以点亮啦!!!
}

我的程序里面写的是10101010,所有的就只有4个LED灯是亮的

我是正着写进去的,它是倒着显示的01010101

所以它是反过来的输出。

Protues8.9模拟仿真74HC595移位寄存器!!!(真能亮)

总结:

代码相对来说还是很容易理解的,不过也可以对代码进行简化,然后按照你能接受的方式去编写代码!

74HC595移位寄存器的使用相关推荐

  1. 基于51单片机定时器计数+74HC595移位寄存器+8位数码管时钟

    基于51单片机+74HC595移位寄存器+8位数码管时钟 Proteus仿真 实例代码 #include "at89x52.h" sbit SHCP =P0^1; // 移位寄存器 ...

  2. 51单片机-74HC595移位寄存器

    目录 1.74HC595芯片介绍 1.1.引脚定义 1.2.工作原理 2.实际应用 2.1.控制数码管 2.2.点阵屏显示图形 2.3.点阵屏显示动画 3.知识点 3.1.位变量(sbit/bit) ...

  3. 【龙芯1B】:74HC595数码管或74HC138数码管程序开发

    学习目标:解决龙芯1B:74HC595或74HC138数码管显示问题 首先我们要知道数码管的原理:以74HC595为例,74HC595是具有三态输出功能(即具有高电平.低电平和高阻抗三种输出状态)的门 ...

  4. 关于小梅哥74HC595驱动设计的思考

    文章目录 源码 RTL testbench 仿真结果 分析 改进 关于74HC595芯片的规格参数以及时序图可参考德州仪器CD74HC595或其他博客,在此不多做分析. 现如今,小梅哥用两片74HC5 ...

  5. Arduino + 74HC595实现24x24点阵贪吃蛇游戏

    Arduino + 74HC595实现24x24点阵贪吃蛇游戏 简介 硬件 开发环境 接线图 软件部分 方向控制 蛇身轨迹 碰壁检测 蛇身显示 刷新食物 仿真演示 源码和原理图下载 简介 本文是基于A ...

  6. 零成本学arduino——74hc595寄存器教程

    本文介绍如何用arduino控制74hc595 1.知识预览 对74hc595寄存器进行介绍 shiftOut()函数介绍 对控制程序进行介绍 2.仿真预览 点击74hc595开始仿真 3.74hc5 ...

  7. Arduino与Proteus仿真实例-74HC595驱动7段数码管仿真

    74HC595驱动7段数码管仿真 74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出.移位寄存器和存储寄存器都有独立的时钟.该器件具有串行输入 (DS) ...

  8. STM32F1与STM32CubeIDE编程实例-74HC595驱动4位7段数码管

    74HC595驱动4位7段数码管 1.74HC595介绍 74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出.移位寄存器和存储寄存器都有独立的时钟.该器件 ...

  9. STM32CUBEMX 配置12脚3641BS以及串口显示RTC时间

    最近在学习STM32F4系列的RTC时钟系统,同时也在学习4位7段数码管显示驱动.而市面上很多3641BS数码管都是集成了74HC595移位寄存器芯片的PCB板,故网上大多基于STM32驱动该型号数码 ...

  10. 3208点阵时钟c语言程序,点阵万年历(带时间、年月日星期调整及闹钟功能)C程序...

    /*此程序是一款用3216点阵屏与DS1302芯片以及 三个按键与STC12C5204AD 4KROM单片机组合成的 万年历电子钟具体功能如下:正常情况下上半屏 (3208)显示主时间.当第1次按下功 ...

最新文章

  1. 周礼栋:现在是计算机系统和网络研究“最好的时代”
  2. pip install robot framework出现字符集编码错误
  3. ZkServer服务启动的逻辑-NIOServerCnxnFactory.configure
  4. C语言,把指针按地上摩擦,爽
  5. Tensorflow源码解析3 -- TensorFlow核心对象 - Graph 1
  6. Linux指令:sed和awk指令
  7. #ifndef/#define/#endif 防止该头文件被重复引用
  8. python使用协程_Python使用协程进行爬虫
  9. setsebool命令和设置命令
  10. mysql spool csv报错_Oracle使用spool快速导出超大表
  11. el-select默认选中第一个,设置默认值
  12. msf-Msfvenonm生成后门木马
  13. 101-150的质数
  14. 视频码率与视频清晰度、视频大小的关系。视频码率计算公式
  15. #3688. 毒瘤(duliu)
  16. UICC,USIM卡与SIM的区别
  17. 写博客的一些感想和想对读者说的话
  18. package ‘gdm‘ has no installation candidate
  19. RK3399 Android7.1修改系统默认壁纸
  20. 基于BiGRU短期电力负荷预测方法

热门文章

  1. Linux中执行shell脚本的方法,在Linux中执行Shell脚本的4种方法的总结
  2. catia二次开发:人机交互select,start command
  3. 阿里巴巴 29 个屌炸天的开源项目!
  4. 缓冲区溢出实例(一)--Windows
  5. 这是最好的时光,这是最坏的时光 SNAPSHOT
  6. java二面问什么_java面试题,拼多多面试题分享(java二面)
  7. 百度一面 / 二面 总结
  8. 多普达P800 GPS设置终极教程
  9. 经典网页设计:25个精美的全屏背景网站设计作品
  10. 学习笔记47—PhotoShop技巧