单片机芯片之——图解74HC595(第一部分)

引脚图

 

 

14脚:DS(SER),串行数据输入引脚

13脚:OE,  输出使能控制脚,它是低电才使能输出,所以接GND

12脚:RCK,存储寄存器时钟输入引脚。上升沿时,数据从移位寄存器转存带存储寄存器。

11脚:SCK,移位寄存器时钟引脚,上升沿时,移位寄存器中的bit 数据整体后移,并接受新的bit(从SER输入)。

10脚:MR,低电平时,清空移位寄存器中已有的bit数据,一般不用,接 高电平即可。

9 脚 :串行数据出口引脚。当移位寄存器中的数据多于8bit时,会把已有的bit“挤出去”,就是从这里出去的。用于595的级联。

Qx:并行输出引脚

 

使用参数

VCC:2V~6V,5V最好

I Qn:+- 35mA

 

注意

第一个从SER送入的bit将会从Q7出去。

 

 

 

74HC595介绍

一张图片和一段文字,哪种信息传递方式给人的第一视觉冲击是最大的?我想大家心中都有答案。

这也是我文章标题的来由。废话就到这里,下面我就用图片来分析595这个chip。

 

74HC595的最重要的功能就是:串行输入,并行输出。3态高速位移寄存器(好腻害的说)

595里面有2个8位寄存器:移位寄存器、存储寄存器

 

移位寄存器

在我看来,74HC595的移位寄存器工作方式就像shou qiang弹夹。但是子弹的发射(移位寄存器中的数据转储到存储寄存器),又像是【散x弹】(因为是并行输出嘛)

 

 

为什么说和弹夹很像呢?

1、串行输入,已进入的位数据依次下移(所以叫移位寄存器)         |     子弹也是一颗一颗上的,先上的子弹,被后上的慢慢往下压。

2、第一个输入的位,是并行输出的最后一个位                          |     最先进入弹夹的子弹,最后射出。

 

 

74HC595的引脚图

14脚:DS,又叫SER  英文全称是:Serial data input ,顾名思义,就是串行数据输入口

595的数据来源只有这一个口,一次只能输入一个位,那么连续输入8次,就可以积攒为一个字节了。

 

假如,我们要将二进制数据0111 1111 输入到595的移位寄存器中,下面来上一张动态图,模拟了前2个位输入的情景。

这个图有7帧,做了很久,毕竟不是做美工的。可谓术业有专攻,闻道有先后啊,还是要虚心学习 :)

 

0111 1111 这个数据完全输入后是这样的

我们还要注意一个脚:11脚,(shift register clock input)  移位寄存器时钟引脚。上升沿有效。

首先我们要介绍这个引脚的作用。

我们知道51单片机的工作离不开晶振,他使CPU的工作步调稳定有序,就像跑步时喊1,2,1的那个人。

那么这里的位移寄存器时钟也是同样的道理,当一个新的位数据要进来时,已经进入的位数据就在移位寄存器时钟脉冲的控制下,整体后移,让出位置。

上升沿:电平从低到高的那个过程。移位寄存器时钟在上升沿这个过程中才起作用。

     

 

 

 

存储寄存器

到这里我们已经大致讲了怎么上子弹,也把子弹上齐了。下面来将怎么将子弹打出去,也就是怎么将移位寄存器的数据转移到存储寄存器

存储寄存器是直接和8个输出引脚相通的,将移位寄存器的数据转移到存储寄存器后,Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 就可以接受带到我们

开始输入的一个字节的数据。所谓存储寄存器,就是数据可以存在这个寄存器中,并不会随着一次输出就消失,只要595不断电,也没有新 的

数据从移位寄存器中过来,数据就一直不变且有效。新的数据过来后,存储寄存器中的数据就会被覆盖更新。

 

12脚: (storage register clock input )  存储寄存器时钟

数据从位移寄存器转移到存储寄存器,也是需要时钟脉冲驱动的,这就是12脚的作用。它也是上升沿有效。

 

 

