资源描述
单片机控制交通灯控制系统设计
所在学院:电气工程和自动化学院
目
1摘要
2 系统总体方案及硬件设计………………………………………………………1
2.1设计要求………………………………………………………………………1
2.2设计任务………………………………………………………………………1
2.3总体设计………………………………………………………………………1
2.4硬件设计………………………………………………………………………1
3 软件设计……………………………………………………………………………6
3.1总体步骤图……………………………………………………………………7
3.2子程序步骤图…………………………………………………………………8
3.3循环控制思绪……………………………………………………………………8
4 Proteus软件仿真…………………………………………………………………9
4.1正常运行仿真…………………………………………………………………9
4.2紧急中止仿真………………………… ……………………………………9
4.3南北强制通行仿真……………………………… ……………………………10
4.4东西强制通行仿真…………………… ………………………………………10
5 课程设计体会………………………… …………………………………………11
6 参考文件…………………………………………………………………………12
7 附录………………………………………………………………………………13
7.1录源程序代码附
7.2系统原理图……………………………………………………………………19
摘要
本设计是单片机控制交通灯控制系统设计伴随社会经济发展,城市交通问题越来越引发大家关注。人、车、路三者关系协调,已成为交通管理部门需要处理关键问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制和交通疏导计算机综合管理系统,它是现代城市交通监控指挥系统中最关键组成部分。所以,怎样采取适宜控制方法,最大程度利用好花费巨款修建城市高速道路,缓解主干道和匝道、城区同周围地域交通拥堵情况,越来越成为交通运输管理和城市计划部门亟待处理关键问题。
目前,中国大多数城市正在采取“自动”红绿交通灯,它含有固定“红灯—绿灯”转换间隔,并自动切换。它们通常由“通行和严禁时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
现在我们利用“自动控制”控制交通灯方法。将事先编制好程序输入单片机,利用单片机定时、查询、中止功效;能够依据十字路口两个方向上车辆动态情况,采取查询方法,依据具体情况,自动给时间通行,其中利用中止方法来处理特殊情况。这么既方便驾驶员、路人,同时还能够紧急处理部分紧急实况。一样含有红、黄、绿灯显示功效,为驾驶员、路人“照明”。
2系统总体方案及硬件设计
2.1设计要求:
1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上车辆交替运行,主干道每次通行时间全部设为30秒、支干道每次通行间为20秒;
2)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;
3)黄灯亮时,要求每秒闪亮一次。
4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一个灯亮时间全部用显示器进行显示(采取计时方法)。
5)一道有车而另一道无车(试验时用开关 K0 和 K1 控制),交通灯控制系统能立即让有车道放行。
6)有紧急车辆要求经过时,系统要能严禁一般车辆通行,A、B道均为红灯,紧急车由K2 开关模拟。
2.2设计目标:
1)东西、南北车辆交替运行。
2)绿灯转为红灯时,黄灯闪亮(间隔1秒)。
3)能显示剩下时间。
4)能对交通运行进行控制。
2.3总体设计
单片机
晶振电路
键盘
LED数码管显示
LED指示灯
复位电路
2.4硬件设计
1)单片机选型:AT89S52
和MCS-51单片机产品兼容 、8K字节在系统可编程Flash存放器、 1000次擦写周期、 全静态操作:0Hz~33Hz 、 三级加密程序存放器 、 32个可编程I/O口线 、三个16位定时器/计数器 八个中止源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中止可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。
功效特征描述
At89s52 是一个低功耗、高性能CMOS8位微控制器,含有 8K 在系统可编程Flash 存放器。使用Atmel 企业高密度非 易失性存放器技术制造,和工业80C51 产品指令和引脚完 全兼容。片上Flash许可程序存放器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效处理方案。 AT89S52含有以下标准功效: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中止结构,全双工串行口, 片内晶振立即钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,许可RAM、定时器/计数器、串口、中止继续工 作。掉电保护方法下,RAM内容被保留,振荡器被冻结, 单片机一切工作停止,直到下一个中止或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52
P0 口:P0口是一个8位漏极开路双向I/O口。作为输出口,每位能驱动8个TTL逻
辑电平。对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存放器时,P0口也被作为低8位地址/数据复用。在这种模式下,
P0含有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验
时,需要外部上拉电阻。
P1 口:P1 口是一个含有内部上拉电阻8 位双向I/O 口,p1 输出缓冲器能驱动4 个
TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时能够作为输入
口使用。作为输入使用时,被外部拉低引脚因为内部电阻原因,将输出电流(IIL)。
另外,P1.0和P1.2分别作定时器/计数器2外部计数输入(P1.0/T2)和时器/计数器2
触发输入(P1.1/T2EX),具体以下表所表示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功效
P1.0 T2(定时器/计数器T2外部计数输入),时钟输出
P1.1 T2EX(定时器/计数器T2捕捉/重载触发信号和方向控制)
P1.5 MOSI(在系统编程用)
P1.6 MISO(在系统编程用)
P1.7 SCK(在系统编程用)
P2 口:P2 口是一个含有内部上拉电阻8 位双向I/O 口,P2 输出缓冲器能驱动4 个
TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时能够作为输入
口使用。作为输入使用时,被外部拉低引脚因为内部电阻原因,将输出电流(IIL)。
在访问外部程序存放器或用16位地址读取外部数据存放器(比如实施MOVX @DPTR)
时,P2 口送出高八位地址。在这种应用中,P2 口使用很强内部上拉发送1。在使用
8位地址(如MOVX @RI)访问外部数据存放器时,P2口输出P2锁存器内容。
在flash编程和校验时,P2口也接收高8位地址字节和部分控制信号。
P3 口:P3 口是一个含有内部上拉电阻8 位双向I/O 口,p2 输出缓冲器能驱动4 个
TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时能够作为输入
口使用。作为输入使用时,被外部拉低引脚因为内部电阻原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功效(第二功效)使用,以下表所表示。
在flash编程和校验时,P3口也接收部分控制信号。
端口引脚 第二功效
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 INTO(外中止0)
P3.3 INT1(外中止1)
P3.4 TO(定时/计数器0)
P3.5 T1(定时/计数器1)
P3.6 WR(外部数据存放器写选通)
P3.7 RD(外部数据存放器读选通)
另外,P3口还接收部分用于FLASH闪存编程和程序校验控制信号。
RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程序存放器或数据存放器时,ALE(地址锁存许可)输出脉冲用于锁存地址低8位字节。通常情况下,ALE仍以时钟振荡频率1/6输出固定脉冲信号,所以它可对外输出时钟或用于定时目标。要注意是:每当访问外部数据存放器时将跳过一个ALE脉冲。
对FLASH存放器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必需,可经过对特殊功效寄存器(SFR)区中8EH单元D0位置位,可严禁ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。另外,该引脚会被微弱拉高,单片机实施外部程序时,应设置ALE严禁位无效。
PSEN——程序储存许可(PSEN)输出是外部程序存放器读选通信号,当AT89C52由外部程序存放器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存放器,将跳过两次PSEN信号。
EA/VPP——外部访问许可,欲使CPU仅访问外部程序存放器(地址为0000H-FFFFH),EA端必需保持低电平(接地)。需注意是:假如加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则实施内部程序存放器指令。
FLASH存放器编程时,该引脚加上+12V编程许可电源Vpp,当然这必需是该器件是使用12V编程电压Vpp。
引脚结构图以下所表示:
2)复位电路:上电+按钮
复位电路原理图
当8051ALE及/PSEN两引脚输出高电平,RST引脚高电平到时,单片机复位。RST/VPD端高电平,若直接由开启瞬间产生,则为开启复位,若经过按动按钮产生高电平复位称手动复位。图中,上电时,接通电源,电容器C相当于瞬间短路,+5V加到了RST/VPD端,该高电平使8051全机复位。若运行过程中,需要程序从头实施,只需按动按钮S,则直接把+5V加到了RST/VPD端,从而复位。显然,该电路即能够上电复位,也能够手动复位,是常见复位电路之一。
3)晶振电路
晶振电路原理图
4)键盘:独立键盘+中止
5)数码管显示:LED7段码
6)发光二极管显示
3软件设计
3.1总体步骤图
程序组成:
调南北通行子程序
调南北黄灯闪烁子程
调东西通行子程
调东西黄灯闪烁子程
是否有中止按键按下?
中止处理
中止初始化
中止返回(到子程序处)
NO
YES
开 始
3.2 紧急中止子程序步骤图
断点入栈保护
状态参数设置
送状态字至端口
状态响应
断点返回
开 始
开 始
3.3循环步骤控制思绪:
东西绿灯
南北红灯
东西黄灯闪
南北红灯亮
东西红灯
南北绿灯
东西红灯亮
南北黄灯闪
4 Proteus软件仿真
4.1 正常运行仿真图
4.2 紧急中止仿真图
4.3
南北强制通行仿真
4.4
东西强制通行仿真图
课程设计体会
30天单片机课程设计很快就结束了,在这一月当中,即使开始有点困难,不过经过我们们分工合作,合理地进行设计安排,再加上老师耐心指导,我们们最终顺利地完成了此次单片机课程设计,同时也学到了很多东西。在此次课程设计中,我们经过动手实践操作,深入学习和掌握了单片机原理相关知识,尤其是程序编程方面,加深了对单片机原理及应用技术认识,深入巩固了对单片机知识了解,掌握简单单片机应用系统设计、制作、调试方法。在设计时依据课题要求,复习相关知识,查询相关资料。依据试验条件,找到适合方案,找到需要元器件及工具,进行试验。
这次单片机课程设计关键是经过实践操作和理论相结合,提升动手实践能力,提升科学思维能力,更在一周时间了解了更多相关单片机知识,使知识愈加丰富,使自己愈加充实。和此同时,我们也对团体分工合作有了深入认识,只有经过合理分工合作,我们们才能够在短短一周时间内完成设计任务,相信这对以后在社会上工作和学习会有很多帮助,让我们能愈加好进入工作状态。最关键是,这次课程设计也增加了我们对问题研究和探讨,们以后学习中会有更多帮助。
单片机为我们关键专业课之一,但要做好一个课程设计,就必需做到:在设计程序之前,对所用单片机内部结构有一个系统了解,知道该单片机内有哪些资源;要有一个清楚思绪和一个完整软件步骤图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不停改善是程序设计必经之路;要养成注释程序好习惯,一个程序完美是否不仅仅是实现功效,而应该让人一看就能明白你思绪,这么也为资料保留和交流提供了方便;在设计课程过程中碰到问题是很正常德,但我们们应该将每次碰到问题统计下来,并分析清楚,以免下次再碰到一样问题课程设计结束了,不过从中学到知识会让我们受益终生。在设计过程中发觉了自己不足之处,对以前所学过知识了解得不够深刻,掌握得不够牢靠。我们们经过查阅大量相关资料,并在小组中相互讨论,交流经验和自学,若碰到实在搞不明白问题就会立即请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获一样巨大。经过这次课程设计我们也发觉了本身存在不足之处,即使感觉理论上已经掌握,但在利用到实践过程中仍有意想不到迷惑,经过一番努力才得以处理。
在完成单片机课程设计后,我们们发觉我们们还有很多不足,所学到知识还远远不够,以至于还有部分功效不能被动完成。但经过学习这一次实践,增强了我们们动手能力,提升和巩固了单片机方面知识,尤其是软件方面。从中增强了我们团体合作精神,并让我们们认识到把理论应用到实践中去是多么关键。
参考文件
[1] 卢艳军.单片机原理及应用系统. 北京:机械工业出版社,.2
[2] 余发山,王福忠等.单片机原理及应用. 徐州:中国矿业大学出版社,.5
[3] 金显贺,王昌长,王忠东等.一个用于在线检测局部放电数字滤波技术.清华大学学报(自然科学版),1993,33(4):62-67
[4] 刘国钧,陈绍业,王凤翥.图书馆目录.北京:高等教育出版社,1957.15-18
[5] 王明亮.相关中国学术期刊标准化数据库系统工程进展.
[6] 张洪润.单片机原理及应用系统. 北京:机械工业出版社,.2
[7] 胡雪梅.单片机原理及应用. 北京:清华大学出版社,.5
[8] 穆兰.单片机原理及接口技术. 北京:机械工业出版社,.5
7附录
7.1 源程序代码
ORG 0000H
AJMP START
ORG 0003H
LJMP INT00
ORG 0013H
LJMP INT10
START: MOV SP,#60H
SETB EX0
SETB EX1
SETB EA
;LCALL ST00
MAIN: LCALL ST10
LCALL ST20
LCALL ST30
LCALL ST40
LJMP MAIN
ST00: MOV A,#00
MOV P2,A
ST10:MOV R7,#30
ST11:MOV R0,#0DEH
MOV P2,R0
LCALL DELAY1S
RET
ST20:MOV R4,#05
ST21:MOV R0,#0DDH
MOV P2,R0
MOV R5,#05
L22:LCALL DELAY01S ;延时0.5S
DJNZ R5,L22
MOV R0,#0DFH
MOV P2,R0
MOV R5,#05
L23:LCALL DELAY01S ;延时0.5S
DJNZ R5,L23
DJNZ R4,ST21
RET
ST30:MOV R7,#20
MOV R0,#0F3H
MOV P2,R0
LCALL DELAY1S
RET
ST40:MOV R4,#05
ST41:MOV R0,#0EBH
MOV P2,R0
MOV R5,#05
L42:LCALL DELAY01S ;延时0.5S
DJNZ R5,L42
MOV R0,#0FBH
MOV P2,R0
MOV R5,#05
L43:LCALL DELAY01S ;延时0.5S
DJNZ R5,L43
DJNZ R4,ST41
; JMP ST10
RET
DELAY1S: MOV R3,#50 ; R3存循环20ms次数(50次)
CLR A
DIS0: MOV A,R7
LCALL X0
DJNZ R3,DIS0
DJNZ R7,DELAY1S
RET
DELAY01S: MOV R7,#05 ; R2存循环20ms次数(5次)
CLR A
DIS1: MOV A,R4
LCALL X0
DJNZ R7,DIS1
RET
DELAY10MS: MOV R2,#20 ;键扫描10ms子程序
DEL1: MOV R6,#248
DJNZ R6,$
DJNZ R2,DEL1
MOV R6,#00
MOV R2,#00
RET
TAB: DB 3FH,06H,5BH,4FH
DB 66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH
DB 39H,5EH,79H,71H
DB 40H,00H
X0: MOV R6,A
MOV R1,#40H R3,R4,R5,
MOV A,R6
MOV B,#10
DIV AB
MOV @R1,A
INC R1
MOV @R1,B
MOV DPTR,#TAB
MOV A,@R1
MOVC A,@A+DPTR
MOV P0,A
CLR P3.7
LCALL DELAY10MS
SETB P3.7
DEC R1
MOV DPTR,#TAB
MOV A,@R1
MOVC A,@A+DPTR
MOV P0,A
CLR P3.6
LCALL DELAY10MS
SETB P3.6
RET
INT00: MOV 36H,R7
PUSH 36H
MOV 37H,R0
PUSH 37H
MOV 39H,R3
PUSH 39H
MOV R7,#10 ;紧急情况按钮,南北停止通行,均为红灯,连续10秒。
MOV P2,#0DBH
LCALL DELAY1S
POP 39H
POP 37H
POP 36H
MOV R7,36H
MOV R0,37H
MOV P2,R0
MOV R3,39H
RETI
INT10: MOV 36H,R7 ;R7----XIANSHIMIAOSHU
PUSH 36H ;R0----p2 显示灯状态
MOV 37H,R0 ;
PUSH 37H
MOV 38H,R6
PUSH 38H
MOV 39H,R3
PUSH 39H
;JNB P3.4,SV1
;JNB P3.5,SV2
; RET
SV1: MOV R7,#10 ;南北车流量多,切换成南北方向上运行
MOV R0,#0DEH
MOV P2,R0
LCALL DELAY1S
AJMP RETN
SV2: MOV R7,#10 ;东西车流量多,切换成东西方向上运行
MOV R0,#0F3H
MOV P2,R0
LCALL DELAY1S
AJMP RETN
RETN: POP 39H
MOV R3,39H
POP 38H
MOV R6,38H
POP 37H
MOV R0,37H
POP 36H
MOV R7,36H
RETI
7.2
系统原理图
展开阅读全文