[求助] 串联移位寄存器疑问

elec32156   2020-4-19 16:31 楼主

图示是74HC165移位寄存器,串联起来的,一个是8位,两个可以实现16位的数据输出(最终由第二级的QH端输出到单片机),当SH/LD为低电平的时候,8位并行数据输入到寄存器内(应该是2个寄存器都存好了8位数据,总共16位数据),当SH/LD为高电平时,并且CLK_INH为低,CLK有钟脉冲给到寄存器时,开始移位数据,从QH端输出,再从下一级的SER端输入;

搞不明白的是串联起来后,这16位数据具体是怎么串行移位到最后一级QH端的,第一个寄存器的8位数据从第一个寄存器的QH端输出,比如第一位是1,那么1给到第二个寄存器的SER端输入,再从第二个寄存器的QH端输出1,这样一来第二个寄存器的8位数据怎么传出呢?输出端只有QH一个,不冲突了吗?谢谢指点。

 

本帖最后由 elec32156 于 2020-4-19 16:33 编辑
  • 74HC165移位寄存器

回复评论 (8)

楼主应该仔细看看165的器件手册,特别是其真值表。简单说,先有个并行输入口的读入操作,然后在时钟的驱动下,内部移位寄存器将读入的并口数据依次从输出端按位输出,同时165还有个串行输入端,所以支持多片串联。

上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
点赞  2020-4-19 17:36

两片74HC165级联,其工作是和一片74HC165一样的。我恐怕你还没有弄清楚一片74HC165的工作。

点赞  2020-4-19 17:55

74HC165是并入/串出移位寄存器。你自己说的 “当SH/LD为低电平的时候,8位并行数据输入到寄存器内”,这是对的。但 “当SH/LD为高电平时,并且CLK_INH为低,CLK有钟脉冲给到寄存器时,开始移位数据,从QH端输出,再从下一级的SER端输入” 则不大准确。

当SH/LD为高电平时,并且CLK_INH为低,每来一个CLK脉冲,A、B、C……各寄存器内容依次移动,A内容-->B,B内容-->C,……H内容-->!QH(注意不是QH),取反后-->QH。而SER电平取反后移入A。8个CLK脉冲后,这片74HC165各寄存器内容依次从!QH移出,各寄存器内容成为各个脉冲到来时SER取反送入的内容。

 

点赞  2020-4-19 18:07

所以,你的电路,16个CLK脉冲后,两片74HC165各寄存器内容(SH/LD为低电平的时候锁入的)取反后依次从第二片的9脚输出,而两片74HC165各寄存器内容是各CLK脉冲到来时第一片SER引脚电平取反。

点赞  2020-4-19 18:11

74HC165如何工作,本来应该是仔细阅读该芯片datasheet就可以解决的。

点赞  2020-4-19 18:13

[1].png

看datasheet中这幅逻辑框图,最能说明问题。

点赞  2020-4-19 18:52
引用: maychang 发表于 2020-4-19 18:07 74HC165是并入/串出移位寄存器。你自己说的 “当SH/LD为低电平的时候,8位并行数据输入到寄存器内&rdq ...

谢谢!基本弄明白了,但有个疑问,您说的A-->H的数据是给到!QH取反,再输出给QH的,我看实际电路上!QH是悬空没有用到的,如下是165A的框图,跟您这个有点不一样,SER输入取反了,再到QH取反输出,那什么情况下会用到!QH呢?

  • QQ截图20200420160221.png
点赞  2020-4-20 16:20
引用: elec32156 发表于 2020-4-20 16:20 谢谢!基本弄明白了,但有个疑问,您说的A-->H的数据是给到!QH取反,再输出给QH的,我看实际电路上!QH ...

“那什么情况下会用到!QH呢?”

多片74HC165级联(构成16位、24位、32位……移位寄存器),用不到!QH。其它情况,可能用得到。

点赞  2020-4-20 16:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复