1、基于单片机的汽车转向灯控制系统 微机应用课程设计报告题 目: 基于单片机的汽车转向灯控制系统专 业: 电子信息工程 班 级: 11电信二班 姓 名: 学 号: 地 点: 时 间: 2014.03.24-28 指导老师: 摘 要本设计主要解决如何更加灵活的汽车尾灯控制器进行控制,左转,右转和急刹车信息等。通过设计汽车尾灯显示控制电路,能很好的综合运用我们所学到的单片机,C语言,模拟电路知识,熟悉电子电路设计的基本方法。有多种方法来设计汽车尾灯控制电路,主要是运用单片机的相关知识用硬件来设计制作一个16位汽车尾灯显示控制电路的。它的特点是电路简单,制作方便,容易操作,可反复擦写,性能可靠。本设计主
2、要由四部分组成,包括按键电路,LED灯电路,驱动电路,复位电路。本文介绍了一种以STC89C52单片机为核心的控制电路。该电路以发光二极管LED灯为显示电路。汽车的尾灯是其运行方式的最直接表示方式,令行人或其他车辆清晰明白它将要发生的动态变化。从而避免交通事故的发生。设计此电路要求严格符合交通规则,尾灯闪亮或熄灭准确,才不会让行人或其他车辆产生误解。目前在国内外,整个社会的趋势都是低能耗,环保,高效为主题的。所以LED尾灯是发展的趋势,而且现在部分高档车已经开始配置【关键词】发光二极管 单片机 设计程序引言车灯是行车安全的必备件,除了具有照明作用,对行人和其他车辆还具有转向、刹车等警示作用。汽
3、车转向和故障信号灯是汽车运动方向和车身状态的表示信号,关系着汽车的安全问题,因此基于单片机的汽车转向灯控制器一直以来都是汽车电子设计中的一个十分重要的领域。本设计是设计一个单片机控制系统,在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠、倒车等操作时,实现对各种信号指示灯的控制。它主要是对单片机的并行输入/输出口电路的应用,通过I/O口控制发光二极管的亮灭闪烁,加上一些串口电路按键电路驱动电路来模拟汽车尾灯的功能并在PC机上显示此时的汽车行进状态。汽车转弯或停靠时,相应的信号灯要发出闪烁的灯光信号,目前国内广泛使用电热式闪光器产生闪光信号。闪烁频率在 50110 次/分,但是一般控制在 609
4、5 次/分之间。闪光器是通过调节镍铬丝的拉力和触点的间隙来满足频率要求的,灯泡功率的大小也会影响闪烁频率,因此在更换闪光器或灯泡时调整比较困难。同时,系统没有故检测,驾驶员无法知道车外的转向灯及故障指示灯是否点亮,从而影响行车安全。到目前为止,我们还没有发现能检测灯丝断这种故障的有效方法。针对上述问题,我们用AT89C51单片机设计了一套汽车转向灯控制系统。用LED产生闪光信号,同时能自动检测信号灯故障。1.设计方案汽车转弯灯单片机控制系统电路是由单片机AT89C51、复位、时钟、LED显示电路、按键电路构成等几部分组成。1.1系统设计本设计要求在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠
5、、倒车等操作时,实现对各种信号指示灯的控制。根据设计要求,制定总体的设计思想: 以单片机AT89C51为核心芯片通过控制LED的显示来模拟汽车转向灯,即用开关K1-K6的闭合分别模拟刹车、紧急、停靠、左转、右转、倒车操作;用LED发光二极管D1-D8的亮灭显示来模拟汽车的故障指示灯、左头灯、右头灯、左转弯信号灯、右转弯信号灯、左尾灯、右尾灯、倒车灯的显示情况。转向时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号;应急开关合上时, 6个信号灯都应闪烁;汽车刹车时,2个尾灯发出稳定亮信号;如正当转向时刹车,转向时原应闪烁的信号仍应闪烁。它们都是频率为1Hz低频闪烁,在汽车停靠而停靠开
6、关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为30Hz的高频闪烁。任何上述之外的开关组合,都将出现故障指示灯闪烁,闪烁频率为30Hz。1.2 单片机系统的工作原理1.2.1开关状态检测开关状态检测,对AT89C51来说是输入关系,可轮流检测每个开关状态,以每个开关的状态让相应的发光二极管指示;也可以一次性检测六路开关状态,即用MOV A, P2 指令一次性把P2 端口的状态全部读入,取低6位的状态来指示。1.2.2输出控制以LED发光二极管D1-D8 来指示,此设计用指令MOV P1, #111XXXXXB 方法来实现。1.2.3定时器和计数器信号的控制是定时器与中断系统的联合使用得以实现的
7、结果。在汽车转弯灯的控制中主要利用AT89C51单片机的可编程定时/计数器、中断系统来实现灯闪烁的延时和故障检测,即通过对系统时钟脉冲的计数来实现的,计数值由程序设定。设计中利用定时器/计数器0,一个软件计数器产生低频(1Hz)闪烁功能。利用定时器/计数器0来产生为时30ms的定时信号,以实现高频(30Hz)闪烁功能。1.2.4中断系统通过C51的软件编程实现对中断系统的处理。利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现灯闪烁的延时和故障检测。当检测到操作错误,可以利用中断系统请求CPU及时处理这些故障,实现对系统的实时控制,同时操作人员可以利用键盘等实现中断,完成人工介入,
8、实现人机联系。1.2.5汽车转向灯控制在汽车转弯或应急状态下,外部信号灯和仪表板它们指示灯的闪烁频率为1Hz,称低频信号。当停靠开关合上时,外部信号灯以30Hz频率闪烁此时为高频信号。汽车转弯灯设计6个按键控制信号灯的转向、停靠、应急等。按键安排为:K1键为刹车开关;K2键为紧急开关;K3键为停靠开关;K4键为左转弯开关;K5键为右转弯开关;K6键为倒车开关。2.硬件电路设计2.1按键电路根据设计的要求,本设计选用独立式键盘。其工作原理为,单片机引脚作为输入使用,首先置“1”。当键没有被按下时,单片机引脚上为高电平;而当键被按下去后,引脚接地,单片机引脚上为低电平。是否有键按下,以及被按下的是
9、哪一个可以通过单片机引脚电平显示出来。图1是电路板上按键的接法,6个按键分别接到P2.0、P2.1、P2.2、P2.3、P2.4和P2.5。对于这种接法,各程序可以采用不断查询的方法,其功能就是:检测是否有键闭合,判断键号并转入相应的键处理。 图1 按键控制电路2.2时钟电路采用单片机内部晶振。如图2所示,在MCS-51系列单片机内部有一个高增益反向放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片外部XTAL1和 XTAL2之间跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。外接晶体振荡器以及电容C6和C7构成并联谐振电路,接在放大器的反馈回路中,C
10、6和C7的大小会对振荡器频率的高低、振荡器的稳定性、起振的快速性和温度特性有一定的影响。 图2 时钟电路2.3复位电路上电复位电路如图3所示,是利用外部复位电路实现。 振荡器启动时间不超过10ms,在加电情况下,可以使单片机复位。电平复位将复位端通过电阻与Vcc相连,按键脉冲复位是利用RC分电路产生正脉冲来达到复位的。在按键电平复位和按键脉冲复位两种简单的复位电路中,干扰易串入复位端,会引起内部寄存器错误复位,故可在复位端引脚上接一个去耦电容C8。图3 复位电路2.4 LED显示电路本设计通过驱动芯片ULN2803将AT89C51单片机的P1口输出与LED发光二极管相连,当AT89C51单片机
11、的P1引脚是高电平时,LED不亮,当P1引脚是低电平时,LED亮。但是在汽车转向灯里要根据汽车方向来控制信号灯,而实现LED的亮与灭。3.软件设计汽车转向灯控制系统主程序流程图如图4所示,系统中断服务程序流程图如图5所示,键功能程序流程图如图6所示。主程序中完成对汽车转向灯控制系统的初始化工作,判断是否有键被按下,当开关没有动作时无输出,调用延时程序,延时1s,当判断有开关被按下时,进入中断。中断程序主要完成各开关按下时汽车转向灯信号的相应显示,其中也在各分支中调用了延时程序,以使LED在不同的分支以相应的频率闪烁。原理图按键连线:P2.0=刹车;P2.1=紧急;P2.2=停靠;P2.3=左转
12、;P2.4=右转;P2.5=倒车;说明:键值是根据P2的状态来确定的。例:P2=00111110,表明刹车键按下,它的键值是3EH(只看后面六位)。汽车转向灯控制系统软件设计程序清单见附录二所示。 图4 汽车转向灯控制系统主程序流程图 图5系统中断服务程序流程图图6 汽车转向灯控制系统键功能程序流程图4系统测试与结果分析在Proteus软件中,找到所需要的元器件,调入后,连线,下载程序到AT89C51芯片中,运行可看到相应的信号灯亮或闪烁,具体仿真图见附录三。操作说明如下:(1)按K1刹车键,D6、D7相应信号灯亮;(2)按K2紧急键,D2、D3、D4、D5、D6、D7相应信号灯闪烁;(3)按
13、K3停靠键,D2、D3、 D6、D7闪烁;(4)按K4左转弯键,D2、D4、D6闪烁;(5)按K5右转弯键,D3、D5、D7闪烁;(6)按K6倒车键,D8闪烁;(7)按K1刹车、K2紧急键,D2、D3、D4、D5闪烁;D6、D7亮;(8)按K4左转弯、K1刹车键,D2、D4、D7闪烁;D6亮;(9)按K5右转弯、K1刹车键,D3、D5、D6闪烁;D7亮;(10)按K4左转弯、K1刹车、K2紧急键,D2、D3、D4、D5、D7闪烁;D6亮;(11)按K5右转弯、K1刹车、K2紧急键,D2、D3、D5、D6、D8闪烁,D7亮。(12)除上述情况以外的其他操作,D1闪烁。 图7汽车转向灯控制系统仿真
14、图5结论我本次课程设计的题目为“基于单片机的汽车转向灯控制系统”,选定题目之后我首先去图书馆查阅了相关资料,又在网上搜集了一些与本次设计相关的知识点,最终按着老师的要求设计出相关控制电路和程序。在设计的过程中也遇到了很多的问题。首先是在程序的设计上,由于所控制的分支太多,所以花了很长时间才整理出程序,在三个不同时间的延时的设计过程中,由于自己忽略了定时器选择的定时模式,导致了延时计算的错误,在经过同学指点后多次计算终于实现了LED以10Hz和30Hz频率闪烁;其次在软件的安装方面,这次课设需要用到Visio画图软件,Proteus、Keil仿真软件等一系列软件,因为电脑的问题致使安装的时候出现
15、了各种状况,但在同学的帮助下最后还是安装成功;最后就是在仿真时,由于对软件环境不熟悉,不过在请教老师之后最终完成仿真。通过这次课设,我不仅进一步熟悉掌握了一些常用的软件,而且对以前所学单片机的知识有了更深层次的理解和巩固,同时跟老师和同学学到的很多知识也使我受益匪浅。 附录1、参考文献1 王幸之 钟爱琴, at89系列单片机原理与接口技术,北京航空航天大学出版社 2004。2 谭浩强,C程序设计(第二版),清华大学出版社 1999。3 赵亮,单片机C语音编程与实例,人民邮出版社 2004。4 房小翠、王金凤,单片机实用系统设计技术,国防工业出版社,1999。5 康华光,电子技术基础数字部分(第
16、四版)高等教育出版社 1998。6 张毅刚,单片机原理及应用,高等教育出版社 2003。7 李广第,朱月秀,王秀山,单片机基础,北京航空航天大学出版社,2001。8 杨振江,A/D、D/A转换器接口技术与实用电路,西安电子科技大学出版社。9 张毅刚,单片机原理及应用,高等教育出版社 2003。 附录2、程序清单ORG 0000H AJMP START1 ORG 0030HSAME EQU 4EHSTART1: MOV P1,#00H ;无输入时输出START: MOV A,P2 ;读P2口数据 ANL A,#3FH ;取用P2口的低6位数据 CJNE A,#3FH,SHIY ;对P2口低6位数
17、据进行判断 AJMP START1 SHIY: MOV SAME,A LCALL YS ;延时 MOV A,P2 ;读P2口的数据 ANL A,#3FH ;取用P2口的低6位数据 CJNE A,#3FH,SHIY1 ;对P2口低6位数据进行判断 AJMP START1 ;开关没有动作时无输出SHIY1: CJNE A,SAME,START1 CJNE A,#37H,NEXT1 ;P2.3=0时进入左转弯分支 AJMP LEFTNEXT1: CJNE A,#2FH,NEXT2 ;P2.4=0时进入右转弯分支 AJMP RIGHTNEXT2: CJNE A,#3DH,NEXT3 ;P2.1=0时进
18、入紧急分支 AJMP EARGENEXT3: CJNE A,#3EH,NEXT4 ;P2.0=0时进入刹车分支 AJMP BRAKENEXT4: CJNE A,#36H,NEXT5 ;P2.0=P2.3=0时进入左转弯刹车分支 AJMP LEBRNEXT5: CJNE A,#2EH,NEXT6 ;p2.0=P2.4=0时进入右转弯刹车分支 AJMP RIBRNEXT6: CJNE A,#3CH,NEXT7 ;P2.0=P2.1=0时进入紧急刹车分支 AJMP BRERNEXT7: CJNE A,#34H,NEXT8 ;P2.0=P2.1=P2.3=0时进入左转弯紧急刹车分支 AJMP LBEN
19、EXT8: CJNE A,#2CH,NEXT9 ;P2.0=P2.1=P2.4=0时进入右转弯紧急刹车分支 AJMP RBENEXT9: CJNE A,#3BH,NEXT10 ;P2.2=0时进入停靠分支 AJMP STOPNEXT10:CJNE A,#1FH,NEXT11 ;p2.5=0时启动倒车 AJMP BACKNEXT11:AJMP ERROR ;其他情况进入错误分支LEFT: MOV P1,#2AH ;左转弯分支 LCALL Y1s MOV P1,#00H LCALL Y1s AJMP STARTRIGHT: MOV P1,#54H ;右转弯分支 LCALL Y1s MOV P1,#
20、00H LCALL Y1s AJMP STARTEARGE: MOV P1,#7EH ;紧急分支 LCALL Y1s MOV P1,#00H LCALL Y1s AJMP STARTBRAKE: MOV P1,#60H ;刹车分支 AJMP STARTLEBR: MOV P1,#6AH ;左转弯刹车分支 LCALL Y1s MOV P1,#20H LCALL Y1s AJMP STARTRIBR: MOV P1,#74H ;右转弯刹车分支 LCALL Y1s MOV P1,#40H LCALL Y1s AJMP STARTBRER: MOV P1,#7EH ;紧急刹车分支 LCALL Y1s
21、MOV P1,#60H LCALL Y1s AJMP STARTLBE: MOV P1,#7EH ;左转弯紧急刹车分支 LCALL Y1s MOV P1,#20H LCALL Y1s AJMP STARTRBE: MOV P1,#76H ;右转弯紧急刹车分支 LCALL Y1s MOV P1,#40H LCALL Y1s AJMP STARTSTOP: MOV P1,#66H ;停靠分支 LCALL Y1s MOV P1,#00H LCALL Y1s AJMP STARTBACK: MOV P1,#80H LCALL Y1s MOV P1,#00H LCALL Y1s AJMP STARTER
22、ROR: MOV P1,#01H LCALL Y1s MOV P1,#00H LCALL Y1s AJMP STARTYS: MOV R7,#20H ;延时YS0: MOV R6,#0FFHYS1: DJNZ R6,YS1 DJNZ R7,YS0 RETY1s: MOV R7,#04H ;延时Y1s1: MOV R6,#0FFHY1s2: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,Y1s2 DJNZ R7,Y1s1 RETY100ms: MOV R7,#66H ;延时Y100ms1:MOV R6,#0FFHY100ms2:DJNZ R6,Y100ms2 DJNZ R7,Y100ms1 RET END
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2