数电课设(路口交通灯管理系统的设计—西大)

 路口交通灯管理系统的设计A题(较难)

目录

题目要求:

      整机电路图如下:

一.设计任务书 

二.设计框图及整机概述 

2.1总体设计框图

2.2整机概述

三.各单元电路的设计方案及原理说明

3.1计数器和译码器(状态控制部分)

        3.1.1设计过程

        3.1.2关于置零输入端和CLK的控制说明

3.1.3译码器

3.2三态总线转换器(存储状态的秒数)

3.2.1电路图

3.2.2工作原理

3.3减法器(倒计时核心器件)

3.3.1电路图如图所示

3.3.2设计过程

3.3.3相关原理

3.4显示数码管

3.4.1电路图如下

3.4.2工作原理

3.5应急复位

3.5.1电路图如下

3.5.2工作原理

3.5.3先看计数器的置数问题。

3.5.4减法器的置数问题

3.6改进一:紧急模式

3.6.1电路图

3.6.2工作原理

3.6.2.1公式:

3.7改进二:深夜模式

3.7.1电路图

3.7.2工作原理以及相关的公式推导

四、功能测试

4.1.1倒计时测试

4.1.2应急复位测试

4.1.3改进一紧急模式测试

4.1.4改进二深夜模式

五、碰到的困难和异常

六.参考文献

七.附录部分

本课设使用软件为DreamLogic, 其他软件类似,思路都相同,请自行修改

通过网盘分享的文件:top.dlsche.svg 链接: 百度网盘 请输入提取码 提取码: ep2n
该链接是整机电路图,如果评论区指定的链接打不开,可使用百度网盘下载

题目要求:

      整机电路图如下:

设计任务书 

内容主要是实现东西和南北两个方向上交通灯的时间显示,以及一系列的改进。同时要求一个方向上的红灯时间等于黄灯时间加另一方向的绿灯时间,且要求黄灯时间大于5s,主干道红灯时间为20s,支干道的红灯时间为学号的后两位。

这里设计后两位是21,所以交通灯的变换状态是是

东西支干道:
红色状态为21s->绿色状态为12秒->黄色状态为8秒

南北主干道:
绿色状态为15s->黄色状态为6s->红色状态为20s

该题目要求有(1):实现东西、南北两个方向上的交通灯的控制,要求可以应急复位

(2):灯光变换的颜色要求为红->绿->黄

(3):要求各使用两个数码管显示当前状态的倒计时

  1. :交通灯的时间要求。南北为主干道,红灯时间为20s,而东西为支干道,红灯时间为21s,同时要求红灯时间等于绿灯时间+黄灯时间,同时要求黄灯时间大于5s,我黄灯的时间设置为东西方向8秒,南北方向为6秒,状态转换图如下

改进一:要求当有紧急情况时(低电平信号表示),交通灯都显示为红色,同时倒计时暂停,而当紧急状态结束时,恢复原来的状态

改进二:在深夜模式下(低电平信号表示),交通灯只有黄灯闪并且倒计时显示为0

二.设计框图及整机概述 

2.1总体设计框图

2.2整机概述

首先的想法是交通灯共有三个状态,然后考虑到要倒计时,但是不同的状态显示的倒计时不同,因此想到了通过由目前的状态决定要选择哪个数来置给减法器,从而达到显示倒计时的目的,因为是3个状态,00,01,10,是一个循环计数,想到了用计数器来实现,这里要控制的就是置数端和时钟端。

1.关于置数端,因为选择的加法器是72LS160D是一个同步置数的十进制加法计数器,然后要循环00,01,10,使用同步,即在01的时候通过与非门,来控制置数端。

2.而这个时钟端的话,时钟端决定着状态的变换,因此这里使用的是减法器的00,也就是min为1,表示着减法器减到了0,此时min端会出现高电平,通过与非门,再接上手动控制的置数端(这里因为如果不添加的话,减法器无法正常工作,因为设计的减法器不能自启动,必须首先通过手动启动后才可以正常的循环,关于为什么得手动,之前也想着是否可以改成自启动的,但是发现74LS191D的话,它得先置数然后才能实现减法,也就是load端先得为0,把数置上,然后为1,这个转换想了比较久,没想到自启动的方法)

3.通过74LS160D加法器,得到的Q1,Q0,(用这两个数来表示3个状态),再通过译码器接到三线总态转换器上,这个转换器实际上起到了一个保存数的作用,通过译码器来选择哪个数该被置上去。然后置上去的数接到减法器,通过控制时钟端和置数端来实现倒计时的功能。

