微机报告.docx
《微机报告.docx》由会员分享,可在线阅读,更多相关《微机报告.docx(22页珍藏版)》请在冰豆网上搜索。
![微机报告.docx](https://file1.bdocx.com/fileroot1/2023-7/27/d26b8763-34c2-4d5d-afaf-60ac7264fe08/d26b8763-34c2-4d5d-afaf-60ac7264fe081.gif)
微机报告
《微机应用系统设计与综合实验(实践)》课程设计报告
设计题目:
汽车信号灯控制程序设计
姓名:
学号:
专业班级:
指导老师:
目录
第一章设计课题名称及要求……………………………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