1、基于单片机的汽车转向灯设计基于单片机的汽车转向灯设计摘要本设计采用单片机控制,在控制系统中,选择了6个开关、1个AT89C51单片机、6只发光二极管(用来模拟信号灯发光)。其中AT89C51单片机做为控制核心,当6个开关的状态发生改变后,单片机检测到开关信号后就通过软件输出相关信号,来驱动6个汽车信号灯根据开关的相应状态闪烁或长亮。信号灯由发光二极管模拟替代。通过这些,本控制系统能够很好的达到控制汽车转弯信号灯的目的,同时,所采用的单片机及其他元件的成本不高,还能很好的达到控制要求,不会增加汽车的制造成本。对生产厂家和消费者来说是非常好的选择。关键词:单片机 汽车转弯信号灯 AT89C51Ab
2、stractThis design uses the microcontroller in the control system, select the six switches, AT89C51 microcontroller, eight light-emitting diode (LED lights to simulate). AT89C51 microcontroller as a control center which, when the six switch changes state, the microcontroller detects the signal after
3、switching the output correlation signal through software, to drive the eight car lights flash according to the state corresponding to the switch or long light. Analog signal from the light-emitting diodes instead. Through these, the control system can turn a good signal to control the cars purpose,
4、the same time, the microcontroller and other components used in the cost is not high, but also good to control demand will not increase the manufacturing cost of the car. On manufacturers and consumers is a very good choice. Key words: SCM Automotive turn signal lights AT89C51 1引言在当今社会,科技与工业高度发达,汽车的
5、数量逐年增多,街上的每一个角落都充斥它们的身影,但凡事都有两面性,汽车在方便了人们的生活也对交通方面和人身安全构成了威胁,为此我们应该采取有效的方法来减少事故的发生概率和提高车辆的运行效率。因此汽车转向灯便成为每一辆汽车必不可少的装置设备。汽车转向灯是行车安全的必备条件,除了具有照明作用,对行人和其他车辆还具有转向、会车、刹车等警示作用。传统的汽车转向灯由于自身条件的限制,可靠性低,定时时间不够精确,使用寿命较短,且继电器受温度影响较大,对于温度变化较大的环境往往不能满足要求。所以本文中汽车转向灯设计是用单片机来实现的,单片机控制系统不仅可避免传统的缺点,还具有功能强、使用灵活、可靠性高、成本
6、低、体积小、面向控制、具有智能化功能等优点。2设计方案及原理本设计要求在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠、倒车等操作时,实现对各种信号指示灯的控制。根据设计要求,制定总体的设计思想。汽车转向灯电路是由单片机AT89C51、复位、警报、LED显示电路、按键电路等几部分构成。系统设计以单片机AT89C51为核心芯片通过控制LED的显示来模拟汽车转向灯,即用开关1-6的闭合分别模拟刹车、紧急、停靠、左转、右转、倒车操作;用LED发光二极管D1-D8的亮灭显示来模拟汽车的故障指示灯、左头灯、右头灯、左转弯信号灯、右转弯信号灯、左尾灯、右尾灯、倒车灯的显示情况。转向时,规定左右尾灯、左右头
7、灯仪表板上2个指示灯相应地发出闪烁信号;应急开关合上时, 6个信号灯都应闪烁;汽车刹车时,2个尾灯发出稳定亮信号;如正当转向时刹车,转向时原应闪烁的信号仍应闪烁。它们都是低频闪烁,任何上述之外的开关组合,都将出现故障指示灯闪烁,闪烁频率为高频且发出警报声,按下相应复位键警报声与指示灯解除,之后可及时排查电路问题。系统组成框图如图1所示。图1 系统组成框图单片机系统的工作原理开关状态检测开关状态检测,对AT89C51来说是输入关系,可轮流检测每个开关状态,以每个开关的状态让相应的发光二极管指示;也可以一次性检测六路开关状态,即用MOV A, P2 指令一次性把P2 端口的状态全部读入,取低6位的
8、状态来指示,根据此选择分支。输出控制发光二极管由D1-D8来指示,设计用指令MOV P1, #111XXXXXB方法来实现选择。定时器信号的控制是定时器得以实现的结果。在汽车转弯灯的控制中主要利用AT89C51单片机的可编程定时器来实现灯闪烁的延时,即通过对系统时钟脉冲的计数来实现的,计数值由程序设定。利用定时器,产生高频闪烁功能。循环系统通过语句的反复调用和循环来达到主程序循环,并产生低频闪烁功能。汽车转向灯控制在汽车转弯、停靠或应急状态下,外部信号灯和仪表板它们指示灯的闪烁频率为低频信号。当发生错误时,信号灯频率闪烁此时为高频信号。汽车转弯灯设计6个按键控制信号灯的转向、停靠、应急等。按键
9、安排为:1键为刹车开关;2键为紧急开关;3键为停靠开关;4键为左转弯开关;5键为右转弯开关;6键为倒车开关。 汽车转向灯控制系统的硬件设计按键电路本设计选用拨动开关,单片机引脚作为输入使用,首先置“1”。当键没有被按下时,单片机引脚上为高电平;而当键被按下去后,引脚接地,单片机引脚上为低电平。是否有键按下,以及被按下的是哪一个可以通过单片机引脚电平显示出来。图1是电路板上按键的接法,6个按键分别接到、和。对于这种接法,各程序可以采用不断查询的方法,检测是否有键闭合,判断键号并转入相应的键处理。其电路图如图2所示。图2 按键控制电路蜂鸣器电路当控制系统系统进入错误分支时,单片机产生信号,警报灯闪
10、亮,信号经过放大器放大后蜂鸣器运作,发出警报声,警示他人系统出错。之后按下复位按钮,可将单片机发出的高电平信号钳制在低电平,使警报声和警报灯解除,之后工作人员可及时检查系统的错误原因。其电路图如图3所示。图3 蜂鸣器电路指示灯电路芯片ULN2803有功率放大的驱动和反相的功能。当单片机发出高电平时,通过ULN2803反相器变为低电平,使指示灯发亮。其电路图如图4所示。图4 指示灯电路 汽车转向灯总电路原理图汽车转向灯原理图如附录一所示。 汽车转向灯控制系统的软件设计程序主旨思想主程序中完成对汽车转向灯控制系统的初始化工作,判断是否有键被按下,当开关没有动作时无输出,调用延时程序,当判断有开关被
11、按下时,通过逐位比较判断进入各分支,其中也在各分支中调用了延时程序和定时器,以使LED在不同的分支以相应的频率闪烁。=刹车;=紧急;=停靠;=左转;=右转;=倒车。键值是根据P2的状态来确定的。例:P2=00111110,表明刹车键按下,它的键值是3EH(只看后面六位)。汽车转向灯设计程序清单如附录二所示。指示灯电路流程图流程图主要为选择分支和判断分支。汽车转向灯流程图如附录三所示。3仿真结果操作说明如下:按1刹车键,D6、D7相应信号灯亮;按2紧急键,D2、D3、D4、D5、D6、D7信号灯闪烁;按3停靠键,D2、D3、D6、D7闪烁;按4左转弯键,D2、D4、D6闪烁;按5右转弯键,D3、
12、D5、D7闪烁;按6倒车键,D8闪烁;按1刹车、2紧急键,D2、D3、D4、D5闪烁;D6、D7亮;按4左转弯、1刹车键,D2、D4、D7闪烁;D6亮;按5右转弯、1刹车键,D3、D5、D6闪烁;D7亮;按4左转弯、1刹车、2紧急键,D2、D3、D4、D5、D7闪烁;D6亮;按5右转弯、1刹车、2紧急键,D2、D3、D5、D6、D8闪烁,D7亮。除上述情况以外的其他操作,发生错误,蜂鸣器响,D1闪烁,按复位键停止。以刹车状态仿真为例如附录四所示。4 总结我本次课程设计的题目为“汽车转向灯”,选题之后我从网上查阅了相关资料,参考了许多前辈的设计,体会了其中的思想。最终按着老师的要求设计出相关控制
13、电路和程序。在设计的过程中也遇到了很多的问题。首先是在程序的设计上,在延时程序中为了到达预期的闪烁频率测试修改了多次,花了很长时间,最终采取定时器和指令循环两种延时方式最终实现了LED以分别以高频和低频闪烁。在硬件方面我在基本功能的基础上加上了警报功能,复习了模电与数电的知识。这次课设Visio、Proteus、Keil等一系列软件,加强了自己的操作水平。总而言之,通过这次课设,我不仅进一步熟悉掌握了单片机和其他电路方面的知识,同时跟老师和同学学到的很多知识也使我受益匪浅。参考文献1 王思明.单片机原理及应用系统设计M.北京:科学出版社,2012.2 封志存.模拟电子技术M.兰州:兰州大学出版
14、社,2003.3 李积英.数字电子技术M.北京:中国电力出版社,2011. 附录一 汽车转向灯总电路图附录二 汽车转向灯设计程序清单 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位数据判断 AJMP START1SHIY: MOV SAME,A LCALL YS ;调用延时程序 MOV A,P2 ;读P2口数据 ANL A,#3FH ;取P2口低6位数据 CJN
15、E A,#3FH,SHIY1 ;对P2口低6位数据判断 AJMP START1 ;开关无动作时无输出SHIY1: CJNE A,SAME,START1 CJNE A,#37H,NEXT1 ;=0时进入左转弯分支 AJMP LEFTNEXT1: CJNE A,#2FH,NEXT2 ;=0时进入右转弯分支 AJMP RIGHTNEXT2: CJNE A,#3DH,NEXT3 ;=0时进入紧急分支 AJMP EARGENEXT3: CJNE A,#3EH,NEXT4 ;=0时进入刹车分支AJMP BRAKENEXT4: CJNE A,#36H,NEXT5 ;=0时进入左转弯刹车分支AJMP LEBR
16、NEXT5: CJNE A,#2EH,NEXT6 ;=0时进入右转弯刹车分支AJMP RIBRNEXT6: CJNE A,#3CH,NEXT7 ;=0时进入紧急刹车分支?AJMP BRERNEXT7: CJNE A,#34H,NEXT8 ;=0时进入左转紧急刹车分支AJMP LBENEXT8: CJNE A,#2CH,NEXT9 ;=0时进入右转紧急刹车分支AJMP RBENEXT9: CJNE A,#3BH,NEXT10 ;=0时进入停靠分支AJMP STOPNEXT10: CJNE A,#1FH,NEXT11 ;=0时启动倒车AJMP BACKNEXT11: AJMP ERROR ;其他情
17、况进入错误分支 LEFT: MOV P1,#2AH ;左转弯分支LCALL Y1sMOV P1,#00HLCALL Y1sAJMP STARTRIGHT: MOV P1,#54H ;右转弯分支LCALL Y1sMOV P1,#00HLCALL Y1sAJMP STARTEARGE: MOV P1,#7EH ;紧急分支LCALL Y1sMOV P1,#00HLCALL Y1sAJMP STARTBRAKE: MOV P1,#60H ;刹车分支AJMP STARTLEBR: MOV P1,#6AH ;左转弯刹车分支LCALL Y1sMOV P1,#20HLCALL Y1sAJMP STARTRIB
18、R: MOV P1,#74H ;右转弯刹车分支LCALL Y1sMOV P1,#40HLCALL Y1sAJMP STARTBRER: MOV P1,#7EH ;紧急刹车分支LCALL Y1sMOV P1,#60HLCALL Y1sAJMP STARTLBE: MOV P1,#7EH ;左转紧急刹车分支LCALL Y1sMOV P1,#20HLCALL Y1sAJMP STARTRBE: MOV P1,#7EH ;右转紧急刹车分支LCALL Y1sMOV P1,#40HLCALL Y1sAJMP STARTSTOP: MOV P1,#66H ;停靠分支LCALL Y1sMOV P1,#00HL
19、CALL Y1sAJMP STARTBACK: MOV P1,#80H ;倒车分支LCALL Y1sMOV P1,#00HLCALL Y1sAJMP STARTERROR: MOV P1,#01H ;错误分支LCALL Y100msMOV P1,#00HLCALL Y100msAJMP STARTYS: MOV R7,#20H ;延时YS0: MOV R6,#0FFHYS1: DJNZ R6,YS1DJNZ R7,YS0RETY1s: MOV R7,#04H ;循环语句延时Y1s1: MOV R6,#0FFHY1s2: MOV R5,#0FFH DJNZ R5,$DJNZ R6,Y1s2DJNZ R7,Y1s1RETY100ms: MOV TMOD,#01H ;定时器延时 MOV TH1,#00H MOV TL1,#00H MOV IE,#00H SETB TR1Y100ms1: JBC TF1,Y100ms2 AJMP Y100ms1Y100ms2: CLR TR1 RET END附录三 主程序流程图附录四 汽车转向灯仿真图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1