交通信号灯课程设计 安宗礼.docx
- 文档编号:15683474
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:14
- 大小:165.25KB
交通信号灯课程设计 安宗礼.docx
《交通信号灯课程设计 安宗礼.docx》由会员分享,可在线阅读,更多相关《交通信号灯课程设计 安宗礼.docx(14页珍藏版)》请在冰点文库上搜索。
交通信号灯课程设计安宗礼
单片机课程设计
题目:
交通灯控制系统设计
班级:
自动化071班
姓名:
安宗礼
学号:
200708136
指导教师:
董唯光
设计时间:
2010.7.19—2010.7.23
评语:
成绩
目录
1、引言-3-
2、设计方案及原理-3-
3、硬件设计-4-
3.1硬件原理框图-4-
3.2信号灯模拟部分电路设计-4-
3.3开关电路设计-5-
3.4全电路图-6-
3.5主要芯片介绍-7-
3.5.1主要特性-8-
3.5.2管脚说明-8-
4、软件设计-10-
5、总结-11-
6、参考文献-12-
7、附录-12-
7.1源程序-12-
基于AT89C51单片机的交通灯控制系统设计
1、引言
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
2、设计方案及原理
交通控制系统主要控制A、B两车道的交通,以AT89C51单片机为核心芯片,通过控制三色LED的亮灭来控制个车道的通行;另外通过3个按键来模拟各车道有无车辆的情况和有紧急车辆的情况。
根据设计要求,制定总体设计思想如下:
1、正常情况下运行主程序,采用0.5s延时子程序的反复调用来实现各种定时时间。
2、一车道有车而另一道无车时,采用外部中断1执行中断服务程序,并设置该中断为低级优先级中断。
3、有紧急车辆通过时,采用外部中断0执行中断服务程序,并设置置该中断为高级优先级中断,实现二级中断嵌套。
3、硬件设计
3.1硬件原理框图
图1硬件原理框图
3.2信号灯模拟部分电路设计
用12只发光二极管模拟交通和信号灯,如下图:
图2模拟部分电路设计图
发光二极管简称为LED。
由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。
磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。
3.3开关电路设计
图3开关电路设计图
分别以按键SWA、SWB模拟A、B道德车辆检测信号,开关SWA按下时,A车道放行;开关SWB按下时,B车道放行;以按键SW0模拟紧急车辆通过开关,当SW0为高电平时属正常情况,当SW0为低电平时,属紧急车辆通过情况。
3.4全电路图
图4全电路图
3.5主要芯片介绍
在设计中,AT89C51用于产生波形的数字信号,并控制信号的频率和幅度。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其引脚图如下图所示:
图5AT89C51引脚图
3.5.1主要特性
•8031CPU与MCS-51兼容
•4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
•全静态工作:
0Hz-24KHz
•三级程序存储器保密锁定
•128*8位内部RAM
•32条可编程I/O线
•两个16位定时器/计数器•6个中断源
•可编程串行通道
•低功耗的闲置和掉电模式
•片内振荡器和时钟电路
3.5.2管脚说明
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL),这是由于上拉的缘故。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET,当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
VCC:
供电电压。
GND:
接地。
4、软件设计
图6主流程图
主程序采用查询方式定时,有R2寄存器确定调用0.5s延时子程序的次数,从而获取交通灯的各种时间。
子程序采用定时器1方式1查询式定时,定时器定时50ms,R3寄存器确定50ms循环10次,从而获取0.5s的延时时间。
有车道放行的中断服务程序首先要保护现场,因需用到延时子程序和P1口,故需保护的寄存器有R3、P1、TH1,保护现场时还需关中断,以防止高优先级中断(紧急车辆通过所产生的中断)出现导致程序混乱。
开中断,由软件查询P3.0和P3.1口,判别那一道有车,再根据查询情况执行相应的服务。
待交通等信号出现后,保持15S的延时,然后,关中断,恢复现场,再开中断,返回主程序。
紧急中断出现时的中断服务程序也需要保护现场,但无须关中断(因其为高优先级中断),然后执行相应的服务,带交通等信号出现后延时20s,确保紧急车辆通过交叉路口,然后,恢复现场,返回主程序。
图7中断服务流程图
5、总结
本系统就是充分利用了8051芯片的I/O引脚。
系统采用MSC-51系列单片机Intel8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示。
系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。
这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现。
通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
在课程设计的这几天里,我在设计的过程中遇到了很多问题,通过解决问题我有更加深入的研读课本及其他图书馆资料,不但解决了难题,还掌握了许多新知识就、拓展了视野和思维。
再一个就是学习了一些关于单片机系统设计的模拟和仿真软件,如protous、keil等,是我在这方面的序曲大大增加,提高了我学习的动力。
使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
6、参考文献
[1]李华,王思明,张金敏.单片机原理及应用[M].兰州:
兰州大学出版社.2001
[2]赵晓安.MCS-51单片机原理及应用.[M].天津大学出版社,2001.3
[3]杨居义.单片机课程设计指导.[M].北京:
清华大学出版社,2009.9.
7、附录
7.1源程序:
ORG0003H
LJMPINTT0;转向紧急车辆中断服务程序
ORG0013H
LJMPINTT1;转向有车车道中断服务程序
ORG0200H
MAIN:
MOVSP,#30H
SETBPX0;置外部中断0为高优先级中断
MOVTCON,#00H;置外部中断0、1为电平触发
MOVTMOD,#10H;置定时器1为方式1
MOVIE,#85H;开CPU中断,开外部中断0、1中断
LOOP:
MOVP1,#0F3H;A道绿灯放行,B道红灯禁止
MOVR1,#90;置0.5s循环次数
DIP1:
ACALLDELAY;调用0.5s延时子程序
DJNZR1,DIP1;45s不到继续循环
MOVP1,#06;置A绿灯闪烁循环次数
WAN1:
CPLP1.2;A绿灯闪烁
ACALLDELAY
DJNZR1,WAN1;闪烁次数未到继续循环
MOVR1,#0F5H;A黄灯警告,B红灯禁止
MOVR1,#04H;置0.5s循环次数
YL1:
ACALLDELAY
DJNZR1,YL1
MOVP1,#0DEH;A红灯,Bl绿灯
MOVR1,#32H
DIP2:
ACALLDELAY
DJNZR1,DIP2
MOVR1,#06H
WAN2:
CPLP1.5;B绿灯闪烁
ACALLDELAY
DJNZR1,WAN2
MOVP1,#0EEH;A红灯,B黄灯
MOVR1,#04H
YL2:
ACALLDELAY
DJNZR1,YL2
AJMPLOOP;循环执行主程序
INTT0:
PUSHP1
PUSHTH1
PUSHTL1
MOVP1,#0F6H;A、B道均为红灯
MOVR2,#40;循环20s
DEY0:
ACALLDELAY
DJNZR2,DEY0
POPTL1
POPTH1
POPP1
RETI;返回主程序
INTT1:
CLREA;关中断
PUSHP1;压栈保护现场
PUSHTH1
PUSHTL1
SETBEA;开中断
JBP3.0,BOP;A道无车转向B道
MOVP1,#0F3H;A红灯,B绿灯
SJMPDEL1;转向15s延时
BOP:
JBP3.1,EXIT;B道无车退出中断
MOVP1,#0DEH;A红灯,B绿灯
DEL1:
MOVR5,0DEH;延时15s
NEXT:
ACALLDELAY
DJNZR5,NEXT
EXIT:
CLREA
POPTL1;弹栈恢复现场
POPTH1
POPP1
SETBEA
RETI
DELAY:
MOVR3,#0AH;0.5s子程序
MOVTH1,#3CH;置50ms初值
MOVTL1,#0B0H
SETBTR1;启动T1
LP1:
JBCTF1,LP2;查询计数器溢出
SJMPLP1
LP2:
MOVTH1,#3CH
MOVTL1,#0B0H
DJNZR3,LP1
RET
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通信号灯课程设计 安宗礼 交通 信号灯 课程设计