交通灯设计(基于Multisim仿真)

最近做了数字电路的交通灯设计,自我感觉还蛮不错的,所以想在这里留下一点足迹。

设计要求

1.南北和东西车辆交替进行,各通行时间20秒 。
2.每次绿灯变红灯时,黄灯先闪烁4秒,才可以变换运行方向。
3.十字路口要有数字显示作为时间提示,以倒计时按照时序要求进行显示;具体为:当某方向绿灯亮时,置显示器为某值,然后以每秒减1计数方式工作,直至减到数为“0”,十字路口红、绿等交换,一次工作循环结束,而进入下一步某方向的工作循环。

交通灯_设计流程图

设计思路

看到这个题目,我想了一下先需要设计一个24进制的倒计时计数器,然后再进行一些逻辑分析和表达式化简就可以把计数器的输出来用做交通灯的输入信号。虽然听着挺简单,但是过程还是有一点复杂的,哈哈。话不多说,接下来我按照我的设计思路开始操作了。

设计过程

说明:
下面所有设计过程中数码管显示的数值都为整个交通灯周期的计数周期24秒,并不是显示的绿灯的倒计时。因为显示部分内容比较简单所以这里就没有写出来了,这需要网友们自己设计。
这里我简单说一下设计思路。(这里看不懂的可以看完后面的内容在回过来看)

  • 整个计数周期是24s,通行时绿灯亮20s,等待时黄灯亮4s,禁行时红灯亮24秒。
  • 在绿灯亮的时候,数码管显示的周期应该为24-4,所以可以用一个减法电路将整个24进制计数器减4,然后显示在数码管上。
  • 在黄灯和红灯亮的时候,只需要数码管正常显示24进制计数器的输出就行了。
  • 要想两种状态交替显示的话,可以自己将绿灯的输入端作为控制开关写一个三输入的真值表,然后化简连电路图就行了。

时钟设计

时钟这一块挺简单的,用555定时器配合电阻和电容就可以连出来了。
在这里我使用的是Multisim仿真,在Multisim中的工具_电路向导_555定时器向导里面可以快捷生成一个时钟电路,这样就不用自己连电路图了,可以方便许多。
交通灯_555定时器向导
设置好参数之后点搭建电路,然后在电路图里面ctrl+V就可以放进去了。
我下面的过程用的Multisim中数据库里面的时钟显示的这部分,这样让电路看起来会更简单,如果有需要做实物的朋友在画电路图的时候可以用555定时器搭建时钟电路。

倒计时设计

设计思路
题目要求的通行20秒,还有4秒的黄灯,所以需要设计一个24进制的倒计时计数器,所以我选用的计数芯片是10进制加/减计数器74LS190,由2块74LS190级联设计成24进制的减计数器。
级联的原理我就不多说了,不太懂的朋友可以百度一下,我这里说一下连接的方式就好了。
因为74LS190是异步置数的,所以直接在高位片为0的时候置数为2就不能达到预期效果,计数的结果会变为23→10→23。我这里解决的办法是将置数端输入信号设为33,然后把高位片的输出信号进行减1操作就可以达到预期效果。高位片输出减1可求出1的二进制补码(1111)后,由2进制超前进位全加器74LS283实现。
接线方式:
下图左边为高位片,右边为低位片。

  • 两片74LS190的CP都用同一个时钟输入,这里我选择的是1HZ的时钟信号,在测试的时候可以适当增加时钟频率,方便更快观察到计数结果。计数方式控制端U’/D都接高电平,使其减计数;
  • 低位片和高位片的置数端都用拨码开关S将其置数为3;
  • 低位片的使能端CTEN’接地,高位片的使能端CTEN’由低位片的进位错位输出端MAX/MIN经过一个非门后接入。
  • 高位片和低位片的置数端都由高位片的进位错位输出端MAX/MIN经过一个非门后接入。
  • 高位片74LS190的输出端QD QC QB QA对应接到74LS283的输入端A4 A3 A2 A1。74LS283的置数位全接高电平;
  • 整个24进制倒计时计数器的输出由高位片连接的74LS283的输出端SUM_4 SUM_3 SUM_2 SUM_1和低位片74LS190的输出端QD QC QB QA得到。
    交通灯_24进制倒计时计数器
    下面的S1和S2是两个置数开关,上面用的数码管显示计数结果。

