8259A中断实验

合集下载

微机原理8259A实验报告

微机原理8259A实验报告

实验二8259A中断控制器应用实验分析报告一、填写补充实验1-2中以下两段代码,并简述其意义:第1段:IN AL,21H_ AND AL, 0F7H _____________OUT 21H,ALIN AL,0A1H__AND AL, 0FBH______________OUT 0A1H,AL第2段:MOV AL,20HOUT 0A0H,ALOUT 20H,AL二、简述实验1-2的实验现象,分析解释其原因;结合本实验,简述中断嵌套和中断优先级的意义以及正确形成中断嵌套的基本要求。

答:实验1现象:按下一次单脉冲,显示一次字符,十次中断后停机,不再显示字符串实验2现象:分别按下两个单脉冲显示一串3和一串10,在3未显示完全时按下显示10的脉冲键,可发生中断,相反则不能发生中断,需等待一串10显示完后再显示一行3。

原因:IRQ10的中断级别高于IRQ3,所以可以在3还没有执行完时中断IRQ3,中断原程序执行IRQ10 。

中断嵌套的意义:为了让CPU及时响应更高级别的中断请求。

中断优先级的意义: CPU只能响应一个中断请求,在中断源较多的情况下,当有多个中断源同时发起中断请求时,CPU需要对多个中断源的优先级进行判断,判断出优先级最高的中断请求进行响应。

中断嵌套要求是:被中断程序的优先级低于请求程序中断的优先级。

三、抄写实验1-2中要求填写的“显示‘10’和‘空格’”的代码段NEXT10_1:MOV AX,SEG MESS10MOV DS,AXMOV DX,OFFSET MESS10MOV AH,09INT 21H ;使用INT21 – 09H实现字符串的输出‘10’CALL DELAY1 ;调用延时子程序LOOP NEXT10_1MOV DX,0DH ;调用DOS的中断功能,回车MOV AH,02HINT 21HMOV DX,0AH ;调用DOS的中断功能,换行MOV AH,02HINT 21H四、用文字简述或流程图方式,说明实验1-3中“以查询方式检测处理多中断请求”的过程。

【实验】8259中断控制器实验报告

【实验】8259中断控制器实验报告

【关键字】实验8259中断控制器实验报告篇一:8259中断控制器实验报告8259中断控制器实验报告作者:一实验目的1,掌握8259A的工作原理。

2,掌握编写中断服务程序方法。

3,掌握初始化中断向量的方法。

二,实验设备CPU挂箱,8086CPU模块图1-cpu挂箱三,实验内容用电平开关的输出作为中断源,每个开关对应于一个中断源。

在中断服务程序中,通过74LS273输出一个数据,以点亮于中断源对应位置的LED灯。

四,实验原理1.本实验用到三部分电路:电平开关电路、简单I/O扩展电路和8259中断控制器电路;2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;3.中断类型由8359通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;4.中断类型的高5位由8359寄存器ICW2决定,低3位由中断源IRx的编码自动填充,IRO~IR7的编码分别是000,001,010,011,100,101,110,111。

五,实验步骤1,实验接线CS0-CS8259 CS1-CS273 00~07-LED1~LED8 K1~K8-IR0~IR7 INT-INT(8086CPU 板) INTA-INTA(8086CPU板) 2,编译调试程序3,全速运路程度,拨动某一电平开关,观察LED的亮灭情况。

