汽车转弯信号灯模拟控制.docx
《汽车转弯信号灯模拟控制.docx》由会员分享,可在线阅读,更多相关《汽车转弯信号灯模拟控制.docx(18页珍藏版)》请在冰豆网上搜索。
汽车转弯信号灯模拟控制
1课程设计的目的和要求
1.1课程设计的目的
1.掌握用定时器延时或软件延时进行定时控制的方法。
2.掌握外部中断技术的基本使用方法。
3.掌握中断处理程序的编程方法。
1.2课程设计的要求
1.汽车在驾驶中当左、右转弯时相应的仪表板左、右指示灯和左、右头、尾灯闪烁。
2.闭合紧急开关时6个信号灯全部闪烁。
3.汽车刹车时,左、右尾灯点亮,若正当转弯时刹车,则转弯时原闪烁的指示灯继续闪烁,同时另一个尾信号灯同时点亮,闪烁频率1Hz。
2.系统组成和工作原理
2.1系统组成
如图所示,汽车转向灯主要有AT89C51单片机、按键电路、复位电路、时钟电路、电源电路、故障检测电路、LED显示电路组成最基本的单片机系统。
单片机本身的功能强大,汽车转向灯的驱动用单片机本身的驱动来驱动。
使得单片机的功能得到充分的运用。
本方案的故障检测电路具有故障监控性能,他能提高系统的可靠性。
2-1-1系统组成
2.2系统工作原理
由定时器/计数器与中断系统的联合组成控制系统的工作原理。
如汽车上有一个转弯控制杆,其中有三个位置:
中间位置,汽车不转弯;向上,汽车左转;向下汽车右转。
转弯时,规定左右尾灯、左右头灯仪表板上2个指示灯相应地发出闪烁信号。
应急开关合上时,6个信号灯都应闪烁。
汽车刹车时,2个尾灯发出常亮信号。
如正当转弯时刹车,转弯时原应闪烁的信号仍应闪烁。
它们都是频率为1Hz低频闪烁,在汽车停靠而停靠开关合上时,左头灯、右头灯、左尾灯、右尾灯按频率为1Hz频率闪烁。
任何在下表中未出现的组合,所有灯都将不亮,系统工作原理如表2-2-1所示。
输出信号
左转弯
信号灯
右转弯
信号灯
左头
信号灯
右头
信号灯
左尾
信号灯
右尾
信号灯
左转弯
闪烁
灭
闪烁
灭
闪烁
灭
右转弯
灭
闪烁
灭
闪烁
灭
闪烁
闭合紧急开关
闪烁
闪烁
闪烁
闪烁
闪烁
闪烁
刹车
灭
灭
灭
灭
亮
亮
左转弯时刹车
闪烁
灭
闪烁
灭
闪烁
亮
右转弯时刹车
灭
闪烁
灭
闪烁
亮
闪烁
刹车时紧急开关
闪烁
闪烁
闪烁
闪烁
亮
亮
左转弯时刹车闭合紧急开关
闪烁
闪烁
闪烁
闪烁
闪烁
亮
右转弯时刹车闭合紧急开关
闪烁
闪烁
闪烁
闪烁
亮
闪烁
停靠
灭
灭
闪烁
闪烁
闪烁
闪烁
表2-2-1
3硬件设计
3.1单片机最小系统设计
振荡电路:
采用单片机内部晶振。
如3-1图所示。
在MCS-51系列单片机内部有一个高增益反向放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
而在芯片外部XTAL1和XTAL2之间跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
外接晶体(石英或陶瓷,陶瓷的精度不高,但价格便宜)振荡器以及电容C1和C2构成并联谐振电路。
在设计电路板时,振荡器和电容应尽量安装得与单片机靠近,以减小寄生电容的存在更好的保障振荡器稳定、可靠的工作
图3-1-1
复位电路:
电平复位将复位端通过电阻与Vcc相连,按键脉冲复位是利用RC分电路产生正脉冲来达到复位的。
在按键电平复位和按键脉冲复位两种简单的复位电路中,干扰易串入复位端,在大多数情况下,不会造成单片机的错误复位,但会引起内部寄存器错误复位,这里可在复位端引脚上接一个去藕电容。
电阻、电容参数适宜于12MHz晶振,能保证复位信号与电平持续时间大于2个机器周期。
我们采用按键电平复位的方法,电路如上图3-1所示。
3.2单片机接口电路设计
显示电路:
显示电路图如图3-2-1所示。
LED具有二极管的特性,但在导通之后会发光,称之为发光二极管。
与普通的灯泡一样,LED导通后,随着其俩端电压的增加,电流急剧增加,所以,必须给LED串联一个限流电阻,否则一旦通电,LED会被烧坏。
这里我添加了一个反向器电路ULN2003a,连线后,当c51芯片的第一个引脚输出高电平,通过反向器作用转换为低电平,LED灯亮;反之,LED灯灭。
此处D2表示左头灯,D3表示右头灯,D4表示左转信号灯,D5表示右转信号灯,D6表示左转尾灯,D7表示右转尾灯。
按键电路:
按键电路如图3-2-2所示。
单片机引脚作为输入使用,首先置“1”。
当键没有被按下时,单片机引脚上为高电平;而当键被按下去后,引脚接地,单片机引脚上为低电平。
如图3.4所示是电路板上按键的接法,5个按键接到P2.0、P2.1、P2.2、P2.3和P2.4,分别对应接左转,右转,刹车,紧急,停止开关。
图3-2-1图3-2-2
整体电路图如图3-2-3所示
图3-2-3
4系统软件设计
4.1keil介绍
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
4.2主程序设计
4-1-1主程序流程图
4.3子程序设计
4-2-1左转流程图4-2-2右转流程图
4-2-3紧急4-2-4刹车
4-2-5左转刹车4-2-6右转刹车
4-2-7左转紧急刹车4-2-8右转紧急刹车
4-2-9紧急刹车4-2-10停靠
4.4程序
ORG0000H
AJMPSTART1
ORG0030H
SAMEEQU4EH
START1:
MOVP1,#00H//此时无输入,无输出
START:
MOVA,P2//读取P2口数据
ANLA,#1FH//仅读取P2口低五位
CJNEA,#1FH,SHIY
AJMPSTART1
SHIY:
MOVSAME,A
LCALLYS//调用延时
MOVA,P2
ANLA,#1FH
CJNEA,#1FH,SHIY1
AJMPSTART1
SHIY1:
CJNEA,SAME,START1
CJNEA,#1EH,NEXT1//P2.0=0左转有输入
AJMPLEFT//跳转到左转分支
NEXT1:
CJNEA,#1DH,NEXT2//P2.1=0右转有输入
AJMPRIGHT//跳转到右转分支
NEXT2:
CJNEA,#17H,NEXT3//P2.3=0紧急开关有输入
AJMPEARGE//跳转到紧急分支
NEXT3:
CJNEA,#1BH,NEXT4//P2.2=0刹车有输入
AJMPBRAKE//跳转到刹车分支
NEXT4:
CJNEA,#1AH,NEXT5//P2.0=P2.2=0左转和刹车有输入
AJMPLEBR//进入左转刹车分支
NEXT5:
CJNEA,#19H,NEXT6//P2.1=P2.2=0右转和刹车有输入
AJMPRIBR//跳入右转刹车分支
NEXT6:
CJNEA,#13H,NEXT7//P2.2=P2.3=0紧急和刹车有输入
AJMPBRER//跳转到紧急刹车分支
NEXT7:
CJNEA,#12H,NEXT8//P2.0=P2.2=P2.3=0左转刹车紧急有输入
AJMPLBE//跳转到左转紧急刹车分支
NEXT8:
CJNEA,#11H,NEXT9//P2.1=P2.2=P2.3=0右转刹车紧急有输入
AJMPRBE//跳转到右转刹车紧急分支
NEXT9:
CJNEA,#0FH,NEXT10//P2.4=0有输入
AJMPSTOP//跳转到停靠分支
NEXT10:
AJMPERROR//其他情况自动至ERROR分支
LEFT:
MOVP1,#15H//左转
LCALLYS
MOVP1,#00H
LCALLYS
AJMPSTART
RIGHT:
MOVP1,#2AH//右转
LCALLYS
MOVP1,#00H
LCALLYS
AJMPSTART
EARGE:
MOVP1,#3FH//紧急
LCALLYS
MOVP1,#00H
LCALLYS
AJMPSTART
BRAKE:
MOVP1,#30H//刹车
AJMPSTART
LEBR:
MOVP1,#35H//左刹
LCALLYS
MOVP1,#20H
LCALLYS
AJMPSTART
RIBR:
MOVP1,#3AH//右刹
LCALLYS
MOVP1,#10H
LCALLYS
AJMPSTART
BRER:
MOVP1,#3FH//刹车紧急
LCALLYS
MOVP1,#30H
LCALLYS
AJMPSTART
LBE:
MOVP1,#3FH//左刹紧
LCALLYS
MOVP1,#20H
LCALLYS
AJMPSTART
RBE:
MOVP1,#3FH//右刹紧
LCALLYS
MOVP1,#10H
LCALLYS
AJMPSTART
STOP:
MOVP1,#33H//停靠
LCALLYS
MOVP1,#00H
LCALLYS
AJMPSTART
ERROR:
MOVP1,#00H//ERROR
AJMPSTART
YS:
MOVR5,#50
YS1:
MOVR6,#20
YS2:
MOVR7,#249
DJNZR7,$
DJNZR6,YS2
DJNZR5,YS1
RET
END
5仿真实验结果
5.1Proteus介绍
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
5.2仿真结果
通过仿真软件仿真得如下结果
闭合左转开关:
D2、D4、D6灯闪烁(1HZ),其它灯不亮
闭合右转开关:
D3、D5、D7灯闪烁(1HZ),其它灯不亮
闭合紧急开关:
D2、D3、D4、D5、D6、D7灯闪烁(1HZ)
闭合刹车开关:
D6、D7灯常亮,其它灯不亮
闭合左转和刹车开关:
D2、D4、D6灯闪烁(1HZ),D7灯常亮,其它灯不亮
闭合右转和刹车开关:
D3、D5、D7灯闪烁(1HZ),D6灯常亮,其它灯不亮
闭合刹车和紧急开关:
D2、D3、D4、D5灯闪烁(1HZ),D6、D7常亮
闭合左转刹车和紧急开关:
D2、D3、D4、D5、D6灯闪烁(1HZ),D7常亮
闭合右转刹车和紧急开关:
D2、D3、D4、D5、D7灯闪烁(1HZ),D6常亮
闭合停靠开关:
D2、D3、D6、D7灯闪烁(1HZ),其它灯不亮
仿真结果满足设计要求
结束语
本系统基于MCS-51开发平台,充分利用51单片机的各引脚功能,同时有效利用了中断、查询、定时器、计数器,使得汽车转向信号灯控制得以实现。
通过这次课程设计,我们对于单片机应用有了更深的了解,单片机应用技术发展迅速,有着广阔的应用前景,涉及面广,内容丰富。
它用软件的方法设计硬件,并用软件方式设计的软件系统到硬件系统的转换是由有关的开发软件自动完成的。
在设计过程中可用有关软件进行各种仿真,同时系统可现场编程,在线升级等。
整个系统可集成在一个芯片上,体积小,功耗低,可靠性高。
其技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方法,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑综合及优化,逻辑布局布线,逻辑仿真,直至特定目标芯片的适配便宜,逻辑映射,编程下载等工作,为系统的设计开发带来了极大地方便。
在课程设计过程中,我利用网络查找了大量资料,同时得到了指导老师的耐心指导和同学们热情的帮助。
通过这次课程设计的实践,我对汇编语言的掌握有了更进一步的提高,在单片机的编程应用方面也更加熟练。
总的来说,这是一次利用专业基础知识解决实际问题的实践活动,我受益匪浅。
特别是在程序的编写调试,以及仿真电路的绘制方面,使我得到了一次用专业知识、专业技能分析和解决问题的全面的系统的锻炼。
这次课程设计使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后嵌入式程序开发的学习打下了良好的基础。
参考文献
【1】关丽荣,韩辉.单片机原理、接口及应用.国防工业出版社
【2】周润景.Proteus在MCS—51&ARM7系统中的应用百例.电子工业出版社
【3】杨鑫.单片机应用实例详解.清华大学出版社
【4】李全利.单片机原理及接口技术.高等教育出版社
【5】张毅刚、彭喜元.单片机原理与应用设计.电子工业出版社