交通控制系统课程设计报告

上传人:无*** 文档编号:42675451 上传时间:2021-11-27 格式:DOC 页数:16 大小:853.23KB
收藏 版权申诉 举报 下载
交通控制系统课程设计报告_第1页
第1页 / 共16页
交通控制系统课程设计报告_第2页
第2页 / 共16页
交通控制系统课程设计报告_第3页
第3页 / 共16页
资源描述:

《交通控制系统课程设计报告》由会员分享,可在线阅读,更多相关《交通控制系统课程设计报告(16页珍藏版)》请在装配图网上搜索。

1、1主要内容 单片微型计算机(Single Chip Microcomputer)简称单片机,又称微控制器(Microcontroller Unit)或嵌埋式控制器(Embeded Controller),是将计算机的基本部件微型化,使之集成于一块芯片上的微机。片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。单片机具有体积小、功耗低、功能强、性价比高、易于推广应用等显著优点。新型单片机可承担数据与数值分析、信号处理、机器人智能控制,以及图象处理等复杂任务。目前,单片机已在自动化装置、智能化仪表、过程控制和家用电器等领域得到日益广泛的应用。单

2、片机交通灯系统的研制,一方面可以改善交通堵塞问题,疏导车流,提高道路利用率;另一方面可以节省交通警力,提高效率。2需求分析 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然的秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多,传统的交通信号灯控制系统一般由数字电路构成,电路复杂,体积大成本高。采用单片机控制交通信号,不仅可以简化电路结构,降低成本,减小体积,而且根据主、支干道车流量发生变化的实际情况,通过拨盘开关可以很方便地进行主、支干道通车时间的设定。本设计是模仿交通灯控制系统设计的一个交通灯控制电路,具有实用性强、操作简单的特点。3设计思想 系

3、统硬件的设计部分采用AT89S52单片机为核心器件,加以复位电路,时序电路构成最小系统,并通过驱动电路、数码管及晶体管构成显示部分。红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示,红绿灯信号通过P0口输出,显示时间直接通过单片机P2口和选择端送至双位数码管,通过扫描程序实现东西和南北方向数据的显示,同时能设置红、绿灯点亮时间。4实现方法交通控制系统主要控制A、B两车道的交通,以AT89S52单片机为核心芯片,通过控制三色LED的亮灭来控制各车道的通行,采用0.5S延时子程序的反复调用来实现各种定时时间。该电路具有电路简单,设计方便,显示亮度高,耗电较少,也非常的可靠等特点。总体设计框图如图1所示:

4、 图1 硬件模块图整个过程流程图如图2所示 红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示。初始化东西绿灯放行,倒计时40-0秒南北红灯禁止,倒计时45-0秒倒计时5秒,东西黄灯闪烁,南北红灯禁止南北绿灯放行,倒计时20-0秒东西红灯禁止,倒计时25-0秒倒计时5秒,南北黄灯闪烁,东西红灯禁止图2 交通灯流程图5芯片介绍 图3 单片机AT89S52AT89S52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89S52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL

5、公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89S52单片机可为您提供许多较复杂系统控制应用场合。AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89S52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 兼容MCS51指令系统 · 8k可反复擦写(>1000次)F

6、lash ROM · 32个双向I/O口 · 256x8bit内部RAM · 3个16位可编程定时/计数器中断 · 时钟频率0-24MHz · 2个串行中断 · 可编程UART串行通道 · 2个外部中断源 · 共6个中断源 · 2个读写中断口线 · 3级加密位 · 低功耗空闲和掉电模式 · 软件设置睡眠和唤醒功能 AT89S52P为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制

7、。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义

8、为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。6实现过程1)晶振电路模块晶振电路由一个晶体振荡器12MHZ和两个30pF的瓷片电容组成。用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。其电路如图4所示: 图4 晶振电路图2)复位电路模块 复位电路是使单片机的CPU或系统中的其他部件处于某一确定

9、的初始状态,并从此状态开始工作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位电路以重新启动。本设计采用的是按键复位电路。其电路如图5所示: 图5 复位电路图3)主控制系统模块主控制器采用AT89S52,是ATMEL公司生产的一款性能稳定的8位单片机。AT89S52具有1个8KB的FLASH程序存储器,1个512字节的RAM,4个8位的双向可位寻址I/O端口,3个16位定时/计数器及1个串行口和6个向量二级中断结构。单片机的P0口分别用于控制南北及东西的通行灯,P2口和P34-P37口用于4组2位LED计时器的控制,其主控电路如图6所示:

