智能交通灯控制系统设计.docx
- 文档编号:8063020
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:21
- 大小:506.12KB
智能交通灯控制系统设计.docx
《智能交通灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《智能交通灯控制系统设计.docx(21页珍藏版)》请在冰点文库上搜索。
智能交通灯控制系统设计
四川师范大学本科课程设计
智能交通灯控制系统设计
学生姓名
何春锦
院系名称
工学院
专业名称
电气工程及其自动化
班级
2013级2班
学号
2013180258
指导教师
宰文姣
完成时间
2016年5月20日
智能交通灯控制系统设计
电气工程及其自动化专业
学生姓名何春锦指导教师宰文姣
摘要随着社会的经济发展,现代化城市的交通发展迅速,车辆已经成为一种最方便快捷的交通工具,并且成为了人们日常生活中不可缺少的必需品。
但是随着车辆的增加,交通系统的压力也越来越大,本设计主要是针对单片机在交通灯控制系统中的应用,主要考虑可靠性及其综合性能。
关键词:
智能交通灯控制系统
ABSTRACT
Withtheeconomicdevelopmentofsociety,themoderncitytrafficdevelopmentisrapid,thevehiclehasbecomeoneofthemostconvenientmeansoftransportation,andbecometheindispensablenecessitiesinPeople'sDailylife.Butwiththeincreaseofvehicles,trafficsystempressureisbiggerandbigger,thisdesignismainlyaimedattheapplicationofSCMintrafficlightcontrolsystem,mainlyconsideringreliabilityanditscomprehensiveperformance.
Keywords:
IntelligentTrafficlightControlSystem
摘要I
ABSTRACTII
目录III
1设计要求1
2题目分析2
3总体方案3
4流程图及电路设计6
4.1流程图设计6
4.2汇编程序6
4.3电路设计部分14
4.4仿真结果16
5在设计过程中遇到的问题及排除措施21
6设计心得体会22
结论23
致谢24
参考文献:
25
1设计要求
(1)用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。
(2)A、B两车道交叉组成十字路口,A是主车道,B是支道。
正常情况下,A、B两车道轮流放行,A放行50s,B放行30s,各含5s警告时间。
(3)交通繁忙时,该系统应有手受控开关缓解交通拥挤状况,其中一车道放行期间,另一车道繁忙,可通过开关获得15s放行时间。
(4)有紧急车辆通过时,另需一开关设置两车道均禁止通行20s。
2、主要功能模块
智能交通灯控制系统主要功能模块包括电源电路、单片机主控电路、按键控制电路和道路显示电路组成。
根据具体情况选择合适型号的单片机,发光二极管,开关等硬件设备进行设计。
2题目分析
设东西(AC)方向为A通道,即为主干道,设南北(BD)方向为B通道,即为次干道。
从设计要求分析可得,此次设计可以分成三部分,第一部分为正常情况时即未发生交通繁忙与有紧急车辆通行的时候,首先A通道(绿灯)放行50秒,将50秒拆为45秒绿灯和5秒黄灯结束提醒,即总共时间为50秒。
在A通道50秒绿灯的时候,B通道红灯45秒同步,当A通道为5秒黄灯时,B通道也为5秒黄灯。
同理,当B通道放行30秒时,将其拆分为25秒绿灯时间,和5秒黄灯结束提醒,总共时间为30秒。
在B通道为绿灯30秒时,A通道亮红灯25秒与之同步,剩余5秒A、B通道同时亮黄灯。
第二部分为紧急情况,需设置一个手动按钮,即为有紧急车辆,如警车、消防车、救护车等车辆通过时,A、B通道同时亮红灯15秒,但是在A、B红灯亮之前有2秒黄灯警告,2秒提醒后,A、B通道红灯进入倒计时15秒,时间到达后A、B道进入黄灯时间5S倒计时。
计时结束后返回正常状态。
第三部分为A或B道拥堵时,通过人为的手动控制按钮,来实现对两车道进行延时放行处理,首先判断是哪路通道拥挤,然后相应的通道放行(绿灯)15秒,对应的另一通道则为红灯,15秒结束后,A、B黄灯两通道延时5秒后,回到正常状态。
3总体方案
在仔细对题目进行分析后,我们把系统分为若干个单元电路,图3-1为此次设计的原理框图。
原理框图如图3-1所示。
图3-1原理框图
元器件的选用:
AT89C511片、按钮开关BUTTON3个、7SEG-MPX2-CA4个,
TRAFFICLIGHTS4个,总线若干。
下面就各元器件进行简单介绍。
AT89C51
AT89C51是一种带4K字节FLASH存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
为本科单片机教学主要芯片TMS320F2812,DSP原理与应用技术。
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高并且价廉的方案。
下图为AT89C51的管脚图3-2:
图3-2AT89C51管脚图
TRAFFICLIGHTS
Proteus中提供专门的交通灯模块TRAFFICLIGHTS,由红绿黄三色组成,内部模仿的普通发光二极管,三色灯采用共阴极连接,当外部有高电位通入对应的管脚时,对应的灯亮。
TRAFFICLIGHTS模块如图3-3所示:
图3-3TRAFFICLIGHTS模块
BUTTON
Proteus中提供的按钮开关,可以进行简单的点动也可以进行自锁。
BUTTON模块如图3-4所示:
图3-4BUTTON模块
7SEG-MPX2-CA
Protues中提供的2位的7段共阳极数码显示管,其中A、B、C、D、E、F、G对应各自的段选位,DP为七段数码显示管的小数点显示。
1、2对应的为两个数码管的位选端。
7SEG-MPX2-CA模块如图3-5所示:
图3-57SEG-MPX2-CA模块
方案设计与实施:
因为用到了数码管的输出,交通灯的输出,以及开关按钮的输入,先分配好输入输出口。
将AT89C51的P1口的P1.0-P1.2分别赋给A道路口的绿黄红灯,将P1.3-P1.5口分别赋给B道路口的绿黄红灯。
将AT89C51的P0.0-P0.6分别赋给交通灯的数码显示管A-G口,P2.0-P2.1分别赋给A道的个位显示和十位显示,P2.2-P2.3分别赋给B道的个位显示和十位显示。
将P3.2用作紧急车辆通过的按钮,将P3.3用作A道出现拥挤的按钮,将P3.4用作B道出现拥挤的情况。
主要思想:
将P3口的值赋给内部寄存器R4,然后通过判断R4内部寄存器的值来实现对不同子程序的调用,然后来完成交通灯的控制。
4流程图及电路设计
4.1流程图设计
程序流程图如图4-1:
图4-1程序流程图
4.2汇编程序
汇编程序如下:
ORG0000H
LJMPMAIN
ORG000BH//定时器0入口
LJMPINTT1
ORG1000H
MAIN:
//初始化
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H;50ms
SETBEA
SETBET0
SETBTR0
//将P3.2-P3.4设置为分别设为紧急时、B拥堵时和A拥堵时的按钮,
//判断内部寄存器R4中的值,11111111B(0FFH)时为正常(HERE),11111011B(0FBH)紧急时(HERE1),
//11110111B(0F7H)A道拥堵(HERE2),11101111(0EFH)为1时为B道拥堵(HERE3),
//正常运行程序HERE
HERE:
LCALLDELAY45S
DELAY45S:
MOVR3,#45;延时45s
MOVA,#21H;00100001B将P1.0给A道的绿灯,将P1.5给B道的红灯
MOVP1,A
X1:
CJNER3,#0,AGBR
MOVR3,#5;延时5S
MOVA,#12H;00010010B将P1.1给A道的黄灯,将P1.4给B道的黄灯
MOVP1,A
E1:
CJNER3,#0,AYBY1
LJMPDELAY25S
DELAY25S:
MOVR3,#25;延时25S
MOVA,#0CH;00001100B将P1.2给A道的红灯,将P1.3给B道的绿灯
MOVP1,A
X3:
CJNER3,#0,ARBG
MOVR3,#5;延时5S
MOVA,#12H;00010010B将P1.1给A道的黄灯,将P1.4给B道的黄灯
MOVP1,A
E2:
CJNER3,#0,AYBY2
RET
AYBY1:
LCALLPDAN1
LCALLSMGXS
LJMPE1
AYBY2:
LCALLPDAN1
LCALLSMGXS
LJMPE2
LJMPHERE
AGBR:
LCALLPDAN1
LCALLSMGXS
LJMPX1
ARBG:
LCALLPDAN1
LCALLSMGXS
LJMPX3
RET
RET
//将P3.2-P3.4设置为分别设为紧急时、B拥堵时和A拥堵时的按钮,
//判断内部寄存器R4中的值,11111111B(0FFH)时为正常(HERE),11111011B(0FBH)紧急时(HERE1),
//11110111B(0F7H)A道拥堵(HERE2),11101111(0EFH)为1时为B道拥堵(HERE3),
//判断程序1在正常状态下,是否有紧急按钮或者A、B道拥堵的情况出现
PDAN1:
MOVR4,P3
CJNER4,#0FBH,J9
LJMPHERE1
J9:
CJNER4,#0F7H,J10
LJMPHERE2
J10:
CJNER4,#0EFH,J11
LJMPHERE3
J11:
CJNER4,#0FFH,J12
J12:
RET
//判断程序2在A道拥堵的情况下,判断是否有紧急的车辆通过,此时不响应B道拥堵的情况
PDAN2:
MOVR4,P3
CJNER4,#0FBH,J1
LJMPHERE1
J1:
CJNER4,#0F7H,J2
LJMPHERE2
J2:
RET
//判断程序3在B道拥堵的情况下,判断是否有紧急的车辆通过,此时不响应A道拥堵的情况
PDAN3:
MOVR4,P3
CJNER4,#0FBH,J5
LJMPHERE1
J5:
CJNER4,#0EFH,J6
LJMPHERE3
J6:
RET
//数码管显示
SMGXS:
MOVR0,#05H;00000101B
MOVP2,R0;位选p2.0为A道的个位,p2.1为A道的十位,P2.2为B道的个位,p2.3为B道的十位
MOVB,#10
MOVA,R3
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
ACALLD1MS
MOVA,R0
RLA;位选选通p2.1为A道的十位,p2.3为B道的十位
MOVR0,A
MOVP2,R0
MOVA,B
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
ACALLD1MS
RET
HERE1:
MOVR3,#2;黄灯警告延时2S
MOVA,#12H;00010010B将P1.1给A道的黄灯,将P1.4给B道的黄灯
MOVP1,A
A1:
CJNER3,#0,AYBY10
LJMPZDYS15S
AYBY10:
LCALLSMGXS
LJMPA1
ZDYS15S:
MOVR3,#15;延时15S
MOVA,#24H;00100100B将P1.2给A道的红灯,将P1.5给B道的红灯
MOVP1,A
X6:
CJNER3,#0,ARBR
MOVR3,#5;延时5S
MOVA,#12H;00010010B将P1.1给A道的黄灯,将P1.4给B道的黄灯
MOVP1,A
E7:
CJNER3,#0,AYBY7
LJMPHERE
AYBY7:
LCALLSMGXS
LJMPE7
RET
ARBR:
LCALLSMGXS
AJMPX6
//A通道拥堵时延时15S程序HERE2
HERE2:
MOVR3,#3;黄灯警告延时3S
MOVA,#12H;00010010B将P1.1给A道的黄灯,将P1.4给B道的黄灯
MOVP1,A
E3:
CJNER3,#0,AYBY3
LJMPAYS15S
AYBY3:
LCALLPDAN2
LCALLSMGXS
LJMPE3
AYS15S:
MOVA,R3
ADDA,#15//通道A延时15S
MOVR3,A
MOVA,#21H;00100001B将P1.0给A道的绿灯,将P1.5给B道的红灯
MOVP1,A
A2:
CJNER3,#0,JAGBR
MOVR3,#5;延时5S
MOVA,#12H;00010010B将P1.1给A道的黄灯,将P1.4给B道的黄灯
MOVP1,A
E4:
CJNER3,#0,AYBY4
AJMPHERE
RET
AYBY4:
LCALLPDAN2
LCALLSMGXS
LJMPE4
JAGBR:
//MOVR4,P3
//CJNER4,#0F7H,HERE3
LCALLPDAN2
LCALLSMGXS
AJMPA2
//B通道拥堵时延时15S程序HERE3
HERE3:
MOVR3,#3;黄灯警告延时3S
MOVA,#12H;00010010B将P1.1给A道的黄灯,将P1.4给B道的黄灯
MOVP1,A
E5:
CJNER3,#0,AYBY
LCALLBYS15S
AYBY:
LCALLPDAN3
LCALLSMGXS
LJMPE5
BYS15S:
MOVA,R3
ADDA,#15//通道B延时15S
MOVR3,A
MOVA,#0CH;00001100B将P1.3给B道的绿灯,将P1.2给A道的红灯
MOVP1,A
A4:
CJNER3,#0,JARBG
MOVR3,#5;延时5S
MOVA,#12H;00010010B将P1.1给A道的黄灯,将P1.4给B道的黄灯
MOVP1,A
E6:
CJNER3,#0,AYBY6
AJMPHERE
RET
AYBY6:
LCALLPDAN3
LCALLSMGXS
LJMPE6
JARBG:
LCALLPDAN3
LCALLSMGXS
AJMPA4
//延时1S程序
INTT1:
MOVTH0,#3CH
MOVTL0,#0B0H
INCR1
CJNER1,#20,NEXT
MOVR1,#0
DECR3
NEXT:
RETI
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H//共阳极
D1MS:
MOVR7,#02H
DL:
MOVR6,#0FFH
DL1:
DJNZR6,DL1
DJNZR7,DL
RET
END
4.3电路设计部分
总电路如图4-2所示:
图4-2总电路图
单片机接口具体图,如图4-3所示:
图4-3单片机接口具体图
东西方向(A道)交通灯与数码显示管接线图如图4-4所示:
图4-4东西方向(A道)交通灯与数码显示管接线图
南北方向(B道)交通灯与数码显示管接线图如图4-5所示:
图4-5南北方向(B道)交通灯与数码显示管接线图
4.4仿真结果
图4-6通电初始化时,A道放行45S
图4-7A道、B到红灯5S提醒
图4-8B道放行25S
图4-9紧急按钮按下,A、B道黄灯2S警示
图4-10紧急车辆15S通行时间
图4-11A道出现拥挤情况后,增加放行15秒
图4-12B道出现拥挤情况后,增加放行15秒
5在设计过程中遇到的问题及排除措施
在开始时,没有仔细分析题目要求,导致控制流程的编制出现问题,后来通过仔细分析题目要求,画出程序控制流程图,为后面的变成控制提供依据。
遇到最主要的时最开始在调节好主程序时,调通后,再往里面加入中断程序的时候出现问题,能够响应中断程序,但是数码管的计时出现异常,甚至出现乱码现象,在仔细分析原因后请教老师,发现问题后改正,原来是中断程序内不能够调用延时等程序,否则会引起程序异常工作,于是果断放弃中断程序方式。
解决的方式是采用将P3口的值赋给内部寄存器R4,在外部未接入开关时,P3口的每一位都为高电平,即此时内部寄存器R4的值为11111111B(FFH),为正常情况下,执行正常时候的程序,然后将P3.2口接成紧急情况时的按钮,P3.3口接成A道拥挤按钮,P3.4口接成B道拥挤按钮,然后在每次执行程序的时候判断P3口的值,如果内部寄存器R4的值变为11111011B(0FBH),说明紧急按钮按下,然后跳入紧急程序执行,执行后跳入正常程序中开始执行;如果内部寄存器R4的值变为11110111B(0F7H)A道拥堵,说明A道拥堵按钮按下,然后跳入A道拥堵程序执行,执行后跳入正常程序中开始执行;如果内部寄存器R4的值变为(0EFH)时为B道拥堵,说明B道拥堵按钮按下,然后跳入B道拥堵程序执行,执行后跳入正常程序中开始执行,以此来完成相应交通灯的控制,也达到了控制目的,完成了控制要求。
同时也遇到了对于中断优先级的判断,起初也有些问题,通过仔细的思考,我是将紧急情况时的优先等级最高,然后A、B道拥堵的情况次之,正常时的优先级最低,具体的实现是通过在上电后开始执行正常程序时,在正常程序执行的每个阶段都在判断是否有按钮按下,如果有的话立即跳入相应中断程序内,如果此时正在执行紧急情况时的中断程序,如果按下A或B道拥挤的按钮时,则无响应。
如果此时在执行A或B道拥堵程序时,则要判断,是否紧急按钮按下,按下则跳出此程序,执行紧急中断程序。
6设计心得体会
首先,我要在这里感谢宰老师的耐心指导,感谢组员的协作团结。
通过此次课程设计,我学到了很多知识,这也将我平常所学的知识,进行了系统的串接,巩固和掌握了平常所学的知识,将学习的理论知识运用于实践生活当中来,同时了解了自己学习上的欠缺和不足,通过非常仔细的查漏补缺,最终完成了此次课程设计。
通过此次设计,我不光在此次课程专业知识上有了一定的进步,更重要的是学习到了团队协作精神,有时候我们需要具备独立解决问题的能力,冷静下来独立思考,独立完成;有时候我们则需要与进行团队的互帮互助,进行及时的讨论商议,集思广益,当劳动量过大时,我们可以采用分工合作的方式来完成一个整体项目。
这样更有助于一个项目的高效完成。
同时也明白在遇到问题后要冷静的思考,理性的看待这些问题困难后,适度的寻找方法,可以利用相关资源,寻找到相应的解决方式。
我们可以遇到问题后及时的调节自己的思想思路,寻求到新的解决方法。
还有就是在做什么事情之前,首先得的是要理清思路,整体框架出来后才能做到有条不紊。
再次感谢宰老师的悉心教导,和组员的支持和配合!
结论
通过此次课程设计,对单片机的认识更加的深入,对于其在实际生活中的应用有了更加充分的了解,并大胆的将其和交通灯控制系统联系起来,通过图书馆,老师,网络等途径,搜集了很多的资料,学会了资料整合的能力,也加强了自己的学习能力。
通过此次设计,一方面对自己的专业知识进行了拓展,另一方面也认识到了自己以前对于此门功课学习的不足之处。
弥补这些不足将会是接下来我的努力方向。
致谢
在这段时间里,通过不断地努力,在图书馆翻阅书籍,以及网上大量的查询资料,我终于完成了此次设计。
对于许多疑问,我都及时的通过查阅资料,以及及时的向宰老师求助的方式,使其得到解决。
在此非常感谢宰老师给我的帮助,对我的悉心教导,让我学会了解决问题的方法。
同时,在此也向各位同学表示深深的谢意,感谢大家的帮助,没有你们的支持,我将不能顺利地完成自己的课程设计。
再次感谢宰老师,以及各位同学,谢谢你们!
参考文献:
[1]李朝青,刘艳玲.单片机原理及接口技术[M].4版.北京:
北京航空航天大学出版社.2013(07)
[2]赵广元.Proteus辅助的单片机原理实践[M].北京:
北京航空航天大学出版社.2013(09)
[3]李全利.单片机原理及接口技术[M].2版.北京:
高等教育出版社.2009
[4]钱逸秋.单片机原理与应用[M].北京:
电子工业出版社.2002
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 交通灯 控制系统 设计