74HC595移位寄存器的使用
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移位寄存器实物(引脚)
Q0~Q7 | 8个数字输出(二进制) |
---|---|
Vcc | 接电源正极 |
GND | 接电源负极 |
DS | 高电频输入1,低电平输入0 |
/OE |
低电平74HC595有效使用(接地GND就好了) |
/MR | 低电平复位(如果不需要复位直接接电源就行) |
SH_CP | 高电平触发时,DS的数被存入,一次存一个 |
ST_CP | 高电平触发时,DS存入的所有二进制数被输出 |
Q7' | 不用接 |
如何判断74HC595移位寄存器的方向?
哪边有豁口哪边就朝上,然后对照那个“74HC595移位寄存器(引脚图)”认一下就知道咋接了!
I/O表:
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移位寄存器的使用相关推荐
- 基于51单片机定时器计数+74HC595移位寄存器+8位数码管时钟
基于51单片机+74HC595移位寄存器+8位数码管时钟 Proteus仿真 实例代码 #include "at89x52.h" sbit SHCP =P0^1; // 移位寄存器 ...
- 51单片机-74HC595移位寄存器
目录 1.74HC595芯片介绍 1.1.引脚定义 1.2.工作原理 2.实际应用 2.1.控制数码管 2.2.点阵屏显示图形 2.3.点阵屏显示动画 3.知识点 3.1.位变量(sbit/bit) ...
- 【龙芯1B】:74HC595数码管或74HC138数码管程序开发
学习目标:解决龙芯1B:74HC595或74HC138数码管显示问题 首先我们要知道数码管的原理:以74HC595为例,74HC595是具有三态输出功能(即具有高电平.低电平和高阻抗三种输出状态)的门 ...
- 关于小梅哥74HC595驱动设计的思考
文章目录 源码 RTL testbench 仿真结果 分析 改进 关于74HC595芯片的规格参数以及时序图可参考德州仪器CD74HC595或其他博客,在此不多做分析. 现如今,小梅哥用两片74HC5 ...
- Arduino + 74HC595实现24x24点阵贪吃蛇游戏
Arduino + 74HC595实现24x24点阵贪吃蛇游戏 简介 硬件 开发环境 接线图 软件部分 方向控制 蛇身轨迹 碰壁检测 蛇身显示 刷新食物 仿真演示 源码和原理图下载 简介 本文是基于A ...
- 零成本学arduino——74hc595寄存器教程
本文介绍如何用arduino控制74hc595 1.知识预览 对74hc595寄存器进行介绍 shiftOut()函数介绍 对控制程序进行介绍 2.仿真预览 点击74hc595开始仿真 3.74hc5 ...
- Arduino与Proteus仿真实例-74HC595驱动7段数码管仿真
74HC595驱动7段数码管仿真 74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出.移位寄存器和存储寄存器都有独立的时钟.该器件具有串行输入 (DS) ...
- STM32F1与STM32CubeIDE编程实例-74HC595驱动4位7段数码管
74HC595驱动4位7段数码管 1.74HC595介绍 74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出.移位寄存器和存储寄存器都有独立的时钟.该器件 ...
- STM32CUBEMX 配置12脚3641BS以及串口显示RTC时间
最近在学习STM32F4系列的RTC时钟系统,同时也在学习4位7段数码管显示驱动.而市面上很多3641BS数码管都是集成了74HC595移位寄存器芯片的PCB板,故网上大多基于STM32驱动该型号数码 ...
- 3208点阵时钟c语言程序,点阵万年历(带时间、年月日星期调整及闹钟功能)C程序...
/*此程序是一款用3216点阵屏与DS1302芯片以及 三个按键与STC12C5204AD 4KROM单片机组合成的 万年历电子钟具体功能如下:正常情况下上半屏 (3208)显示主时间.当第1次按下功 ...
最新文章
- 周礼栋:现在是计算机系统和网络研究“最好的时代”
- pip install robot framework出现字符集编码错误
- ZkServer服务启动的逻辑-NIOServerCnxnFactory.configure
- C语言,把指针按地上摩擦,爽
- Tensorflow源码解析3 -- TensorFlow核心对象 - Graph 1
- Linux指令:sed和awk指令
- #ifndef/#define/#endif 防止该头文件被重复引用
- python使用协程_Python使用协程进行爬虫
- setsebool命令和设置命令
- mysql spool csv报错_Oracle使用spool快速导出超大表
- el-select默认选中第一个,设置默认值
- msf-Msfvenonm生成后门木马
- 101-150的质数
- 视频码率与视频清晰度、视频大小的关系。视频码率计算公式
- #3688. 毒瘤(duliu)
- UICC,USIM卡与SIM的区别
- 写博客的一些感想和想对读者说的话
- package ‘gdm‘ has no installation candidate
- RK3399 Android7.1修改系统默认壁纸
- 基于BiGRU短期电力负荷预测方法