单片机汽车转向灯.docx
《单片机汽车转向灯.docx》由会员分享,可在线阅读,更多相关《单片机汽车转向灯.docx(13页珍藏版)》请在冰豆网上搜索。
单片机汽车转向灯
单片机-汽车转向灯
单片机原理及系统课程设计
评语:
平时(40)
修改(30)
报告
(30)
总成绩
1引言
随着单片机的日益发展,其应用也越来越广泛,通过对“汽车转向灯单片机控制系统”设计,可以对单片机的知识得到巩固和扩展。
本课程内容是设计一个单片机控制系统,在汽车进行左转弯、右转弯、刹车、合紧急开关、停靠等操作时,实现对各种信号指示灯的控制。
本设计主要是对单片机的并行输入/输出口电路的
应用,通过I/O口控制发光二极管的亮﹑灭﹑闪烁,加上复位电路﹑按键电路﹑驱动电路来模拟汽车尾灯的功能。
汽车在驾驶时有左转弯、右转弯、刹车、合紧急开关、停靠等操作。
在左转弯或右转弯时,通过转弯操作杆应使左转开关或右转开关合上,从而使左头灯、仪表板左转弯灯、左尾灯或右头灯、仪表板右转弯灯、右尾灯闪烁;合紧急开关时要求前面所述的6个信号灯全部闪烁;汽车刹车时,两个尾灯点亮;如正当转弯时刹车,则转弯时原应闪烁的信号灯仍应闪烁。
以上闪烁,都是频率为1Hz的低频闪烁;在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为10Hz的高频闪烁。
闪光器是通过调节镍铬丝的拉力和触点的间隙来满足频率要求的,灯泡功率的大小也会影响闪烁频率。
因此在更换闪光器或灯泡时调整比较困难。
同时,系统没有故检测,驾驶员无法知道车外的转向灯及示宽灯是否点亮,从而影响行车安全。
到目前为止,我们还没有发现能检测灯丝断这种故障的有效方法。
针对上述问题,我们用AT89C51单片机设计了一套汽车信号灯控制系统。
用LED产生闪光信号,同时能自动检测信号灯故障。
信号灯灯具的发展是随着汽车制造技术及电光源技术的发展而逐步完善的。
它经历了机油或煤油灯、乙炔气灯到电光源灯的发展历程。
现代汽车信号灯灯具已经开始使用发光二极管技术以及光导技术。
2设计方案及原理
2.1设计方案
基于上述的设计思想,本设计采用单片机控制,在控制系统中,选择了四个开关K1-K4、1个AT89C52单片机、6只发光二极管(用来模拟信号灯发光)。
其中AT89C52单片机做为控制核心,当4个开关的状态发生改变后,单片机检测到开关信号后就通过软件输出相关信号,来驱动6个汽车信号灯根据开关的相关状态闪烁或长亮。
信号灯由发光二极管模拟替代。
2.2设计原理
由定时器/计数器与中断系统的联合组成控制系统的工作原理。
如汽车上有一
个转弯控制杆,其中有三个位置:
中间位置,汽车不转弯;向上,汽车左转;向下汽车右转。
相应的操作如表2.1所示。
转弯时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号。
应急开关合上时,6个信号灯都应闪烁。
汽车刹车时,2个尾灯发出不闪烁信号。
如正当转弯时刹车,转弯时原应闪烁的信号仍应闪烁。
它们都是频率为1Hz低频闪烁,在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为10Hz频率快速闪烁。
任何在下表中未出现的组合,都将出现故障指示灯闪烁,闪烁频率为10Hz。
表2.1各种操作对应的指示灯输出
左指
示灯
右指
示灯
左头灯
右头灯
左尾灯
右尾灯
左转弯
闪烁
灭
闪烁
灭
闪烁
灭
右转弯
灭
闪烁
灭
闪烁
灭
闪烁
合紧急开
闪烁
闪烁
闪烁
闪烁
闪烁
闪烁
关
灭
灭
灭
灭
亮
亮
刹车
闪烁
灭
闪烁
灭
闪烁
亮
左转弯时
灭
闪烁
灭
闪烁
亮
闪烁
刹车
闪烁
闪烁
闪烁
闪烁
亮
亮
右转弯时
闪烁
闪烁
闪烁
闪烁
闪烁
亮
刹车
刹车并合
闪烁
闪烁
闪烁
闪烁
亮
闪烁
紧急开关
左转弯时
灭
灭
10Hz
10Hz
10Hz
10Hz
闪烁闪烁闪烁闪烁
刹车,并合紧急开关
右转弯时刹车,并合紧急开关停靠
2.3汽车转向灯显示
在汽车转弯或应急状态下,外部信号灯和仪表板它们指示灯的闪烁频率为
1HZ,称低频信号。
当停靠开关合上时,外部信号灯以10HZ频率闪烁此时为高
频信号。
3硬件设计
3.1汽车转向灯单片机控制系统
汽车转向灯单片机控制系统电路是由单片机AT89C51、电源、ULN2003A7路反向器、LED显示电路、按键电路构成、用户I/O口外,其余管教是为实现系统扩展而设置的。
因此,本设计实际上就是一个带有8个发光二极管的单片机最小应用系统,即为由单片机80C51、发光二级管和必要的软件组成的单个单片机系统。
此系统利用单片机的P3.0-P3.4作为输入,P1.0-P1.6作为输出。
当P3口输入高电平,在经过ULN2003A反向器时输出低电平与二极管阳极的5V电源构成通路,使对应的LED点亮或闪烁。
电源电路给控制相关电路提供所需电源;复位电路供上电或按键时复位用。
当要求重新启动单片机或者单片机处于死循环时,都可以由此电路来实现;时钟电路用来产生时钟脉冲信号,供工作使用;通过并行I/O口构成键盘和显示电路,输入程序,即可实现汽车转向灯中各信号灯的功能操作;系统的可靠性有所提高。
3.2汽车转向灯单片机控制系统电路图
在硬件设计中,使用型号为AT89C51的单片机,并把P3.0和P1.0作为电路的输入口和输出口。
再使用了一片ULN2003A芯片,ULN2003A是一个7路反向器,即当输入端为高电平时ULN2003A输出端为低电平,当输入端为低电平时ULN2003A输出端为高电平。
ULN2003A一端与单片机P1.0口相连,另一端与二极管的阴极相连,给二极管与P3.0输入端相反的电平。
二极管的阳极与5V的电源相连。
开关可以分别吸合或组合吸合来控制二极管。
硬件连接电路图如图3.1所示。
图3.1硬件连接电路图
4软件设计
4.1程序设计
软件的设计用Keil编程实现,具体的程序见附录A。
P3.0的输入控制LED的状态。
流程图如图4.1所示。
图4.1主程序流程图
5proteus仿真结果
给80C51装入程序,连接好电路图后,按刹车键后,运行结果如图5.1所示通过仿真可以验证程序和仿真电路的正确性。
按下紧急开关、停靠、左转弯、右转弯以及其它组合状态后仿真结果符合题目要求。
图5.1系统仿真结果
6总结
本系统基于MCS-51开发平台,充分利用了51单片机的各引脚功能,同时有效利用了中断、查询、定时器、计数器,使得汽车转向信号灯控制得以实现。
而在此设计过程中遇到了以下一些问题:
仿真图中总线的连接、程序的中断方式和查询方式、单片机中P3口的功能。
而对于仿真图中总线连接问题,在通过在XX搜索和翻阅有关Proteus书籍来实现仿真图中的总新连接。
通过翻阅课本了解到程序的查询方式又称有条件传递方式,即数据的传送石有条件的。
在进行发送数据时先进行发送,然后进行查询。
而接收数据是先进行查询,然后进行接收。
而程序的中断方式,它与查询方式的主要区别在于如何知道设备是否为数据传送作好了准备,查询方式是单片机的主动形式,而中断方式则是单片机等待通知(中断请求)的被动形式。
中断方式在发送数据时的过程是先发送,再进行等待中断,最后在中端中发送。
中断方式的接受数据先进行等待中断,然后再中断中进行接受。
虽然通过这些资料对着两种方式有了一些了解,但也不是很明白。
所以在以后的学习中要更加强这方面的知识。
最后是对单片机P3口的认识。
虽然已经学习了单片机,但对单片机不是很了解,特别是P3口的认识。
P3口的第一功能是普通用的8位准双向I/O端口。
而P3口的主要功能是第二功能,如串行口的输入输出,还有两个中端和两个定时器/计数器。
在本次设计的汽车转向灯控制系统中,还存在的问题是系统的源程序比较繁杂,仿真的效果有点简单。
在实现基本功能时没在进行深入的拓展,总体上感觉是系统的设计过于简单。
参考文献
[1]孙涵芳,徐爱卿.MCS-51.96系列单片机原理及应用[M].北京:
北京航空航天大学出版社,1988:
100-115.
[2]徐爱钧,彭秀华.KeilCx51V7.0单片机高级语言编程与μVision2应用实践[M].北京:
电子工业出版社,200:
133-187.
[3]余锡存,曹国华.单片机原理及接口技术[M].陕西:
西安电子科技大学出版社,2000:
7:
60-75.
附录A汽车转向灯控制源程序
ORG
0000H
AJMP
START1
ORG
0030H
SAME
EQU
4EH
START1:
MOV
P1,#00H
START:
MOV
A,P3
ANL
A,#1FH
;取用P3口的低五位数据
CJNE
A,#1FH,SHIY
;对P3口低五位数据进行判断
AJMP
START1
SHIY:
MOV
SAME,A
LCALL
YS
MOV
A,P3
;读P3口的数据
ANL
A,#1FH
;取用P3口的低五位数据
CJNE
A,#1FH,SHIY1
;对P3口的低五位数据进行判断
AJMP
START1
;开关没有动作时无输出
SHIY1:
CJNE
A,SAME,START1
CJNE
A,#17H,NEXT1
;进入左转分支
AJMP
LEFT
NEXT1:
CJNEA,#0FH,NEXT2
;进入右转分支
AJMP
RIGHT
NEXT2:
CJNEA,#1DH,NEXT3
;进入紧急分支
AJMP
EARGE
NEXT3:
CJNEA,#1EH,NEXT4
;进入刹车分支
AJMP
BRAKE
NEXT4:
CJNEA,#16H,NEXT5
;进入左转刹车分支
AJMP
LEBR
NEXT5:
CJNEA,#0EH,NEXT6
;进入右转刹车分支
AJMP
RIBR
NEXT6:
CJNEA,#1CH,NEXT7
;进入紧急刹车分支
AJMP
BRER
NEXT7:
CJNEA,#14H,NEXT8
;进入左转紧急刹车分支
AJMP
LBE
NEXT8:
CJNEA,#0CH,NEXT9
;进入右转紧急刹车分支
AJMP
RBE
NEXT9:
CJNEA,#1BH,NEXT10
;进入停靠分支
AJMP
STOP
NEXT10:
AJMPERROR
LEFT:
MOV
P1,#2AH
;左转分支
LCALL
Y1s
MOV
P1,#00H
LCALL
Y1s
AJMP
START
RIGHT:
MOVP1,#54H
;右转分支
LCALL
Y1s
MOV
P1,#00H
LCALL
Y1s
AJMP
START
EARGE:
MOVP1,#7FH
;紧急分支
LCALL
Y1s
MOV
P1,#00H
LCALL
Y1s
AJMP
START
BRAKE:
MOVP1,#60H
;刹车分支
AJMP
START
LEBR:
MOV
P1,#6AH
;左转刹车分支
LCALL
Y1s
MOV
P1,#40H
LCALL
Y1s
AJMP
START
RIBR:
MOV
P1,#74H
;右转刹车分支
LCALL
Y1s
MOV
P1,#20H
LCALL
Y1s
AJMP
START
BRER:
MOV
P1,#7EH
;紧急刹车分支
LCALL
Y1s
MOV
P1,#60H
LCALL
Y1s
AJMP
START
LBE:
MOV
P1,#7EH
;左转紧急刹车分支
LCALL
Y1s
MOV
P1,#40H
LCALL
Y1s
AJMP
START
RBE:
MOV
P1,#7EH
;右转紧急刹车分支
LCALL
Y1s
MOV
P1,#20H
LCALL
Y1s
AJMP
START
STOP:
MOV
P1,#66H
LCALL
Y100ms
MOV
P1,#00H
LCALL
Y100ms
AJMP
START
ERROR:
MOVP1,#80H
LCALL
Y1s
MOV
P1,#00H
LCALL
Y1s
AJMP
START
YS:
MOV
R7,#20H
YS0:
MOV
R6,#0FFH
YS1:
DJNZ
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:
MOVR7,#66H
Y100ms1:
MOVR6,#0FFH
Y100ms2:
DJNZR6,Y100ms2DJNZR7,Y100ms1RETEND
;延时