红绿灯题目要求
触发器选择
本次选择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段数码管来表示当时状态,可以舍弃不要