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、实验结果:程序运行后,每次按下按键都能产生中断。

实验-8259A单级中断 微机原理与接口技术

实验-8259A单级中断 微机原理与接口技术

DATA0
DATA2 DATA1 DATA3 DATA4
EQU 0580H
EQU 0508H EQU 0500H EQU 0518H EQU 0520H
;指向显示 8259Good 显示模区 ; ;指向显示 Err 显示模区 ;指向 8259-1显示模区
程序分析
1、显示部分 FORMAT 建立显示缓冲区
0580H
INTRE1:
MOV MOV RET MOV MOV OUT STI IRET
BX, DATA0 ; 指向 8259 Good 模区 DS: [BX], AL AL,20H ;送结束命令 DX,INTPORT1 DX,AL
INTRUPUT7: CLI MOV CALL MOV MOV OUT IRET
CODE
ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR RET ENDS END START

;建显示模型库, 调用中用 SI 指示显示模区 LEDDISP ; 显示 8259-1 WRINTVER ;将IRQ3、IRQ7中断矢量装入矢量表 CONVERS ;
INTRE1 ;送结束命令
2、编程
CODE SEGMENT ASSUME CS:CODE INTPORT1 EQU 0020H ;8259A 端口地址 INTPORT2 EQU 0021H INTQ3 EQU INTREEUP3 ;IRQ3 服务程序 INTQ7 EQU INTREEUP7 ;IRQ7 服务程序 CONTPORT EQU 00DFH ;8255A 控制口 DATAPORT EQU 00DEH ;数据口(PC口) DATA0 EQU 0580H ;指向显示 8259Good 显示模区 DATA1 EQU 0500H ;指向显示 Err 显示模区 DATA2 EQU 0508H ; DATA3 EQU 0518H ;指向显示 DISP 8259-1显示模区 DATA4 EQU 0520H ; 6000H ;显示位数(0~7) 0601H ;IRQ3 的申请次数记录

PC机8259A的中断应用实验

PC机8259A的中断应用实验

8259A的中断应用实验一、实验目的(1)学习8259 A中断控制器的结构及其工作原理。

(2)掌握59A的工作方式及初始化。

(2)学习8259 可编程控制器的应用编程。

(3)掌握使用PC 机内8259 的方法。

(4)掌握修改中断向量的方法。

二、实验要求编写一键盘中断处理程序,计数键盘中断次数,并用该程序替换系统键盘中断处理程序,使当键盘中断产生10 次后,显示按键次数并结束应用。

三、相关基本知识a、CPUCPU是中央处理单元(Central Process Unit)的缩写,它可以被简称做微处理器。

(Microprocessor),不过经常被人们直接称为处理器(processor)。

不要因为这些简称而忽视它的作用,CPU是计算机的核心,其重要性好比心脏对于人一样。

实际上,处理器的作用和大脑更相似,因为它负责处理、运算计算机内部的所有数据,而主板芯片组则更像是心脏,它控制着数据的交换。

CPU的种类决定了你使用的操作系统和相应的软件。

CPU主要由运算器、控制器、寄存器组和内部总线等构成,是PC的核心,再配上储存器、输入/输出接口和系统总线组成为完整的PC。

CPU的基本结构、功能及参数CPU主要由运算器、控制器、寄存器组和内部总线等构成。

寄存器组用于在指令执行过后存放操作数和中间数据,由运算器完成指令所规定的运算及操作。

CPU主要的性能指标有:1.主频主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。

CPU的主频=外频×倍频系数。

很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。

CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。

CPU的运算速度还要看CPU的流水线的各方面的性能指标。

当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。

2.外频外频是CPU的基准频率,单位也是MHz。

8259a中断实验报告

8259a中断实验报告

8259a中断实验报告
8259A中断实验报告
实验目的:
本实验旨在通过对8259A中断控制器的实验,加深对中断处理的理解,掌握中断控制器的基本原理和工作方式,以及实现中断服务程序的编写和调用。

实验内容:
1. 熟悉8259A中断控制器的工作原理和寄存器结构;
2. 编写中断服务程序,实现对8259A中断的响应和处理;
3. 进行实际的中断触发和处理实验,验证中断服务程序的正确性。