10、 图6 主控电路图4)交通灯输出控制模块道口交通灯指示采用高亮度红、黄、绿发光二极管进行提示。其图如图7所示 图7 交通指示灯线路图 当R=220欧时,按公式A=(5-1.8)/R计算,电路中的电流大小应为A=14.545mA.由于每个路口的通行双向指示处理相同,因此每个端口应具有3A的吸收电流能力。5)时间显示电路模块双位7段LED发光数码管共有10个引脚,各管脚所对应的数码管发光段如图8所示 图8 双位数码管引脚对应图 道口通行剩余时间采用高亮红色7段LED发光数码管显示,采用共阳极数码管,如用单片机吸收电流驱动,列扫描驱动使用三极管,按每段6mA电流计算,全显示字形“8”时,每个数码需6

11、mA*8=48mA,由于时间显示每个道口相同,共需要电流192mA,因此设计中也采用了中功率三极管8550.其显示电路如图9所示: 数码管的10号及5号管脚分别接三极管的C端,其它管脚按图中顺序依次接单片机的P2.0-P2.7端口 图9 时间显示电路模块7调试电路调试是利用开发系统、基本测试仪器(万用表、示波器等),检查系统硬件中存在的故障。其调试可分为静态调试与动态调试两步进行。静态调试静态调试是在系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源与地线之间是否有短路现象。第三步:加电检测

12、。给板加电,检测所有的插座或是器件的电源端是否符合要求的值。第四步:是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。动态调试动态调试是在系统工作的情况下发现和排除系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行

13、由近及的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。 软件调试软件调试是通过对拥护程序的C编程、连接、执行发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。运行程序后,编辑,查看程序是否有逻辑的错误。 调试过程中遇到的问题 1)在调试过程中出现数码管不亮的情况,通过查询资料和询问同学,得出出现此种情况是由于单片机驱动电流太小,故增加三极管起到放大电流的作用。 2)数码管的多个引脚通过跳线与单片机多个端口分别连接,要注意顺序正确,且不同跳线之间不能短接,否则会影响电路实现。 3)经过多次的测试与修正,最终实现了预期的功能。8 总结 本次课程设计让

14、我对以前学到的理论知识得到了一次实际的验证,对自己已有的知识有了更进一步的理解和认识,使我在单片机的基本原理,单片机应用系统开发过程,以及在常用编程设计思路的掌握上向前迈了一大步。在此,由于能力有限,在课程设计中碰到了很多难题,我通过查阅相关书籍,与同学相互交流探讨使问题得到了解决。通过这次单片机课程设计,我不仅加深了对单片机理论的认识,还学会了培养自己的创新精神,从而不断的战胜自己,超越自己。 9 参考文献1何利民。MCS-51系列单片机应用统计。北京:北京航空航天大学出版社。1999、62周坚,单片机C语言轻松入门。北京:北京航空航天大学出版社。2006、13楼然苗,李光飞,单片机课程设计

15、指导。北京:北京航空航天大学出版社。2007、14杨居义。单片机课程设计指导。北京:清华大学出版社。附录 #include<reg52.h> #define uchar unsigned char #define uint unsigned int #define time 50000 #define on 0 #define off 1sbit RED_ZHU = P00; /南北 红灯 sbit YELLOW_ZHU = P01;/南北 黄灯sbit GREEN_ZHU = P02; /南北 绿灯 sbit RED_ZHI = P03; /东西 红灯sbit YELLOW_ZH

16、I = P04; /东西 黄灯sbit GREEN_ZHI = P05; /东西 绿灯sbit P23 = P35;sbit P22 = P34; /东西方向数码管位选sbit P21 = P37;sbit P20 = P36; /南北方向数码管位选sbit int0_key = P32;sbit int1_key = P33;void display1(uchar,uchar);void display2(uchar,uchar);void delayms(uint k);uchar temp1,temp2,temp3,temp4,temp5,temp6;/*=倒计时=*/uchar N =

17、 50,Y = 45,Z = 50,M = 75,G = 80,U =80;uchar C50ms,t0;uchar seg = 1;uchar flag=0,led_data_temp;void InitialT1(void) TMOD = 0x10; /定时器0,1工作在方式1TH1 = (65536 - time)/256; /相当于(65536-time)/256;TL1 = (65536 - time)%256;/初值为time(50ms)TR1 = 1;/开定时器1中断ET1 = 1;/允许定时器1中断 ET0 = 1;TH0 = (65536 - time)/256;TL0 =

18、(65536 - time)%256; EX0 = 1; /允许外部中断0IE0 = 1;/启动外部中断0PX0 = 1;EX1=1;IE1=1;EA = 1; /开总中断void int0(void) interrupt 0/外中断0 flag = 0;led_data_temp = P0;t0 = 20;if(!int0_key) delayms(10);if(!int0_key)while(!int0_key);TH0 = (65536 - time)/256;TL0 = (65536 - time)%256;TR1 = 0; TR0 = 1;EX0 = 0;EX1 = 0;C50ms

