微机原理习题第8章
2、I/O接口的主要功能有哪些?一般有哪两种编址方式?两种编址方式各自有什么特点?I/O接口的主要功能有:
(l)解决CPU与外设之间速度不匹配问题
(2)实现信号电平的转换
(3)实现信号格式的转换
I/O端口的编址方式有两种:统一编址方式和独立编址方式。
(1)统一编址方式(存储器映像寻址)
优点:
1)简化了指令系统的设计,在微处理器指令集中不必包含I/O操作指令;
2)访问I/O设备的指令类型多、功能强,能用访问存储器指令,对I/O设备进行方便、灵活的操作;
3)I/O地址空间可大可小,能根据实际系统上的外设数目来调整。
缺点:I/O端口占用了存储单元的地址空间,且I/O译码电路变得较复杂。
其次,访问存储器的指令一般要比较长,这样延长了输入输出操作时间。
(2)独立编址方式
优点:
1)可读性好,输入输出指令和访问存储器的指令有明显的区别,使程序清晰;
2)I/O指令长度短,执行的速度快,占用内存空间少;
3)I/O地址译码电路较简单。
缺点:CPU指令系统中必须有专门的IN和OUT指令,而且这些指令的功能没有访问存储器的指令强。
4、什么是直接存储器存取方式(DMA)?DMA控制器在CPU与外设的数据传送过程中发挥怎样的作用?
直接存储器传送DMA指将外设的数据不经过CPU直接送入内存储器,或者,从内存储器不经过CPU直接送往外部设备。
DMA控制器的功能:
(1)能向CPU发出总线请求信号
(2)能实行对总线的控制
(3)能发送地址信号并对内存储器寻址
(4)能修改地址指针
(5)能向存储器和外设发出读/写控制信号
(6)能判断DMA传送是否结束
(7)能发出DMA过程结束信号,使CPU能正常工作
4、在8086微机系统中,有一外设的接口地址为2A8H~2AFH,请用74LS128译码器设计符合要求的地址译码电路.
G 1A
C B A 5A 3A 4G 2B G 2A
A 9A 7A 8
A 6&
≥1
Y 5
2A8H~2AFH
74LS138
G 1A C B A 2A 0
A 1G 2B
G 2A A 6≥1
74LS138Y 32ABH Y 02A8H Y 12A9H Y 22AA H Y 72AFH
Y 4
2AC H Y 5
2AD H Y 6
2AEH A 3&
A 9A 7A 5A 8
A 4
6、一个采用查询式数据传送的输出接口,其数据端口地址为300H ,状态端口地址为301H ,外设状态位用D7位表示。如果要将存储器缓冲区DATA 中的200个字节数据通过该输出口输出,画出流程图,编写控制程序段。
程序段为:
LEA SI ,DA TA MOV CX ,200
LP1: MOV DX ,301H NR : IN AL ,DX
SHL AL,1
JNC NR
DEC DX
MOV AL,[SI]
OUT DX,AL
INC SI
LOOP LP1
HLT
LEA SI,DATA
MOV CX,200
LP1:MOV DX,301H
NR:IN AL,DX
SHL AL,1
JNC NR
DEC DX
MOV AL,[SI]
OUT DX,AL
INC SI
LOOP LP1
HLT
第9章
1、(1)D(2)C(3)B(4)D
8251(5)D(6)D(7)C(8)A
2、填空题
(1)3,基本输入/输出方式,选通输入/输出方式,双向总线I/O方式
(2)ACK OBF外设响应信号
(3)方式选择控制字,置位/复位控制字
(4)中断允许信号,PC6、PC2、PC4
4、设8255A的端口A和B均工作与方式1,端口A输出,端口B和C为输入,
端口A地址为0060H。
(1)写出工作方式控制字。
0AFH
(2)编写8255A的初始化程序。
MOV DX,0063 H
MOV AL,0AFH
OUT DX,AL
(3)若要用置位/复位方式将PC2置为1,PC7清0,试写出相应程序。
MOV DX,0063H
MOV AL,05H
OUT DX,AL
MOV AL,0EH
OUT DX,AL 5、
(1)编写8255A的初始化程序。
MOV DX,63 H
MOV AL,81H
OUT DX,AL
MOV SI,1000H
MOV CX,200
MOV DX,62H NR:IN AL,DX
SHL AL,1
JC NR
MOV AL,0FH
OUT DX,AL
NOP
NOP
MOV AL,0EH
OUT DX,AL
NOP
NOP
MOV AL,0FH
OUT DX,AL
DEC DX
DEC DX
LP1:MOV AL,[SI]
OUT DX,AL
INC SI
LOOP LP1
HLT
4、现拟用8255A设计一个3X3的键盘,并通过发光二极管显示按键状态。要求该键盘能表示数字1~9,且按下1~8按键时,有一个相应的发光二极管点亮,若按下按键9,则8个二极管同时发亮。设计并画出相应接口电路。
第10章
4、试编程,要求将8253计数器0设置为方式0,计数初值为3000H,计数器1设
置为方式2,计数初值为2010H,计数器2设置为方式4,计数初值为4030H。
假设端口地址为140H~143H
MOV AL,20H ;计数器0
MOV DX,287H
OUT DX,AL
MOV DX,284H
MOV AL,30H
OUT DX,AL
MOV AL,30H ;计数器0
MOV DX,143H
OUT DX,AL
MOV DX,140H
MOV AL,00H
OUT DX,AL
MOV AL,30H
OUT DX,AL
MOV AL,74H;计数器1
MOV DX,143H
OUT DX,AL
MOV DX,141H
MOV AL,10H
OUT DX,AL
MOV AL,20H
OUT DX,AL
MOV AL,0B8H;计数器2
MOV DX,143H
OUT DX,AL
MOV DX,142H
MOV AL,30H
OUT DX,AL
MOV AL,40H
OUT DX,AL
5、8253利用软件产生一次性中断,最好采用哪种方式?若将计数初值送到某端口的计数值寄存器后经过20ms产生一次中断,如何进行编程?设时钟频率CLK为1MHz。
N=20000
MOV AL,38H;计数器0方式4
MOV DX,143H
OUT DX,AL
MOV DX,140H
MOV AX,20000 ;初值为20000
OUT DX,AL
MOV AL,AH
OUT DX,AL
第11 章
4、设计一个采用异步通信方式输出字符的程序段。规定波特率因子为64,7位数
据位,1位停止位,偶校验,端口地址为60H,62H,缓冲区为2000H~3000H。
MOV AL, 0
MOV DX, 62H
OUT DX, AL
OUT DX, AL
OUT DX, AL
MOV AL, 40H ;送控制口3个0和40H 复位
OUT DX, AL
MOV AL, 01111011B ;方式字,1停止,偶校验,7位,异64
OUT DX, AL
CALL DELAY ;延时
MOV AL, 00000001B ;控制字,允许发送
OUT DX, AL
DELAY
CALL SEND
┇
SEND PROC NEAR
PUSH AX
PUSH CX
PUSH SI
MOV SI, 00H
MOV CX, 80H
AGAIN:MOV DX, 309H
IN AL, DX
TEST AL, 81H ;测TxRDY,DSR位(数据设备准备好)
JZ AGAIN
MOV AL, ADAT[SI]
DEC DX
OUT DX, AL
INC SI
LOOP AGAIN
POP SI
POP CX
POP AX
RET
SEND ENDP
DELAY MACRO
MOV CX, 02
TIME: LOOP TIME
第12章
1、采用DMA方式为什么能进行高速数据传送?
答:采用DMA方式传送数据时,不需要CPU的干预,数据的传送完全由硬件控制,即不需要CPU产生地址信息、数据信息、控制信息以及进行来回传送数据的指令操作,从而使数据传送速度达到硬件所允许的最快速度。
8、试编写程序段,要求利用8237A在存储区的两个区域BUF1和BUF2之间直接传送数据,传送的长度为64KB。
用通道0取BUF1中数,用通道1写入BUF2中
DMA EQU 0000H ;DMA起始端口地址
MOV AL,04H
MOV DX,DMA+08H;控制寄存器端口
OUT DX,AL ;设控制字,禁止8237A工作
MOV DX,DMA+0DH;复位命令端口
OUT DX,AL ;发复位命令
MOV DX,DMA+00H;通道0地址寄存器端口
MOV AX,BUF1 ;源数据区首址
OUT DX,AL ;写入地址低8位
MOV AL,AH
OUT DX,AL ;写入地址高8位
MOV DX,DMA+02H;通道1基地址与当前地址
MOV AX,BUF2 ;目的数据区首址
OUT DX,AL ;写入地址低8位
MOV AL,AH
OUT DX,AL ;写入地址高8位
MOV DX,DMA+03H ;通道1基计数与当前字节计数
MOV AX,0FFFFH
OUT DX,AL ;写入初始值低8位
MOV AL,AH
OUT DX,AL ;写入初始值高8位
MOV DX,DMA+0CH ;先/后触发器端口
OUT DX,AL ; 清先/后触发器端口
MOV DX,DMA+0BH ;方式寄存器端口
MOV AL,88H
OUT DX,AL ;设通道0方式字,数据块读增量
MOV DX,DMA+0CH
OUT DX,AL ; 清先/后触发器端口
MOV DX,DMA+0BH ;方式寄存器端口
MOV AL,85H
OUT DX,AL ;设通道1方式字,数据块写增量
MOV DX,DMA+0CH
OUT DX,AL ; 清先/后触发器端口
MOV DX,DMA+0FH ;主屏蔽字端口
MOV AL,0CH
OUT DX,AL ;屏蔽通道2、3
MOV DX,DMA+0CH
OUT DX,AL ; 清先/后触发器端口
MOV DX,DMA+08H ; 控制寄存器端口
MOV AL,01H
OUT DX,AL ;设控制字,允许存储器到存储器,启动8237A工作MOV DX,DMA+0CH
OUT DX,AL ; 清先/后触发器端口
MOV DX,DMA+09H ;请求寄存器端口
MOV AL,04H
OUT DX,AL ;向通道0发出DMA请求
MOV DX,DMA+08H ; 读状态寄存器端口
AA1:IN AL,DX
JZ AA1
MOV DX,DMA+0CH
OUT DX,AL ; 清先/后触发器端口
MOV DX,DMA+09H ;请求寄存器端口
MOV AL,00H
OUT DX,AL ;通道0撤销DMA请求
MOV DX,DMA+0CH
OUT DX,AL ; 清先/后触发器端口
MOV DX,DMA+08H ; 设控制字
MOV AL,04H
OUT DX,AL ;禁止8237A工作
HLT