汽车信号灯控制系统.docx

上传人:b****7 文档编号:9257984 上传时间:2023-02-03 格式:DOCX 页数:19 大小:113.07KB
下载 相关 举报
汽车信号灯控制系统.docx_第1页
第1页 / 共19页
汽车信号灯控制系统.docx_第2页
第2页 / 共19页
汽车信号灯控制系统.docx_第3页
第3页 / 共19页
汽车信号灯控制系统.docx_第4页
第4页 / 共19页
汽车信号灯控制系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

汽车信号灯控制系统.docx

《汽车信号灯控制系统.docx》由会员分享,可在线阅读,更多相关《汽车信号灯控制系统.docx(19页珍藏版)》请在冰豆网上搜索。

汽车信号灯控制系统.docx

汽车信号灯控制系统

河南工程学院

实习报告

 

院(部)计算机学院

专业计算机科学与技术专业

班级1041班

小组姓名及学号张丽201010913133

小组姓名及学号员娇娇201010913121

小组姓名及学号王会敏201010913106

2013年6月28日

实习报告评分表

实习题目

汽车信号灯控制系统

姓名

学号

任务分工

成绩评级

张丽

201010913133

程序:

模拟汽车十种驾驶操作对应的5个开关的状态。

文档:

硬件设计方案、实训总结;

员娇娇

201010913121

程序:

模拟汽车十种驾驶操作对应的6个发光二极管的的明、灭、闪烁等状态。

文档:

摘要、总体设计方案。

 

王会敏

201010913106

程序:

延时程序。

文档:

前言、软件设计方案、调试程序及结果。

 

 

实习(训)报告评语

 

评阅人:

职称:

年月日

河南工程学院

实习(训)报告

 

实习目的(内容):

掌握8086工作原理、计算机对输入信号检测和输出控制的基本方法和常用按钮、发光二极管的使用方法,

提高学生的动手能力

实习时间:

自月日至月日

共天。

实习地点:

实习单位:

计算机学院

 

摘要2

1.前言3

1.1设计背景3

1.2设计目的3

2.总体设计方案3

2.1总体设计方案分析3

2.1.1问题描述分析4

2.1.2问题的解决方案分析5

2.2系统的主要功能5

3.硬件设计方案7

3.1设计思路7

3.2设计框图8

3.3设计线路及说明8

4.软件设计方案9

4.1设计思想9

4.2程序流程图10

5.调试以及运行结果11

5.1源程序代码11

5.2调试结果15

6.实训总结16

参考资料17

摘要

本设计是在DVCC试验箱平台上利用芯片8255A及8253来实现的汽车信号灯控制系统,在系统中利用5个开关来模拟汽车驾驶操作,然后用6个发光二极管来模拟汽车信号灯;当拨动开关改变相应的状态时,系统就会检测到相关类型的状态,然后根据内部程序,来驱动相关的汽车信号灯(发光二极管)闪烁或长亮,以达到此次设计的目的和要求。

关键词:

控制系统开关信号灯

1.前言

1.1设计背景

汽车信号灯的作用是大家所熟知的,汽车驾驶员通过控制不同的信号灯来告诉其前后左右的行车者本汽车正在进行的操作。

信号灯灯具的发展是随着汽车制造技术及电光源技术的发展而逐步完善的。

它经历了机油(或煤油)灯、乙炔气灯到电光源灯的发展历程。

现代汽车信号灯灯具已经开始使用发光二极管(LED)技术以及光导技术,这是信号灯灯具的一次飞跃。

1.2设计目的

通过所学的知识,用现代计算机技术来模拟实现汽车信号灯控制系统,把所学的理论的知识用到实践中去,加强了对理论知识的理解和应用,展示了计算机技术在汽车行业的应用。

同时,也为人们的日常交通生活提供了便利与安全保障。

2.总体设计方案

2.1总体设计方案分析

本设计是利用芯片8255A和8253来实现的汽车信号灯控制系统,在系统中利用5个开关来模拟汽车驾驶操作,然后用6个发光二极管来模拟汽车信号灯;当拨动开关改变相应的状态时,系统就会检测到相关类型的状态,并根据内部程序,来驱动相关的汽车信号灯(发光二极管)闪烁或长亮,以次达到设计的目的和要求,其设计任务为设计并制作出汽车信号灯微机控制系统,

