1、微机原理与接口技术(楼顺天第二版)习题解答第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端口与存储器共享一个地址空间,所有的存储单元只占用其中的一部分地址
2、,而I/O端口则占用另外一部分地址。优缺点: 独立编址方式的优点之一是存储器的容量可以达到与地址总线所决定的地址空间相同;优点之二是访问I/O端口时的地址位数可以较少,提高总线的利用率。但是缺点是必须设置专门的I/O指令,增加了指令系统和有关硬件的复杂性。 与独立编址方式相比,统一编址方式的优点是无需专门的I/O指令,从而使编程较灵活,但是I/O端口占用了存储器的一部分地址空间,因而影响到系统中的存储器的容量,并且访问存储器和访问I/O端口必须使用相同位数的地址,使指令地址码加长,总线中传送信息量增加。7.4 答:程序查询方式的优点在于可以防止数据的丢失,实现起来较为简单;缺点是它占用了微处理
3、器的大量时间,实时性较差。中断方式具有较好的实时性;但在一定程度上增加成本和复杂性。DMA方式的突出优点是传送过程无须处理器的控制,数据也无须经过微处理器,而是直接在I/O设备与主存储器间进行,因此既节约了微处理器的时间,也使传送速率大大提高;缺点是输入/输出操作占用微处理器时间。7.5 答:I/O设备种类繁多、数据传送与响应速度差别大、电平信号各不相同、一般不直接具备控制功能和可编程性,所以,一般不能直接将I/O设备连接到系统总线上。7.6 答:一般不考虑外设的状态且传输数据少时采用无条件传送;当需要查询外设的状态且微机系统规模小,CPU不需做其他事情时,可以采用查询式输入输出;当CPU工作
4、在较为复杂的系统,且需要实时响应对发生的事件处理时,可以采用中断方式;当需要传送的数据较多时,一般采用DMA方式。7.7 答:20,1MB,00000HFFFFFH,16,64K,0000HFFFFH,10,1K,000H3FFH。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 答:C7.16 答:A7.17 答:C7.18 答:D7.19 答:B7.20 答:IN, OUT7.21 答:由于片内有16个端
5、口,分别占用30030FH地址。因此,该接口模块的片选信号的译码电路设计时,A3A0不参加译码。其译码电路如图7.21所示。图7.217.22 答:在IBM PC系统中,如果AEN信号未参加I/O端口地址译码,则会出现DMA机构与I/O端口竞争总线的问题,即会出现总线竞争问题。在没有DMA机构的其他微机系统中,不会存在同样的问题。7.23 答:连接图如图7.23所示。图7.237.24 答:连接图如图7.24所示。图7.24程序如下:MOV CX ,10 LEA SI,BUFFER MOV DX,04E5H WAIT1:IN AL,DX AND AL,98H CMP AL,98H JNZ WA
6、IT1 MOV DX,0E504H L1:MOV AL,SI OUT DX,AL INC SI LOOP L1 HLT7.25 答:硬件连接图如图7.25所示。图7.25 硬件连接图7.26 答:IOSTATE=302HIODATA=300H MOV DX,IOSTATECHECK: IN AL,DX TEST AL,08H JZ CHECK MOV DX,IODATA IN AL,DX7.27 答:PC机使用A9A0共10位地址进行I/O端口选择,现I/O接口的地址为3C0H,即1111000000B,如果将高7位用来产生片选信号。7.28 答:IOSTATE=124HIODATA1=120
7、H IODATA2=122H MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2CHECK: MOV DX,IOSTATE IN AL,DX TEST AL,01H JNZ READDATA1 TEST AL,10H JNZ READDATA2 JMP CHECK READDATA1:MOV BX,OFFSET BUF1 ;以下4行判断是否从设备1读入100个数 ADD BX,100 CMP SI,BX JAE ENDDATA1 ;读满100个数则不再读 MOV DX,IODATA1 IN AL,DX MOV SI,AL INC SIENDDATA1:JMP CHECK
8、 READDATA1:MOV BX,OFFSET BUF2 ;以下4行判断是否从设备2读入100个数 ADD BX,100 CMP DI,BX JAE ENDDATA2 ;读满100个数则不再读 MOV DX,IODATA2 IN AL,DX MOV DI,AL INC DIENDDATA2:JMP CHECK 7.29 答:IOSTATE=0FAH ;状态端口IOIN=0FCH ;纸币数据输入端口IOOUT=0FEH ;硬币数据输出端口 CHECKIN:MOV DX,IOSTATE IN AL,DX TEST AL,04H ;D2位表示检测到纸币 JNZ EXCHANGE JMP CHECK
9、IN 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,IOSTATECHECKOUT:IN AL,DX TEST AL,08H JZ CHECKOUT MOV DX,IOOUT MOV AL,AH OUT DX,AL ;将5角硬币数输出到输出口 JMP CHECKIN