六,实验结果全速运路程序,由上向下拨动开关时,相应位置的LED灯点亮,其余LED灯全灭七,源代码ASSUME CS:CODECODE SEGMENT PUBLICORG 100H START: MOV CX,0 START1:CLIMOV DX,04A0HMOV AX,13HOUT DX,AXMOV DX,04A2HMOV AX,80HOUT DX,AXMOV AX,01HOUTDX,AXMOV AX,00HOUT DX,AXNOPMOV AX,0MOV DS,AXMOVADD DI,2DI,200H MOV DS:[DI],100H;初始化中断向量表MOV AX,OFFSET int0MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int1MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int2MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int3MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int4MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int5MOV DS:[DI],AXADD DI,2MOV AX,OFFSET int6MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int7MOV DS:[DI],AXADD DI,2 ;上述程序为芯片8259的初始化程序MOV DS:[DI],100H MAIN:MOV AX,0STIWAITING: CMP AX,0HJE WAITINGMOV DX,04B0HOUT DX,AXMOV CX,0DELAY: LOOP DELAYJMP START1 Int0:CLINOPMOV AX,OFEHIRET Int1:CLINOPMOV AX,OFDHIRET Int2:CLINOPMOV AX,OFBHIRET Int3:CLINOPMOV AX,OF7HIRET Int4:CLINOPMOV AX,OEFHIRET Int5:CLINOPMOV AX,ODFHIRET Int6:CLINOPMOV AX,OBFHIRET Int7:CLINOPMOV AX,O7FHIRET篇二:8259中断控制实验报告深圳大学实验报告班级:实验时间:实验报告提交时间:教务处制篇三:微机接口实验报告8259中断控制器实验实验六8259中断控制器实验1 实验目的(1) 学习中断控制器8259的工作原理。

8259A可编程中断控制器实验

8259A可编程中断控制器实验

集美大学计算机工程学院实验报告课程名称微机系统与接口技术实验名称实验二8259A可编程中断控制器实验实验类型设计型姓名学号日期地点微机实验室成绩教师第1页共8页1. 实验目的及内容1.1实验目的1)了解8259A芯片的工作原理。

学会使用8259A中断控制芯片实现对外中断的响应和处理。

2)了解8259A内部结构和熟悉8086的接口逻辑。

3)掌握8259A的初始化编程方法和8086是如何响应中断、退出中断的。

1.2实验内容1)设计8259A与8086CPU的硬件连接图,分配8259A的端口地址为9000H,9001H。

2)设计8259A的外围连接,实现拨动单脉冲开关触发8259A中断,8086计数中断次数并显示于G5区的断码管LED上。

3)中断次数的显示需调用系统给定的显示子程序DISPLAY8。

程序开始处必须设置外部连接,告诉汇编程序该显示程序在何处;设置显示缓冲区及相应的入口参数:si——显示缓冲区首地址。

若要让LED无任何显示,即对应单元送10H,若要让它显示数字,则把数字值直接送到相应的显示缓冲区单元中就可以显示了。

4)要保证DISPLAY8能正常显示,必须使得8279键盘/LED控制器能正确运行。

此时要设置连线:①8279键盘/LED控制器的CLK应连接2MHz的时钟;②8279键盘/LED控制器的CS,A0连接到芯片组A3区的CS5,A0;③控制数码管LED亮灭的数据(段码,列码)由8279的键盘/LED控制器输出,应该把E5区中的B,C与G5区的B,C对应连接起来。

2. 实验环境星研电子软件,STAR系列实验仪一套、PC机一台、导线若干3. 实验方法8259A的中断引脚IRi与单脉冲连接,实现拨动单脉冲开关触发8259A中断,8086计数中断次数并显示于G5区的断码管LED上,此实验使用8259A的IR2中断,正脉冲触发中断,脉冲频率为2MHz.4.实验步骤MOV DX,9001HMOV AL,00001010B OUT DX,ALMOV AL,00001101B OUT DX,ALMOV AL,11111011B OUT DX,ALMOV CX,0000HMOV BL,00HMOV BH,11STI L1: MOV FLAG,0MOV AL,BLAND AL,0FHMOV BUF,ALMOV AL,BLSHR AL,4AND AL,0FHMOV BUF+1,ALMOV BUF+2,10HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HMOV BUF+6,10HMOV BUF+7,10HLEA SI,BUFCALL DISPLAY8 CHECK:CMP FLAG,0JZ CHECK CMP BH,00HJZ ZEROJMP L1ZERO:MOV DX,9001HIN AL,DX OR AL,00000100 OUT DX,ALJMP ZEROIRQ2 PROC FARMOV AL,BLADD AL,01HDAAMOV BL,ALDEC BHMOV FLAG,1MOV DX,9000HMOV AL,00100000BOUT DX,ALIRETIRQ2 ENDPEND START4.4运行调试程序1)按要求设计的电路正确连接线路,检查完毕后打开电源。

