【数电实验】移位寄存器与计数器

news2024/11/18 4:31:37

实验四 移位寄存器与计数器

一 实验目的

1 掌握任意进制计数器的构成方法;

2 熟悉双向移位寄存器的使用方法。

二 实验内容

1 任意进制计数器的构成方法:

用中规模集成计数器74HC161和与非门74LS00,构成十进制计数器。要求分别使用同步预置、异步清零两种功能来设计。用数码管显示。

实验验证分别用同步预置、异步清零两种方法设计的计数器。

(1)同步预置和异步清零的区别与实验设计思路

“同步”和“异步”是对于时钟而言的。“同步”输入信号和时钟信号有关,实际上输入信号和时钟信号进行了与运算或者与非运算,输入信号和时钟信号的运算结果是有效的,器件的状态才会改变。“异步”输入信号和时钟信号无关,是指输入信号变为有效状态,器件的状态就改变。

因此,同步预置需要下一个时钟的有效沿和预设条件达成才能完成置数;异步清零只需要预设条件达成就能完成置数。

由于本实验需要设计十进制计数器,所以与非门的输入需要对应的是计数器1010或1001输出信号。当与非门的输出接在Clear端的时候,产生低电平的状态是无效的,计数器马上就复位,对应的是异步清零电路,此时与非门的输对应的是计数器1010输出信号;当与非门的输出接在Load端的时候,产生低电平的状态是有效的,计数器需要等到下一个CLK信号才复位,对应的是同步预置电路,此时与非门的输对应的是计数器1001输出信号。

(2)Multisim电路图

    根据上述分析,可以得到两种方法设计的计数器电路。最终电路结果如下面两个电路图所示。

同步预置:

异步清零:

(3)仿真模拟过程

在软件中连接成以上电路图后,点击运行即可开始仿真。下面将依次展示两种设计方法实现的电路的每个步骤过程及电路对应的输出状态。

同步预置:

当前计数器输出信号

电路对应的输出状态

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

    实验验证情况与预期情况完全拟合。另,同步预置电路的运行过程视频可见附件4-1-1.mkv。

异步清零:

当前计数器输出信号

电路对应的输出状态

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

不存在该状态,瞬间消失

实验验证情况与预期情况完全拟合。另,异步清零电路的运行过程视频可见附件4-1-2.mkv。

2 设计4位环形计数器:

    用4位双向移位寄存器74HC194,设计一个能够自启动的4位环形计数器,并测试其输入CP和输出QA、QB、QC、QD的逻辑关系。

(1)双向移位寄存器的使用与实验设计思路

双向移位寄存器的结构如下图所示。

其工作原理为:S1=S0=1,Q1被选中;S1=S0=1,D1被选中,处于并行输入状态;S1=0,S0=1,Q0被选中,处于右移状态;S1=1,S0=0,Q2被选中,处于左移状态;RD’=0,触发器将被同时置0,处于复位状态。将五种状态总结成表格后,结果如下表所示。

RD’

S1

S0

工作状态

0

X

X

置零

1

0

0

保持

1

0

1

右移

1

1

0

左移

1

1

1

并行输入

由于本实验需要设计一个能够自启动的环形计数器,因此可以采用双向移位寄存器的右移功能来循环信号。通过分析,可以将QD接在右移的输入端。同时,在电路启动前,因为第一个与非门有一个输入端为0,因此第一个与非门的输出为1,致使S0=S1=1,此时执行并行输入的功能,读取A、B、C、D各端的信号(0111)并输入。之后Q端并行输出对应的A、B、C、D信号,且Q端经过第二个与非门。在启动电路启动后,第一个与非门的两个输入均为1,因此第一个与非门的输出为0,致使S0=0且S1=1,此时双向移位寄存器执行右移的功能,并每来一个时钟就右移一位数字,同时把末位的数字移到首位。

理论移位情况为:0111->1011->1101->1110->0111。

(2)理论电路图和Multisim电路图

理论电路图:

Multisim电路图:

(3)仿真模拟过程

    在软件中连接成以上电路图后,点击运行即可开始仿真。下面将依次展示每个步骤过程及电路对应的输出状态。

启动前:

0:输出信号为0111;

启动后:

1:输出信号为0111;

2:输出信号为1011;

3:输出信号为1101;

4:输出信号为1110;

实验验证情况与预期情况完全拟合。另,4位环形计数器的运行过程视频可见附件4-2.mkv。

(4)输入CP和QA、QB、QC、QD的逻辑关系

根据模拟仿真实验的运行过程中可知,当CP每输入一个上升沿信号时,双向移位寄存器执行一次右移功能,使得Q端的各位输出均右移一位,并把末位的数字移到首位中,即实现一次环形计数功能。

3 设计节日彩灯控制电路:

    用4位双向移位寄存器74HC194和与非门74LS00,设计一个节日彩灯控制电路。要求:当输入连续脉冲时,输出端的4个发光二极管右移逐位亮,继而右移逐位灭。将实现结果绘制成状态转换图。

(1)实验设计思路

根据本实验要求可知,4个发光二极管右移逐位亮,继而右移逐位灭,因此双向移位寄存器需要执行右移功能,则令S0=1,S1=0,同时QD反向之后接在SR上。电路初始时,Q端的输出均为0,此时SR为1。电路刚开始执行时,每来一个CLK上升沿信号,Q端的输出均向右移一位,同时首位为SR=1的输入信号,直到四个彩灯均点亮为止。当QD=1时,经过反向器后SR会变成0,因此当下一个CLK上升沿信号来临时,Q端的输出依然均向右移一位,同时首位为SR=0的输入信号,直到四个彩灯均熄灭为止。所以,通过上述分析我们不难发现,该电路会依次经过8个状态,即四个彩灯依次点亮的过程加上四个彩灯依次熄灭的过程。

由于是设置节日彩灯,因此使用不同颜色的发光二极管probe显示输出,并通过DCD_HEX观察不同输出情况时Q端所对应的信号值。理论的输出probe情况和DCD_HEX情况如下表所示。

CLK

SR

QA

QB

QC

QD

点亮的probe序号

显示器的显示内容

初始状态

1

0

0

0

0

/

0

1

1

0

0

0

1

1

1

1

1

0

0

1、2

3

1

1

1

1

0

1、2、3

7

1(下一个CLK来临前变为0)

1

1

1

1

1、2、3、4

F(15)

0

0

1

1

1

2、3、4

E(14)

0

0

0

1

1

3、4

C(12)

0

0

0

0

1

4

8

0(下一个CLK来临前变为1)

0

0

0

0

/

0

(2)理论电路图和Multisim电路图

理论电路图:

Multisim电路图:

(3)仿真模拟过程

在软件中连接成以上电路图后,点击运行即可开始仿真。下面将依次展示每个步骤过程及电路对应的输出状态。

0:电路初始状态,彩灯均未被点亮。

1:第一个彩灯点亮。

2:第二个彩灯点亮。

3:第三个彩灯点亮。

4:第四个彩灯点亮。

5:第一个彩灯熄灭。

6:第二个彩灯熄灭。

7:第三个彩灯熄灭。

8:第四个彩灯熄灭。彩灯从左往右依次点亮并熄灭的一个过程结束,回到电路原来的初始状态。

实验验证情况与预期情况完全拟合。另,4位环形计数器的运行过程视频可见附件4-3.mkv。

(4)实验结果及状态转换图

    根据模拟仿真实验的运行过程中可知,Q端输出信号依次对应为0000->1000->1100->1110->1111->0111->0011->0001->0000。通过上述变化过程可以得到状态转换图如下图所示。由于输出即为Q端信号,因此不在状态转换图中展示输出变化。

三 实验总结

通过本次实验,我再一次对移位寄存器和计数器的功能进行了巩固。移位寄存器是用来寄存二进制数字信号且能进行信息移动的时序逻辑电路。根据移位寄存器存取信息的方式不同,可以分为串入串出、串入并出、并入串出、并入并处这四种形式。因此,移位寄存器可以构成计数器、顺序脉冲发生器、串行累加器、串并转换器、并串转换器等功能仪器。