六种信号灯分别是:

仪表板左/右灯、左/右头灯和左/右尾共六类灯,在不同的操作控制下可驱动相对应的汽车信号灯闪烁或长亮。

在本系统中,要求所需执行的操作由相应的开关状态反映,其驾驶操作与信号灯的明亮情况对应。

2.1.1问题描述分析

汽车行驶时一共有五种状况:

汽车左转

汽车右转

汽车出现紧急状况

汽车刹车

汽车停靠

本次课程设计考虑到如下10种组合模式:

输入状态输出状态

左转左头灯,左尾灯,仪表左灯亮

右转右头灯,右尾灯,仪表右灯亮

紧急左右头灯,左右尾灯,仪表左右灯同时闪烁

刹车左右尾灯亮

左转+刹车左头灯,左尾灯,仪表左灯亮

右转+刹车右头灯,右尾灯,仪表右灯亮

刹车+紧急左右头灯,左右尾灯,仪表同时亮

左转+刹车+紧急左右头灯,左右尾灯,仪表左右灯同时亮

右转+刹车+紧急左右头灯,左右尾灯,仪表左右灯同时亮

停靠左右头灯,左右尾灯同时闪烁

2.1.2问题的解决方案分析

通过对以上问题描述的深入分析,可总结出以下三点:

(1)通过6个发光二级管模拟两个头灯、两个尾灯和仪表盘上的两个指示灯。

(2)利用5个开关可产生的32种情况的前10种组合来分别模拟左转、右转、紧急,刹车,停靠等的状态,使发光二极管信号灯相应亮、灭或闪烁。

(3)通过程序或者定时/计数器控制灯的闪烁频率。

本次课程设计涉及到的信号灯的闪烁,都为程序控制。

本次设计采用DVCC实验箱上的8255A和8253来进行数据的输入与输出和定时。

2.2系统的主要功能

(1)当用户置开关状态为01H时,也即左转,表左转开关闭合,则仪表左灯、左头灯、左尾灯同时亮,其他灯灭。

(2)当用户置开关状态为02H时,也即右转,表右转开关闭合,则仪表右灯、右头灯、右尾灯同时亮,其他灯灭。

(3)当用户置开关状态为04H时,表紧急开关闭合,也即出现紧急状态时,则所有灯闪烁。

(4)当用户置开关状态为08H时,表示踩刹车(合上刹车开关),则左尾灯、右尾灯亮,其它灯灭。

(5)当用户置开关状态为09H时,表示汽车右尾灯亮,左尾灯、左头灯、仪表左灯闪烁。

(6)当用户置开关状态为0AH时,表示汽车左尾灯亮,右尾灯、右头灯、仪表右灯闪烁。

(7)当用户置开关状态为0CH时,表示汽车此时处于紧急刹车状态,左、右尾灯亮,其他灯闪烁。

(8)当用户置开关状态为0DH时,表示汽车此时处于左转紧急刹车状态,则右尾灯亮,其他灯闪烁。

(9)当用户置开关状态为0EH时,表示汽车此时处于右转紧急刹车状态,则左尾灯亮,其他灯闪烁。

(10)当用户置开关状态为10H时,表示汽车此时在停靠,则左/右尾灯、左/右头灯亮,闪烁。

设置实验箱上的6个发光二极管的对应情况为:

L1:

右尾灯L2:

左尾灯L3:

右头灯L4:

左头灯

L5:

仪表右灯L6:

仪表左灯

通过5个开关(K0、K1、K2、K3、K4的组合)产生的16种情况的前10种来作为输入选择,影响6个指示灯的输出,对应关系如下表:

 

 灯状态

开关状态

仪表左灯

(L6)

仪表右灯

(L5)

左头灯

(L4)

右头灯

(L3)

左尾灯

(L2)

右尾灯(L1)

左转(01h)

右转(02h)

紧急(04h)

刹车(08h)

左转+刹车(09h)

右转+刹车(0Ah)

刹车+紧急(0Ch)

左转+刹车+紧急(0Dh)

右转+刹车+紧急(0Eh)

停靠(10h)

表1开关状态与灯状态对应表

3.硬件设计方案

3.1设计思路

根据课题所要实现的功能,结合所学的知识进行分析,可编程的并行接口芯片8255A和定时/计数器8253。

8255是可编程I/O口扩展芯片。

