当前位置:文档之家› 单片机课程设计:汽车转向灯控制系统

单片机课程设计:汽车转向灯控制系统

单片机课程设计:汽车转向灯控制系统
单片机课程设计:汽车转向灯控制系统

- -- 单片机原理及系统课程设计

专业:自动控制

班级:控093

姓名:古月

学号:2009020202

指导教师:

兰州交通大学自动化与电气工程学院

2012 年7月1日

基于单片机的汽车转向灯控制系统

1 引言

车灯是行车安全的必备件,除了具有照明作用,对行人和其他车辆还具有转向、刹车等警示作用。汽车转向和故障信号灯是汽车运动方向和车身状态的表示信号,关系着汽车的安全问题,因此基于单片机的汽车转向灯控制器一直以来都是汽车电子设计中的一个十分重要的领域。本设计是设计一个单片机控制系统,在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠、倒车等操作时,实现对各种信号指示灯的控制。它主要是对单片机的并行输入/输出口电路的应用,通过I/O口控制发光二极管的亮﹑灭﹑闪烁,加上一些串口电路﹑按键电路﹑驱动电路来模拟汽车尾灯的功能并在PC机上显示此时的汽车行进状态。

汽车转弯或停靠时,相应的信号灯要发出闪烁的灯光信号,目前国内广泛使用电热式闪光器产生闪光信号。闪烁频率在50~110 次/分,但是一般控制在60~95 次/分之间。闪光器是通过调节镍铬丝的拉力和触点的间隙来满足频率要求的,灯泡功率的大小也会影响闪烁频率,因此在更换闪光器或灯泡时调整比较困难。同时,系统没有故检测,驾驶员无法知道车外的转向灯及故障指示灯是否点亮,从而影响行车安全。到目前为止,我们还没有发现能检测灯丝断这种故障的有效方法。针对上述问题,我们用AT89C51单片机设计了一套汽车转向灯控制系统。用LED产生闪光信号,同时能自动检测信号灯故障。

2 设计方案及原理

汽车转弯灯单片机控制系统电路是由单片机AT89C51、复位、时钟、LED显示电路、按键电路构成等几部分组成。

2.1 系统设计

本设计要求在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠、倒车等操作时,实现对各种信号指示灯的控制。根据设计要求,制定总体的设计思想:以单片机AT89C51为核心芯片通过控制LED的显示来模拟汽车转向灯,即用开关K1-K6的闭合分别模拟刹车、紧急、停靠、左转、右转、倒车操作;用LED

发光二极管D1-D8的亮灭显示来模拟汽车的故障指示灯、左头灯、右头灯、左转弯信号灯、右转弯信号灯、左尾灯、右尾灯、倒车灯的显示情况。转向时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号;应急开关合上时,6个信号灯都应闪烁;汽车刹车时,2个尾灯发出稳定亮信号;如正当转向时刹车,转向时原应闪烁的信号仍应闪烁。它们都是频率为1Hz低频闪烁,在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为30Hz的高频闪烁。任何上述之外的开关组合,都将出现故障指示灯闪烁,闪烁频率为30Hz。

2.2 单片机系统的工作原理

2.2.1开关状态检测

开关状态检测,对AT89C51来说是输入关系,可轮流检测每个开关状态,以每个开关的状态让相应的发光二极管指示;也可以一次性检测六路开关状态,即用MOV A, P2 指令一次性把P2 端口的状态全部读入,取低6位的状态来指示。

2.2.2输出控制

以LED发光二极管D1--D8 来指示,此设计用指令MOV P1, #111XXXXXB 方法来实现。

2.2.3定时器和计数器

信号的控制是定时器与中断系统的联合使用得以实现的结果。在汽车转弯灯的控制中主要利用AT89C51单片机的可编程定时/计数器、中断系统来实现灯闪烁的延时和故障检测,即通过对系统时钟脉冲的计数来实现的,计数值由程序设定。

设计中利用定时器/计数器0,一个软件计数器产生低频(1Hz)闪烁功能。利用定时器/计数器0来产生为时30ms的定时信号,以实现高频(30Hz)闪烁功能。

2.2.4中断系统

通过C51的软件编程实现对中断系统的处理。利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现灯闪烁的延时和故障检测。当检测到操作错误,

可以利用中断系统请求CPU及时处理这些故障,实现对系统的实时控制,同时操作人员可以利用键盘等实现中断,完成人工介入,实现人机联系。

2.2.4汽车转向灯控制

在汽车转弯或应急状态下,外部信号灯和仪表板它们指示灯的闪烁频率为1Hz,称低频信号。当停靠开关合上时,外部信号灯以30Hz频率闪烁此时为高频信号。汽车转弯灯设计6个按键控制信号灯的转向、停靠、应急等。按键安排为:K1键为刹车开关;K2键为紧急开关;K3键为停靠开关;K4键为左转弯开关;K5键为右转弯开关;K6键为倒车开关。

