汇编语言与微机接口技术作业6章(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业:
课本6.5 6.7
第6章补充题参考答案
补充题1:初始化8259A控制器,系统中有一片8259A,中断请求用电平触发,中断类型号为60H~67H,特殊全嵌套方式,不用缓冲方式,采用中断自动结束方式。8259A端口地址为93H/94H。编写其初始化程序。
答:
MOV AL, 1BH ;设置ICW1(中断请求信号采用电平触发方式,单片,
OUT 94H, AL
MOV AL, 60H ;设置ICW2(将中断类型码高5位指定为01100)
OUT 93H, AL
MOV AL, 13H ;设置ICW4(用特殊全嵌套方式;用中断自动结束方式;采用非缓冲方式,工作于8088/8086系统)
OUT 93H, AL
补充题2:开关K4的信号输入到中断控制器8259A的IR2,当K4开关合上瞬间,产生中断,在中断服务程序中完成读取开关K0~K3的状态,并在7段数码管上显示数字或符号。设输出接口的地址为3F2H,输入接口地址为3F3H。当开关K0~K3的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’,8259A的端口为3F0H和3F1H.设其中断号为08H~0FH。1. 设计相关的接口电路,包括8259A的连接。
2. 编写主程序完成初始化8259A和相关中断向量的设置。
3. 编写中断服务程序。
答:
1. 接口电路图
2. 初始化程序:
INPORT EQU 03F3H
OUTPORT EQU 03F2H
PORT8259 EQU 03F0H
……
;设置数码管显示数据
Seg7 DB 3FH,06H,
5BH,4FH,66H,6DH,
7DH,07H,7FH,67H,77H,
7CH,39H,5EH,79H,71H
……
MOV AL, 13H ;设置ICW1(中断请求信号采用边沿触发方式,单片,
MOV DX, PORT8259
OUT DX, AL
MOV AL, 08H ;设置ICW2(将中断类型码高5位指定为00001)
MOV DX, PORT8259+1
OUT DX, AL
MOV AL, 03H ;设置ICW4(用一般全嵌套方式;用中断自动结束方式;
;采用非缓冲方式,工作于8088/8086系统)MOV DX, PORT8259+1
OUT DX, AL
主程序中中断向量设置:
CLI
PUSH DS
XOR AX, AX
MOV DS, AX
MOV BX, n ; 中断类型号
MOV CL,2
SHL BX, CL ;向量表偏移地址=nX4
MOV AX, OFFSET MY_INT
MOV [BX], AX
MOV AX, SEG MY_INT
MOV [BX+2], AX
POP DS
STI
3. 中断服务程序
MY_INT PROC FAR
PUSH AX
PUSH BX
PUSH SI
STI
;中断服务程序:显示K0-K3开关状态
LEA BX, Seg7
MOV AH, 0
MOV DX,INPORT
IN AL, DX
AND AL, 0FH
MOV SI, AX
MOV AL, [BX+SI]
MOV DX, OUTPORT
OUT DX, AL
CLI
POP SI
POP BX
POP AX
MOV AL, 20H ; EOI 命令,00100000B MOV DX, PORT8259
OUT DX, AL ; 写入OCW2
IRET
MY_INT ENDP