4.关于交通灯的问题的话,直接列状态表,可以得到相关的状态,以1表示东西方向的灯,2表示南北方向的灯,R是红灯,Y是黄灯,G是绿灯。用卡诺 图化简可以清晰的看到

 

5.关于倒计时的显示,我的倒计时是从起始显示到01,没到00是因为我选用的190D是异步置数的减法器,到00立马置数,所以我们是看不到00状态,不是说00不存在,只是时间太短,所以显示的是起始的秒数到01

三.各单元电路的设计方案及原理说明

3.1计数器和译码器(状态控制部分)

如图即为计数器和译码器的部分

3.1.1设计过程

因为我们需要是3个状态,Q1,Q0两个数即可表示完毕,在这里我采用的是置数的方式,由于74LS160D是同步置数的十进制加法器,所以在显示01的时候就通过与非门,这样在下个上升沿来临时,就可以回到00。

由于置数端为低电平有效,所以是(Q1Q0’)’,而CLR和EP、ET端都接高电平是因为,我使用的是同步置数,异步置0我不用,为了不让引脚悬空,即接高电平,而EP、ET接高电平是因为只有在其均为1的情况下才能进行计数.

工作表如下:

CLK

LOAD

QBQA

Y2’

Y1’

Y0’

上升沿

0

00

1

1

0

上升沿

0

01

1

0

1

上升沿

0

10

0

1

1

上升沿

0

00

1

1

0

3.1.2关于置零输入端和CLK的控制说明

由功能表我们知道,计数要CLK来一个上升沿,从而得到的Q1Q0加1,随之的是状态的改变,所以CLK如何变换取决于什么时候状态应该改变。我将减法器的min端接与非门,如下,又通过与门与启动电路的开关相与,再和复位端相与,为什么和复位端相与在下文介绍如何复位时讲,这里主要说和计数相关的内容。


74LS190D的min端在u/D端接1时,也就是执行减法操作的时候,当减到0的时候min端会输出1,表示减到了0,而这正好标志着目前状态的结束,因为是倒计时,到0就结束,所以通过min端的控制我们可以来将他作为CLK的输入端,以此来控制什么时候计数。

而置零端则是与应急复位开关相与,具体在应急复位那儿详细讲解。

3.1.3译码器

我采用的是3-8译码器,电路图如下

这里就是通过将输入的二进制数转化为0、1、2这三个状态,输出的是最小项的非,G1接高电平,G2A和G2B接低电平,这是由功能表所决定,这样才能正常译码。

译码出来的数将起到选择的作用。在三态总线转换器讲解。

A即Q0,B即Q1,译码如下:

Q1

Q0

译码结果

0

0

(Q1’Q0’)’

0

1

(Q1’Q0)’

1

0

(Q1Q0’)’

3.2三态总线转换器(存储状态的秒数)

在通过译码器输出之后,通过将相应的线连接到转换器的使能端上。

3.2.1电路图

3.2.2工作原理

要知道原理,得首先知道74LS245的功能。

A:A总线端

B:B总线端

DIR:方向控制端

当DIR=“0”时,信号由 B 向 A 传输;(接收)

DIR=“1”,信号由 A 向 B 传输;(发送)

当OE为高电平时,A、B均为高阻态。当OE为0也就是低电平时,正常工作,B0-B7对应着A0-A7

因此,我们将对应的Y0-Y2(也就是状态00、01、10)接到三个转化器上,三个转化器对应着三个状态。这里以支干道的状态为例。前四位是倒计时的是十位,后四位是个个位,也就是说低位在左,高位在右。

置数结果与Q1,Q0的关系如下:

Q1Q0

置数结果

00

0100

1000

01

1000

0100

10

0000

0001

3.3减法器(倒计时核心器件)

3.3.1电路图如图所示

3.3.2设计过程

输出A-D,A是低位,D是高位,时钟端是通过时钟器件来控制,因为74LS190D是异步置数加/减计数器,而我们的状态中最大的秒数达到了21秒,所以将两片级联起来,这里我采用的将低位片的借位信号接到高位的使能端上,重点是置数端。

3.3.3相关原理

这儿的原理主要是什么时候置数,我们知道当倒计时到00时,此状态结束,该轮到下一个状态,而在00时,min端会输出1,利用这个特性,接与非门,正好输出是低电平的时候进行置数。在这里的话,因为减法器是异步置数,00的状态存在很短,这儿,我之前没有加初始置数端的话,会出现无法正常工作的情况,因为初始min端为0,通过门电路为1,不能置数,也就无法进行下面正常的工作。因此通过添加初始置数端,使得电路启动。这也说明了我设计的电路不可自启动。

3.4显示数码管

3.4.1电路图如下


3.4.2工作原理

