交通灯课程设计论文报告.docx
- 文档编号:10647597
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:32
- 大小:772.06KB
交通灯课程设计论文报告.docx
《交通灯课程设计论文报告.docx》由会员分享,可在线阅读,更多相关《交通灯课程设计论文报告.docx(32页珍藏版)》请在冰豆网上搜索。
交通灯课程设计论文报告
单片机课程设计
——智能交通灯控制系统设计
电气与控制工程学院
微电子科学与工程1101班
组员:
李少飞1106080118
和彬彬1106080122
王军1106080130
余盛强1106080131
指导老师:
邵小强、刘晓蓉
2014年7月3日
智能交通灯控制系统的设计
摘要:
近年来,随着我国国民经济的快速发展,我国机动车辆发展迅速,。
而城镇道路建设由于历史等各方面因素相对滞后,交通拥挤和堵塞想想时常发生。
如何利用当今计算机和自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,减少交通事故是很值得的研究课题。
目前,国内的交通灯一般设计在十字路口,在醒目位置用红绿黄三种颜色的指示灯再加上一个倒计时的显示计时器来控制行车。
我国交通法规也对交通指挥信号灯做出了规定:
(1)绿灯亮时,准行车辆,行人通行,但已越过停止线的车辆和已进入人行横道的行人,可以继续通行。
(2)黄灯亮时,不准车辆,行人通行,但已越过停止线的车辆和已进入人行横道的行人,可以继续通行。
(3)红灯亮时,不准车辆,行人通行
(4)绿灯箭头灯亮时,准许车辆按箭头所示方向通行
(5)黄灯闪烁时,车辆行人在确保安全的原则下可以通行
信号灯的出现,市交通得到有效地管制,对于疏导交通流量,提高道路通行能力和减少交通事故有明显效果
关键词:
红绿灯,黄灯闪烁,全红,南北禁行,东西禁行
1设计任务
本设计要求学生用单片机设计一个交通灯控制系统,使其能模仿城市“十字”路口交通功能,并能满足特殊的控制要求(如按键k1,k2,k3的使用),该系统的具体功能要求如下:
(1)该控制系统能控制东西南北四个路口的红黄绿信号灯的正常工作
(2)当东西方向准行,南北方向禁行时,东西方向亮绿灯,南北方向亮红灯
(3)当南北方向准行,东西方向禁行时,南北方向亮绿灯,东西方向亮红灯
(4)量垂直方向的准行时间均为60s(由于时间太长改为30秒)
(5)准行方向亮绿灯与禁行方向亮绿灯55s后,四个道口同时加亮一盏黄灯进行闪烁,以警告车辆及行人,准备方向与禁行方向即将改变(及准行变为禁行,禁行变为准行)
(6)四个道口军用数码管显示准行(禁行)的剩余时间
(7)在交通情况比较特殊的情况下,可以通过k1,k2,k3三个按键对交通灯进行控制,具体实现的功能如下:
当有紧急情况发生,如消防车。
救护车等紧急车辆通过时,按下K1键,四个路口同时加亮黄灯信号灯进行闪烁(闪烁时间为2s),并且倒计时显示装置关闭,
黄色灯闪烁5s后,四个路口的信号灯全部变为红灯,这样四个路口的普通的车辆禁行,只允许紧急车辆通过,待紧急车辆通过后,松开K1键,表示紧急状态消除,交通灯控制系统恢复正常工作.当东西方向车辆过多时,按下K2键,四个路口同时加亮黄色信号灯进行闪烁(闪烁时间为5s),并且倒计时显示装置关闭,黄灯5s闪烁完成后只允许东西方向车辆通过,南北方向车辆禁行吗,从而有效地调节东西方向车辆过多的情况。
松开K2键,交通灯又开始正常工作,当南北方向车辆过多时,按下K3键,四个路口同时加亮黄色信号灯进行闪烁(闪烁时间为5S),并且倒计时显示装置关闭,黄色灯5s闪烁完成后,只允许南北方向车辆通行,东西方向车辆禁行,从而有效地调节南北方向车辆过多的情况。
松开K3键,交通灯又开始正常工作。
主要硬件设备:
AT89C51单片机。
发光二极管。
共阳型LED数码管,开关按键,连线若干等
2整体设计方案
本系统采用AT89C51单片机作为智能交通的系统的控制核心。
从设计所要完成的任务和要求来看,单一路口显示倒计时时间的数码管必须用两位数,对于七段数码管,考虑AT89C51单片机所能提供的I\O接口的数量并结合实际编程,倒计时显示装置中的数码管在本系统中采用静态显示;设置了3个按键用来处理交通灯在实际应用可能出现的特殊情况,共使用3个I\O端口,其中P3.0接K1,P3.1接K2键,P3.6键K3键:
十字路口共需要4组I\O红绿灯,加上转换黄灯,一共是12只灯,须用6个端口进行控制,具体I\O接口分配为:
P1.0~P1.2分别接东西方向的红绿黄共6盏信号灯,P1.3~P1.5分别接南北方向的红绿黄共6盏信号灯;AT89C51单片机的I\O口作为输出时具有较大的吸收电流能力,因此我们可以选用共阳极数码管,这样由单片机的I/O口就可以直接驱动,从而简化硬件电路的设计,系统的整体方案设计图所示
系统整体方案设计
3.系统硬件电路设计
3.1交通灯电路
为了方便实验,采用发光二极管作为交通灯使用,单片机的I/O接口直接和交通灯(发光二极管)连接。
在十字路口的四座红黄绿三色交通灯中,东西方向道路上的两组同色灯连接在一起,南北方向道路上的两组同色灯也彼此连接,收单片机额P1.0~P1.5控制。
单片机的I/O接口和交通灯电路的具体连接方式:
P1.0~P1.2分别接东西方向的红路灯共6个发光二极管。
12个发光二级黄,P1.3~P1.5分别接南北方向的红绿灯共6个发光二极管。
12个发光二极管采用共阳极的连接方式,因此I/O口输出低电平时,与之相连的二极管会亮,I/O口输出高电平时,相应的发光二极管会灭,交通灯电路如图所示
3.2复位电路
为确保控制系统能够稳定可靠工作,复位电路时必不可少的一部分。
它可以保证程序从指定处开始执行,即从程序存储器的0000H地址单元开始执行程序。
另外,当程序运行出错或操作错误是系统处于“死机”状态时,需复位以重新启动。
3.3倒计时显示电路
该交通灯控制系统在正常工作情况下,每60s(由于时间太长本次我们调试为30秒延时)循环一次,为方便提示路上行人及车辆交通灯转换的剩余时间,专门为控制系统设计了一个倒计时显示装置,该显示装置选用七段数码管来显示交通灯转换的剩余时间,根据控制要求,每个路口需要两个数码管,这样四个路口就需要八个数码管。
由于AT89C51单片机的I\O口作为输出时,具有较大的吸收电流能力,因此我们可以选用共阳极数码管,这样由单片机的I/O就可以直接驱动,从而简化硬件电路的设计。
四个路口倒计时显示装置在同一时刻显示相同的数字,其中P0口用来显示时间的十位,P2口作为显示时间的个位;东西南北四个方向共四个路口,令DS1和DS2是一组,DS3和DS4是一组,DS5和DS6是一组DS7和DS8是一组,考虑到AT89C51单片机所能提供的I/O接口的数量以及该控制系统所需的I/O的个数并结合学生实际编程的能力,数码管在本系统采用的是静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的数码管恒定的导通和截止。
知道要显示新的数据时,再发送新的字型码,倒计时显示电路如图所示
3.4紧急通行电路
该系统的K1,K2,K3三个按键分别与单片机的P3.0,P3.1,P3.6相接,他们可以再特殊的交通情况下使用。
例如,当有紧急情况发生,如消防车,救护车等紧急车辆通过时,按下K1键,四个路口同时加亮黄色信号灯并进行闪烁(闪烁时间为5s),并且倒计时显示装置关闭,黄色灯5s闪烁完成后,四个路口的信号灯全部变成红灯,从而保证紧急车辆的及时通行,待紧急车辆通过后,松开K1键,紧急情况消除,交通灯控制系统恢复正常工作;按下K2键,绿灯方向加亮黄色信号灯并开始闪烁(闪烁时间为5s),并且倒计时显示装置关闭,黄灯闪烁5s完成后,只允许东西方向车辆准行,南北方向车辆禁行,松开K2键,交通灯控制系统又开始正常工作;按下K3键,另两个方向加亮黄色信号灯并进行闪烁(闪烁时间为5s),并且倒计时显示装置关闭,黄色灯5s后,只允许南北方向车辆准行,东西方向车辆禁止,松开K2键,交通灯控制系统又开始正常工作,按键电路所示
4系统程序设计
4.1主程序流程图
该智能交通灯控制系统的软件设计采用的是顺序并反复循环的方法。
智能交通灯控制系统在正常工作的情况下,每60s循环变化一次。
每个循环周期在还剩5s时,四个路口的黄灯同时点亮并开始闪烁,以提醒路上的行人及车辆,交通灯即将发生变换,在主程序中定时扫描P3口,若有按键按下,则调用键盘子子程序进行相应的处理,若无,则程序继续执行。
主程序流程图如图所示。
Visio绘制流程图(2013版)
4.2定时中断子程序
该系统的倒计时显示装置采用的是静态显示方式,单片机的P0口和P2口分别连接倒计时装置的十位和个位,系统每1s都会向倒计时显示装置传送新的数字型码用来显示新的倒计时时间。
设定该系统的定时器工作在方式1,由于方式1的最大定时时间为65.536ms,所以要产生1s的定时时间必须采用累加器定时的方法,即将定时器的定时间设定为50ms,中断循环次数设定为20。
当20次循环中断完成以后,说明1s时间累计到,这时候通过调用显示子程序为倒计时装置传送新的数字型码,从而完成倒计时时间的“减一“操作并进行显示。
另外,每完成一次定时中断操作后都要重新对定时器赋初值。
定时中断子程序如图
Visio绘制流程图(2013版)
4.3显示子程序流程图
该交通灯控制系统采用的是静态显示,对于得到的倒计时显示数据,首先应提取倒计时数据的十位和个位,然后将十位和个位的字型码分别送到单片机的P0口和P2口。
其中P0口用来向倒计时显示装置传送十位数字型码,P2口用来向倒计时显示装置个位数字型码。
显示子程序流程图如图
Visio绘制流程图(2013版)
4.4按键子程序流程图
在该控制系统中,共使用了三个按键K1、K2、K3来处理交通灯在实际应用中的某些特殊情况。
如按下K1键,东西南北四个路口均变成红灯,从而保证诸如急救车、消防车等车辆的及时通过,按下K2键,则只允许东西方向通行,而南北方向禁行;按下K3键只允许南北方向通行,而东西方向禁行。
另外,K1、K2、K3三个按键无论哪个按键按下,倒计时显示装置都会关闭,四个路口的黄灯同时点亮并进行闪烁(时间为5S),提示车辆和行人,交通灯即将发生变换。
当特殊情况消除后,松开按键,智能交通灯控制系统又恢复正常工作。
按键子程序流程图所示。
Visio绘制流程图(2013版)
5系统调试
智能交通灯控制系统设计完成后,剩下的工作就是系统的调试。
本系统的调试工作可以分三部分进行。
一是做好硬件电路的检查工作,确保焊点无虚焊,I/O接口对应准确;二是做好软件部分的调试工作,调试的手段是将所有编辑的源程序在相应的集成开发环境运行,根据系统提示的错误进行修改。
三是软硬件的联合调试,在这一步中,要给硬件上电并且使程序运行起来,重点检查硬件部分能否正确实现软件部分规定的功能要求。
很多情况下,系统的调试工作并不是一步到位的,当软件和硬件设置不统一时,系统往往无法正常工作,无法满足既定功能要求,这时候需要根据软件改硬件或者根据硬件改软件,使两者协调统一起来。
总之,系统的调试工作总要经过反复修改,运行,再修改,再运行这一循环渐进的过程。
5.1系统的硬件调试
系统的硬件调试一般分下面三个步骤。
第一步:
目测。
检查外部的各种元件或者电路是否有断点。
第二步:
用万用表测试。
先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。
第三步:
加电检测。
给板加电,检测所有插座或者器件的电源端是否符合要求的值。
5.1.1倒计时显示电路调试
给硬件电路接上电源,这是数码管全灭,用一根导线的一端与地线相连,另一端依次触碰AT89C51的P0口和P2口,一边触碰一边查看七段数码管,正常情况下可以看到每触碰一个引脚,对应的一段数码管点亮。
若不亮,仔细查看与该引脚相连的电阻及数码管是否虚焊。
5.2交通灯电路的调试
需要说明的是,由于整个设计是用发光二级管来代替交通灯,需要低电平“0”来驱动点亮,在实际应用电路中,应使P1口输出高电平“1”来驱动继电器导通,从而使220v的交通灯点亮。
这是实验与实际应用比较容易混要的地方,应该引起注意。
进行交通灯电路的调试首先应确保VD1~VD12这1个发光二级管焊好,注意不要焊反,同时将每一个发光二极管一端依次触碰AT89C51的P1.0~P1.5接口,一边触碰一边查看发光二极管,正常情况下可以看到每触碰一个引脚,都会有相应的两个发光二级管点亮。
若不亮,仔细查看与该引脚相连的电阻及发光二级管是否虚焊。
5.2.1紧急通行电路调试
仔细检查K1、K2、K3三个按键是否焊牢,并且三个按键是否与相应的I/O接口对应准确。
5.3软件调试
软件的调试也称纠结和排错,他是孤立并纠错的一种技巧性过程。
软件错误的外部表现形式与内部原因之间往往没有明显的联系,所出现的差错并非直接就能找出原因。
因此,软件的调试既要对错误的性质及程序本身进行系统的研究,在某种程度上也要靠直觉与经验。
到目前为止,调试还没有一套经得起检验的完整而系统的理论法,排错时所采用的方法和时间都不能事先确定。
这样,通常认为调试是困难的,是软件开发过程中最为艰巨的一种脑力劳动。
对于调试,有一个认识误区需要加以纠正,这就是调试并不是提高软件质量的一种方法,他只是用于改正错误。
保证软件质量应从项目开始是就进行,提高软件质量遵循软件工程的开发方法,进行详细的需求分析、全面的设计、高质量的编译。
调试只是最终的一个不得已的之举。
软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
一般情况下,软件的调试可以分为以下几步。
5.3.1发现错误
软件调试的第一步是发现错误,发现错误并理解错误将花费90%的调试时间,采用科学的、有条理的思考进行调试比胡乱猜测要有效得多。
5.3.2确定错误原
发现错误的地方不一定是错误的源发点,应寻找所有与错误有关的地方,从而确定错误的源发点。
5.3.3修正错误
与发现错误相比,改正错误是一件容易的事,但切忌轻易进行改正。
研究表明,第一次改正仍有50%的出错机会,盲目进行修改只会导致更多的错误。
以下几点是你修改错时应遵循的原则:
(1)在改正问题前认真了解其实质。
(2)理解整个程序,而不是了解某个问题。
(3)确证错误。
(4)保存初始代码。
(5)每次只做一个修改。
(6)检查所作的修改。
(7)寻找类似错误。
1、静态调试
静态调试只对程序进行人工书面检查,静态调试时要仔细阅读程序及其文档,经过结构分析、功能分析、逻辑分析、接口分析、语法分析以及逐行检查。
以便找出并改正错误,通常有下面两种方法:
1.检查语法错误
产生语法错误的原因主要有两个:
一是键入错误,次错误如同写文章时“笔误”;二是由于对语法规则不熟悉,见书后的错误信息、各种局限、全局变量与局部变量、先左后右的原则等,这些虽不是系统规定,但也是语发的一部分,因作为专项于一检查。
2.跟踪程序流程
此时的跟踪程序流程,即将自己作为计算机。
给定一组输入数据后,顺序执行每条语句,考察所得结果,寻找错误。
此方法需花一定时间,但也是最基本的方法,用其他方法难以查处问题时,可以用此方法二.动态调试
动态调试是指实际上机运行程序进行调试。
经过静态调试后,仍留在程序中的错误便都十分隐蔽。
为找到这些错误,首先进行错误侦查。
常见的错误分为以下几种情况:
(1)没有通过编译
(2)没有通过连接编译
(3)程序的运行过程因故障而停止
(4)程序只输出部分结果。
(5)程序执行了很长时间没有结果。
参考文献:
【1】李海滨;片春媛;许瑞雪。
单片机技术课程设计与项目实例[M].北京市西城区三里河路6号,中国电力出版社.2009年10月.
【2】楼然苗;李光飞.单片机课程设计指导[M].北京市海淀区学院路37号,北京航空航天大学出版社.2012年1月.
【3】杨尧;杨居义;杨晓琴,王益斌.单片机课程设计指导[M].北京清华大学学研大厦A座.清华大学出版社.2009年9月.
【4】边海龙;孙永奎.单片机开发与典型工程项目实例详解{M}.北京市海淀区万寿路173号.电子工业出版社.2008年10月.
【5】黄智伟.凌阳单片机课程设计指导{M}.北京市海淀区37号.北京航空航天大学出版社.2007年6月.
附录一
程序清单
ORG0000H
LJMPMAIN
ORG001BH;定时器T1中断入口
LJMPINTT1
ORG0100H;主程序入口
MAIN:
MOVSP,#60H
MOVTMOD,#10H;定时器T1工作在方式1
MOVTH1,#9EH;给定时器T1赋初值
MOVTL1,#58H
SETBEA;开中断系统总开关
SETBET1;开定时器T1中断开关
SETBTR1;启动定时器T1
HERE:
MOV88H,#15H;设置中断循环次数
MOV33H,#3DH;设置倒计时显示数值
MOVP1,#0F3H;使交通灯东西绿,南北红
MOVR7,#37H
MM:
LCALLDISP
MOVA,P3;键盘扫描
CJNEA,#0FFH,READKEY
DJNZR7,MM
MOVP1,#0E1H;交通灯东西绿,南北同时加亮黄灯
MOV20H,#02H
NN:
MOVA,P3
CJNEA,#0FFH,READKEY
SETBP1.2;绿灯灭
SETBP1.1;黄灯进行5s闪烁
SETBP1.4
LCALLDISP;调显示子程序
CLRP1.1
CLRP1.4
LCALLDISP
DJNZ20H,NN
SETBP1.1
SETBP1.4
LCALLDISP
MOVP1,#0DEH;交通灯南北绿,东西红
MOVR7,#37H
PP:
LCALLDISP
MOVA,P3
CJNEA,#0FFH,READKEY
DJNZR7,PP
MOVP1,#0CCH;交通灯南北绿,东西红同时加亮黄灯
MOV20H,#02H
QQ:
MOVA,P3;扫描P3口
CJNEA,#0FFH,READKEY
SETBP1.5;绿灯灭
SETBP1.1
SETBP1.4
LCALLDISP
CLRP1.1
CLRP1.4
LCALLDISP
DJNZ20H,QQ
SETBP1.1
SETBP1.4
LCALLDISP
LCALLQW
QW:
SJMPHERE
RET
DELAY:
MOVR1,#0AH
DELAY0:
MOVR2,#0C8H
DELAY1:
MOVR3,#0F8H
NOP
DELAY2:
DJNZR3,DELAY2
DJNZR2,DELAY1
DJNZR1,DELAY0
RET
READKEY:
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.0,K1;判断K1键是否按下
JNBACC.1,K2;判断K2键是否按下
JNBACC.6,K3;判断K3键是否按下
RET
K1:
MOVP0,#0FFH;关闭倒计时显示装置
MOVP2,#0FFH
MOV18H,00H
MOV18H,#04H
BB:
SETBP1.4
SETBP1.1
LCALLDELAY
CLRP1.1
CLRP1.4
LCALLDELAY
DJNZ18H,BB
SETBP1.4
SETBP1.1
YY:
MOVP1,#0F6H;四个路口均变成红灯
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.0,YY;判断K1键是否按下
LCALLQW
SJMPREADKEY
K2:
MOVP0,#0FFH;关闭倒计时显示装置
MOVP2,#0FFH
MOVP1,#0F3H
MOV18H,#00H
MOV18H,#04H
SETBP1.4
CC:
SETBP1.1
LCALLDELAY
CLRP1.1
LCALLDELAY
DJNZ18H,CC
SETBP1.1
SETBP1.4
YY1:
MOVA,#0FFH;东西方向亮绿灯,南北方向亮红灯
MOVP3,A
MOVA,P3
JNBACC.1,YY1;判断K2键是否按下
LCALLQW
LJMPREADKEY
K3:
MOVP0,#0FFH;关闭倒计时显示装置
MOVP2,#0FFH
MOVP1,#0DEH
MOV18H,#00H
MOV18H,#04H
SETBP1.1
EE:
SETBP1.4
LCALLDELAY
CLRP1.4
LCALLDELAY
DJNZ18H,EE
SETBP1.1
SETBP1.4
YY2:
MOVA,#0FFH;南北方向亮绿灯,东西方向亮红灯
MOVP3,A
MOVA,P3
JNBACC.6,YY2;判断K3键是否按下
LCALLQW
LJMPREADKEY
ORG0400H
INTT1:
DEC88H
MOVA,88H
CJNEA,#01H,BN;判断循环次数是否为1
MOV88H,#15H;重新给定时器T1赋初值
LCALLDISP
BN:
MOVTH1,#9EH
MOVTL1,#58H
RETI
DISP:
DEC33H
MOVA,33H
CJNEA,#01H,DIR1
MOV33H,#3DH;重新给倒计时数赋初值
DIR1:
MOVB,#0AH
DIVAB;提取倒计时数值的十位数和个位数
MOVDPTR,#TAB;字形表的入口地址
MOVCA,@A+DPTR;查表获取十位数的字型码
MOV30H,A
MOVA,B
MOVCA,@A+DPTR;查表获得个位数字型码
MOV31H,A
MOVA,30H
MOVP0,A;将十位数字型码送到P0口
MOVA,31H
MOVP2,A;将个位数字型码送到P2口
LCALLDELAY
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;
END
附录二
3
交通灯
AT89C51
1
晶振
12MHZ
1
反相器
74F06
1
共阳数码管
8
电源接口
1
复位按钮
1
LED-ON
1
按键
6
发光二极管
红绿黄各4个
驱动器
7407
16
排线
42针
排针
8排
8*0.2k的排阻
2排
电容
10PF
1
100PF
2
30PF
2
10UF
2
电阻
10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 课程设计 论文 报告