基于单片机的交通灯控制电路的设计.
四川信息职业技术学院
毕业设计说明书(论文)
设计(论文)题目: 基于单片机的交通灯
控制电路的设计
专 业: _ 通信技术___ 班 级:__ 通技06-2_ 学 号: 0620048 姓 名: 罗昌云 指导教师: 曾宝国 谭望春
二OO八年十二月三十日
四川信息职业技术学院毕业设计(论文)任务书
目 录
摘 要 ................................................................. 1 第1章 绪 论 ......................................................... 2 第2章 方案设计 ....................................................... 3 第3章 硬件设计 ....................................................... 5
3.1 单片机最小系统 ................................................. 5 3.2 驱动电路 ....................................................... 6 3.3 交通灯模块 ..................................................... 7 第4章 软件设计 ....................................................... 9
4.1 主程序流程 ..................................................... 9 4.2 子程序流程 .................................................... 11 第5章 系统仿真测试 .................................................. 14 结 论 ................................................................ 17 致 谢 ................................................................ 18 参考文献 .............................................................. 19 附录1 总电路原理图 ................................................... 20 附录2 源程序 ......................................................... 21
摘 要
随着社会经济的发展,交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代交通监控指挥系统中最重要的组成部分。
本设计是一款基于MCS-51单片机的交通控制系统,它可以实现对车辆、行人的有效导引。根据题目要求,设计中我选用LED发光二极管,简化了设计,并把LED发光管排成十字型,作为直行和左右拐弯指示,形象直观;选择LED发光二极管可以从发光颜色上区别人的通行与停止,该系统还可根据交通拥挤情况分别设置主干道和次干道的通行时间,以提高效率,缓减交通拥挤。
关键词 单片机;交通灯;控制器
第1章 绪 论
随着社会经济的发展,交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代交通监控指挥系统中最重要的组成部分。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
第2章 方案设计
以广元市劳动大厦十字路口为例,由东西方向和南北方向两干道构成十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮表示红、绿灯即将切换,这时车辆禁止通行。一般主干道比次干道车流量大。交通道路口模型如图2-1所示。
黄灯燃亮时间
图2-1 交通道路口模型图
根据上图可知本设计以单片机为控制核心,采用MCS-51的结构,模块化设计,共分以下几个功能模块:单片机主控制模块、驱动模块、交通灯、时钟电路、复位电路等。友好的人机界面、灵活的控制方式、优化的物理结构以及丰富的功能是本设计的亮点。系统总体设计原理方框图如图2-2所示。
图2-2 系统总体设计方框图
第3章 硬件设计
3.1 单片机最小系统
单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理
口接的是南北方向的南右拐和北左拐的两盏灯;P1.1、P1.2、P1.3口分别接的是南北方向的黄灯、绿灯、红灯各两盏。P0.0、P0.1、P0.2、P0.3口接东西方向人行道上的四盏灯,其中P0.0和P0.2口接人行道的红灯,P0.1和P0.3口接人行道的绿灯。P0.4、P0.5、P0.6、P0.7口分别接南北方向人行道的四盏灯,其中P0.4和P0.6口接人行道的红灯,P0.5和P0.7口接人行道的绿灯。P2.0口和P2.4口分别为东西方向的东右拐,西左拐
两盏灯和东左拐,西右拐两盏灯。P2.1、P2.1、P2.3口分别接东西方向的红灯、绿灯、黄灯各两盏。
复位电路有两种形式:手动按键上电复位和上电复位,在本系统中采用的是手动按键上电复位,电路如图3-2所示。由RST脚接上电容C3为10pF和R2为10K的电阻接地构成。
图3-2 复位电路
时钟电路是由XTAL1和XTAL2之间跨接的晶体振荡器和微调电容C1、C2为30pf构成,电路如图3-3所示。时钟电路中晶体振荡器的频率高则系统的时钟频率就高,所以该系统采用12M晶振。
图3-3 时钟电路
3.2 驱动电路
驱动部分采用74LS05非门来对LED发光二极管进行驱动,当输入为高点平时,输出为低电平。确保LED发光二极管的稳定性,能更有效地工作。74LS05为六组反向器,共有54/7405、54/74H05、54/74S05、54/74LS05 四种线路结构形式,其主要电特性的典型值如表3-1所示。
表3-1 74LS05的型号
引出端符号 1A-6A 输入端 1Y-6Y 输出端。 电源电压…………………………………………7V; 输入电压 54/7405、54/74H05、54/74S05……………5.5V; 工作环境温度 ………………………………… -55~125℃; 存储温度 ………………………………………….-65~150℃。 动态特性(TA=25℃)如表3-2所示。
表3-2 74LS05各型号的动态特性
3.3 交通灯模块
交通灯电路如图3-3所示。采用LED发光二极管,有三种颜色指示放行与禁止、等待直观。其中,绿灯表示放行,黄灯表示等待,红灯表示禁止。在设计中总共用到发光二极管36只。友好的人机界面、灵活的控制方式以及丰富的功能是本设计亮点。
图3-3 交通灯模块
第4章 软件设计
4.1 主程序流程
系统的软件设计可以分为几个部分,首先编写各个模块的底层驱动程序,而后是系统联机调试,编写上层系统程序。本系统软件程序主要包括有交通灯的四种通行方式的子程序。四种通行方式分别如图4-1所示。
a) 方式一 b) 方式二
c) 方式三 d) 方式四
图4-1 交通灯的四种工作方式
根据上图可以得出以下通行方式的规则,如表4-1所示。
表4-1 四种工作方式的通行规则
根据上表的通行方式规则可得出交通灯的亮灭情况,如表4-2所示。
表4-2 四种工作方式的通行规则
表4-2中的四种通行方式规则如下:
1.一般主干道通行时间要比次干道通行时间长5s,可以根据实际情况进行调整,以提高车辆通过率,缓减交通压力。在通行结束前5秒钟,黄灯闪烁直至结束,提醒红、绿灯的切换。其中红灯表示禁止,绿灯表示通行。
2.特别说明的是各路右拐、左拐、人行比直行滞后5秒钟开放。
3.当LED为绿灯时,此时该端口输出高点平。当LED为红灯时,此时该端口输出低电平。
图4-2主流程图
4.2 子程序流程
四种工作方式的子程序流程图分别如图4-3、4-4、4-5、4-6所示。
图4-3 方式一流程
图4-4 方式二流程
图4-5 方式三流程
图4-6 方式四流程
第5章 系统仿真测试
交通灯通行方式的三种仿真图,如5-1、5-2、5-3所示。
图5-1 方式一仿真图
方式一为东西方向绿灯亮,东西方向右拐灯亮,东西方向人行道绿灯亮。南北方向红灯亮,南北方向右拐灯亮,人行道红灯亮。
图5-2 方式二仿真图
在第一种完了即将到达5秒时,南北方向的绿灯跳变,说明南北和东西方向的灯即将切换。
图5-3 方式三仿真图
方式三为南北方向绿灯亮,南北方向右拐灯亮,南北方向人行道绿灯亮。东西方向红灯亮,东西方向右拐灯亮,人行道红灯亮。
结 论
本设计以功能齐全适用于大众为指导思想,以单片机为基准,选取AT89C51单片机为控制核心。通过采用发光二极管显示红、黄、绿三种颜色来确定指示车辆及人的有序、安全地行驶。软件程序均采用C语言编写,便于移植与升级。
系统经组装、调试后,可以稳定运行。同时可以对交通的安全进行。系统采用串行器件具有线路简单、体积小、价格低等优点。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。
通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
致 谢
为期一个学期的毕业设计终于接近尾声了,在这短短的几个月里,不仅仅考察了大学三年自己所学要的东西,更重要的是把自己从老师从课本里所了解的东西应用到实践应用中,检验了自己的能力。虽然有过成功,有过失败,有过欢笑,有过泪水,但是过程其实才是最重要的。
通过本次毕业设计,我在曾宝国指导老师的精心指导和严格要求下,获得了丰富的理论知识,并在设计过程中,翻阅大量的科技文献,针对设计内容的要求,对所学过的专业知识又认真细致的进行巩固和练习,在硬件和软件的组合上认真听取了曾老师和系领导的意见,在很大程度上使这次设计顺利通过老师的审核和评定.在另一方面极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。另外,此次毕业设计还得到了电子系各位领导和我们通信专业几位老师的大力支持。在此,我忠心感谢曾宝国老师以及电子系各位老师的指导和支持。在未来的工作和学习中,我将以更好的成绩来回报各位领导和老师,回报老师和母校的辛勤栽培,做一名优秀的大学毕业生,奉献社会。
参考文献
[1] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版,1996
[2] 付家才.单片机控制工程实践技术[M].北京:化学工业出版社,2004
[3] 潘新民.微型计算机控制技术[M].北京:人民邮电出版社,1999
[4] 李广弟.单片机基础.北京:北京航空航天大学出版社,1992
[5] 何立民.单片机应用技术大全.北京:北京航空航天大学出版社,1994
[6] 张毅刚.单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,1995
[7] 谭浩强.单片机课程设计. 北京:清华大学出版社,1989
[8] [美]Myke Predko 著,张晓林等译.数字电路原理与设计实例解析(Digital
Electronics Guidebook With Projects). 北京:电子工业出版社,2004
附录1 总电路原理图
附录2 源程序
SECOND1 EQU 30H
SECOND2 EQU 31H
DBUF EQU 40H
TEMP EQU 44H
LED_G1 BIT P2.2
LED_Y1 BIT P2.3
LED_R1 BIT P2.1
LED_B1 BIT P2.0
LED_B2 BIT P2.4
LED_B3 BIT P0.1
LED_B4 BIT P0.0
LED_B5 BIT P0.3
LED_B6 BIT P0.2
LED_G2 BIT P1.2
LED_Y2 BIT P1.1
LED_R2 BIT P1.3
LED_A1 BIT P1.0
LED_A2 BIT P1.4
LED_A3 BIT P0.6
LED_A4 BIT P0.7
LED_A5 BIT P0.5
LED_A6 BIT P0.4 ;东西路口计时寄存器 ;南北路口计时寄存器 ;显示码缓冲区1 ;显示码缓冲区2 ;东西路口绿灯 ;东西路口黄灯 ;东西路口红灯 ;东西路口左侧左拐红灯 ;东西路口右侧右拐绿灯 ;东西路口左侧人行横到红灯 ;东西路口左侧人行横到绿灯 ;东西路口右侧人行横到红灯 ;东西路口右侧人行横到绿灯 ;南北路口绿灯 ;南北路口黄灯 ;南北路口红灯 ;南北路口左侧左拐红灯 ;南北路口右侧右拐绿灯 ;南北路口左侧人行横到红灯 ;南北路口右侧人行横到绿灯 ;南北路口右侧人行横到红灯 ;南北路口右侧人行横到绿灯
ORG LJMP ORG 0000H START 0100H
TMOD,#01H
;置T0为工作方式1 START: MOV
MOV MOV CLR SETB CLR MOV TH0,#3CH TL0,#0B0H TF0 A P1,A TR0 ;置T0定时初值50ms ;启动T0 ;关闭不相关的LED ;*************************************************** LOOP: MOV
WAIT1: LCALL
JNB CLR MOV MOV DJNZ MOV DEC STATE1 ;调用状态1 MOV MOV MOV R2,#20 ;置1s计数初值,50ms*20=1s R3,#20 ;红灯亮20s ;东西路口计时显示初值25s ;南北路口计时显示初值25s SECOND1,#25 SECOND2,#25 DISPLAY LCALL TF0,WAIT1 TF0 ;查询50ms到否 TH0,#3CH TL0,#0B0H ;恢复T0定时初值50ms R2,WAIT1 ;判断1s到否?未到继续状态1 R2,#20 SECOND1 ;置50ms计数初值 ;东西路口显示时间减1s
LCALL DJNZ DISPLAY R3,WAIT1 ;状态1维持20s ;*******************************************
MOV MOV MOV MOV MOV R2,#5 R3,#3 R4,#4 ;置50ms计数初值 ;绿灯闪3s ;闪烁间隔200ms ;东西路口计时显示初值5s ;南北路口计时显示初值5s 5*4=20 SECOND1,#5 SECOND2,#5 DISPLAY
LCALL WAIT2: LCALL STATE2
JNB CLR MOV MOV DJNZ CPL MOV DJNZ MOV DEC DEC ;调用状态2 ;查询50ms到否 TF0,WAIT2 TF0 TH0,#3CH TL0,#0B0H ;恢复T0定时初值50ms R4,WAIT2 ;判断200ms到否?未到继续状态2 ;东西绿灯闪 ;闪烁间隔200ms ;判1s到否?未到继续状态2 ;置50ms计数初值 ;东西路口显示时间减1s ;南北路口显示时间减1s LED_G1 R4,#4 R2,WAIT2 R2,#5 SECOND1 SECOND2 LCALL DJNZ DISPLAY R3,WAIT2 ;状态2维持3s
;****************************************
MOV R2,#20 ;置50ms计数初值
MOV MOV ;东西路口计时显示初值2s ;南北路口计时显示初值2s SECOND1,#2 SECOND2,#2 DISPLAY
LCALL WAIT3: LCALL STATE3
JNB CLR MOV MOV DJNZ MOV DEC DEC ;调用状态3 ;查询100ms到否 TF0,WAIT3 TF0 TH0,#3CH TL0,#0B0H ;恢复T0定时初值100ms R2,WAIT3 ;判断1s到否?未到继续状态3 ;置100ms计数初值 ;东西路口显示时间减1s ;南北路口显示时间减1s R2,#20 SECOND1 SECOND2 LCALL DJNZ DISPLAY R3,WAIT3 ;状态3维持2s
;*******************************************
MOV MOV MOV MOV R2,#20 R3,#20 ;置50ms计数初值 ;红灯闪20s ;东西路口计时显示初值25s ;南北路口计时显示初值25s SECOND1,#25 SECOND2,#25 DISPLAY
LCALL WAIT4: LCALL STATE4
JNB CLR MOV MOV ;调用状态4 ;查询100ms到否 TF0,WAIT4 TF0 TH0,#3CH TL0,#0B0H ;恢复T0定时初值100ms
MOV DEC DEC ;置100ms计数初值 ;东西路口显示时间减1s ;南北路口显示时间减1s R2,#20 SECOND1 SECOND2 LCALL DJNZ DISPLAY R3,WAIT4 ;状态4维持20s
;*******************************************
MOV MOV MOV MOV MOV R2,#5 R4,#4 R3,#3 ;置50ms计数初值 ;红灯闪20ms ;绿灯闪3s ;东西路口计时显示初值5s ;南北路口计时显示初值5s SECOND1,#5 SECOND2,#5 DISPLAY LCALL LJMP LOOP ;大循环
;********************************************** STATE1:
;状态1 ;东西路口绿灯亮 SETB CLR CLR CLR SETB CLR LED_G1 LED_Y1 LED_R1 LED_B1 LED_B2 ;东西路口右侧右拐绿灯亮 LED_B3
LED_B4
SETB CLR LED_B5
LED_B6
SETB
CLR LED_G2
CLR LED_Y2
SETB LED_R2
SETB LED_A2
SETB LED_A3
CLR LED_A4
SETB LED_A5
CLR LED_A6
RET
STATE2:
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2
RET
STATE3:
CLR LED_G1
CLR LED_Y1
SETB LED_R1
CLR LED_B1
SETB LED_B2
SETB LED_B3
CLR LED_B4
SETB LED_B5
CLR LED_B6 ;南北路口红灯亮 ;南北方向右侧右拐灯亮 ;状态2 ;南北路口红灯亮 ;状态3 ;东西路口绿灯灭 ;东西路口黄灯灭 ;东西路口红灯亮 ;东西路口右侧右拐绿灯亮
SETB CLR CLR SETB LED_G2 LED_Y2 LED_R2 LED_A2 ;南北路口红灯亮 ;南北方向右侧右拐灯亮 CLR LED_A3
SETB LED_A4
CLR LED_A5
SETB LED_A6
RET
STATE4:
CLR LED_G1
CLR LED_Y1
SETB LED_R1
SETB LED_G2
CLR LED_Y2
CLR LED_R2
RET
DISPLAY:
MOV A,SECOND1
MOV B,#10
DIV AB
MOV DBUF+3,A
MOV A,B
MOV DBUF+2,A ;状态4 ;东西路口红灯亮 ;南北路口绿灯亮 ;数码显示 ;东西路口计时寄存器 ;16进制数拆成两个10进制数
MOV B,#10
;16进制数拆成两个10进制数
DIV MOV MOV MOV MOV MOV
MOV
DP10: MOV MOV MOVC MOV INC INC DJNZ MOV
MOV
DP12: MOV
MOV
DP13: RLC MOV CLR SETB DJNZ
INC
AB DBUF+1,A A,B DBUF,A R0,#DBUF R1,#TEMP R7,#4 DPTR,#LEDMAP A,@R0 A,@A+DPTR @R1,A R0 R1 R7,DP10 R0,#TEMP R1,#4 R7,#8 A,@R0 A P3.0,C P3.1 P3.1 R7,DP13 R0
第28页共29页
RET
LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 58H,5EH,7BH,71H,0,40H ;0,1,2,3,4,5 ;6,7,8,9,A,B
;C,D,E,F, ,-
END
第29页 共29页
四川信息职业技术学院 毕业设计(论文)评语