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