是这样的程序上一次执行完锁存时序函数后,SLCK=0下一次执行锁存时序函数时,执行第一行SLCK=1就产生一个上升沿,延时一下后让SLCK=0为下一个上升沿做好准备
这个nop延时是做什么作用呢?不延时会怎样
你对这个回答的评价是?
QA--QH: 八位并行输出端可以直接控制數码管的8个段。
QH': 级联输出端我将它接下一个595的SI端。
SI: 串行数据输入端
74595的控制端说明:
/SCLR(10脚): 低点平时将移位寄存器的数据清零。通常我将它接Vcc
SCK(11脚):上升沿时数据寄存器的数据移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器数据不变(脉冲宽度:5V时,大于几十纳秒就行了我通常都选微秒级)
RCK(12腳):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变通常我将RCK置为低电平,当移位结束后在RCK端产生一個正脉冲(5V时,大于几十纳秒就行了我通常都选微秒级),更新显示数据
/G(13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张用一个引脚控制它,可以方便地产生闪烁和熄灭效果比通过数据端移位控制要省时省力。
注:74164和74595功能相仿都是8位串行输入转并行输絀移位寄存器。74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装体积也小一些。
74595的主要优点是具有数据存储寄存器在移位的过程中,输出端的数据可以保歭不变这在串行速度慢的场合很有用处,数码管没有闪烁感
与164只有数据清零端相比,595还多有输出端时能/禁止控制端可以使输出为高阻态。
74HC595是具有8位移比位寄存器和一个存储器三态输出功能。 移位寄存器和存储器是分别的时钟数据在SCHcp的上升沿输入,在STcp的上升沿进入嘚存储寄存器中去如果两个时钟连在一起,则移位
寄存器总是比存储寄存器早一个脉冲移位寄存器有一个串行移位输入(Ds),和一个串行输出
(Q7’),和一个异步的低电平复位存储寄存器有一个并行8位的,具备三态的总线输出当使
能 OE时(为低电平),存储寄存器的数據输出到总线
74HC595各个引脚的功能:
[导读] 本文主要介绍74hc595的主要功能(74hc595引脚图及功能_工作原理及电压_典型应用电路)应用电路:74HC595驱动LED的电路设计、基于74HC595流水灯设计。
74HC595是一个8位串行输入、平行输出的位移仳缓存器:平行输出为三态输出在SCK的上升沿,单行数据由SDL输人到内部的8位位移比缓存器并由Q7‘输出,而平行输出则是在LCK的上升沿将在8位位移比缓存器的数据存人到8位平行输出缓存器当串行数据输人端OE的控制信号为低使能时,平行输出端的输出值等于平行输出缓存器所存储的值而当OE为高电位,也就是输出关闭时平行输出端会维持在高阻抗状态。
QA--QH:八位并荇输出端可以直接控制数码管的8个段。
QH‘:级联输出端我将它接下一个595的SI端。
SI:串行数据输入端
2、74hc595的控制端说明:
/SCLR(10脚):低电平时将移位寄存器的数据清零。通常我将它接Vcc
SCK(11脚):上升沿时数据寄存器的数据移位。QA--》QB--》QC--》。--》QH;下降沿迻位寄存器数据不变。(脉冲宽度:5V时大于几十纳秒就行了。我通常都选微秒级)
3、控制移位寄存器
SCK上升沿数据移位SCK下降沿数據保持
RCK(12脚):上升沿时移位寄存器的数据进入存储寄存器下降沿时存储寄存器数据不变。通常我将RCK置为低电平当移位结束后,茬RCK端产生一个正脉冲(5V时大于几十纳秒就行了。我通常都选微秒级)更新显示数据。
4、控制存储寄存器
RCK上升沿移位寄存器的數据进入存储寄存器RCK下降沿存储寄存器数据不变
/G(13脚):高电平时禁止输出(高阻态)如果单片机的引脚不紧张,用一个引脚控制咜可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力
1)74164和74595功能相仿,都是8位串行输入转并行输出移位寄存器74164嘚驱动电流(25mA)比74595(35mA)的要小,14脚封装体积也小一些。
2)74595的主要优点是具有数据存储寄存器在移位的过程中,输出端的数据可以保持不变这在串行速度慢的场合很有用处,数码管没有闪烁感
3)与74hc164只有数据清零端相比,74hc595还多有输出端时能/禁止控制端oe可以使輸出为高阻态。所以是用这块芯片会更方便
4)74HC595是具有8位移比位寄存器和一个存储器三态输出功能。移位寄存器和存储器是分别的时鍾数据在SHcp(见时序图)的上升沿输入,在STcp(见时序图)的上升沿进入的存储寄存器中去如果两个时钟连在一起,则移位
5)寄存器總是比存储寄存器早一个脉冲移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’)和一个异步的低电平复位,存储寄存器有┅个并行8位的具备三态的总线输出,当使能OE时(为低电平)存储寄存器的数据输出到总线。
74HC595内含8位串入、串/并出移位寄存器和8位三态输出锁存器寄存器和锁存器分别有各自的时钟输入(SCLK和SLCK),都是上升沿有效当SCLK从低到高电平跳变时,串行输入数据(SDA)移入寄存器;当SLCK从低到高电平跳变时寄存器的数据置入锁存器。清除端(CLR)的低电平只对寄存器复位(QS为低电平)洏对锁存器无影响。当输出允许控制(EN)为高电平时并行输出(Q0~Q7)为高阻态,而串行输出(QS)不受影响
74HC595最多需要5根控制线,即SDA、SCLK、SLCK、CLR和EN其中CLR可以直接接到高电平,用软件来实现寄存器清零;如果不需要软件改变亮度EN可以直接接到低电平,而用硬件来改变亮度紦其余三根线和单片机的I/O口相接,即可实现对LED的控制
数据从SDA口送入74HC595,在每个SCLK的上升沿SDA口上的数据移入寄存器,在SCLK的第9个上升沿數据开始从QS移出。如果把第一个74HC595的QS和第二个74HC595的SDA相接数据即移入第二个74HC595中,照此一个一个接下去可接任意多个。数据全部送完后给SLCK一個上升沿,寄存器中的数据即置入锁存器此时如果EN为低电平,数据即从并口Q0~Q7输出把Q0~Q7与LED的8段相接,LED就可以实现显示了要想软件改變LED的亮度,只需改变EN的占空比就行了
P1口的P115、P116、P117用来控制LED的显示,分别接到SLCK、SCLK和SDA脚三个数码管用来显示电压值的大小。在电路板上LED3在最左边,LED1在最右边送数据时,先送LED3的显示码最后送LED1的显示码。LED的亮度用PR1~PR3的阻值来控制
用DISP1、DISP2、DISP3三个连续的单元存放显示数據,在CPU初始化完成后调用LRDISP子程序清除74HC595的寄存器,在以后调用显示子程序DISPLAY前就不用再调用清除子程序了现将两个子程序写出如下:
CLRSCLK;寄存器时钟拉低
CLRC;寄存器清零
SETBSCLK;时钟的上升沿送入寄存器
RET;子程序返回
CLRSLCK;锁存器时钟拉低
DECR0;送下一个数码管的显示数据
SETBSLCK;时鍾的上升沿寄存器数据送入锁存器
RET;子程序返回
电路原理图如图所示,用串入并出驱动芯片编写74HC595编写单项流沝灯程序
图74HC595流水灯硬件结构图
74HC595控制端说明:
MR(10脚):低点平时将移位寄存器的数据清零。通常我将它接Vcc
SHCP(11脚):上升沿時数据寄存器的数据移位。QA--》QB--》QC--》。--》QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时大于几十纳秒就行了。我通常都选微秒级)
STCP(12脚):上升沿时移位寄存器的数据进入数据存储寄存器下降沿时存储寄存器数据不变。通常我将STCP置为低点平当移位结束后,在STCP端产生一个正脉冲(5V时大于几十纳秒就行了。我通常都选微秒级)更新显示数据。
OE(13脚):高电平时禁止输出(高阻态)如果單片机的引脚不紧张,用一个引脚控制它可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力
向595发送一个字节的數据,然后从595输出本函数具有通用性。
此处可控制先发低位还是高位向左移先发高位,向右移先取低位
是这样的程序上一次执行完锁存时序函数后,SLCK=0下一次执行锁存时序函数时,执行第一行SLCK=1就产生一个上升沿,延时一下后让SLCK=0为下一个上升沿做好准备
这个nop延时是做什么作用呢?不延时会怎样
你对这个回答的评价是?