信号灯控制设计

信号灯的有效电平为高电平。

首先设置的是第一个路口绿灯和黄灯的交替点亮。由题目要求知道,绿灯在计数为23→4时点亮,此时红灯和黄灯熄灭,黄灯在4→0时点亮,此时绿灯和红灯熄灭。因为红灯在下一个计数周期才会点亮,所以我们可以先设计此计数周期绿灯和黄灯的交替点亮。

  • 黄灯设计

黄灯的点亮时间短,黄灯点亮时,计数器输出为0000_0000,0000_0001,0000_0010,0000_0011,将计数器输出从高位到低位分别定义为D2C2B2A2_D1C1B1A1,由卡洛图可化简出黄灯点亮时的最简与或式为 D2’C2’B2’A2’D1’C1’,由于D2C2位始终输出为00,所以最简与或式可化简为 B2’A2’D1’C1’。由于Multisim元件库里没有直接的4输入或非门,所以黄灯的输入可由高位片的B2A2,低位片的D1C1分别通过一个非门后,在经过四输入与非门和非门得到。
交通灯_黄灯设计

  • 绿灯设计

而绿灯的是黄灯的反,所以绿灯的输入可由黄灯输入的反得到。黄灯设计中与非门的输出即黄灯输出的反,所以这里可以直接取与非门的输出作为绿灯的输入。
交通灯_绿灯设计

  • 红灯设计

分析可知,红灯是在一个计数周期内点亮,在下一个计数周期又熄灭,相当于每经过一个计数周期就翻转一次。所以可以使用T’触发器的翻转功能,T’触发器由JK触发器的JK输入端都接高电平可得到。在计数周期变化的时候是0→23,相当于0000_0000→0010_0011,此计数的变化与其它时刻计数的变化唯一的不同是高位片的B2由0→1,所以可以由高位片的B2作为T’触发器的时钟控制红灯的点亮和熄灭。由于用到的JK触发器74LS112是时钟下降沿触发,所以要由B2经过一个非门后再接到JK触发器的时钟输入端。这样设计就完成了红灯每隔一个一个计数周期再点亮的预期效果。
交通灯_红灯设计

  • 设计优化

因为在红灯点亮时,绿灯和黄灯都不亮,而刚刚设计的绿灯和黄灯在每个计数周期都会交替点亮。所以将红灯输入端的反与刚刚设计的绿灯的输入端经过一个与门,重新作为绿灯的输入端。黄灯同理。这样完成了一个路口红绿灯交替点亮的预期效果。
设绿灯和黄灯原先的输入分别为G0和Y0,优化后的输入分别为G和Y,红灯的输入为R。灯亮值为1,灯灭值为0,灯正常工作时为Q。得到交通灯真值表如下所示:

G0 Y0 R G Y
Q Q 0 Q Q
Q Q 1 0 0

由真值表可以得到绿灯和黄灯输入的表达式为:

G = R’&G0
Y = R’&Y0
交通灯_优化

  • 第二个路口交通灯设计
    分析可知,两个路口的红灯是分别在不同的计数周期内交替点亮的,所以第二个路口红灯的输入端可由第一个路口红灯输入端的反来得到。
    第二个路口绿灯和黄灯的设计方法和上述第一个路口绿灯和黄灯的设计方法同理可得。
    (绿灯和黄灯设计:取上述步骤绿灯设计一步的绿灯和黄灯的输入,再和第二个路口红灯输入的反经过一个与门得到)

交通灯_两组连接

写到这儿,一个基本的交通灯电路已经设计完成了。

  • 黄灯闪亮问题

要想让黄灯在亮的时候闪烁,只需要将黄灯的输入端和一个时钟CP相与,然后再重新作为黄灯的输入就可以了,在这里我就不放图了,有兴趣的网友可以自己尝试一下。

最后我把由开关S1控制整个交通灯的夜间模式(只有两个路口黄灯闪亮,红灯和绿灯不亮)放在最后,有兴趣的朋友可以看看。
夜间模式

备注:做实物的时候,开关电路一定要加上拉电阻,否则会造成电路的输出于理想情况对不上。仿真电路中开关的接法就是错误的接法,实物不能这样接,一定要加上拉电阻。

版权声明:本文为CSDN博主「一疯疯到底」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_51463895/article/details/109044969

生成海报
点赞 0

一疯疯到底

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