对8255输入不同的指令可改变I/O口的工作方式。

8255内部有4个寄存器:

分别为寄存器A、B、C和控制寄存器。

A、B、C寄存器的数据就是引脚PA7~PA0、PB7~PB0、PC7~PC0上输入或输出的数据

,而控制寄存器的数据则表明PA、PB、PC的工作方式。

此次选择的是B端口和C端口。

8253有6种工作方式,本次设计用到方式2,方式2又可称为频率发生器。

当CPU写入控制字后,输出端OUT将变高,在写入计数初值以后的下一个CLK脉冲的下降沿开始计数。

计数过程中OUT端始终保持高电平,当计数值减至1时OUT端变为低电平,而计数值减至0时OUT端又变为高电平,同时会自动将

计数值送到执行部件继续进行减法计数,形成连续工作,重复计数,从而输出固定频率的脉冲。

3.2设计框图

3.3设计线路及说明

1.8255的CS端接系统的I/O地址译码电路地址为288H~28FH的接口,从而达到选通控制。

2.DATA与处理器的数据总线的低八位相连接,RD与IOR相连接,WR与IOW相连接,将处理器8的地址线A1,A2与8255的A0,A1连接起来。

3.8255的PC端口用于输出,与发光二极管相连接,用于控制灯的闪烁效果,PB端口用于输入,用其低五位做为输入控制,对于8255的PA端口则为空闲状态。

4.L1(右尾灯)、L2(左尾灯)、L3(右头灯)L4(左头灯)L5(仪表右灯)、L6(仪表左灯)

4.软件设计方案

4.1设计思想

软件部分与硬件部分一起构成一个完整的系统,对整个系统来说起着重要的作用。

在本设计中使用了调用子程序和跳转的设计方法,它根据系统输入的数据,分别转向各个处理程序。

该方法利用无条件跳转JMP,根据运算结果,实现转移。

 

4.2程序流程图

5.调试以及运行结果

5.1源程序代码

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK

IOCONPTEQU0FF2BH

IOAPTEQU0FF28H

IOBPTEQU0FF29H

IOCPTEQU0FF2AH

ORG10e0H

io8253controequ0043H;8253a的控制口地址

io8253zeroequ0040H;8253a计数器0的地址;8255A的控制口地址

STACKSEGMENT

STACKENDS

START:

MOVDX,IOCONPT

MOVAL,82H

OUTDX,AL

xorDX,DX

xorAl,Al

MOVDX,IOBPT

INAL,DX

andAl,1fH

CMPAL,01H

JZLEFT

CMPAL,02H

JZRIGHT

CMPAL,04H

JZHURRY

CMPAL,08H

JZBREAK

CMPAL,09H

JZLEFTBREAK

CMPAL,0AH

JZRIGHTBREAK

CMPAL,0CH

JZHURRYBREAK

CMPAL,0DH

JZLEFTHURRYBREAK

CMPAL,0EH

JZRIGHTHURRYBREAK

CMPAL,10H

JZSTOP

MOVDX,IOCPT

movAL,00H;H

OUTDX,AL

CALLDELAY2

JMPSTART

LEFT:

callLEFT1

CALLDELAY2

JMPSTART

RIGHT:

CALLRIGHT1

CALLDELAY2

JMPSTART

HURRY:

CALLHURRY1

CALLDELAY2

JMPSTART

BREAK:

MOVDX,IOCPT

MOVAL,00000011B

OUTDX,AL

CALLDELAY2

JMPSTART

LEFTBREAK:

CALLLEFTBREAK1

CALLDELAY2

JMPSTART

RIGHTBREAK:

CALLRIGHTBREAK1

CALLDELAY2

JMPSTART

HURRYBREAK:

CALLHURRYBREAK1

CALLDELAY2

JMPSTART

LEFTHURRYBREAK:

CALLLEFTHURRYBREAK1

CALLDELAY2

JMPSTART

RIGHTHURRYBREAK:

CALLRIGHTHURRYBREAK1

CALLDELAY2

JMPSTART

STOP:

MOVDX,io8253contro

MOVAL,36H

OUTDX,AL,

MOVDX,io8253zero

MOVDX,00H

OUTDX,AL

OUTDX,AL

MOVDX,IOCPT

MOVAL,00000000b

OUTDX,AL

CALLDELAY2

CALLDELAY2