自此,我们已经讲解了一个595正常情况下的工作流程,下面写一个程序,让8个LED保持 亮暗亮暗.... 间隔的效果。

Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7   分别接  8个LED正极

14脚SER 接 单片机P3.4

11脚SCK 接 单片机P3.6

12脚RCK接  单片机P3.5

13脚OE接GND

10脚MR接VCC

9脚闲置不接

复制代码
#include<reg51.h>
#include<intrins.h>

typedef unsigned char uchar;
typedef unsigned int uint;

/**********函数声明********************/
void SendTo595(uchar byteData);
/***********************************/ sbit SER = P3^4; //p3.4脚控制串行数据输入 sbit SCK = P3^6; //串行输入时钟 sbit RCK = P3^5; //存储寄存器时钟 void main() { SendTo595(85); //85的二进制:0101 0101 while(1); } //功能:发送一个字节的数据给595,再并行输出 void SendTo595(uchar byteData) { char i=0;
for(;i<8;i++) { SER = byteData>>7; //大家自己考量这2句 byteData= byteData<<1; SCK = 1; //上升沿,让串行输入时钟变为高电平,并延时2个时钟周期 _nop_(); _nop_(); SCK = 0; //变为低电平,为下次准备 } /*位移寄存器数据准备完毕,转移到存储寄存器*/ RCK = 1; //上升沿,让存储寄存器时钟变为高电平,并延时2个时钟周期 _nop_(); _nop_(); RCK = 0; }
复制代码

 

 

扩展提升

见识到595的厉害了吧。138译码器通过3个输入口控制8个输出口,而且还只能是特定的8个输出值,

而595只用了一个输入口就可以输任意的8位数据。可谓短小精悍。

啥?你觉的1位控制8位输出还不够?让你的595串联起来吧!打造成加特林机关枪。

 

在上面的程序中用到的9脚,没用起作用,如果要让2个595串联起来的话,就需要它了。

想一下,我们将移位寄存器的8个位填满后,再往移位寄存器中塞一个会怎么样?也许你想到了。

对!移位寄存器的最后一个位数据会被挤出去,从哪里出去?就是从9脚输出的。如果我们把第一个595的

9脚连接到第二个的串行数据输入脚SER,那么,就形成了595的级联。这样,如果我们用2个595组合成了一个新的超级595,

这个草鸡595的移位寄存器和存储寄存器的容量都翻倍了,1口控制16口,有木有!你还可以继续级联下去!

 

最后还遗留2个 595 的脚没说

13脚OE  输出使能控制脚,如果它不工作,那么595的输出就是高阻态,595就不受我们程序控制了,这显然违背我们的意愿。

OE的上面画了一条线,表示他是低电平有效。于是我们将他接GND。

 

10脚MR ,位移寄存器清空脚,他的作用就是将位移寄存器中的数据全部清空,这个很少用到,所以我们一般不让他起作用,他

也是低电平有效,于是我们给他接VCC。

 

终于写完了,希望帮到大家。以后还会继续讲解其它的74系列的逻辑芯片,尽请期待!

如有错误欢迎指出。 :)

 

作者:代码钢琴家 
出处:http://www.cnblogs.com/lulipro/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。为了获得更好的阅读体验,请访问原博客地址。限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