2.3 汽车转向灯控制系统的硬件设计

2.3.1按键电路

根据设计的要求,本设计选用独立式键盘。其工作原理为,单片机引脚作为输入使用,首先置“1”。当键没有被按下时,单片机引脚上为高电平;而当键被按下去后,引脚接地,单片机引脚上为低电平。是否有键按下,以及被按下的是哪一个可以通过单片机引脚电平显示出来。图1是电路板上按键的接法,6个按键分别接到P2.0、P2.1、P2.2、P2.3、P2.4和P2.5。对于这种接法,各程序可以采用不断查询的方法,其功能就是:检测是否有键闭合,判断键号并转入相应的键处理。

图1 按键控制电路

2.3.2 时钟电路

采用单片机内部晶振。如图2所示,在MCS-51系列单片机内部有一个高增益反向放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片外部XTAL1和XTAL2之间跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。外接晶体振荡器以及电容C6和C7构成并联谐振电路,接在放大器的反馈回路中,C6和C7的大小会对振荡器频率的高低、振荡器的稳定性、起振的快速性和温度特性有一定的影响。

图2 时钟电路

2.3.3 复位电路

上电复位电路如图3所示,是利用外部复位电路实现。振荡器启动时间

不超过10ms,在加电情况下,可以使单片机复位。电平复位将复位端通过电

阻与Vcc相连,按键脉冲复位是利用RC分电路产生正脉冲来达到复位的。在

按键电平复位和按键脉冲复位两种简单的复位电路中,干扰易串入复位端,

会引起内部寄存器错误复位,故可在复位端引脚上接一个去耦电容C8。

图3 复位电路

2.3.3 LED显示电路

本设计通过驱动芯片ULN2803将AT89C51单片机的P1口输出与LED发光二极管相连,当AT89C51单片机的P1引脚是高电平时,LED不亮,当P1引脚是低电平时,LED亮。但是在汽车转向灯里要根据汽车方向来控制信号灯,而实现LED 的亮与灭。

2.4 汽车转向灯控制系统的总电路原理图

汽车转向灯控制系统总电路原理图见附录一。

2.5 汽车转向灯控制系统的软件设计

汽车转向灯控制系统主程序流程图如图4所示,系统中断服务程序流程图如图5所示,键功能程序流程图如图6所示。

主程序中完成对汽车转向灯控制系统的初始化工作,判断是否有键被按下,当开关没有动作时无输出,调用延时程序,延时1s,当判断有开关被按下时,进入中断。中断程序主要完成各开关按下时汽车转向灯信号的相应显示,其中也在

各分支中调用了延时程序,以使LED在不同的分支以相应的频率闪烁。

原理图按键连线:

P2.0=刹车;P2.1=紧急;

P2.2=停靠;P2.3=左转;

P2.4=右转;P2.5=倒车;

说明:键值是根据P2的状态来确定的。

例:P2=00111110,表明刹车键按下,它的键值是3EH(只看后面六位)。

汽车转向灯控制系统软件设计程序清单见附录二所示。

图4 汽车转向灯控制系统主程序流程图图5系统中断服务程序流程图

图6 汽车转向灯控制系统键功能程序流程图

3 总结

3.1 心得体会

我本次课程设计的题目为“基于单片机的汽车转向灯控制系统”,选定题目之后我首先去图书馆查阅了相关资料,又在网上搜集了一些与本次设计相关的知识点,最终按着老师的要求设计出相关控制电路和程序。在设计的过程中也遇到了很多的问题。首先是在程序的设计上,由于所控制的分支太多,所以花了很长时间才整理出程序,在三个不同时间的延时的设计过程中,由于自己忽略了定时器选择的定时模式,导致了延时计算的错误,在经过同学指点后多次计算终于实现了LED 以10Hz和30Hz频率闪烁;其次在软件的安装方面,这次课设需要用到Visio画图软件,Proteus、Keil仿真软件等一系列软件,因为电脑的问题致使安装的时候出现了各种状况,但在同学的帮助下最后还是安装成功;最后就是在仿真时,由于对软件环境不熟悉,不过在请教老师之后最终完成仿真。

通过这次课设,我不仅进一步熟悉掌握了一些常用的软件,而且对以前所学单片机的知识有了更深层次的理解和巩固,同时跟老师和同学学到的很多知识也使我受益匪浅。

3.2 仿真结果

在Proteus软件中,找到所需要的元器件,调入后,连线,下载程序到AT89C51芯片中,运行可看到相应的信号灯亮或闪烁,具体仿真图见附录三。操作说明如下:

(1)按K1刹车键,D6、D7相应信号灯亮;

(2)按K2紧急键,D2、D3、D4、D5、D6、D7相应信号灯闪烁;

(3)按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闪烁。

3 参考文献

[1] 赵瑞林.单片机原理及应用教程[M].北京:北京大学出版社,2004.

