移位寄存器原理图
移位寄存器
所谓“移位”,就是将移位寄存器所存各位数据,在每个移位脉冲的作用下,向左或向右移动一位。根据移位方向,常把它分成左移寄存器 、右移寄存器 和双向移位寄存器三种。
输入-输出方式:
串行输入-串行输出 (serial in/serial out)
串行输入-并行输出(serial in/parallel out)
并行输入-串行输出(parallel in /serial out)
并行输入-并行输出(parallel in /parallel out)
单向寄存器
由D触发器组成的电路,输出Q跟随D状态。
那它移位的过程具体是如何实现的呢?
当CLK上升沿到来时,信号传到输出端需要一定的传输延迟时间,我们将这个传输延迟时间叫做tpd。此时FF0输出端无变化,后边其余触发器将按照原始状态跟随。然后,D1的代码存入FF0。总效果相当于移位寄存器的代码向右移了1位。
由表也可看出经过4个CLK信号后,串行输入代码存入寄存器中并转为并行输出;
那么其实同理,如果将4位并行数据置入移位寄存器4个触发器中,然后连续加入4个移位脉冲,则移位寄存器中的4位代码将从串行输出端串行输出。
仔细看Q0Q1Q2Q3时序图,会有移位的效果。
小结
双向移位寄存器
由SR触发器组成的双向移位寄存器。
我们以第二个FF1为例子进行分析。可以发现,通过控制S1S0就可以控制194的工作状态。
S1=S0=1,Q1被选中;
S1=S0=1,D1被选中,处于并行输入状态;
S1=0,S0=1,Q0被选中,处于右移状态;
S1=1,S0=0,Q2被选中,处于左移状态;
RD‘=0,触发器将被同时置0,处于复位状态。
那如果我们现在想接多位双向寄存器呢?
74HC194A接多位双向寄存器
双向移位寄存器194中,4个触发器的位置是按Q0Q1Q2Q3的顺序,Q0在最左边,Q3在最右边。实现右移时,来一个移位脉冲CLK后,DIR端的数据移至Q0,Q0移至Q1,…,依次类推。不难理解,当2片194接成8位双向移位寄存器时,右边194的DIR应该接左边194的Q3,而左边194的DIL应该接右边194的Q0。
移位器和加法器组成的电路
寄存器的应用
延时
并行/串行数据转换
通用异步收发两用机
相关文章
- 移位寄存器-Verilog
- Verilog设计实例(6)基于Verilog的各种移位寄存器实现「建议收藏」
- verilog_移位寄存器_仿真(程序逐句解释)
- 使用锁存器做一个寄存器 和 内存
- ov7725摄像头模块_寄存器和内存
- OV7725寄存器配置_i2c总线通信距离
- (二)STM32基础——新建基于寄存器的工程模板
- 嵌入式:ARM立即寻址与寄存器寻址
- 振弦采集模块辅助功能寄存器之低功耗休眠
- HDLBits: 在线学习 SystemVerilog(十七)-Problem 106-114(移位寄存器)
- 【Android 逆向】ptrace 函数 ( ptrace 函数族 | 进程附着 | 进程脱离 | 进程数据读写权限 | 进程对应的主线程寄存器读写 | 单步调试 |ptrace 函数族状态转换 )
- 【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 )
- 【Android 逆向】Android 进程注入工具开发 ( EIP 寄存器指向 dlopen 函数 | ESP 寄存器指向栈内存 | 调试程序收回目标进程控制权 )
- Linux调试技术:访问寄存器(linux访问寄存器)
- Linux汇编:精妙的寄存器技术(linux汇编寄存器)
- Linux中寄存器值的变化及其含义(linux 寄存器值)