1、单片机课程设计汽车灯单片机原理及系统课程设计专 业: 电气工程及其自动化 班 级: 电气1004班 姓 名: 王英帅 学 号: 指导教师: 任丽苗 评语:平时(40)修改(30)报告(30)总成绩兰州交通大学自动化与电气工程学院2013年3月7日摘要,基于单片机的工作原理,以八路抢答器为理念,制作广泛抢答按扭优先编码电路锁存器译码电路译码显示主持人控制开关控制电路报警电路主持人断开控制开关抢答无效报警电路显示电路1引 言本设计的设计内容是:基于单片机的汽车灯控制系统的设计。模拟汽车在驾驶中的左转弯、右转弯、刹车、合紧急开关、停靠等操作。在左转弯或右转弯时,通过转弯操作杆使左转弯或右转弯开关合上
2、,从而使左头信号灯、仪表板的左转弯灯、左尾信号灯或右头信号灯、仪表板的右转弯信号灯、右尾信号灯闪烁;闭合紧急开关时以上六个信号灯全部闪烁;汽车刹车时,左右两个尾信号灯点亮;若正当转弯时刹车,则转弯时原闪烁的信号灯应继续闪烁,同时另一个尾信号灯点亮,以上闪烁的信号灯以1Hz频率慢速闪烁;在汽车停靠开关合上时左头信号灯、右头信号灯、左尾信号灯、右尾信号灯以10Hz频率快速闪烁。任何在下表中未出现的组合,都将出现故障指示灯闪烁,闪烁频率为10Hz。2设计方案及原理2.1系统硬件设计概述该设计方案中,选用ATMEL公司的8位通用单片机AT89C51,让其P0口为系统的输入端口,输入信号由开关的通断产生
3、,而P1口为系统的输出端口,输出给7个LED指示灯。同时,本设计中将刹车输入信号以中断的方式进行输入,这样在一定程度上就保证了诸如刹车这种紧急情况下实时性较高的需要。详细的硬件设计方案见后续章节。2.2系统软件设计概述根据系统的设计需要,为满足系统实时性的需求,我们把刹车信号处理成外部中断0的形式,其他输入信号以普通的输入信号进行输入,CPU以轮询的方式对它们进行查询。若CPU发现有输入信号的组合是所期望输入信号组合的任何一组时,则驱动相应的指示灯发出相应的指示情况。详细的软件设计方案见后续章节。3硬件设计3.1 硬件设计方案 如前所述,在该设计方案中,选用ATMEL公司的8位通用单片机AT8
4、9C51,让其P0口为系统的输入端口,输入信号由开关的通断产生,其中,P0.0为左转弯开关,P0.1为右转弯开关,P0.2为紧急开关,P0.3为停靠开关。P1口为系统的输出端口,输出给7个LED指示灯。其中,P1.0到P1.2引脚分别连接汽车的左转弯灯、左头灯和左尾灯,为便于区分,这三个灯均用黄灯表示;P1.3到P1.5引脚分别连接汽车的右转弯灯、右头灯和右尾灯;P1.6引脚连接汽车的故障指示灯。同时,本设计中将刹车输入信号以外部中断0的方式进行输入,这样在一定程度上就保证了诸如刹车这种紧急情况下实时性较高的需要。3.2 硬件设计原理图在Proteus仿真环境下所搭建的系统硬件电路图如图3.1
5、所示。图3.1 系统硬件原理图4 软件设计4.1 软件设计方案根据设计要求,我们把左转弯信号输入、右转弯信号输入、紧急信号输入和停靠信号输入当做普通的信号输入给单片机进行处理,此时CPU采用轮询的方式对各个信号的组合方式逐个地进行排查:若CPU发现有有效的信号输入,则驱动相应指示灯进行相应的显示,若发现有无效的信号输入,则驱动故障指示灯闪烁,若上述情况都未发生,则CPU继续轮询排查各个输入信号的组合,直到有信号输入。由于刹车信号是一种很紧急的信号,故此处将刹车信号处理成外部中断信号进行输入,以保证实时性,将损失降低到最小。此时CPU正在执行主程序(即CPU正以轮询的方式排查各输入信号的组合),
6、当有刹车信号输入时,程序立即转向中断服务程序去处理,其中包含着与刹车有关的各个有效信号的组合,当输入信号的组合有效时,则发出相应的动作,若输入无效信号时,则故障指示灯闪烁。考虑到一般刹车之后都需要重新启动汽车及整个汽车的控制系统,我们把当系统进入到中断时的各个有效状态人为地设置为重复等待状态,直到系统重新上电复位之后,又恢复到正常的等待状态。4.2 系统设计流程图4.2.1 主程序流程图在主程序中,首先将输出端口与清零,以免对后续的程序执行结果产生错误的影响。片内存储单元30H、31H和32H分别用来当做左转弯、右转弯、紧急开关是否闭合的标志存储器,若有相应的信号出现时,则相应的标志存储器置为
7、#FFH,否则,相应的标志存储器清零。设置这三个标志存储器的目的是为了当有刹车中断产生是,便于CPU辨认是否在刹车的情况下有左转弯、右转弯或者是紧急开关闭合。为了能够使系统在汽车处于运行状态下连续可靠地工作,主程序采用循环扫描,即轮询的方式工作。主程序流程图如图4.1所示。4.2.2 中断程序流程图在中断服务程序中,首先同主程序一样,先将输出口清零,以免影响后续程序执行结果。紧接着,程序通过一级一级的判断与排查,看是否有与题中所给出的信号组合相符的信号组合出现,若出现了,则相应的指示灯要出现相应的动作,并进入循环执行的状态,直到系统从刹车状态中解除出来,重新上电复位后,又重头开始执行程序;否则
8、,故障指示灯显示。中断程序流程图如图4.2所示。图4.1 主程序流程图图4.2 中断程序流程图5总 结经过将近一周时间的单片机课程设计,我又重新温习回顾了有关8051单片机的基本结构和一些基本的指令,并进一步加深了用单片机进行整个系统硬件和程序设计的方法与步骤,巩固了利用单片机进行系统软件设计时的一些技巧与方法。就本次所选的设计题目而言,我在设计的过程中,首先通过仔细分析题目,来找到解决问题的突破口,这一步对于后续过程的设计具有指导意义。其次,根据所分析的结果,综合考虑各种必要条件后,设计出了系统的硬件电路图。接着,进行系统的软件设计,这一步需要详细分析题中各种情况之间的逻辑关系与其自身的要求
9、,还要综合考虑到实际情况的需要。在搞清楚这些关系之后,为系统编写汇编程序源代码。然后,在KeilC应用软件环境下,对汇编源代码进行编译、汇编与连接,并将生成的可执行文件与硬件系统相关联,最后在Proteus仿真环境下进行仿真,调试仿真结果是否正确。通过此次课程设计,我复习掌握了不仅有关单片机的知识,还收获了一些有关论文写作规范的要求,这让我受益匪浅。参考文献1 李华,王思明,张金敏.单片机原理及应用M.兰州:兰州大学出版社,2001.5.2 徐爱均.单片机原理实用教程-基于Proteus虚拟仿真M.北京:电子工业出版社,2009.1.3 李广弟.单片机基础M.北京:北京航空航天大学出版社,19
10、94.4 房小翠.单片机实用系统设计技术M.北京:国防工业出版社,1999.5 胡汉才.单片机原理及接口技术.清华大学出版社,1995.附 录 ORG 0000H LJMP MAIN ORG 0003H LJMP INTRT0MAIN: MOV P1,#00H ;输出口清0 MOV 30H,#00H ;标志清0 MOV 31H,#00H ; MOV 32H,#00H ; SETB EX0 SETB EAHP1: MOV A,P0 ;左转判断 CLR C SUBB A,#01H JZ ZZW JNZ JX1ZZW: MOV 30H,#0FFH ;左转指示SS1: MOV P1,#07H LCAL
11、L DELAY1 MOV P1,#00H LCALL DELAY1 SJMP HP1JX1: MOV 30H,#00HHP2: CLR C ;右转判断 MOV A,P0 SUBB A,#02H JZ YZW JNZ JX2YZW: MOV 31H,#0FFH ;右转指示SS2: MOV P1,#38H LCALL DELAY1 MOV P1,#00H LCALL DELAY1 SJMP HP2JX2: MOV 31H,#00H ;合紧急开关判断HP3: CLR C MOV A,P0 SUBB A,#04H JZ HJJ JNZ JX3HJJ: MOV 32H,#0FFH ;合紧急开关指示SS3
12、: MOV P1,#3FH LCALL DELAY1 MOV P1,#00H LCALL DELAY1 SJMP HP3JX3: MOV 32H,#00HHP4: CLR C ;合停靠开关判断 MOV A,P0 SUBB A,#08H JZ TK JNZ JX4TK: MOV P1,#36H ;合停靠开关指示 LCALL DELAY10 MOV P1,#00H LCALL DELAY10 SJMP HP4JX4: CLR C ;有无输入判断 MOV A,P0 JZ TZ CLR C ;左转判断 MOV A,P0 SUBB A,#01H JZ TZ CLR C ;右转判断 MOV A,P0 SU
13、BB A,#02H JZ TZ CLR C ;合紧急开关判断 MOV A,P0 SUBB A,#04H JZ TZ CLR C ;合停靠开关判断 MOV A,P0 SUBB A,#08H JZ TZ AJMP GZGZ: MOV P1,#40H ;故障指示 LCALL DELAY10 MOV P1,#00H LCALL DELAY10 AJMP JX4TZ: AJMP MAIN ;返回继续INTRT0: CLR EA ;关中断 MOV P1,#00H CLR C ;左转判断 MOV A,30H SUBB A,#0FFH JZ ZZS CLR C ;右转判断 MOV A,31H SUBB A,#
14、0FFH JZ YZSPSC: MOV A,P0 ;刹车判断 JZ SC JNZ GZ1SC: MOV P1,#24H CLR C ;刹车合紧急开关判断 MOV A,P0 SUBB A,#04H JZ HJS SJMP SCGZ1: MOV P1,#40H ;故障指示 LCALL DELAY10 MOV P1,#00H LCALL DELAY10 SJMP GZ1ZZS: CLR C ;左转弯刹车合紧急开关判断 MOV A,P0 SUBB A,#05H JZ ZSJZS: MOV P1,#27H ;左转弯刹车指示 LCALL DELAY1 MOV P1,#00H SETB P1.5 LCALL
15、 DELAY1 SJMP ZZSZSJ: MOV P1,#3FH ;左转弯刹车合紧急开关指示 LCALL DELAY1 MOV P1,#00H SETB P1.5 LCALL DELAY1 SJMP ZSJYZS: CLR C ;右转弯刹车合紧急开关判断 MOV A,P0 SUBB A,#06H JZ YSJYS: MOV P1,#3CH ;右转弯刹车指示 LCALL DELAY1 MOV P1,#00H SETB P1.2 LCALL DELAY1 SJMP YZSYSJ: MOV P1,#3FH ;右转弯刹车合紧急开关指示 LCALL DELAY1 MOV P1,#00H SETB P1.
16、2 LCALL DELAY1 SJMP YSJHJS: MOV P1,#3FH ;刹车时合紧急开关指示 LCALL DELAY1 MOV P1,#00H SETB P1.2 SETB P1.5 LCALL DELAY1 SJMP HJS RETIDELAY10: MOV R7,#200 ;延时0.1s子程序L: MOV R6,#123 NOPL1: DJNZ R6,L1 DJNZ R7,L RETDELAY1: MOV R5,#10 ;延时1s子程序L2: MOV R7,#200L3: MOV R6,#123 NOPL4: DJNZ R6,L4 DJNZ R7,L3 DJNZ R5,L2 RET END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1