微机原理与接口技术课后答案详解(黄玉清版)(7)

2018-11-27 10:09

【答【答】】如果发出中断请求信号时,正好碰到CPU执行封锁指令,由于CPU封锁指令和下一条指令合在一

起看成一个整体,所以必须等到下一条指令执行完后才响应中断。如果是执行往寄存器传送数据 指令,那一定要等下一条指令执行完后,才允许中断。无总线请求;CPU执行完当前指令。

8.12一个可屏蔽中断响应时,CPU要执行哪些读/写周期?对一个软件中断又如何? 【答】【答】当一个可屏蔽中断被响应时,cpu实际执行的总线时序如下:

第一步:执行2个中断响应总线周期,之间用2至3个空闲状态搁开。被响应的外设接口在第 二个中断响应总线周期中通过低8位数据线送回一个字节的中断类型码。cpu接收中断类型码,将 它左移两位后,成为中断向的起始地址,存人暂存寄存器。

第二步:执行一个总线写周期,把标志寄存器的值推入堆栈。

第三步:中断允许标志IF和单步标志TF置成0,禁止了中断响应过程中有其他可屏蔽中断进 入,还禁止了中断处理过程中出现单步中断。

第四步:执行一个总线写周期,在这个周期内,将CS的内容推入堆栈。 第五步:执行一个总线写周期,在这个周期内,将IP的内容推入堆栈。

第六步:执行一个总线读周期,在这个周期内,把中断向量前两个字节作为中断处理子程序入 口地址的偏移量送到IP寄存器中。

第七步:执行一个总线读周期,在这个周期中,把中断向量后两个字节作为中断子程序入口地 址的段值送到CS寄存器中。

如果是可屏蔽中断或者软中断,则跳过第一步,而从第二步开始按次序执行到第七步。

8.13软件中断有哪些特点?在中断处理子程序和主程序的关系上,软件中断和硬件中断有什么不同之

处?

【答【答】】(1)软件中断用一条指令进入中断处理子程序,中断类型码由指令提供。进入中断时,不需

要执行中断响应总线周期,也不从数据总线读取中断类型码。不受中断允许标志IF的影响。 不过,软件中断的一号中断受标志寄存器中另外一个标志既TF的影响,只有TF为1时,才 能执行单步中断。

(2)正在执行软件中断时,如果有外部硬件中断请求,并且是非屏蔽中断请求,那么,会在执 行完当前指令后立即给予响应。 (3)软中断没有随机性。

8.148259A的ICW2设置了中断类型码的哪几位?说明对8259A分别设置ICW2为30H、38H、36H有什

么差别?

【答】【答】8259A的ICW2设置了中断类型为D7-D3位。30H和36H对应的高五位为:00110,表示的中断类

型码相同;而38H的高五位为:00111,与前面的两者不同

8.15试按照如下要求对8259A设置初始化命令字:系统中有一片8259A,中断请求信号用边沿触发方

式,下面要用ICW4,中断类型码为60H、61H、62H……67H,用特殊全嵌套方式,不用缓冲方式, 采用中断自动结束方式。8259A的端口地址为96H、94H。

【答】【答】初始化命令字的过程:

MOVAL,13H

OUI94H,AL;设置ICW1 MOVAL,60H

OUT96H,AL;设置ICW2 MOVAL,13H

OUT96H,AL;设置ICW4

8.16怎样用8259A的屏蔽命令字来禁止IR3和IR5引腿上的请求?又怎样撤消这一禁止命令?设

8259A的端口地址为93H、94H。

【答】【答】从8259A的奇地址端口(93H)进行设置来禁止IR3和IR5引腿上的请求,如下:

INAL,93H;读取屏蔽寄存器OCW1中的数据 ORAL,28H;将IR3和IR5中对应位置1 OUT93H,AL;将OCW1中置入新的数据

撤消这一禁令如下:

INAL,93H;读取屏蔽寄存器OCW1中的数据 ANDAL,0D7H;清除IR3和IR5屏蔽位 OUT93H,AL;恢复原来的屏蔽位

(以上参考答案由黄玉清整理)

习题十并行接口

主要内容:8255的外部特性、内部结构,初始化编程,应用。 10.18255A的3个端口在使用时有什么差别?

