计算机原理与接口技术课程设计.docx
《计算机原理与接口技术课程设计.docx》由会员分享,可在线阅读,更多相关《计算机原理与接口技术课程设计.docx(16页珍藏版)》请在冰点文库上搜索。
计算机原理与接口技术课程设计
微型计算机原理与接口技术课程设计
课题并行通讯的中断设计
学院(部)电子与控制工程学院
专业建筑设施智能技术
班级
学生姓名
学号
12月24日至1月6日共两周
指导教师(签字)
2011年1月4日
摘要
计算机与外部进行信息交换的方式有两种,一种是并行通信,另一种是串行通信。
并行通讯以字节或字为单位进行数据传送,两个功能模块间有多位数据同时进行数据传送,速度快,效率高。
在系统与外设进行信息交换时,并行通讯起到了重大的作用。
本次课程设计主要在于设计出一个利用中断完成并行通讯系统。
此系统主要由8086系统与8255可编程并行接口。
此次课设在于培养我们的动手能力与考察我们对书本上的知识掌握的熟练程度。
如何正确的运用8086,8255成为本次实验的关键所在。
关键字:
并行通信8255芯片
目录
一引言
二正文
(一)设计方案的论证
(二)硬件的设计
(三)软件的设计
(四)试验及测试情况
三参考文献
四附页:
一源程序清单
二电路接线图
引言
随着科技的进步,信息化的程度在人们的生活中也越来越得到完善与提高。
在计算机中数据的传送是交流的基础,因此在计算机中,通讯显得尤其重要。
本次的课程设计中,主要考察我们如何运用芯片完成通信。
这是我们为我们下一步更加深入的了解微型计算机与应用微型计算机打下坚实的基础,本次课设有着重大的意义。
本次课程设计,我组主要应用的是8255芯片,8086指令系统与等一系列芯片元件进行连接与实现功能。
设计中,我们将面对一些较为棘手的问题。
比如如何正确的进行程序编程,如何合理的进行各元件之间的连接,如何正确的运用中断信号进行中断指令等等问题。
但我们将秉着正确对待知识的态度,努力研究,抓紧时间完善课设,尽自己最大的努力达到课程设计的要求。
总而言之,这次课程设计对我们的知识要求有着一定的高度与深度。
知识上的准备归结只要有如下三点:
1、总结性地复习8086的中断系统;
2、精通掌握中断控制器8259A的原理和编程;
3、精通掌握串行通讯接口芯片8251或并行通讯接口芯片8255之一。
正文
一设计方案的论证
总述:
在中断技术的综合应用设计中,为了验证中断在并行或串行通信中的运用,本小组在认真熟悉掌握课本内容后,积极四处查找有关资料,尽量充分准备,以力求在现有的知识水平下深刻理解,小组成员多次交流自己所掌握的知识和设计理念。
灵活运用在众多方案中择优选取合适的式样验证方案。
方案一
并行接口是实现并行通信的接口。
其数据传送方向有两种:
单向传送(只作为输入口或输出口),双向传送(皆可作为输入口,也可作为输出口)。
而并行接口可以很简单,如锁存器或三态门;也可以很复杂,如可编程接口芯片。
本次使用的8255是Intel公司生产的为X86系列CPU配套的可编程并行接口芯片。
所谓可编程,就是通过软件的方式来设定芯片的工作方式。
8255的通用性较强,使用灵活,是一种典型的可编程并行接口。
本次试验设计也可采用模拟打印机的工作过程来表示由8255输出的8086发送来的数据。
方案二
Intel8250是专用于异步通信的可编程串行接口芯片,具有很强的串行通信能力和灵活的可编程性能,在微机中的运用极为广泛。
运用8086CPU与8250及部分外设验证其可进行串行通信,如示波器,LED灯等来表示由8250输出的8086发送来的数据。
已达到串行通信的目的。
方案三
由于proteus在仿真8086中对8259A的支持不完善,因此可以考虑绕开8259而使用不可屏蔽中断来完成数据传送。
故在这种设计中使用不可屏蔽中断来完成
并行通讯的中断设计,而且在8086的NMI端接入由一个开关控制的高电平,每按下一次产生一个中断,其中8086作为CPU而8255作为并行通信的接口其中外设使用黄色LED灯且在其输出线上并接一个七段数码管,以显示每次中断后8255所输出的数值。
最终方案选择
通过比较以上三个方案的各种难易程度,及小组成员知识水平的掌握程度,以及对查阅的方案的权衡比较。
方案一中只有8255与8086的链接使用但是过于简单不足一完整的表现并行通行,方案二中使用8250,而小组成员对此芯片的掌握不如对8255的掌握使用,且为串行通信使用过程较为复杂,程序设计不易进行故放弃8250串行通信的设计,方案三明显方案三较为成熟明显,程序设计思路清晰,且并行通信的掌握较为成熟,故选用方案三,来实现并行通讯的中断设计的方案。
二硬件的设计
1.主要应用器件参数与功能介绍
(1)8086CPU的外部引脚及功能
A16-A19/S3-S6:
地址,状态复用的引脚,三态输出。
在8086执行指令的过程中,某一时刻从这4个引脚上送出地址的最高4位A16-A19;而在另外时刻,这4个引脚送出状态信号S3-S6。
这些状态信号里,S6恒等于0,S5指示中断允许标志位IF的状态,S4,S3的组合指示CPU当前正在使用的段寄存器,其编码如下。
S4
S3
当前正在使用的段寄存器
S4
S3
当前正在使用的段寄存器
0
0
0
1
ES
SS
1
1
0
1
CS或未使用任何段寄存器
DS
A8-A15:
中8位地址信号,三态输出。
CPU寻址内存或者接口时,从这些引脚送出地址A8-A15。
AD0-AD7:
地址,数据分时复用的双向信号线,三态。
当ALE=1时,这些引脚上传输的是地址信号;DEN=0时,这些因脚上的输出信号是数据信号。
ALE:
地址锁存信号,三态输出,低电平有效。
READY:
外部同步控制输入信号,高电平有效。
它是由被访问的内存货I/O设备所发出的信号响应,当其有效时,表示I/O设备或者储存器已经准备好了,CPU可以进行数据传送。
弱存储器或I/O设备没有准备好,则使READY信号为低电平。
CPU在T3周期采样READY信号,若其为低,CPU自动插入等待周期TW(一个或者多个),直到READY变为高电平后CPU才脱离等待状态,完成数据传送过程。
INTR:
可屏蔽中断请求信号,高电平有效。
CPU在每条指令的最后一个周期采样该信号,以决定是否进入中断响应周期。
这个引脚上的中断请求信号可用软件屏蔽。
NMI:
非屏蔽终端请求输入信号,上升沿触发。
这个引脚上的中断请求信号不能用软件屏蔽,CPU在当前指令执行结束进入中断过程。
REST:
系统复位输出信号,高电平有效。
为使CPU内部复位过程,该信号至少要在4个周期内保持有效。
复位后CPU内部存储器的状态如下表所示。
当REST返回低电平时,CPU将重新启动。
内部存储器
内容
内部存储器
内容
CS
FFFFH
IP
0000H
DS
0000H
FLAGS
0000H
SS
0000H
其余寄存器
0000H
ES
0000H
指令队列
空
HOLD:
总线保持请求信号输入,高电平有效。
当某一总线主控设备要占用系统总线时,通过此引脚向CPU提出请求。
HLDA:
总线保持响应信号输出,高电平有效。
这是CPU对HOLD请求的响应信号,当CPU收到有效的HOLD信号后,就对其做出响应:
一方面使CPU的所有三态输出的地址信号,数据信号和相应的控制信号变为高阻状态(浮动状态);同时输出一个有效的HLDA,表示处理器现在已放弃对总线的控制。
当CPU检测到HOLD信号变低后,就立即使HLDA变低,同时恢复对总线的控制。
CLK:
时钟信号输入引脚。
VCC:
5V电源输入引脚
GND:
地线
(2)8255的外部引线及功能
D0-D7:
双向数据线。
用来传送数据
RD:
读信号线,低电平有效。
RD与其他信号线一起实现对8255接口的读操作,通常系统总线的IOR信号。
WR:
写信号,低电平有效。
当系统系统信号经译码产生低电平是选中8255芯片,使能够对8255进行操作。
A0,A1:
口地址选择信号。
8255的内部包括独立的输入/输出端口(A口,B口和C口)以及一个控制寄存器。
A0,A1地址信号经片内译码可产生4个有效地址,分别对应A,B,C这三个口和内部控制寄存器。
具规定如下表。
A1
A0
选择
A1
A0
选择
0
1
A口
1
0
C口
0
1
B口
1
1
控制寄存器
REST:
复位输入信号。
通常接系统的复位端RESET端。
当它为高电平时使8255复位。
复位后,8255的A口,B口和C口均被设为预设输入状态。
PA0-PA7:
A口的8条输入/输出信号线。
这8条线是工作于输入,输出还是双向方式可由软件编程来决定。
PB0-PB7:
B口的8条输入/输出信号线。
利用软件编程可指定这8条线是作输入还是输出。
PC0-PC7:
C口的8条线,根据其工作方式可以为数据的输入或输出线,也可以用作控制信号的输出或者状态信号的输入线。
(3)74LS373
当三态允许控制端OE为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,Q0~Q7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,Q随数据D而变。
当LE为低电平时,D被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
引出端符号:
D0~D7数据输入端
OE三态允许控制端(低电平有效)
Dn
LE
OE
Qn
H
H
L
H
L
H
L
L
X
L
L
Q0
X
X
H
高阻态
LE锁存允许端
Q0~Q7输出端
真值表(右边)
(4)74LS138
4、5、6脚是控制脚,只有当6脚为高电平而4、5脚都为低电平时,74LS138才对1、2、3脚的输入进行译码,选择和从这三个管脚输入的三位二进制码相对应的某一个输出脚输出低电平,否则所有的输出脚都是输出高电平。
其真值表如下图
2.硬件模拟连接图
三软件的设计
本次设计主要运用了8086系统芯片,运用了其不可屏蔽中断的功能。
8086芯片的NMI数据口接有一个开关。
每当开关闭合一次,NMI变成高电平,此时即可产生一次不可屏蔽中断。
当中断产生后,8086即会停止当前工作并且来相应此次的中断请求。
此时8086即会向8255A输出数据,而后8255的指定口即会将数据输出。
我们就可以通过8255A的输出口所连接的8个LED灯的亮暗与数码管显示的数字来观察本次数据传输的情况。
在传输中,8255A芯片主要负责传输的工作。
经过考虑,我们运用8255A的0型工作方式。
即A口与B口作为输出。
但本次实验主要在于验证并行数据的传输,所以我们只利用了A口的8位输出连接8个LED灯与一只数码管来观察设计的传输情况。
四试验及测试情况
试验部分:
本次课程设计,我组主要运用了8255A芯片的并行传输功能。
通过在试验模拟软件Proteus搭接虚拟电路,向8086中导入程序,利用其强大的仿真功能,以此来验证试验结果。
在数据的传送上,我们运用了不可屏蔽中断的传送方法。
每当需要有新的信号进行传输时
测试情况:
CPU的NMI接口即会接到高电平,其实表示有不可屏蔽的中断,表示有新的数据传来,CPU即会停止其他工作并进入到数据传送中,从而完成了并行传输。
模拟软件Proteus搭接虚拟电路在模拟后,按键每按动一次七段数码管显示其当前的值,并且LED管显示其对应的BCD码。
则实验设计达到设计的要求,试验成功,测试结果良好。
参考文献
《微型计算机原理与接口技术》冯博琴吴宁
《微型计算机原理及应用实验》殷代红侯晓霞
源程序清单:
DATASSEGMENT
DW100DUP(?
)
STR1DB00H,01H,02H,03H;此处输入数据段代码
DATASENDS
STACKSSEGMENT
DW50DUP(?
)
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
PUSHDS
PUSHBX断点保护中断向量初始化
MOVAX,0000Hds赋予初值
MOVDS,AXbx对应偏移地址是ds,使ds为零,防止出错
MOVBX,0008Hnmi固定中断类型吗是02h
MOVDX,OFFSETMYINT
MOV[BX],DX写中断向量表偏移地址
MOVBX,000AH将指针向下移动两位
MOVDX,SEGMYINT段基址将中断子程序的地址写入中断向量表nmi上升沿触发
MOV[BX],DX
POPBX
MOVAX,DATAS
MOVDS,AX
MOVAX,STACKS
MOVSS,AX
MOVDX,0086H控制字地址
MOVAL,0089H控制字
OUTDX,AL
MOVDX,0080Ha口地址
MOVAL,00Ha口置零
OUTDX,AL
GOON:
JMP$
SHUCHU:
MOVAL,CL
MOVDX,80Ha口写数据
OUTDX,AL
CALLDELAY做小延迟,防止按键信号重复扫描,只扫描一次
JMPGOON
DELAYPROC延迟程序让cpu在短时间内不检测到新的nmi信号
PUSHBX
PUSHCX
MOVBL,10H循环10h外循环27h内循环
NEXT:
MOVCX,27h
W10MS:
LOOPW10MS
DECBL
CMPBL,0
JNENEXT
POPCX
POPBX
RET
DELAYENDP
MOVAH,4CH
MYINTPROC中断子程序
INCCL
JMPSHUCHU
RET
MYINTENDP
INT21H
CODESENDS
ENDSTART
电路接线图