实验步骤:
1. 了解8259A中断控制器的寄存器结构和工作原理;
2. 编写中断服务程序,包括中断向量表的初始化和中断服务程序的编写;
3. 配置8259A中断控制器,使其能够正确地响应外部中断;
4. 在实验板上模拟外部中断信号,验证中断服务程序的正确性;
5. 测试不同优先级的中断,观察中断响应的顺序和中断服务程序的执行情况;
6. 调试和优化中断服务程序,确保其能够正确地处理各种中断情况。

实验结果:
通过本次实验,我们成功地实现了对8259A中断控制器的实验,并完成了中断服务程序的编写和调试。

在实验过程中,我们深入理解了中断的工作原理和中断服务程序的编写方法,掌握了中断控制器的配置和使用技巧。

通过不断地调试和优化,我们确保了中断服务程序能够正确地响应和处理各种中断情况,提高了系统的稳定性和可靠性。

结论:
本次实验使我们对8259A中断控制器有了更深入的了解,掌握了中断处理的基本原理和方法,提高了我们的实际操作能力和问题解决能力。

通过实验,我们对中断控制器的使用和调试有了更深入的认识,为我们今后的学习和工作打下了良好的基础。

实验四 中断控制器8259A

实验四 中断控制器8259A

实验四中断控制器8259A一、实验目的1、掌握中断控制器8259A与微机接口的原理和方法。

2、掌握中断控制器8259A的应用编程。

二、实验设备DVCC系列微机仿真实验系统三、实验内容1.实验原理本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关系如下表3-3所示。

根据实验原理图,8259A和8088系统总线直接相连,8259A 上连有一系统地址线A0,故8259A 有2 个端口地址,本系统中为60H、61H。

60H 用来写ICW1,61H 用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写操作命令字。

OCW2、OCW3 用口地址60H,OCW1用口地址61H。

图3-12中,使用了3号中断源,IR3插孔和SP 插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A 发出中断请求信号。

如果中断源电平信号不符规定要求则自动转到7号中断,显示“Err”。

CPU响应中断后,在中断服务中,对中断次数进行计数并显示,计满5次结束,显示器显示“Good”。

2、实验线路连接(1)8259模块上的INT连8088的INTR(在主板键盘矩阵下面)。

(2)8259模块上的INTA连8088的INTA(在主板键盘矩阵下面)。

(3)MP区SP插孔和8259的3号中断IR3插孔相连,SP端初始为低电平。

(4)8259模块上的D0~D7连到BUS 2区的XD0~XD7。

(5)8259模块上的CS端接Y6。

(6)8259模块上的A0连到BUS 区的XA0上。

(7)8259模块上的RD、WR信号线分别连到BUS 3区的XRD、XWR上。

四、实验步骤1、按图连好实验线路2、运行实验程序(1)联机时,实验程序文件名为\DVCC\H8EXE\H86S.EXE。

(2)单机时,实验程序起始地址为F000:91A0。

在系统显示监控提示符“P.”时:输入F000 按F1键输入91A0 按EXEC键在系统上显示“8259-1”。

实验三 8259A硬件中断实验

实验三 8259A硬件中断实验

实验三 8259A硬件中断实验一、实验目的1.掌握8088中断系统原理。

2.掌握8259A扩展8088系统中断的方法及编程。

二、实验内容根据系统提供的电路,掌握8259的工作原理,编程实现外部脉冲使8259产生中断。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图(1) 8259A芯片介绍8259A是专用控制中断优先级而设计的集成电路,可对中断源的优先级排队、识别、及提供中断矢量。

单块8259A可编程实现8级中断管理,并可选择优先模式及中断请求方式。

另外由多片8259A级联,可构成多达64级的矢量中断系统。

本实验用2号中断源IR2,接单次脉冲,中断方式为边沿触发方式。

程序每按一次按键产生一次中断,中断服务程序使输出状态反转一次。

本实验需要用到CPU模块(F3区)、8259模块(C5区)、八位逻辑电平输出模块(E4)、八位逻辑电平显示模块(B5)。

8259电路原理图参见图11-1。

五、实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。