实验七 8259A中断实验

实验七  8259A中断实验

实验七8259A中断实验一、实验目的:1、了解8259A中断控制器的工作原理;2、了解8259A中断控制器的接口方法;3、掌握中断处理程序的编写。

二、实验原理:1、8259A是Intel公司专为控制优先级中断而设计的NMOS芯片。

它集中断源优先级排队、中断源识别、中断向量提供和中断屏蔽等功能电路于一体,因而中断系统无需附任何电路,只需对8259A进行编程,就可管理8级优先中断,且中断请求方式和优先级模式等中断结构可通过编程设定或变更,中断入口地址也可由用户任意指定。

图2.1 8259芯片的内部结构图图2.2 8259芯片引脚定义2、对8259A的编程分为两步:初始化编程和工作方式编程。

(1)初始化编程:初始化编程用来建立8259的基本工作条件。

在系统加电和复位后,通过写入初始化命令字ICW1~ICW4来实现对8259的初始化操作,初始化命令字一经确定,以后不再改变。

(2)工作方式编程:工作方式编程用来完成对中断过程的动态控制。

在8259的工作阶段,CPU随时向8259写入工作命令字OCW1~OCW3,以规定或改变8259的工作方式,实现对8259的工作状态、中断方式和中断响应次序等的控制和管理。

工作命令字在初始化后的任何时刻均可写入或改变。

表2.1 IBM-PC中各命令字的地址分配A0命令字ICW1,OCW2,OCW3(20H)1ICW2,ICW3,ICW4,OCW1(21H)3、8259A的初始化编程:(1)8259初始化编程的主要任务有:①复位8259芯片。

②设定中断请求信号INT有效的形式,是高电平有效,还是上升沿有效。

③设定8259工作在单片方式还是多片级联方式。

④设定8259管理的中断类型号的基值,即0级IR0所对应的中断类型号。

⑤设定各中断级的优先次序,IR0最高,IR7最低。

⑥设定一次中断处理结束时的结束方式。

(2)初始化命令字ICW1:ICW1用于规定8259的连接方式(单片或级联)和中断源请求信号的有效形式(电平触发或边沿触发)。

8259A中断实验

8259A中断实验

实验8259单级中断控制器实验一、实验目的⒈掌握8259中断控制器的接口方法。

⒉掌握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,8FH START0: 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:good INTRE1: CALL DISPJMP INTRE1CONVERS: AND AL,0FH ;拆送缓冲区MOV BX,offset buf ;077AHMOV [BX+5],ALRETINTRE2: MOV AL,20HMOV DX,INTPORT1OUT DX,ALpop dxpop cxpop bxpop axSTIIRET ;中断返回INTREEUP7: CLI ;IR7中断服务MOV AL,20H ;中断返回码MOV DX,INTPORT1OUT DX,ALcall buf3 ;disp:errINTRE3: CALL DISP ;循环显示:ERR JMP INTRE3DISP: MOV AL,0FFH ;显示子程序 ,5ms MOV DX,PAOUT DX,ALMOV CL,0DFH ;20HMOV BX,OFFSET BUFDIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,00A0HLOOP $POP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,08H ;写”8259-1”MOV BUF+1,02HMOV BUF+2,05HMOV BUF+3,09HMOV BUF+4,17HMOV BUF+5,01HRETBUF2: MOV BUF,09H ;写”good ”MOV BUF+1,00HMOV BUF+2,00HMOV BUF+3,0dHMOV BUF+4,10HMOV BUF+5,10HRETBUF3: MOV BUF,0eH ;写”err ”MOV BUF+1,18HMOV BUF+2,18HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HRETCODE ENDSEND START。