19、= 0;void int1(void) interrupt 2/外部中断1 t0=15; flag = 1;led_data_temp = P0;if(RED_ZHU = 0) && (GREEN_ZHI = 0)|(YELLOW_ZHI = 0)&&(RED_ZHU = 0) P0 = 0xff; GREEN_ZHU = 0; RED_ZHI = 0;else /if(RED_ZHI = 0)&&(GREEN_ZHU = 0)P0 = 0xff; GREEN_ZHI = 0; RED_ZHU = 0;if(!int1_key) delayms(

20、10);if(!int1_key)while(!int1_key);TH0 = (65536 - time)/256;TL0 = (65536 - time)%256;TR1 = 0; TR0 = 1;EX0 = 0;EX1 = 0;C50ms = 0;void ISRT0(void) interrupt 1/定时器0中断服务子程序 temp1 = N,temp2 = Y,temp3 = Z,temp4 = M,temp5 = G,temp6 = U;TH0 = (65536 - time)/256;TL0 = (65536 - time)%256; /重装初值timeYELLOW_ZHU=1

21、; /如果在黄5S时进行熄灭黄灯YELLOW_ZHI=1;if(!flag)P0 = 0xf6;C50ms+;if(C50ms > 19) t0-; C50ms = 0;if(t0 = 0) P0 = led_data_temp;N = temp1,Y = temp2,Z = temp3,M = temp4,G = temp5,U = temp6;TR0 = 0;/禁止定时器1中断TR1 = 1;/开定时器1中EX1 = 1;/EX0 = 1;C50ms = 0;return; void ISRT1(void) interrupt 3 /定时器1中断服务子程序 TH1 = (65536

22、- time)/256;TL1 = (65536 - time)%256; /重装初值timeC50ms+;if(C50ms > 19) N-; M-; Y-; Z-; G-; U-; C50ms = 0;/*=延时=*/void Delay10uS(uchar second)uint i;while(second-) != 0)for(i = 0;i < 5;i+)void delayms(uint k) uint i,j; for(i = 0;i < k;i+) for(j = 0;j < 120;j+);/*=数码管控制=*/uchar code discode=

23、0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共阳数码管0-9代码 void display1(uchar num1,uchar num2) /控制南数码管显示P2=discodenum1; P21=on; Delay10uS(10); P21=off; /低位 P2=discodenum2; P20=on; Delay10uS(10); P20=off; /高位 void display2(uchar num3,uchar num4) /控制东西数码管显示P2 = discodenum3; P23 = on; Delay10uS(10)

24、; P23 = off; /低位P2 = discodenum4; P22 = on; Delay10uS(10); P22 = off; /高位 /*=主函数=*/main()/*=初始状态:东西南北都红灯=*/ RED_ZHU=on; RED_ZHI=on;delayms(1000);RED_ZHU = off;RED_ZHI = off; InitialT1(); while(1) / 初始化计时器 /*=状态1:南北绿灯(45s) 东西红灯(40s)=*/*=状态2:南北黄灯(5s) 东西红灯(5s)=*/RED_ZHI = on;GREEN_ZHU = on;while(N != 0

25、) if(TR0 = 1) display2(t0/10,t0%10);/ 当t0=20时东西、南北红灯(20s) display1(t0/10,t0%10);/ 当t0=15时东西、南北红、绿灯交换点亮else if(N = 5)while(Z != 0)if(TR0 = 1) display2(t0/10,t0%10);display1(t0/10,t0%10);else display1(N/10,N%10); / 东西红灯(5s) display2(Z/10,Z%10); / 南北黄灯(5s) GREEN_ZHU = off; YELLOW_ZHU = on; else display

26、1(N/10,N%10); / 东西红灯(45s) display2(Y/10,Y%10); / 南北绿灯(40s) GREEN_ZHU = off;RED_ZHI = off;YELLOW_ZHU = off; P0 = 0xff; /数码管全关掉Delay10uS(1);/*=状态3:东西绿灯(20s) 南北红灯(25s)=*/*=状态4:东西黄灯(5s) 南北红灯(5s)=*/GREEN_ZHI = on;RED_ZHU = on;while(G != 0) if(TR0 = 1) display2(t0/10,t0%10);display1(t0/10,t0%10);else if(G

27、 = 5) while(U != 0) if(TR0 = 1) display2(t0/10,t0%10);display1(t0/10,t0%10);else display2(G/10,G%10);/ 东西黄灯(5s) display1(U/10,U%10);/ 南北红灯(5s) GREEN_ZHI = off; YELLOW_ZHI = on; else display2(G/10,G%10);/ 东西绿灯(25s) display1(M/10,M%10);/ 南北红灯(20s) GREEN_ZHI = off;RED_ZHU = off;YELLOW_ZHI = off;P0 = 0xff; Delay10uS(1);N =50,Y = 45,Z = 50,M = 75,G = 80,U =80;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!