六、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接单次脉冲低信号到8259模块的INT_2;用导线连接8259模块的CS_8259到CPU模块的200H;用导线对应连接8259模块的INT、INTA到CPU模块的88INTR、88/INTA;扩展输出模块的JD1C接8位LED显示的JD4B;用导线连接扩展输出模块的CS_273到CPU模块的208H。

2)启动PC机,打开THGMW-88软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)手动按单次脉冲,按一次产生一次中断,LED显示状态反转一次。

实验程序:把程序补充完整,记录调试通过的程序。

CS8259 EQU 200HCS273 EQU 208HCODE SEGMENTASSUME CS:CODE,DS:CODESTART: XOR AX,AXMOV DS,AXLEA AX,IRQ2MOV DS:28H,AXMOV AX,CSMOV DS:2AH,AXMOV DX,CS8259MOV ; ICW1OUT DX,ALINC DXMOV AL,08H ; ICW2:中断号从8开始OUT DX,ALMOV ; ICW4:全嵌套方式,86/88系统,自动结束中断OUT DX,ALMOV ; OCW1:开放Int-2OUT DX,ALMOV DX,CS8259MOV ; OCW2:非特殊EOI结束中断OUT DX,ALSTI ; 开中断MOV BL,055HHERE:MOV AL,BLOUT DX,ALCALL DELAYJMP HEREIRQ2: CLIMOV AL,BLNOT ALMOV BL,ALSTIIRETDelay proc near。

8259中断实验实验报告

8259中断实验实验报告

实验报告实验名称8259A中断控制器实验姓名学号班级教师日期一、实验内容与要求1.1 实验内容了解8259A终端控制器的工作原理,了解PC中断的原理和过程,设计并编写程序,设置8259A的命令字,定义中断服务程序,使在TPC-USB平台上每按一次单脉冲开关产生一次中断,在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2 TPCA Interrupt!”、……、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。

1.2 实验要求(1)具有一定的汇编编程的基础,能编写一些基本语句来实现实验。

实验前根据实验流程图,写出对应代码;(2)要了解8259A中断控制器的内部结构和外部引脚,理解芯片的工作原理和工作过程。

熟悉8259A芯片的命令字,对其进行编程;(3)熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4)连接PC与TPC-USB平台,用微机实验软件运行程序,每按一次TPC-USB平台上的单脉冲开关产生一次中断,要在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2TPCA Interrupt!”、……、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。

二、实验原理与硬件连线2.1 实验原理8259A是一种可编程中断控制器,可协助CPU进行中断管理。

8259A 的内部结构如图1所示。

单片8259A工作时,每次中断处理过程如下:(1)当IR7 ~ IR0 上有中断请求,则IRR 相应的位置1;(2)对于已进入IRR且未被IMR屏蔽的中断请求,PR电路进行优先级判定,得到最高级的中断请求;(3)控制逻辑接收中断请求,向CPU发INT 信号;(4)若CPU允许中断,则在当前指令结束后连续发出2个中断应答信号INTA,进行中断响应。

8259A中断实验报告

8259A中断实验报告

实验十一8259A中断实验一、实验目的1.学习8086/8088与8259A的连接与控制方法, 掌握其工作原理。

2、完成程序设计题, 学会编写中断服务程序。

二、实验原理8259A是一种可编程序中断控制器, 与8088/86微机兼容, 能处理8级向量优先权中断, 亦可以通过级联构成64级向量优先权中断系统。

具有可编程控制中断方式, 并能分别屏蔽各个中断请求。

通过4个初始化命令字(ICW1——ICW4)及3个操作命令字(OCW1——OCW3)使用8259A可编程序中断控制器。

三、实验内容用8066/86控制8259可编程中断控制器, 实现对外部中断的响应和处理。

要求程序中对每次中断进行计数, 并将计数结果用8255的PA口输出到LED显示。

四、实验方法与步骤(1)根据要求编写程序mode equ 82hpa8255 equ 8000hctl8255 equ 8003hicw1 equ 00010011bicw2 equ 00100000bicw4 equ 00000001bocw1 equ 11111110bcs8259a equ 09000hcs8259b equ 09001hdata segmentcnt db 0data endscode segmentassume cs:code,ds:dataienter proc nearpush axpush dxmov dx,pa8255inc cntmov al ,cntout dx,almov dx,cs9259amov al,20hout dx,alpop dxpop axiretienter endpiinit proc nearmov dx ,cs8259amov al ,icw1out dx ,almov dx, cs8259bmov al,icw2out dx,almov al,icw4out dx,almov al,ocw1out dx,alretiinit endpstart proc nearmov dx,ctl8255mov al,modeout dx,alclimov ax,0mov ds,axmov bx,4*icw2mov ax,codeshl ax,4add ax,offset ientermov [bx],axmov ax,0inc bxinc bxmov [bx],axcall iinitmov ax,datamov ds,axmov cnt,0mov al,cntmov dx,pa8255out dx,alstilp:nopjmp lpstart endpcode endsend start(2)根据电路连线。

8259A中断控制器实验

8259A中断控制器实验

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

复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。

二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编制程序:拨动单脉冲开关,“”送给8259A的IR0,触发中断,8088计数中断次数,显示于F4区的数码管上四、实验原理图五、实验步骤1、连线说明:区:单脉冲3、上下拨动单脉冲开关,拨动二次,产生一个“”,观察结果,数码管上显示的次数与拨动开关次数是否对应。

六、演示程序.MODEL TINYEXTRN Display8:NEARIO8259_0 EQU 0F000HIO8259_1 EQU 0F001H.STACK 100.DATABUFFER DB 8 DUP(?)Counter DB ?ReDisplayFlag DB 0.CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPCALL Init8259CALL WriIntverMOV Counter,0 ;中断次数MOV ReDisplayFlag,1 ;需要显示STI ;开中断START1: CMP ReDisplayFlag,0JZ START1CALL LedDisplayMOV ReDisplayFlag,0JMP START1Init8259 PROC NEARMOV DX,IO8259_0MOV AL,13HOUT DX,ALMOV DX,IO8259_1MOV AL,08HOUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0FEHOUT DX,ALRETInit8259 ENDPWriIntver PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,INT_0STOSWMOV AX,CSSTOSWPOP ESRETWriIntver ENDPLedDisplay PROC NEARMOV AL,CounterMOV AH,ALAND AL,0FHMOV Buffer,ALAND AH,0F0HROR AH,4MOV Buffer + 1,AHMOV Buffer + 2,10H ;高六位不需要显示MOV Buffer + 3,10HMOV Buffer + 4,10HMOV Buffer + 5,10HMOV Buffer + 6,10HMOV Buffer + 7,10HLEA SI,BufferCALL Display8RETLedDisplay ENDPINT_0: PUSH DXPUSH AXMOV AL,CounterADD AL,1DAAMOV Counter,ALMOV ReDisplayFlag,1MOV DX,IO8259_0MOV AL,20HOUT DX,ALPOP AXPOP DXIRETEND START七、实验扩展及思考1、从8259A收到上升沿,到8088响应中断,试画这个过程的时序图。

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

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

A0
D7
D6
D5
D4
D3
D2
D1
D0
0



1 LTIM ADI SNGL IC4
ICW1 控制初始化命令字各位的具体含义如下:
D7~D5:这 3 位在 8086/8088 系统中不用,只能用于 8080/8085 系统中。
D4:此位总是设置为 1,表示现在设置的是 ICW1 的标志位。 D3:(LTIM)此位设置中断请求信号的形式。如该位为 1,则表示中断请求为电平触发; 如该位为 0,则表示中断请求为边沿触发,且为上升沿触发,并保持高电平。
④操作命令字:(OCW1)
写的标记为 A0=1。其格式如下:
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
M7
M6
M5
M4
M3
M2
M1
M0
ICW4 控制初始化命令字各位:M7~M0 对应于 IMR 的各位,为 1 表示该位中断被屏蔽,为 0 表示该位允许中断。
四、实验内容
1、编制程序:拨动单脉冲开关,“
2.中断控制器 8259A 的逻辑结构 在微机中,利用 8259 芯片来完成中断。8259 芯片逻辑结构见图 1。
D0~7 WR RD CS
A0 INTA SP/ EN
8259A
IRQ0~7 INT
CAS0 CAS1 CAS2
图 1 中断控制器 8259 逻辑结构
芯片引脚定义如下: D0~D7:数据线,双向。 WR:写控制信号,低电平有效。 RD:读控制信号,低电平有效。 CS:片选端,低电平有效。 A0:地址线。在 8088 中由 CPU 的 A0 接入 8259 的 A0 端;而在 8086 中由 CPU 的 A1 接入 8259