8259A中断控制器实现

8259A中断控制器实现

一、实验目的与要求1、了解8259的内部结构,工作原理;了解8259A 与8088的接口逻辑;掌握对8259A 的初始化编程方法,了解8088是如何响应中断、退出中断的。

二、实验逻辑原理图与分析 2.1 画实验逻辑原理图AD0~AD15ALEWR#INTR INTA数据锁存器地址锁存器地址译码器D0~D7CS#A0WR#INT INTA#IR0A02.2 逻辑原理图分析8282地址锁存器,用于8086CPU 与8259A 芯片地址线的连接用于总线周期T1状态下发出的地址信号。

经锁存后的地址信号可以在整个周期内保持稳定不变,8286收发器用于8086CPU 与8259A 芯片数据线的连接,通过地址译码器实现片选信号(CS )的选通。

(1)、8086是Intel 系列的16为微处理器,芯片上有4万个晶体管,采用NMOS 工艺制造,用单一的+5V 电源,时钟频率为4.77MHZ~10MHZ.8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据,可寻址的内存空间为1MB 。

(2)、8282锁存器:用来锁存8086访问存储器或I/O 端口时,于总线周期T1状态下发出的地址信号。

经锁存后的地址信号可以在整个周期内保持稳定不变 (3)、8286收发器:可以进行双向数据锁存 (4)、8259A 可编程中断控制器主要功能:1)、 1片8259A 能管理8级中断,通过级联用9片8259A 可以构成64 级主从 式中断系统2)、每一级中断可以屏蔽或允许3)、在中断响应周期,8259A 可提供相应的中断类型号。

4)、 可编程使8259A 工作在多种不同的方式。

(5)、8259A 的内部结构:1)、IRR:当IR0-IR7某一个引脚上出现有效中断请求时,IRR对应位被置12)、IMR:当IR0-IR7中需要屏蔽的,IMR对应位置13)、ISR:是一个8位寄存器,通过8位二进制数的值纪录当前正在处理的中断请求。

8259中断实验详解

8259中断实验详解

浙江工业大学计算机学院实验报告实验名称 8259A中断实验姓名李晓峰学号 ************班级物联网1301教师雷艳静日期 12.18一、实验内容与要求1.1 实验内容利用8259A芯片,实现中断响应程序。

要求根据单脉冲按键,输出相应的语句:THIS IS THE xxx INTERRUPT! 。

到达中断次数后,屏幕上显示PROGRAM TERMINATED NORMALLY! 1.2 实验要求(1)第一次按键,输出THIS IS THE 1 st INTERRUPT!;(2)第二次按键,输出THIS IS THE 2 nd INTERRUPT!;(3)第十一次按键(特殊),输出THIS IS THE 11 st INTERRUPT!;(4)以此法继续,直至计数值为零,输出PROGRAM TERMINATED NORMALLY!二、实验原理与硬件连线2.1 实验原理PC用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。

中断控制器用于接收外部的中断请求信号,经过优先级别判别等处理后向CPU发出可屏蔽中断请求。

IBM PC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源。

中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 0BH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。

PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级联,对外可以提供16个中断源。

中断源中断类型号中断功能IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 073H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留TPC-USB实验板上,将中断源固定到3号中断IRQ3上,即进行中断实验时,所用中断型号为0BH。

实验五 8259A中断控制器实验

实验五  8259A中断控制器实验

南昌大学实验报告学生姓名:林海金学号:6100210178 专业班级:卓越通信101班实验类型: 验证□综合□设计□创新实验日期:2012-5-22 实验成绩:一、实验项目名称实验五8259A中断控制器实验二、实验目的(1)了解8259A中断控制器的工作原理。

(2)了解PC机中断的原理和过程。

(3)学会中断程序的编写。

三、实验要求编写中断程序,在请求8259A1时,能够响应8259A的硬件中断,并在数码管上显示“IRQ0…”字样,中断结束时,显示“E…IRQ”。

