综合实验六:8259中断控制器+LED实验一、实验目的掌握8259中断控制器的接口方法与程序设计。
二、实验内容编制程序,利用8259芯片的IR7作为中断源,产生单一中断,系统显示中断号“7”。
三、程序流程四、实验电路五、编程提示8259中断控制器是专为控制优先级中断设计的芯片。
它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。
因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需要增加其它电路的情况下,通过多片8259的级联,能构成多达64级的矢量中断系统。
中断序号0 1 2 3 4 5 6 7变量地址20~23h 24~27h 28~2Bh 2C~2Fh 30~33h 34~37h 38~3Bh 3C~3Fh 本实验中使用7号中断源IR7,中断方式为边沿触发方式,按动开关按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1个字符“7”,显示满以后清空显示“P.”继续等待中断。
六、实验步骤(1)按实验电路图连接线路:①“SP”插孔和8259 7号中断IR7插孔相连,“SP”端初始为低电平。
②按照实验一中3.3的实验步骤②要求连接138译码电路,8259的CS端连138译码器的Y0孔。
③将8259的单元总线接口D0~D7,用8芯排线或8芯扁平线与数据总线单元D0~D7任一接口相连。
(2)运行实验程序在系统处于命令提示符“P.”状态下(数码显示管显示“P.”),输入3400,按EXEC键显示“P.”。
(3)按动开关按钮,LED数码管从最高位开始依次显示“7”,显示满六位后,最高位显示“P.”继续等待中断。
七、实验程序ZXK EQU 0FFDCHZWK EQU 0FFDDHPort0 EQU 0FFE0HPort1 EQU 0FFE1HCODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 3400HH8: JMP P8259LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3HBUF DB ?,?,?,?,?,?P8259: CLICALL WP ;初始化显示“P.”MOV AX,OFFSET INT8259MOV BX,003CHMOV [BX],AXMOV BX,003EHMOV AX,0000HMOV [BX],AXCALL FOR8259mov si,0000hSTICON8: CALL DISJMP CON8;------------------------------------INT8259:cliMOV BX,OFFSET BUFMOV BYTE PTR [BX+SI],07HINC SICMP SI,0007HJZ X59XX59: MOV AL,20HMOV DX,Port0OUT DX,ALmov cx,0050hxxx59: push cxcall dispop cxloop xxx59mov cx,3438hpush cxSTIIRETX59: MOV SI,0000HCALL WPJMP XX59;============================== FOR8259:MOV AL,13HMOV DX,Port0OUT DX,ALMOV AL,08HMOV DX,Port1OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,7FH ;IRQ7OUT DX,ALRET;---------------------------WP: MOV BUF,11H ;初始化显示“P.” MOV BUF+1,10HMOV BUF+2,10HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HRET;-------------------------------- DIS: MOV CL,20HMOV BX,OFFSET BUFDIS1: MOV AL,[BX]PUSH BXMOV BX,OFFSET LEDXLATPOP BXMOV DX,ZXKOUT DX,ALMOV AL,CLMOV DX,ZWKOUT DX,ALPUSH CXMOV CX,0100HDELAY: LOOP $POP CXCMP CL,01HINC BXSHR CL,1JMP DIS1EXIT: MOV AL,00HMOV DX,ZWKOUT DX,ALRET;--------------------------CODE ENDSEND H8八、扩展练习编制程序,利用8259芯片的IR i作为中断源,产生单一中断,系统显示中断号“i”。