微型计算机技术课后答案第六章-第八章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.1 分类说明8086CPU有哪几种中断?
答:8086CPU中断源可分为内部中断和外部中断,内部中断有溢出中断、除法出错中断、INTn指令中断、断点中断、单步(陷阱)中断;外部中断有可屏蔽中断INTR\不可屏蔽中断NMI。

6.2 简述 8086可屏蔽中断的响应过程。

可屏蔽中断INTR接受来自普通外设的中断请求信号(一般使用可编程中断控制器8059A来管理此类外设的中断请求),当该信号线有效时,CPU将根据中断允许标志IF的状态来决定是否响应。

如果IF=0,则表示INTR线上中断被屏蔽或禁止,CPU将不理会该中断请求而处理下一条指令。

由于CPU并不锁存INTR信号,INTR信号必须保持有效状态,直到接受到响应信号或撤销请求为止。

如果
IF=1,则表示INTR线上的中断开放,CPU在完成现在正在执行的指令后,识别该中断请求,并进行中断处理。

6.5 中断应答时序如图6.2所示,说明前后两个INTA周期的任务。

第一个INTA表示对中断请求的响应,用于通知中断请求设备,第二个INTA用于将中断类型号送数据总线的低8位上。

期间LOCK信号用于保证在中断响应过程中不会被其他CPU占用总线而导致中断响应失败。

6.9 某外设中断类型号为10H,它的中断服务程序的入口地址为1020H:3FC9H,求其向量地址并具体描述中断向量的各字节在存储器中的存储情况。

解:向量地址:10H*4=40H
[0040H]、[0041H]、[0042H]、[0043H]依次存放C9H、3FH、20H、10H
6.10 某外设的中断服务子程序名称为INT_PROC,其中断类型号为18H,试编写一程序段将该外设的中断向量装入到中断向量表中。

解:向量地址:18H*4=60H
PUSH DS
MOV AX,0
MOV DS,AX
MOV WORD PTR [0060H],OFFSET INT_PROC
MOV WORD PTR [0062H],SEG INT_PROC
POP DS
HLT
7.2 简述CPU与外围设备交换信息的过程。

解:(1)CPU向设备所在地接口地址发送读写控制;
(2)接口向设备发送数据或状态信息;
(3)设备与接口交换数据或状态;
(4)接口与CPU交换数据或状态;
7.4 某输入设备可随时为CPU提供8位数字输入数据。

请使用74LS244芯片作为接口电路,设计该设备与8086CPU 的连接图。

7.5某8位数字输出设备在其BUSY信号为低时可接收计算机发来的数据。

如果将该设备连接到8086CPU的系统总线上,请采用74LS373作为接口电路,设计其连接图。

7.6 某8位输入设备的接口电路中,数据口地址为200H,状态口地址为201H,状态口中第6位为1表示数据已准备好。

试编写程序从该输入设备获得100个字节。

MOV DX,201H
POLL: IN AL,DX
TEST AL,0100000B
JZ POLL
DEC DX
MOV CX,100
LL: IN AL,DX
MOV [1000H],AL
DEC CX
JZ LL
7.9图为一个LED接口,写出使8个LED灯自右至左依次发光2秒的程序。

MOV AL,11111110B
MOV CX,8
LOP: OUT 20H,AL
CALL DELAY2S
ROL AL,1
LOOP LOP
7.10 简述DMA方式数据传送的工作过程(1)外设准备好,要求进行DMA传送时,外设向DMA控制器发出DMA 传送请求信号DREQ;(2)DMA控制器收到请求后,向CPU发出总线请求保持信号HOLD,向CPU申请占用总
线;(3)CPU在完成当前总线周期后会立即对HOLD信号进行响应(响应包括两个方面:一方面是CPU将数据总线、地址总线和相应的控制总线信号线均置为高阻态,放弃对总线的控制权;另一方面,CPU向DMA控制器发出“总线响应”信号(HLDA));(4)DMA控制器收到HLDA信号后,就获得总线的控制权开始控制总线,并向外设发出DMA响应信号DACK,进入DMA工作方式;(5)DMA控制器送出地址信号和相应的控制信号,实现内存与外设或内存与内存之间的直接数据传送;(6)规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。

CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期开始重新控制总线,继续执行原来的程序。

8.1根据接口电路的功能,简要说明I/O接口电路应包括哪些电路单元?
可编程接口一般应具备以下基本电路单元:输入/输出锁存器与缓冲器、命令寄存器和状态寄存器、地址译码电路、读/写控制逻辑、中断控制逻辑。

8.2根据8255A工作方式于方式0和方式1的区别。

在方式0时,不能采用中断的方法与CPU交换信息,但可用应答查询方式进行数据传送。

通常以A口和B口作为数据口,而用C口的某些位作为查询方式的控制与状态信号
线使用。

C口中哪条引线充当何种应答功能,可以由用户来指定。

方式1可以工作于查询传送方式和中断传送方式,芯片规定了PC口中6条线作为PA 口和PB口同外设之间的联络信号线以及同CPU之间的中断请求线。

8.3说明8255A在方式1输入时的工作过程。

当外设有数据需要输入时,将数据送到8255A接口上,STB 变为有效,数据锁存入8255A,同时IBF变有效。

STB 由低变高时,若8255A片内中断允许信号INTE高电平有效,则8255A的PC3(或PC0)位INTR变高电平有效,向CPU发出中断请求。

CPU响应中断后,在中断服务程序中CPU执行到从8255A端口读取数据指令时,产生RD 有效信号。

一方面将8255A锁存的数据读入到CPU中并延迟一段时间,撤销向CPU申请中断的信号INTR,使其无效,另一方面利用RD 信号的上升沿使IBF复位。

8.4说明8255A在方式1输出时的工程过程。

在方式1下,若利用中断方式进行A口或B口的数据输出,则数据输出过程须从CPU响应中断开始。

进入中断服务程序后,CPU向指定接口写数据,IOW 将数据锁存在接口之中。

当数据被锁存并由端口信号线输出时,8255A就消除INTR信号并使OBF 通知外设接收数据。

一旦外设将
数据接收,就送出一个有效的ACK 脉冲,该脉冲使 OBF 无效,同时产生一个新的中断请求,请求CPU向外设输出下一个数据。

8.5 8255A的三个端口在使用时有什么差别?
端口A或B作为输入输出的数据端口(端口A还可以作为双向数据端口),而端口C作为控制或状态信息的端口,它在"方式"字的控制下,可以分成两个4位的端口。

每个端口包含一个4位锁存器。

它们分别与端口A和B配合使用,可用以作为控制信号输出,或作为状态信号输入。

8.17 8255A用作查询式打印机接口的电路连接和信号时序如图8.8所示,8255A的端口地址为90H~93H,工作方式0。

试编写程序段,将数据区中变量DATA的八位数据送打印机打印。

MOV AL 10000001B
OUT 90H,AL
MOV AL,00001101B
OUT 93H,AL
LOP: IN AL,92H
TEST AL,00000100B
JNZ LOP
MOV AL,DATA
OUT 90H,AL
MOV AL,00001100B
OUT 93H,AL
NOP
NOP
NOP
MOV AL,00001101B
OUT 93H,AL
HLT
8.34一个采用查询方式传送的输入接口,其数据端口地址为160H,状态端口地址为161H,D7为数据就绪位。

利用上述接口从输入设备上输入1000B的数据送存储器中BUFFER缓冲区,试画出流程图,编写控制程序段。

MOV CX,5000
XOR SI,SI
L0:
MOV DX,201H
IN AL,DX
L1:
TEST AL,01H
JNE L1
MOV AL,BUFFER[SI]
MOV DX.200H
OUT DX,AL
INC SI
LOOP L0
HLT
8.35用一片8255A控制一组红、绿、黄灯,如附图8.8所示,反复检测S1、S2,要求由S1、S2的“闭合”和“断开”控制红、绿、黄3灯的点亮。

