微机报告.docx

上传人:b****8 文档编号:29811392 上传时间:2023-07-27 格式:DOCX 页数:22 大小:260.35KB
下载 相关 举报
微机报告.docx_第1页
第1页 / 共22页
微机报告.docx_第2页
第2页 / 共22页
微机报告.docx_第3页
第3页 / 共22页
微机报告.docx_第4页
第4页 / 共22页
微机报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

微机报告.docx

《微机报告.docx》由会员分享,可在线阅读,更多相关《微机报告.docx(22页珍藏版)》请在冰豆网上搜索。

微机报告.docx

微机报告

 

《微机应用系统设计与综合实验(实践)》课程设计报告

设计题目:

汽车信号灯控制程序设计

 

姓名:

学号:

专业班级:

指导老师:

 

目录

第一章设计课题名称及要求……………………………3

1.1设计课题名称………………………………………3

1.2设计要求……………………………………………3

1.3设计意义……………………………………………3

第二章设计思想和实施方案论述………………………4

2.1设计分析……………………………………………4

2.2设计思想……………………………………………………………5

2.3实施方案论述………………………………………………………5

2.3.1问题描述……………………………………………………5

2.3.2问题的解决方案分析………………………………………6

2.3.3系统的主要功能……………………………………………6

2.4硬件电路原理图及分析……………………………………………8

2.4.18086CPU的最小模式系统…………………………………8

2.4.2硬件电路原理图……………………………………………9

2.4.3电路原理图分析………………………………………………9

2.5软件设计……………………………………………………………10

第三章系统调试与实现……………………………………12

3.1实验步骤……………………………………………………………12

3.2调试结果……………………………………………………………12

3.3课程设计中遇到的问题及解决方法………………………………12

第四章程序清单及注释……………………………………13

第五章课程设计总结………………………………………21

5.1课程设计小结……………………………………………21

5.2课程设计体会……………………………………………21

参考文献………………………………………………………23

第一章设计课题名称及要求

1.1设计课题名称:

汽车信号灯控制程序设计

1.2设计要求

(1)、分别用C语言和汇编语言编程完成硬件接口功能设计(或可视化语言);

(2)、基于80x86微机接口控制器硬件电路设计与调试;

(3)、汽车信号灯微机控制系统,所需执行的操作由相应的开关状反映,所需控制的信号灯有仪表板左/右转弯灯、左右头灯和左右尾灯共六类灯,其驾驶操作与灯光信号对应关系如下:

a).左/右转弯(合上左/右开关):

仪表板左/右转弯灯、左/右头灯、左/右尾灯闪烁。

b).紧急开关合上:

所有灯闪烁。

c).刹车(合上刹车开关):

左右尾灯亮。

d).左/右转弯刹车:

仪表板左/右转弯灯、左/右头灯、左/右尾灯闪烁,右/左尾灯亮。

e).刹车、合上紧急开关:

尾灯亮、仪表板灯、头灯闪烁。

f).左/右转弯刹车,并合上紧急开关:

右/左尾灯亮,其余灯闪烁。

g).停靠(合上停靠开关):

头灯、尾灯以30Hz的频率闪烁。

1.3设计意义

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

展示了微机原理与接口技术在汽车行业的应用。

 

第二章设计思想和实施方案论述

2.1设计分析

根据课题所要实现的功能,结合所学的知识进行分析,系统要用到8086微处理器芯片和可编程的并行接口芯片8255A,还有锁存器和LED。

用8086微处理器系统来与8255A相连,进而来控制8255A芯片,8086微处理器最小模式由三片8282或74LS373锁存器、两片8286或74LS245收发器、两片6264存储器,再加上8255A由数据总线、地址总线与8086连接构成最小方式系统结构。

8086是Intel系列的16位微处理器,它有16根数据线和20根地址线,本系统采用它作为处理器。

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

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

8255内部有4个寄存器:

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

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

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

通过CS、A0、A1、RD和WR对4个寄存器进行操作。

(1)CS为低电平时选通8255;

(2)A1、A0为地址选通;(3)RD和WR为读、写信号:

RD为低、WR为高时为读方式,RD为高、WR为低时为写方式。

(4)D0~D7为数据口。

