单片机课程设计报告_汽车转向灯.doc
单片机原理及系统课程设计报告汽车转向信号灯控制设计一. 引言汽车上的信号灯有:转向灯(左前灯、右前灯、左后灯、右后灯、仪表盘上的二个指示灯)。当汽车转弯、刹车、停靠时,转向灯发出不同的信号。汽车转弯或停靠时,相应的信号灯要发出闪烁的灯光信号,目前国内广泛使用电热式闪光器产生闪光信号。闪光频率在50110次/min,但是一般控制在6095次/min之间。闪光器是通过调节镍铬丝的拉力和触点的间隙来满足频率要求的,灯泡功率的大小也会影响闪烁频率,因此在更换闪光器或灯泡时调整比较困难。同时,系统没有故检测,驾驶员无法知道车外的转向灯及示宽灯是否点亮,从而影响行车安全。到目前为止,我们还没有发现能检测灯丝断丝这种故障的有效方法。针对上述问题,我们用AT89C51单片机设计了一套汽车转向信号灯控制系统。用LED产生闪光信号,同时能自动检测信号灯故障,信号灯灯具的发展是随着汽车制造技术及电光源技术的发展而逐步完善的。它经历了机油(或煤油)灯、乙炔气灯到电光源灯的发展历程。现代汽车信号灯灯具已经开始使用发光二极管LED技术以及光导技术,这是信号灯灯具的一个飞跃。二 .设计方案及原理1.设计方案汽车转弯控制杆有三个位置: (1)中间位置时,汽车不转弯; (2)向上时,汽车左转;(3)向下时,汽车右转。 汽车转向灯控制:(1)汽车转弯时,左右尾灯、左右头灯和仪表盘上的2个指示灯相应地发出闪烁信号;(2)当应急开关合上时,6个信号灯都应闪烁;(3)汽车刹车时,2个尾灯发出不闪烁的信号;(4)如果刹车时正在转弯,则相应的转弯闪烁信号不受影响;(5)汽车转弯或应急状态下,外部信号灯和仪表盘指示灯的闪烁频率为1HZ;(6)停靠时,头灯、尾灯以30HZ的频率闪烁。2.设计原理汽车转向信号灯控制系统采用 AT89C51 单片机为运算和控制的核心, AT89C51有P0、P1、P2、P3四个8位的并行双向I/O口,P3口用于控制信号输入,P1口用于控制LED信号灯的显示。将汽车信号灯的输出可以转换为如下真值表如表1所示。表1汽车转向信号灯控制功能真值表输入信号输出信号左转右转 刹车紧急停靠左头灯右头灯左转弯灯右转弯灯左尾灯右尾灯10000闪烁 灭闪烁 灭闪烁灭01000灭闪烁灭闪烁灭闪烁00100灭灭灭灭亮亮00010闪烁闪烁闪烁闪烁闪烁闪烁00001闪烁闪烁灭灭闪烁闪烁10100闪烁灭闪烁 灭闪烁亮01100灭闪烁灭闪烁灭闪烁00110闪烁闪烁闪烁闪烁亮亮10110闪烁闪烁闪烁闪烁闪烁亮01110闪烁闪烁闪烁闪烁亮闪烁 三. 硬件设计1.硬件系统框图硬件系统原理框图由5部分组成:AT89C51芯片、晶振电路、复位电路、控制电路和输出电路,如图3.1所示。AT89C51单片机晶振电路路复位电路控制电路输出电路图3.1硬件原理框图2.硬件系统各部分电路设计2.1复位电路设计AT89C51有复位信号引脚RET,用于从外引入复位信号。单片机基本复位电路共有上电复位、按键电平复位、按键脉冲复位3种,本设计采用按键电平复位。复位电路用于产生复位信号,通过RET引脚送入单片机,进行复位操作。电阻采用1K,电容采用22uF,如图3.2所示。图3.2 复位电路2.2晶振电路设计 AT89C51单片机芯片中的高增益反向放大器,其输入端为引脚XTAL1,输出端为引脚XTAL2,通过这两个引脚在芯片外并接石英晶体振荡器和两个电容器。石英晶体为感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需的相移条件,从而构成一个稳定的自激振荡器。晶振频率是指晶体的振荡频率,也就是振荡电路的脉冲频率,也称振荡频率。晶振频率是单片机的一项重要性能指标。因为单片机的时钟信号是通过振荡信号分频得到的,所以晶振频率直接影响时钟信号的频率。晶振频率越高,系统的时钟频率就越高,单片机运行速度也越快。然而晶振频率高对存储器等的速度和印刷电路板的工艺要求也高,不但影响速度,而且对单片机的工作电流也有一定影响,所以在选择晶振频率时,要兼顾速度、功耗和线路工艺。本设计选用频率为12MHz的晶振,电容选用12pF,具体设计如图3.3所示。图3.3 晶振电路2.3控制电路设计 控制电路是采用按钮电路进行控制信号输入。按钮电路设计中关键考虑的就是按键去抖动问题,一般有硬件去抖和软件去抖两种方式。过去硬件去抖电路通常采用分立元件和触发器实现,目前市场上有硬件去抖专用接口芯片,例如:MAX68166818,均为单电源供电,电压为2.75.5V,分别为单输入、双输入和八输入。这里考虑到硬件的简化和成本,没有采用硬件去抖,而采用软件去抖,具体设计如图3.4所示。图3.4 控制电路2.4输出电路设计输出电路采用LED显示,LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。具体设计如图3.5所示。图3.5 输出电路2.5电源设计电源采用USB供电。USB是英文Universal Serial BUS的缩写,中文含义是“通用串行总线”。它不是一种新的总线标准,而是应用在PC领域的接口技术。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps, USB2.0是5 Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、摄像头、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSL Modem、Cable Modem等,几乎所有的外部设备。电源电路如图3.6所示。图3.6 电源电路四 .软件系统设计1.控制系统主程序流程图(见附录1)首先对定时器0赋初值,时定时器0开中断,开总中断,以此开动定时器。然后判断有无键按下,若有,则进入故障判断分支;若无,则灯不亮,重新返回开始,对对定时器0赋初值。当进入故障分支时,判断有无故障,若无,则通过延时子程序等待按键命令的到来;若有,则进行报警,以待排除故障。2.中断服务的程序流程图(见附录2)当进入中断服务子程序时,对定时器0重新赋初值,从而进入键功能程序,通过按键,产生相应的控制信号。3键的功能程序流程图(见附录3)判断是否有键按下,如果有,则读取键值:(1)若按下P1.0,则闭合刹车开关,2个尾灯发出不闪烁的信号;(2)若按下P1.1,则闭合紧急开关,6个信号灯都闪烁;(3)若按下P1.2, 则闭合停靠开关,头灯、尾灯以30HZ的频率闪烁;(4)若按下P1.3,则闭合左转开关,左头灯、左尾灯、左表示灯闪烁;(5)若按下P1.4,则闭合右转开关,右头灯、右尾灯、右表示灯闪烁。4.程序清单ORG 0000HAJMP START1 ORG 0030HSAME EQU4EHSTART1:MOVP1,#7FH ;无输入时无输出START:MOV A,P3 ;读P3口数据ANL A,#1FH ;取用P3口的低五位数据CJNE A,#1FH,SHIY ;对P3口低五位数据进行判断AJMP START1SHIY:MOV SAME,ALCALL YS ;延时MOV A,P3 ;读P3口的数据ANL A,#1FH ;取用P3口的低五位数据CJNE A,#1FH,SHIY1 ;对P3口的低五位数据进行判断AJMP START1 ;开关没有动作时无输出SHIY1:CJNE A,SAME,START1CJNE A,#17H,NEXT1 ;P3.3=0时进入左转分支AJMP LEFTNEXT1:CJNE A,#0FH,NEXT2 ;P3.4=0时进入右转分支 AJMP RIGHTNEXT2:CJNE A,#1DH,NEXT3 ;P3.1=0时进入紧急分支AJMP EARGENEXT3:CJNE A,#1EH,NEXT4 ;P3.0=0时进入刹车分支AJMP BRAKENEXT4:CJNE A,#16H,NEXT5 ;P3.0=P3.3=0时进入左转刹车分支AJMP LEBRNEXT5:CJNE A,#0EH,NEXT6 ;P3.0=P3.4=0时进入右转刹车分支AJMP RIBRNEXT6:CJNE A,#1CH,NEXT7 ;;P3.0=P3.1=0时进入紧急刹车分支AJMP BRERNEXT7:CJNE A,#14H,NEXT8 ;P3.0=P3.1=P3.3=0时进入左转紧急车分支AJMP LBENEXT8:CJNE A,#0CH,NEXT9 ;P3.0=P3.1=P3.4=0时进入右转紧急刹车分支 AJMP RBENEXT9:CJNE A,#1BH,NEXT10 ;P3.2=0时进入停靠分支AJMP STOPNEXT10:AJMP ERROR ;其他情况进入错误分支LEFT:MOVP1,#55H ;左转分支LCALL Y1sMOVP1,#7FHLCALL Y1sAJMP STARTRIGHT:MOVP1,#2BH ;右转分支LCALL Y1sMOVP1,#7FHLCALL Y1sAJMP STARTEARGE:MOVP1,#01H ;紧急分支LCALL Y1sMOVP1,#7FHLCALL Y1sAJMP STARTBRAKE:MOVP1,#1FH ;刹车分支AJMP STARTLEBR:MOVP1,#15H ;左转刹车分支LCALL Y1sMOVP1,#3FHLCALL Y1sAJMP STARTRIBR:MOVP1,#0BH ;右转刹车分支LCALL Y1sMOVP1,#5FHLCALL Y1sAJMP STARTBRER:MOV P1,#01H ;紧急刹车分支LCALL Y1sMOVP1,#1FHLCALL Y1sAJMP STARTLBE:MOVP1,#01H ;左转紧急刹车分支LCALL Y1sMOVP1,#3FHLCALL Y1sAJMP STARTRBE:MOVP1,#01H ;右转紧急刹车分支LCALL Y1sMOVP1,#5FHLCALL Y1sAJMP STARTSTOP:MOVP1,#19H ;停靠分支LCALL Y100msMOVP1,#7FHLCALL Y100msAJMP STARTERROR:MOV P1,#7FH ;错误分支LCALL Y1sMOV P1,#7EHLCALL Y1sAJMP STARTYS:MOVR7,#20H ;延时YS0:MOVR6,#0FFHYS1:DJNZ R6,YS1DJNZ R7,YS0RETY1s:MOVR7,#04H ;延时Y1s1:MOVR6,#0FFHY1s2:MOVR5,#0FFHDJNZ R5,$DJNZ R6,Y1s2DJNZ R7,Y1s1RETY100ms:MOVR7,#66H ;延时Y100ms1:MOVR6,#0FFHY100ms2:DJNZ R6, Y100ms2 DJNZ R7, Y100ms1 RET END五 系统调试系统组装与调试分为硬件的组装调试和软件的调试。硬件的组装与调试侧重于原理设计的正确性验证和印刷电路板的工艺性错误的检测(如:过孔不通、线间粘连等),硬件组装前首先要仔细核对硬件系统设计原理的正确性,包括参数选用的正确性和原理的正确性。对没有把握的电路可以通过在通用实验板上直接焊接实际电路来进行实物调试和验证。在系统通过理论分析后,便可进行印刷电路设计和加工。proteus仿真图见附录4。六 .总结通过这次课程设计我对于单片机应用有了更深的了解,其技术以可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的表达方法,以开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成从软件方式设计的电子系统到硬件系统的逻辑编译。在设计过程中遇到的问题主要有以下三种:(1)原理图的设计根据设计原理绘制相应的原理图,需要考虑元器件的配置、图形结构的配置,将文字转换成直观的图形表示,以便于硬件设备的连接。在此过程中,需要参考各种文献资料,要做到不重复、新颖、有自己的想法,灵活运用所学知识。经过反复的思考,终于绘制出合理的系统原理图。(2)程序的编写及调试编程是在原理图及流程图的基础上进行的,由于以前所学单片机知识浅薄,因此对于系统的编程成为一大难题。通过查阅参考资料读懂程序,然后结合设计原理、程序流程图编写出符合自己的设计要求及目的程序。最后通过软件调试并修改程序,经过反复试验,终于得出正确的程序。(3)系统仿真系统仿真是本次设计中最大的难题,目的是通过proteus软件对设计系统硬件进行仿真,以便验证系统的正确性。首先用proteus软件绘制出系统原理图,然后通过Keil软件对程序进行编辑(如果有错误,需要改正),命名为“.ASM”的文件,以便加载时用。绘制图时要仔细,保证元器件的正确连接及配置,否则仿真不出正确的输出结果。通过按压开关按钮输入信号,输出由LED灯显示,分别表示刹车、应急、停靠、左转、右转。七 .参考文献 1康华光 电子技术基础(第五版)北京:高等教育出版社,2006年 2李军 无线电元器件精汇北京:人民邮电出版社3王松武 于鑫 电子创新设计与实践北京:国防工业出版社2005年4江力 Protel 99 SE 原理图与PCB八附录附录1:控制系统主程序流程图附录2:中断服务的程序流程图附录3:键的功能程序流程图附录4:proteus仿真图12