模拟汽车转向灯控制系统设计.docx
《模拟汽车转向灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《模拟汽车转向灯控制系统设计.docx(19页珍藏版)》请在冰豆网上搜索。
模拟汽车转向灯控制系统设计
模拟汽车转向灯控制系统设计
前言
车灯是行车安全的必备条件,除了具有照明作用,对其他车辆还具有转向、刹车等警示作用。
汽车转向信号灯是汽车运动方向和车身状态的表示信号,关系着汽车的安全问题,因此基于单片机的汽车转向灯控制器一直以来都是汽车电子设计中的一个十分重要的领域。
本设计是设计一个单片机控制系统,在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠、倒车等操作时,实现对各种信号指示灯的控制。
它主要是对单片机的并行输入/输出口电路的应用来控制发光二极管的亮﹑灭﹑闪烁,再加上一些串口电路﹑按键电路﹑复位电路来模拟汽车转向灯的功能,并在protel上显示此时的汽车转向灯发光的状态。
汽车上的转向灯包括左头灯、右头灯、左尾灯、右尾灯,仪表盘的两个指示灯。
当汽车转弯、刹车、停靠时,转向灯发出不同的信号汽车转弯或停靠时,相应的信号灯要发出闪烁的灯光信号,目前国内广泛使用电热式闪光器产生闪光信号。
闪烁频率在50~110次/分,但是一般控制在60~95次/分之间。
闪光器是通过调节镍铬丝的拉力和触点的间隙来满足频率要求的,灯泡功率的大小也会影响闪烁频率,因此在更换闪光器或灯泡时调整比较困难。
同时,系统没有检测故障的功能,驾驶员无法知道车外的转向灯及故障指示灯是否点亮,从而影响行车安全。
到目前为止,我们还没有发现能检测这种故障的有效方法。
因此针对上述问题,我们用AT89C51单片机设计了一套模拟汽车转向灯控制系统。
作用就是用LED产生闪光信号,从而达到检测除故障的效果。
因为是模拟的汽车转向灯控制系统,所以在检查信号灯故障的时候,不能借助熔丝盒、继电器、SW、B接柱这些器件来诊断故障,只能在LED灯产生闪光信号时检测信号灯的故障。
1汽车转向灯介绍
1.1汽车转向灯功能分析
汽车转向信号装置主要由转向灯、闪光器、转向灯开关等组成,转向灯的闪烁由闪光器控制,由此可知汽车转向信号有很大一部分都是由汽车转向灯来完成的,本设计中转向灯的闪光器是由电容式闪光器实现的,接通转向灯开关后,转向灯就会开始工作。
1.1.1汽车转向灯的作用
转向信号灯分别装在车身前,后端的左右两侧。
汽车在转弯、变更车道或路边停放时,打开转向信号灯,向交警、行人及其其它车辆表明驾驶员的意图。
为了引人注目转向信号灯不仅亮度很强,且在其电路中装有使信号灯光的闪烁器。
转向信号灯由闪光继电器和转向开关控制,当所有转向信号灯同时闪烁时,作为危险报警信号,由危险报警信号开关控制。
闪烁式转向信号灯可单独设置,也可与前小灯(或后小灯)合成一体,在该种情况下一般用双丝灯泡,有的汽车后转向信号灯和后灯合成一体。
1.2设计方案及原理
模拟汽车转向灯控制系统设计电路是由单片机AT89C51、复位、时钟、LED显示电路、按键电路构成等几部分组成。
系统框图如图1.2-1所示:
按键电路
AT89C51
LED显示电路
图1.2-1系统框图
1.3系统设计
模拟汽车转向灯控制系统设计要求在汽车进行左转弯、右转弯、刹车、合紧急开关停靠、倒车等操作时,实现对各种信号指示灯的控制。
根据设计要求,制定总体的设计思想。
以单片机AT89C51为核心芯片通过控制LED的显示来模拟汽车转向灯,即用开关K1-K6的闭合分别模拟刹车、紧急、停靠、左转、右转、倒车操作;用LED发光二极管D1-D8的亮灭显示来模拟汽车的故障指示灯、左头灯、右头灯、左转弯信号灯、右转弯信号灯左尾灯、右尾灯、倒车灯的显示情况。
转向时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号;应急开关合上时,6个信号灯都应闪烁;汽车刹车时,2个尾灯发出稳定亮信号;如正当转向时刹车,转向时原应闪烁的信号仍应闪烁。
它们都是频率为1Hz低频闪烁,在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为30Hz的高频闪烁。
任何上述之外的开关组合,都将出现故障指示灯闪烁闪烁频率为30Hz。
1.4工作原理
1.4.1开关状态控制
开关状态检测,对AT89C51来说是输入关系,可轮流检测每个开关状态,以每个开关的状态让相应的发光二极管指示;也可以一次性检测六路开关状态,即用MOVA,P2指令一次性把P2端口的状态全部读入,取低6位的状态来指示。
1.4.2输出状态控制
以LED发光二极管D0—D7来指示,此设计用指令MOVP2,#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.4LED显示电路
本设计通过驱动芯片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口,所以该函数要借助辅助子函数unsignedchargetQ(unsignedchari)来将1~8转化为P2口的P2^0~P2^7管脚即:
0x01,0x02,0x04,0x10,0x20,0x40,0x80.以支持单总线操作。
所以如果要检测第8号监测点,循环指示灯C程序设计如下。
#include
#define_MHZ_12/设置单片机使用的晶振频率
unsignedintcount=0,precount,Maichong;
voidt1(void);/t1定时子函数
voidint1(void)interrupt1;/中断服务子函数
voidYudi(void);/判断循环灯子函数
sbitQ7=p3^3;
sbitint1=p3^3;
main()
{
t1();/调用定时子程序
while(precount!
=0)
{
Yudi();
P0=Maichong;/调用转向灯多少子程序
t1();
}
}
voidt1(void);
{
TMOD=0x10;/定时器1工作在方式1,即为16位计数器
TH1=0X01;/设置60ms定时时间的初值
TL1=0XA0;
TR1=1;/启动T1
IT1=1;/设置INTR1中断方式为边沿触发方式,负跳变时产生中断
EA=1;
ET1=1;/允许定时器1中断
EX1=1;/允许外部中断1中断
EA=1;/CPU开放中断
count=0;
}
voidint1(void)interrupt1;/外部中断1处理函数
TR1=0;
TH1=0X15;
TL1=0XA0;
while(int1==0);
count++;
precount=co