视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
微型计算机技术课后答案第六章-第八章
2025-09-26 06:51:28 责编:小OO
文档
 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

MOV AL,00000010B

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:

MOV AL,00000000B

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的端口地址为H~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 H,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下载本文

显示全文
专题