汽车信号灯控制系统_第1页
汽车信号灯控制系统_第2页
汽车信号灯控制系统_第3页
汽车信号灯控制系统_第4页
汽车信号灯控制系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学计算机控制技术课程设计说明书学 号: 课 程 设 计题 目汽车信号灯控制系统学 院自动化学院专 业电气工程及其自动化班 级姓 名 指导教师年1月9日课程设计任务书学生姓名: 专业班级: 7 指导教师: 工作单位: 自动化学院 题 目: 汽车信号灯控制系统的设计 初始条件:1汽车上有紧急开关、停靠开关和转弯控制杆。转弯控制杆有三个位置:中间位置时,汽车不转弯;向上时,汽车左转;向下时,汽车右转。2用8086CPU、8255A并行通信接口、外围电路芯片及元器件设计并制作出汽车信号灯微机控制系统,所需控制的信号灯有仪表板左/右转弯灯、左右头灯和左右尾灯共六类灯,完成相应的程序编写。要求完

2、成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 汽车转弯时,要求左/右尾灯、左/右头灯和仪表板上的2个指标灯相应地发出闪烁信号,闪烁频率为1Hz。2. 当紧急开关或停靠开关合上时,所有6个信号灯都闪烁,闪烁频率为30HZ。3. 汽车刹车时,2个尾灯发出不闪烁的信号;汽车刹车时正在转弯,则相应的转弯闪烁信号不受影响。4. 合上紧急开关并刹车:尾灯亮、仪表板灯、头灯闪烁,闪烁频率为30HZ。5. 转弯刹车并合上紧急开关:左/右尾灯亮、其余灯闪烁,闪烁频率为30HZ。6. 撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计

3、任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。时间安排:12月 26日- 12月28 日 查阅资料及方案设计12月 29日- 1 月 2日 编程1月 3日- 1 月 7日 调试程序1月 8日- 1 月 9日 撰写课程设计报告指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录摘 要11 设计任务及分析21.1 设计任务要求21.2 设计系统分析22 硬件设计42.1 硬件的选择42.2 系统电路设计62.2.1电路工作原理62.2.2电路原理图73 软件设计83.1 程序流程图83.2 程序代码

4、段104 系统仿真174.1 仿真过程174.2 仿真结果184.3 结果分析185 心得体会19参考文献20附录:设计源程序21武汉理工大学计算机控制技术课程设计说明书摘要汽车信号灯控制系统是在微机原理与接口技术课程的基础上设计的课程设计。汽车通过显示不同的信号灯来告诉前后左右的行车者本汽车正在进行的操作同时提醒本车的操控者。本文主要是介绍汽车信号灯的控制,其中汽车信号灯包括了左前灯、右前灯、左后灯、右后灯、仪表盘上的左右转弯信号灯六个显示灯。其主要内容是使汽车在行驶过程中通过信号灯来传达汽车诸如转弯、刹车、闭合紧急开关、停靠等一系列操作信号。信号灯控制的实现主要是通过电路与汇编程序的结合来

5、完成,电路部分的设计是通过PROTEUS来完成的,其中灯的模拟采用了发光二极管,发光二极管有熄灭、点亮和闪烁三种信号,其中闪烁信号的产生分别运用了硬件和软件来实现,而汽车一系列的操作采用了相应的开关来模拟,所有的电路元件都是用PROTEUS软件上的虚拟元件来代替,这样方便了电路图的设计,而且大大提高了调试与仿真的效率。电路图中的主芯片采用了8086,汇编程序的设计与调试都在EMU8086上完成,最后将上的电路图与程序生成的执行文件实现联调,完成系统的调试和仿真。关键词:汽车信号灯 8086及可编程接口芯片 PROTEUS软件 1 设计任务及分析1.1 设计任务要求1. 汽车转弯时,要求左/右尾

6、灯、左/右头灯和仪表板上的2个指标灯相应地发出闪烁信号,闪烁频率为1Hz。2. 当紧急开关或停靠开关合上时,所有6个信号灯都闪烁,闪烁频率为30HZ。3. 汽车刹车时,2个尾灯发出不闪烁的信号;汽车刹车时正在转弯,则相应的转弯闪烁信号不受影响。4. 合上紧急开关并刹车:尾灯亮、仪表板灯、头灯闪烁,闪烁频率为30HZ。5. 转弯刹车并合上紧急开关:左/右尾灯亮、其余灯闪烁,闪烁频率为30HZ。1.2 设计系统分析在对任务需求进行概括分析以后,我决定主要控制芯片采用8086CPU,接口电路部分采用8255A,闪烁频率的产生由8253定时器产生,在加以辅助电路构成汽车信号灯系统的硬件电路。通过6个发

7、光二级管模拟两个头灯、两个尾灯和仪表盘上的两个指示灯。选择5个开关产生主要的五种状态,其他种状态用着五个开关的不同组合来分别控制左转、右转、紧急,刹车,停靠的状态,使发光二极管信号灯相应亮、灭或闪。通过8253定时器和软件编程控制灯的闪烁频率。对设计系统过的详细分析:(1) 当用户置开关状态为01H时,也即左转,表左转开关闭合,则左头灯、左尾灯、仪表左灯以1Hz闪烁。(2) 当用户置开关状态为02H时,也即右转,表右转开关闭合,则右头灯、右尾灯、仪表右灯以1Hz闪烁。(3) 当用户置开关状态为04H时,表紧急开关闭合,也即出现紧急状态时,则左右头灯、左右尾灯、仪表左右灯均同时以30Hz闪烁。(

8、4) 当用户置开关状态为08H时, 表踩刹车(合上刹车开关),则左右尾灯亮。(5) 当用户置开关状态为10H时,表示汽车此时在停靠,则左右头灯、左右尾灯以30Hz闪烁。(6) 当用户置开关状态为09H时,表示汽车左转刹车,则左头灯、左尾灯、仪表左灯闪烁,右尾灯亮。(7) 当用户置开关状态为0AH时,表示汽车右转刹车,则右头灯、右尾灯、仪表右灯以30Hz闪烁,左尾灯亮。(8) 当用户置开关状态为0CH时,表示汽车此时处于紧急刹车状态,则左右头灯、仪表左右灯以30Hz闪烁,左右尾灯亮。(9) 当用户置开关状态为0DH时,表示汽车此时处于左转紧急刹车状态,则左右头灯、仪表左右灯、左尾灯以30Hz闪烁

9、,右尾灯亮,。(10) 当用户置开关状态为0EH时,表示汽车此时处于右转紧急刹车状态,则 左右头灯、仪表左右灯、左尾灯以30Hz闪烁,左尾灯亮。设置实验系统的6个发光二极管的对应情况为: L0:右尾灯 L1:左尾灯 L2:右头灯 L3:左头灯 L4:仪表右灯 L5:仪表左灯通过5个开关(K0、K1、K2、K3、K4的组合)产生的32种情况中的10种来作为输入选择影响6个指示灯的输出,对应关系如下表: 表1 开关状态与灯状态对应表  灯状态开关状态右尾灯(L5)左尾灯(L4)右头灯(L3)左头灯(L2)右仪表灯(L1)左仪表灯(L0)1左转(01h)灭闪灭闪灭闪2右转(02h)闪灭闪灭

10、闪灭3紧急(04h)闪闪闪闪闪闪4刹车(08h)灭灭灭灭亮亮5左转+刹车(09h)灭闪灭闪亮闪6右转+刹车(0Ah)闪灭闪灭闪亮7刹车+紧急(0Ch)闪闪闪闪亮亮8左转+刹车+紧急(0Dh)闪闪闪闪亮闪9右转+刹车+紧急(0Eh)闪闪闪闪闪亮10停靠(10h)闪闪闪闪闪闪2 硬件设计2.1 硬件的选择根据课题所要实现的功能,结合所学的知识进行分析,系统要用到的主要芯片是8086微处理器芯片和可编程的并行接口芯片8255A以及8253。8086:8086是Intel系列的16位微处理器,它有16根数据线和20根地址线,本系统采用它作为主处理器。8086是Intel系列的16位微处理器,它有16根

11、数据线和20根地址线,本系统采用它作为主处理器,同时还需要增加地址锁存器及数据总线收发器来构成最小系统。8086CPU必须通过接口电路和外设连接起来。8086 CPU和I/O接口电路之间的数据通道是分时多路复用的地址/数据总线。当CPU处于最小模式下,输入/输出的控制信号由CPU直接提供。8255A: 8255A是一个典型的可编程并行接口芯片。8255具有三个相互应独立的8位并行输入输出端口,即端口A,端口B和端口C,其中端口C分为两个4位来配合端口A和端口B工作,它为INTEL系列CPU与外设之间提供TTL电平兼容的接口。8255输入不同的指令可改变IO口的工作方式。8255A可以工作在方式