四、实验仪器及连线方式1)实验仪器:AEDK-T598D实验系统。

2)连线方式:INT0连接至+PULSE;8259A的片选接至试验箱的200H;8279的片选接至210H~217H。

五、实验说明以中断0为例,先加载主中断程序,然后再加载中断程序IRQ0程序,然后打开对话窗口,输入“SW 0:0020,<回车>0000,””8200<回车>”,在执行“G8100:0<回车>Y”即可。

六、实验参考程序INT00 EQU 200HINT01 EQU 201HZ8279 EQU 239HD8279 EQU 238HLEDMODE EQU 00HSCANFRQ EQU 38HDA TA SEGMENTDA TA ENDSSTACK SEGMENTSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: CLIMOV AL,13HMOV DX,INT00OUT DX,ALNOPNOPMOV AL,8MOV DX,INT01OUT DX,ALMOV CX,0FFFHL00: LOOP L00MOV AL,3MOV DX,INT01OUT DX,ALMOV CX,0FFFHMOV CX,0FFFHL01: LOOP L01NOPNOPMOV DX,Z8279MOV AL,LEDMODEOUT DX,ALMOV AL,SCANFRQOUT DX,ALMOV DX,INT01MOV AL,00HOUT DX,ALMOV CX,0FFFHL02: LOOP L02MOV DX,INT00MOV AL,20HOUT DX,ALMOV CX,0FFFHL03: LOOP L03MOV DX,Z8279MOV AL,90HOUT DX,ALMOV AL,0D0HOUT DX,ALMOV CX,0FFFFHL2: LOOP L2MOV AL,67HOUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALJMP SHORT $+2STIHLT0X2: MOV DX,Z8279MOV AX,0D0HOUT DX,ALMOV CX,0FFFHLOOP L5L5: LOOP L5MOV AL,90HOUT DX,ALMOV DX,D8279MOV AL,67HOUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALMOV AL,80HOUT DX,ALOUT DX,ALMOV AL,79HOUT DX,ALJMP SHORT X2NOPCODE ENDSEND STARTZ8279 EQU 239HD8279 EQU 238HINT0 EQU 200HDA TA SEGMENTDA TA ENDSSTACK SEGMENTSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: STIMOV CX,0FFFHMOV DX,Z8279MOV AL,0D0HOUT DX,ALL1: LOOP L1MOV AL,90HOUT DX,ALMOV DX,D8279MOV AL,80HOUT DX,ALOUT DX,ALOUT DX,ALMOV AL,3FHOUT DX,ALOUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALMOV CX,0FFFFH12: LOOP L2MOV DX,INT0MOV AL,20HOUT DX,ALIRETCODE ENDSEND START七、实验步骤1、实验前检查实验箱是否完好,串口是否正确连接;2、按照实验电路图连接好电路,并检测通讯口;3、在LCA88ET环境中依次进入文件--打开--EXP--88ASM--8259A和Irgo;4、程序加载:设置--实验机--加载地址,8259A加载到8100H,Irgo加载到8200H;5、在LCA88ET环境中进行程序调试,调试(或窗口)--对话窗口--SW 0:0200<回车>0000,8200<回车>,再执行G8100:0<回车>Y6、运行程序,按下按键,看实验箱上数码管显示结果是否正确;3、实验结果:程序运行后,每次按下按键都能产生中断。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验8259单级中断控制器实验
一、实验目的
⒈掌握8259中断控制器的接口方法。