向控制寄存器写入不同的数据可以使8255工作在三种不同的方式下。

 

2.2设计思想

用proteus仿真软件来画出硬件连接图并仿真调试,最后把硬件确定好。

用汇编语言编写源程序代码,并用星研软件进行调试、编译生成可执行文件。

把可执行文件导入8086微处理器芯片中进行进一步运行调试,并与设计要求相对照不断进行完善,直至与设计要求相符为止,即完成设计。

2.3实施方案论述

2.3.1问题描述

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

汽车左转 

汽车右转  

汽车出现紧急状况

汽车刹车 

汽车停靠

在进行课程设计时,可以考虑到10种组合模式如下:

输入状态输出状态

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

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

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

刹车左右尾灯亮

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

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

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

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

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

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

2.3.2问题的解决方案分析

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

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

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

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

考虑到程序设计比较简便,所以本次课程设计一旦涉及到信号灯的闪烁,都为程序控制。

2.3.3系统的主要功能

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

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

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

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

(5)当用户置开关状态为05H时,表示汽车左转刹车,则仪表左灯、左头灯、左尾灯同时亮,其它灯灭。

(6)当用户置开关状态为06H时,表示汽车右转刹车,则仪表右灯、右头灯、右尾灯同时亮,其它灯灭。

(7)当用户置开关状态为07H时,表示汽车此时处于紧急刹车状态,则全部指示灯亮。

(8)当用户置开关状态为08H时,表示汽车此时处于左转紧急刹车状态,则全部指示灯亮。

(9)当用户置开关状态为09H时,表示汽车此时处于右转紧急刹车状态,则全部指示灯亮。

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

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

D10(右尾灯)、D9(左尾灯)、D8(右头灯)D7(左头灯)D12(仪表右灯)、D11(仪表左灯)

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

 灯状态

开关状态

仪表左灯

(D11)

仪表右灯

(D12)

左头灯

(D7)

右头灯

(D8)

左尾灯

(D9)

右尾灯(D10)

1左转(01h)

2右转(02h)

3紧急(03h)

4刹车(04h)

5左转+刹车(05h)

6右转+刹车(06h)

7刹车+紧急(07h)

8左转+刹车+紧急(08h)

9右转+刹车+紧急(09h)

10停靠(0Ah)

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

2.4硬件电路原理图及分析

2.4.18086CPU的最小模式系统

 

图18086最小方式典型系统结构

2.4.2硬件电路原理图

 

 

2.4.3电路原理图分析

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

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

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

4.D10(右尾灯)、D9(左尾灯)、D8(右头灯)D7(左头灯)D12(仪表右灯)、D11(仪表左灯)

 

2.5软件设计

运用汇编语言编写程序:

1.采用模块化程序结构设计软件,首先将整个软件分成若干功能模块;2.对各模块设计写一个详细的程序流程图;3.根据流程图,编写源程序;4.上机调试各模块程序;5.各程序模块联调;6.与硬件一起联调,最后完成全部调试工作。

 

下图是程序设计流程图

第三章系统调试与实现

3.1实验步骤

1.用proteus仿真软件来画出硬件连接图并仿真调试,最后把硬件确定好。

2.在DOS下编写汇编程序代码

3.汇编调试、运行。

4.记录运行结果,以及调试中遇到的问题。

3.2调试结果

通过用proteus仿真软件不断地对程序进行调试,最终利用5个开关组合成10种不同的组合状态来模拟汽车信号灯10种不同的状态,初步实现了预期任务要求对应的灯亮、灭、闪的不同情况。

3.3课程设计中遇到的问题及解决方法

虽然实现了原本预期的各种控制状态,不过程序还有待优化、改进,比如说在拨动开关时有时候会出现相应的灯不亮或者不闪烁的问题,这些都通过修改汇编程序代码以及用proteus仿真软件不断地对程序进行调试,最终都能够得到很好的解决,能够完成实验。

 

第四章程序清单及注释

 

DATASEGMENT

IO8255AEQU0F0H

IO8255BEQU0F2H

IO8255CEQU0F4H

IO8255CONEQU0F6H

IO8253_0EQU0E8H

IO8253_1EQU0EAH

IO8253_2EQU0ECH

