微机原理与接口技术(楼顺天第二版)第七章习题解答.doc
《微机原理与接口技术(楼顺天第二版)第七章习题解答.doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术(楼顺天第二版)第七章习题解答.doc(6页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术(楼顺天第二版)习题解答
第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所示。
图7.21
7.22答:
在IBMPC系统中,如果AEN信号未参加I/O端口地址译码,则会出现DMA机构与I/O端口竞争总线的问题,即会出现总线竞争问题。
在没有DMA机构的其他微机系统中,不会存在同样的问题。
7.23答:
连接图如图7.23所示。
图7.23
7.24答:
连接图如图7.24所示。
图7.24
程序如下:
MOVCX,10
LEASI,BUFFER
MOVDX,04E5H
WAIT1:
INAL,DX
ANDAL,98H
CMPAL,98H
JNZWAIT1
MOVDX,0E504H
L1:
MOVAL,[SI]
OUTDX,AL
INCSI
LOOPL1
HLT
7.25答:
硬件连接图如图7.25所示。
图7.25硬件连接图
7.26答:
IOSTATE=302H
IODATA=300H
MOVDX,IOSTATE
CHECK:
INAL,DX
TESTAL,08H
JZCHECK
MOVDX,IODATA
INAL,DX
7.27答:
PC机使用A9~A0共10位地址进行I/O端口选择,现I/O接口的地址为3C0H,即1111000000B,如果将高7位用来产生片选信号。
7.28答:
IOSTATE=124H
IODATA1=120H
IODATA2=122H
MOVSI,OFFSETBUF1
MOVDI,OFFSETBUF2
CHECK:
MOVDX,IOSTATE
INAL,DX
TESTAL,01H
JNZREADDATA1
TESTAL,10H
JNZREADDATA2
JMPCHECK
READDATA1:
MOVBX,OFFSETBUF1;以下4行判断是否从设备1读入100个数
ADDBX,100
CMPSI,BX
JAEENDDATA1;读满100个数则不再读
MOVDX,IODATA1
INAL,DX
MOV[SI],AL
INCSI
ENDDATA1:
JMPCHECK
READDATA1:
MOVBX,OFFSETBUF2;以下4行判断是否从设备2读入100个数
ADDBX,100
CMPDI,BX
JAEENDDATA2;读满100个数则不再读
MOVDX,IODATA2
INAL,DX
MOV[DI],AL
INCDI
ENDDATA2:
JMPCHECK
7.29答:
IOSTATE=0FAH;状态端口
IOIN=0FCH;纸币数据输入端口
IOOUT=0FEH;硬币数据输出端口
CHECKIN:
MOVDX,IOSTATE
INAL,DX
TESTAL,04H;D2位表示检测到纸币
JNZEXCHANGE
JMPCHECKIN
EXCHANGE:
MOVDX,IOIN;读入纸币类型
INAL,DX
MOVBL,AL;将类型数据暂存在BL中
ANDAL,0F0H;取得高4位(10位)
MOVCL,4
SHRAL,CL;右移4位
MOVCL,10
MULCL;10位乘10
ANDBL,0FH;个位
ADDAL,BL
SHLAL,1;乘2,得到5角硬币数
MOVAH,AL;将纸币元值存入AH
MOVDX,IOSTATE
CHECKOUT:
INAL,DX
TESTAL,08H
JZCHECKOUT
MOVDX,IOOUT
MOVAL,AH
OUTDX,AL;将5角硬币数输出到输出口
JMPCHECKIN