中断控制器8259A及中断服务

中断控制器8259A及中断服务

实验内容:中断控制器8259A及中断服务1、实验连线原理见图1所示:8259A连线:(1)单脉冲与时钟单元“”插孔和8259的3号中断IR3插孔相连作为中断源;(2)8259的INT连8088的INTR(Xl5);(3)8259的INTA连8088的INTA(Xl2);(4)8259的CS端接EX1(8259A端口地址是60H,61H);(5)A0→A0。

(6)IOWR→IOWR;(7)IORD→IORD;(8)连通CPU和8259A的数据总线,JX4→JX17。

8255连线:(1)将8255的A端口的PA7到PA0连接到灯L1~L8上。

图1:实验连线图2、实验原理:按动按键AN0后,单脉冲与时钟单元部件会产生“”信号,该信号的上升沿作为中断请求送8259A的IR3引脚,如果8259A没有屏蔽该级中断并且其优先级最高,8259A向CPU的INTR引脚送中断,CPU如果允许响应中断,则进入中断处理子程序,中断处理子程序向8255A的A端口送数据,将灯L1~L8点亮1秒。

3、实验要求:单片8259A以缓冲方式连接数据总线,以上升沿作为中断请求信号,中断源通过IR3引入,优先级采用一般全嵌套方式,非自动中断结束方式,引脚IR0~IR7的中断类型号为08F~0FH,编写一个汇编程序,主程序完成8255和8259A的初始化,循环等待中断请求;中断处理子程序将灯点亮1秒后熄灭。

4、端口地址:5、系统内存分配:5、程序结构:CODE SEGMENTASSUME CS:CODEMAIN PROCSTART: ;主过程;初始化8259;初始化8255;调用3号中断 MAIN ENDPINT3 PRCO……;中断处理子程序 INT3 ENDPDELAY PROC…… ;延时子过程DELAY ENDPCODE ENDSEND6、程序流程图主程序代码:PA EQU 0FF28H ;8255A端口地址标号定义 PB EQU 0FF29HPC EQU 0FF2AHPCTL EQU 0FF2BHINTPORT1 EQU 0060H ;8259控制口地址标号定义 INTPORT2 EQU 0061HCODE SEGMENTASSUME CS:CODEORG 1000HMAIN PROCSTART: CLI ;CPU关中断MOV AL,80H ;初始化8255MOV DX,0FF2BHOUT DX,ALPUSH DS ;保护DSMOV AX,0MOV DS,AXMOV DI,0B*4MOV DX,OFFSET INT3MOV WORD PTR[DI],DXMOV DX,SEG INT3MOV WORD PTR[DI+2],DXPOP DS ;恢复DSMOV AL,13H ;初始化8259AOUT 60H,ALMOV AL,08HOUT 61H,ALMOV AL,0DHout 61H,ALMOV AL,0F7HOUT DX,AL ;开放8259A中断STI ;CPU开中断HLTWATING: JMP WATING ;循环等待中断请求MAIN ENDPINT3 PROCPUSH DXPUSH AX ;保护现场STIMOV DX,PAMOV AL,00HOUT DX,AL ;灯全亮CALL DELAY1S ;延时子程序MOV AL,0FFHOUT DX,AL ;灯全灭MOV DX,INTPORT1MOV AL,20HOUT DX,AL ;送中断结束命令 CLIPOP AXPOP DX ;恢复现场MOV AL,20HOUT 60H,ALIRET ;中断返回INT3 ENDPDELAY1S PROCPUSH CXPUSH DXMOV DX,04AGAIN: MOV CX,0FFFFHDELAY: LOOP DELAYDEC DXJNZ AGAINPOP DXPOP CXRETDELAY1S ENDPCODE ENDSEND START。

完整word版,8259A中断控制器实验

完整word版,8259A中断控制器实验

