基于单片机的车辆闯红灯报警装置-李鑫_第1页
基于单片机的车辆闯红灯报警装置-李鑫_第2页
基于单片机的车辆闯红灯报警装置-李鑫_第3页
基于单片机的车辆闯红灯报警装置-李鑫_第4页
基于单片机的车辆闯红灯报警装置-李鑫_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE单片机原理及系统课程设计报告PAGEPAGE1单片机原理及系统课程设计评语:考勤10分守纪10分过程30分设计报告30分答辩20分总成绩(100分)专业:自动控制班级:控1103姓名:李鑫学号:201108926指导教师:李建国兰州交通大学自动化与电气工程学院2014年1月15日基于单片机的车辆闯红灯报警装置摘要随着科学技术的发展,人民生活水平和城市现代化程度不断提高,我国的交通工具数量不断增长,城市交通网络正面临着巨大的挑战,交通事故频发,对人民的生命和财产造成了巨大的威胁,其中车辆闯红灯所造成的危害相当的巨大,为了减小车辆闯红灯所造成的危害以及能立即处理车辆闯红灯事件,此次单片机课程设计我设计了一款基于AT89C51的车辆闯红灯报警装置。1引言1.1设计目的基于单片机的车辆闯红灯报警装置反应灵敏而且可靠性较高,同时由于采用的主要部件是单片机,所以其功耗较低。故在此次课程设计中,采用软件模拟的方法,实现车辆闯红灯报警的功能。1.2设计要求设计合适的传感器,对红灯信号能采集,红灯信号采集之后分析是否有车辆越过停止线且处于移动状态,如有则通过声或光报警。1.3设计方法采用2片AT89C51单片机、LED显示器为主要硬件,Proteus仿真软件设计和C语言编程方法实现车辆闯红灯报警装置的模拟,其中一片AT89C51用来控制交通灯的显示和计时,另外一片AT89C51用来采集红灯信号和车辆闯红灯信号,并将判断结果传回第一片单片机以控制其信号的显示,同时控制蜂鸣器发出报警信号。2设计方案及原理按照系统设计要求,该系统分为两大模块:一个交通灯模块,用来产生红灯信号,并将红灯信号发送给另一个模块;一个车辆闯红灯信号采集模块。其中最重要的是闯红灯信号采集模块,该模块的作用如下:当接收到红灯信号时判断信号的方向,即是东西红灯信号还是南北红灯信号,再接着判断交通灯处于红灯时有无车辆从相应的方向通过,若有车辆通过就发出声音报警,实现闯红灯报警的功能。系统组成框图如图2-1所示。图2-1车辆闯红灯报警系统组成框图3硬件设计3.1主控模块AT89C51单片机AT89C51在复位电路、晶振电路以及电源电路的共同作用下才能正常工作。具体硬件连接图如图3-1所示。(完整硬件连接图见附录1)图3-1复位电路、晶振电路与单片机之间的连线图3.2LED显示模块LED数码管的段控和位选的引脚分别与AT89C51的相连,将各灯光的亮灯时间显示出来。为提高显示亮度,在此用上拉电阻(排阻)作为段控输出驱动。具体的硬件连接图如图3-2所示。(完整硬件连接图见附录1)图3-2LED显示模块3.3灯光显示模块利用单片机内部的定时器控制亮灯时长,当P2口的相应位置为高电平时,发光二极管就点亮,并利用不同颜色的发光二极管表示实际交通灯中的灯色。具体硬件连接图如图3-3所示。(完整硬件连接图见附录1)图3-3灯光显示模块3.4灯光采集及报警模块AT89C51通过外部中断接收到红灯信号后调用中断函数,判断此时有无车辆驶过,若有车辆闯红灯,系统就会启动报警装置,同时还会向交通灯模块发出中断请求,封闭交通以方便交警处理违章事故。具体硬件连接图如图3-4所示。(完整硬件连接图见附录1)