[2] 谢自美.电子线路设计实验(第二版)[M].武汉:华中理工出版社,2000.

[3] 李勋.单片机实用教程[M].北京:北京航空航天大学出版社,2003.

[4] 李广弟,朱月秀,王秀山.单片机基础[M].北京:航空航天大学出版社,2000.

[5] 康华光,陈大钦.电子技术基础模拟部分[M].武汉:高等教育出版社,1998.

[6] 徐爱钧,彭秀华.Keil Cx51 V7.0单片机高级语言编程与μVision2应用实践[M].北京:电子工

业出版社,2006.

附录一汽车转向灯控制系统总电路图

附录二汽车转向灯控制系统软件设计程序清单

ORG 0000H

AJMP START1

ORG 0030H

SAME EQU 4EH

START1: MOV P1,#00H ;无输入时输出

START: MOV A,P2 ;读P2口数据

ANL A,#3FH ;取用P2口的低6位数据

CJNE A,#3FH,SHIY ;对P2口低6位数据进行判断

AJMP START1

SHIY: MOV S AME,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 LEFT

NEXT1: CJNE A,#2FH,NEXT2 ;P2.4=0时进入右转弯分支

AJMP RIGHT

NEXT2: CJNE A,#3DH,NEXT3 ;P2.1=0时进入紧急分支

AJMP EARGE

NEXT3: CJNE A,#3EH,NEXT4 ;P2.0=0时进入刹车分支

AJMP BRAKE

NEXT4: CJNE A,#36H,NEXT5 ;P2.0=P2.3=0时进入左转弯刹车分支AJMP LEBR

NEXT5: CJNE A,#2EH,NEXT6 ;p2.0=P2.4=0时进入右转弯刹车分支AJMP RIBR

NEXT6: CJNE A,#3CH,NEXT7 ;P2.0=P2.1=0时进入紧急刹车分支

AJMP BRER

NEXT7: CJNE A,#34H,NEXT8 ;P2.0=P2.1=P2.3=0时进入左转弯紧急刹车分支AJMP LBE

NEXT8: CJNE A,#2CH,NEXT9 ;P2.0=P2.1=P2.4=0时进入右转弯紧急刹车分支AJMP RBE

NEXT9: CJNE A,#3BH,NEXT10 ;P2.2=0时进入停靠分支

AJMP STOP

NEXT10:CJNE A,#1FH,NEXT11 ;p2.5=0时启动倒车

AJMP BACK

NEXT11:AJMP ERROR ;其他情况进入错误分支

LEFT: MOV P1,#2AH ;左转弯分支

LCALL Y1s

MOV P1,#00H

LCALL Y1s

AJMP START

RIGHT: MOV P1,#54H ;右转弯分支

LCALL Y1s

MOV P1,#00H

LCALL Y1s

AJMP START

EARGE: MOV P1,#7EH ;紧急分支

LCALL Y1s

MOV P1,#00H

LCALL Y1s

AJMP START

BRAKE: MOV P1,#60H ;刹车分支

AJMP START

LEBR: MOV P1,#6AH ;左转弯刹车分支LCALL Y1s

MOV P1,#20H

LCALL Y1s

AJMP START

RIBR: MOV P1,#74H ;右转弯刹车分支

LCALL Y1s

MOV P1,#40H

LCALL Y1s

AJMP START

BRER: MOV P1,#7EH ;紧急刹车分支

LCALL Y1s

MOV P1,#60H

LCALL Y1s

AJMP START

LBE: M OV P1,#7EH ;左转弯紧急刹车分支

LCALL Y1s

MOV P1,#20H

LCALL Y1s

AJMP START

RBE: MOV P1,#76H ;右转弯紧急刹车分支LCALL Y1s

MOV P1,#40H

LCALL Y1s

AJMP START

STOP: MOV P1,#66H ;停靠分支

LCALL Y1s

MOV P1,#00H

LCALL Y1s

AJMP START BACK: MOV P1,#80H

LCALL Y1s

MOV P1,#00H

LCALL Y1s

AJMP START ERROR: MOV P1,#01H

LCALL Y1s

MOV P1,#00H

LCALL Y1s

AJMP START

YS: MOV R7,#20H ;延时YS0: M OV R6,#0FFH

YS1: D JNZ R6,YS1

DJNZ R7,YS0

RET

Y1s: MOV R7,#04H ;延时Y1s1: MOV R6,#0FFH

Y1s2: MOV R5,#0FFH

DJNZ R5,$

DJNZ R6,Y1s2

DJNZ R7,Y1s1

RET

Y100ms: MOV R7,#66H ;延时

Y100ms1:MOV R6,#0FFH

Y100ms2:DJNZ R6,Y100ms2

DJNZ R7,Y100ms1

RET

END

附录三汽车转向灯控制系统仿真图

相关主题
文本预览
相关文档 最新文档