南京信息工程大学实验(实习)报告实验(实习)名称 8259A中断控制器实验实验(实习)日期 2015.5.12 得分指导教师朱节中计算机系专业网络工程年级 2012 班次 1 姓名学号一. 实验目的1.掌握8259A中断控制器工作原理,熟悉实验中涉及到的中断屏蔽寄存器IMR和中断服务寄存器ISR等的使用方法.2.学会中断处理程序的编写二. 实验内容用8259A的输出作为中断请求信号使8259A产生中断,进入中断后显示一个字符串.1.中断请求通过PC/XT62芯总线的IRQ2端输入,中断源可以是片外8253定时器输出的脉冲,也可以是其它脉冲,也可以是其它脉冲.现用8253做中断源,参看实验21连接8253的线路,并把8253的OUTO和总线槽IR02连接好.2.编写程序,要求每次主机响应外部中断IRQ2时,显示字符串“THIS IS A 8259A INTERRUPT!”(或其它串),中断十次后,程序退出。

三.编程提示1.本实验使用PC/XT机内的8259A芯片,主机启动实际时已奖8259A 中断寄存器前五位初始化为00001,因此,IRQ2的中断号应为0AH。

2.主机吧IRQ2保留给用户使用,而其他外中断已由系统时钟,键盘等占用,因此,编程时要注意系统中已使用的中断请求号。

只须将IMR寄存器中对应IRQ2的位清零,允许IRQ2中断即可。

3.机内8259A初始化为普通结束方式,因此,外中断结束时,必须使用中断结束命令清除中断服务寄存器ISR中的对应位。

4.程序退出时,关闭IRQ2中断,即给IMR中相应位置1,禁止中断。

5.PC 机系统中8259A地址:偶地址 20h奇地址 21h6. PC机系统中IRQ2硬中断为用户保留的。

编程时首先应将IRQ2对应的中断向量(中断号为0ah)保存起来,然后设置新的中断向量以指向中断处理程序。

另外,还要将中断屏蔽寄存器的相应位开放。

典型的程序段如下: MOV AH, 35HMOV AL, OAH ;取0AH号中向量送ES: BXINT 21HPUSH ES ;保存原中断向量PUSH BXPUSH DXMOV DX ,SEG ADINTMOV DS ,DXMOV DX ,OFFSET ADINT ;设置新的中断向量MOV AH ,25HMOV AL ,0AHINT 21HPOP DSIN AL ,21H ;取中断屛蔽寄存器的内容PUSH AX ;保存AND AL ,11111011B ;允许IRQ2中断OUT 21H ,AL7、PC机系统中的8259A工作在全嵌套方式下,在中断处理程序结束时,需要发中断结束命令。

利用8259A中断实现LED灯和数码管显示实验

利用8259A中断实现LED灯和数码管显示实验

实验三:利用8259A中断实现LED灯和数码管显示实验安全0901 王宇航 09283020实验报告1.实验目的:了解8259中断控制器的基本使用,掌握中断程序编程技术。

同时使同学掌握中断和其它接口芯片配合来完成某一特定任务的方法。

2.实验步骤:8254A的OUT1输出接到8259A的MIR5上,每秒产生一次中断信号向8259A发出中断请求,在中断程序里将连接在8255A口的LED灯按照中断次数二进制点亮(即中断一次L0亮,中断两次L1亮,中断三次L1L0亮,中断四次L2亮……)。

同时在数码管低位上显示中断次数。

满10次后停止。

1.8254A在主程序中初始化。

CLK0工作在方式3,则控制字为00110110B,计数常数设为1000;CLK1工作在方式3,则控制字为01110110B,计数常数设为1000,则OUT1输出为1HZ 的方波。

2.8255A在使用前需要在主程序中初始化。

A口方式0输出,B口方式0输入,则控制字为10000011B。

3.8259A不用初始化,但在程序中需要包含以下几个部分:(1)8259A的MIR5对应的中断向量号为35H,需用此来设置中断入口地址。

(2)设置中断入口地址之后,需设置中断屏蔽字OCW1,使IR5请求被允许,其他请求被禁止。

(3)中断服务程序结束之前写OCW2,送中断结束命令EOI。