已标记关键词 清除标记
相关推荐
(文件太大无法上传全部,下载的是网盘链接(内含全部文件)!!!)部分资料清单: 0001、PC 机与单片机通信(RS232 协议) 0002、C与VB语言联合在proteus上仿真 0003、IC卡读写仿真 0004、Integrate就医服务平台论文 0005、PC红外线遥控器上位机及电路图 0006、PLC电梯控制系统论文 0007、VB上位机程序控制DS1302时钟的proteus仿真 0008、VB上位机与18b20下位机 0009、八路扫描式抢答器设计论文 0010、比较全面的手机原理资料 0011、采用实时时钟芯片DS1302+AT89C2051的红外遥控LED电子钟 0012、51单片机超声波测距程序 0013、单片机C语言程序设计实训100例——基于8051+Proteus仿真 0014、电机转速测量系统论文 0015、多功能出租车计价器设计论文资料 0016、多功能数字时钟设计论文资料 0017、肺活量测量仪设计论文资料 0018、高保真音响设计制作论文资料 0019、高灵敏无线探听器电路资料 0020、给初学51单片机的40个实验汇编语言对应C语言加说明 0021、国旗升降系统程序及原理图资料 0022、基于51单片机的电子万年历的设计论文资料 0023、基于51单片机的数字频率计设计论文资料 0024、基于AVR及无线收发模块的脉搏监测系统设计论文资料 0025、基于CPLD的三相多波形函数发生器设计论文资料 0026、基于DDS的信号源设计论文资料 0027、基于FPGA多通道采样系统设计论文资料 0028、基于GSM短信模块的家庭防盗报警系统论文资料 0029、基于IGBT的变频电源设计论文资料 0030、基于PLL信号发生器的设计论文资料 0031、基于PSTN的家用电器远程控制系统设计论文资料 0032、基于USB的经络信号的检测系统与设计论文资料 0033、基于USB接口的温度控制器设计资料 0034、基于单片机的电集中抄表设计论文资料 0035、基于单片机的简易逻辑分析仪设计论文资料 0036、基于单片机的数字温度计设计论文资料 0037、基于单片机的数字钟设计论文资料 0038、基于单片机的水温控制系统PDF资料 0039、基于单片机的水温控制系统设计论文资料 0040、基于单片机的作息时间控制钟系统资料 0041、基于单片机的温度控制系统论文资料 0042、基于单片机控制的交通灯毕业设计资料 0043、基于单片机控制的开关电源论文资料 0044、基于网络的虚拟仪器测试系统论文资料 0045、家用音响设计制作论文资料 0046、具有定时功能的八路数显抢答器的设计论文 0047、开关电源论文资料 0048、自来水厂全自动恒压供水监控系统论文资料 0049、量程自动切换数字电压表proteus仿真+程序资料 0050、牧场智能挤奶与综合信息管理系统论文资料 0051、汽车实验台电路控制系统论文 0052、汽车尾灯控制电路设计论文资料 0053、抢答器论文及其proteus仿真资料 0054、全遥控数字音量控制的D 类功率放大器论文资料 0055、ATMEGA16单片机实现的数控频率计原理图及其程序论文 0056、数控云台proteus仿真+程序资料 0057、AT89S52单片机实现数控直流电流源论文资料 0058、AT89S52单片机数控直流电源原理图程序资料 0059、数控直流稳压电源完整论文资料 0060、数控直流稳压电源proteus仿真+程序资料 0061、数字示波器的制作 0062、数字式调频收音机设计论文资料 0063、数字式秒表文档论文资料 0064、数字万年历设计论文资料 0065、数字温度计设计论文资料 0066、水库控制系统设计论文资料 0067、同步电机模型的MATLAB仿真论文资料 0068、危险气体泄露报警器设计论文资料 0069、微型打印机控制电路的设计论文资料 0070、温度监控系统的设计论文资料 0071、温度控制系统设计论文资料 0072、无线调频发射器的设计论文资料 0073、无线视频监控系统设计毕业论文资料 0074、无线鼠标设计论文资料 0075、无线数据收发系统毕业论文资料 0076、无线遥控盆腔治疗仪论文资料 0077、无线遥控设计资料 0078、无线语音遥控智能车论文资料 0079、消防智能电动车设计与制作论文资料 0080、悬挂运动控制系统论文资料 0081、遥控系统的设计资料 0082、液体点滴速度监控装置资料 0083、一种智能频率计的设计与制作(AVR)proteus仿真+程序资料 0084、音频信号分析仪毕业设计论文资料 0085、应用电子、继电线路设计论文资料 0086、用单片机实现温度远程显示论文资料 0087、远程温度控制系统毕业
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页