IO8253CONEQU0EEH

DATAENDS

 

STACK1SEGMENT

STADW50DUP(?

STACK1ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACK1

MAINPROCFAR

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVES,AX

 

MOVDX,IO8253CON;产生30hz频率

MOVAL,00110101B;8253,通道0初始化,先读写低字节,后高字节,方式二,BCD计数

OUTDX,AL

MOVDX,IO8253_0

MOVAL,00H

OUTDX,AL

MOVAL,50H

OUTDX,AL

MOVDX,IO8253CON

MOVAL,01110111B;8253,通道1初始化,先读写低字节后高字,方式三,BCD计数

OUTDX,AL

MOVDX,IO8253_1

MOVAL,13H

OUTDX,AL

MOVAL,00H

OUTDX,AL

MOVDX,IO8255CON

MOVAL,8BH;8255控制字,A口输出,B口输入,C低输入,方式0

OUTDX,AL

 

P:

MOVDX,IO8255B;读B口开关状态

INAL,DX

MOVCX,0020H

P0:

CMPAL,0

JNZP1

MOVDX,IO8255A

MOVAL,00000000B

OUTDX,AL

P1:

CMPAL,01H

JNZP2

 

MOVDX,IO8255A

LEFT:

MOVAL,00010101B;左转六盏灯状态:

闪,灭,闪,灭,闪,灭

OUTDX,AL

CALLDELAY0;调延时子程序

MOVAL,00000000B

OUTDX,AL

CALLDELAY0

 

JMPP

P2:

CMPAL,02H

JNZP3

 

MOVDX,IO8255A

RIGHT:

MOVAL,00101010B;右转六盏灯状态:

灭,闪,灭,闪,灭,闪

OUTDX,AL

CALLDELAY0

MOVAL,00000000B

OUTDX,AL

CALLDELAY0

JMPP

 

P3:

CMPAL,04H

JNZP4

 

MOVDX,IO8255A

HURRY:

MOVAL,00000000B;紧急按钮六盏灯状态:

闪,闪,闪,闪,闪,闪

OUTDX,AL

CALLDELAY0

MOVAL,01111111B

OUTDX,AL

CALLDELAY0

JMPP

 

P4:

CMPAL,08H

JNZP5

 

MOVDX,IO8255A

BREAK:

MOVAL,00001100B;刹车六盏灯状态:

灭,灭,亮,亮,灭,灭

OUTDX,AL

CALLDELAY0

JMPP

P5:

CMPAL,09H

JNZP6

MOVDX,IO8255A

LEFTBREAK:

MOVAL00101001B;六盏灯状态:

灭,闪,灭,亮,灭,闪

OUTDX,AL

CALLDELAY0

MOVAL,00000100B

OUTDX,AL

CALLDELAY0

JMPP

P6:

CMPAL,0AH

JNZP7

 

MOVDX,IO8255A

RIGHTBREAK:

MOVAL,00101010B;六盏灯状态:

闪,灭,亮,灭,闪,灭

OUTDX,AL

CALLDELAY0

MOVAL,00001000B

OUTDX,AL

CALLDELAY0

JMPP

 

P7:

CMPAL,0CH

JNZP8

MOVDX,IO8255A

HURRYBREAK:

MOVAL,00111111B;六盏灯状态:

闪,闪,亮,亮,闪,闪

OUTDX,AL

CALLDELAY0

MOVAL,01001100B

OUTDX,AL

CALLDELAY0

JMPP

P8:

CMPAL,0DH

JNZP9

 

MOVDX,IO8255A

HURRYLEFTBREAK:

MOVAL,00111111B;六盏灯状态:

闪,闪,闪,亮,闪,闪

OUTDX,AL

CALLDELAY0

MOVAL,01000100B

OUTDX,AL

CALLDELAY0

JMPP

 

P9:

CMPAL,0EH

JNZP10

 

MOVDX,IO8255A

HURRYRIGHTBREAK:

MOVAL,00111111B;六盏灯状态:

闪,闪,亮,闪,闪,闪

OUTDX,AL

CALLDELAY0

MOVAL,01001000B

OUTDX,AL

CALLDELAY0

JMPP

P10:

CMPAL,10H

JNZP11

 

STOP:

MOVDX,IO8255C

INAX,DX

CMPAX,01H;检测c口状态

JNZTT

MOVDX,IO8255A

MOVAL,00001111B;停靠六盏灯状态:

灭,灭,闪,闪,闪,闪。

要以30HZ频率shan烁

OUTDX,AL

JMPP

TT:

MOVDX,IO8255A

MOVAL,00000000B

OUTDX,AL

JMPP

 

P11:

CMPAL,03H

JNZP12

MOVDX,IO8255A

ERROR1:

MOVAL,10000000B;

OUTDX,AL

CALLDELAY0

JMPP

P12:

CMPAL,07H

JNZP13

MOVDX,IO8255A

ERROR2:

MOVAL,10000000B;

OUTDX,AL

CALLDELAY0

JMPP

P13:

CMPAL,0BH

JNZP14

MOVDX,IO8255A

ERROR3:

MOVAL,10000000B;

OUTDX,AL

CALLDELAY0

JMPP

P14:

CMPAL,0FH

JNZP15

MOVDX,IO8255A

ERROR4:

MOVAL,10000000B;

OUTDX,AL

CALLDELAY0

JMPP

P15:

CMPAL,06H

JNZP16

MOVDX,IO8255A

ERROR5:

MOVAL,10000000B;

OUTDX,AL

CALLDELAY0

JMPP

P16:

CMPAL,05H

JNZP17

MOVDX,IO8255A

ERROR6:

MOVAL,10000000B;

OUTDX,AL

CALLDELAY0

JMPP

 

P17:

JMPP

RET

 

MAINENDP

 

DELAYPROCNEAR;延时程序

PUSHCX

MOVCX,0000FH

P18:

LOOPP18

POPCX

RET

DELAYENDP

DELAY0PROCNEAR

PUSHCX

PUSHAX

MOVCX,0350H

P19:

CALLDELAY

LOOPP19

POPAX

POPCX

RET

DELAY0ENDP

 

CODEENDS

ENDSTART

 

第五章课程设计总结

5.1课程设计小结

本次课程设计是要设计一个汽车信号灯控制系统,主要通过8255A的A口和C口模拟汽车信号灯的亮灭闪烁情况。

通过本次的设计以此来加深对微机接口技术的理解,提高了自己的动手能力。

本次课程设计主要采用了8255A接口电路。

我们通过课本了解到了各个芯片的引脚及功能、工作方式、内部结构和控制字。

对各个功能的熟悉便于了硬件电路的设计。

然后就是对程序的设计,想要设计出一个实用的控制系统需要了解程序流程,先画出了流程图,然后对代码进行编写,主要采用汇编语言。

最后用proteus仿真软件来画出硬件连接图并仿真调试。

在调试过程中遇到了很多问题,有些问题在同学和老师的帮助下得以解决,有些我自己查阅资料找出并解决问题。

5.2课程设计体会

通过两周的微机原理与接口技术的课程设计,我们对这半年来学习的该课程有了一个良好的、整体的认识。

同时对微机原理相关知识进行了一次梳理。

通过课程设计锻炼了动手能力,运用理论来指导实践的能力。

同时也感到知识的不足,要学的东西还有很多,我们学的只是冰山一角而已。

在整个课程设计的过程中,查阅了不少资料,通过检索搜寻所需的资料,借鉴前人的经验,再结合所学知识和其他参考文献确定设计任务。

课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,是锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

回顾起此次微机原理课程设计,从选题到定稿,从理论到实践,在整整两个星期的时间里,我们学到很多很多的的东西,同时巩固了以前所学过的知识。

通过这次课程设计使我懂得了理论与实际相结合的重要性。

设计的过程也是一个学习的过程,设计中遇到问题是无法避免的,要想方设法去解决,这次的课题设计的难点在于芯片的使用和相关软件的使用以及编程等。

就本质还是对微机原理和汇编语言掌握得不好,通过这次课程设计,我们每个人都有很大的进步。

 

参考文献

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

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

[2]戴梅萼,史嘉权.16-32位微型计算机技术及应用[M].北京:

清华大学出版社.

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

清华大学出版社.2005

 

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

当前位置:首页 > 总结汇报 > 学习总结

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

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