MOVmovdx,IOCPT

MOVAL,10000000b

OUTDX,AL

CALLDELAY2

CALLDELAY2

CALLDELAY2

JMPSTART

LEFT1PROC

MOVDX,IOCPT

MOVAL,00101010B;13L24H

OUTDX,AL

CALLDELAY2

MOVDX,IOCPT

MOVAL,00000000B;13LN

OUTDX,AL

CALLDELAY2

RET

LEFT1ENDP

RIGHT1PROC

MOVDX,IOCPT

MOVAL,00010101B

OUTDX,AL

CALLDELAY2

MOVDX,IOCPT

MOVAL,00000000B

OUTDX,AL

RET

RIGHT1ENDP

HURRY1PROC

MOVDX,IOCPT

MOVAL,11111111B

OUTDX,AL

CALLDELAY2

MOVDX,IOCPT

MOVAL,00000000B

OUTDX,AL

RET

HURRY1ENDP

LEFTBREAK1PROC

MOVDX,IOCPT

MOVAL,00101011B

OUTDX,AL

CALLDELAY2

MOVDX,IOCPT

MOVAL,00000001B

OUTDX,AL

CALLDELAY2

RET

LEFTBREAK1ENDP

RIGHTBREAK1PROC

MOVDX,IOCPT

MOVAL,00010111B

OUTDX,AL

CALLDELAY2

MOVDX,IOCPT

MOVAL,00000010B

OUTDX,AL

CALLDELAY2

RET

RIGHTBREAK1ENDP

HURRYBREAK1PROC

MOVDX,IOCPT

MOVAL,00111111B

OUTDX,AL

CALLDELAY2

MOVDX,IOCPT

MOVAL,00000011B

OUTDX,AL

CALLDELAY2

RET

HURRYBREAK1ENDP

LEFTHURRYBREAK1PROC

MOVDX,IOCPT

MOVAL,00111111B

OUTDX,AL

CALLDELAY2

MOVDX,IOCPT

MOVAL,00000001B

OUTDX,AL

CALLDELAY2

RET

LEFTHURRYBREAK1ENDP

RIGHTHURRYBREAK1PROC

MOVDX,IOCPT

MOVAL,00111111B

OUTDX,AL

CALLDELAY2

MOVDX,IOCPT

MOVAL,00000010B

OUTDX,AL

CALLDELAY2

RET

RIGHTHURRYBREAK1ENDP

DELAY1:

PUSHAX

PUSHCX

MOVCX,0030H

DELY2:

CALLDELAY2

LOOPDELY2

POPCX

POPAX

RET

DELAY2:

PUSHCX

MOVCX,8000H

DELA1:

LOOPDELA1

POPCX

RET

CODEENDS

ENDSTART

5.2调试结果

通过不断地对程序进行调试和上机验证,最终利用5个开关组合成10种不同的组合状态来模拟汽车信号灯10种不同的状态,初步实现了预期任务要求对应的灯亮、不亮、闪的不同情况,其中的停靠状态是根据定时/计数器8253实现闪烁频率是30HZ。

6.实训总结

通过这次实训,我觉得自己的收获很大,尤其是对芯片8255A和8253的了解更进了一步。

在此次课程设计之前,我们对这些芯片的了解仅仅是理论知识,还有就是因为这次的实训平台是DVCC试验箱,对其内部电路更是不了解,感觉很抽象,而通过这次的课程设计,在不断地调试过程中,对8255和8253的各个端口的连线及功能有了很大的认识。

另外,对于程序的编写及编译运行,也巩固了我们对于汇编程序设计方面的知识。

这次的课程设计中也让我们认识到了一些自己的不足,对于理论知识,掌握的还不够扎实,理解的也不透彻。

尤其是对于将理论知识运用到实践中去,这方面有点欠缺,在以后的学习中,要注意这方面的加强。

最后,谢谢老师这几天的指导。

参考资料

[1]吴秀清,周荷琴.微型计算机原理及接口技术[M].合肥:

中国科学技术大学出版社,2008.

[2]姚君遗.汇编语言程序设计[M].南京:

南京大学出版社.

[3]李继灿.《微型计算机及接口实验指导书》[M].北京:

清华大学出版社.2005

(本资料素材和资料部分来自网络,仅供参考。

请预览后才下载,期待您的好评与关注!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1