微型计算机设计Word文档格式.docx
《微型计算机设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《微型计算机设计Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
8086是Intel系列的16位微处理器,它有16根数据线和20根地址线,本系统采用它作为处理器,利用8086最小模式进行连接控制。
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工作在三种不同的方式下。
3.系统主要功能:
设计要求:
根据设计要求:
①正常行驶时指示灯全灭;
②左转弯时,左边3个指示灯按左循环依次点亮;
③右转弯时,右边3个指示灯按右循环依次点亮;
④超车时,指示灯闪烁;
⑤刹车时,指示灯全亮。
列出尾灯与汽车运行状态表:
表1尾灯与汽车运行状态表
L1黄
L2红
L3白
R1黄
R2红
R3白
开关全开
正常行驶
灯全灭
仅闭合K1
左转弯
按左循环依次点亮
仅闭合K2
右转弯
按右循环依次点亮
仅闭合K3
刹车
灯全亮
仅闭合K4
超车
指示灯按一定频率闪烁
设计分析:
1.指示灯需要在不同的情况下出现以下四种情况,全灭,全亮,闪烁,循环亮灭。
可以利用可编程的并行接口8255A芯片,对8255A输入不同的指令可改变I/O口的工作方式,8255A的PA端口用于输出,与发光二极管相连接,用于控制灯的闪烁效果,PB端口用于输入,用其低四位做为输入控制,对于8255A的PC端口则空闲状态。
开关K1(左转向控制),K2(右转向控制),K3(刹车控制),K4(超车控制)。
来达到预期的实验目的。
2.用8086微处理器系统来与8255A相连,进而来控制8255A芯片,8086微处理器最小模式由三片8282或74LS373锁存器、两片8286或74LS245收发器、两片6264存储器,再加上8255A由数据总线、地址总线与8086连接构成最小方式系统结构。
3.用proteus仿真软件来画出硬件连接图并仿真调试,最后把硬件确定好。
4.用汇编语言编写源程序代码,并用星研软件进行调试、编译生成可执行文件。
把可执行文件导入8086微处理器芯片中进行进一步运行调试,并与设计要求相对照不断进行完善,直至与设计要求相符为止,即完成设计。
二.系统硬件设计:
本设计利用8086系统为主要控制芯片和可编程计数器/定时器8253及可编程外围接口芯片8255A等设计的一个汽车尾灯电路的控制系统,主要包括8086最小模式系统以及接口电路设计等模块。
2.1最小系统介绍:
1.8086CPU的最小模式系统
图18086最小方式典型系统结构
2.8086最小系统配置模拟图
在最小模式系统中,除了8086CPU,存储器及I/O接口芯片外,还加入了一片8284A作为时钟发生器,三片8282/8283或74LS373作为地址锁存器,二片8286/8287或74LS245作为双向数据总线收发器。
数据总线和地址总线分时复用
图2最小系统模拟图
2.2接口电路设计
1.8255A的DATA与8086数据线的低八位相连接,RD与RD相连接,WR与WR相连接,将8086的地址线A1,A2与8255的A0,A1连接起来,CS可以接地也可以通过地址线来选通控制。
2.8255的PA端口用于输出,与发光二极管相连接,用于控制灯的闪烁效果,PB端口用于输入,用其低四位做为输入控制,对于8255的PC端口则空闲状态。
3.开关K1(左转向控制),K2(右转向控制),K3(刹车控制),K4(超车控制)。
图3接口电路设计
三.系统软件(程序)设计
运用汇编语言编写程序:
1.采用模块化程序结构设计软件,首先将整个软件分成若干功能模块;
2.对各模块设计写一个详细的程序流程图;
3.根据流程图,编写源程序;
4.上机调试各模块程序;
5.各程序模块联调;
6.与硬件一起联调,最后完成全部调试工作。
下图是程序设计流程图
3.1程序流程图
3.2汇编程序代码
#make_COM#
;
COMfileisloadedatCS:
0100h
(thevalueofCSissetbyOperatingSystem)
ORG100h
datasegment
PAEQU0F0H
PBEQU0F2H
PPEQU0F6H
dataends
codesegment
assumecs:
code,ds:
data
start:
moval,82h;
方式0,A口输入,B口输出
outPP,al
NEXT:
inal,PB
movbl,00h;
00h状态正常行驶
cmpbl,al
jzCONTIUE
jmpz1
z1:
movbl,01h;
01h状态左转
jzLEFT
jmpz2
z2:
movbl,02h;
02h状态右转
jzRIGHT
jmpz3
z3:
movbl,04h;
04h状态刹车
jzBREAK
jmpNEXT
Z4:
MOVbl,08H;
08h状态超车
JZTHAN
THAN:
CALLK0
CALLdelay
callk1
calldelay
JMPNEXT
LEFT:
MOVAL,0FBH
OUTPA,AL
calldelay
callk2
callk3
RIGHT:
MOVAL,0F7H
callk4
callk5
BREAK:
moval,0C0h
outPA,al
CONTIUE:
;
实现正常行驶
moval,0FFh
k0procnear;
灯全点亮
outPA,al
ret
k0endp
k1procnear;
灯全息灭
k1endp
k2procnear
moval,0FDh;
左循环1
k2endp
k3procnear;
左循环2
moval,0FEh
k3endp
k4procnear;
右循环1
moval,0EFh
k4endp
k5procnear;
右循环2
moval,0DFh
k5endp
delayprocnear;
延时
movCX,65535D
delay1:
decCX
jnzdelay1
delayendp
codeends
endstart