2019/06/06

!转载请注明出处

1.设计任务目的与要求

1.1 展示器件

10路彩灯分别用10个发光二极管L0、L1…..L9模拟,发光二极管L0、L1…..L9从左到右排列。

1.2 要求显示三种不同的花型

1)      10路彩灯按照L0、L1…..L9的顺序依次点亮至全亮,再按照L9、L8…..L0的顺序依次熄灭至全灭。

2)      10路彩灯按照L0L1亮、L1 L2亮、L2L3亮、…L8L9亮、L9L0亮的顺序轮流点亮。

3)      10路彩灯按照L0L9、L1L8、L2L7、L3L6、L4L5的顺序依次点亮,然后按相反的顺序依次灭掉。

1.3 控制电路设有启动、切换、复位按钮

按下启动按钮,进入花型(1)并反复循环运行。按下切换按钮,进入花型(2)并反复循环运行;再次按下切换按钮,进入花型(3)并反复循环运行;再次按下切换按钮,则三个花型顺序运行并反复循环;若再次按下切换按钮,则又进入花型(1)并反复循环;不断按下切换按钮,则按上面顺序进行花型切换。任何时候按下复位按钮,全部灯灭。

2.模块及其原理介绍

2.1 计数电路单元

该电路单元用74192计数器来实现。74192是双时钟十进制计数器。本电路用74192来实现0000—1001的十进制计数,同时用另外一个74192的来对第一片芯片进位进行计数,第二个芯片计数到2时同时对两个计数器进行清0操作。其电路图如下图所示

2.2 编码电路单元

编码电路全局如图:

2.2.1 花型1编码电路

由于我最后灯泡的输出电路前面接了一个反相器,所以这里用0来表示灯泡亮。

该序列对应了20种状态,这个序列的状态如表所示:

A2

D1C1B1A1

L0 L1 L2 L3 L4 L5 L6 L7 L8 L9

0

0000

0 1 1 1 1 1 1 1 1 1

0

0001

0 0 1 1 1 1 1 1 1 1

0

0010

0 0 0 1 1 1 1 1 1 1

0

0011

0 0 0 0 1 1 1 1 1 1

0

0100

0 0 0 0 0 1 1 1 1 1

0

0101

0 0 0 0 0 0 1 1 1 1

0

0110

0 0 0 0 0 0 0 1 1 1

0

0111

0 0 0 0 0 0 0 0 1 1

0

1000

0 0 0 0 0 0 0 0 0 1

0

1001

0 0 0 0 0 0 0 0 0 0

1

0000

0 0 0 0 0 0 0 0 0 1

1

0001

0 0 0 0 0 0 0 0 1 1

1

0010

0 0 0 0 0 0 0 1 1 1

1

0011

0 0 0 0 0 0 1 1 1 1

1

0100

0 0 0 0 0 1 1 1 1 1

1

0101

0 0 0 0 1 1 1 1 1 1

1

0110

0 0 0 1 1 1 1 1 1 1

1

0111

0 0 1 1 1 1 1 1 1 1

1

1000

0 1 1 1 1 1 1 1 1 1

1

1001

1 1 1 1 1 1 1 1 1 1

  根据表格可知,编号数较低的灯泡在编号数较高的灯泡亮时也必须亮,故可用与门将较低灯泡的电路与较高灯泡的输出电路相关联起来。

为了实现三个花型的顺序输出,该自然序列显示电路还是要经过7442译码器和74153多路选择器。7442译码器的作用在于将4位BCD码的10组代码翻译成10个与十进制数字符号对应的输出信号,图中输入端ABCD为8421码,输出端O0N—O9N分别代表十进制数字0—9。74153是个双4路选择器,其功能是选择输出四个编码单元电路的值。本电路中用了5个74153来对应10个灯泡。74153的器件上用1C0和2C0来连接对应的输出端O0N—O9N。当74153器件的A和B为00时,顺序输出自然序列的值。最后经过指示灯和数码管显示出来。

与门实现电路截图:

1)前10种状态:

2)后10种状态

2.2.2 花型2编码电路

为了使灯泡按照顺序01,12,23,34,45,56,67,78,89,90的输出,可以使用与门同时关联译码器对应的两种状态,比如L0要在计数器为0和9的时候亮。

序列的状态如表:

DCBA

L0 L1 L2 L3 L4 L5 L6 L7 L8 L9

0000

0 0 1 1 1 1 1 1 1 1

0001

1 0 0 1 1 1 1 1 1 1

0010

1 1 0 0 1 1 1 1 1 1

0011

1 1 1 0 0 1 1 1 1 1

0100

1 1 1 1 0 0 1 1 1 1

0101

1 1 1 1 1 0 0 1 1 1

0110

1 1 1 1 1 1 0 0 1 1

0111

1 1 1 1 1 1 1 0 0 1