【答】(1)端口A对应1个8位数据输入锁存器和1个8位数据输出锁存器/缓冲器。所以,用端

口A作为输入或输出时,数据均受到锁存(与工作方式有关)。(2)端口B对应1个8位数据输入 缓冲器和1个8位数据输出锁存器/缓冲器。(3)端口C对应1个8位数据输入缓冲器和1个8 位数据输出锁存器/缓冲器。这样,当端口C作为输入端口时,对数据不做锁存,而作为输出端口 是,对数据进行锁存。在使用中,端口A和端口B常常作为独立的输入端口或输出端口,端口C则 配合端口A和端口B的工作。具体的讲,端口C常常通过控制命令被分成2个4位端口,每个4位 端口包含1个4位的输入缓冲器和1个4位的输出锁存器/缓冲器,它们分别用来为端口A和端口 B提供控制信号和状态信号。

10.28255A的方式0一般使用在什么场合?在方式0时,如要使用应答信号进行联络,应该怎么办? 【答】方式0的使用场合有两种,一种是同步传送,另一种是查询式传送。在方式0情况下,没有规定

固定的应答信号,所以,这时,将端口A端口B作为数据端口,把端口C的4个数位(高4位或者 是低4位均可)规定为输出口,用来输出一些控制信号,而把端口C的另外4个数位规定为输入口, 用来读入外设的状态。就是这样,利用端口C来配合端口A和端口B的输入/输出操作。

10.3当数据从8255A的端口C往数据总线上读出时,8255A的几个控制信号CS、A1、A0、RD、WR分别是

什么?

【答】CS0、A11、A00、RD1、WR0。

10.48255A的方式选择控制字和置1/置0控制字都是写入控制端口的,那么,它们是由什么来区分的? 【答]】当8255A接收到写入控制口的控制字时,就会对最高位即标志位进行测试。如为1,则将此字

节作为方式选择控制字写入控制寄存器;如为0,则此字节作为对端口C的置1/置0控制来处理。

10.5对8255A设置工作方式,8255A的控制口地址为00C6H。要求端口A工作在方式1,输入;端口

B工作在方式0,输出;端口C的高4位配合端口A工作;低4位为输入。(口地址为80H~83H)

【答】控制字:10110001=B1H

MOVAL,B1H OUT83H,AL

10.6设8255A的4个端口地址为00C0H,00C2H,00C4H,00C6H,要求用置0/置1方式对PC6置1,

对PC4置0。

【答】MOVAL,00001101H;对PC6置1的控制字

MOVDX,00C6H;控制地址DX OUTDX,AL;对PC6置1操作

MOVAL,00001000H;对PC4置0的控制字 OUTDX,AL

10.7编一初始化程序,使8255A的PC5端输出一个负跳变。如果要求PC5端输出一个负脉冲则初始化

程序又是什么情况?

【答】初始化程序:

MOVAL,00001011H;PC5置“1”控制字→AL MOVDX,046H;控制口地址→DL OUTDX,AL;置“1”控制字→控制寄存器 MOVAL,00001010B;PC5置“0”控制字→AL OUTDX,AL;置“0”控制字→控制寄存器 如果要求PC5输入一个负脉冲则再加两条指令:

MOVAL,00001011 OUTDX,AL

10.88255A与打印机的接口如图10-1,8255为工作方式0,试编写初始化程序。若要将DL中的字符

送到打印机打印,编写打印程序。(口地址为60H~63H)

图10-1

【答】工作过程:当主机要往打印机输出字符时,先查询打印机忙信号,如果打印机正在处理一个 字符或在打印一行字符,则忙信号为1,否则为0。 PP:MOVAL,81H;8255工作方式字

OUT63H,AL;A口方式0,输出,C4~7输出,C0~3输入 MOVAL,00001111B;PC7置1,禁止STB OUT63H,AL

LPST:INAL,62H;读C口

ANDAL,01H;查PC0=0?

JNZLPST;忙,等待;不忙,送数 MOVAL,DL;CL中字符送端口A OUT60H,AL;送数到A口

MOVAL,00001110B;将PC7置0(使STB有效) OUT63H,AL;AL=00001100B NOP;延时

MOVAL,00001111;AL=00001111B OUT63H,AL;再使STB(PC7)为1

