微机原理第六章参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、
I/O接口的作用是使微机处理器与外设之间能够有条不紊地协调工作,打到信息交换的目的。I/O接口的功能有:数据缓冲、设备选择、信号转换、接收、解释并执行CPU命令、中断管理、可编程等功能。
二、
I/O端口是接口信息流传送的地址通道。
一般接口电路中有数据端口、命令端口、状态端口等。
三、CPU对I/O端口的编址方式有哪几种?各有什么特点?80X86对I/O端口的编址方式属
于哪一种?
CPU对I/O端口的编址方式有:统一编址和独立编址。
统一编址的微机系统中,存储器、I/O接口和CPU通常挂接在同一总线上,CPU对I/O端口
的访问非常灵活、方便,有利于提高端口数据的处理速度;但是减少了有效的存储空间。
独立编址的微机系统中,I/O地址空间和存储器地址空间可以重叠,CPU需要通过不同的命
令来区分端口的存储器。
80X86采用独立编址方式。
四、某微机系统有8个I/O接口芯片,每个接口芯片占用8个端口地址。若起始地址为9000H,8个接口芯片的地址连续分布,用74LS138作译码器,请画出端口译码电路图,并说明每个
芯片的端口地址范围。
74LS138
分析下表所列的地址分配情况,可知系统地址信号的译码情况为(图略):
●字选:A2~A0直接与接口芯片上的地址信号线连接以寻址每个接口芯片内部的8个端口;
●片选:
⏹A5~A3接3-8译码器输入端,译码器输出端分别作为8个接口芯片的片选信号;
五、
由于CPU与外设之间的速度不匹配,所以输入需要缓冲,输出需要锁存。
输入缓冲器就是输入时在外设和CPU之间接一数据缓冲器,当读该缓冲器的控制信号有效时,才将缓冲器的三态门打开,使外设的数据进入系统的数据总线,而其他时间,三态门处于高阻状态,不影响总线上的其他操作。
输出锁存就是在CPU和外设之间接一锁存器,使得有输出指令并且选中该I/O端口时,才使总线上的数据进入锁存器,此后不管总线上的数据如何变化,只要没有再次使锁存器的信号有效,锁存器的输出端就一直保持原来的锁存信息。
六、
CPU与I/O设备之间的数据传送方式有:
1.直接程序控制方式:这种方式又可以分为无条件传送方式和条件传送方式(查询方式);
这种方式的优点是编程简单,缺点是CPU的利用率不高;无条件控方式用在简单外设的输入/输出中;查询方式用在需要CPU与外设异步的场合中。
2.中断控制方式:这种方式的优点是CPU的利用率高,缺点是编程比较复杂且需要比较复杂的接口电路;主要用在对实时性要求比较高的场合。
3.直接存储器存取控制:这种方式的优点只需要CPU的少量干预,缺点是需要更复杂的电路来控制;用在处理内存与外设有大量数据交换的场合。
七、
便于CPU随机处理和提高工作效率的I/O方式是:中断控制方式。
数据传送最快的是:直接存储器控制方式。
八、假设一台打印机的数据输出I/O口地址为378H,状态口地址为379H,状态字节的D0位为状态位(D0=0,表示打印数据缓冲区空,CPU可以向它输出新数据;D0=1,表示数据区满)。试编写一段程序,用查询方式从内存中以BUF为首址的单元处开始,将连续1KB的数据传送给打印机,每次送1字节。
答:参考程序如下:可参考P299
LEA BX,BUF; BX指向第1个待打印的数据
MOV CX,1024; 一共要送1K个字节数据
AGAIN: MOV DX,379H
IN AL,DX; 读打印机状态端口
TEST AL,01H
JNZ AGAIN; 若D0位不为0,则继续查询等待
MOV AL,[BX]
MOV DX,378H
OUT DX,AL; 将BX所指的数据发送到打印机
INC BX; BX指向下一个待打印的字节
LOOP AGAIN; CX不为0,继续送下一个字节
九、
DA TA1 SEGMENT AT 4000H
BUF1 DW 1024 DUP(?)
DA TA1 ENDS
DA TA2 SEGMENT AT 5000H
BUF2 DB 2048 DUP(?);
DA TA2 ENDS
CODE SEGMENT
ASSUME CS:CODE DA:DATA1 ES:DATA2
MAIN: MOV AX,DA TA1
MOV DS,AX
MOV AX,DA TA2
MOV ES,AX
LEA SI,BUF1
LEA DI,BUF2
CLD
MOV CX,1024
MOV DX,OUTPUT
AGAIN: LODSW;端口可以十六位操作的可以使用OUT DX,AX代替下面5句命令MOV BL,AL
MOV AL,AH
OUT DX,AL
MOV AL,BL
OUT DX,AL
LOOP AGAIN
MOV CX,2048
MOV DX,INPUT
AGAIN2:IN AL,DX
STOSB
LOOP AGAIN2
MOV AH,4CH
INT 21H
CODE ENDS
END MAIN
十、简述线性键盘和矩阵键盘的区别。如何消除键盘抖动?
线性键盘的每一个按键要占用I/O端口的一根口线,而矩阵键盘比线性键盘节约了更多的口线;若口线的数目为M×N,则矩阵键盘数为M+N,而线性键盘的按键数为M×N。
去抖方法:
硬件法
用单稳态电路消除机械抖动的影响