移位寄存器MC74HC165ADTR2G和MC74HC595ADTR2G 功能介绍以及使用配置

     移位寄存器(Shift Register)由多个 flip-flop或者latch级联构成,flip-flop或者latch可以说是移位寄存器中存储数据的基本单位,用来存放二进制数据位 0 0 0 1 1 1。在flip-flop或者latch的级联结构中,除开第一个和最后一个flip-flop或者latch单元外,一个flip-flop或者latch单元的输出又是另一个flip-flop或者latch单元的输入。移位寄存器中的所有flip-flop或者latch单元共享同样的时钟,在每一次输入时钟的跳变时就进行一次移位。
     移位寄存器可以有并行或串行输入或输出,根据此它们可以主要分为以下四类:

  • 串行输入并行输出(Serial-in to Parallel-out, SIPO):寄存器输入串行数据且一次一个比特位,但是在输出端以并行的形式输出。

  • 串行输入串行输出(Serial-in to Serial-out,SISO):在时钟的控制之下每次一个比特位移进或移出(左移或右移)寄存器。

  • 并行输入串行输出(Parallel-in to Serial-out,PISO):移位寄存器的每一个比特位并行的同时输入寄存器,在时钟的控制之下每次一个比特位串行移出移位寄存器。

  • 并行输入并行输出(Parallel-in to Parallel-out, PIPO):移位寄存器的每一个比特位并行的同时输入寄存器并且在同一个时钟脉冲下每一个比特位同时输出到它们各自的输出端。

     我们这里要介绍的移位寄存器MC74HC165ADTR2G属于并行输入串行输出的8比特移位寄存器,详细的说明可以查看它的DATASHHET。它的大概的结构图如图1所示。引脚 A − > H A->H A>H是8个并行输入端口,引脚 S A SA SA是串行输入端口, S A SA SA端口主要用来多个移位寄存器MC74HC165ADTR2G的级联。当引脚 S e r i a l S h i f t / P a r a l l e l L o a d SerialShift/ParallelLoad SerialShift/ParallelLoad为低电平时八个并行输入端口的高低电位状态进入移位寄存器并存储到其对应的flip-flop或者latch单元中。当引脚 S e r i a l S h i f t / P a r a l l e l L o a d SerialShift/ParallelLoad SerialShift/ParallelLoad为高电平时,在每一个时钟信号周期的上升沿移位寄存器中flip-flop或者latch单元的级联结构中进行一次移位操作,如果此时 S A SA SA端口有信号输入,则该信号会移位到移位寄存器中,flip-flop或者latch单元的级联结构的最后一个单元中的二进制数据位则会通过串行输出引脚 Q H QH QH移出移位寄存器。如图2所示。串行输出引脚 Q H QH QH和引脚 Q H ( i n v e r t ) QH(invert) QH(invert)的输出是互补的即引脚 Q H ( i n v e r t ) QH(invert) QH(invert)的输出是引脚 Q H QH QH的反向,引脚 Q H QH QH输出高电平时引脚 Q H ( i n v e r t ) QH(invert) QH(invert)输出低电平,引脚 Q H QH QH输出低电平时引脚 Q H ( i n v e r t ) QH(invert) QH(invert)输出高电平,这可能是为了某种情况下抗干扰使用的,这一点我不是很清楚。165这一类的移位寄存器用来扩充芯片的GPIO输入口,当芯片的GPIO输入口不够时一个GPIO口就可以读取多个按键开关的状态,特别是在级联的时候。

 
图1.
 
图2.

     至于移位寄存器MC74HC165ADTR2G的级联,只需要将一个寄存器的串行输出口 Q H QH QH接入到另一个寄存器的串行输入口 S A SA SA即可。图3是两个移位寄存器的级联的简单例子,现在假设这两个移位寄存器的一共16个并行接口接了16个按键,现在通过SPI协议来读取这16个开关的状态,因为我们这里是读且芯片是MASTER,我们只需要接三根线:时钟线,片选线,以及MISO线。接线示意图如图3所示。这里的片选信号是高电平,因为当引脚 S e r i a l S h i f t / P a r a l l e l L o a d SerialShift/ParallelLoad SerialShift/ParallelLoad为高电平时,在每一个时钟信号周期的上升沿移位寄存器中flip-flop或者latch单元的级联结构中进行一次移位操作,在移位的过程中前一个移位寄存器中从串行输出口 Q H QH QH输出的比特位会移入下一个移位寄存器的串行输入口,经过16个时钟周期后,16个按键的状态就可以通过SPI协议读取到。

 