这儿的工作原理相比来说比较简单,直接将减法器的输出端按照相关低位、高位接到数码管的引脚上即可,要注意的是数码管的1是低位,4是高位。

在电路图中还有许多的门电路,这是改进后增加的内容,在下文分析。

3.5应急复位

3.5.1电路图如下

图中红色圈即为应急复位的核心。

3.5.2工作原理

应急复位,我设计的是低电平有效。应急复位开关只要处于低电平的状态的话,要回到初始状态,也就是说计数器的Q1Q0要置数回到00,同时倒计时回到21s,也对应着00状态,要求将00状态的数置入减法器,这里显示了两个问题:1.如何将计数器置回初始状态。2.如何将减法器的置回初始状态。

3.5.3先看计数器的置数问题。

先看右上角的红色圈,那里取非是因为减法器置到0,min端与非,出来的是0,也就是电平变化是下降沿,而160D计数器要求的是上升沿工作,所以通过添加非门,将下降沿变为上升沿。这里添加或门的原因就是为了应急复位。

以D表示应急复位,低电平有效,Y表示从减法器那儿经过非得到的上升沿信号。其之间关系如下表

D

D’

Y

CLK

1

0

Y

Y

0

1

×

上升沿

也就是说D’和Y之间的关系是一个或的关系,所以有了图中左边的那个红圈中的或门。

3.5.4减法器的置数问题

设计这个也要置数,主要是为了解决倒计时的问题。

先看电路图

这里fuwei我使用了网络标签,因为这里离应急复位开关太远,连线起来比较繁琐所以用了网络标签。

这里复位和置数端使用与门的原因是,当复位端也就是D为1的时候,不影响置数,还是按都减到0的时候进行置数。但是当D为0的时候,此时不管是否减到00,都直接进行置数。状态表如下,可以知道这是与门的关系.

用Y表示原来的置数。

D

D’

Y

LOAD’

1

0

×

0

0

1

Y

Y

3.6改进一:紧急模式

3.6.1电路图

3.6.2工作原理

因为我们需要的是低电平的时候表示进入紧急模式,并且只有红灯可以亮,倒计时暂停,状态结束后恢复原状。那么我们首先可以分析的是倒计时暂停,必须得时钟始终保持高/低电平不变,只有这样才能使得减法器的工作停下来,也就是保持状态。也就是说紧急模式开关为1不影响时钟,但是为0的话,时钟信号不能发生变化。这其实就是与门的功能。

3.6.2.1公式

Y = CLK·B, 当B=1,即并不进入紧急模式,此时时钟信号Y=CLK

                           当B=0,进入紧急模式,Y=0,此时时钟信号时钟保持低电平,将减法器的CLK端封锁,使得计时暂停

而关于灯的问题,黄灯和绿灯都为0,在B=1,黄灯和绿灯保持原来的状态,B=0的时候,黄灯和绿灯不能亮,即为0.非常的明显,这就是与门。

黄灯的输出Y = Y·B

绿灯的输出G = G·B

而关于红灯则得另外分析,因为B=1的时候,红灯是原来的,而B=0的时候,红灯的信号则变为恒定高电平。即R=R+B’, 也就是R = (R’·B)’[2]

B(紧急模式)低电平有效

R

Y

G

0

(R’·B)’

0

0

1

R

Y

G

具体对应关系如下:

B(紧急模式)低电平有效

R

Y

G

0

(R’·B)’

0

0

1

R

Y

G

3.7改进二:深夜模式

3.7.1电路图

3.7.2工作原理以及相关的公式推导

深夜模式开始的时候,要求四个交通灯都只亮黄灯,并且是闪烁状态.同时要求倒计时均为0。

先看倒计时为0的解决办法,我这里还是用低电平表示深夜模式,用C来表示深夜模式。因此我们可以知道,当深夜模式不开启,也就是C=1的时候,倒计时正常进行,当C=0的时候,倒计时为0,也就是各个数码管的四个引脚的数都为0.用Z表示原来的输出,Y表示数码管接受到的数,则有以下关系

C(深夜模式)低电平有效

Z

Y

0

×

0

1

Z

Z

很明显是与门的关系,所以直接将原来的减法器的输出通过与门与深夜模式相与即可,

其次另一个问题是如何使得黄灯闪烁。

首先可以明确的是红灯和绿灯都不能亮。这个实现比较简单,可以参考上文紧急模式对于黄灯和绿灯的控制,这里不多赘述。就直接与深夜模式相与即可。重点是黄灯这里。 我的思路是首先直接将原来的黄灯信号封锁在低电平,然后再给时钟信号,进行闪烁。因为这样比较好想,实现也简单。关于为什么要给时钟信号,以及如何想到,主要还是闪烁这个词,和时钟的关系太密切了。同时接上时钟,还可以自己调控黄灯的闪烁时间。

