微机原理与接口技术(楼顺天第二版)习题解答
第7章常用芯片的接口技术
7.1答:(1)地址选择;(2)控制功能;(3)状态指示;(4)速度匹配;(5)转换信息格式;(6)电平转换;(7)可编程性。
7.2 答:I/O接口是指I/O设备与系统总线之间的连接部件;I/O端口是指I/O接口内部可由CPU进行读写操作的各种寄存器,根据存放信息的不同,这些寄存器分别称为数据端口、控制端口和状态端口。
7.3答:I/O端口编址的方式可以分为独立编址和统一编址两种方式。
独立编址方式是指I/O端口与存储器有相互独立的地址空间。
统一编址方式是指I/O端口与存储器共享一个地址空间,所有的存储单元只占用其中的一部分地址,而I/O端口则占用另外一部分地址。
优缺点:独立编址方式的优点之一是存储器的容量可以达到与地址总线所决定的地址空间相同;优点之二是访问I/O端口时的地址位数可以较少,提高总线的利用率。
但是缺点是必须设置专门的I/O指令,增加了指令系统和有关硬件的复杂性。
与独立编址方式相比,统一编址方式的优点是无需专门的I/O指令,从而使编程较灵活,但是I/O端口占用了存储器的一部分地址空间,因而影响到系统中的存储器的容量,并且访问存储器和访问I/O端口必须使用相同位数的地址,使指令地址码加长,总线中传送信息量增加。
7.4 答:程序查询方式的优点在于可以防止数据的丢失,实现起来较为简单;缺点是它占用了微处理器的大量时间,实时性较差。
中断方式具有较好的实时性;但在一定程度上增加成本和复杂性。
DMA方式的突出优点是传送过程无须处理器的控制,数据也无须经过微处理器,而是直接在I/O设备与主存储器间进行,因此既节约了微处理器的时间,也使传送速率大大提高;缺点是输入/输出操作占用微处理器时间。
7.5 答:I/O设备种类繁多、数据传送与响应速度差别大、电平信号各不相同、一般不直接具备控制功能和可编程性,所以,一般不能直接将I/O设备连接到系统总线上。
7.6 答:一般不考虑外设的状态且传输数据少时采用无条件传送;当需要查询外设的状态且微机系统规模小,CPU不需做其他事情时,可以采用查询式输入输出;当CPU工作在较为复杂的系统,且需要实时响应对发生的事件处理时,可以采用中断方式;当需要传送的数据较多时,一般采用DMA方式。
7.7 答:20, 1MB,00000H~FFFFFH,16,64K,0000H~FFFFH,10,
1K,000H~3FFH。
7.8答:I/O接口。
7.9 答:I/O设备,系统总线。
7.10 答:数据、状态、控制;双向、I/O接口-CPU,CPU-I/O接口。
7.11 答:状态寄存器。
7.12 答:速度
7.13 答:独立,统一。
7.14 答:BC
7.15 答:C
7.16 答:A
7.17 答:C
7.18 答:D
7.19 答:B
7.20 答:IN,OUT
7.21 答:由于片内有16个端口,分别占用300~30FH地址。
因此,该接口模块的片选信号的译码电路设计时,A3~A0不参加译码。
其译码电路如图7.21所示。
IOR
IOW
图7.21
7.22 答:在IBM PC系统中,如果AEN信号未参加I/O端口地址译码,则会出现DMA机构与I/O端口竞争总线的问题,即会出现总线竞争问题。
在没有DMA机构的其他微机系统中,不会存在同样的问题。
7.23 答:连接图如图7.23所示。
74LS244
A10
A7
A2
A0
图7.23
7.24 答:连接图如图7.24所示。
74LS374
A15
A14
A8
A2
IOW
A12
A11
A9
A7
A6
图7.24 程序如下:
MOV CX ,10
LEA SI,BUFFER
MOV DX,04E5H
WAIT1:IN AL,DX
AND AL,98H
CMP AL,98H
JNZ W AIT1
MOV DX,0E504H
L1:MOV AL,[SI]
OUT DX,AL
INC SI
LOOP L1
HLT
7.25 答:硬件连接图如图7.25所示。
74LS244
74LS244
A10
A8
图7.25 硬件连接图7.26 答:IOSTATE=302H
IODATA=300H
MOV DX,IOSTA TE
CHECK: IN AL,DX
TEST AL,08H
JZ CHECK
MOV DX,IODA TA
IN AL,DX
7.27 答:PC机使用A9~A0共10位地址进行I/O端口选择,现I/O接口的地址为3C0H,即1111000000B,如果将高7位用来产生片选信号。
7.28 答:IOSTATE=124H
IODATA1=120H
IODATA2=122H
MOV SI,OFFSET BUF1
MOV DI,OFFSET BUF2
CHECK: MOV DX,IOSTA TE
IN AL,DX
TEST AL,01H
JNZ READDA TA1
TEST AL,10H
JNZ READDA TA2
JMP CHECK
READDATA1:MOV BX,OFFSET BUF1 ;以下4行判断是否从设备1读入100个数ADD BX,100
CMP SI,BX
JAE ENDDATA1 ;读满100个数则不再读
MOV DX,IODA TA1
IN AL,DX
MOV [SI],AL
INC SI
ENDDATA1:JMP CHECK
READDATA1:MOV BX,OFFSET BUF2 ;以下4行判断是否从设备2读入100个数ADD BX,100
CMP DI,BX
JAE ENDDATA2 ;读满100个数则不再读
MOV DX,IODA TA2
IN AL,DX
MOV [DI],AL
INC DI
ENDDATA2:JMP CHECK
7.29 答:IOSTATE=0FAH ;状态端口
IOIN=0FCH ;纸币数据输入端口
IOOUT=0FEH ;硬币数据输出端口
CHECKIN:MOV DX,IOSTATE
IN AL,DX
TEST AL,04H ;D2位表示检测到纸币
JNZ EXCHANGE
JMP CHECKIN
EXCHANGE:MOV DX,IOIN ;读入纸币类型
IN AL,DX
MOV BL,AL ;将类型数据暂存在BL中
AND AL,0F0H ;取得高4位(10位)
MOV CL,4
SHR AL,CL ;右移4位
MOV CL,10
MUL CL ;10位乘10
AND BL,0FH ;个位
ADD AL,BL
SHL AL,1 ;乘2,得到5角硬币数
MOV AH,AL ;将纸币元值存入AH
MOV DX,IOSTA TE
CHECKOUT:IN AL,DX
TEST AL,08H
JZ CHECKOUT
MOV DX,IOOUT
MOV AL,AH
OUT DX,AL ;将5角硬币数输出到输出口
JMP CHECKIN。