数电,基于JK触发器完成的红绿灯

红绿灯题目要求

1. 要求如下:
1) 实现东西、南北两个方向上的交通灯控制。使用型号库“数字信号显示”中提供的交通灯显
示灯光变化。
2) 灯光变化的规律为:红灯亮→绿灯亮→黄灯亮→红灯亮……,如此依次循环。
3) 使用两个数码管显示一个方向上的倒计时,红灯持续时间为 7 秒、绿灯持续时间为 5 秒、黄
灯持续时间为 2 秒。
4) 当任何一个方向出现警车、消防车、救护车等优先通行类车辆时,则东西、南北两个方向上
的红灯全亮,其他灯灭,时钟停止计时,其他车辆禁止通行。当这种特殊状态结束后,恢复
原来的状态,继续运行。
5) 使用单周期时钟器件产生的负脉冲(低电平)表示有紧急事件发生,优先类车辆通行;负脉
冲结束表示紧急事件结束。
6) 使用有限状态机的方法设计交通灯控制器。

触发器选择

本次选择JK触发器,原因如下:

1、JK触发器具有保持状态、翻转状态、置1状态、置0状态。

2、按下复位按钮后红绿灯开始计时,在一次状态结束后需要继续循环,需要对其进行初始化值

3、JK触发器的功能较多,更加方便使用

原理分析

1、红绿灯在一个周期为14种状态,所以选择4个JK触发器,存储4位2进制编码,来表示14种状态。当状态为1-7时,用来显示东西方向的红灯,同时显示南北方向的绿灯和黄灯。状态为8-15时显示南北方向上的红灯和东西方向上绿灯和黄灯。

2、特殊状态我们需要一个一位交互式信号,在原理图连接红路灯时增加与门、或门来控制特殊状态,红灯增加与门、其他增加或门。正常状态下有红灯是高电平、其他是低电平。

3、二进制编码具有唯一性,可以通过判断四个触发器的值来判断电路处于哪种状态,以便进行下一步操作。

4、南北方向上的黄灯,就可以判断电路是否处于6状态,6的二进制编码为0110,就可以通过一个或非门和一个三输入与门来进行输出。

原理图设计步骤

1、红绿灯有14状态,采用4位触发器的1-14来存储需要的14种状态。

2、将其分为两种主要状态,分别是1-7为东西方向红灯和南北方向上的绿灯、黄灯,8-14南北方向红灯和东西方向上的绿灯、黄灯。

3、在东西方向为红灯时南北方向上的绿灯直接采用东西方向上红灯的非,判断电路处于6、7状态南北方向上的黄灯时,优先级高于绿灯。第一种主要状态结束,

4、第二种主要状态和第一种主要状态的设计原理一样。

5、4位二进制的范围是0-15,所以在状态到14时,一个周期已经结束,再次按下时钟时就需要进入下一个周期。设计的周期是1-14,所以在状态为15时,应该使用CLR复位端将电路置为状态为1。

注意

1、通过触发器的值判断电路的状态时,得到的值应该是唯一的,即只有这个状态输出的置才能为真。否则电路仿真过程就可能会出现其他错误。

2、电路需要置1时,需要判断电路所处的状态应该是15即1111,而不是14即1110。

说明

便于理解,在原理图旁边增加一个16进制7段数码管来表示当时状态,可以舍弃不要

部分仿真图

原理图

初始化后(状态为1时,东西为R,南北为G)

状态为6时(东西为R,南北为Y)

状态为8时(东西为G,南北为R)

状态为D(13)时(东西为Y,南北为R)

当出现特殊情况时(东西为R,南北为R)

有问题欢迎私信

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无_欲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值