相关状态表如下:

C(深夜模式)低电平有效

R

Y

G

CLK

0

0

CLK

0

1

R

Y

G

这里还有一个细节是C不可以直接和时钟相与,应该是非之后相与,用CLK表示时钟的输出有CLK = CLK·C’,而黄灯的输出记为Yellow,Yellow = Y + CLK可以明显的知道,当C为1的时候,时钟输出为0,Yellow = Y,即按正常的黄灯信号进行工作,而当C为0.也就是进入了深夜模式的时候,CLK = CLK, Y原来= 0,Yellow = CLK,从而进行闪烁。            

四、功能测试

4.1整体测试:


4.1.1倒计时测试

结果分析:正确,能够正常进行倒计时

4.1.2应急复位测试

此次测试是在上图显示11的情况下进行的,按下应急复位按钮,如下

                             图4.1.2

结果分析:可以进行复位操作

4.1.3改进一紧急模式测试

测试是在图4.1.2的基础上进行的,按下紧急按钮B,如下

                                    图4.1.3

结果分析:能够正常进行紧急模式

4.1.4改进二深夜模式

测试是在图4.1.3的基础上进行的,结果如下

                                     图4.1.4

结果分析:能够正常进行深夜模式

五、碰到的困难和异常

困难和异常:如何设计状态、如何进行倒计时、如何设计应急复位、为什么减法器不先初始置数的时候,进行仿真会出现min显示介于低电平和高电平之外颜色的蓝色、如何存下每个状态的要置的数、在深夜模式的时候,怎么让黄灯闪烁、还有就是160什么时候计数也就是什么时候变换状态

解决办法:

  1. 关于设计状态,四个状态,用两个二进制数来表示,我使用的是Q1Q0
  2. 倒计时的话,得使用减法器,我用的是190异步置数的加/减计数器,不同的状态置入不同的数,然后将减法器的输出接到数码管的引脚上即可
  3. 应急复位的关键就是置数回到初始,那么置数的时机,就得通过相应的与门/或门来实现,以及时钟CLK的控制,将他们与应急复位的开关的状态画出来便可得到关系
  4. 减法器不初始置数,仿真出现蓝色,我猜测可能是软件设置的异常状况的提示
  5. 存下每个状态的数,我使用的是三态总线转换器,通过译码器,来选择将那个数置到减法器中
  6. 深夜模式,让黄灯闪烁,先把原来黄灯的信号封锁在低电平,然后接上或门,接上时钟,就可以实现闪烁。
  7. 160的状态变换也就是计数,通过控制CLK端,将减到00的状态输出之后,是下降沿,接个非门变为上升沿,接到CLK端。也就是说在当前状态结束的时候,变换状态。

六.参考文献

[1]  阎石,王红编;清华大学电子学教研组编.数字电子技术基础(第 6 版).北京:高等教育出版社, 2016 .2024-1-2

七.附录部分

7.1整机逻辑电路仿真图如下


7.2元器件清单:

7.2.1 74LS160D同步置数/异步置零十进制加法器

功能说明:

EP

ET

LOAD’

CLR’

CLK

工作状态

×

×

×

0

×

置零

×

×

0

1

上升沿

预置数

0

1

1

1

×

保持

×

0

1

1

×

保持,C=0

1

1

1

1

上升沿

计数

7.2.2 74LS138D3-8译码器

功能表:

输入

输出

G1

/G2A

/G2B

C

B

A

/Y0

/Y1

/Y2

/Y3

/Y4

/Y5

/Y6

/Y7

×

1

×

×

×

×

1

1

1

1

1

1

1

1

×

×

1

×

×

×

1

1

1

1

1

1

1

1

0

×

×

×

×

×

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

0

1

1

0

1

1

1

1

1

1

1

0

0

0

1

0

1

1

0

1

1

1

1

1

1

0

0

0

1

1

1

1

1

0

1

1

1

1

1

0

0

1

0

0

1

1

1

1

0

1

1

1

1

0

0

1

0

1

1

1

1

1

1

0

1

1

1

0

0

1

1

0

1

1

1

1

1

1

0

1

1

0

0

1

1

1

1

1

1

1

1

1

1

0

7.2.3  74LS245 8位双向总线收发器

功能说明:

A:A总线端

B:B总线端

DIR:方向控制端

当DIR=“0”时,信号由 B 向 A 传输;(接收)

DIR=“1”,信号由 A 向 B 传输;(发送)

当OE为高电平时,A、B均为高阻态。当OE为0也就是低电平时,正常工作,B0-B7对应着A0-A7

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值