汽车转向灯设计.docx
《汽车转向灯设计.docx》由会员分享,可在线阅读,更多相关《汽车转向灯设计.docx(25页珍藏版)》请在冰豆网上搜索。
汽车转向灯设计
单片机原理及系统课程设计
专业:
XXX
班级:
XXX
姓名:
XXX
学号:
XXX
指导教师:
XX
评语:
平时(40)
修改(30)
报告(30)
总成绩
兰州交通大学自动化与电气工程学院
2012年7月1日
1.引言
在我国,单片机已不是一个陌生的名词,他的出现是近代计算机技术的里程碑事件。
因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统(简称为嵌入式系统)两大分支。
在单片机诞生之前,为了满足工控对象的嵌入式应用要求只能将通用计算机进行机械加固、电气加固后嵌入到对象体系(如舰船)中构成自动驾驶仪、轮机监视系统等。
由于通用计算机的体积大和成本高无法嵌入到大多数对象体系(如家用电器、汽车、机器人、仪器仪表等)中,因此单片机嵌入式应运而生。
单片机芯片的微小体积和极低成本可以广泛地嵌入到如:
玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人终端及通讯产品中,成为现代电子系统中最重要的智能化工具。
随着单片机的日益发展,其应用也越来越广泛,通过对“汽车转向灯单片机控制系统”设计,可以对单片机的知识得到巩固和扩展。
本课程内容是设计一个单片机控制系统,在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠等操作时,实现对各种信号指示灯的控制。
本设计主要是对单片机的并行输入/输出口电路的应用,通过I/O口控制发光二极管的亮﹑灭﹑闪烁,加上一些复位电路﹑按键电路﹑驱动电路来模拟汽车尾灯的功能。
汽车在驾驶时有左转弯、右转弯、刹车、合紧急开关、停靠等操作。
在左转弯或右转弯时,通过转弯操作杆应使左转开关或右转开关合上,从而使左头灯、仪表板左转弯灯、左尾灯或右头灯、仪表板右转弯灯、右尾灯闪烁;合紧急开关时要求前面所述的6个信号灯全部闪烁;汽车刹车时,两个尾灯点亮;如正当转弯时刹车,则转弯时原应闪烁的信号灯仍应闪烁。
以上闪烁,都是频率为1Hz的低频闪烁;在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为10Hz的高频闪烁。
闪光器是通过调节镍铬丝的拉力和触点的间隙来满足频率要求的,灯泡功率的大小也会影响闪烁频率。
因此在更换闪光器或灯泡时调整比较困难。
同时,系统没有故检测,驾驶员无法知道车外的转向灯及示宽灯是否点亮,从而影响行车安全。
到目前为止,我们还没有发现能检测灯丝断这种故障的有效方法。
针对上述问题,我们用AT89C51单片机设计了一套汽车信号灯控制系统。
用LED产生闪光信号,同时能自动检测信号灯故障。
信号灯灯具的发展是随着汽车制造技术及电光源技术的发展而逐步完善的。
它经历了机油(或煤油)灯、乙炔气灯到电光源灯的发展历程。
现代汽车信号灯灯具已经开始使用发光二极管(LED)技术以及光导技术。
2.设计方案及原理
2.1设计方案:
如图2.1所示,汽车转向灯主要有单片机、按键、复位、时钟、电源、故障检测电路、LED显示电路组成最基本的单片机系统。
单片机本身的功能强大,汽车转向灯的驱动用单片机本身的驱动来驱动。
使得单片机的功能得到充分的运用。
本方案的故障检测电路具有故障监控性能,他能提高系统的可靠性。
图2.1汽车转向灯控制系统硬件构成
2.2设计原理:
由定时器/计数器与中断系统的联合组成控制系统的工作原理。
如汽车上有一个转弯控制杆,其中有三个位置:
中间位置,汽车不转弯;向上,汽车左转;向下汽车右转。
转弯时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号。
应急开关合上时,6个信号灯都应闪烁。
汽车刹车时,2个尾灯发出不闪烁信号。
如正当转弯时刹车,转弯时原应闪烁的信号仍应闪烁。
它们都是频率为1Hz低频闪烁,在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为10Hz频率快速闪烁。
任何在下表中未出现的组合,都将出现故障指示灯闪烁,闪烁频率为10Hz。
表1汽车驾驶操纵与信号
驾驶操作
输出信号
仪表板左转弯灯
仪表板右转弯灯
左头灯
右头灯
左尾灯
右尾灯
左转弯(合上左转开关)
闪烁
灭
闪烁
灭
闪烁
灭
右转弯(合上右转开关)
灭
闪烁
灭
闪烁
灭
闪烁
合紧急开关
闪烁
闪烁
闪烁
闪烁
闪烁
闪烁
刹车(合上刹车开关)
灭
灭
灭
灭
亮
亮
左转弯时刹车
闪烁
灭
闪烁
灭
闪烁
亮
右转弯时刹车
灭
闪烁
灭
闪烁
亮
闪烁
刹车,并合紧急开关
闪烁
闪烁
闪烁
闪烁
亮
亮
左转弯时刹车,并合紧急开关
闪烁
闪烁
闪烁
闪烁
闪烁
亮
右转弯时刹车,并合紧急开关
闪烁
闪烁
闪烁
闪烁
亮
闪烁
停靠(合停靠开关)
灭
灭
10Hz
闪烁
10Hz
闪烁
10Hz
闪烁
10Hz
闪烁
2.2.1开关状态检测
开关状态检测,对AT89C51来说是输入关系,可轮流检测每个开关状态,以每个开关的状态让相应的发光二极管指示,采用JNBP1.X,REL指令来完成;也可以一次性检测五路开关状态,让它指示,可以用MOVA,P1指令一次把P1端口的状态全部读入,取低5位的状态来指示。
2.2.2输出控制
以发光二极管D1—D6来指示,此设计用SETBP0.X和CLRP0.X指令来完成,也可以用指令MOVP0,#111XXXXXB方法来实现。
2.2.3定时器和计数器
根据任务设计要求:
会用到定时器。
信号的控制是定时器与中断系统的联合使用得以实现。
单片机的控制系统应用中,定时器是必需的,在汽车转向灯的控制中也是必不可少。
定时有三种选择方法。
(1)软件的定时
它是靠执行一个循环程序以进行时间的延迟。
软件定时的优点是时间精确,且不需外加硬件电路。
但它要增加CPU开销,因此软件定时的时间不能太长。
此外,软件定时方法有时候无法使用。
(2)硬件的定时
时间较长的定时,常使用硬件电路完成。
硬件定时方法的优点是定时功能全部由硬件电路完成,不需要占CPU的时间。
用元件参数来调节定时时间,这方面使用上不够灵活方便。
(3)可编程定时器的定时
它是通过对系统时钟脉冲的计数来实现的。
计数值由程序设定,改变计数值,同时也改变了定时时间,用起来既灵活且方便。
此外,采用计数方法实现定时,可编程定时器都兼有计数功能,能对外来脉冲进行计数。
在AT89C51内部除了有并行和串行I/O接口外,在单片机内部共有2个可编程的定时器和计数器,称定时器/计数器0和定时器/计数器1,这两个计数器由TH0,TL0,TH1,TL1两个8位的RAM单元组成,即每个计数器都是16位的计数器,最大的计数量时65536。
定时器/计数器计数功能和定时功能:
(1)计数器功能
记数是指对外部事件进行计数。
它的发生以输入脉冲表示,计数功能的实质就是对外来的脉冲进行计数。
AT89C51芯片有T0(P3.4)和T1(P3.5)两个信号引脚,是这两个计数器的计数输入端。
外部输入的脉冲在负跳变时有效,进行计数器加1(加法计数)。
AT89C51在每个机器周期的S5P2拍节对外部计数脉冲进行采样。
前一个机器周期采用为高电平,后一个机器周期采样为低电平,是一个有效的计数脉冲。
在下一机器周期的S3P1进行计数。
采样计数脉冲是在2个机器周期进行的。
计数脉冲频率不能高于振荡脉冲频率的1/24。
(2)定时器功能
实际也是通过计数器来实现的,但此时的计数脉冲来自单片机的内部,也每个机器周期计数器加1。
一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。
单片机采用12MHz晶体,计数频率为1MHz。
每微妙计数器加1。
根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的预置值。
它是一个二进制的加1计数器。
在计数器计满回零时能自动产生溢出中断请求。
则已经完成。
T1、T2的最大计数值65536-1,需65535个脉冲才能把它们从全“0”状态变为全“1”状态。
输一个脉冲,计数器加1,当加到计数器各位全为1时,再去输一个脉冲,计数器各位就变为全0,发出溢出信号,使标志置1,此时向CPU申请中断。
具体结构如图2.2所示:
图2.2定时器/记数器的结构
2.2.4定时初始化
定时主要与编程有关。
编程对定时器控制寄存器(TCON)、工作方式控制寄存器(TMOD)和中断允许控制寄存器(IE)进行操作。
(1)定时器控制寄存器(TCON)
TCON寄存器既参与中断控制又参与定时控制。
其中有关定时的控制位共有4位:
TF0和TF1----记数溢出标志位
TR0和TR1----定时器运行控制位
TR0(TR1)=0----停止定时器/计数器工作
TR0(TR1)=1----启动定时器/计数器工作
该位根据需要以软件方法使其置“1”或清“0”。
(2)中断允许控制寄存器
IE寄存器中与定时器/计数器有关的位置介绍:
EA----中断允许总控制位
ET0和ET1----定时/计数中断允许控制位
ET0(ET1)=0禁止定时/记数中断
ET0(ET1)=1允许定时/记数中断
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现灯闪烁的延时和故障检测。
(3)工作方式控制寄存器(TMOD)
TMOD寄存器专用寄存器,设定两个定时器/计数器的工作方式。
它的低半字节定义定时器/计数器0,高半字节定义定时器/计数器1。
各位定义如表2所示:
表2TMOD各位定义
位序
B7
B6
B5
B4
B3
B2
B1
B0
位符号
GATE
C/
M1
M0
GATE
C/
M1
M0
其中:
GATE----门控位
GATE=0以运行控制位TR启动定时器
GATE=1以外中断请求信号(INT1或INT0)启动定时器
C/
----定时方式或计数方式选择位
C/
=0定时工作方式
C/
=1计数工作方式
M1M0----工作方式选择位
M1M0=00方式0
M1M0=01方式1
M1M0=10方式2
M1M0=11方式3
初值计算:
(1)设为工作方式0,定时时间为30ms,使灯延时闪烁。
若使用定时器T0,方式1,30ms定时,fosc=12MHz。
则初值X满足(216-X)×1=30000
X=35536→1000101011010000→8AD0H
(2)设计中利用定时器/计数器0,一个软件计数器产生低频(1HZ)闪烁功能。
(3)利用定时器/计数器0来产生为时30ms的定时信号,以实现高频(30HZ)闪烁功能。
(4)注意在用工作方式1时,我们必须要重新装载初值。
2.2.5汽车转向灯显示
在汽车转弯或应急状态下,外部信号灯和仪表板它们指示灯的闪烁频率为1HZ,称低频信号。
当停靠开关合上时,外部信号灯以10HZ频率闪烁此时为高频信号。
2.2.6汽车转向灯控制
汽车转弯灯设计5个按键控制信号灯的转向、停靠、应急等。
按键安排见下:
S1键为刹车开关;
S2键为紧急开关;
S3键为停靠开关;
S4键为左转弯开关;
S5键为右转弯开关;
2.2.7中断系统
单片机中断技术主要用于实时控制,在单片机上有两个引脚,即INT0、INT1。
外部的中断信号通过这两个引脚输入到单片机,和单片机的定时器一样,对中断系统的处理需要通过C51的软件编程实现。
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现灯闪烁的延时和故障检测。
它的重要作用有如下四点:
第一,高速CPU和低速外设之间的配合。
利用中断方式进行的I/O口操作,在宏观上可以看成CPU和外设的并行工作。
第二,实现故障的紧急处理。
当外设发生故障时,可以利用中断系统请求CPU及时处理这些故障。
第三,可以实现实时控制。
第四,便于人机联系。
操作人员可以利用键盘等实现中断,完成人工介入。
3.硬件设计
3.1单片机控制系统电路图
3.1.1汽车转向灯单片机控制系统框图
汽车转向灯单片机控制系统电路是由单片机AT89C51、复位、电源、时钟、LED显示电路、故障检测电路、按键电路构成。
电源电路给控制相关电路提供所需电源;复位电路供上电或按键时复位用。
当要求重新启动单片机或者单片机处于死循环时,都可以由此电路来实现;时钟电路用来产生时钟脉冲信号,供工作使用;通过并行I/O口构成键盘和显示电路,输入程序,即可实现汽车转向灯中各信号灯的功能操作;系统的可靠性有所提高。
汽车转向灯单片机控制系统框图如图3.1所示。
图3.1控制系统
3.1.2
汽车转向灯单片机控制系统电路图
汽车转向灯单片机控制系统仿真电路如图3.2所示
图3.2汽车转向灯控制仿真电路图
3.2汽车转向灯控制系统流程图
3.2.1汽车转向灯控制系统主程序流程图
控制系统主程序流程图如图3.2.1所示。
图3.2.1控制系统主程序流程图
3.2.2中断服务程序流程图
中断服务的程序流程图如图3.2.2所示。
图3.2.2中断服务的程序流程图
3.2.3控制系统键功能流程图
键的功能程序流程图如图3.2.3所示。
图3.2.3键的功能程序流程图
4.软件设计
4.1程序流程图
流程图如下:
(1)主程序流程图如图4.1
图4.1
(2)子程序流程图如下图
图4.2表示左转图4.3表示右转
图4.5表示刹车
图4.4表示紧急
图4.6左转刹车图4.7右转刹车
图4.8紧急刹车图4.9左转紧急刹车
图4.10右转紧急刹车图4.11停靠
4.2源程序
源程序如下:
ORG0000H
AJMPSTART1
ORG0030H
SAMEEQU4EH
START1:
MOVP1,#00H;无输入时无输出
START:
MOVA,P3;读P3口数据
ANLA,#1FH;取用P3口的低五位数据
CJNEA,#1FH,SHIY;对P3口低五位数据进行判断
AJMPSTART1
SHIY:
MOVSAME,A
LCALLYS;延时
MOVA,P3;读P3口的数据
ANLA,#1FH;取用P3口的低五位数据
CJNEA,#1FH,SHIY1;对P3口的低五位数据进行判断
AJMPSTART1;开关没有动作时无输出
SHIY1:
CJNEA,SAME,START1
CJNEA,#17H,NEXT1;P3.3=0时进入左转分支
AJMPLEFT
NEXT1:
CJNEA,#0FH,NEXT2;P3.4=0时进入右转分支
AJMPRIGHT
NEXT2:
CJNEA,#1DH,NEXT3;P3.1=0时进入紧急分支
AJMPEARGE
NEXT3:
CJNEA,#1EH,NEXT4;P3.0=0时进入刹车分支
AJMPBRAKE
NEXT4:
CJNEA,#16H,NEXT5;P3.0=P3.3=0时进入左转刹车分支
AJMPLEBR
NEXT5:
CJNEA,#0EH,NEXT6;P3.0=P3.4=0时进入右转刹车分支
AJMPRIBR
NEXT6:
CJNEA,#1CH,NEXT7;P3.0=P3.1=0时进入紧急刹车分支
AJMPBRER
NEXT7:
CJNEA,#14H,NEXT8;P3.0=P3.1=P3.3=0时进入左转紧急刹车分支
AJMPLBE
NEXT8:
CJNEA,#0CH,NEXT9;P3.0=P3.1=P3.4=0时进入右转紧急刹车分支
AJMPRBE
NEXT9:
CJNEA,#1BH,NEXT10;P3.2=0时进入停靠分支
AJMPSTOP
NEXT10:
AJMPERROR;其他情况进入错误分支
LEFT:
MOVP1,#2AH;左转分支
LCALLY1s
MOVP1,#00H
LCALLY1s
AJMPSTART
RIGHT:
MOVP1,#54H;右转分支
LCALLY1s
MOVP1,#00H
LCALLY1s
AJMPSTART
EARGE:
MOVP1,#7FH;紧急分支
LCALLY1s
MOVP1,#00H
LCALLY1s
AJMPSTART
BRAKE:
MOVP1,#60H;刹车分支
AJMPSTART
LEBR:
MOVP1,#6AH;左转刹车分支
LCALLY1s
MOVP1,#40H
LCALLY1s
AJMPSTART
RIBR:
MOVP1,#74H;右转刹车分支
LCALLY1s
MOVP1,#20H
LCALLY1s
AJMPSTART
BRER:
MOVP1,#7EH;紧急刹车分支
LCALLY1s
MOVP1,#60H
LCALLY1s
AJMPSTART
LBE:
MOVP1,#7EH;左转紧急刹车分支
LCALLY1s
MOVP1,#40H
LCALLY1s
AJMPSTART
RBE:
MOVP1,#7EH;右转紧急刹车分支
LCALLY1s
MOVP1,#20H
LCALLY1s
AJMPSTART
STOP:
MOVP1,#66H;停靠分支
LCALLY100ms
MOVP1,#00H
LCALLY100ms
AJMPSTART
ERROR:
MOVP1,#80H;错误分支
LCALLY1s
MOVP1,#00H
LCALLY1s
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:
MOVR7,#66H;延时
Y100ms1:
MOVR6,#0FFH
Y100ms2:
DJNZR6,Y100ms2
DJNZR7,Y100ms1
RET
END
5.总结
在本次单片机课程设计中,无论是在程序设计方面还是实践动手能力都得到了一个非常大的锻炼,并对硬件知识的了解得以加深。
通过这次课程设计,也非常的清楚的认识了单片机这门课程的重要性,也意识到了自己在程序设计方面的薄弱。
希望在以后的学习和工作中能进一部的加强自己专业素质和实践动手能力。
本次设计的系统基于MCS-51开发平台,充分利用了51单片机的各引脚功能,同时有效利用了中断、查询、定时器、计数器,使得汽车转向信号灯控制得以实现。
通过这次课程设计,我们对于单片机应用有了更深的了解,单片机应用技术发展迅速,有着广阔的应用前景,涉及面广,内容丰富。
它用软件的方法设计硬件,并用软件方式设计的软件系统到硬件系统的转换是由有关的开发软件自动完成的。
在设计过程中可用有关软件进行各种仿真,同时系统可现场编程,在线升级等。
整个系统可集成在一个芯片上,体积小,功耗低,可靠性高。
其技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方法,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑综合及优化,逻辑布局布线,逻辑仿真,直至特定目标芯片的适配便宜,逻辑映射,编程下载等工作,为系统的设计开发带来了极大地方便。
在课程设计过程中,我利用网络查找了大量资料,同时得到了指导老师的耐心指导。
通过这次课程设计的实践,我对汇编语言的掌握有了更进一步的提高,在单片机的编程应用方面也更加熟练了。
总的来说,这是一次利用专业基础知识解决实际问题的实践活动,我受益匪浅。
特别是在程序的编写调试,以及仿真电路的绘制方面,使我得到了一次用专业知识、专业技能分析和解决问题的全面的系统的锻炼。
这次课程设计使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后嵌入式程序开发的学习打下了良好的基础。
此次设计使我对单片机的认识加深了,知识的涵盖也广了,锻炼了动脑设计、动手完成的实践能力。
6.参考文献
[1]孙涵芳徐爱卿.MCS-51.96系列单片机原理及应用[M].北京:
北京航空航天大学出版社,1988
[2]徐爱钧,彭秀华。
KeilCx51V7.0单片机高级语言编程与μVision2应用实践[M].北京:
电子工业出版社,2006.133~187
[3]张毅坤.单片微型计算机原理及应用,西安电子科技大学出版社1998
[4]余锡存曹国华.单片机原理及接口技术[M].陕西:
西安电子科技大学出版社,2000.7
[5]谢自美.电子线路设计·实验·测试(第二版).武汉:
华中理工出版社,2000