4.中断服务程序的主要功能是LED指示灯和数码管显示。

图3-1 实验连线图注意:实验系统的主8259A的片选信号为20H。

3.实验代码:.Model small.386DATA SEGMENTDATA0 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;分别对应字符0-9 COUNT DB 10 ;计数值为10DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX ;DS装入段基址LEA SI,DA TA0 ;取操作数DA TA0的16位偏移地址送到寄存器SI中 ;8254初始化MOV DX,203H ;8254命令口MOV AL,00110110B ;控制字--0通道、方式3(方波发生器)、二进制计数 OUT DX,AL ;将控制字写入命令口MOV DX,200H ;0通道的数据口MOV AX,1000 ;计数常数=1000OUT DX,AL ;先写入低字节MOV AL,AHOUT DX,AL ;再写入高字节MOV DX,203H ;8254命令口MOV AL,01110110B ;控制字1通道、方式3(方波发生器)、二进制计数 OUT DX,ALMOV DX,201H ;1通道的数据口MOV AX,1000 ;计数常数=1000OUT DX,ALMOV AL,AHOUT DX,AL ;8255初始化MOV DX,213H ;8255命令口MOV AL,10000011B ;8255控制字--A口方式0输出,B口方式0输入OUT DX,AL ;将控制字写入命令口;中断入口地址设置(用串指令)CLI ;关中断MOV AX,0MOV ES,AX ;置附件段基地址为0MOV DI,4*35H ;置附件段偏移地址到DIMOV AX,OFFSET INT_35 ;置中断程序首地址的偏移量到AXCLDSTOSW ;填首地址的偏移量到中断地址表MOV AX,SEG INT_35 ;置中断程序的段基地址到AXSTOSW ;填段基地址到中断地址表IN AL,21H ;读中断屏蔽寄存器IMRAND AL,11011111B ;设置中断屏蔽字OCW1,IR5请求被允许,其他请求被禁止 OUT 21H,AL ;将OCW1写入IMR中STI ;开中断WAIT:CMP COUNT,10 ;判断10次中断是否结束JNZ WAIT ;未结束,等待CLI ;10次中断后,关中断MOV AH,4CH ;结束,返回DOSINT 21H;延时程序DELAY PROCPUSH CX ;保护现场MOV CX,100H ;延时时间为处理一次CX自减1的时间乘以100HDELAY1: LOOP DELAY1POP CX ;恢复现场RET ;返回到调用处,继续执行DELAY ENDP;中断服务程序INT_35 PROCPUSH DX ;保护现场PUSH AXPUSH CXCLI ;关中断MOV AX,DATAMOV DS,AXINC COUNT ;中断次数加1MOV AL,COUNT ;将中断次数写入AL中MOV DX,210H ;8255数据口OUT DX,AL ;将中断次数输出到LED显示灯MOV CX,680HCMP COUNT,10JB GOON-randomirandom; ;低于10时跳转到GOONCMP COUNT,10JNZ L1 ;不等于10(此处即大于10)时跳转到L1 SUB SI,9 ;第10次中断时SI减去9,即归0L1:MOV AL,[SI] ;查表,对应0-9MOV DX,220H ;地址译码器连接六位数码管电路的数据口OUT DX,ALMOV DX,221H ;数据口MOV AL,00000001B ;指定六位数码管在最低位显示0-9OUT DX,ALCALL DELAY ;调用延时程序MOV AL,06H ;对应字符'1'MOV DX,220HOUT DX,ALMOV DX,221HMOV AL,00000010B ;指定六位数码管在次低位显示1OUT DX,ALCALL DELAYLOOP L1 ;CX=680HINC SI ;SI加1JMP L ;跳转至LGOON:INC SI ;SI加1MOV AL,[SI] ;查表MOV DX,220HOUT DX,ALMOV DX,221HMOV AL,00000001BOUT DX,ALL:MOV AL,20H ;写OCW2,送中断结束命令EOIOUT 20H,ALSTI ;开中断POP CX ;恢复现场POP AXPOP DXIRET ;中断返回INT_35 ENDPCODE ENDSEND START4.试验流程图:主程序流程图中断服务程序流程图。

  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。

相关文档
最新文档