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

MOV DS,AX

MOV DX,OFFSET ADINT MOV AL,0AH MOV AH,25H INT 21H POP DS

;主程序,开放IRQ2中断 MOV DX,021H IN AL,DX

AND AL,1111 1011B OUT DX,AL STI ;开中断 MOV DX,84H MOV AL,05H

OUT DX,AL;启动0809 HLT;等待中断 ;中断服务程序

ADINT PROC NEAR IN AL,DX MOV BUF,AL PUSH DX

MOV DX,20H MOV AL,20H

OUT DX,AL POP DX IRET

ADINT ENDP

17.ADC0809和8255A连接如图8.81所示。8255A的A口工作于方式1输入。当ADC0809转换结束时,EOC的上升沿触发单稳态电路DW,DW输出的负脉冲作为选通脉冲,将ADC0809的输出数据锁存进A口。用中断方式依次将IN7~IN0采样一遍,放到BUFFER开始的数据缓冲区,试编程。设8255A口地址为200H~203H,8259的地址为020H、021H,IRQ2中断类型号为0AH,8259已初始化。

图8.81 解:

8255的PC7为1输出启动信号,PC0~PC2实现通道选择,A/D转换结束信号可从PC4获得,PC3为1输出中断。 ;主程序

STACK SEGMENT STACK STA DB 20 DUP(?) TOP LABEL WORD STACK ENDS DATA SEGMENT

BUFFER DB 8 DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX

MOV SP,OFFSET TOP

PUSH DS ;中断向量送中断向量表 MOV AX,SEG ADINT MOV DS,AX

MOV DX,OFFSET ADINT MOV AL,0AH MOV AH,25H INT 21H

POP DS

MOV DX,021H ;开放IRQ2中断 IN AL,DX

AND AL,1111 10llB OUT DX,AL

MOV DI,OFFSET BUFFER ;缓冲区起始地址送DI STD ;DF置1

STI ;开中断 MOV CX,8 MOV BL,90H

NEXT:MOV DX,202H

MOV AL,BL

OUT DX,AL ;启动0809 AND AL,7FH OUT DX,AL

WAIT:IN AL,DX TEST AL,10H

JNZ WAIT ;检测PC4状态,非0,A/D转换没结束 MOV AL,07H MOV DX,203H

OUT DX,AL ;PC3置1,输出中断 HLT

INC BL LOOP NEXT

CLI ;采集完8口,结束 MOV AH,4CH INT 2IH ;中断服务程序

ADINT PROC NEAR

PUSH DX

MOV DX,200

IN AL,DX ;读取转换结果 STOSB ;送指定内存单元 MOV DX,20H ;发中断结束命令 MOV AL,20H OUT DX,AL POP DX

IRET

ADINT ENDP CODE ENDS

END START

18.ADC的引线图及工作时序如图8.82所示。试将此ADC与8255相连接,并编写包括初始化程序在内的、变换一次数据并将数据放在DATA中的程序。

图8.82

19. 试利用8255A、ADC0809设计一 IBM PC机 A/D转换接口卡,8255A的地址为02C0H~02C3H,由系统板上的8253定时器0控制每隔5秒采样一遍ADC0809的8路模拟输入,并将采集的数字量显示于CRT屏幕上。

解:

20.简述82380DMA控制器与8237的兼容性。

21.82380DMA控制器中,如果设置为全循环优先级,通道2最低优先级,通道4最低优先级。则开始时各通道的优先顺序是怎样排列的?若通道2完成DMA服务后,各通道的优先顺序又是如何排列的?

22.简述82380中断控制器PIC的功能。