当S1合,S2合时,黄灯亮;当S1合,S2断时,红灯亮;
当S1断,S2合时,绿灯亮;当S1断,S2断时,黄灯亮。

试根据上述条件编写初始化及控制程序(设8255A端口地址为80H~83H)。

MOV AL,10010000B
OUT 83H,AL
L0:
IN AL,80H
JNE L2
TEST AL,00000010B
JNE L3
MOV AL,00000000B
OUT 82H,AL
OUT 82H,AL
MOV AL,00000101B
OUT 82H,AL
JMP L5
L3:
MOV AL,00000001B
OUT 82H,AL
MOV AL,00000010B
OUT 82H,AL
MOV AL,00000100B
OUT 82H,AL
JMP L5
L2:
TEST AL,00000010B
JNE L4
MOV AL,00000000B
OUT 82H,AL
MOV AL,00000011B
OUT 82H,AL
MOV AL,00000100B
OUT 82H,AL
JMP L5
L4:
OUT 82H,AL
MOV AL,00000010B
OUT 82H,AL
MOV AL,00000101B
OUT 82H,AL
L5:
JMP L0
8.43 8255A的PA口与8个LED管连接如附图8.14,用8253作定时器控制8个LED管自下向上闪动,8253连接如附图8.15,闪动频率为10次/秒,8253的端口地址为40H~43H,8255A的端口地址为60H~63H,其控制程序片段如下。

主程序:
MOV AL,80H (1)
OUT 63H,AL (2)
MOV AL,34H (3)
OUT 43H,AL (4)
MOV AL,0ABH (5)
OUT 40H,AL (6)
MOV AL,61H (7)
OUT 40H,AL (8)
MOV AL,7FH (9)
OUT 60H,AL (10)
STI
LOP: HLT
JMP LOP
中断服务程序:
INTROUT PROC FAR (11)(设CS=1280H)
ORG 2000H (12)
……
ROR AL,1 (13)
OUT 60H,AL (14)
……
IRET (15)
试问:
(1)从程序中的数据,计算8253中CLK0的时钟周期Tclk0以及该控制程序中所使用的中断服务程序的中断类型号n的值,中断向量表如附图8.16所示。

输入次数为61A8H=25000次,Tclk0=25000÷10=2500秒=41min
由CS=1280H知,n=34H÷4=0DH
(2)若闪动频率改为1次/分,且为自上到下闪动,可采用如附图8.17所示的串接形式,中断类型号为(1)中计算
值加1,请对程序做最小限度的更改,以满足上述要求(计数通道0工作不变)。

在(8)后插入
MOV AL,74H
OUT 43H,AL
MOV AL,58H
OUT 41H,AL
MOV AL,02H
OUT 41H,AL
8.44 8086CPU通过8255A同发光二极管LED0~LED7不断显示对应开关S0~S7的通断状态。

要求:
(1)S0~S7的状态每隔30秒改变一次,把每次变化的状态记录在2000H:1000H开始的内存单元中。

(2)S接通时,对应的二极管熄灭,S断开时,对应的对应的二极管发亮(即S0断开,LED0发亮;S0接通,LED0熄灭)。

(3)连续工作24小时结束。

用8086汇编语言编写的控制程序如下,请填上程序中空缺的部分(包括指令、操作数或标号,初始化时无关项置“0”)。

START:
MOV MOV DX,AL
MOV MOV DS,AX
LOP:
MOV LOP1:
MOV LOP2:
MOV DX,170H AL,DX
MOV [BX],AL
INC MOV CALL DELAY30S
LOOP HLT
延时半分钟子程序
DELAY30S PROC
MOV BX,3000
DELAY:
MOV CX,2800
WAIT:
LOOP WAIT
DEC BX
JNZ DELAY
DELAY30S ENDP
8.6 说明8253的方式2与方式3的工作特点。

方式2
一次写入计数值多次计数。

GATE=1启动计数,重复启动重复计数。