1000

1 1 1 1 1 1 1 1 0 0

1001

0 1 1 1 1 1 1 1 1 0

电路截图:

2.2.3 花型3编码电路

为了使按照L0L9、L1L8、L2L7、L3L6、L4L5的顺序依次点亮,然后按相反的顺序依次灭掉,要使用与门相关联。

序列的状态如表:

DCBA

L0 L1 L2 L3 L4 L5 L6 L7 L8 L9

0000

0 1 1 1 1 1 1 1 1 0

0001

0 0 1 1 1 1 1 1 0 0

0010

0 0 0 1 1 1 1 0 0 0

0011

0 0 0 0 1 1 0 0 0 0

0100

0 0 0 0 0 0 0 0 0 0

0101

0 0 0 0 1 1 0 0 0 0

0110

0 0 0 1 1 1 1 0 0 0

0111

0 0 1 1 1 1 1 1 0 0

1000

0 1 1 1 1 1 1 1 1 0

1001

1 1 1 1 1 1 1 1 1 1

电路与门实现截图:

2.3 花型控制端输出电路

主要由加法器和一些基本门电路组成。AB从00-11计数,分别对应三个花型和三个花型循环播放,再结合前面计数电路单元中的第二个芯片A端输出0/1以及循环播放时控制花型的计数器芯片,可以画出对应的真值表:

QA(计数电路) QB QA (U3) QB QA (U63)

A   B (多路选择器)

0        0 0             0 0

0    0

1        0 0             0 0

1    1

d        0 1             0 0

0    1

d        1 0             0 0

1    0

0        1 1             0 1

0    0

1        1 1             0 1

1    1

0        1 1             1 0

0    1

1        1 1             1 1

1    0

其他

d    d

可以画出对应的卡诺图:(这里为了便于区分将输入三个值设为D0 D1 D2,输出仍为A B)

根据上图中AB的式子,在电路中用基本门连接到多路选择器的AB端。

2.4 彩灯显示电路

通过连接对应多路选择器的输出端口,再加一个非门,即可得到灯泡的亮灭情况。

2.5 几个按钮的功能实现

2.5.1 启动按钮

通过控制计数电路单元两片计数器的清零来控制启动。

2.5.2 切换按钮

切换开关一次或点击空格,就相当于输出一次电平,可使计数器进行计数操作。

当到达三个花型循环切换之后,再按一次,三种花型自动循环播放,通过另外一片74192来控制。

当U3计数到3时,U63进1,当记录状态的芯片计数到20时且U63为1时,U63进2,当记录状态计数到10时且U63为2或3时,U63计数。这几个通过基本逻辑门电路来实现。

2.5.3 复位按钮

每个灯泡前面连接着一个与门,只有当复位按钮连接高电平一端时灯泡才能正常显示,当复位按钮连接低电平一端时灯泡全部都熄灭。

3.设计方案

3.1 设计思路

根据老师给出的设计要求,彩灯循环控制器主要是完成10个灯泡的亮灭。由此可想到用74192计数器从0-9计数,可以分别对应每一种花型不同时刻下对应灯泡的亮灭情况。其中花型1较为特殊,需要计数两轮才能完成花型的展示。由于74192芯片的输出对应的是8421编码,可以用7442译码器将计数值输出。由于一共有三种花型,可以通过74153多路选择器来控制花型的切换。

3.2 设计框图及原理

彩灯循环控制器的结构框图:

该彩灯循环控制器的原理是:由方波信号发生器产生稳定的高频脉冲信号,作为计时基准。用两个计数器来实现电路计数,第一个花型需要20个状态来展示彩灯,故需要两片计数器,而另外两种花型只需要10个状态来实现花型,不考虑第二片计数器的位数。计数器的实时状态同时输出到数码管。接下来由译码器输出对应状态,通过不同的编码电路(主要由与门实现)接到对应的多路选择器。多路选择器的控制端由花型控制电路来控制,花型控制电路主要由两个计数器的低两位实现0-4计数和0-3计数,再结合前面计数电路的第二个芯片的输出值进行逻辑电路的设计完成选择器控制端相对应的值。由于74153有两个输出值,故本次一共需要5个多路选择器输出到对应的彩灯显示电路。

3.3 流程图

3.4 总电路图

总电路如图所示:

