首页 Mixly开源项目设计26:移位寄存器(一)-将LED点亮

Mixly开源项目设计26:移位寄存器(一)-将LED点亮

举报
开通vip

Mixly开源项目设计26:移位寄存器(一)-将LED点亮    Mixly开源项目设计26移位寄存器(一)将LED点亮    隋杰峰流水灯项目是我们在开源硬件学习项目中很常见的一个项目。实验中,我们常用一个管脚控制一个LED,这样我们做一个8位流水灯,就需要占用8个管脚,而常用的Arduino UNO R3开发板只有20个管脚,如果要做一个30位流水灯,如果依然让一个管脚控制一个LED,那么UNO上的管脚显然是不够的,这时,我们应该怎么办呢?换成管脚更多的Mega2560吗?同样,如果我们要做64位流水灯,Mega2560的管脚也...

Mixly开源项目设计26:移位寄存器(一)-将LED点亮

 

 

Mixly开源项目设计26

移位寄存器(一)

将LED点亮

 

 

隋杰峰

流水灯项目是我们在开源硬件学习项目中很常见的一个项目。实验中,我们常用一个管脚控制一个LED,这样我们做一个8位流水灯,就需要占用8个管脚,而常用的Arduino UNO R3开发板只有20个管脚,如果要做一个30位流水灯,如果依然让一个管脚控制一个LED,那么UNO上的管脚显然是不够的,这时,我们应该怎么办呢?换成管脚更多的Mega2560吗?同样,如果我们要做64位流水灯,Mega2560的管脚也是不够的,所以,我们换个角度来想,不如想办法用少量的管脚控制多个LED,74HC595移位寄存器这个小小的芯片就能够帮我们实现这种想法。

74HC595是一块8位串行输入、并行输出(也可以串行输出)的芯片,我们使用它,只需要UNO的3个管脚即可控制8个独立的LED(如图1)。

网络上介绍74HC595的文章很多,但采用的全是代码编程,让很多不懂代码的初学者望而生畏,实际上,在图形化编程软件Mixly中有一个模块是与它相关的。因此,本文中将用Mixly轻松玩转74HC595,力图让初学者也能秒懂。

如图2所示,74HC595共有16只脚,下面我们就来认识一下它的各个引脚。

在74HC595芯片上有个小凹口,只要与图上引脚的小凹口对应,即可知道它的各个引脚。

VCC和GND自不必说,分别接UNO的5V和GND即可;

Q0~Q7是并行输出,本文中我们接8个LED;

DS、SHCP(下面简称SH)、STCP(下面简称ST)是输入端;

DS是串行数据输入端(一般Arduino的代码里会定义一下引脚,74HC595的案例中,dataPin指的是接这个脚);

SH是串行时钟输入端(clockPin指的是接这个脚);

ST是锁存端(latchPin指的是接这个脚);

OE是输出使能引脚,低电平时输出,高电平时不输出,所以,直接接在GND上使其一直保持低电平输出数据;

MR是用来重置内部寄存器的引脚,低电平时重置内部寄存器,所以,直接连接在VCC上一直保持高电平;

Q7S是串行输出(可以接下一个74HC595的DS,数据可作为串行输入,这就是74HC595的级联,也就是说,此时3个输入控制16个输出),此引脚不用可以空置。

需要的元件(如下页 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 所示)

电路连接

电路连接如下页图3所示,8个LED的负极(短脚)分别通过一个220Ω电阻与GND连接;74HC595有小凹口的一面向左,VCC接5V,VCC与GND之间接一个104电容,GND接GND;DS接管脚2,ST接管脚3,SH接管脚4,OE接GND,MR接VCC,Q7S空置。

程序设计

应用74HC595做流水灯,在Arduino IDE中我们会用到shiftOut这个 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 ,在Mixly中也有对应的模块,如图4所示。

