资源描述
- -
单片机原理及系统课程设计
评语:
考勤10分
守纪10分
过程30分
设计报告30分
辩论20分
总成绩〔100分〕
基于单片机的汽车转向灯设计
1引言
在当今社会,科技与工业高度兴旺,汽车的数量逐年增多,街上的每一个角落都充满它们的身影,但凡事都有两面性,汽车在方便了人们的生活也对交通方面和人身平安构成了威胁,为此我们应该采取有效的方法来减少事故的发生概率和提高车辆的运行效率。因此汽车转向灯便成为每一辆汽车必不可少的装置设备。汽车转向灯是行车平安的必备条件,除了具有照明作用,对行人和其他车辆还具有转向、会车、刹车等警示作用。传统的汽车转向灯由于自身条件的限制,可靠性低,定时时间不够准确,使用寿命较短,且继电器受温度影响较大,对于温度变化较大的环境往往不能满足要求。所以本文中汽车转向灯设计是用单片机来实现的,单片机控制系统不仅可防止传统的缺点,还具有功能强、使用灵活、可靠性高、本钱低、体积小、面向控制、具有智能化功能等优点。
2设计方案及原理
本设计要求在汽车进展左转弯、右转弯、刹车、合紧急开关、停靠、倒车等操作时,实现对各种信号指示灯的控制。根据设计要求,制定总体的设计思想。
汽车转向灯电路是由单片机AT89C51、复位、警报、LED显示电路、按键电路等几局部构成。
2.1系统设计
以单片机AT89C51为核心芯片通过控制LED的显示来模拟汽车转向灯,即用开关1-6的闭合分别模拟刹车、紧急、停靠、左转、右转、倒车操作;用LED发光二极管D1-D8的亮灭显示来模拟汽车的故障指示灯、左头灯、右头灯、左转弯信号灯、右转弯信号灯、左尾灯、右尾灯、倒车灯的显示情况。转向时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号;应急开关合上时,6个信号灯都应闪烁;汽车刹车时,2个尾灯发出稳定亮信号;如正当转向时刹车,转向时原应闪烁的信号仍应闪烁。它们都是低频闪烁,任何上述之外的开关组合,都将出现故障指示灯闪烁,闪烁频率为高频且发出警报声,按下相应复位键警报声与指示灯解除,之后可及时排查电路问题。
系统组成框图如图1所示。
图1系统组成框图
2.2单片机系统的工作原理
2.2.1开关状态检测
开关状态检测,对AT89C51来说是输入关系,可轮流检测每个开关状态,以每个开关的状态让相应的发光二极管指示;也可以一次性检测六路开关状态,即用MOV A, P2指令一次性把P2端口的状态全部读入,取低6位的状态来指示,根据此选择分支。
2.2.2输出控制
发光二极管由D1-D8来指示,设计用指令MOV P1,#111XXXXXB方法来实现选择。
2.2.3定时器
信号的控制是定时器得以实现的结果。在汽车转弯灯的控制中主要利用AT89C51单片机的可编程定时器来实现灯闪烁的延时,即通过对系统时钟脉冲的计数来实现的,计数值由程序设定。利用定时器,产生高频闪烁功能。
2.2.4循环系统
通过语句的反复调用和循环来到达主程序循环,并产生低频闪烁功能。
2.2.5汽车转向灯控制
在汽车转弯、停靠或应急状态下,外部信号灯和仪表板它们指示灯的闪烁频率为低频信号。当发生错误时,信号灯频率闪烁此时为高频信号。汽车转弯灯设计6个按键控制信号灯的转向、停靠、应急等。按键安排为:1键为刹车开关;2键为紧急开关;3键为停靠开关;4键为左转弯开关;5键为右转弯开关;6键为倒车开关。
2.3 汽车转向灯控制系统的硬件设计
2.3.1按键电路
本设计选用拨动开关,单片机引脚作为输入使用,首先置“1〞。当键没有被按下时,单片机引脚上为高电平;而当键被按下去后,引脚接地,单片机引脚上为低电平。是否有键按下,以及被按下的是哪一个可以通过单片机引脚电平显示出来。图1是电路板上按键的接法,6个按键分别接到P2.0、P2.1、P2.2、P2.3、P2.4和P2.5。对于这种接法,各程序可以采用不断查询的方法,检测是否有键闭合,判断键号并转入相应的键处理。
其电路图如图2所示。
图2按键控制电路
2.3.2蜂鸣器电路
当控制系统系统进入错误分支时,单片机P1.0产生信号,警报灯闪亮,信号经过放大器放大后蜂鸣器运作,发出警报声,警示他人系统出错。之后按下复位按钮,可将单片机P1.0发出的高电平信号钳制在低电平,使警报声和警报灯解除,之后工作人员可及时检查系统的错误原因。
其电路图如图3所示。
图3蜂鸣器电路
2.3.3指示灯电路
芯片ULN2803有功率放大的驱动和反相的功能。当单片机P2.0-P2.7发出高电平时,通过ULN2803反相器变为低电平,使指示灯发亮。
其电路图如图4所示。
图4指示灯电路
2.4 汽车转向灯总电路原理图
汽车转向灯原理图如附录一所示。
2.5 汽车转向灯控制系统的软件设计
2.5.1程序主旨思想
主程序中完成对汽车转向灯控制系统的初始化工作,判断是否有键被按下,当开关没有动作时无输出,调用延时程序,当判断有开关被按下时,通过逐位比拟判断进入各分支,其中也在各分支中调用了延时程序和定时器,以使LED在不同的分支以相应的频率闪烁。P2.0=刹车;P2.1=紧急;P2.2=停靠;P2.3=左转;P2.4=右转;P2.5=倒车。键值是根据P2的状态来确定的。
例:P2=00111110,说明刹车键按下,它的键值是3EH〔只看后面六位〕。
汽车转向灯设计程序清单如附录二所示。
2.5.2指示灯电路流程图
图5指示灯电路流程图
3仿真图
操作说明如下:按1刹车键,D6、D7相应信号灯亮;按2紧急键,D2、D3、D4、D5、D6、D7信号灯闪烁;按3停靠键,D2、D3、D6、D7闪烁;按4左转弯键,D2、D4、D6闪烁;按5右转弯键,D3、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总结
我本次课程设计的题目为“汽车转向灯〞,选题之后我从网上查阅了相关资料,参考了许多前辈的设计,体会了其中的思想。最终按着教师的要求设计出相关控制电路和程序。在设计的过程中也遇到了很多的问题。首先是在程序的设计上,在延时程序中为了到达预期的闪烁频率测试修改了屡次,花了很长时间,最终采取定时器和指令循环两种延时方式最终实现了LED以分别以高频和低频闪烁。在硬件方面我在根本功能的根底上加上了警报功能,复习了模电与数电的知识。这次课设Visio、Proteus、Keil等一系列软件,加强了自己的操作水平。
总而言之,通过这次课设,我不仅进一步熟悉掌握了单片机和其他电路方面的知识,同时跟教师和同学学到的很多知识也使我受益匪浅。
参考文献
[1] 王思明.单片机原理及应用系统设计[M].:科学,2021.
[2] 封志存.模拟电子技术[M].:大学,2003.
[3] 积英.数字电子技术[M].:中国电力,2021.
附录一汽车转向灯总电路图
附录二汽车转向灯设计程序清单
ORG0000H
AJMPSTART1
ORG 0030H
SAMEEQU4EH
START1:MOVP1,#00H ;无输入时输出
START:MOV A,P2;读P2口数据
ANL A,#3FH;取P2口低6位数据
CJNE A,#3FH,SHIY;对P2口低6位数据判断
AJMPSTART1
SHIY:MOV SAME,A
LCALL YS;调用延时程序
MOVA,P2;读P2口数据
ANLA,#3FH;取P2口低6位数据
CJNEA,#3FH,SHIY1;对P2口低6位数据判断
AJMPSTART1;开关无动作时无输出
SHIY1:CJNEA,SAME,START1
CJNEA,#37H,NEXT1 ;P2.3=0时进入左转弯分支
AJMPLEFT
NEXT1: CJNEA,#2FH,NEXT2;P2.4=0时进入右转弯分支
AJMPRIGHT
NEXT2:CJNEA,#3DH,NEXT3;P2.1=0时进入紧急分支
AJMPEARGE
NEXT3:CJNEA,#3EH,NEXT4;P2.0=0时进入刹车分支
AJMPBRAKE
NEXT4:CJNEA,#36H,NEXT5;P2.0=P2.3=0时进入左转弯刹车分支
AJMPLEBR
NEXT5:CJNEA,#2EH,NEXT6;p2.0=P2.4=0时进入右转弯刹车分支
AJMPRIBR
NEXT6:CJNEA,#3CH,NEXT7;P2.0=P2.1=0时进入紧急刹车分支ァ
AJMPBRER
NEXT7:CJNEA,#34H,NEXT8;P2.0=P2.1=P2.3=0时进入左转紧急刹车分支
AJMPLBE
NEXT8:CJNEA,#2CH,NEXT9;P2.0=P2.1=P2.4=0时进入右转紧急刹车分支
AJMPRBE
NEXT9:CJNEA,#3BH,NEXT10;P2.2=0时进入停靠分支
AJMPSTOP
NEXT10:CJNE A,#1FH,NEXT11 ;p2.5=0时启动倒车
AJMP BACK
NEXT11:AJMP ERROR ;其他情况进入错误分支
LEFT:MOVP1,#2AH;左转弯分支
LCALLY1s
MOVP1,#00H
LCALLY1s
AJMPSTART
RIGHT:MOVP1,#54H;右转弯分支
LCALLY1s
MOVP1,#00H
LCALLY1s
AJMPSTART
EARGE:MOVP1,#7EH;紧急分支
LCALLY1s
MOVP1,#00H
LCALLY1s
AJMPSTART
BRAKE:MOVP1,#60H;刹车分支
AJMPSTART
LEBR:MOV P1,#6AH ;左转弯刹车分支
LCALLY1s
MOVP1,#20H
LCALLY1s
AJMPSTART
RIBR:MOVP1,#74H ;右转弯刹车分支
LCALLY1s
MOVP1,#40H
LCALLY1s
AJMPSTART
BRER:MOVP1,#7EH;紧急刹车分支
LCALLY1s
MOVP1,#60H
LCALLY1s
AJMPSTART
LBE:MOVP1,#7EH;左转紧急刹车分支
LCALLY1s
MOVP1,#20H
LCALLY1s
AJMPSTART
RBE:MOVP1,#7EH;右转紧急刹车分支
LCALLY1s
MOVP1,#40H
LCALLY1s
AJMPSTART
STOP:MOVP1,#66H;停靠分支
LCALLY1s
MOVP1,#00H
LCALLY1s
AJMPSTART
BACK: MOV P1,#80H ;倒车分支
LCALL Y1s
MOV P1,#00H
LCALL Y1s
AJMP START
ERROR:MOVP1,#01H ;错误分支
LCALLY100ms
MOVP1,#00H
LCALLY100ms
AJMPSTART
YS:MOVR7,#20H;延时
YS0:MOVR6,#0FFH
YS1:DJNZR6,YS1
DJNZR7,YS0
RET
Y1s:MOVR7,#04H;循环语句延时
Y1s1:MOVR6,#0FFH
Y1s2:MOVR5,#0FFH
DJNZR5,$
DJNZR6,Y1s2
DJNZR7,Y1s1
RET
Y100ms:MOV TMOD,#01H ;定时器延时
MOV TH1,#00H
MOV TL1,#00H
MOV IE,#00H
SETB TR1
Y100ms1:C TF1,Y100ms2
AJMP Y100ms1
Y100ms2:CLR TR1
RET
END
附录三主程序流程图
附录四汽车转向灯仿真图
- word.zl
展开阅读全文