另外,在第三个实验中,与非门的两个输入端均为同一种输入时,可作为反向器使用。即反相器为与非门的特殊连接情况。

同时,我对实验教材中的《实验七:Vivado工具与Verilog HDL的使用》进行了阅读,了解到Minisys实验板的使用步骤为:创建一个项目->添加源代码->仿真->综合->引脚分配->实现->产生比特流文件并下载,并对实验板的结构进行了粗略的认识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/96285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

精华推荐 | 【深入浅出RocketMQ原理及实战】「性能原理挖掘系列」透彻剖析贯穿RocketMQ的事务性消息的底层原理并在分析其实际开发场景

什么是事务消息 事务消息(Transactional Message)是指应用本地事务和发送消息操作可以被定义到全局事务中,要么同时成功,要么同时失败。RocketMQ的事务消息提供类似 X/Open XA 的分布事务功能,通过事务消息能达到分布式事务的最终一致。 事务消息所对应的场景 在一些对…

docker学习笔记(五)单个服务镜像部署

引言 当前微服务项目已经大面积普及,对于新需求迭代上线有许多疑惑的部分,比如线上的某些功能不能重启,在这种情况下我们需要部署和启动项目就不能搞大范围重启或干脆重新制作镜像,这种方式都是不可取的,这时候就需要…

重学webpack系列(二) -- webpack解决的问题与实现模块化的具体实践

只是根据几个想法,我们便创造出了webpack打包工具,它能够根据我们在前端项目中遇到的疑难杂症对症下药,那么这一章我们就一起来探讨一下我们项目落地所遇到的种种问题。 前端实践中的问题 Jsx / Tsx编译问题Less / Scss编译问题TypeScript编…

【Pintos】实现自定义 UserProg 系统调用 | 添加 syscall-nr 系统调用号 | 编写新的参数调用宏

💭 写在前面:本文讲解的内容不属于 Pintos 的 Project 项目,而是关于 userprog 如何添加系统调用的,学习如何额外实现一些功能到系统调用中以供用户使用。因为涉及到 src/example 下的Makefile 的修改、lib 目录下 syscall-nr 系统…

门诊排队叫号系统,有序叫号就诊,适用医院医院、门诊部、诊所等

排队叫号系统,是将互联网信息技术与门诊预约、签到、提醒、叫号、接诊等环节相结合,实现门诊流程式便捷叫号服务。 为助力门诊营造一个良好有序的就诊环境,打造科学合理的就诊流程,今天给大家推荐一款一款便捷排队叫号系统&#x…

Linux基本权限(2)

Linux基本权限(2) 📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要讲解了目录权限,和目录&#…

2022年底,我手里一共负责了30套系统

2022年真是不平凡的一年,往常熙熙攘攘的办公室人越来越少,真是像曹操说的兄弟相继凋零,好似风中落叶啊。 结果人少了,手里的系统一个没少,慢慢年底了,我汇总了一下,手里的系统达到了30来个。 搞…

Linux--基础IO

目录 C文件IO 系统文件IO 接口介绍 系统调用和库函数 文件描述符 open返回值 文件描述符的分配规则 重定向 代码演示 使用dup2系统调用 缓冲区 FILE 理解文件系统 文件系统 inode 软硬链接 静态库和动态库 概念 生成静态库 生成动态库 C文件IO 写文件 #in…

SpringBoot+Prometheus+Grafana 实现自定义监控

1.Spring Boot 工程集成 Micrometer 1.1引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency><groupId>io.micrometer<…

E1. Erase and Extend (Easy Version)(纯暴力+string)

Problem - 1537E1 - Codeforces 这是该问题的简单版本。唯一的区别是对n和k的约束。只有当所有版本的问题都解决了&#xff0c;你才能进行黑客攻击。 你有一个字符串s&#xff0c;你可以对它进行两种类型的操作。 删除字符串的最后一个字符。 复制字符串&#xff1a;s:ss&…

数据结构---堆排序

