微机原理黄冰版--作业答案 下载本文

MOV AH, 25H

MOV AL, 0AH ; 未知 INT 21H POP DS

MOV DX, 021H ; 读取中断屏蔽命令字 IN AL, DX

AND AL, 0FBH ; 0FBH = 1111 1011B,开放IRQ2中断 OUT DX, AL ; 送回IMR STI ; 开中断

; 中断服务程序

INTPR: MOV DX, 200H ; 从200H端口读入数据

IN AL, DX OR AL, AL JNP NEXT MOV DX, 201H ; 偶校验,输入的数据输出到端口201H OUT DX, AL JMP DONE

NEXT: MOV DL, ’N’ ; 非偶校验,显示“N”,并关闭IRQ2中断

MOV AH, 2 ; 显示“N” INT 21H MOV DX, 021H ; 关闭IRQ2中断 IN AL, DX

OR AL, 00000100B OUT DX, AL

DONE: IRET

17.中断与异常有何异同?

18.32位机的异常分为几类?

19.中断描述符与一般段描述符有何不同?

20.中断描述符表与中断向量表有何异同?

第8章 常用接口芯片

1.假定8255A的地址为0060H~0063H,试编写下列各种情况的初始化程序:

(l)将A组和B组设置为方式0,端口A和C作为输入口,端口B作为输出口。 (2)将A组设置为方式2,B组设置为方式1,端口B作为输出口。

(3)将A组设置为方式1,且端口A作为输入,PC6和PC7作为输出;B组设置为方式1,且端口B为输入口。

2.IBM PC/XT机中8255A与系统总线的连接如图8.74所示,试分析8255A的 A口、B口、C口及控制寄存器的基本地址。

解: 图8.74

图8.75

A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 1 1 × × × × × A口:060H B口:061H C口:062H

控制寄存器:063H

3.某外设引脚如图8.75所示,当BUSY为低电平时,表示外设可以接收数据。外设通过8255A接到系统总统上,CPU利用查询方式将BUFFER开始的100字节数据输出。

(1)规定8255A的口地址为ECH—EFH,试画出8255A和系统总线及外设的连接图。

(2)编写包括8255A初始化程序在内的输出程序。

4.图8.76为开关状态检测电路和继电器控制电路,当开关闭合时,将驱动对应的继

图8.76

电器(有驱动电流流过继电器线圈);若某开关处于断开状态,则无电流流过继电器线圈。系统每隔10ms检测一次开关状态和对继电器作相应控制,定时控制由8253完成,试完成对8255A的初始化编程(初始状态所有继电器的线图都无电流流过)和检测控制程序(假定8255A地址为3COH~3C3H)。

5.图8.23的8253应用实例中,若通道0和通道1都采用二进制计数,扬声器的发声频率为500HZ,问程序应作何变动? 解: ;主程序

MOV AL,15H(改为14H) ;计数器0初始化 OUT 43H,AL

MOV AL,50H(改为50) OUT 40H,AL

STI ;开中断 LOP:HLT ;等待中断 JMP LOP ;中断服务程序

INIP:MOV AL,01H ;GATE1置1,启动计数 OUT 80H,AL

MOV AL,77H(改为76H);计数器1初始化 OUT 43H,AL

6

MOV AL,00H(改为0F0H);1.4×10/500=2800=0AF0H OUT 41H,AL

MOV AL,07H(改为0AH) OUT 4lH,AL

CALL DLSS ;延时5秒

MOV AL,0 ;GATE1置0,停止计数 OUT 80H,AL IRET

6.若8253可利用8088的外设接口地址D0D0H~D0D3H,试画出电路连接图。若加到8253上的时钟信号为2MHz,

(1)若利用计数器0、1、2分别产生周期为10?S的对称方波以及每1S和10s产生一个负脉冲。试说明8253如何连接并编写包括初始化在内的程序。

(2)若希望利用8088程序通过接口控制GATE,当CPU使GATE有效开始,20?S后在计数器0的OUT端产生一个正脉冲,试设计完成此要求的硬件和软件。 解: (1)

①产生周期为10?s的对称方波,计数器:0,工作方式:方式3,初值:10?S=0.1MHZ,2/0.1=20 MOV AL,00010111B MOV DX,0D0D3H OUT DX,AL MOV AL,20H MOV DX,0D0D0H OUT DX,AL

②每1S产生一个负脉冲,计数器:0、1,工作方式:3、2,初值:200、10000

MOV AL,00110111B;计数器0 MOV DX,0D0D3H OUT DX,AL MOV DX,0D0D0H MOV AL,00H OUT DX,AL MOV AL,02H OUT DX,AL

MOV AL,01110101B;计数器1 MOV DX,0D0D3H OUT DX,AL MOV DX,0D0D1H MOV AL,00H

OUT DX,AL OUT DX,AL

③每10S产生一个负脉冲,计数器:0、1,工作方式:3、2,初值:2000、10000

MOV AL,00110111B;计数器0 MOV DX,0D0D3H OUT DX,AL MOV DX,0D0D0H MOV AL,00H OUT DX,AL MOV AL, 20H OUT DX,AL

MOV AL,01110101B;计数器1 MOV DX,0D0D3H OUT DX,AL MOV DX,0D0D1H MOV AL,00H OUT DX,AL OUT DX,AL

(2)8255控制计数器0的GATE信号,OUT0接反相器,工作方式:方式5,初值:20?S=0.05MHZ,2/0.05=40

MOV AL,00011011B MOV DX,0D0D3H OUT DX,AL MOV AL,40H MOV DX,0D0D0H OUT DX,AL

7.若加到8253上的时钟频率为0.5MHz,则一个计数器的最长定时时间是多少?若要求10分钟产生一次定时中断,试提出解决方案。

8.假设一片 IBM PC机I/O卡的8253连到一个1KHz的时钟,用该8253以BCD格式保持一天中的时间,精度为秒。在DATA1、DATA2、DATA3(时、分、秒)等字节装入当前时间后,启动8253开始计时。试编写一个8253的初始化程序和一个在每秒结束时修改时间的中断眼务程序。(8253的地址为02C0H~02C3H)。 说明;8253产生的中断请求信号连接到PC总线的IRQ2。

9.设有某微机控制系统,采用定时器8253产生定时中断信号。CPU响应中断后更执行数据采集、数字滤波和相应的控制算法,以控制输出。如图8.77所示。采用两个计数器串联的方法实现定时控制。一旦定时时间到,OUT1信号由高变低,经反相后送IRQ2。IRQ2的中断类型号为0AH,中断处理程序首址存储在28H~2BH。8253端口地址为230H~233H。试编制8253的初始化及设置中断处理程序首地址程序段。

图8.77