九、接口设计
编写只有一块8259A的8086(8259A的A0接地址总线A1)系统中8259A的初始化程序,8259A的
地址为0200H和0202H,要求:
1) 中断请求输入采用电平触发; 2) 请求的中断类型是32; 3) 采用缓冲器方式;
4) 采用非自动EOI命令结束中断。
解:根据题意各控制字如下:ICW1: 1BH ICW2:20H ICW4:0DH 初始化程序:
MOV DX,0200H MOV AL,1BH OUT DX,AL
MOV DX,0202H MOV AL,20H OUT DX,AL
MOV AL,0DH OUT DX,AL
3、8255A的应用接口电路如图,设8255A控制端口的地址为F7H,试编写程序:判断开关K是
否闭合,若K闭合,使存储器中2000H单元置00H,若K断开,置2000H单元为 FFH。(8分)
MOV AL , 90H OUT F7H, AL IN AL, F4H TEST AL, 80H JZ LP1
MOV [2000H],0FFH JMP LP2
LP1:MOV [2000H],00H LP2:HLT
3.某设备的示意图如下图所示。图中省略了中断控制器8259A和可编程并行接口芯片8255A。
用8253监视一个生产流水线,每通过30个工件,扬声器响6秒钟,频率为2000Hz。设备中包括的芯片有定时/计数器8253、并行I/O芯片8255和中断控制器8259。设8253的端口地址为80H~83H,8255A的地址为60H~63H,(用8255PB1控制GATE0)试编制应用程序。
(提示:工件从光源与光敏电阻之间通过时,在晶体管的发射极上会产生一个脉冲,此
考试试卷第 6 页 共 8 页
脉冲作为8253计数通道1的计数输入CLK1信号,当计数通道1计数满30后,由OUT1输出负脉冲,经反相后作为8259A的一个中断请求信号,在中断服务程序中,启动8253计数通道0工作,由OUT0连续输出2000Hz的方波,使扬声器鸣叫6秒,同时重新计数。)
解:
通道1工作于方式2,采用BCD码计数,计数值为30,方式控制字为00010101B(55H)。 通道0工作于方式3,采用BCD码计数,CLK1接2.5MHZ时钟,要求产生2000Hz的方波则计数初值应为2.5×10/2000=1250,方式控制字为01110111(37H)。
通道0的门控信号GATE0由8255A的Pb1控制,OUT0输出方波信号经驱动滤波后送扬声器。
程序如下:
主程序:
MOV AL,55H ;初始化通道1 OUT 83H,AL
MOV AL,30H ;送计数初值至通道1 OUT 81H,AL
STI ;开中断 LOP: HLT ;等待中断 JMP LOP
中断服务程序:
MOV AL,80H ;置8255的PB口工作方式0、输出 OUT 63H,AL
MOV AL,02H ;置8253通道0的GATE0为1,启动计数 OUT 61H,AL
MOV AL,37H ;初始化通道0 OUT 83H,AL
考试试卷第 7 页 共 8 页
6
+5V 工件 INTR OUT1 CLK1 +5V GATE0 2.5MHz 8255Pb1 GATE0 CLK0 OUT0 R 光敏 电阻 光源 驱动器 扬声器
MOV OUT MOV OUT CALL MOV OUT IRET
AL,50H 80H,AL AL,12H 80H,AL DL6S AL,00H 61H,AL
;计数初值写入通道0
;调用延时子程序,延时6秒 ;置通道0的GATE0为0,停止计数
考试试卷第 8 页 共 8 页