数电实验:交通灯控制逻辑电路设计
数电实验:交通灯控制逻辑电路设计
一、实验目的
1. 掌握半导体器件的开关特性,正确理解正、负及混合逻辑。
2. 熟悉集成门电路和集成触发器的结构,工作原理,主要参数。
3. 掌握基本功能电路(编码器、译码器、全加器、多路转换器、移位寄存器和计数器等)的电路结构,工作原理和逻辑功能。
4. 掌握组合逻辑电路的分析、设计和验证方法。
5. 掌握利用MSI器件设计组合逻辑电路的方法。
6. 掌握时序逻辑电路的分析与设计方法。
7. 初步掌握脉冲波形产生和整形电路相关原理。
6. 初步掌握A/D、D/A转换器件的工作原理。
二、实验仪器
Proteus 8.0
三、实验内容及原理
3.1 设计交通灯的要求
用MOORE型状态机设计一个十字路口交通灯控制器。十字路口东西、南北各有红、黄、绿指示灯。
要求实现逻辑功能,状态机所包含的状态(S0,S1,S2,S3,S4,S5),其中正常情况下在S0-S3状态循环,如果发生紧急情况,进入S4状态。
S0:东西方向绿灯亮,南北方向红灯亮,时间45s;
S1:东西方向黄灯亮,南北方向红灯亮,时间5s;
S2:南北方向绿灯亮,东西方向红灯亮,时间40s;
S3:南北方向黄灯亮,东西方向红灯亮,时间5s;
S4:如果发生紧急事件,可以手动控制四个方向红灯全亮。
其中S0状态持续时间45秒,S2状态持续时间40秒,S1和S3状态应该持续5秒,S4状态为紧急事件,持续时间不定,紧急事件解除进入S0状态。该功能采用减计数器计时实现,包含一个最大计数值为44的计数器,一个最大计数值为39的计数器和一个最大计数值为4的计数器。计数器的使能控制根据当前状态决定,计数器的进位位输出作为状态机的控制输入。东西、南北红、绿、黄灯点亮由状态机的输出控制。
其状态转移图如下:
其中R1,g1,y1代表东西方向,R2,g2,y2代表南北方向。
3.2 具体电路介绍
3.2.1 组合逻辑电路
组合逻辑电路包括状态译码,灯输出逻辑,和触发逻辑。红绿灯的显示 表示电路当前所处状态。该电路受到主控电路的控制。主控电路的输出决定 了了干道红绿灯的亮灭情况。
3.2.2 定时电路
定时电路包含最大计数值为44/39/4的计数器,实现了红黄绿三个不同秒数的倒计时。我使用74LS192,串行连接的方式进行设计不同的计数器。以最大计数值为44的计数器进行说明:当UP=1时,74LS192是倒数计数,图3-1的上面74LS192的D3到D0对应的是0100,下面对应的是0100,这样可以保证它是从44开始倒数的。 在连接整个电路前,我先设计了不同的计数器,如下图3-1,3-2,3-3所示:
3.2.3 时序逻辑电路
控制器是交通管理的核心,它应该能够按照交通管理规则控制信号灯工作状态的转换。选用两个 D 触发器做为时序寄存器产生4种状态,参见下图。
四、实验结果
下图是将以上的三部分电路连接到了一起后的总电路:如下图所示:
(1)S0 状态:东西方向绿灯亮,南北方向红灯亮,时间 45s;如下图所示:
(2)S1 状态:东西方向黄灯亮,南北方向红灯亮,时间 5s;如下图所示:
(3)S2 状态:南北方向绿灯亮,东西方向红灯亮,时间 40s;如下图所示:
(4)S3 状态:南北方向黄灯亮,东西方向红灯亮,时间 5s;如下图所示:
(5)S4 状态:如果发生紧急事件,可以手动控制四个方向红灯全亮。如下图所示:
五、实验结果分析
本次实验是按照指导书上给定的要求去设计交通灯的。我认为这次实验还是很有很大难度的,刚开始的时候都没有什么思路,平时学到的东西也串连不到一块去,查阅了很多网上的相关资料,才步入正轨。我在做这次实验时,为了降低设计的难度,我是将本次实验拆解成了三部分(组合逻辑部分,定时电路,时序逻辑),分别进行设计连接,然后将三部分通过一定的方式连接成一个电路。当然在连接电路时也遇到了很多的困难,例如:
在设计定时电路时,最开始我并不知道选择那个器件可以完成倒着数数。百度后,我从74LS192和74LS193中选择了74LS192进行了不同计时器的设计,但是在连接74LS192时,也遇到了困难,我不知道每个端口的功能以及连接方式,尤其是PL、MR端的连接方式。我也是在proteus中不断尝试,才发现PL端应该是置数端,MR端是清零端。
当然在设计组合逻辑部分,时序逻辑电路时也遇到了很多困难,例如:74LS153双4:1选择器端口的选择方式,如何用D触发器表示不同的状态等等。然而我最后通过不断的尝试,最终完成了该次实验。当红绿灯亮起的那一刻,我觉得自己不懈的努力终于得到了相应的回报。通过本次实验,我觉得我做实验变得更有耐心了,懂得了将一个难的实验分解从了不同部分的实验,还有就是我对于交通灯的的原理,理解的更加通透了,也感受到了本次课程的魅力所在。我受益良多。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)