用Multisim实现彩灯循环控制器的更多相关文章

  1. JMeter循环控制器循环次数使用变量控制注意事项

    1.进入循环控制器之前变量要有值: 2.BeanShell处理文件,读取行数,赋值给变量,要有相应的Sampler,不然脚本不会运行. 对于单个线程来说,假如设置了循环2次,线程启动后,运行结束,此时 ...

  2. Jmeter(七)_if控制器+循环控制器+计数器控制接口分支

    最近查阅了一下网上关于if控制器的文章,大同小异,几乎找不到原创,于是决定自己写一篇 下午测试接口,遇到了一个审核的流程.逻辑很简单,就是审核不通过之后返回去继续修改再提交,然后再审核,直到通过为止. ...

  3. jmeter循环控制器加jdbc req结果配合组合参数遍历

    jdbc请求:jdbc sampler  保存结果中三个变量名 循环控制器:xhkzq     的循环次数填写:${其中一个变量名_#} 循环控制器里面:http sampler ,前置处理器,取消c ...

  4. Jmeter(三十七)循环控制器+交替控制器+事务控制器 完美实现接口字段参数化校验

    我们在做接口自动化的时候,常常因为无法灵活的的校验接口字段而烦恼.不能自动校验接口字段的脚本,也就不能称之为接口自动化.因此,我设计了一套组合式的控制器,可以完美的解决这个问题 1:首先我们需要在本地 ...

  5. JMeter 逻辑控制之While循环控制器(While Controller)

    逻辑控制之While循环控制器(While Controller)   by:授客 QQ:1033553122 测试环境 apache-jmeter-2.13 1.   添加While Control ...

  6. 【Jmeter】if控制器+循环控制器+计数器,控制接口分支

    但是我不想这么做,接口只想写一次,让循环控制器和if控制器去判断接口,执行我想要的分支.这里遇到了一个问题,if控制器通过什么去判断接下来的分支?我引入了一个计数器的概念.起始值为0,每次循环加1,将 ...

  7. Jmeter 中多线程并发和循环控制器

    今天遇到一个场景, 给一个手机号发送短信验证码,通过正确输入短信验证码即登录并获得token,进行其他操作. 短信验证码是4位,即9999个组合, 接口没有对验证次数做校验,所以可以一直一直尝试通过验 ...

  8. if控制器+循环控制器+计数器,控制接口分支

    但是我不想这么做,接口只想写一次,让循环控制器和if控制器去判断接口,执行我想要的分支.这里遇到了一个问题,if控制器通过什么去判断接下来的分支?我引入了一个计数器的概念.起始值为0,每次循环加1,将 ...

  9. Jmeter 逻辑控制器 之 循环控制器

    今天和大家分享下循环控制器的使用. 一.认识循环控制器 如下图:新增一个循环控制器 循环控制器的设置界面: 循环次数:永远和自定义次数,这个应该比较好理解. 二.使用循环控制器 其实大家对Jmeter ...

随机推荐

  1. Redis集群(五):集群搭建

    一.本文目的        演示在一台机器上搭建3主3从的redis集群,通过演示了解redis集群的搭建,使用和注意事项     二.搭建说明        1.同一台机器搭建3主3从的伪集群   ...

  2. iOS-UI控件精讲之UILabel

    UILabel(标签)应该是iOS中最基本的一个控件了,也是使用频率最高的,经常用来展示一段不可编辑的文本. UILabel继承于UIView,下面是一些常用的属性,包含继承于UIView的属性. 1 ...

  3. a标签中调用js的几种方法

    1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议 ...

  4. Dash:程序员的好帮手

    Dash 关于Dash是什么.有哪些功能以及该怎么使用,我想直接引用咖啡 生活 美女蛇,这位小伙伴整理的很详细,我这里只说一下Dash的破解方法. 破解 破解补丁下载:Dash3.x_Cracked ...

  5. java方法:flush()

    flush本意是冲刷,这个方法大概取自它引申义冲马桶的意思,马桶有个池子,你往里面扔东西,会暂时保存在池子里,只有你放水冲下去,东西才会进入下水道. 同理很多流都有一个这样的池子,专业术语叫缓冲区,当 ...

  6. 离线dfs CF div2 707 D

    http://codeforces.com/contest/707/problem/D 先说一下离线和在线:在线的意思就是每一个询问单独处理复杂度O(多少多少),离线是指将所有的可能的询问先一次都处理 ...

  7. 总结:PyQt5自定义信号源

    定义一个信号源有4个方面要注意: 1.定义信号源 A = pyqtSignal([str], [int,str]) 这里特别使用信号源重载的情况加以说明.如上就是信号源A的重载,一个可以发送str参数 ...

  8. 浅谈Nginx负载均衡与F5的区别

    前言 笔者最近在负责某集团网站时,同时用到了Nginx与F5,如图所示,负载均衡器F5作为处理外界请求的第一道“墙”,将请求分发到web服务器后,web服务器上的Nginx再进行处理,静态内容直接访问 ...

  9. Python基础1 介绍、基本语法

    ---恢复内容开始--- 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表 ...

  10. Codeforces812C Sagheer and Nubian Market 2017-06-02 20:39 153人阅读 评论(0) 收藏

    C. Sagheer and Nubian Market time limit per test 2 seconds memory limit per test 256 megabytes input ...