堆排序JAVA实现和快速排序区别二叉堆的构建&#xff0c;删除&#xff0c;调整是实现堆排序的基础之前博客写了二叉堆&#xff1a; 二叉堆最大堆的堆顶是整个堆中的最大元素。最小堆的堆顶是整个堆中的最小元素。 堆排序步骤&#xff1a; 把无序数组构建成二叉堆。(需要从小到…

ArcGIS基础:等高线数据生成栅格DEM数据

以下操作为生成栅格DEM数据的方法。 一般方法是先创建TIN&#xff0c;然后在转为栅格DEM数据。 原始数据如下&#xff1a;为等高线数据&#xff0c;创建TIN数据需要用到等高线数据的【高程】字段。 声明&#xff1a;数据来源于网络。 工具位于【3D分析工具】下的【TIN】下…

BeanDefinition

1. 前言 Spring最重要的一个概念当属Bean了&#xff0c;我们写的Controller、Service、Dao凡是加了对应注解交给Spring管理的&#xff0c;都是Spring容器中的一个Bean。把我们自己写的类变成一个Bean交给Spring管理有很多的好处&#xff0c;比如我们不用自己去new对象了&#…

ssh+mysql实现的Java web企业人事人力资源管理系统源码+运行教程+参考论文+开题报告

今天给大家演示的是一款由sshmysql实现的Java web企业人事人力资源管理系统&#xff0c;其中struts版本是struts2&#xff0c;本系统功能非常完善&#xff0c;已经达到了可以商用的地步&#xff0c;基本全部实现了整个人力资源管理的所有功能&#xff0c;包括员工档案信息、部门…

jekins集成部署

jekins集成部署1.jekins简介2.Jenkins部署环境3. jekins安装4.配置jekins启动和停止脚本5.插件安装5.1.安装maven插件安装5.2 安装gitee插件5.3 安装Publish Over SSH插件5.4 安装 事件机制插件6.任务构建6.1 构建任务6.2 配置giteeApi令牌6.3 配置gitee源码地址6.4 在build中配…

3D激光里程计其二:NDT

3D激光里程计其二&#xff1a;NDT1. 经典NDT2. 计算方式2.1 2D场景求解:2.2 3D场景求解&#xff1a;3. 其他 NDTReference:深蓝学院-多传感器融合 1. 经典NDT NDT 核心思想&#xff1a;基于概率的匹配。目标是将点集 Y 匹配到固定的点集 X 中。这里的联合概率说的是将 X 划分成…

计算机毕业设计springboot+vue社区疫情防控系统

项目介绍 本系统运用最新的技术springboot框架,此框架是现在社会公司生产中所用的必需框架,非常实用,相比于以前的ssm框架,简单很多。前端框架运用vue框架,vue框架是最近几年非常流行的前端技术,适合很多开发语言。主要可以是系统的前端和后端进行解耦,分离,有利于开发者分别注…

设计模式——中介者模式

中介者模式一、基本思想二、应用场景三、结构图四、代码五、优缺点优点缺点一、基本思想 定义一个中介对象来封装一系列对象之间的交互&#xff0c;使原有对象之间的耦合松散&#xff0c;且可以独立地改变它们之间的交互。中介者模式又叫调停模式&#xff0c;它是迪米特法则的…

Proteus8仿真:51单片机LCD1602显示

51单片机LCD1602显示元器件原理图部分代码main.c工程文件元器件 元器件名称排阻RESPACK-851单片机AT89C51LCD1602LM016L按键BUTTON 原理图部分 LCD1602驱动: HD44780显示主要有8位操作8位两行显示&#xff0c;4位操作8位一行显示&#xff0c;8位操作8位一行显示。 LCD1602主要…

【Python】循环语句

目录 1.while 循环 2. for 循环 3. continue 4. break 1.while 循环 基本语法格式 while 条件&#xff1a; 循环体 条件为真&#xff0c;则执行循环体代码 条件为假&#xff0c;则结束循环 例1&#xff1a;打印 1 - 10 的整数 num 1 while num < 10:print(num)num 1 …