12、0,方式1,方式2三种方式,其中端口A可以工作在这3种不同的方式下,而端口B只能工作在方式0和方式1,端口C配合A口和B口工作。8255内部有4个寄存器:分别为寄存器A、B、C和控制寄存器。A、B、C寄存器的数据就是引脚PA7PA0、PB7PB0、PC7PC0上输入或输出的数据。而控制寄存器的数据则表明PA、PB、PC的工作方式。通过CS、A0、A1、RD和WR对4个寄存器进行操作。CS为低电平时选通8255;A1、A0为地址选通; RD和WR为读、写信号:RD为低、WR为高时为读方式,RD为高、WR为低时为写方式;D0D7为数据口。 向控制寄存器写入不同的数据可以使8255工作在三种不同的方

13、式下。8253:是可编程间隔定时器,8253内部有3个独立的16位计数通道,通过对它进行编程,8253有6种工作方式,本次设计用到方式2,方式2又可称为频率发生器。当CPU写入控制字后,输出端OUT将变高,在写入计数初值以后的下一个CLK脉冲的下降沿开始计数。计数过程中OUT端始终保持高电平,当计数值减至1时OUT端变为低电平,而计数值减至0时OUT端又变为高电平,同时会自动将计数值送到执行部件继续进行减法计数,形成连续工作,重复计数,从而输出固定频率的脉冲。 图2-1 8086管脚图 图2-2 8255管脚图 图2-3 8253 管脚图2.2系统电路设计2.2.1电路工作原理利用8086驱动

14、8255A和8253来连接外部电路。通过时钟发生器和8086最小系统产生一定时频率,把时钟频率传送到8253的T1计数器,产生30HZ时钟脉冲,通过软件控制产生一定频率的时钟脉冲来驱动8255PA口使汽车灯左转灯,右转灯和暂停灯闪烁,使PB口保持高电平,通过开关使前远灯和近灯接通。1.8255的CS端接74LS138地址译码电路地址为0F0H的接口,8253的CS端接74LS138地址译码电路地址为0E8H的接口从而达到选通控制。2.DATA与8086/8088数据总线的低八位相连接,RD与IOR相连接,WR与IOW相连接,将8086/8088的地址线A1,A2与8255的A0,A1连接起来。

15、同时将8086的地址线A2,A3与8253的A0,A1连接起来。3.8255的PA端口用于输出,与发光二极管相连接,用于控制灯的闪烁效果,PB端口用于输入,用其低五位做为输入控制,用8255的PC的一个端口作为8253输出的入口,接受8253输出的一定频率的方波。4.C51的PB.0-PB.4端口用来检测输入信号开关状态。5. L0(右尾灯)、L1(左尾灯)、L2(右头灯) L3(左头灯) L4(仪表右灯)、 L5(仪表左灯) 22.2电路原理图 图1 系统电路图3 软件设计3.1 程序流程图 开始 8253通道0和通道1的初始化8255A初始化,A口输出,B、C输入读取B口状态显示

16、全灭的状态,即无情况AL=00H显示左转状态灯光闪烁情况AL=01H显示右转状态灯光闪烁情况AL=02H显示紧急状态灯光闪烁情况AL=04H 显示刹车状态灯光闪烁情况AL=08H显示左转刹车灯光闪烁情况AL=08H显示右转刹车灯光闪烁情况AL=0AH显示紧急刹车灯光闪烁情况AL=0CH显示左转刹车紧急灯光闪烁情况AL=0DH显示右转刹车紧急灯光闪烁情况AL=0EHAL=10H显示停靠状态灯光闪烁情况图2-2 程序流程图3.2程序源代码3.2.1 8255A初始化 IO8255A EQU 00F0H ;8255的A口地址 IO8255B EQU 00F2H ;8255的B口地址 IO8255C

17、EQU 00F4H ;8255的B口地址 IO8255CON EQU 00F6H ;8255的控制寄存器地址MOV DX,IO8255CON MOV AL,8BH ;8255控制字10001011B,8255初始化,A口输出,B口输入,C低输入 ,方式0 OUT DX,AL3.2.2 8253初始化IO8253_0 EQU 0E8H ;8253的0通道 IO8253_1 EQU 0EAH ;8253的0通道 IO8253_2 EQU 0ECH ;8253的0通道 IO8253CON EQU 0EEH ;8253的控制寄存器地址 MOV DX,IO8253CON ; 初始化8253的通道 MOV