掌握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.ASM
ASSUME CS: CODE
INTPORT1 EQU 0FF80H
INTPORT2 EQU 0FF81H
INTQ3 EQU INTREEUP3
INTQ7 EQU INTREEUP7
PA EQU 0FF20H ;字位口
PB EQU 0FF21H ;字形口
PC EQU 0FF22H ;键入口
ORG 12D0H
START: JMP START0
BUF DB ?,?,?,?,?,?
intcnt db ?
data1:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,
0c6h,0a1h
db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: CLD ;递加
CALL BUF1 ;写显示缓冲初值
CALL WRINTVER ;写中断向量
MOV AL,13H ;写ICW1
MOV DX,INTPORT1
OUT DX,AL
MOV AL,08H ;写ICW2
MOV DX,INTPORT2
OUT DX,AL
MOV AL,09H ;写ICW4
OUT DX,AL
MOV AL,0F7H ;写OCW1
OUT DX,AL
MOV intcnt,01H ;中断计数初值
STI ;开中断
WATING: CALL DISP ;DISP 8259-1
JMP WATING ;循环显示WRINTVER: MOV AX,0H ;写中断向量子程序MOV ES,AX
MOV DI,002CH ;IR3中断向量地址
LEA AX,INTQ3 ;IR3中断服务地址
STOSW ;写中断服务地址偏移量
MOV AX,0000h ;写中断服务段地址
STOSW
MOV DI,003CH ;IR7中断向量地址
LEA AX,INTQ7 ;IR7中断服务地址
STOSW ;写中断服务地址偏移量
MOV AX,0000h ;写中断服务段地址
STOSW
RET
INTREEUP3: CLI ;IR3中断服务
push ax ;压栈保护现场
push bx
push cx
push dx
MOV AL,INTCNT ;
CALL CONVERS ;拆送缓冲区
MOV BX,OFFSET BUF ;077BH
MOV AL,10H
MOV CX,05H
INTRE0: MOV [BX],AL ;高五位缓冲区送熄灭码INC BX
LOOP INTRE0
MOV AL,20H ;中断返回码
MOV DX,INTPORT1
OUT DX,AL
ADD INTCNT,01H
CMP INTCNT,06H
JNA INTRE2 ;中断次数小于5次继续CALL BUF2 ;中断次数结束DISP:good INTRE1: CALL DISP
JMP INTRE1
CONVERS: AND AL,0FH ;拆送缓冲区
MOV BX,offset buf ;077AH
MOV [BX+5],AL
RET
INTRE2: MOV AL,20H
MOV DX,INTPORT1
OUT DX,AL
pop dx
pop cx
pop bx
pop ax
STI
IRET ;中断返回INTREEUP7: CLI ;IR7中断服务
MOV AL,20H ;中断返回码
MOV DX,INTPORT1
OUT DX,AL
call buf3 ;disp:err
INTRE3: CALL DISP ;循环显示:ERR JMP INTRE3
DISP: MOV AL,0FFH ;显示子程序 ,5ms MOV DX,PA
OUT DX,AL
MOV CL,0DFH ;20H
MOV BX,OFFSET BUF
DIS1: MOV AL,[BX]
MOV AH,00H
PUSH BX
MOV BX,OFFSET DATA1
ADD BX,AX
MOV AL,[BX]
POP BX
MOV DX,PB
OUT DX,AL
MOV AL,CL
MOV DX,PA
OUT DX,AL
PUSH CX
DIS2: MOV CX,00A0H
LOOP $
POP CX
CMP CL,0FEH ;01H
JZ LX1
INC BX
ROR CL,1 ;SHR CL,1
JMP DIS1
LX1: MOV AL,0FFH
MOV DX,PB
OUT DX,AL
RET
BUF1: MOV BUF,08H ;写”8259-1”
MOV BUF+1,02H
MOV BUF+2,05H
MOV BUF+3,09H
MOV BUF+4,17H
MOV BUF+5,01H
RET
BUF2: MOV BUF,09H ;写”good ”
MOV BUF+1,00H
MOV BUF+2,00H
MOV BUF+3,0dH
MOV BUF+4,10H
MOV BUF+5,10H
RET
BUF3: MOV BUF,0eH ;写”err ”
MOV BUF+1,18H
MOV BUF+2,18H
MOV BUF+3,10H
MOV BUF+4,10H
MOV BUF+5,10H
RET
CODE ENDS
END START。

相关文档
最新文档