微机原理与接口技术习题答案10章_微机原理与接口习题
微机原理与接口技术习题答案10章由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“微机原理与接口习题”。
第10章 定时/计数器8253应用设计
1.试分析 8255A方式0、方式1和方式2的主要区别,并分别说明它们适合于什么应用场合。
答:方式0是基本的输入/输出,端口A、B、C都可以作为输入输出端口。适用于CPU与非智能I/O设备的数据传输;
方式1是有联络信号的输入/输出,端口A、B都可以设定成该方式,此时三个端口的信号线分成了A、B两组,PC7~PC4用作A组的联络信号,PC3~PC0用作B组的联络信号。适用于高速CPU与低速I/O设备的数据传输;
方式2是双向传输,只有A组端口可以设定成该方式,PC6~PC7用作输出的联络信号,PC4~PC5用作输入的联络信号,PC3用作中断请求信号。适用于双机之间数据的并行传送。
2.8255A的A组设置成方式1输入,与CPU之间采用中断方式联络,则产生中断请求信号INTRA的条件是 STBA= ,IBFA=,INTEA=。
3.如果8255A的端口地址为300H~303H,A组和B组均为方式0,端口A为输出,端口B为输入,PC3~PC0为输入,PC7~PC4为输出,写出8255A的初始化程序段;编程实现将从端口C低4位读入的值从高4位送出。解: MOV DX,303H
MOV AL,10000011B OUT DX,AL MOV DX,302H IN AL,DX MOV CL,4 SHL AL,CL OUT DX,AL 4.在实际应用中经常需要检测设备的状态,并进行指示。在8086最小方式系统下,有一片8255A,其分配的端口地址为8F00H~8F07H中的奇地址,外部设备产生的状态有16个(K15~K0),要求采用4个发光二极管来指示开关量中“1”的个数。(1)画出8255A - 0 - 的连接图;(2)编写程序段实现连续检测并显示。解:(1)
8086D8~D158255D0~D7RDRDWRA2A1M/IOBHEA15A11A10A9A8A0A14A13A12A7A6A5A4A3PA0PA1......WRA1PA716位开关量(K15~K0)A0PB0PB1PB7......VCCCSPC3PC2PC1PC0
(2)MOV DX,8F07H
MOV AL,10010010B;端口A、B方式0输入,端口C方式0输出 OUT DX,AL NEXT:
L2:
MOV DX,8F03H;从端口B读取高8位开关量 IN AL,DX XCHG AL,AH MOV DX,8F01H;从端口A读取低8位开关量 IN AL,DX MOV BX,AX XOR AL,AL MOV CX,16 CLC SHL BX,1
- 1 -
L1:
JNC L1 INC AL LOOP L2 MOV DX,8F05H;从端口C送出 OUT DX,AL JMP NEXT;进行下一次检测
5.利用IBM PC系统机的总线槽,开发由一片8255A构成的子系统,8255A端口地址为260H~263H,编程实现产生如图10.20所示的8个信号(各个信号的节拍不必严格相等)。
Y0Y1Y7„
图10.20 要求产生的信号波形
解:8355A与IBM PC机总线的连接框图如下:
可将8255A的端口A作为要产生的信号的输出端口,设定为方式0输出,端口B和端口C不做使用,均设定为方式0输出。程序段如下:
MOV
DX,263H
;设定8255A的工作方式
- 2 -
MOV
AL,10000000B
OUT
DX,AL
MOV
DX,260H
;产生指定信号
XOR
AL,AL
OUT
DX,AL REP:
MOV
AL,80H
MOV
CX,7 REP1:
OUT
DX,AL
SAR
AL,1
LOOP REP1
MOV
CX,8 REP2:
SHL
AL,1
OUT
DX,AL
LOOP REP2
JMP
REP
6.在实际应用中,经常会遇到要求输入多个数据量,这时需要用到多路开关,如图10.21表示八选一的逻辑框图及其真值表。现有8组16位开关量数据(无符号数),要求通过一片8255A(端口地址为260H~263H)分时输入到CPU(8088最小方式系统)中,并找出它们中的最大值,并通过4个发光二极管指示其序号(灯亮表示“1”)。画出8255A的连接图,并编程实现。
解:由于开关量是16为数据,故可以将8255A的PA端与PB端设定为方式0,分别读取开关量的低八位和高八位,以PC低三位端口的控制八选一电路的输出依次从X0到X7,- 3 -
八选一x0x1x2x3x4x5x6x7ys0s1s2s2s1s00 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1yx0x1x2x3x4x5x6x7图10.21 八选一逻辑电路使用PC端口的高八位输出最大开关量的序号(该序号为1~8),控制发光二极管的亮灭以码指示序号。连接图如下:
程序段如下:
MOV DX,263H
MOV AL,10011010B;设定工作方式,PA,PB均工作于方式0,PA、PB为输入,PC为输出
OUT
DX,AL
MOV
CX,8
XOR
BX,BX
MOV
SI,0
;SI表示输入开关量的序号 ST1:
MOV
DX,262H
OUT
DX,SI
MOV
DX,260H
;将开关量数据的低八位写入AL
IN
AL,DX
MOV
DX,261H
;将开关量数据的高八位写入AH
IN
AH,DX
- 4 -
CMP
BX,AX
JA
NEXT
MOV
BX,AX
;将当前最大值保存在BX中
INC
SI
PUSH
SI
;将当前最大值的序号压栈 NEXT:
INC
SI
LOOP
ST1
POP
SI
XOR
AX,AX
MOV
AX,SI
MOV
CL,4
ROL
AL,CL
MOV
DX,262H
OUT
DX,AL
;最大值的序号出栈
;将最大值的序号(4位)移至AL的高四位 的高四位输出最大值序号 - 5 -
;PC