计数过程中改变计数值,下次启动按新的计数值计数。

计数值为N,计数N次
方式3
写入计数值开始计数,周期性计数。

N=偶数,正负半周
=N/2;N=奇数,正半周=(N+1)/2,负半周=(N-1)/2。

计数过程中GATE=0,暂停计数;GATE=1,重新计数。

计数过程中改变计数值,下一周期按新的计数值计数。

8.7说明8253的方式1与方式5的工作特点。

方式1
一次写入计数值多次计数。

GATE=1启动计数,重复启动重复计数。

计数过程中改变计数值,下次启动按新的计数值计数。

计数值为N,计数N次
方式5
一次写入计数值多次计数。

GATE上升沿启动计数,重复启动重新计数。

计数过程中改变计数值,下次启动按新的计数值重新计数。

计数值为N,计数N+1次。

8.8 8253在写入计数初值时,二进制计数与十进制计数有什么区别?
答:采用二进制计数时,将计算所得的数值采用二进制、十进制或十六进制表示都可以;采用十进制计数时,必需将计算所得的数值写成BCD码表示。

8.21 8253通道0按方式3(方波发生器)工作,时钟CLK0的频率为1MHz,要求输出方波的频率为50kHz,此时写入的计数初值应为多少?输出方波的“1”和“0”各占多少时间?
解:
计数初值=1M/50K=20。

1占时10微秒,0占时10微秒。

8.22 8253某通道的时钟频率为1MHz,按BCD方式计数,若写入的计数初值为0080H,则该通道的定时时间是多少?
解:
定时时间=1/1M*8=8微秒
8.24 8253的计数通道0的连接如附图8.4,试回答:
(1)计数通道0工作于何种方式,并写出工作方式名称;方式2:频率发生器方式
(2)写出计数通道0的计数初值(要列出计算式)。

计数初值=1000/0.4=2500
8.25若用8253计数器对设备的转轴的旋转速度进行测试,接口电路如附图8.5所示。

若与轴相连的转盘上均匀地钻有每圈50个孔,当轴旋转时,通过光电转换,每通过一个小孔,产生一个正脉冲,当轴旋转一圈,就会有50个脉冲通过CLK输入8253计数器进行计数。

假设此转轴的转速范围为50~1000转/秒,并设8253的端口地址为64H~67H。

(1)给出一个算法,将测量转轴的转速转换为计量脉冲的个数。

转速=频率÷脉冲个数×50
若用计数器0对脉冲计数,用计数器1作为定时器。

设CLK1频率为200kHz,用定时100ms来计数。

请详细说明计数器0、1的工作方式控制字和计数初值,并写出8253的初始化程序。

计数器0:方式1 50
计数器1:方式2 2000
MOV AL,00010010B
OUT 67H,AL
MOV AL,01110100B
OUT 67H,AL
MOV AL,32H
OUT 64H,AL
MOV AL,0D0H
OUT 65H,AL
MOV AL,07H
OUT 65H,AL
8.45让8253计数器0用1ms脉冲信号源作CLK0,且工作在方式3定时1分钟,用8255的PC6提供GATE0,在定时期间,由PC7控制的灯亮(PC7=1,亮),对OUT0的检测通过PC0进行,定时结束灯灭,先画出脉冲信号源、
8253、8255的连接关系图,再编写程序段(8253,8255A 采用PC机上的端口地址)。

解:
MOV AL,81H
OUT 63H,AL ;8255方式字
MOV AL,36H
OUT 43H,AL
MOV AL,60H
OUT 40H,AL
MOV AL,0EAH
OUT 40H,AL ;8253计0初始化
MOV AL,0DH
OUT 63H,AL
MOV AL,0FH
OUT 63H,AL ;灯亮
LOP1: IN AL,62H
SHR AL,1
JC LOP1
LOP2: IN AL,62H
SHR AL,1
JNC LOP2 ;等待半分低电平结束
MOV AL,0EH
OUT 63H,AL ;灯灭 HLT。

相关文档
最新文档