10.9设一工业控制系统,有四个控制点,分别由四个对应的输入端控制,现用8255A的C口实现该系

统的控制,如图10-2。开关K0~K3打开则对应发光二极管L0~L3亮,表示系统该控制点运行正 常;开关闭合则对应发光二极管不亮,说明该控制点出现故障。编写8255A的初始化程序和这段 控制程序。

【答】参考程序如下:

MOVAL,10000001B OUT63H,AL;8255方式设置

L1:INAL,62H;查询K0状态

TESTAL,01H JZL11

MOVAL,00000001B OUT63H,AL;正常,L0亮 JMPL2

L11:MOVAL,00000000B;不正常,L0灭

OUT63H,AL

L2:INAL,62H;查询K1状态

TESTAL,02H JZL21

MOVAL,00000011B

OUT63H,AL JMPL3

L21:MOVAL,00000010B

OUT63H,AL

L3:INAL,62H;查询K2状态

TESTAL,04H JZL31

MOVAL,00000101B OUT63H,AL JMPL4

L31:MOVAL,00000100B

OUT63H,AL

L4:INAL,62H;查询K3状态

TESTAL,08H JZL41

MOVAL,00000111B OUT63H,AL JMPL1

L41:MOVAL,00000110B

OUT63H,AL

JMPL1;循环查询K0状态

10.108255芯片的A口和B口分别与8个LED灯和8个开关连接好,通过开关控制LED等的开和

闭。8255的端口地址为40,42,44和46H。画出译码电路图,编写初始化程序和控制程序。 【答】参考程序如下:

MOVAL,10000010B OUT46H,AL;8255方式设置

L1:INAL,42H;读B口开关状态

OUT40H,AL;写A口控制LED JMPL1

10.11如图10-3为用一片8255A控制八个8段共阴极LED数码管的电路。现要求按下某个开关,其代

表的数字(K1为1,K2为2,…K8为8)在数码管从左到右循环显示(已有一个延时子程序DELAY 可以调用),直到按下另一个开关。假定8255A的口A、B、C及控制口的地址依次为FFF0H~ FFF3H。编写完成上述功能的程序,应包括8255A的初始化、控制程序和数码管的显示代码表。

图10-3

图10-2

【答】参考程序:

TABDB06H,5BH,4FH,66H,6DH,7DH,07H,7FH;LED数码管1~8的显示段码

PBDB1;位选定义 PCDB0;开关状态暂存

MOVBX,0 MOVDS,BX

MOVBX,OFFSETTAB;段码表指针 MOVAL,10001001B MOVDX,0FFF3H

OUTDX,AL;8255方式设置

L1:MOVDX,0FFF1H

MOVAL,PB OUTDX,AL;位选通 CALLDELAY ROLPB,1;位选转换 MOVDX,0FFF2H INAL,DX;读开关状态 MOVPC,AL;开关状态暂存

MOVCX,8;移位8次查询开关状态,同时按下最高位优先

L2:RCRPC,1

JCL3 MOVAL,8

SUBAL,CL;获得开关位 XALT;查表获得显示段码 MOVDX,0FFF0H OUTDX,AL;显示开关位

L3:LOOPL2

JMPL1

10.128255工作在方式1,输入和输出时中断服务程序各完成什么功能?

【答】输入中断服务程序从8255输入数据寄存器读数据。输出中断服务程序向8255输出数据寄存器写 数据。

10.13有个1ms的脉冲信号源送8253的计数器1利用软件方式扩大定时1秒,每秒钟从8255的PA

口读入一组开关数并送PB口的LED管显示,设8253,8255的端口地址分别为40H~43H和 60H~63H,且只用10条地址线(A0~A9)用于端口译码。请完成:①硬件连接。②编写对8253 计数器1初始化程序段(仅50ms)。③编写对8255的初始化程序以及1秒到后从PA口读入一 个字节开关数并送PB口显示的程序段。 【答】8253计数器1输入为1ms脉冲,输出中断请求。

MOVAL,01100101B

OUT43H,AL;8253计数器1方式设置 MOVAL,10H

OUT41H,AL;计数值为1000,并启动计数器1计数 MOVAL,10010000B


微机原理与接口技术课后答案详解(黄玉清版)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《国际私法(本科必修)》2014年7月期末试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: