设计一个行人过马路交通灯控制电路,当行人需要过马路时,按路边控制器的按钮,交通灯显示绿灯 10 秒倒计时,时间到,黄灯闪烁 3 下,然后显示红灯 30 秒倒计时。然后进行红外探测,若人行道没有行人滞留,则变为绿灯;若有行人未完全通过马路,则黄灯闪烁,直到行人完全通过为止。
本交通灯设计主要由电源、秒脉冲发生器、定时器、控制器、译码显示电路组成。电源由 LM7805 将 9V 电压的电池降成 5V,秒脉冲发生器由 NE555 产生脉冲,定时器由 74LS163 实现,控制器由 74LS153 和 74LS74 组成,译码电路采用 74LS139 和红、黄、绿三个小灯。控制器通过 ST 信号对定时器进行控制,从而显示红黄绿灯的转换。设计分析如下:
(1)组装电源部分并测试电压。
(2)组装调试秒脉冲电路。
(3)进行定时电路的组装和调试。当输人 1Hz 的时钟脉冲信号时,要求电路能进行增计时,当增计时到 10s、3s、30s 时,能输电有效的定时时间到信号。
(4)调试交通灯控制器以及小灯。
(5)判断各部分电路之间的时序配合关系。然后检查电路各部分的功能,使其满足设计要求。
交通灯控制系统的原理框图如图 1 所示。它主要由控制器、定时器、译码器和秒脉冲信号发生器等部分组成。秒脉冲发生器是该系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制定时器和译码器的工作。图中:
Tl: 表示当行人需要过马路时,按路边控制器的按钮,交通灯显示绿灯 10 秒倒计时。定时时间到,Tl=1,否则,Tl=0。
Ts:表示黄灯亮的时间间隔为 3 秒。定时时间到,Ts=1,否则,Ts=0。
Tr: 表示红灯 30 秒倒计时。Tr=1,否则,Tr=0。
ST:表示定时器到了规定的时间后,由控制单元发出状态转换信号。由它控制定时器开始下个工作状态的定时。
graph TD;
A[复位];B(控制单元);C[时钟];
D(定时器);E[传感S];F(译码器);
G(信号灯);A-->B;C-->B;E-->B;
A-->D;C-->D;D--Tl--->B;
D--Ts--->B;D--Tr--->B;
B--ST--->D;B==>F-->G;
秒脉冲发生器由 NE555 电路及外围电路组成,其中 R1=R2=7.15K,C=100uF 的电阻电容值决定了脉冲宽度。既 T=(R1+R2)Cln2 当 T=1S,即可凑出 R1、R2、C3 其中 Cf=0.01uF 是为了保持输出的波形的稳定。如图 2 所示, R2=68K、C=100uF 组成一个串联 RC 充放电电路,在 NE555 的 7 脚上输出一个方波信号,C 上得到一个三角波。此三角波送到 NE555 的 2 脚输入端。由 NE555 内部的比较器和门电路共同作用,维持 7 脚上的方波信号和 3 脚上的输出方波。
定时器由与系统秒脉冲(由时钟脉冲产生器提供)同步的计数器构成,要求计数器在状态信号 ST 作用下,首先清零,然后在时钟脉冲上升沿作用下,计数器从零开始进行增 1 计数,向控制器提供模 10 的定时信号 Tl、模 3 的定时信号 Ts 和模 30 的定时信号 Tr。 计数器选用集成电路 74LS160 进行设计较简便。74ls163 是 4 位二进制同步计数器(同步清除),它具有异步清零、同步置数的功能。74LS163 功能表如表 1 所示。
表1 74LS163管脚功能表
输入 | 输入 | |||||||||||
CR | CP | LD | EP | ET | D3 | D3 | D1 | D0 | Q3 | Q3 | Q1 | Q0 |
0 | ↑ | X | X | X | X | X | X | X | 0 | 0 | 0 | 0 |
1 | ↑ | 0 | X | X | D | C | B | A | D | C | B | A |
1 | ↑ | 1 | 0 | X | X | X | X | X | Q3 | Q3 | Q1 | Q0 |
1 | ↑ | 1 | X | 0 | X | X | X | X | Q3 | Q3 | Q1 | Q0 |
1 | ↑ | 1 | 1 | 1 | X | X | X | X | 状态码加1 |
控制单元是交通管理的核心,它应该能够按照交通管理规则控制信号灯工作状态的转换。画出控制单元 ASM 图、状态转换图和状态转换表。 交通灯有四种状态: ① 绿灯亮 10s。 ② 黄灯闪烁 3s。 ③ 红灯亮 30s。 ④ 黄灯闪烁。 这四种状态我们分别编码为 00、01、10、11,分别用 S1、S2、S3、S4 来表示,红绿黄灯亮我们用 0 表示,红绿黄灯熄我们用 1 表示。
graph LR;
A[00];
B{Tl};
C(ST);C1(ST);C2(ST);C3(ST);
D[01];
E{Ts};
F[11];
G{Tr};
H{S};H1{S}
I[10];
A-->B-->|1|C-->D-->E-->|1|C1-->F-->G-->|1|H-->|1|C2-->I-->H1-->|1|I;
B-->|0|A;
E-->|0|D;
G-->|0|F;
H-->|0|C3-->A;
H1-->|0|A;
graph LR;
A((S0));
B((S1));
C((S2));
D((S3));
A-->|Tl*ST非|B;
B-->|Ts*ST非|C;
C-->|Tr*S|D;
D-->|S非|A;
A-->|Tl|A;
B-->|Ts非|B;
C-->|非Tr|C;
D-->|S|D;
C-->|Tr*S非|A;
表 2 状态转换表
输入 | 输出 | ||||||||
现态 符号 |
现态 | 状态转换条件 | 次态 | 状态转换信号 | |||||
Q1n | Q0n | Tl | Ts | Tr | S | Q1n+1 | Q0n+1 | ST | |
S0 | 0 | 0 | 0 | X | X | X | 0 | 0 | 0 |
S0 | 0 | 0 | 1 | X | X | X | 0 | 1 | 1 |
S1 | 0 | 1 | X | 0 | X | X | 0 | 1 | 0 |
S1 | 0 | 1 | X | 1 | X | X | 1 | 1 | 1 |
S2 | 1 | 1 | X | X | 0 | X | 1 | 1 | 0 |
S2 | 1 | 1 | X | X | 1 | 0 | 0 | 0 | 1 |
S3 | 1 | 1 | X | X | 1 | 1 | 1 | 0 | 1 |
S3 | 1 | 0 | X | X | X | 0 | 0 | 0 | 1 |
S3 | 1 | 0 | X | X | X | 1 | 1 | 0 | 0 |
Q1n+1=Q1nQ0nTs+Q1nQ0nTr+Q1nQ0nTrS+Q1nQ0nS
Q0n+1=Q1nQ0nTl+Q1nQ0nTs+Q1nQ0nTs+Q1nQ0nTr
ST=Q1nQ0nTl+Q1nQ0nTs+Q1nQ0nTr+Q1nQ0nTrS+Q1nQ0nS
根据以上方程,选用数据选择器 74LS153 来实现每个 D 触发器的输入函数,将触发器的现态值加到 74LS153 的数据选择输入端作为控制信号.即可实现控制器的功能。
表 3 74LS153功能表
选择输入 | 数据输出 | 选通输入 | 输出 | ||||
B | A | C0 | C1 | C2 | C3 | G | Y |
L | L | L | X | X | X | L | L |
X | X | X | X | X | X | H | L |
L | L | H | X | X | X | L | H |
L | H | X | L | X | X | L | L |
L | H | X | H | X | X | L | H |
H | L | X | X | L | X | L | L |
H | L | X | X | H | X | L | H |
H | H | X | X | X | L | L | L |
H | H | X | X | X | L | L | H |
表 4 74LS74功能表
输入 | 输出 | ||||
SD | RD | CP | D | Q1n+1 | Q0n+1 |
0 | 1 | X | X | 1 | 0 |
1 | 0 | X | X | 0 | 1 |
0 | 0 | X | X | φ | φ |
1 | 1 | ↑ | 1 | 1 | 0 |
1 | 1 | ↑ | 0 | 0 | 1 |
1 | 1 | ↓ | X | Qn | Qn |
其原理为: CLK 分别送给 U7A 和 U7B 的 3 和 11。将时钟信号接入 U5 和 U6。如上图所示,74LS74 两个 D 触发器作为时序寄存器产生 4 种状态。选用数据选择器 74LS153 来实现每个 D 触发器的输入函数,将触发器的的现态值加到 74LS153 的数据选择端作为控制信号,即可实现控制器的功能。
译码器的主要任务是将控制器的输出 Q1、 Q1的 4 种工作状态,翻译成 3 个信号灯的工作状态。控制器的状态编码与信号灯控制信号之间的关系如表 5 所示。
表 5 控制器状态编码与信号灯关系表
Q1Q0 | S0 | S1 | S2 | S3 |
00 | 1 | 0 | 0 | 0 |
01 | 0 | 1 | 0 | 0 |
10 | 0 | 0 | 0 | 1 |
11 | 0 | 0 | 1 | 0 |
由秒脉冲发生器产生了周期性变化的 CLK 脉冲,一部分送给了定时器的 74LS163 芯片,另一部分送给了控制器的 74LS74 芯片。在脉冲 ST 同时加到定时器 74LS163 芯片的情况下,将定时器输出的 Tl、Ts、Tr 和经反向器输出的Tl、Ts和Tr分别作用于控制器的芯片 74LS153 中,在 CLK 脉冲置于芯片 74LS74 中会输出高低变化的电平。控制器中的信号在送给由芯片 74LS139 组成的译码器后再通过电路中的指示灯和 200 欧的电阻从而得到交通灯的逻辑电路。电路图设计如图 7。
因为 TTL 芯片的标准电压为 5V,所以电源由 9V 的电池经 LM7805 降压成 5V。电路图设计如图 8。
红外人体感应部分使用的是 HC-SR501 人体感应模块。
1、全自动感应:人进入其感应范围则输出高电平, 人离开感应范围则自动延时关闭高电平,输出低电平。 2、光敏控制(可选择,出厂时未设)可设置光敏控制,白天或光线强时不感应。 3、温度补偿(可选择,出厂时未设):在夏天当环境温度升高至 30 ~ 32℃,探测距离稍变短,温度补偿可作一定的性能补偿。 4、 两种触发方式:(可跳线选择) a、不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平; b、可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。 5、具有感应封锁时间(默认设置:2.5S 封锁时间):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒—几十秒钟)。 6、 工作电压范围宽:默认工作电压 DC4.5V-20V。 7、 微功耗:静态电流<50 微安,特别适合干电池供电的自动控制产品。 8、 输出高电平信号:可方便与各类电路实现对接。
1. 感应模块通电后有一分钟左右的初始化时间,在此期间模块会间隔地输出 0-3 次,一分钟后进入待机状态。 2. 应尽量避免灯光等干扰源近距离直射模块表面的透镜,以免引进干扰信号产生误动作;使用环境尽量避免流动的风,风也会对感应器造成干扰。 3. 感应模块采用双元探头,探头的窗口为长方形,双元(A 元 B 元)位于较长方向的两端,当人体从左到右或从右到左走过时,红外光谱到达双元的时间、距离有差值,差值越大,感应灵敏,当人体从正面走向探头或从上到下或从下到上方向走过时,双元检测不到红外光谱距离的变化,无差值,因此感应不灵敏或不工作;所以安装感应器时应使探头双元的方向与人体活动最多的方向尽量相平行,保证人体经过时先后被探头双元所感应。为了增加感应角度范围,本模块采用圆形透镜,也使得探头四面都感应,但左右两侧仍然比上下两个方向感应范围大、灵敏度强,安装时仍须尽量按以上要求。
最终调试如下: 接上电源,便可以进行交通灯控制系统的仿真,将 S 开关打开,只有绿灯亮 10s,绿灯灭,黄灯闪烁 3s,黄灯灭,红灯亮 30s。最后红灯灭黄灯一直闪烁。把 S 开关关闭后,黄灯灭,绿灯亮。 仿真结果如下:
通过这次课程设计,加强了我动手、思考和解决问题的能力。现在设计已经做好了,虽然花了很多的时间,但学到了很多东西。做课程设计的时候,自己把整个书本都看了几遍,再加上查阅相关资料和询问老师及同学,增强了自己对知识的理解,很多不是很懂的问题现在都已经一一解决了。在课程设计的过程中,我想了很多种方案,对同一个问题(像计数器的接法)都想了很多种不同的接法,最后还是采取了最后选择的这种方法进行连接。熟悉了仿真软件的使用,培养了我对数字集成电路应用方面的综合实践技能,掌握综合运用理论知识以解决实际问题的能力。通过电路设计、安装、调试、整理资料、答辩等环节形成独立思考问题的能力,并培养了我的创新能力和自主学习的能力:如查阅资料、懂得如何根据需要选择器件等。
[1]康华光.《电子技术基础-数字部分(第五版)》[M].北京:高等教育出版社,2006.
[2]康华光.《电子技术基础-模拟部分(第五版)》[M].北京:高等教育出版社,2006.
[3]李广弟.《单片机基础(修订版)》[M].北京:北京航空航天大学出版社,2006.
总原理图如下所示:
本文作者:古月流新
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!