投票选举器电路设计实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
投票选举器电路设计实验
一、实验目的
1.进一步掌握组合逻辑电路和时序逻辑电路的分析设计方法,巩固课堂上学到的知识2.学习对原有电路进行改进的方法,使电路在设计上逻辑更合理,更人性化
3.掌握一些常见的数字电路芯片的使用方法
4.通过对电路进行改进的实践,培养创新意识
二、实验电路图及电路原理
1.最简单的投票选举电路设计
最简单的投票选举器应实现如下功能:
1)能控制投票的时间,即过了一段时间后投票无效。
2)对所投票数进行统计,并以一定的方式显示出来。
以此为目标,可以设计出以下的电路原理图:
该电路的工作原理如下:
先由工作人员按下CLR开关,计数器74LS160的CLR清零端接地,为低电平,计数器清零,七段显示器显示为0。
然后使CLR开关复位,即接到VCC上。
当开始投票时,EN开关接VCC高电平。
这里不同的投票者A1、A2、A3、A4分别按下各自的投票开关J1、J2、J3、J4,分别对应形成一脉冲。
在J1~J4脉冲及使能端高电平(开关EN控制)下,通过74LS54与或非门,就能对计数器的时钟脉冲端CLK形成一系列间断的时钟脉冲。
时钟脉冲由计数器计数后输出到DCD_HEX显示器显示,即可看出投票代表所投的票数。
当投票时间结束时,工作人员令EN开关复位(即接地,低电平),相当于与或非门的使能端关闭,投票的代表这里再进行投票无效。
显示器上的票数保持不变。
如果仔细观察以上电路,它的缺点是显然的:
1)由于对开关J1~J4形成的脉冲的次数没有进行限制,因此一个投票的代表可能进行多次投票,这是不公平的。
例如上面只有4个代表,但是由显示器可知,
一共投了5票。
2)如果某两个或多个代表同时进行投票,那么通过与或非门的作用,只能形成一个脉冲,这时投票的结果也是不真实的。
3)当某个代表长时间按下自己的开关时,他的输入就不是一个短脉冲,而是一个持续一段时间的高电平,由于74LS54中或非门的作用,这时输出将一直维持
低电平,不能形成脉冲,从而影响其它代表的投票。
2.改进后的投票选举电路
针对原始投票电路的以上缺点,可以进行一下改进,从而得到以下新的投票选举器电路:
下面分别就此电路中的各个部分的功能及原理进行介绍。
A.代表投票部分
如图所示为投票部
分,其中最左边的竖直线
接电源VCC,左边第二第
接地。
为解决上面的各个缺
点,用了D锁存器代替上
面的74LS54,这样各个代
表的投票就是公平的了。
即:(1)每个代表最多只
能投一票,因为每个代表
只对应一个D锁存器;(2)
各个代表之间的投票结果
互不影响,不存在同时按
下投票开关结果只能投一
票的问题。
同样,由于采用的是D
锁存器,因此J1~J4开关就
不能再是原来的脉冲开
关,当按下开关时,它应
能形成一个持续的高电
平,复位开关进,应是持
续的低电平。
图中的EN开关是使
能开关,只有EN开关接
VCC时,各个D锁存器的
使能端才是高电平,D输
入端才有效。
换句话说,
只有EN接VCC时,各个
代表才能投票。
Reset开关是复位开
关,它负责把各个D锁存
器的Q输出端复位成低电平。
由于不用使用各D锁存器的置位端,所以SET端统一接地。
这样设计后,投票电路多了一个优点,由于J1~J4是产生持续高电平或低电平的开关,而非产生脉冲的开关。
因此,在投票时间没有结束前(即EN端仍为高电平时),代表可以取消刚刚所投的票。
(所投的票在EN变为低电平前是不会被送到计数器中的。
)
B.脉冲生成部分及计数器部分
该部分电路图如上图所示。
由于采用了D锁存器暂存代表的投票结果,而进行票数的统计必须有脉冲,因此需要把D锁存器Q输出端形成的电平变成计数器的时钟脉冲。
为达到此目的,电路在实现的过程中采用了双向移位寄存器74LS194,利用74LS194的移位功能形成计数器的时钟脉冲。
此部分电路的工作原理如下(本电路只利用74LS194的右移位功能):
各锁存器D1~D4的Q输出端分别接到第一片74LS194和第二片的A、C端,74LS194的B和D输入端,以及第一片的右移输入端SR接地。
那么当D锁存器的输出端为高电平时,移位寄存器每移动一次就能形成一个脉冲。
由于采用了两片74LS194且移位方式为右移,因此第一片的QD输出端需接到第二片的SR输入端。
第二片的QD输入端接到74LS160的CLK输入端形成时钟脉冲。
两片74LS194同步移位,时钟脉冲统一由脉冲源Pulse提供。
由于本实验中移位寄存器只有两种工作方式:并行输入(S0=1、S1=1)和右移(S0=1、
S1=0),所以S0和清零端CLR接到VCC高电平上。
74LS160计数器的两个使能端ENT、ENP以及置位端LOAD也接到VCC高电平上。
现在介绍该部分电路的最后一个组成部分CLR开关,它的作用如下:CLR开关控制两片74LS194的S1输入端及74LS160的CLR端。
开始时,开关接VCC高电平,S1=1,移位寄存器处于并行输入状态,相应的输入端从D锁存器中读取代表的投票信号;通过非门74LS04的作用,74LS160的CLR端的低电平,计数器处于清零状态。
当投票结束后,CLR开关接地,低电平,S1=0,74LS194在时钟脉冲的作用下进行右移位;同时计数器74LS160的清零端CLR变为高电平,计数器的CLK端从第二片移位寄存器的QD输出端读入投票脉冲信号,进行票数统计。
从以上讨论,不难得出整个投票的流程如图。
从改进后的电路的仿真电路图可以发现,最后投
票的人只有两个J1和J3,而最终显示的票数为3,这
是为什么呢?
问题是这样的:原来投票的一共有3人(假设另
一个是J2),但是最后J2决定不再投票(J2接地)。
可
是当J2决定放弃投票时,投票时间已过(EN接地),
J2最终的决定不能影响最后的投票结果。
所以显示的
最终票数为3。
三、结论与心得体会
改进后的投票选举器电路的工作过程可分为三
步:从代表处取得投票电平→利用投票电平形成投票
脉冲→对投票脉冲进行计数。
改进后的电路不再存在原来电路的缺点:代表可
以重复投票,代表之间的投票相互影响。
而且改进后
的电路还具有原来电路没有的优点:在投票时间结束
前可以取消刚刚所投的票。
这些都使电路逻辑更合理,设计更人性化。
通过这次的EDA设计,我可以说是受益良多。
这
两个电路从头到尾都是我自己想出来的(当然,第一
个电路相当比较简单),尤其是在如何把投票电平(D
锁存器各Q端输出)形成投票脉冲(第二个移位寄存
器QD端输出)上花了大功夫。
通过这个实验设计,我更加熟练地掌握了一些常见的数字芯片的使用,还学到了一些课本上没出现过的芯片,如D锁存器(D_Latch)。
我想,从这两个电路的对比以及改进中,也许可以学到一些创新的方法。
附:original.ms7是原来电路的仿真文件,vote.ms7是改进电路的仿真文件。