华中科技大学电子技术课程设计报告——交通灯控制器设计.doc
课程设计报告——交通信号灯控制器
目录一、设计背景 (2)二、任务和要求 (2)三、总体设计方案 (3)1.状态设置 (3)2.系统框图 (3)a.系统总框图 (3)b.系统状态转换框图 (4)四、单元电路设计 (4)1.倒计时电路(定时电路) (4)2.状态控制器(主控电路) (5)3.交通灯显示电路、 (5)4.数码管显示 (6)5.置数变换电路 (6)6.流量控制电路 (7)五、总电路原理图 (8)六、总电路图 (9)七、原件清单 (10)八、电路连接与调试 (10)九、设计总结 (10)十、参考文献 (11)一、 设计背景在现代城市中,人口和汽车日益增长,市区交通也日益拥挤,人们的安全问题也日益重要。
因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。
交通信号灯常用与交叉路口,用来控制车的流量,提高交叉口车辆的通行能力,减少交通事故。
有了交通灯人们的安全出行有了很大的保障。
二、任务和要求红绿灯交通信号系统外观示意图如图1所示。
1.在十字路口的两个方向上各设一组红黄绿灯,显示顺序为其中一方向是绿灯、黄灯、红灯;另一方向是红灯、绿灯、黄灯。
2.设置一组数码管,以倒计时的方式显示允许通行或禁止通行时间,其中一个方向上(主干道)绿灯亮的时间是45s ,另一个方向上(支干到)绿灯亮的时间是25s ,黄灯亮的的时间都是5s 。
3.要求加装一流量控制电路,使电路拥有流量控制功能,既:当一条路上无车,另一条路上有车时,这条路上的绿灯长亮,另一条路上红灯长亮。
三、总体设计方案1.状态设置状态1(00):主车道的绿灯亮,车道,人行道通行;南北方向车道的红灯亮,车道,人行道禁止通行。
状态2(01):主车道的黄灯亮,车道,人行道缓行;南北方向车道的红灯亮,车道,人行道禁止通行;状态3(10):支车道的红灯亮,车道,人行道禁止通行;南北方向车道的绿灯亮,车道,人行道通行;状态4(11):支车道的红灯亮,车道,人行道禁止通行;南北方向车的黄灯亮,车道,人行道缓行;2.系统框图a.系统总框图流量控制电路b.系统状态转换框图图2 工作流程图四、单元电路设计1.倒计时电路(定时电路)倒计时器由两位4位十进制可逆同步计数器(双时钟)74LS192、一个非门和一或门构成。
课程设计报告书---交通灯控制电路设计
课程设计报告书---交通灯控制电路设计课程设计任务书一、目的任务交通信号灯常用于交叉路口,用来控制车辆的流量,提高交叉路口车辆的通行能力,减少交通事故。
交通灯的颜色有红、黄、绿三种,当红灯亮时,表示该方向道路上的车辆或行人禁止通行;黄灯亮时,表示该方向道路上的行人禁止通行以及未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮时,表示该方向道路上的车辆或行人允许通行;交通灯控制电路自动控制十字交叉路口两组红、黄、绿交通灯的状态转换,有序的指挥各种车辆和行人安全通行。
1、主要内容(1)熟悉设计任务书,分析设计要求,借阅参考资料。
(2)在计算机上设计硬件原理图。
(3)设计软件框图、流程图编写软件程序、调试程序(4)用仿真器对所做的系统进行仿真,修改调试程序等;(5)加载程序到实验箱,调试、检查编程效果(6)撰写设计报告,绘图等。
三、设计要求1、理解设计任务书,原始设计要求。
2、掌握以下设计内容及方法:画出硬件电路原理图,确定各元件参数,确定软件流程,编写程序,调试程序,最后撰写设计报告,验收考核。
4、有勤于思考、刻苦钻研的学习精神和严肃认真、一丝不苟、精益求精的学习态度。
对有抄袭他人设计图纸(课程设计报告书)或找他人代编设计程序、等行为的弄虚作假者一律按不及格记成绩,并根据学校有关规定给予处理。
5、敢于创新,勇于实践,注意培养创新意识和工程意识。
6、扎实掌握课程的基本理论和基本知识,概念清楚,设计计算正确实验数据可靠,绘图符合标准,课程设计报告书撰写规范。
7、在设计周内完成所规定的设计任务,提交《课程设计报告书》一份。
报告书装订顺序:1)模板封皮2)任务书3)本课程设计要求4)设计报告a.系统总框图及系统工作原理。
b.系统的硬件电路连接图,电路的原理。
c.软件设计流程及其说明。
d.电路设计,软件编程、调试中遇到的问题及分析解决方法。
e.实验结果及其分析。
f.体会。
设计题目四:交通灯控制电路设计1.主要教学内容用单片机系统设计十字路口交通灯控制电路,要求东西方向的红、黄、绿灯和南北方向的红、黄、绿灯按照下面的工作时序进行工作,黄灯亮时应为闪烁状态:(1)南北和东西车辆交替进行,各通行时间 24 秒(2)每次绿灯变红灯时,黄灯先闪烁 4 秒,才可以变换运行方向。
电子技术课程设计报告--交通灯控制系统
交通信号灯控制系统设计报告一.实验目的1.掌握综合应用数电理论知识和中规模集成电路设计方法2.掌握调试及电路主要技术指标的测试方法。
3 了解交通灯管理的基本工作原理。
二、交通灯控制器任务及要求1、能显示十字路口东西、南北两个方向的红、黄、绿的指示状态用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯。
2、能实现正常的到计时功能用两组数码管作为东西和南北方向的到计时显示,主干道每次放行(绿灯)60秒,支干道每次放行(绿灯)45秒,在每次由绿灯变成红灯的转换过程中,要亮黄灯5秒作为过渡。
3、能实现特殊状态的功能(选做)(1〉按sl键后,能实现特殊状态功能:(2)显示到计时的两组数码管闪烁;(3)计数器停止计数并保持在原来的状态:(4)东西、南北、路口均显示红灯状态:(5)特殊状态解除后能继续计数。
4、能实现总体清零功能:按下该键后,系统实现总清零,计数器由初始状态计数,对应状态的指示灯亮。
5、完成电路全部设计后,通过实验箱验证设计课题的正确性。
三.比较和优选设计方案1.方案1:利用单片机来设计1)显示界面该系统要求完成倒计时、状态灯等功能。
完全采用数码管显示。
这种方案虽只显示有限的符号和数码字苻,但是完全胜任题目要求。
2)输入:题目要求系统能手动设灯亮时间、紧急情况处理。
直接在IO口线上接上按键开关。
因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用四个按键,分别是K1、K2、K3、K4。
由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。
3)输出:控制发光二极管,来表示红绿灯的亮灭,及山烁。
系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。
方案2:利用中规模集成芯片来实现。
其中信号灯的亮灭有三种可选方案:1)利用74LS161:2)利用存储器:3)利用扭环循环控制。
方案选择:由于这次实验是电工电子实验。
利用方案1不太满足要求。
方案2中利用扭环循环控制信号灯的亮灭,不容易实现特殊功能状态;利用存储器需要对芯片编码,有时会出现编码混乱的情况,这样会造成电路检测的不便。
交通信号灯控制器实验报告Word版
交通信号灯控制器一、设计任务及要求 (2)二、总体方案设计以及系统原理框图 (2)2.1、设计思路 (2)2.2、各模块相应的功能 (2)2.3、系统原理图 (3)三、单元电路设计 (3)3.1、车辆检测电路 (3)3.2、主控电路 (4)3.3、灯控电路 (5)3.4、计时控制电路 (6)3.5、计时显示电路 (6)3.6、反馈控制电路 (7)3.7、置数电路 (7)3.8、时基电路 (7)四、工作原理 (8)五、电路的软件仿真及结果分析 (8)5.1、时基电路(555接成的多谐振荡器)的电路图以及波形的显示 (8)5.2、结果分析 (10)六、电路的组装调试 (10)6.1、使用的主要仪器和仪表 (10)6.2、调试电路的方法和技巧 (10)6.3、调试中出现的问题、原因和排除方法 (11)七、收获、存在的问题和进一步的改进意见 (11)7.1、存在的问题和进一步的改进意见 (11)7.2、收获以及心得体会 (12)附录一:电路所用元器件 (14)附录二:电路全图 (15)附录三:实际电路图 (16)一、设计任务及要求在一个主干道和支干道汇交叉的十字路口,为了确保车辆行车安全,迅速通行,设计一个交通信号灯控制电路,要求如下:1、用两组红、绿、黄发光二极管作信号灯,分别指示主道和支道的通行状态。
2、通行状态自动交替转换,主道每次通行30秒,支道每次通行20秒,通行交替间隔时为5秒。
3、通行状态转换依照“主道优先”的原则,即:当主道通行30秒后,若支道无车则继续通行;当支道通行20秒后,只有当支道有车且主道无车时才允许继续通行。
(用按键模拟路口是否有车)4、设计计时显示电路,计时方式尽量采用倒计时。
二、总体方案设计以及系统原理框图2.1、设计思路本次设计采用模块划分的方法,每个模块完成一项功能,最后将各个模块连接起来,设计完成后,用Multisim进行仿真,仿真成功后,再去实验室焊接调试。
2.2、各模块相应的功能(1)车辆检测电路:用来显示主路支路车辆的四种情况。
交通灯控制器+数字电路课程设计报告
交通灯控制器+数字电路课程设计报告交通灯控制器是交通管理系统中的重要组成部分,其主要作用是控制道路上的交通信号灯。
随着数字电路技术的发展,交通灯控制器也逐渐向数字化、智能化方向发展。
本文将详细介绍一种基于数字电路的交通灯控制器设计,以及该设计方案的实现和效果。
一、设计方案1.硬件设计硬件设计方案主要包括数字电路的选择、交通灯的控制模块、传感器等。
本方案选用FPGA芯片作为控制芯片,该芯片具有先进的数字信号处理能力和可编程性,便于开发和定制。
交通灯的控制模块包括红灯、黄灯、绿灯三个信号灯的控制器,以及车辆、行人传感器等。
其中车辆传感器主要用来检测车流量,行人传感器主要用来检测行人通行情况。
2.软件设计软件设计方案主要包括程序的设计和调试,以及人机界面的设计和开发。
程序设计方案采用Verilog HDL语言进行实现,采用时序逻辑设计的思路来编写程序,实现红绿灯的控制和状态转移。
人机界面采用C语言进行编写,通过串口通信与控制芯片进行数据传输和控制。
二、实现过程在设计方案确定后,我们进一步开始实现。
首先是电路的焊接和测试,在确定电路正常无误后,再完成程序的编写和调试。
最后是人机接口的开发和完善。
具体实现流程如下:1.电路焊接首先进行电路布线和焊接,将FPGA芯片、光耦隔离器、电位器等元器件焊接到电路板上,以及信号灯、传感器等元器件的接入。
2.程序编写利用Verilog HDL语言编写程序,主要包括红绿灯状态的转移逻辑和相应的信号输出控制。
程序设计过程中,需要注意时序和状态的转移。
3.调试测试完成程序编写后,需要进行相应的调试测试。
通过仿真测试,检查程序逻辑是否正确,排除潜在问题。
在硬件实验平台上进行测试,确定系统能够正常工作。
4.人机界面开发利用C语言编写人机界面,实现与交通灯控制器的交互控制。
实现车辆、行人传感器的数据采集和显示,以及人手动控制交通灯的功能。
三、实现效果通过测试和实验验证,本文的交通灯控制器设计方案具有以下优势:1.使用FPGA芯片作为控制芯片,具有较强的可编程性和数字信号处理能力。
华中科技大学电子技术课程设计报告——交通灯控制器设计doc
LED灯:main_green,main_red,main_left
branch_left,branch_green,branch_red
四、系统仿真
1、各模块仿真波形
1)分频模块
2)时间设置模块
这里给s_set_button和l_set_button分别设置持续的脉冲信号,可以看到,当main_or_branch为低时为主干道时间置数,为高时支干道时间置数,当add_or_decent为低时加计数,为高时减计数,仿真结果符合预期效果。
而此程序设计刚好要求,主干道绿灯计时的置数,主干道左转计时的置数,支干道绿灯计时的置数,支干道左转计时的置数并行进行,所以选用always 语句很合适。
3)状态转换模块
本设计将交通灯的整个过程划分为四个基本状态:主干道绿灯、主干道左转、支干道绿灯、支干道左转,用state、s_or_l为00、01、10、11来代表。每当一个状态的计数器为00时,state、s_or_l发生改变,以实现状态间的转换。
branch_green,branch_red的不同值,来控制主干道,支干道红绿左转灯的亮灭。
其中 1表示亮,0表示灭。如表3-1 所示。
由上表可得到:
main_green=~state&~s_or_l&(~(flash&clk));
main_left=~state&s_or_l&(~(flash&clk));
2、状态转换图…………………………………...5
3、输入输出设计………………………………...6
四、系统仿真……………………………………………6
1、各模块仿真波形……………………………...6
(完整word版)交通灯控制器课程设计
河南科技学院新科学院电子课程设计报告题目:交通灯控制器设计专业班级:电气工程及其自动化094姓名:胡金友时间:2011.6.8 ~2011.6.18指导教师:孔晓红苗青林完成日期:2011年6月15日交通灯控制器设计任务书1设计目的与要求设计一个交通灯控制器,要认真并准确地理解有关要求,独立完成系统设计,在双干线的路口上,交通信号灯的变化按照下面假定进行计时:(1)放行线,绿灯亮放行25秒,黄灯亮警告5秒,然后红灯亮禁止。
(2)禁止线,红灯亮禁止30秒,然后绿灯亮放行。
使两条路线交替的成为放行线和禁止线,便可实现交通控制。
(3)特殊情况下能实现手动操作。
2.设计内容(1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)SCH文件生成与打印输出;(5)PCB文件生成与打印输出。
3.编写设计报告写出设计的全过程,附上有关资料和图纸,有总结体会。
4.答辩在规定时间内,完成叙述并回答问题。
目录1设计任务 (2)1.1交通灯控制器设计任务书 (2)1.2引言 (3)2设计方案 (3)2.1总体设计方案说明 (4)2.2模块结构与电路图 (5)3整体电路 (10)4设计总结 (11)5参考文献 (11)交通灯控制器设计摘要:为确保车辆安全,行人安全有序地通过城市交通叉路口,本设计介绍一种线路简单、成本低、体积小、可靠性高的全电子指挥信号灯控制器。
利用74LS190、74LS139、NE555等芯片简易的实现交通指挥信号灯的全自动化控制。
关键词:交通灯、计时器、控制器、秒脉冲1引言生活中跟大家关系最为密切的交通是道路,因为每个人都要走路,所以交通灯就尤其重要.交通灯是控制陆地交通的枢纽,如果没有交通灯的出现,那么现在社会人类恐怕连路都不好走了.特别是上下班高峰时候,交通就是非常拥挤,这个时候交通灯就起了关键作用.它起了分流交通作用,不会造成交通堵塞.它按照上下班高峰期、顺畅期等交通流量的不同而设置各车道的通行时间,那样以后车辆就会各就各位,不会有什么抢道和车辆碰撞啦,还有车与人争过街的事情发生啦,交通就会井然有序了,人们走路就安心多了,汽车就会更快的到达。
交通灯控制器课程设计
交通灯控制器 课程设计一、课程目标知识目标:1. 理解交通灯控制器的基本原理,掌握其电路组成及功能。
2. 学习并掌握交通灯控制器中的基础电子元件及其工作原理。
3. 了解交通灯控制器的实际应用,理解其在交通安全中的作用。
技能目标:1. 能够运用所学知识设计简单的交通灯控制器电路。
2. 学会使用相关工具和仪器进行电路搭建和调试。
3. 提高分析问题和解决问题的能力,通过实践操作培养动手能力。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发他们探索科学的精神。
2. 增强学生的团队合作意识,培养沟通与协作能力。
3. 培养学生的安全意识,让他们明白遵守交通规则的重要性。
课程性质:本课程为电子技术实践课程,结合理论教学,注重培养学生的动手实践能力和创新思维。
学生特点:考虑到学生所在年级,已有一定的基础知识,具备初步的分析和解决问题的能力,对电子技术有一定的好奇心。
教学要求:在教学过程中,注重理论与实践相结合,鼓励学生积极参与讨论和实践活动,培养他们的自主学习能力和创新意识。
通过课程学习,使学生能够达到上述设定的具体学习成果。
二、教学内容1. 交通灯控制器原理- 红绿灯工作原理及切换逻辑- 时序控制器的基本概念- 电路图解读及元件功能分析2. 基础电子元件- 电阻、电容、二极管、三极管等元件的特性与应用- 传感器及其在交通灯控制器中的作用3. 交通灯控制器电路设计- 电路图的绘制与解读- 元件的选型与连接- 电路搭建及调试方法4. 实践操作- 搭建简单交通灯控制器电路- 编写控制程序,实现交通灯自动切换- 故障排查与电路优化5. 交通灯控制器应用案例- 实际交通场景中的交通灯控制器应用- 交通安全与节能减排的意义教学内容安排与进度:第一课时:交通灯控制器原理,红绿灯工作原理及切换逻辑第二课时:基础电子元件,电路图解读及元件功能分析第三课时:交通灯控制器电路设计,电路图的绘制与解读第四课时:实践操作,搭建简单交通灯控制器电路第五课时:编写控制程序,实现交通灯自动切换,故障排查与电路优化第六课时:交通灯控制器应用案例,讨论交通安全与节能减排的意义教材章节关联:本教学内容与教材中关于数字电路、电子元件、电路设计等相关章节紧密关联,通过本课程的学习,使学生能够将理论知识与实践相结合,提高综合运用能力。
电子科技大学_交通灯课程设计报告.doc
电子科技大学_交通灯课程设计报告。
数字逻辑课程设计报告姓氏:学校编号:课程编号:首先,设计课题交通灯控制器2.设计要求1。
东西向为主要道路,南北向为次要道路;2.主路经过40秒后,如果副路上没有车,主路仍然会通过,否则会切换;4.倒车时应有4秒的黄灯周期;5.南北之间的时差是20秒,时间会改变。
如果不是,但没有汽车在南北方向,时间也会改变。
6.附加:使用数码管显示时间。
3.设计流程1。
交通信号灯总体设计方案整个交通信号灯电路可以用主控电路控制交通信号灯电路的点亮顺序,用计数器控制点亮时间,输入信号给解码器,让数码管显示时间,用函数发生器产生频率为1Hz的矩形波信号给计数器计数。
框图如下:显示主道路信号灯计数器主控制电路信号灯副主道路单元脉冲信号灯交叉口车辆操作只有4种可能性(当副主道路上有车辆时):(1)主干道在起点通过,支路不通过。
在这种情况下,主绿灯和分支红灯将亮40秒。
(2)2)40秒后,主干道停止,支路仍然关闭。
在这种情况下,主黄灯和分支红灯亮4秒钟。
(3)4秒后,主干道不通过,支路通过。
在这种情况下,主红灯和分支绿灯将点亮20秒。
(4)4)20秒后,主道路仍然无法通行,分支道路停止。
在这种情况下,主红灯和分支黄灯亮4秒钟。
4秒后,它返回到第一种情况,并重复该循环。
因此,要求主控制电路也有4种状态,设置如下:S0、S1、S2、S3。
那就是:主干道绿灯亮,辅道计数器上的红灯在40秒后从0增加到40 (S0),无车辅道上的黄灯亮,辅道计数器上的红灯在40秒后从0增加到5 (S1),辅道上的车流量小于20s,辅道上的车流量为20S。
二级路上的红灯亮,二级路上的黄灯计数器从0增加到4 (S3),一级路上的红灯亮,二级路上的绿灯计数器从0增加到20 (S2)。
状态转换图如下:无车20秒、20秒、340秒的辅助干道20秒、40秒、20秒、40秒后的状态转换图的四种状态可以由四元异步清零计数器(74LS160)控制,并作为控制照明顺序的主控制部分。
电子技术课程设计交通灯
电子技术课程设计交通灯课程设计题目:交通灯控制系统设计要求:1. 设计一个简单的交通灯控制系统,模拟交通路口的红绿灯控制。
2. 系统包含三个灯,红灯、黄灯和绿灯。
交通灯的状态需要按照指定的时间间隔切换。
3. 设计一个控制器,用于控制交通灯的状态变化。
控制器可以接收外部信号来启动或停止交通灯系统。
4. 控制器需要在交通灯状态变化时发出适当的信号指示当前灯的状态。
15. 可选:设计一个按键控制系统,使用按钮来手动控制交通灯的状态变化。
设计步骤:1. 系统硬件设计:- 使用Arduino或其他单片机作为控制器。
- 连接三个LED灯(红灯、黄灯和绿灯)到控制器的GPIO口。
- 连接按钮(可选)到控制器的GPIO口。
2. 系统软件设计:- 编写控制器程序,实现交通灯的状态变化逻辑。
- 程序中需要定义交通灯的不同状态,以及对应的时间间隔。
2- 程序中需要定义外部信号的处理逻辑,以接收启动或停止交通灯系统的指令。
- 程序中需要定义按钮的处理逻辑,以接收手动控制信号并改变交通灯的状态。
3. 软硬件集成测试:- 将控制器与硬件连接,并将程序烧录至控制器。
- 测试控制器的运行状况,通过发送外部信号或按下按钮来触发交通灯的状态变化。
- 观察交通灯的状态变化是否符合设计要求,并检查控制器程序的正常工作。
4. 性能测试和优化:- 对交通灯控制系统进行性能测试,包括对交通灯状态变化的准确性、时间间隔的稳定性等方面的测试。
3- 根据性能测试结果进行必要的优化,以提高交通灯系统的性能和可靠性。
注意事项:1. 在设计过程中,需要考虑交通灯状态变化的合理性和可靠性。
可以参考交通灯的实际工作原理和规范,确保交通灯状态变化的顺序和时间间隔符合交通规则。
2. 在连接电路时,注意安全性和稳定性,避免电路短路或其他意外情况的发生。
3. 在编写控制器程序时,注意代码的可读性和可维护性,添加必要的注释和错误处理机制,以及对外部信号的响应机制。
交通灯控制器的设计与实现Word
交通灯控制器的设计与实现一、实验目的1.了解交通灯管理的基本工作原理。
2.熟悉8253计数器/定时器、8259A中断控制器和8255A并行接口的工作方式及应用编程。
3.掌握多位LED显示的方法。
二、实验内容与要求设计一个用于十字路口的交通灯控制器。
1.基本要求:1)东西和南北方向各有一组红,黄,绿灯用于指挥交通,红,黄,绿的持续时间分别为25s,5s,20s。
2)当有紧急情况(如消防车)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复原来状态,正常工作。
3)一组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。
2.提高部分:1) 实时修改交通灯的持续时间。
2) 根据不同时段对主要交通方向的信号进行调整。
3) 可以使用LCD显示提示信息。
三、实验报告要求1.设计目的和内容2.总体设计3.硬件设计:原理图(接线图)及简要说明4.软件设计框图及程序清单5.设计结果和体会(包括遇到的问题及解决的方法)四、总体设计交通灯的工作过程如下:设十字路口的1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。
之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车,2个路口的LED数码管开始倒计时25秒。
延迟20秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。
闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车,2个路口的LED数码管重新开始倒计时25秒。
延迟20秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,再切换到1、3路口方向。
之后,重复上述过程。
当有紧急情况时,2个方向都红灯亮,倒计时停止,车辆禁止通行,当紧急情况结束后,控制器恢复以前的状态继续工作。
在设计中采用6个发光二极管来模拟2个路口的黄红绿灯,每个路口用2个数码管来显示通行或禁止剩余的时间。
紧急情况用一个单脉冲发生单元申请中断来模拟,紧急情况结束后,再发一个中断来恢复以前的状态。
电子技术课程设计报告交通灯
电子技术课程设计报告交通灯This model paper was revised by LINDA on December 15, 2012.武汉工程大学电气信息学院电子技术课程设计报告设计名称:交通灯设计题目:交通灯学生学号:专业班级:电气类13班学生姓名:孔庆尧学生成绩:指导教师:戴璐平课题工作时间:至目录摘要 (II)Abstract (II)第一章课题背景(或绪论、概述) (1)设计背景 (1)设计目的 (1)设计意义 (2)本章小结 (2)第二章设计简介及设计方案论述 (3)介 (3)设计方案论述 (4)本章小结 (5)第三章详细设计 (6)秒脉冲发射器电路 (6)定时器电路 (7)控制器电路 (9)译码显示电路 (9)本章小结 (11)第四章设计结果及分析 (12)总体设计结果 (12)总体设计分析 (14)验 (15)本章小结 (15)第五章电路仿真 (16)总结 (18)致谢 (20)参考文献 (21)附录主要芯片使用 (22)摘要交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。
通过采用数字电路对交通灯控制电路的设计,提出使交通灯控制电路用数字信号自动控制十字路口四组红、黄、绿交通灯的状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。
因此,在本次课程设计里,将以传统的设计方法为基础,同时引入了电子设计自动化技术,将模拟信号转化为数字信号,利用了数字逻辑这一强大工具,同时还运用了Multisim软件来设计了可控制的交通信号灯。
关键词:交通灯,设计,电路仿真AbstractThe emergence of traffic lights so that traffic can be effective control, for ease traffic flow, improve the road capacity, the effect of significantly reducing traffic accidents. Through the use of digital circuitry on the traffic lights control circuit design, to enable the traffic lights control circuit at a crossroads with two sets of automatic control of digital signal red, yellow and green traffic lights approach the status of the conversion, command a variety of vehicles and pedestrians safe passage to achieve automated traffic management at the crossroads. Therefore, in the course design, the traditional design methods will be based at the same time the introduction of electronic design automation technology, the analog signal into a digitalsignal, use this powerful tool for digital logic, At the same time also used the Multisim software and some digital logic devices, to design that can be controlled by traffic lights. Keywords:Traffic lights, design, circuit simulation第一章课题背景设计背景交通灯的使用背景随着中国加入WTO,我们不但要在经济、文化、科技等各方面与国际接轨,在交通控制方面也应与国际接轨。
交通灯控制器设计实验报告
交通灯控制器设计实验报告设计性实验项目名称交通灯控制器设计实验项目学时:3学时实验要求:■必修□选修一、实验目的1、学习与日常生活相关且较复杂数字系统设计;2、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法;3、学习二进制码到BCD码的转换;4、学习有限状态机的设计应用。
二、实验原理交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。
要完成本实验,首先必须了解交通路灯的燃灭规律。
本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。
依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。
其交通灯的燃灭规律为:初始态是两个路口的红灯全亮之后,主干道的绿灯亮,乡间道路的红灯亮,主干道方向通车,延时一段时间后,乡间公路来车,主干道绿灯灭,黄灯开始闪烁。
闪烁若干次后,主干道红灯亮,而同时乡间公路的绿灯亮,延时一段时间后,乡间公路的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到主干道方向,重复上述过程。
三、设计要求完成设计、仿真、调试、下载、硬件测试等环节,在型EDA实验装置上实现一个由一条主干道和一条乡间公路的汇合点形成的十字交叉路口的交通灯控制器功能,具体要求如下:1、有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;2、交通灯由绿转红前有4秒亮黄灯的间隔时间,由红转绿没有间隔时间;3、乡间公路右侧各埋有一个串连传感器,当有车辆准备通过乡间公路时,发出请求信号S=1,其余时间S=0;4、平时系统停留在主干道通行(MGCR)状态,一旦S信号有效,经主道黄灯4秒(MYCR)状态后转入乡间公路通行(MRCG)状态,但要保证主干道通行大于一分钟后才能转换;5、一旦S信号消失,系统脱离MRCG状态,即经乡道黄灯4秒(MRCY)状态进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于20秒钟;6、控制对象除红绿灯之外,还包括分别在主干道和乡间公路各有一个两位十进制倒计时数码管显示。
电子技术课程设计——交通灯
电子技术课程设计——交通灯
交通灯是城市道路上常见的交通设施,用于控制车辆和行人的通行。
电子技术课程设计可以包括如下内容:
1. 系统概述:介绍交通灯的作用和电子技术课程设计的目标;
2. 硬件设计:设计交通灯硬件电路,包括信号灯的LED显示
模块、按键输入模块、倒计时显示模块等;
3. 控制器设计:选择适当的单片机或开发板,并编写控制程序,实现交通灯的控制逻辑,包括不同方向灯的亮灭时序调度,倒计时功能等;
4. 软件设计:设计用户界面程序,实现按键输入的信号检测和指令发送,以及LED显示模块的控制;
5. 系统调试:对整个系统进行综合测试和调试,验证交通灯的功能和性能;
6. 课程设计报告:撰写课程设计报告,详细记录设计过程、实现结果和问题分析,总结课程设计的经验和教训。
此外,还可以考虑一些拓展的功能,例如:
- 添加红外传感器,实现车辆的自动检测和优化信号控制;
- 添加摄像头,实现交通流量检测和统计,优化信号调度;
- 添加无线通信模块,实现交通灯的远程监控和控制。
电子技术课程设计报告 交通灯
武汉工程大学电气信息学院电子技术课程设计报告设计名称:交通灯设计题目:交通灯学生学号:专业班级:电气类13班学生姓名:孔庆尧学生成绩:指导教师:戴璐平课题工作时间:至目录摘要 (II)Abstract (II)第一章课题背景(或绪论、概述) (1)1.1 设计背景 (1)1.2 设计目的 (1)1.3 设计意义 (2)1.4 本章小结 (2)第二章设计简介及设计方案论述 (3)2.1 设计简介 (3)2.2 设计方案论述 (4)2.3 本章小结 (5)第三章详细设计 (6)3.1秒脉冲发射器电路 (6)3.2定时器电路 (7)3.3控制器电路 (9)3.4译码显示电路 (9)3.5本章小结 (11)第四章设计结果及分析 (12)4.1 总体设计结果 (12)4.2 总体设计分析 (1)44.3 电路检验 (15)4.4 本章小结 (15)第五章电路仿真 (16)总结 (18)致谢 (20)参考文献 (21)附录主要芯片使用 (22)摘要交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。
通过采用数字电路对交通灯控制电路的设计,提出使交通灯控制电路用数字信号自动控制十字路口四组红、黄、绿交通灯的状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。
因此,在本次课程设计里,将以传统的设计方法为基础,同时引入了电子设计自动化技术,将模拟信号转化为数字信号,利用了数字逻辑这一强大工具,同时还运用了Multisim软件来设计了可控制的交通信号灯。
关键词:交通灯,设计,电路仿真AbstractThe emergence of traffic lights so that traffic can be effective control, for ease traffic flow, improve the road capacity, the effect of significantly reducing traffic accidents. Through the use of digital circuitry on the traffic lights control circuit design, to enable the traffic lights control circuit at a crossroads with two sets of automatic control of digital signal red, yellow and green traffic lights approach the status of the conversion, command a variety of vehicles and pedestrians safe passage to achieve automated traffic management at the crossroads. Therefore, in the course design, the traditional design methods will be based at the same time the introduction of electronic design automation technology, the analog signal into a digital signal, use this powerful tool for digital logic, At the same time also used the Multisim software and some digital logic devices, to design that can be controlled by traffic lights.Keywords:Traffic lights, design, circuit simulation第一章课题背景1.1 设计背景1.1.1交通灯的使用背景随着中国加入WTO,我们不但要在经济、文化、科技等各方面与国际接轨,在交通控制方面也应与国际接轨。
交通灯控制器的课程设计10页word
课程设计课题:交通灯控制器的设计一、设计目的:学习QuartusII的使用方法,熟悉可编程逻辑器件的使用。
通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。
在现代化的大城市中, 十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理, 本系统就是基于此目的而开发的。
二、设计任务:1.满足如下时序要求:南北方向红灯亮时,东西方向绿灯亮,反之亦然。
2.每一方向的红(绿)黄灯共维持30秒。
3.当某一方向绿灯亮时,置显示器为30秒,然后以每秒减1计数方式工作,直至减到数为3秒时,红绿灯熄灭,黄灯开始间隙闪耀3秒,减到为0,红绿灯交换,一次工作循环结束,进入下一步另一方向的工作循环。
4.红绿黄灯均采用发光二极管。
5.设计由晶振电路产生1Hz标准秒信号的单元电路。
6.要求对整体电路进行仿真,观察并记录下仿真波形。
三、设计原理:●交通灯有四个状态:G1 Y1 R1 G2 Y2 R2S1. 亮灭灭灭灭亮S2. 灭闪灭灭灭亮S3. 灭灭亮亮灭灭S4. 灭灭亮灭闪灭然后重复状态S1.●分频器分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。
该分频器将时钟信号分频成1HZ和4HZ的时钟信号。
●控制器控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。
此外,当检测到为夜间模式时,手动控制点亮黄灯的二极管。
●计数器这里需要的计数器的计数范围为30-0。
计到0后,下一个时钟沿回复到30,开始下一轮计数。
此外,当检测到夜间模式时,计数器暂停计数,而系统复位信号使计数器异步清零。
四、电路设计1、分频单元电路设计2、30减计数单元电路设计3、红黄绿灯控制单元电路设计4、译码显示单元电路设计设计流程五、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jiaotong isport(clk,clr:in std_logic;clk1,clk2,clk3:buffer std_logic; ---分频信号pout:out std_logic_vector(6 downto 1);---东西南北的红绿黄灯状态表示C1:out std_logic_vector(3 downto 0);---BCD码高四位表示C0:out std_logic_vector(3 downto 0));---BCD码低四位表示end jiaotong;architecture one of jiaotong issignal g1,y1,r1,g2,y2,r2:STD_LOGIC;---1表示东西方向,2表示南北方向,g,y,r分别表示绿灯,黄灯,红灯signal div:integer range 0 to 20190000; ---分频1signal divn:integer range 0 to 4000000; ---分频2,用于控制黄灯闪烁type st is(s1,s2,s3,s4);---分别表示红绿黄灯的四种组合状态signal state:st;beginC:process(clk)beginif clk'event and clk='1' then---对20HZ进行分频,1HZif(div<20201999)thendiv<=div+1;clk1<='0';else div<=0; clk1<='1';end if;if(divn<2499999)then ---用于黄灯闪烁divn<=divn+1;clk2<='0';else divn<=0; clk2<='1';end if;end if;end process;process (clk1) isvariable t:integer :=31; ---初始赋值beginif clr='1' then ---夜间时为黄灯闪烁,且为手动控制 pout(6)<='0'; pout(5)<=clk2 and '1'; pout(4)<='0';pout(3)<='0'; pout(2)<=clk2 and '1'; pout(1)<='0';else if(clk1'event and clk1='1') thent:=t-1;case state is ---四种组合状态转换when s1 =>G1<='1'; Y1<='0'; R1<='0'; G2<='0';Y2<='0';R2<='1'; if(t=3) then state<=s2;else state<=s1;end if;when s2 =>G1<='0';Y1<='1';R1<='0';G2<='0';Y2<='0';R2<='1';if(t=0) then state<=s3;t:=30;else state<=s2;end if;when s3 =>G1<='0';Y1<='0';R1<='1';G2<='1';Y2<='0'; R2<='0';if(t=3) then state<=s4;else state<=s3;end if;when s4 =>G1<='0';Y1<='0';R1<='1';G2<='0';Y2<='1';R2<='0';if(t=0) then state<=s1;t:=30;else state<=s4;end if;when others =>NULL;end case;case t is ---十进制数与BCD码一一对应赋值,输出时便于七段显示译码器显示when 0 => C1<="0000";C0<="0000";when 1 => C1<="0000";C0<="0001";when 2 => C1<="0000";C0<="0010";when 3 => C1<="0000";C0<="0011";when 4 => C1<="0000";C0<="0100";when 5 => C1<="0000";C0<="0101";when 6 => C1<="0000";C0<="0110";when 8 => C1<="0000";C0<="1000"; when 9 => C1<="0000";C0<="1001"; when 10=> C1<="0001";C0<="0000"; when 11=> C1<="0001";C0<="0001"; when 12=> C1<="0001";C0<="0010"; when 13=> C1<="0001";C0<="0011"; when 14=> C1<="0001";C0<="0100"; when 15=> C1<="0001";C0<="0101"; when 16 =>C1<="0001";C0<="0110"; when 17 =>C1<="0001";C0<="0111"; when 18 =>C1<="0001";C0<="1000"; when 19 =>C1<="0001";C0<="1001"; when 20 =>C1<="0010";C0<="0000"; when 21 =>C1<="0010";C0<="0001"; when 22 =>C1<="0010";C0<="0010"; when 23 =>C1<="0010";C0<="0011"; when 24 =>C1<="0010";C0<="0100"; when 25 =>C1<="0010";C0<="0101"; when 26 =>C1<="0010";C0<="0110"; when 27 =>C1<="0010";C0<="0111"; when 28 =>C1<="0010";C0<="1000";when 30 =>C1<="0011";C0<="0000";when others =>NULL;end case;end if;pout(6)<=G1; pout(5)<=clk2 and Y1;pout(4)<=R1; ---东西南北六盏灯对应pout(3)<=G2; pout(2)<=clk2 and Y2;pout(1)<=R2;end if;end process ;end one;六、测试方法与测试结果1、测试仪器:QUARTUSⅡ2、测试方法:FPGA下载验证与仿真验证3、测试结果:满足设计要求以20HZ为基准仿真:仿真结果:C1:显示30减计数的个位C0:显示30减计数的十位POUT(6):东西方向绿灯控制端POUT(5):东西方向黄灯控制端POUT(4):东西方向红灯控制端POUT(3):南北方向绿灯控制端POUT(2):南北方向黄灯控制端POUT(1):南北方向红灯控制端●白天●夜间黄灯闪烁(手动控制)●设计满足了1.30秒倒数显示2.两个方向灯的交替3.黄灯在最后3秒闪烁七、讨论该电路基本上满足了设计要求,电路简单,实现容易,节省器件。
电子技术课程设计 交通灯控制器
电子技术课程设计――交通灯控制器学院:专业、班级:姓名:学号:指导教师:目录一.设计任务与要求―――――――――――――――(3) 二.总体框图――――――――――――――――――(4) 三.选择器件――――――――――――――――――(5) 四.功能模块――――――――――――――――――(9) 五.总体设计电路――――――――――――――――(12) 六.心得体会――――――――――――――――――(13)交通灯控制器在一个交通繁忙的十字路口,没有交通灯来控制来往车辆和行人的通行,假设也没有交警,那会发生什么事情呢?后果是难以想象的,可能会陷入一片混乱,甚至瘫痪。
当然我们每个人都不希望这样。
我们作为社会的一员,每人都有责任为它的更加先进和快捷做出力所能及的事情。
我们设计了这个交通灯信号控制系统通过本课程设计,使我们加强对电子技术课程内容的理解和掌握,学会使用数字电子技术设计和制做自动控制装置的方法,掌握电子电路的基本分析方法和设计方法,进一步提高分析解决实际问题的综合能力,也为将来的就业或继续深造做好准备。
一.设计任务与要求1.设计任务与要求设计一个十字路口的交通信号灯控制器,控制A、B两条交叉道上的车辆通行,具体要求如下:(1)每条道路设一组信号灯控制器,每组信号灯由红、黄、绿3个灯组成,绿灯表示允许通行,黄灯表示该车道上已过停车线的车辆继续通行,未过停车线的车辆停止通行。
(2)每条道路上每次通行的时间为25s。
(3)每次变换通行车道之前,要求黄灯先亮5 s,才能变换通行车道。
2.设计目的(1)了解并掌握电路的一般设计方法,具备初步的独立设计能力。
(2)进一步熟悉常用电子器件的类型和特性,并掌握合理选用的原则。
(3)提高综合运用所学的理论知识。
独立分析和解决问题的能力。
(4)进一步熟悉电子仪器的正确使用方法。
(5)初步掌握对电子线路安装与调试使用方法。
二.总体框图有一个A车道和B车道的交叉路口如图1所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-2014学年度第二学期电子技术基础课程设计--交通灯控制器设计院系:自动化学院专业:班级:姓名:学号:指导教师:目录一、课程设计名称 (3)二、课程设计要求 (3)三、系统设计 (3)1、系统框图与说明 (3)2、状态转换图 (5)3、输入输出设计 (6)四、系统仿真 (6)1、各模块仿真波形 (6)2、实测 (8)五、实验总结 (8)1、心得体会 (8)2、待改进的问题 (10)3、功能扩展 (10)附录 (11)一、课程设计名称交通灯控制器的设计二、设计内容及要求1、设计一个十字路口交通信号灯的控制电路。
要求红、绿灯按一定的规律亮和灭,并在亮灯期间进行倒计时,且将运行时间用数码管显示出来。
2、绿灯亮时,为该车道允许通行信号,红灯亮时,为该车道禁止通行信号。
要求主干道每次通行时间为Tx 秒,支干道每次通行时间为Ty 秒。
每次变换运行车道前绿灯闪烁,持续时间为5秒。
即车道要由X 转换为Y 时,X 在通行时间只剩下5秒钟时,绿灯闪烁显示,Y 仍为红灯。
3、可以对X,Y 车道上交通灯运行的时间进行重新设置,20≦Tx≦99,10≦Ty≦394、对器件进行在系统编程和实验验证。
5、写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。
三、系统设计1、系统框图与说明系统时钟分频模块置数模块时间计算状态转换译码模块数码管显示由上图,我们可以清楚地将系统分为六个模块:分频模块,时间设置模块,状态转换模块,时间计算模块,数码管译码模块,LED显示模块。
下面设计者将对每个模块进行详细的说明。
1)分频模块分频模块其作用为:由于DE2板上能够提供的时钟信号为50MHz,而设计所需时钟信号为1Hz,故使用分频模块将50MHz信号分频为1Hz信号。
2)时间设置模块由于系统设计要求可以对主干道,支干道上左转、绿灯运行的时间进行重新设置调整,所以要对系统进行参数化设计。
首先引入一组参数,main_gh,main_gl,main_lh,main_ll,branch_gh,branch_gl,branch_lh,branch_ll(下划线后面的字母分别取green,left,high,low首字母).需要置数时,首先选择对主干道还是支干道时间置数,这里设置一个main_or_branch参数,当main_or_branch为高时设置支干道时间,为低时设置主干道时间。
置数时,通过s_set_button,l_set_button对时间进行设置,具体方法参见代码。
为了置数方便,引入一个add_or_decent参数,低电平时按下button可以增计数,高电平时按下可以减计数。
而在程序设计上,可以运用always语句进行设计,来判断置数键的变化。
因为在Verilog HDL语言中always块中begin end在概念上顺序执行,实质上是并行的,因为每条语句的执行不占用具体时间,所有语句都是在一瞬间执行的,没有时间的先后,但有先后执行之分。
仿真时是逐条执行的。
但要弄清楚阻塞赋值和非阻塞赋值的区别。
如果全部都是非阻塞的赋值的话,才相当于并行的。
而此程序设计刚好要求,主干道绿灯计时的置数,主干道左转计时的置数,支干道绿灯计时的置数,支干道左转计时的置数并行进行,所以选用always语句很合适。
3)状态转换模块本设计将交通灯的整个过程划分为四个基本状态:主干道绿灯、主干道左转、支干道绿灯、支干道左转,用state、s_or_l为00、01、10、11来代表。
每当一个状态的计数器为00时,state、s_or_l发生改变,以实现状态间的转换。
4)时间计算模块由于本设计中加入了左转的时间,因此红灯时间不仅仅是另一干道的直行时间,而是直行时间和左转时间之和,由于在状态转换模块中需要用到大量的时间判断,因此将此模块单独划分。
5)数码管译码模块由于DE2板上无数码管译码电路,所以需要将4位的数码管控制信号译成7位控制信号。
6)LED显示模块由输入信号state、s_or_l、flash,分别取000,001,010,011,100,101,110,111所得到的main_green,main_left,main_red,branch_left,branch_green,branch_red的不同值,来控制主干道,支干道红绿左转灯的亮灭。
其中1表示亮,0表示灭。
如表3-1所示。
由上表可得到:main_green=~state&~s_or_l&(~(flash&clk));main_left=~state&s_or_l&(~(flash&clk));main_red=state;branch_green=state&~s_or_l&(~(flash&clk));branch_left=state&s_or_l&(~(flash&clk));branch_red=~state;2、状态转换图S0状态:主干道绿灯、支干道红灯S1状态:主干道左转、支干道红灯S2状态:支干道绿灯、主干道红灯S3状态:支干道左转、主干道红灯3、输入输出设计本设计硬件基于DE0板,具体输入输出如下:1)输入:开关:main_or_branch,EN,run_or_set,add_or_decent按键:s_set_button,l_set_button时钟:clk2)输出:数码管:OUT1L,OUT1H,OUT2L,OUT2HLED灯:main_green,main_red,main_leftbranch_left,branch_green,branch_red四、系统仿真1、各模块仿真波形1)分频模块2)时间设置模块这里给s_set_button和l_set_button分别设置持续的脉冲信号,可以看到,当main_or_branch为低时为主干道时间置数,为高时支干道时间置数,当add_or_decent为低时加计数,为高时减计数,仿真结果符合预期效果。
3)状态转换模块首先仿真EN为高时的运行状态,给主干道直行左转分别赋值25,15,支干道直行左转分别赋值15,10,主干道红灯时间26,支干道红灯时间41,从输出的state和s_or_l可以清楚的看出状态转换和时间的关系,flash的仿真结果也符合预期。
该图为run_or_set为低时的仿真图,可以看到,就算EN为高,此时数码管显示的也是赋值在counter_play3和counter_play4上的值,即置数值,符合仿真预期。
4)时间计算模块给输入的两个变量分别置数12,34,得到输出47,红灯时间应该等于直行加左转时间再加1,符合预期。
5)LED显示模块该模块即为状态转换仿真,将state,s_or_l,flash赋予相应的波形,可以看出,当state为00时,主干道直行灯亮,支干道红灯亮;01时,主干道左转灯亮,支干道红灯亮;10时,主干道红灯亮,支干道直行灯亮;11时,主干道红灯亮,支干道左转灯亮。
并且flash为高时LED灯出现闪烁,符合仿真结果。
2、实测已经现场验收通过。
五、实验总结1、心得体会看着手边不断变换的交通信号灯以及倒计时显示的数码管,回顾这5周以来为课设所做的所有努力,感慨良多。
只有亲身去努力尝试,才回收获真正的知识和能力。
为了找到切合实际的解决方案,我采用实地调查和网络搜集;为了寻找可能存在的BUG,我反复测试下载后的DE0板子,尽量穷尽各种可能出现的特殊情况,发现问题及时修改。
值得欣慰的是,所有的努力没有白费,到目前为止所做出的成果还是比较令我满意的。
在这里,要感谢龚军老师的教诲,感谢学校开设这门课程设计,给我们了一次充分锻炼,将理论知识付诸实践的机会。
书上的知识再多,都是死的,即使你完全记住,也无法在实际使用中游刃有余地去利用它们,不能让知识为我所用。
同时,在解决问题的时候,会发现自己依旧欠缺的知识,需要我们耐心地去查阅资料,不断补充新的领域的知识。
这样的一种锻炼,可以帮助我们形成一种习惯,在今后工作学习中,自然地去运用相同的方法解决不同的问题。
很多同学说,本科期间做项目找实习的机会太少,其实他们忽略了像课程设计这样的宝贵机会。
大学三年,我们学习了很多工程技术的知识,但却经常性的忽视在这些课程中的课程设计这个关键环节,认为它们只不过是走过场,抄抄代码,写写报告就够了。
其实不然,课程设计本身就是一次做项目的经历,它要求你严格按照项目规程操作,在时间和进度上,都要有项目意识。
虽然我学习过信息系统等软件开发的流程和方法,但是与实际运用严重脱节,没有那种清晰而强烈的工程思想,而是沿用做一步看一步的原始想法。
这次课程设计虽然系统架构不是很复杂,但还是需要一定的规划和思考才能做得快做得好,我们班拿到题目之后,只有很少部分人做了详细的开题报告,事实证明他们确实完成的质量也很高,所以说不能眼高手低,到最后却碌碌无为。
在调试的过程中,我也遇到了很多问题,比如计数器工作不正常,LED灯非正常闪烁,也废了很大的功夫才把BUG解决。
这里我要感谢班上和我做一个题目的同学们,在我绞尽脑汁无法找出BUG的时候,是他们帮助我解决了问题。
这个事情也充分说明了团队合作的重要性,每个人的想法都是极其宝贵的,汲取他人之所长会对自己的工作产生事倍功半的效果。
但是借鉴要有限度,要讲究方式方法。
很多同学容易走两个极端,一种是埋头编程,中途遇到很多困难其实前人也都遇到并且很好地解决了,但是他们还要继续重复地探寻解决途径;另一种是照单全收,完全不明白作者的用意和初衷,只知道看结果对就拿来用,没弄明白其所以然,显然是荒废了学习的机会。
课程设计给了我们把知识转化为能力的机会,这次电子技术课程设计更是让我受益良多,相信在我以后的求学过程中,这次课设给我带来的收获一定会指引我前进。
2、待改进的问题由于技术手段有限,未能加入人行道红绿灯提醒功能。
并且由于对题目理解不是很深刻,在红绿灯时间计算的时候出了一些问题,这些都是以后学弟学妹们做课设时候需要注意的。
3、功能扩展加入了左转功能,更加符合实际十字路口的情况,如果是DE2板,还可以用LCD屏显示状态,但遗憾未能实现。
附录:源代码module jiaotongdeng(clk,main_or_branch,EN,run_or_set,add_or_decent,s_set_button,l_set_button,main_green,main_red,branch_green,branch_red, main_left,branch_left,OUT1L,OUT1H,OUT2L,OUT2H);input clk,main_or_branch,EN,run_or_set,add_or_decent;input s_set_button,l_set_button;outputmain_green,main_red,main_left,branch_left,branch_green,branch_red; output[7:0]OUT1L,OUT1H,OUT2L,OUT2H;wire clk1;wire flash,state,s_or_l;wire[3:0]counter_play1h,counter_play1l;wire[3:0]counter_play2h,counter_play2l;wire[7:0]counter_play3,counter_play4;wire[3:0]branch_rl,branch_rh,main_rh,main_rl;wire[3:0]main_gh,main_gl,main_lh,main_ll,branch_gh,branch_gl,branch_lh,branch_ ll;fenpin f1(clk,clk1);//调用分频模块获得1hz脉冲Rtime f2(main_rh,main_rl,branch_gh,branch_gl,branch_lh,branch_ll);//计算主干道红灯时间Rtime f3(branch_rh,branch_rl,main_gh,main_gl,main_lh,main_ll);//计算支干道红灯时间state_transformer f4(clk1,EN,flash,state,s_or_l,run_or_set,main_gh,main_gl,main_lh,main_ll,branch_gh,branch_gl,branch_lh,bra nch_ll,main_rh,main_rl,branch_rh,branch_rl,counter_play3,counter_play4,counter_play1h,counter_play1l,counter_play2h,counter_play2l);//调用状态转换模块timeset f5(clk,main_or_branch,add_or_decent,s_set_button,l_set_button,main_gh,main_gl,main_lh,main_ll,branch_gh,branch_gl,branch_lh,branch_ ll,counter_play3,counter_play4);//调用时间设置模块LED_displayf6(clk1,flash,state,s_or_l,main_green,main_left,main_red,branch_green, branch_left,branch_red);//调用LED显示模块yima f7(counter_play1h,counter_play1l,OUT1H,OUT1L);//译码显示时间至数码管yima f8(counter_play2h,counter_play2l,OUT2H,OUT2L);endmodulemodule fenpin(clk,clk1);input clk;output clk1;reg clk1;reg[24:0]counter;//定义计数器initialbeginclk1=0;counter=0;endalways@(posedge clk)beginif(counter==25'd2*******)//每25m个时钟周期clk1反向,同时计数器清零beginclk1<=~clk1;counter<=0;endelsecounter<=counter+1'b1;end//end alwaysendmodulemodule yima(Inh,Inl,Out_H,Out_L);input[3:0]Inh,Inl;output[7:0]Out_H,Out_L;reg[7:0]Out_H,Out_L;always@(Inh)begincase(Inh)0:Out_H=8'b11000000;//共阴极数码管译码1:Out_H=8'b11111001;2:Out_H=8'b10100100;3:Out_H=8'b10110000;4:Out_H=8'b10011001;5:Out_H=8'b10010010;6:Out_H=8'b10000010;7:Out_H=8'b11111000;8:Out_H=8'b10000000;9:Out_H=8'b10010000;default Out_H=8'bxxxxxxxx;endcaseendalways@(Inl)begincase(Inl)0:Out_L=8'b11000000;1:Out_L=8'b11111001;2:Out_L=8'b10100100;3:Out_L=8'b10110000;4:Out_L=8'b10011001;5:Out_L=8'b10010010;6:Out_L=8'b10000010;7:Out_L=8'b11111000;8:Out_L=8'b10000000;9:Out_L=8'b10010000;default Out_L=8'bxxxxxxxx;endcaseendendmodulemodule timeset(clk,main_or_branch,add_or_decent,s_set_button,l_set_button,main_gh,main_gl,main_lh,main_ll,branch_gh,b ranch_gl,branch_lh,branch_ll,counter_play3,counter_play4);input s_set_button;input l_set_button;input clk;input main_or_branch;//用来控制counter_play3,counter_play4显示主干道还是支干道设置的时间,0主1支input add_or_decent;//用于控制按钮增减置数值,为0加,为1减output[7:0]counter_play3,counter_play4;//分别显示绿灯、左转设置时间output[3:0]main_gh,main_gl,main_lh,main_ll;output[3:0]branch_gh,branch_gl,branch_lh,branch_ll;reg[7:0]counter_play3,counter_play4;reg[3:0]main_gh,main_gl,main_lh,main_ll;reg[3:0]branch_gh,branch_gl,branch_lh,branch_ll;always@(posedge s_set_button)//直行时间设置if(add_or_decent==0)//增加时间beginif(main_or_branch==0)//设置主干道beginbeginif(main_gl==9)beginmain_gl<=0;if(main_gh==9)main_gh<=0;else main_gh<=main_gh+1;endelse main_gl<=main_gl+1;endendelse//设置支干道beginif(branch_gl==9)beginbranch_gl<=0;if(branch_gh==9)branch_gh<=0;else branch_gh<=branch_gh+1;endelse branch_gl<=branch_gl+1;endend//end add setelse//减少时间beginif(main_or_branch==0)beginif(main_gl==0)beginmain_gl<=9;if(main_gh==0)main_gh<=9;else main_gh<=main_gh-1;endelse main_gl<=main_gl-1;endendelse//设置支干道beginif(branch_gl==0)beginbranch_gl<=9;if(branch_gh==0)branch_gh<=9;else branch_gh<=branch_gh-1;endelse branch_gl<=branch_gl-1;endendalways@(posedge l_set_button)//左转时间设置if(add_or_decent==0)beginif(main_or_branch==0)beginbeginif(main_ll==9)beginmain_ll<=0;if(main_lh==9)main_lh<=0;else main_lh<=main_lh+1;endelse main_ll<=main_ll+1;endendelsebeginif(branch_ll==9)beginbranch_ll<=0;if(branch_lh==9)branch_lh<=0;else branch_lh<=branch_lh+1;else branch_ll<=branch_ll+1;endendelsebeginif(main_or_branch==0)beginbeginif(main_ll==0)beginmain_ll<=9;if(main_lh==0)main_lh<=9;else main_lh<=main_lh-1;endelse main_ll<=main_ll-1;endendelsebeginif(branch_ll==0)beginbranch_ll<=9;if(branch_lh==0)branch_lh<=9;else branch_lh<=branch_lh-1;endelse branch_ll<=branch_ll-1;endendalways@(posedge clk)beginif(main_or_branch==0)//显示主干道设置的时间begincounter_play3<={main_gh,main_gl};counter_play4<={main_lh,main_ll};endelse if(main_or_branch==1)//显示支干道设置的时间begincounter_play3<={branch_gh,branch_gl};counter_play4<={branch_lh,branch_ll};endendendmodulemodule state_transformer(clk,EN,flash,state,s_or_l,run_or_set,main_gh,main_gl,main_lh,main_ll,baranch_gh,baranch_gl,baranch_lh, baranch_ll,main_rh,main_rl,branch_rh,branch_rl,counter_play3,counter_play4,counter_play1h,counter_play1l,counter_play2h,counter_play2l);input clk;input EN,run_or_set;//run_or_set为1时显示运行时的时间,为0显示设置时间input[3:0]main_gh,main_gl,main_lh,main_ll;input[3:0]baranch_gh,baranch_gl,baranch_lh,baranch_ll;input[3:0]main_rh,main_rl,branch_rh,branch_rl;input[7:0]counter_play3,counter_play4;output[3:0]counter_play1h,counter_play1l;output[3:0]counter_play2h,counter_play2l;output flash,state,s_or_l;//输出状态变量reg flash;reg state;reg s_or_l;reg[3:0]main_rhtemp,main_rltemp,branch_rhtemp,branch_rltemp;reg[3:0]main_ghtemp,main_gltemp,main_lhtemp,main_lltemp;reg[3:0]baranch_ghtemp,baranch_gltemp,baranch_lhtemp,baranch_lltemp; reg[3:0]counter_play1h,counter_play1l,counter_play2h,counter_play2l;always@(posedge clk)beginif(EN==0)//EN每置一次0对计数中间变量进行一次初始化beginmain_ghtemp<=main_gh;main_gltemp<=main_gl;baranch_ghtemp<=baranch_gh;baranch_gltemp<=baranch_gl;main_rhtemp<=main_rh;branch_rhtemp<=branch_rh;main_lhtemp<=main_lh;main_lltemp<=main_ll;baranch_lhtemp<=baranch_lh;baranch_lltemp<=baranch_ll;main_rltemp<=main_rl;branch_rltemp<=branch_rl;state<=0;s_or_l<=0;endelse if(EN==1)beginif(state==1)//主干道红灯begincounter_play1h<=main_rhtemp;//主干道显示红灯计数counter_play1l<=main_rltemp;if((main_rltemp==0)&&(main_rhtemp>=1))beginmain_rhtemp<=main_rhtemp-1;main_rltemp<=9;endelse if((main_rltemp>=1)&&(main_rltemp<=9))beginmain_rltemp<=main_rltemp-1;endelse if((main_rhtemp==0)&&(main_rltemp==0))beginmain_rhtemp<=main_rh;main_rltemp<=main_rl;endendif(state==0)//支干道红灯begincounter_play2h<=branch_rhtemp;//支干道显示红灯计数counter_play2l<=branch_rltemp;if((branch_rltemp==0)&&(branch_rhtemp>=1))beginbranch_rhtemp<=branch_rhtemp-1;branch_rltemp<=9;endelse if((branch_rltemp>=1)&&(branch_rltemp<=9))beginbranch_rltemp<=branch_rltemp-1;endelse if((branch_rhtemp==0)&&(branch_rltemp==0))beginbranch_rhtemp<=branch_rh;branch_rltemp<=branch_rl;endendif(state==0&&s_or_l==0)//主干道直行begincounter_play1h<=main_ghtemp;//主干道显示直行时间counter_play1l<=main_gltemp;if((main_gltemp==0)&&(main_ghtemp>=1))beginmain_ghtemp<=main_ghtemp-1;main_gltemp<=9;endif((main_gltemp>=1)&&(main_gltemp<=9))beginif((main_ghtemp==0)&&(main_gltemp==5))beginflash<=1;//绿灯剩余五秒闪烁main_gltemp<=main_gltemp-1;endelsemain_gltemp<=main_gltemp-1;endelse if((main_ghtemp==0)&&(main_gltemp==0))beginstate<=0;s_or_l<=1;//状态转换为主干道左转flash<=0;main_ghtemp<=main_gh;main_gltemp<=main_gl;endendif(state==0&&s_or_l==1)//主干道左转灯begincounter_play1h<=main_lhtemp;//主干道显示左转灯时间counter_play1l<=main_lltemp;if((main_lltemp==0)&&(main_lhtemp>=1))beginmain_lhtemp<=main_lhtemp-1;main_lltemp<=9;endif((main_lltemp>=1)&&(main_lltemp<=9))beginif((main_lhtemp==0)&&(main_lltemp==5))beginflash<=1;main_lltemp<=main_lltemp-1;endelsemain_lltemp<=main_lltemp-1;endelse if((main_lhtemp==0)&&(main_lltemp==0))beginstate<=1;//状态转换为主干道红灯s_or_l<=0;//支干道直行flash<=0;main_lhtemp<=main_lh;main_lltemp<=main_ll;endendif(state==1&&s_or_l==0)//支干道直行begincounter_play2h<=baranch_ghtemp;//支干道显示直行时间counter_play2l<=baranch_gltemp;if((baranch_gltemp==0)&&(baranch_ghtemp>=1))beginbaranch_ghtemp<=baranch_ghtemp-1;baranch_gltemp<=9;endif((baranch_gltemp>=1)&&(baranch_gltemp<=9))beginif((baranch_ghtemp==0)&&(baranch_gltemp==5))beginflash<=1;baranch_gltemp<=baranch_gltemp-1;endelsebaranch_gltemp<=baranch_gltemp-1;endelse if((baranch_ghtemp==0)&&(baranch_gltemp==0)) beginstate<=1;s_or_l<=1;//状态转换为支干道左转flash<=0;baranch_ghtemp<=baranch_gh;baranch_gltemp<=baranch_gl;endendif(state==1&&s_or_l==1)//支干道左转灯begincounter_play2h<=baranch_lhtemp;//支干道显示左转灯时间counter_play2l<=baranch_lltemp;if((baranch_lltemp==0)&&(baranch_lhtemp>=1))beginbaranch_lhtemp<=baranch_lhtemp-1;baranch_lltemp<=9;endif((baranch_lltemp>=1)&&(baranch_lltemp<=9))beginif((baranch_lhtemp==0)&&(baranch_lltemp==5))beginflash<=1;baranch_lltemp<=baranch_lltemp-1;endelsebaranch_lltemp<=baranch_lltemp-1;endelse if((baranch_lhtemp==0)&&(baranch_lltemp==0))beginstate<=0;s_or_l<=0;//状态转换为主干道直行flash<=0;baranch_lltemp<=baranch_ll;baranch_lhtemp<=baranch_lh;endendend//if endif(run_or_set==0)//显示设置时间begincounter_play1h<=counter_play3[7:4];counter_play1l<=counter_play3[3:0];counter_play2h<=counter_play4[7:4];counter_play2l<=counter_play4[3:0];endend//end alwaysendmodulemodule Rtime(OutH,OutL,In1H,In1L,In2H,In2L);//红灯时间计算input[3:0]In1H,In1L,In2H,In2L;output[3:0]OutH,OutL;reg[3:0]OutH,OutL;reg[3:0]outh1,outl1;//定义一组中间变量always@(In1H or In1L or In2H or In2L)//被加数先加1,在加加数beginif((In1L+1)>=4'b1010)//低位大于等于9时的情况beginoutl1<=In1L+1-4'b1010;outh1<=In1H+1'b1;endelsebeginoutl1<=In1L+1;outh1<=In1H;endif((outl1+In2L)>=4'b1010)beginOutL<=outl1+In2L-4'b1010;OutH<=outh1+In2H+1'b1;endelsebeginOutL<=outl1+In2L;OutH<=outh1+In2H;endif((((outl1+In2L)>=4'b1010)&&((outh1+In2H)==4'b1001))||(((outh1+In2H) >4'b1001)))//若直行和左转绿灯时间相加大于99则默认为99beginOutL<=4'b1001;OutH<=4'b1001;endendendmodulemoduleLED_display(clk,flash,state,s_or_l,main_green,main_left,main_red,bran ch_green,branch_left,branch_red);input clk,state,s_or_l,flash;outputmain_green,main_left,main_red,branch_green,branch_left,branch_red;//两个干道各三盏灯,分别代表直行、左转、红灯assign main_green=~state&~s_or_l&(~(flash&clk));//利用真值表获得表达式,闪烁利用flash和clk相与可实现assign main_left=~state&s_or_l&(~(flash&clk));assign main_red=state;assign branch_green=state&~s_or_l&(~(flash&clk));assign branch_left=state&s_or_l&(~(flash&clk));assign branch_red=~state;endmodule。