数电交通灯课设报告Word格式.docx
《数电交通灯课设报告Word格式.docx》由会员分享,可在线阅读,更多相关《数电交通灯课设报告Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
1设计任务目的与要求
1.1设计任务:
设计一个十字路口的红、绿、黄三色信号交通灯控制电路。
1.2设计要求:
1).
用红、绿、黄三色发光二极管作信号灯。
主干道为东西向,有红、绿、黄三个灯;
支干道为南北向,也有红、绿、黄三个灯。
红灯亮禁止通行;
绿灯亮允许通行;
黄灯亮则给行驶中的车辆有时间停靠到禁行线之外。
2).由于主干道车辆较多而支干道车辆较少,所以主干道绿灯时间较长。
当主干道允许通行亮绿灯时,支干道亮红灯。
而支干道允许通行亮绿灯时,主干道亮红灯,两者交替重复。
主干道每次放行50秒,支干道每次放行30秒。
在每次由亮绿灯变成亮红灯的转换过程中间,需要亮5秒的黄灯作为过渡,以使行驶中的车辆有时间停靠到禁行线以外。
3).
能实现正常的、即时显示功能。
用DE2上的四个七段数码管作为倒计时显示器。
分别显示东西、南北方向的红灯、绿灯、黄灯时间。
4).能实现特殊状态的功能显示。
设S为特殊状态的传感器信号,当S=1时,进入特殊状态。
当S=0时,退出特殊状态。
按S后,能实现特殊状态功能:
(1)显示器闪烁;
(2)计数器停止计数并保持在原来的数据;
(3)东西、南北路口均显示红灯状态;
(4)特殊状态结束后,能继续对时间进行计数。
5).能实现总体清零功能。
按下R后,系统实现总清零,计数器由初始状态开始计数,对应状态的指示灯亮。
6).利用QUARTUSⅡ软件,设计符合以上功能要求的交通灯控制器。
用图形输入方法。
控制器、计数器的功能用功能仿真的方法验证,可通过观察有关波形确认电路设计是否正确。
通过编译,仿真和综合,并下载到相应芯片中实现,最后在学习机上验证设计课题的正确性。
在学习机上验证结果。
2模块及其原理介绍
2.1分频器模块
本次课设所使用的DE-II板提供频率为50MHz的信号输入,而我们设计所需要的频率为1Hz,因此我们要对其进行分频处理。
我们采用内置的lpm_counter模块通过设置二进制计数器个数为26对50Mhz的时钟进行分频,输出端count得到约等于1hz的时钟信号。
2.2主控制器模块
根据课程设计任务,共有4种状态,可以用二位二进制码(Q1
Q0)表示,实现主黄支红(S0)、主红支绿(S1)、主绿支黄(S2)、主绿支红(S3)四个状态循环,则有如下图所示交通灯控制器状态转换图。
根据这个状态转换图可得出状态转换真值表,从而得到主控制器的电路。
设A为倒计时计数输出信号,当计数完成时输出1,计数未完成时输出0。
主控制器是由两个JK触发器连接而成,当计数完成时,触发器便会从一个状态跳到下一个状态,从而实现了状态的转换。
主控制器状态转换图
00
01
10
11
01
1
主控制器状态转换真值表
根据真值表可以得到Q1*、Q0*的真值表
0
则Q1、Q0的状态方程分别为:
则Q1、Q0的状态方程分别为:
Q0*=AQ1’Q0’+A’Q1’Q0+AQ1Q0’+A’Q1Q0’=A’Q0+AQ0
Q1*=A’Q1+AQ1’Q0+AQ1Q0’=(A’+Q0’)Q1+AQ0Q1’
又因为采用JK触发器,则其驱动方程为Q*=J’Q+KQ’,则
J0=A’=K0
J1=A’+Q0’=K1
因此我们可以将J、K端接在一起,接成T触发器,则
T0=A’
T1=A’+Q0’
主控制器模块电路如下所示:
2.3计数器模块
设计要求对不同的状态维持的时间不同,而且要以十进制倒计时显示出来。
主支干道分别采用两个74LS168完成计时器状态产生模块设计。
设计思路:
要以十进制输出,而又有一些状态维持时间超过10秒,则必须用两个74LS168分别产生个位和十位的数字信号。
我们可以通过将74LS168的时钟CLK端接秒脉冲从而实现计时功能。
同时74LS168计数器是十进制减法同步计数器,而且其具有同步置数(上升沿)的功能,因此我们可以采用置数法,根据主控制器状态给计数器置入对应的倒计时间。
S0状态时,主干道黄灯亮置入05S,支干道红灯亮置入05S;
S1状态时,主干道红灯亮置入35S,支干道绿灯亮置入30S;
S2状态时,主干道红灯亮置入05S,支干道黄灯亮置入05S;
S3状态时,主干道绿灯亮置入50S,支干道红灯亮置入55S。
设D31、D21、D11、D01为主干道十位置数端,D30、D20、D10、D00为主干道个位置数端;
设d31、d21、d11、d01为支干道十位置数端,d30、d20、d10、d00为支干道个位置数端,因此可得主支干道置数真值表:
Q1Q0
D31
D21
D11
D01
D30
D20
D10
D00
0
主干道置数真值表
d31
d21
d11
d01
d30
d20
d10
d00
支干道置数真值表
则得到主干道真值表达式为:
D31=0D21=Q1Q0D11=Q1’Q0D01=Q1’Q0+Q1Q0=Q0
D30=D10=0D20=D00=Q1’+Q1Q0’=Q1’+Q0’
支干道真值表达式为:
d31=0d21=Q1Q0d11=Q1’Q0d01=Q0
d30=d10=0d20=d00=Q1+Q1’Q0’=Q1+Q0’
则置数模块电路如下所示:
主干道置数电路
支干道置数电路
当74LS168的U/DN端为低电平时,进行减法运算。
又因为日常生活中交通灯倒计时显示不会出现“00”,因此我们在主干道计数器或支干道计数器减到01的时候均输出低电平的置数脉冲,从而进行下一状态的倒计时显示。
倒计时模块电路如下:
主干道计数模块
支干道计数模块
2.4数码管显示模块
我们采用7447译码器加共阴七段数码管实现时间显示功能,其电路如下所示:
2.5交通灯显示模块
交通灯显示是表示电路所处的状态,受主控制器控制,即主控制器的状态决定主干道支干道的交通灯显示。
设G、Y、R分别表示主干道的绿、黄、红灯;
g、y、r分别表示支干道的绿、黄、红灯,值为1时表示该灯亮,值为0时表示灯灭。
设S为紧急开关,当S为1时,表示按下紧急按钮,仅主干道和支干道的红灯亮,其余灯不亮;
当S=0时,电路维持正常,S0时主黄支红;
S1时主红支绿;
S2时主红支黄;
S3时主绿支红。
因此可得到交通灯的真值表:
S
Q1
Q0
G
Y
R
g
y
r
X
则真值表达式为:
G=Q1Q0S’Y=Q1’Q0’S’R=Q1’Q0+Q1Q0’+S
g=Q1’Q0S’y=Q1Q0’S’r=Q1Q0+Q1’Q0’+S
则交通灯显示模块电路如下所示:
2.6复位功能模块
当按下复位按钮,系统要实现总清零,计数器由初始状态开始计数,而我们所使用的JK触发器具有同步清零功能,则我们可以在按下按钮时输入清零信号(低电平有效),让主控制器进入初始状态,同时输入到计数器的置数端置入初始状态的倒计时间。
复位功能电路
总体置数信号输入电路
2.7特殊功能模块
设按下特殊功能键输入高电平,则取反后与秒脉冲相或,当秒脉冲为低时,输出低电平,并接到7447的BIN端(7447的BIN端为灭灯控制端,低电平有效),此时数码管灭,当秒脉冲回到高电平时,输出高电平,数码管亮,从而实现数码管显示闪烁。
我们把按下特殊按钮的高电平输入分别输入到主干道、支干道的个位计数器的EP、ET端(EP、ET为计数使能端,低电平有效),则主支的个位计数器停止计数,十位计数器也会停止计数,实现数码管的数值保持不变
3设计方案
3.1设计框图
倒计时显示
控制
主干道计数器
支干道计数器
反馈
时钟冲输入
复位按钮
特殊按钮
3.2总体方案设计
状态控制器主要记录交通灯的工作状态:
主黄支红、主红支绿、主绿支黄、主绿支红;
主状态译码器通过与非门点亮相应状态的信号灯;
秒信号发生器产生整个定时系统的时间脉冲,频率为1Hz;
通过减法计数器对秒脉冲减计数,达到每一种工作状态持续时间。
减法计数器减至1输出脉冲使状态控制器完成状态转换,同时主状态译码器根据系统下一个工作状态决定下一次减计数的初始值。
减法计数器的状态由BCD译码器译码,数码管显示。
3.3系统总体电路
4实验结果与数据分析
我们运用quartus软件对所设计的电路进行时序仿真和功能仿真,仿真通过后下载到DE-II板,运行程序,观察并记录结果:
1.开始时,主干道黄灯亮,支干道红灯亮,主支干道数码管分别显示“05”“05”字样。
然后主干道05秒倒计到01秒后跳变到红灯,进行35秒倒计时,数码管显示“35”,支干道05秒倒计到01秒后跳变到绿灯,进行30秒倒计时,数码管显示“30”;
支干道30秒倒计时结束后跳变到黄灯,进行5秒倒计时,数码管显示“05”,经行30秒倒计时,主干道仍为红灯,进行5秒倒计时,数码管显示“05”;
主干道5秒倒计时结束后跳变为绿灯,进行50秒倒计时,数码管显示“50”,支干道5秒倒计时结束后跳变为红灯,进行55秒倒计时,数码管显示“55”;
经过50秒倒计时,主干道跳变为黄灯,进行5秒倒计时,数码管显示“05”,而支干道仍为红灯,进行5秒倒计时,数码管显示“05”。
此时交通灯回到主干道黄灯亮,支干道红灯亮的状态,重新开始下一个循环的计时。
2.当闭合特殊按钮“S"
键时,可以看到仅主干道和支干道红灯同时亮,计数器停止计时,数码管显示闪烁;
当断开“S"
键时,交通灯恢复正常工作。
当按下复位按钮“R”键时,可以看到交通灯回到最开始的状态:
主干道黄灯亮,支干道红灯亮,主支干道数码管分别显示“05”“05”。
然后交通灯系统开始正常运行。
5结论与问题讨论
5.1问题
1.开始检验时,发现数特殊按键S拨动后并没有出现屏幕闪烁的现象。
5.2解决办法
1.经过询问老师和查阅资料后发现LPM_COUNTER的COUT端进位输出为一个尖峰脉冲,所以其实数码管是闪了的,只不过尖峰脉冲持续时间太短以致人眼分辨不出。
而总线输出的一个周期里面高低电平时间是各占一半的,所以我们调用总线的输出,最后实现了特殊按键S的功能。
5.3完成设计要求的程度
经修改后,电路能实现课程设计所要求的全部功能。
5.4总结
通过本次数电课程设计,我学会了许多知识。
我们在做课程设计的时候应该首先明确设计任务和总体结构框图,只有明确了设计的要求和任务,规划出整体的电路结构框图才能有方向的提出设计思路。
同时我们要有分模块设计的思想:
数字电路有很强模块性,做好每一块模块对整机的运行十分重要,还要详细查阅芯片资料,明确每一个引脚的作用。
对于组合逻辑电路,我们应该列出真值表并写出表达式,并根据表达式画出电路图,然后就能够实现模块间的连接。
对于时序逻辑电路,我们应该先列状态转换图,然后根据状态图列出真值表,然后卡诺图化简,列出次态方程,驱动方程,然后根据驱动方程连接JK触发器。
整个过程里我们收获到许多东西,不但加深了对数字电子技术的了解,而且锻炼了我们独立思考问题的能力。
参考文献
[1]阎石,清华大学电子学教研组.数字电子技术基础[M].高等教育出版社出版社,2005.
[2]