首先,我们通过一个程序来了解一下74HC595串行输入、并行输出的过程。将图5程序上传,我们会发现Q7脚接的灯是亮的,如图6所示。

下面,我们来解释一下这个过程:

首先,管腳3给了锁存端(ST)一个低电平,意思是说“嗨,74HC595,开始干活了”,然后,管脚2给了数据(DS)一个十进制数1,关键是74HC595不认识它,所以,就需要转换成8位的二进制数00000001,不足8位的,前面加0补足8位,为啥是8位的?因为,74HC595是8位移位寄存器,有8个输出(如图7)。

这时候,时钟(SH)开始干活了,管脚4每制造一次上升沿(先拉低电平再拉高电平),这一串数就进去一个,8次之后,都进去了,每个数就都有自己的一个位置了,即每个动作只操作一位数据,这就叫串行输入(如图8)。

至于谁先进去,进去之后,每一个数字都在哪个位置,这得看是低位先入还是高位先入,什么意思呢?我们先要弄明白低位和高位,以二进制数00000001为例,左边0这一端是高位,右边1这一端是低位,所以,低位先入的意思就是从最右边的1(低位)开始依次进入,直到最左边的0(高位)进去;高位先入的则刚好相反,从最左边的0(高位)开始依次进入,直到最右边的1(低位)进去。

下面我们以低位先入为例,用上大巴车做个比方:在二进制数00000001中,低位先入,给SH脚制造一次上升沿(我们可以理解为检票),那第一个上大巴车的肯定是最右边的1,它上去了之后,就占据了第一排的位置(如图9)。

继续给SH脚制造一次上升沿之后,1左边的0,开始上车,然后,它并不是走向第二排座位,而是让1往后挪一个,它坐第一排(如图10)。

继续给SH脚制造一次上升沿,已经上车的1和0继续往后挪,新上车的0占据第一排座位(如图11)。

如此继续给SH脚制造上升沿,高位的0,继续上车,车上的数继续往后排顺延,直到发生第8次上升沿,所有的数字都上车了(如图12)。

然后,管脚3给了锁存端(ST)一个高电平,让每个数都记住自己的位置,在自己的位置坐着(绝对不允许换座位)(如图13)。

最后,每个数掌管一个输出,即每个动作操作多位(这里是8位)数据,这就是并行输出。这样,Q0~Q6脚都得到了一个0(低电平),Q7脚得到一个1(高电平),所以,Q0~Q6脚接的灯都是灭的,Q7脚接的灯是亮的。

同样的道理,将数据输入改为3,程序如图14所示。这时候,我们把十进制数2变为8位二进制就是00000011,采用低位先入,按照我们上面的推算 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,应该是Q6、Q7高电平,其余低电平,Q6脚和Q7脚接的LED亮,实验结果也是如此(如图15)。

下面,我们再看高位先入,输入数据1,将程序继续改动(如图16),我们会发现,结果正好与程序1低位先入相反。这是因为,将十进制1转换为8位二进制为00000001,高位先入,即从左边的0依次进入移位寄存器。最终,Q0对应的是1,高电平,其他脚对应的是0,低电平,所以,Q0接的LED亮,其他脚接的LED灭(如图17)。

同样,我们也可以继续改变输入的数值,设置低位先入或高位先入,控制这8个LED的亮灭,不过,我们输入的数值尽量不要超过255。当我们输入255,上传程序后,灯是全部都亮的,我们把十进制的255转换为二进制为11111111,这已经是8位二进制最大的数了,所以,0到255这总共256个数值就已经能全部体现出8个LED亮灭的所有情形。

 

- 全文 企业安全文化建设方案企业安全文化建设导则安全文明施工及保证措施创建安全文明校园实施方案创建安全文明工地监理工作情况 完-

本文档为【Mixly开源项目设计26:移位寄存器(一)-将LED点亮】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
资教之佳
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:5
分类:互联网
上传时间:2023-11-27
浏览量:1