18、 AL,00110101B ;通道0初始化,方式二,BCD计数 OUT DX,AL MOV DX,IO8253_0 MOV AL,00H ;将750KHZ的信号分频,N=5000 OUT DX,AL MOV AL,50H ;产生30HZ的方波信号 OUT DX,ALMOV DX,IO8253CON ;初始化1通道 MOV AL,01110111B ;方式三,BCD计数 OUT DX,ALMOV DX,IO8253_1 MOV AL,00H ;将1KHZ的信号分频,N=1000 OUT DX,AL ;产生1HZ的方波信号 MOV AL,10H OUT DX,AL 3.2.3 延时子程序DELAY

19、 PROC NEAR ;延时子程序 PUSH CX MOV CX,0000FH S12: LOOP S12 POP CX RET DELAY ENDP3.2.3 左转控制4 系统仿真4.1 仿真过程(1) 准备好PC机、安装proteus软件。(2) 在proteus环境下将设计的电路绘制出来。(3) 编写汇编程序代码。(4) 汇编调试、运行。(5) 记录运行结果,以及调试中遇到的问题。4.2 仿真结果4.3 结果分析通过不断地对程序进行调试和在proteus下仿真验证,最终利用5个开关组合成多种不同的组合状态来模拟汽车信号灯多种不同的状态,实现了预期任务要求对应的灯亮、灭、闪的不同情况。5

20、心得体会本次课程设计是要设计一个汽车信号灯控制系统,主要通过8255A的A口和B口模拟汽车信号灯的亮灭闪烁情况。通过本次的设计以此来加深对微机接口技术的理解,提高了自己的动手能力。首先是着手对硬件电路的设计,本次课程设计主要采用了8255A接口电路。通过课本了解到了各个芯片的引脚及功能、工作方式、内部结构和控制字。对各个功能的熟悉便于了硬件电路的设计。然后就是对程序的设计,想要设计出一个实用的控制系统需要了解程序流程,先画出了流程图,然后对代码进行编写,主要采用汇编语言和C语言。最后在proteus下进行调试,由于对proteus软件不太熟悉,在调试过程中遇到了很多问题,有些问题在同学和老师的

21、帮助下得以解决,有些问题通过查找资料解决。 通过两周的微机原理与接口技术的课程设计,我们对这半年来学习的该课程有了一个良好的、整体的认识。同时对微机原理相关知识进行了一次梳理。通过课程设计锻炼了动手能力,运用理论来指导实践的能力。同时也感到知识的不足,要学的东西还有很多,我们学的只是冰山一角而已。在整个课程设计的过程中,查阅了不少资料,通过检索搜寻所需的资料,了解了一些硬件设计的常识对自己的课程设计有很大帮助。课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,是锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。自己通过辛苦的努力,在老师的指导和同学的帮助下最终实

22、现了该汽车信号灯控制系统,感到特别的欣慰,期间获益颇多。在课程设计过程中,我们将微机接口技术中的理论与实践相结合起来,对芯片的功能也有了进一步认识理解,重温了汇编语言的编程。在实验调试过程中发现问题,分析问题,如何解决问题的能力都有所提高,这对我们不久将来离开学校,投入实际工作都是很有借鉴意义的。同时,这个课程设计让我明白了要想独具一格,必须多动脑、多动手,并且厚积才能薄发,自己前段对单片机的学习就成为了这次课程设计的不小助力,最后非常感谢老师这么多天陪伴我们,并耐心的指导,让我们少走了许多弯路,总之这次课程设计的经历是非常值得我记住和思考的。通过本次课程设计,我深刻体会到团队协作的重要性。由

23、于我和好几位同学的题目比较相似,在遇到困难的地方时,我们相互帮助,共同解决问题。这也令我明白了一个道理,在我们日常的学习生活中乃至毕业后参加工作了,都要有一份团队意识。参考文献1 吴秀清, 周荷琴.微型计算机原理及接口技术. 合肥:中国科学技术大学出版社, 2008.2 姚君遗, 汇编语言程序设计. 南京:南京大学出版社, 20043 李继灿, 微型计算机及接口实验指导书. 北京: 清华大学出版社, 20054 谭浩强, C语言程序设计. 北京: 清华大学出版社, 20055 戴梅萼, 史嘉权. 16-32位微型计算机技术及应用. 北京:清华大学出版社, 2004附录:设计源程序DATA SE

