文档详情

实验五8259A中断实验案例.docx

发布:2017-06-18约2.94千字共9页下载文档
文本预览下载声明
实验五 8259单级中断控制器实验一、实验目的 ⒈ 掌握8259中断控制器的接口方法。 ⒉ 2. 掌握8259中断控制器的应用编程。二、实验内容 利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。三、实验接线图 图6-6四、编程指南 ⑴ 8259芯片介绍中断控制器8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。⑵ 本实验中使用3号中断源IR3, “ ”插孔和IR3相连,中断方式为边沿触发方式,每拨二次AN开关产生一次中断,满5次中断,显示“8259——good”。如果中断源电平信号不符合规定要求,则自动转到7号中断,显示“Err”。五、实验程序框图 IR3中断服务程序:IR7中断服务程序:六、实验步骤 1、按图6-6连好实验线路图。⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“ ”插孔和8259的3号中断IR3插孔相连,“ ”端初始为低电平;⑷8259的CS端接FF80H孔。2、运行实验程序,在系统处于命令提示符“P.”状态下,按SCAL键,输入12D0,按EXEC键, 系统显示8259-1。3、拨动AN开关按钮, 按满l0次显示good。七、实验程序清单CODE SEGMENT ;H8259.ASMASSUME CS:CODEINTPORT1 EQU 0FF80HINTPORT2 EQU 0FF81HINTQ3 EQU INTREEUP3INTQ7 EQU INTREEUP7PA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口ORG 12D0HSTART: JMP START0BUF DB ?,?,?,?,?,?intcnt db ?data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTART0:CLD;递加CALL BUF1;写显示缓冲初值CALL WRINTVER;写中断向量MOV AL,13H;写ICW1MOV DX,INTPORT1OUT DX,ALMOV AL,08H;写ICW2MOV DX,INTPORT2OUT DX,ALMOV AL,09H;写ICW4OUT DX,ALMOV AL,0F7H;写OCW1OUT DX,ALMOV intcnt,01H;中断计数初值STI;开中断WATING: CALL DISP;DISP 8259-1JMP WATING;循环显示WRINTVER:MOV AX,0H;写中断向量子程序MOV ES,AXMOV DI,002CH;IR3中断向量地址LEA AX,INTQ3;IR3中断服务地址STOSW;写中断服务地址偏移量MOV AX,0000h;写中断服务段地址STOSWMOV DI,003CH;IR7中断向量地址LEA AX,INTQ7;IR7中断服务地址STOSW;写中断服务地址偏移量MOV AX,0000h;写中断服务段地址STOSWRETINTREEUP3:CLI;IR3中断服务push ax;压栈保护现场push bxpush cxpush dxMOV AL,INTCNT;CALL CONVERS;拆送缓冲区MOV BX,OFFSET BUF ;077BHMOV AL,10HMOV CX,05HINTRE0: MOV [BX],AL;高五位缓冲区送熄灭码INC BXLOOP INTRE0MOV AL,20H;中断返回码MOV DX,INTPORT1OUT DX,ALADD INTCNT,01HCMP INTCNT,06HJNA INTRE2;中断次数小于5次继续CALL BUF2 ;中断次数结束DISP:goodINTRE1: CALL DISPJMP INTRE1CONVERS: AND AL,0FH;拆送缓冲区MOV BX,offset buf ;077AHMOV [BX+5],ALRETINTRE2: MOV AL,20HMOV DX,INTPORT1OUT DX,ALpop dxpop cx
显示全部
相似文档