图3-4灯光采集及报警模块3.5闯红灯信号采集模块在十字路口的中央放置两排电感线圈,同时用交通灯模块的端口P2.0和P2.7控制电感线圈工作。由于车辆为金属材质,当电感线圈通电且有车辆通过时就会发生电磁感应现象,产生电动势,经过处理之后将电信号传送给闯红灯处理模块。原理图如图3-5-1所示。由于在Proteus中无法仿真该模块,于是改用两个开关KDX和KNB来模拟车辆通过电感线圈。(完整硬件连接图见附录1)图3-5-1闯红灯信号采集模块原理图3.6电源设计该系统所有的电源均采用5V直流电。实物图如图3-6-1所示。图3-6-1直流稳压电源实物图4软件设计4.1交通灯模块软件设计该程序主要负责控制交通灯,程序流程图如图4-1所示。(具体程序见附录2)图4-1交通灯模块流程图4.2闯红灯报警模块软件设计该块程序主要负责接收红灯信号并在红灯信号来临时判断电磁线圈有无信号传来,若有信号则启动报警并给交通灯模块一个外部中断使交通灯模块阻断交通。程序流程图如图4-2所示。(具体程序见附录3)图4-2闯红灯报警模块流程图5系统仿真及调试软件调试:先编写程序并进行硬件的正确性检验,然后分别进行主程序和LED显示器程序编译和调试;硬件调试:仔细检查电路有没有漏接或是错接的地方,如果不理想,继续调整程序,直到得到正确结果。仿真结果见附录1所示。6市场调研本系统所用元件清单及软件、人力市场价格如表6-1所示。名称规格型号价格(元)数量总价格(元)单片机AT89C513.026.0总线收发器74LS2451.511.5LED显示7SEG1.044.0开关1.546.0发光二极管LED0.05141.0蜂鸣器BUZZER7.017.0排阻RESPACK-83.013.0直流电源50.0150.0电磁系统100.01100.0软件25人工费320总计423.5表6-1市场调研综合以上的各条件我对自己的这套系统做出的估价是423.5元,我觉得这个报价较为合理,买卖双方应都能接受。7总结所设计的系统能完成预计的功能即:能检测并采集红灯信号,并且在车辆违规闯红灯时予以报警提示、封锁交通。通过这次的课程设计我很好的将课堂上所学的知识用到了实践当中锻炼了自己,虽然设计的并不十分完善,但通过这一周的努力所取得的结果我还是很满意的。附录1硬件连接及仿真图附录2#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintuchardatabuf[4]; //缓冲区uchardatasec_dx=20; //东西数默认uchardatasec_nb=30; //南北默认值uchardataset_timedx=20;uchardataset_timenb=30;intn;uchardatab=0; //定时器中断次数sbitYellow_nb=P2^5; //南北黄灯标志sbitYellow_dx=P2^2; //东西黄灯标志sbitGreen_nb=P2^4;sbitGreen_dx=P2^1;sbitRed_nb=P2^7;sbitRed_dx=P2^0;sbitkdx=P3^6; //东西红灯信号sbitknb=P3^7; //南北红灯信号bittime=0; //灯状态循环标志ucharcodetable[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};voiddelay(intms); //延时子程序voiddisplay(); //显示子程序voidChushihua(); //开机voidkey(); //红灯信号采集voidmain(){TMOD=0X01; //定时器0,工作方式1TH0=0XD8;TL0=0XF0;EA=1; //开中断EX0=1; //外部中断0开中断ET0=1; //内部定时器T0开中断TR0=1;Chushihua(); //开机P2=0Xc2; //开始默认状态,东西绿灯,南北红灯sec_nb=sec_dx+5;while(1){key();display(); //调用显示程序}}voiddisplay() //显示子程序{buf[1]=sec_dx/10; //第1位东西秒十位buf[2]=sec_dx%10; //第2位东西秒个位buf[3]=sec_nb/10; //第3位南北秒十位buf[0]=sec_nb%10; //第4位南北秒个位P1=0xff; //初始灯为灭的P0=0x00;P1=0xfe; //片选LCD1P0=table[buf[1]];delay(1);P1=0xff; P0=0x00;P1=0xfd; //片选LCD2P0=table[buf[2]];delay(1);P1=0xff;P0=0x00;P1=0xfb; //片选LCD3P0=table[buf[3]];delay(1);P1=0xff;P0=0x00;P1=0Xf7; //片选LCD4P0=table[buf[0]];delay(1);}voidtime0(void)interrupt1 //定时中断子程序{ b++; if(b==19) //定时器中断次数 { b=0; sec_dx--; sec_nb--;if(sec_nb<=5&&time==0) //东西黄灯闪{Green_dx=0;Yellow_dx=!Yellow_dx;}if(sec_dx<=5&&time==1) //南北黄灯闪{Green_nb=0;Yellow_nb=!Yellow_nb;}if(sec_dx==0&&sec_nb==5)sec_dx=5;if(sec_nb==0&&sec_dx==5)sec_nb=5;if(time==0&&sec_nb==0){P2=0x19;time=!time;sec_nb=set_timenb;sec_dx=set_timenb+5;}if(time==1&&sec_dx==0){P2=0xc2;time=!time;sec_dx=set_timedx;sec_nb=set_timedx+5;}}}voidint0(void)interrupt0{ TR0=0; P2=0x48;sec_dx=00; sec_nb=00; P0=0x40; while(1) { Chushihua(); }}voidChushihua()//"----"{for(n=0;n<50;n++){P0=0x40; P1=0xfe; delay(1); P1=0xfd; delay(1); P1=0Xfb; delay(1); P1=0Xf7; delay(1); P1=0xff; }}voiddelay(intms){uintj,k;for(j=0;j<ms;j++) for(k=0;k<124;k++);}voidkey(){if(Red_nb==1){knb=!knb;delay(1);}knb=1; if(Red_dx==1) { kdx=!kdx; delay(1); } kdx=1;}附录3#include<reg52.h>sbitKdx=P2^0;sbitKnb=P2^1;voiddelay(intms);voidmain(){ P1=0xFF; P2=0xFF; IE=0x85; TCON=0x05; while(1);}voidscan1()interrupt0{if(Kdx==0){delay(10);if(Kdx==0){P1=0xFC;}}}voidscan2()interrupt2{if(Knb==0){ delay(10); if(Knb==0){ P1=0xFC;} }}voiddelay(

温馨提示

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

评论

0/150

提交评论