24、GMENT IO8255A EQU 0F0H ;8255的A口地址 IO8255B EQU 0F2H ;8255的B口地址 IO8255C EQU 0F4H ;8255的B口地址 IO8255CON EQU 0F6H ;8255的控制寄存器地址 IO8253_0 EQU 0E8H ;8253的0通道 IO8253_1 EQU 0EAH ;8253的0通道 IO8253_2 EQU 0ECH ;8253的0通道 IO8253CON EQU 0EEH ;8253的控制寄存器地址DATA ENDSSTACK1 SEGMENT STA DW 50 DUP(?)STACK1 ENDSCODE SEGME

25、NT ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK1MAIN PROC FAR START: SUB AX,AX PUSH DS PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,IO8253CON ; 初始化8253的通道 MOV AL,00110101B ;通道0初始化,方式二,BCD计数 OUT DX,AL MOV DX,IO8253_0 MOV AL,00H ;将750KHZ的信号分频,N=5000 OUT DX,AL MOV AL,50H ;产生30HZ的方波信号 OUT DX,ALMOV DX,IO

26、8253CON ;初始化1通道 MOV AL,01110111B ;方式三,BCD计数 OUT DX,ALMOV DX,IO8253_1 MOV AL,00H ;将1KHZ的信号分频,N=1000 OUT DX,AL ;产生1HZ的方波信号 MOV AL,10H OUT DX,AL MOV DX,IO8255CON MOV AL,8BH ;8255控制字,8255初始化,A口输出,B口输入,C低输入 ,方式0 OUT DX,AL S: MOV DX,IO8255B ;读B口开关状态 IN AL,DX MOV CX,0020H S0: CMP AL,0 JNZ S1 MOV DX,IO8255A

27、 MOV AL,11000000B OUT DX,AL S1: CMP AL,01H JNZ S2MOV DX,IO8255C IN AX,DX CMP AX,01H ;检测c口状态 MOV DX,IO8255A JNZ LEFT MOV AL,11000000B OUT DX,AL JMP S LEFT: MOV AL,11010101B ;B输出六盏灯状态:灭,闪,灭,闪,灭,闪 OUT DX,AL JMP S S2: CMP AL,02H JNZ S3 MOV DX,IO8255C IN AX,DX CMP AX,01H ;检测c口状态 MOV DX,IO8255A JNZ RIGHT

28、MOV AL,11000000B OUT DX,AL JMP S RIGHT: MOV AL,11101010B ;六盏灯状态:闪,灭,闪,灭,闪,灭 OUT DX,AL JMP S S3: CMP AL, 04H JNZ S4MOV DX,IO8255C IN AX,DX CMP AX,01H ;检测c口状态 MOV DX,IO8255A JNZ HURRYMOV AL,11111111B OUT DX,AL JMP S HURRY: MOV AL,11000000B ;六盏灯状态:闪,闪,闪,闪,闪,闪 OUT DX,AL JMP S S4: CMP AL,08H JNZ S5 MOV D

29、X,IO8255A BREAK: MOV AL,11110000B ;六盏灯状态:灭,灭,灭,灭,亮,亮 OUT DX,AL CALL DELAY0 JMP S S5: CMP AL,09H JNZ S6MOV DX,IO8255C IN AX,DX CMP AX,01H ;检测c口状态MOV DX,IO8255AJNZ LEFTBREAKMOV AL,11100000B OUT DX,ALJMP S LEFTBREAK: MOV AL,11110101 ;六盏灯状态:闪,灭,闪,灭,闪,亮 OUT DX,AL JMP S S6: CMP AL,0AH JNZ SMOV DX,IO8255C

30、IN AX,DX CMP AX,01H ;检测c口状态MOV DX,IO8255AMOV AL,11010000B OUT DX,AL JMP S RIGHTBREAK: MOV AL,11111010B ;六盏灯状态:灭,闪,灭,闪,亮,闪 OUT DX,AL JMP S S7: CMP AL,0CH JNZ S8MOV DX,IO8255C IN AX,DX CMP AX,01H ;检测c口状态 MOV DX,IO8255A JNZ HURRYBREAKMOV AL,11110000B OUT DX,AL JMP S HURRYBREAK: MOV AL,11111111B ;六盏灯状态:闪,闪,闪,闪,亮,亮 OUT DX,ALJMP S S8: CMP AL,0DH JNZ S9MOV DX,IO8255C IN AX,DX CM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论