图3.

     MC74HC595ADTR2G属于串行输入并行输出的移位寄存器,详细的说明可以查看它的DATASHHET。它的大概的结构图如图4所示。引脚 Q A − > Q H QA->QH QA>QH是8个并行输出端口,引脚14是串行输入端口,引脚9是串行输出端口,它们主要用来多个移位寄存器MC74HC595ADTR2G的级联。可以看出来这里的MC74HC595ADTR2G芯片比之前的MC74HC165ADTR2G芯片的内部结构多了8个flip-flop或者latch单元,其中8个单元和以前的MC74HC165ADTR2G一样用来移位,而剩下的8个flip-flop或者latch单元用来并行输出。MC74HC595ADTR2G芯片有两个时钟信号引脚,11引脚为移位时钟,12为锁存时钟。在11引脚时钟的每一个上升沿MC74HC595ADTR2G芯片中的8个用于移位的flip-flop或者latch单元的级联结构中进行一次移位操作,如果此时引脚14端口有信号输入,则该信号会移位到移位寄存器中,flip-flop或者latch单元的级联结构的最后一个单元中的二进制数据位则会通过串行输出引脚9移出移位寄存器。如图5所示。
     在12引脚时钟的每一个上升沿MC74HC595ADTR2G芯片中8个用于移位的flip-flop或者latch单元的级联结构中的每一个单元中的二进制数据位都存储到剩下的8个flip-flop或者latch单元。如图6所示。
     当13引脚为低电平时,存储于剩下的8个flip-flop或者latch单元中的8个二进制数据位会并行的输出到芯片外部。当13引脚为高电平时,存储于剩下的8个flip-flop或者latch单元中的8个二进制数据位的输出会呈现为高阻态,相当于此时存储于剩下的8个flip-flop或者latch单元中的8个二进制数据位被锁存起来了。如图7所示。
     595这一类的移位寄存器用来扩充芯片的GPIO输出口,当芯片的GPIO输出口不够时一个GPIO口就可以点亮多个LED,特别是在级联的时候。

 
图4.
 
图5.
 
图6.
 
图7.

     至于移位寄存器MC74HC595ADTR2G的级联,只需要将一个寄存器的串行输出口(引脚9)接入到另一个寄存器的串行输入口(引脚14)即可。图8是两个移位寄存器的级联的简单例子,现在假设现在通过这两个移位寄存器的一共16个并行输出口来点亮16个LED,现在通过SPI协议来写这16个LED,因为我们这里是写且芯片是MASTER,我们只需要接三根线:时钟线,片选线,以及MOSI线。接线示意图如图8所示。这里的片选信号是低电平,这样在写多个字节的数据时进入移位寄存器8个用于移位的flip-flop或者latch单元级联结构中的二进制数据位不会马上进入到剩下的8个flip-flop或者latch单元中。当写完2个字节时,这时16个比特位都已进入两个寄存器中一共16个用于移位的flip-flop或者latch单元中。这时SPI协议会取消片选即片选信号变为高电平,相当于在12引脚有一个上升沿,这时两个芯片中一共16个用于移位的flip-flop或者latch单元的级联结构中的每一个单元中的二进制数据位都存储到剩下的16个flip-flop或者latch单元。因为这里我们两个移位寄存器的13引脚都是接地的因此它们都是使能状态。因此在两个芯片中一共16个存储在剩下的16个flip-flop或者latch单元中的二进制数据位会马上输出到两个芯片到达点亮16个LED的目的。
     如果还有不懂的可以看看这位大哥写的关于595和165的文章,我也主要参考了他写的。

 
图8.
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
74HC595和74hc164一样是在单片机系统中常用的芯片之一他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片, 使用74HC595可以节约单片机mcu的io口资源,用3个io就可以控制8个数码管的引脚,他还具有一定的驱动能力,可以免掉三极管等放大电路,所以这块芯片是驱动数码管的神器.应用非常广泛,点这里可以下载完整的74HC595中文资料:http://www.51hei.com/f/74HC595中文资料.pdf 74HC595引脚图 74HC595管脚功能 下面我来介绍一下 74HC595工作原理: 74HC595的数据端: QA--QH: 八位并行输出端,可以直接控制数码管的8个段。 QH': 级联输出端。我将它接下一个595的SI端。 SI: 串行数据输入端。 74hc595的控制端说明: /SCLR(10脚): 低电平时将移位寄存器的数据清零。通常我将它接Vcc。 SCK(11脚):上升沿时数据寄存器的数据移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了。我通常都选微秒级) 控制移位寄存器 SCK 上升沿 数据 移位 SCK 下降沿 数据 保持 RCK(12脚):上升沿时移位寄存器的数据进入存储寄存器,下降沿时存储寄存器数据不变。通常我将RCK置为低电平,当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。 控制存储寄存器 RCK 上升沿 移位寄存器 的 数据进入 存储寄存器 RCK 下降沿 存储寄存器数据不变 /G(13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。 注:74164和74595功能相仿,都是8位串行输入转并行输出移位寄存器。74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装,体积也小一些。 74595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。 与74hc164只有数据清零端相比,74hc595还多有输出端时能/禁止控制端oe,可以使输出为高阻态。所以是用这块芯片会更方便 74HC595是具有8位移位寄存器和一个存储器,三态输出功能移位寄存器和存储器是分别的时钟。数据在SHcp(见时序图)的上升沿输入,在STcp(见时序图)的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位 寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出 (Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使 能 OE时(为低电平),存储寄存器的数据输出到总线。 这里有单片机驱动74hc595的方法: http://www.51hei.com/chip/1799.html 74HC595真值表 74hc595最高电压和最低电压 74HC595时序图 74HC595逻辑图 74HC595和74HC164的区别主要有: 1、74HC595有锁存器,所以在移位过程中输出可以保持不变;而74HC164没有锁存器,所以每产生一个移位时钟输出就改变一次。这是二者的最大区别 2、74HC595使用专门的Q7'引脚实现多片级联;74HC164直接使用输出引脚Q7级联 3、74HC595有使能OE,OE无效时输出引脚为高阻态;而74HC164没有使能引脚 4、74HC595的复位是针对移位寄存器的,想要复位LATCH寄存器还须ST_CP上升沿将移位寄存器内容加载到锁存寄存器;也就是说:74HC595的复位是同步的,74HC164的复位是异步的,所以74HC164的复位更简单 5、74HC164有对应的74HC165并转串芯片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qqssss121dfd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值