毕业设计(论文)-模拟汽车转向灯控制系统设计.doc_第1页
毕业设计(论文)-模拟汽车转向灯控制系统设计.doc_第2页
毕业设计(论文)-模拟汽车转向灯控制系统设计.doc_第3页
毕业设计(论文)-模拟汽车转向灯控制系统设计.doc_第4页
毕业设计(论文)-模拟汽车转向灯控制系统设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

四川师范大学成都学院专科毕业设计模拟汽车转向灯控制系统设计前言车灯是行车安全的必备条件,除了具有照明作用,对其他车辆还具有转向、刹车等警示作用。汽车转向信号灯是汽车运动方向和车身状态的表示信号,关系着汽车的安全问题,因此基于单片机的汽车转向灯控制器一直以来都是汽车电子设计中的一个十分重要的领域。本设计是设计一个单片机控制系统,在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠、倒车等操作时,实现对各种信号指示灯的控制。它主要是对单片机的并行输入/输出口电路的应用来控制发光二极管的亮灭闪烁,再加上一些串口电路按键电路复位电路来模拟汽车转向灯的功能,并在protel上显示此时的汽车转向灯发光的状态。汽车上的转向灯包括左头灯、右头灯、左尾灯、右尾灯,仪表盘的两个指示灯。当汽车转弯、刹车、停靠时,转向灯发出不同的信号汽车转弯或停靠时,相应的信号灯要发出闪烁的灯光信号,目前国内广泛使用电热式闪光器产生闪光信号。闪烁频率在 50110 次/分,但是一般控制在 6095 次/分之间。闪光器是通过调节镍铬丝的拉力和触点的间隙来满足频率要求的,灯泡功率的大小也会影响闪烁频率,因此在更换闪光器或灯泡时调整比较困难。同时,系统没有检测故障的功能,驾驶员无法知道车外的转向灯及故障指示灯是否点亮,从而影响行车安全。到目前为止,我们还没有发现能检测这种故障的有效方法。因此针对上述问题,我们用at89c51单片机设计了一套模拟汽车转向灯控制系统。作用就是用led产生闪光信号,从而达到检测除故障的效果。因为是模拟的汽车转向灯控制系统,所以在检查信号灯故障的时候,不能借助熔丝盒、继电器、sw、b接柱这些器件来诊断故障,只能在led灯产生闪光信号时检测信号灯的故障。1 汽车转向灯介绍1.1 汽车转向灯功能分析汽车转向信号装置主要由转向灯、闪光器、转向灯开关等组成,转向灯的闪烁由闪光器控制,由此可知汽车转向信号有很大一部分都是由汽车转向灯来完成的,本设计中转向灯的闪光器是由电容式闪光器实现的,接通转向灯开关后,转向灯就会开始工作。1.1.1 汽车转向灯的作用转向信号灯分别装在车身前,后端的左右两侧。汽车在转弯、变更车道或路边停放时,打开转向信号灯,向交警、行人及其其它车辆表明驾驶员的意图。为了引人注目转向信号灯不仅亮度很强,且在其电路中装有使信号灯光的闪烁器。转向信号灯由闪光继电器和转向开关控制,当所有转向信号灯同时闪烁时,作为危险报警信号,由危险报警信号开关控制。闪烁式转向信号灯可单独设置,也可与前小灯(或后小灯)合成一体,在该种情况下一般用双丝灯泡,有的汽车后转向信号灯和后灯合成一体。1.2 设计方案及原理模拟汽车转向灯控制系统设计电路是由单片机at89c51、复位、时钟、led显示电路、按键电路构成等几部分组成。系统框图如图1.2-1所示:按键电路at89c51led显示电路图1.2-1 系统框图1.3 系统设计模拟汽车转向灯控制系统设计要求在汽车进行左转弯、右转弯、刹车、合紧急开关停靠、倒车等操作时,实现对各种信号指示灯的控制。根据设计要求,制定总体的设计思想。 以单片机at89c51为核心芯片通过控制led的显示来模拟汽车转向灯,即用开关k1-k6的闭合分别模拟刹车、紧急、停靠、左转、右转、倒车操作;用led发光二极管d1-d8的亮灭显示来模拟汽车的故障指示灯、左头灯、右头灯、左转弯信号灯、右转弯信号灯左尾灯、右尾灯、倒车灯的显示情况。转向时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号;应急开关合上时, 6个信号灯都应闪烁;汽车刹车时,2个尾灯发出稳定亮信号;如正当转向时刹车,转向时原应闪烁的信号仍应闪烁。它们都是频率为1hz低频闪烁,在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为30hz的高频闪烁。任何上述之外的开关组合,都将出现故障指示灯闪烁闪烁频率为30hz。1.4 工作原理1.4.1 开关状态控制开关状态检测,对at89c51来说是输入关系,可轮流检测每个开关状态,以每个开关的状态让相应的发光二极管指示;也可以一次性检测六路开关状态,即用mov a, p2 指令一次性把p2 端口的状态全部读入,取低6位的状态来指示。1.4.2 输出状态控制以led发光二极管d0d7 来指示,此设计用指令mov p2, #11101111b 方法来实现。1.4.3 定时器和计数器在模拟汽车转向灯控制系统设计中,常常要求有一些实时时钟电路,以实现定时控制、定时测量或延时动作,也要求有计数器能对外部事件计数,实现定时/计数,有软件,数字电路和可编程定时/计数器3种方法,这里采用的at89c51可编程定时/计数器来设计的,at89c51系列单片机中采用16位的定时器/计数器执行。设计中利用定时器/计数器0,一个软件计数器产生低频(1hz)闪烁功能。利用定时器/计数器0来产生为时60ms的定时信号,以实现高频(60hz)闪烁功能。1.4.4 中断系统在cpu和外设交换信息时,存在着快速cpu和慢速外设时间矛盾,机器内部有时可能会出现突发事件,为此,在这次模拟汽车转向灯控制着系统设计中采用中断技术。利用mcs-51系列单片机的可编程定时/计数器、中断系统来实现灯闪烁的延时和故障检测当检测到操作错误,可以利用中断系统请求cpu及时处理这些故障。1.4.5 汽车转向灯控制在汽车转弯或应急状态下,外部信号灯和仪表板它们指示灯的闪烁频率为1hz,称低频信号。当停靠开关合上时,外部信号灯以60hz频率闪烁此时为高频信号。汽车转弯灯设计8个按键控制信号灯的转向、停靠、应急等。按键安排为:k0键为刹车开关;k1键为紧急开关;k2键为停靠开关;k3键为左转弯开关;k4键为右转弯开关;k5键为倒车开关。2 控制系统总体设计2.1 控制系统总体设计思路模拟汽车转向灯控制系统设计主要是依靠一个单片机控制系统完成的,这个单片机控制系统在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠、倒车等操作时,实现对各种信号指示灯的控制。从而达到模拟汽车转向灯的功能。2.2 转向灯控制系统总电路图振荡器启动时间不超过10ms,在加电情况下,可以使单片机复位。电平复位将复位端通过电阻与vcc相连,按键脉冲复位是利用rc分电路产生正脉冲来达到复位的。在按键电平复位和按键脉冲复位两种简单的复位电路中,干扰易串入复位端,转向灯控制系统总电路图如图2.2-1所:图2.2-1 转向灯控制系统总电路图3 硬件设计3.1 按键电路根据设计的要求,本设计选用独立式键盘。其工作原理为,单片机引脚作为输入使用,首先置“1”。当键没有被按下时,单片机引脚上为高电平;而当键被按下去后引脚接地,单片机引脚上为低电平。是否有键按下,以及被按下的是哪一个可以通过单片机引脚电平显示出来。下图是电路板上按键的接法,5个按键分别接到p1.0、p1.1、p1.2、p1.3、p1.4和p1.5。对于这种接法,各程序可以采用不断查询的方法,其功能就是:检测是否有键闭合,判断键号并转入相应的键处理。如图3.1-1所示:图3.1-1 按键电路3.2 时钟电路采用单片机内部晶振。如图2所示,在mcs-51系列单片机内部有一个高增益反向放大器,其输入端为芯片引脚xtal1,输出端为引脚xtal2。而在芯片外部xtal1和xtal2之间跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。外接晶体振荡器以及电容c5和c7构成并联谐振电路,接在放大器的反馈回路中,c5和c5的大小会对振荡器频率的高低、振荡器的稳定性、起振的快速性和温度特性有一定的影响。如图3.2-1所示:图3.2-1 时钟电路3.3 复位电路上电复位电路如图3所示,是利用外部复位电路实现。振荡器启动时间不超过10ms,在加电情况下,可以使单片机复位。电平复位将复位端通过电阻与vcc相连,按键脉冲复位是利用rc分电路产生正脉冲来达到复位的。如图3.3-1所示:图3.3-1 复位电路3.4 led显示电路本设计通过驱动芯片uln2803将at89c51单片机的p1口输出与led发光二极管相连当at89c51单片机的p1引脚是高电平时,led不亮,当p1引脚是低电平时,led亮。但是在汽车转向灯里要根据汽车方向来控制信号灯,而实现led的亮与灭。4 软件设计主程序中完成对汽车转向灯控制系统的初始化工作,判断是否有键被按下,当开关没有动作时无输出,调用延时程序,延时1s,当判断有开关被按下时,进入中断。中断程序主要完成各开关按下时汽车转向灯信号的相应显示,其中也在各分支中调用了延时程序,以使led在不同的分支以相应的频率闪烁。在protel软件中,找到所需要的元器件,调入后,连线,下载程序到at89c51芯片中,运行可看到相应的信号灯亮或闪烁。原理图按键连线:p1.0=刹车;p2.1=熄灭;p1.1=停靠;p2.2=左转;p1.2=右转;p2.0=倒车;键值是根据p1的状态来确定的。例:p1=00111110,表明刹车键按下,它的键值是3eh(只看后面六位),p1.1=11000001,表明刹车键松开,它的键值是0eh,而p1.2=11100110,它的键值是1eh,表明左转向灯熄灭,p2.1=10100101,它的键值是2eh,表明紧急转向,p2.0=10101111,表明倒车转向灯打开,它的键值是4eh。具体过程如图4-1所示:图4-1 汽车转向灯控制系统键功能程序流程图4.1 总控制程序设计汽车转向灯控制系统子程序设计、系统中断服务程序设计、按键功能程序设计汽车转向灯控制系统子程序设计,子程序是构成单片机应用程序必不可少的一部分,由于at89c51单片机有acall和lcall两条子程序调用子令,将k1和k2设置成出口参数用于补充p1和p2接口,此函数中的参数值的是检测故障的位置。由于电路连接对应的是单片机的p3口,所以该函数要借助辅助子函数unsigned char getq(unsigned char i)来将18转化为p2口的p20p27管脚即:0x01,0x02,0x04,0x10,0x20,0x40,0x80.以支持单总线操作。所以如果要检测第8号监测点,循环指示灯c程序设计如下。#include #define_mhz_12 /设置单片机使用的晶振频率unsigned int count=0,precount,maichong;void t1 (void); /t1定时子函数void int1(void) interrupt1; /中断服务子函数void yudi(void); /判断循环灯子函数sbit q7=p33;sbit int1=p33;main() t1(); /调用定时子程序while(precount!=0)yudi();p0=maichong; /调用转向灯多少子程序t1();void t1 (void);tmod=0x10; /定时器1工作在方式1,即为16位计数器th1=0x01; /设置60ms定时时间的初值tl1=0xa0;tr1=1; /启动t1it1=1; /设置intr1中断方式为边沿触发方式,负跳变时产生中断ea=1;et1=1; /允许定时器1中断ex1=1; /允许外部中断1中断ea=1; /cpu开放中断count=0;void int1(void) interrupt1; /外部中断1处理函数tr1=0;th1=0x15;tl1=0xa0;while (int1=0);count +;precount=count;tr1=1;void yudi(void); /转向传感器子程序 if(precount=3&precount=12&precount20) maichong=0fh;else maichong=00hmaichong=p0;在汽车转向系统中断服务设计中,依然使用的是at89c51单片机,在at89c51中有6个中断源,其中有两个为外部中断源,也就是在单片机外部引脚上加了触发信号,以便产生中断请求,t0、t1、t2、t3、t4的入口地址分别是00003h,000bh,0013h,001bh,当这4个接口发出请求信号时,闪光灯会依次亮起来,以右转弯状态仿真图为例,转弯灯仿真图见附录1,c程序设计如下。#include #include float pwmcycle, pwmcycle1,pwmcycle2;char e(k)8,ec(k)8;sbit pwm1=p0.0;sbit pwm1=p0.1;sbit pwm2=p0.3;sbit pwm2=p0.4;void delay(unit m); /声明延时函数void dianji(void);void timer1(void)interrupt 0 using 1;void timer2(void)interrupt 1 using 1;void shijiancha(void);void tongbu(void);void gengxin(void);mainp1=p0; dianji();shijiancha();tongbu();dengxin();if(timer1!=timer2) dianji();void delay(unit m) /延时1ms子程序 uchar i;while(m-)for(i=125;i0;i-)void dianji(void) /循环子程序 while (maichong=4) if(sa1=1 or sa3=1) p0=09h;else if(sa0=1or sa2=1)p0=12h; pwmcycle=40%delay(20);p0=00h;delay(30);while (maichong=16) if(sa1=1 or sa3=1) p0=09h;else if(sa0=1or sa2=1)p0=12h; pwmcycle=60%delay(30);p0=00h;delay(20);void shijiancha(void)tmod=0x11; /定时方式,工作在方式1th0=0xff;tl0=0xff;th1=0xff;tl1=0xff;it0=1;it1=1;ea=1;et0=1;et1=1;tr0=1;tr1=1;void timer1(void)interrupt 0 using 1unsigned char tmp1,tmp2;dotmp1=th0;tmp2=tl0;timer1=256*tmp1+tmp2;th0=0;tl0=0;void timer2(void)interrupt 1 using 1unsigned char tmp3,tmp4;dotmp3=th1;tmp4=tl1;timer2=256*tmp3+tmp4;th0=0;tl0=0;void tongbu(void) /两电机同步子程序int e(k),ec(k);for(k=0;k+) e(k)=timer1(k)-timer2(k); ec(k)=e(k)-e(k-1); if(e(k)25ms)e(k)=25ms;else if(e(k)50ms)ec(k)=50ms;)else if(ec(k)15ms) /时间误差置位规律 e(k)0=1;else if (e(k)8ms&e(k)0&e(k)-8ms&e(k)0)e(k)4=1;else if(e(k)=-15ms&e(k)-8ms)e(k)5=1;else if (e(k)16&ec(k)0&ec(k)-16&ec(k)=-30&ec(k)=-16)ec(k)4=1;while(e(k)6=1) /查表 if(ec(4)=1) u=-3;else if(ec(3)=1) u=-2;else if(ec(2)=1) u=-2;else if(ec(1)=1) u=-1;else if(ec(0)=1) u=0;while(e(k)5=1) if(ec(4)=1) u=-3;else if(ec(3)=1) u=-2;else if(ec(2)=1) u=-2;else if(ec(1)=1) u=-1;else if(ec(0)=1) u=0;按键功能程序设计,键盘和led显示器是单片机应用系统中常用的输入/输出装置本设计采用的是动态接口程序,采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用p1.0,p2.0,p3.0,p4.0这些接口完成程序码的输出,另一接口完成各数码管的轮流点亮,根据数码管显示部分的电路设计可知,两个数码管的显示只需要控制6个单片机引脚。其中aa、bb、cc、dd引脚连接的是74ls47芯片的输入引脚,单片机控制这四个引脚输出的2进制数经过74ls47译码,控制数码管显示相应的十进制数字其中lock1,lock2分别连接两个74hc573使能端,当lock1=0,lock2=1时,红色数码管保持当前读数不变,蓝色数码管根据aa、bb、cc、dd的输出信号改变数字,当lock1=1lock2=0时,蓝色数码管保持当前读数不变,红色数码管根据p1、p2、p3、p4的输出信号改变灯的循环循序。该程序中包含了毫秒延时函数,具体仿真图见附录2,汇编语言程序设计如下。org0000h ajmp start1 org0030hsame equ4ehstart1: movp1,#00h;无输入时无输出start: mova,p3 ;读p3口数据 anla,#1fh ;取用p3口的低五位数据 cjnea,#1fh,shiy ;对p3口低五位数据进行判断 ajmpstart1shiy: movsame, a lcallys ;延时 mova,p3 ;读p3口的数据 anla,#1fh ;取用p3口的低五位数据 cjnea,#1fh,shiy1 ;对p3口的低五位数据进行判断 ajmpstart1 ;开关没有动作时无输出shiy1: cjnea,same,start1 cjnea,#17h,next1 ;p3.3=0时进入左转分支 ajmpleftnext1: cjnea,#0fh,next2 ;p3.4=0时进入右转分支 ajmprightnext2: cjnea,#1dh,next3 ;p3.1=0时进入紧急分支 ajmpeargenext3: cjnea,#1eh,next4 ;p3.0=0时进入刹车分支 ajmpbrakenext4: cjnea,#1bh,next5 ;p3.2=0时进入停靠分支 ajmpstopnext5: ajmperror ;其他情况进入错误分支left: movp1,#2ah ;左转分支ys: mov r7,#04h ;延时ys0: movr6, #0ffhys1: djnzr6, ys1 djnzr7, ys0 rety1s: movr7,#04h ;延时y1s1: movr6, #0ffhy1s2: movr5, #0ffh djnzr6, y1s2 djnzr7, y1s1 rety100ms: movr7,#66h;延时y100ms1: movr6, #0ffhy100ms2: djnzr6, y100ms2 djnz r7, y100ms1 ret end5 结束语紧张的毕业设计即将结束了,这期间让我学到了许多知识,让我懂得了对待科学要严谨、认真的道理。这将是我在今后工作学习中的一笔宝贵财富。本文在查阅了大量文献的基础上,结合实际应用问题,对模拟汽车转向灯控制系统进行了研究。目前的转向灯系统都是电子结构的,采用感应式的模拟汽车向灯系统只是在少数高级轿车上有应用,因为目前使用的光电转向传感器大都是由国外厂商一统天下,因而,价格比较昂贵,很难普及。本文利用单片机控制系统来实现模拟的汽车转向灯系统的状态。原因是成本低廉,性能稳定,可靠性高,易于在大客车和低档轿车上普及应用,有广泛的市场应用前景。关于单片机控制系统的设计,还有一些特殊情况未在本文所研究之内,仍有待进一步研究。在设计的过程中也遇到了很多的问题。首先是在程序的设计上,由于所控制的分支太多,所以花了很长时间才整理出程序,在三个不同时间的延时的设计过程中,由于自己忽略了定时器选择的定时模式,导致了延时计算的错误,在经过同学指点后多次计算终于实现了led以10hz和30hz频率闪烁;其次在软件的安装方面,这次课设需要用到visio画图软件,protel、keil仿真软件等一系列软件,因为电脑的问题致使安装的时候出现了各种状况,但在同学的帮助下最后还是安装成功;最后就是在仿真时,由于对软件环境不熟悉,不过在请教老师之后最终完成仿真。毕业设计是对我们大学三年学习生活的实践和总结。让我们把学会把理论运用到实际中。整个设计中都倾注了胡老师大量的心血,对我的设计思路,设计方案的决定、构思都给予了重要的指导,使得我少走了不少弯路,我的毕业设计才能按时、顺利的完成。同时还要感谢帮助过我的同学们,谢谢你们在设计中给我的支持与动力。毕业设计中用到了软件来分别设计原理图和仿真图,同时也用到了等软件来编写运行控制程序。在一定程度上加深了对以上软件的认识与理解,也加强了对这些软件的运用和掌握。综合设计题目来源于生活,让我们在大学期间学习的理论知识显得并不是那么空洞得到了很好的实践,也使得对

温馨提示

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

评论

0/150

提交评论