实验六 8259A硬件中断实验

合集下载

8259A硬件中断实验

8259A硬件中断实验

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

二.实验目的1. 了解8259A中断控制器的工作原理。

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

3. 学会中断处理程序的编写。

三.实验电路及连线○20模块中的+PLUSE接⑨模块中的INT_0,⑨模块中的INT接实验机内核模块中的88INTR, ⑨模块中的INTA接实验机内核模块中的88/INTA 。

CS8259接200H,CS8279已固定接至238H。

四.实验说明1、运行该实验程序的方法是:先通过加载选项将8259A的初始化程序与中断处理程序送到RAM中。

2、本实验指导书只提供硬件中断0实验,中断方式为边沿触发、单片、全嵌套中断方式,且中断号从中断8开始。

使用者可以根据自己的需要设定为其他中断方式,且中断号可以设定从任一中断号开始。

3、实验方法:以硬中断0为例:(1)先加载8259A主中断程序(假定地址为8100:0),然后再加载中断程序IRQ0程序(假定地址为8200:0),这里的段地址的改变在菜单设置下面的实验机/仿真机设置对话框中进行操作(见图3-8)。

(2)进入TALK WITH 88ET选项下,键入SW0:0020<回车>0000,8200<回车>(将中断服务程序的入口地址8200:0000转入中断向量0000:0020开始的单元中),再执行G8100:0<回车>Y即可(执行主程序)。

这样设计的目的是为了让学生们更能理解中断的执行原理与过程。

注意:选择了哪个段地址进行加载,就在后面的操作中用那个段地址(就是黑体的段地址要对应)。

五.实验程序框图。

8259A的单极中断控制和ad转换

8259A的单极中断控制和ad转换

8259A的单极中断控制实验1.实验目的1)掌握中断控制器8259A与微机接口的原理和方法。

2)掌握中断控制器8259A的应用编程2.实验内容本实验中已设计有1片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7实验原理图如图所示。

8259A和8088系统总线直接相连,8259A上连有一系统地址线A0,故8259A有两个端口地址,本系统中为20H、21H。

20H用来写ICW11,21H用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写操作命令字。

OCW2、OCW3用端口地址20H,OCW1用端口地址21H,。

图中使用了3号中断源,IRQ33插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号.如果中断源电平信号不符合规定要求则自动转到7号中断,显示Err。

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

3.实验软件框图4.实验步骤1)连接好线路:8259A的IRQ33插孔和脉冲发生器单元SP插孔相连。

SP插孔初始电平置低电平。

2)运行实验程序。

3)按QAN键,每按2次产生一次中断,在显示器左边一位显示中断次数,满55次中断,显示器显示“8259 good”。

5.实验参考程序CODE SEGMENTASSUME CS:CODE INTPORT1 EQU 0020H INTPORT2 EQU 0021HINTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7 CONTPORT EQU 00DFH DATAPORT EQU 00DEH DATA0 EQU 0580H DATA1 EQU 0500H DATA2 EQU 0508H DATA3 EQU 0518H DATA4 EQU 0520HORG 1000H START: JMP Tint1Tint1: CLIMOV AX,0HMOV DS,AXMOV DX,CONTPORTMOV AL,00HOUT DX,AL;KEYBORD DISPLY MODEMOV AL,2AHOUT DX,AL;8279 CLOCKMOV AL,0d0hOUT DX,AL;8279 CLEARMOV AL,90hOUT DX,AL;READ FIFO RAM COMMAND TEST1: IN AL,DXAND AL,80HJNZ TEST1CALL FORMATCLIMOV DI,DATA0MOV CX,08HXOR AX,AXREP STOSWMOV SI,DATA3CALL LEDDISP ;DISP 8259-1MOV AX,0HMOV DS,AXCALL WRINTVER ;WRITE INTRRUPTMOV AL,13HMOV DX,INTPORT1OUT DX,ALMOV AL,08HMOV DX,INTPORT2OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0F7HOUT DX,ALMOV BYTE PTR DS:[0601H],01H ;TIME=1STIWATING: JMP WATINGWRINTVER:MOV AX,0HMOV ES,AXMOV DI,002CHLEA AX,INTQ3STOSWMOV AX,CSSTOSWMOV DI,003CHLEA AX,INTQ7STOSWMOV AX,CSSTOSWRETINTREEUP3:CLIMOV AL,DS:[0601H]CALL CONVERSMOV SI,DATA0CALL LEDDISPDMOV AL,20HMOV DX,INTPORT1OUT DX,ALADD BYTE PTR DS:[0601H],01HCMP BYTE PTR DS:[0601H],06HJNA INTRE1MOV SI,DATA4CALL LEDDISPINTRE3: JMP INTRE3CONVERS:MOV BH,0HAND AL,0FHMOV BL,ALMOV AL,CS:[BX+DATA2]MOV BX,DATA0MOV DS:[BX],ALRETINTRE1: MOV AL,20HMOV DX,INTPORT1OUT DX,ALSTIIRETINTREEUP7: CLIMOV SI,DATA1CALL LEDDISPMOV AL,20HMOV DX,INTPORT1OUT DX,ALIRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00 LED1: CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+SI]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETLEDDISPD:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00 LEDD1: CMP BYTE PTR DS:[0600H],07HJA LEDD2MOV BL,DS:[0600H]MOV BH,0HMOV AL,DS:[BX+SI]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LEDD1LEDD2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0500H],5050HADD BX,2MOV WORD PTR DS:[BX+0500H],0079HADD BX,2MOV WORD PTR DS:[BX+0500H],0000HADD BX,2MOV WORD PTR DS:[BX+0500H],0000HADD BX,2MOV WORD PTR DS:[BX+0500H],063FHADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],6D66HADD BX,2MOV WORD PTR DS:[BX+0500H],077DHADD BX,2MOV WORD PTR DS:[BX+0500H],6F7FHADD BX,2MOV WORD PTR DS:[BX+0500H],7C77HADD BX,2MOV WORD PTR DS:[BX+0500H],5E39HADD BX,2MOV WORD PTR DS:[BX+0500H],7179HADD BX,2MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D6FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],3F5EHADD BX,2MOV WORD PTR DS:[BX+0500H],5C3FHADD BX,2MOV WORD PTR DS:[BX+0500H],6D6FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRETCODE ENDSEND START6.思考题简述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-cs8259cs1-cs27300~07-LeD1~LeD8K1~K8-IR0~IR7InT-InT(8086cpu板)InTA-InTA(8086cpu板)2,编译调试程序3,全速运行程度,拨动某一电平开关,观察LeD的亮灭情况。

六,实验结果全速运行程序,由上向下拨动开关时,相应位置的LeD灯点亮,其余LeD灯全灭七,源代码Assumecs:coDecoDesegmenTpubLIcoRg100hsTART:moVcx,0sTART1:cLImoVDx,04A0hmoVAx,13houTDx,AxmoVDx,04A2hmoVAx,80h ouTDx,AxmoVAx,01houTDx,AxmoVAx,00houTDx,AxnopmoVAx,0moVDs,AxmoVADDDI,2DI,200hmoVDs:[DI],100h;初始化中断向量表moVAx,oFFseTint0moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint1moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint2moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint3moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint4moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint5moVDs:[DI],AxADDDI,2moVAx,oFFseTint6moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint7moVDs:[DI],AxADDDI,2;上述程序为芯片8259的初始化程序moVDs:[DI],100hmAIn:moVAx,0sTIwAITIng:cmpAx,0hJewAITIngmoVDx,04b0houTDx,AxmoVcx,0 DeLAY:LoopDeLAYJmpsTART1Int0:cLInopmoVAx,oFehIReTInt1:cLInopmoVAx,oFDhIReTInt2:cLInopmoVAx,oFbhIReTInt3:cLInopmoVAx,oF7hIReTInt4:cLInopmoVAx,oeFhIReTInt5:cLInopmoVAx,oDFhIReTInt6:cLInopmoVAx,obFhIReTInt7:cLInopmoVAx,o7FhIReT篇二:8259中断控制实验报告深圳大学实验报告班级:实验时间:实验报告提交时间:教务处制篇三:8259中断控制实验报告实验六8259中断控制一、实验目的1.学习8086/8088cpu中断系统的知识。

实验六8259单级中断控制器实验内容

实验六8259单级中断控制器实验内容

实验六. 8259单级中断控制器实验内容一、8259单级中断控制器实验目的:1.掌握8259中断控制器的接口方法.2.掌握8259中断控制器的应用编程.二、实验内容:本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表所示。

8259中断源中断类型号中断矢量表地址IR0 8 20H~23HIR1 9 24H~27HIR2 A 28H~2BHIR3 B 2CH~2FHIR4 C 30H~33HIR5 D 34H~37HIR6 E 38H~3BHIR7 F 3CH~3FH根据实验原理图5-14,8259A和8088系统总线直接相连,8259A 上连有一系统地址线A0,故8259A 有2 个端口地址,本系统中为20H、21H。

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

OCW2、OCW3 用口地址20H,OCW1用口地址21H。

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

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

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

三、实验线路连接:8259A的IR3插孔和脉冲发生器单元SP插孔相连。

SP插孔初始电平置为低电平。

四、实验软件清单:见随机光盘,文件名为H8259-1.ASM五、实验步骤:1、按图5-14连好实验线路2、运行实验程序:在DVCC-8086JHN上显示"8259-1"。

3、按AN按键,每按二次产生一次中断,在显示器左边一位显示中断次数,满5次中断,显示器显示"8259 good"。

实验-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中断实现交替闪灯实验组员:房皓 13410801 任课教师:李济生一、实验目的该实验能使学生掌握8259A矢量中断方式的硬件连接和软件编程的方法,同时使同学掌握中断和其它接口芯片配合来完成某一特定任务的方法。

二、实验内容每按动一次PLUS按钮,产生一次中断信号向8259A发出中断请求,在中断程序里将LED指示等交替点亮和熄灭。

选择完成在数码管上显示“8259-A”。

三、实验接线图图2-5 实验连线图四、实验步骤1、根据原理图正确连接实验线路(需要连接粗黑线)。

2、正确理解实验原理。

3、编写实验程序,并上机调试,观察实验结果。

五、实验结果运行程序后,波动开关,LED灯交替闪灯。

六、实验总结通过本次试验,我掌握了8259A中断控制器和微机接口的连接方法,并了解了8259A中断控制器的基本的工作原理和编程方法。

七、实验代码.Model small.386DATA SEGMENTNUM DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX;8259填写中断向量表CLI ;关中断CLD ;填写中断入口地址表0MOV AX,0HMOV DS,AX ;DS内清零MOV DI,4*35H ;35H为中断向量号MOV AX,OFFSET INT_35 ;中断服务程序入口偏移地址送AX MOV [DI],AXMOV AX,SEG INT_35 ;中断服务程序入口段基址送AX MOV [DI+2],AXMOV DX,203H ;初始化8255MOV AL,10000000B ;设置8255控制字,B口输出OUT DX,ALIN AL,21H ;读IMRAND AL,11011111B ;设置OCW1,开放IR5中断OUT 21H,AL ;写中断屏蔽字OCW1MOV BL,00000000B ;BL用于计数STI ;开中断AGAIN:JMP AGAIN ;一直等待中断MOV AX,DATAMOV DS,AXMOV AH,4CH ;结束,返回DOSINT 21HINT_35 PROC NEAR ;中断服务程序PUSH DX ;保护现场PUSH AXPUSH CXCLI ;关中断MOV AX,DATAMOV DS,AXXOR BL,11111111B ;反转MOV AL,BLMOV DX,201H ;8255B口数据口OUT DX,AL ;输出到LEDMOV AL,20H ;写OCW2,送中断结束命令EOI OUT 20H,ALSTI ;开中断POP CX ;恢复现场POP AXPOP DXIRET ;中断返回INT_35 ENDPCODE ENDSEND START。

定时器8253与中断控制器8259A实验

定时器8253与中断控制器8259A实验

定时器8253与中断控制器8259A实验实验七定时器8253与中断控制器8259A 实验二、实验电路五、实验项目1.该实验用PC 机内部的中断控制器8259A ,中断源用TPC-H 实验箱上的8253来产生,电路如图1所示,将8253计数器0,计数器1分别设置为方式3和方式2,计数初值设为2000,使8253每隔4秒产生一次中断请求。

2.编写程序,要求每次主机响应外中断IRQ7时,显示"THIS IS A 8259A INTERRUPT !",在键盘上敲任意一个键,程序退出。

3.修改电路和程序,直接用手动产生单个脉冲作为中断请求信号,要求每按一次开关产生一次中断,在屏幕上显示一次" THIS IS A 8259A INTERRUPT !",中断10次后程序退出。

六、编程提示1.在TPC-H 实验系统的接口卡上有一个跳线开关(JP ),可以选择IRQ2、IRQ3、IRQ4、IRQ7引到试验箱上的IRQ 插孔,出厂设置的是IRQ7。

2.由于9054的驱动程序影响直写9054芯片的控制寄存器,中断实验需要在纯DOS 的环境中才能正常运行。

3.由于TPC 卡使用PCI 总线,所以分配的中断号每台微机可能都不同,编程时需要了解当前的微机使用那个中断号并进行设置,获取方法如下:在纯DOS 环境下C:\ASM\>提示符下键入PORTR1后敲回车键,会得到:TPC PCI Card 9054 Chip I/O Base Adress :2000TPC PCI Card I/O Base Adress :2400TPC PCI Card Memory Base Adress :d2000000TPC PCI Card Interrupt Line :0A其中,2000为PCI 卡上9054芯片的基地址;2400为试验箱的基地址,2400/2407对应的是280/287H 插孔;0A 表示系统分配中断为IRQ10。

【8259中断操纵器实验实验报告】 8253操纵8259中断

【8259中断操纵器实验实验报告】 8253操纵8259中断

中断号 主 8259 IRQ0 主 8259 IRQ1 主 8259 IRQ2 主 8259 IRQ3 主 首先运行 CHEC 催序,查看 INTR 中断号及相 关信息。(3)参考试验流程图
8259 IRQ4 主 8259 IRQ5 主 8259 IRQ6 主 8259 IRQ7 从 8259 IRQ8 从 编写程序,然后编译链接。
试验前先运行 CHEC 僵序,得到 INTR 所对应的中断号、相 应的初始
为 1 级、8 级?15 级,然后
化指令字寄存器 ICW 及操作指令字寄存器 OCW 勺地
是 3 级?7 级
ห้องสมุดไป่ตู้
址、开屏蔽的指令字、中断矢虽地址和 PCI 卡中断操纵寄存
在扩展系统总线上的 INTR 对应的中断线就是 PC 机保存 中断其中的
8259 IRQ9 从 8259 IRQ10 从 8259 IRQ11 从 8259 IRQ12 从 8259 IRQ13
(4)将单次脉冲单元的 KK1 琏接到系统总线上的 INTR。
从 8259 IRQ14 从 8259 IRQ15 功能 日时钟/计数器 0 键盘 接从片 8259 串
(5)运行程序,按动 KK1 成键,观看中断是否产生。
第1页共1页
本文格式为 Word 版,下载可任意编辑,页眉双击删除即可。
应哪一级中断,3〕响应中断时,向 CPU 传送中断类型号。
图 6-2 ICW4 格式
8259 的内部结构和引脚如图 6-1 所示。
图 6-3 OCW 指令字格式
8259 的指令共有 7 个,一类是初始化指令字,另一类 是操作指令。
本文格式为 Word 版,下载可任意编辑,页眉双击删除即可。
8259 中断操纵器实验实验报告】 8253 操纵 8259 中 断

8259中断控制实验

8259中断控制实验

深圳大学实验报告课程名称:实验项目名称:学院:专业:指导教师:报告人: 学号: 班级:实验时间:实验报告提交时间:教务部制一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以.PUS.DS就起到这样的作用.在中断程序结束后,为了能回到之前执行的程序入口,还得用PO.D.指令返回现场.这个实验是关于8259的单中断,不牵涉级联问题,所以,8259的初始化只需要看主片就可了.初始化的时候,一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入始化字.8259有四个初始化控制字ICW1,ICW2,ICW3,ICW4,由于8259只有一根地址线,因此对各个制字的操作是按照一定的顺序并结合某些数据位来进行寻址设置的.当初始化完成后,对8259的操作命令字的寻址是通过8259的地址线A0和某些数据位结合来进行的.其初始化控制字和控制命令辽的赋值由我已经在注释中给出.另外,在初始化程序中我们用了STI这条指令打开中断,那么进入MIR7中断程中,我们为什么又执行STI这条指令呢,会不会重复了?经过实验,我们知道这条指令并不是没用的,如果少后面这条STI指令,实验中我们会发现,当按一次KK1开关的时候,屏幕会显示一个字符7,但是,再按KK1的时候,就没有反应了,起初并不知道怎么解释这个现象,后来才知道8086CPU执行完一次中断后,会自动将相应的中断位屏蔽,所以,如果我们想按一次KK1就发生一次中断,就得重新在程序中打开中断,也就是STI.另外,RET指令是短信返回指令,而IRET指令则是中断短程返回指令,一般中断程序也大多是短程的.那么,中断发生的时候,CPU又是怎样进入中断子程序的呢?这就需要我们正确地设置中向量表的了.实验板上主中断序号7可用,也就是我们得利用3CH-3FH这矢量地址.所以在程序开始的候,就采用MO.AX.OFFSE.MIR7,MO.SI.003CH,MO.[SI].AX这三句来获得偏移地址IP,接着高址位置又用MO.AX.CS,MO.SI.003EH,MO.[SI].AX这三条指令来获得CS.CPU根据CS,IP 就能转入正确的中断程序执行中断了.而中断程序结尾处,用了MO.AL.20. OU.20H.AL以及IRET这三条指令.是为了说明这是正常的EOI, 可以通知8259A此次服务结束.深圳大学学生实验报告用纸注: 1.报告内的项目或内容设置, 可根据实际情况加以调整和补充。

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,进行中断响应。

实验六 8259中断控制器实验

实验六 8259中断控制器实验

实验六8259中断控制器实验6.1 实验目的(1) 学习中断控制器8259的工作原理。

(2) 掌握可编程控制器8259的应用编程方法。

6.2 实验设备PC微机一台、TD-PIT+实验系统一套。

6.3 实验内容1. 单中断应用实验(1)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。

(2)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“Hello”,中断5次后退出。

2.扩展多中断源实验利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。

编写程序对8259控制器的IR0和IR1中断请求进行处理。

6.4 实验原理1. 8259控制器的介绍中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。

它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。

同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。

它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。

8259A的内部结构和引脚如图6-1所示。

8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。

8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。

ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。

8259中断控制器实验

8259中断控制器实验

实验五、8259中断控制器实验和作业实验题目:8259中断控制器点亮LED灯实验一、实验目的了解8259中断控制器的基本使用,掌握中断程序编程技术。

二、实验内容使用单脉冲电路产生的脉冲信号作为386EX模块8259中断请求输入,每按一次单脉冲按键,触发一次中断,通过8255 PC0驱动LED交替亮和灭,硬件连接如题图所示。

基础三题图、8259中断控制器实验连线示意图三、实验提示MIR5是接到PC的主8259A中断控制器的IR5端,因此不需要对8259A初始化(ICW1-ICW4),但要进行设置中断矢量和打开中断等操作;注意:TPC实验平台中采用的是非自动结束,则需要在中断结束前(中断服务程序的最后)发中断结束命令。

另外、写入中断屏蔽字应采用“读—修改—写”过程,如下所述:IN AL,21HAND AL,0DFH软件实现流程图.MODEL SMALL.386CODE SEGMENTASSUME CS:CODESTART: MOV DX,203HMOV AL,90H ;设置8255控制字,OUT DX,ALMOV CL,0CLI ;关386 CPU中断;写入中断屏蔽字OCW1时,采用读取-修改-写入的顺序IN AL,21HAND AL,11011111B ;MASK BYTEOUT 21H,AL;将中断入口地址写入中断向量表PUSH DSMOV BX,0MOV DS,BXLEA AX,CS:INT_PROC ;将中断程序的入口地址给AXMOV BX,5 ;N=IRX 中断IR5MOV SI,30H ;BASE =30H 基址ADD SI,BX;基址+IR5=中断类型号为35HSAL SI,2 ; 中断类型号为35H X 4=中断向量存于SIMOV DS:[SI],AX ;将入口地址AX送到中断向量表中PUSH CSPOP AXMOV DS:[SI+2],AXPOP DSSTI ;开386 CPU中断LLL: JMP LLLINT_PROC PROC FARPUSH AXCMP CL,0JZ SET0MOV DX,203H ;PC0=1MOV AL,01OUT DX,ALMOV CL,0JMP ENDINTSET0: MOV DX,203H ;PC0=0MOV AL,00OUT DX,ALMOV CL,1ENDINT:MOV AL,20HOUT 20H,ALPOP AXSTIIRETINT_PROC ENDPCODE ENDSEND START。

实验六 8259中断控制器实验

实验六 8259中断控制器实验

实验六 8259中断控制器实验实验项目名称:8259中断控制器实验实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:2一、实验目的1、熟悉并且理解中断技术,体验中断技术对于实时的可编程系统的意义。

2、掌握中断技术所涉及的线路连接、初始化、优先级、屏蔽、中断响应、转入中断服务程序、中断结束、反复接收中断的过程与参数设置,尤其是硬件处理与软件处理的交汇点——中断向量表。

3、掌握中断控制各参数的初始化和更新方法。

二、实验内容和要求1、用单脉冲发生器(P0)作中断源,每按一次产生一次中断申请,改变一个发光二极管的亮灭状态。

如果没有中断源,则不产生中断,发光二极管的亮灭状态保持不变。

2、实验原理图三、实验主要仪器设备和材料1、EL实验箱2、计算机3、中断控制板四、实验方法、步骤及结果测试1、将中断控制板插入EL实验箱左上角的40针插座上;2、将单脉冲发生器的输出P0与8259A中断控制板的中断源IR0相连;3、将8259中断控制板的片选信号CS59与CS7相连;4、从CS0~CS7片选信号中选一个信号CS1(04b0h)与输出接口芯片74LS273的片选信号CSU8相连,74LS273的输出信号SO0接一个发光二极管L1;5、编程并调试,在中断服务程序设置断点,按下PUL键、产生单脉冲后,能够观察到发光二极管亮灭控制器的状态翻转,以及相应的发光二极管的亮灭;6、实验源程序(实验程序名T4.ASM)Assume cs:codeCode segment publicOrg 100hStart:Mov dx,3f0h ;8259初始化Mov al,13h ;ICW1设置Out dx,alMov dx,3f2hMov al,80hOut dx,al ;ICW2设置中断类型为80HMov al,03hOut dl,al ;ICW4设置Mov ax,00hOut dx,al ;OCW1设置,允许所有8个中断Mov ax,00h ;设置中断向量表OUT DX,AXMOV AX,00hMov ds,axMov si,200hMov ax,offset hintMov ds:[si],axAdd si,2Mov ds:[si],0100h ;设置中断服务程序入口地址XOR AL,AL ;初始化发光二极管亮灭控制器STI ;IF<-1,开中断Waiting:NOPJMP waiting ;在主程序无限循环Hint: ;中断服务子程序XOR AL,1 ;每响应中断、进入中断服务程序,发光二极管状态翻转一次MOV DX,04B0HOUT DX,ALIRETCode endsEnd start说明:8086的中断系统是向量中断方式,不同类型的中断向量存于不同的位置,其计算方法是:中断类型N*4中断类型的高5位由8259读出,低3位有IR的编码确定,IR0=000IR1=001...IR7=111五、实验报告要求1、试说明本实验中8259A中断控制器各寄存器ICW1、ICW2、ICW4、OCW1的初始化设置含义。

8259中断实验报告

8259中断实验报告

8259中断实验报告引言本实验旨在通过实践掌握8259中断控制器的工作原理和使用方法。

8259中断控制器是一种在计算机系统中用于管理和调度中断请求的硬件设备。

本实验将通过编写代码并进行实际测试,来展示8259中断控制器的功能和效果。

实验过程步骤一:准备工作在开始实验之前,我们需要准备以下材料和工具:•一台支持8259中断控制器的计算机•8259中断控制器的手册或技术资料•一份适用于目标计算机系统的编程环境步骤二:了解8259中断控制器在开始编写代码之前,我们需要对8259中断控制器有一定的了解。

查阅8259中断控制器的手册或技术资料,了解其工作原理、寄存器结构和编程方法。

步骤三:编写初始化代码在开始使用8259中断控制器之前,我们需要对其进行初始化配置。

根据目标计算机系统的要求,编写初始化代码,并将其加载到计算机系统中。

步骤四:编写中断处理程序中断处理程序是在发生中断请求时由8259中断控制器调用的代码段。

根据实际需求,编写中断处理程序,并将其加载到计算机系统中。

步骤五:测试代码在完成初始化和中断处理程序的编写后,我们需要进行代码测试。

通过触发中断请求,检查中断处理程序是否能够正确地被调用和执行。

步骤六:分析实验结果根据测试结果,分析实验中发生的问题和异常情况。

比较预期结果与实际结果之间的差异,并进一步优化代码和配置。

结果与讨论在本实验中,我们成功地使用了8259中断控制器,并编写了相应的初始化代码和中断处理程序。

经过测试,中断处理程序能够正确地被调用和执行。

然而,在实验过程中也遇到了一些问题。

例如,可能会出现中断处理程序无法正确响应中断请求的情况。

这可能是由于配置不当或代码逻辑错误所致。

在遇到问题时,我们可以通过查阅8259中断控制器的手册或技术资料,以及调试工具来进行排查和修复。

通过本实验,我们进一步加深了对8259中断控制器的理解,掌握了其工作原理和使用方法。

在实际应用中,8259中断控制器可以广泛应用于各种计算机系统,提供可靠的中断管理和调度功能。

8259中断控制器实验

8259中断控制器实验

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

⑵掌握8259中断控制器的应用编程。

二、实验内容编制程序,利用8259芯片的IR作为中断源,产生单一中断,系统显示中断号“7”。

三、程序流程四、实验电路五、编程提示⑴8259芯片介绍中断控制器8259A是专业性为控制优先级中断设计的芯片。

它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。

因此无需附加任何电路,只需对8259A 进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。

同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

⑵本实验中使用7号中断源IR7,“SP”插孔和IR7相连,中断方式为边沿触发方式,每按二次AN按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1个字符“7”,满“7”次后显示“P.”继续等待中断。

六、实验连线Dais系列实验箱连线七、实验步骤编写源程序,编译、装载,连续运行程序,按动AN按钮,LED数码管从最高位开始依次显示“7”,显示满后,最高位显示“P.”,继续等待中断。

八、实验参考程序CODE SEGMENTASSUME CS:CODE, DS:CODE, ES:CODEORG 3400HStart: JMP P8259ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3HBUF DB ?,?,?,?,?,?Port0 EQU 0FFE0HPort1 EQU 0FFE1HP8259: CLICALL WP ;初始化显示“P.”MOV AX,OFFSET INT8259 ;设置中断向量MOV 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,20H ;发中断结束命令MOV DX,Port0OUT DX,ALmov cx,0050hxxx59: push cxcall dispop cxloop xxx59pop cxmov cx,3438hpush cxSTIIRETX59: MOV SI,0000HCALL WPJMP XX59;==============================FOR8259:MOV AL,13H ;初始化8259MOV 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,ZXK ;显示相应数字OUT DX,ALMOV AL,CLMOV DX,ZWK ;选择显示的数码管OUT DX,ALPUSH CXMOV CX,0100HDELAY: LOOP $POP CXCMP CL,01HJZ EXITINC BXSHR CL,1JMP DIS1EXIT: MOV AL,00HMOV DX,ZWKOUT DX,ALRET;--------------------------CODE ENDSEND Start一、实验目的⑴掌握可编程I/O接口芯片8255的接口原理,熟悉对8255初始化编程和输入、输出软件的设计方法。

完整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工作在全嵌套方式下,在中断处理程序结束时,需要发中断结束命令。

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的实验设计
2
§ 8259A的实验设计
将单脉冲电路产生的脉冲信号作为中断源,编写主程序和中断服务程序, 要求每当按下单脉冲开关时,产生一次中断,使4个LED显示一个BCD码; 且当显示完0~9十个数字的BCD码后,退出程序。
1.4 实验原理
8259A是一种常用的可编程中断控制器。它能直接管理8级中断,并有多种 工作方式,可通过写入初始化命令字ICW1~ICW4和操作命令字OCW1~ OCW3进行选择中断源的触发方式、中断的屏蔽方式、中断的优先权高低、 中断的结束方式等等。需要注意的是,由于8259A的端口地址只有两个,所 以对初始化命令字的写入必须按照规定的流程来进行。8259A的内部结构和 引
显示情况。
1.6 程序下载方法
在串行监控方式下,先通过加载选项将8259A的主程序送到RAM中(假定 地址为8100:0),接着再加载中断服务程序(假定地址为8200:0)。
进入TALK WITH 88ET选项,在监控状态下键入:
6
§ 8259A的实验设计
(下面假设+PULSE接IRQ0,且类型号为8)
(AL)左移一位 N
CF=0?
给8259A发EOI命令 返回
结束
8
图5.27 主程序流程图
图5.28 中断服务程序流程图
微型计算机接口技术
3
§ 8259A的实验设计
脚如图5.12、5.11所示,所有命令字的格式见5.3.5小节。
1.5 实验说明及步骤
本实验中,8259A的IR0~IR7中的任一端接受来自脉冲 产生电路的中断请求信号。当+PULSE端来一个正脉冲 时,8259A产生一次中断,使8255A输出数据,让8个 LED从左至右逐个点亮一个循环。因此,8259A应工作 于边沿触发、普通屏蔽、普通全嵌套、非自动中断结 束方式。8255A的端口A接8个LED,工作于方式0输出。 8259A和脉冲产生电路见图5.26。实验1的主程序和中 断服务程序的流程图见图5.27、5.28,实验2的程序与 此类似,这里略过。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

二.实验目的1. 了解8259A中断控制器的工作原理。

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

3. 学会中断处理程序的编写。

三.实验电路及连线20模块中的+PLUSE接第8模块中的INT_0,第8模块中的INT接模块中的88INTR,第8模块中的INTA接实验机内核模块中的88/INTA 。

CS8259接200H,CS8279已固定接至238H。

四.实验说明1、运行该实验程序的方法是:先通过加载选项将8259A的初始化程序与中断处理程序送到RAM中。

2、本实验指导书只提供硬件中断0实验,中断方式为边沿触发、单片、全嵌套中断方式,且中断号从中断8开始。

使用者可以根据自己的需要设定为其他中断方式,且中断号可以设定从任一中断号开始。

3、实验方法:以硬中断0为例,先加载8259A主中断程序(注意加载地址为8100:0),然后再加载中断程序IRQ0程序(加载地址为8200:0)。

然后进入TALK WITH 88ET选项下,键入SW 0:0020↙0000,8200↙,再执行G8100:0↙Y即可。

这样设计的目的是为了让学生们更能理解中断的执行原理与过程。

五.实验程序框图六.实验程序如下:(2)8259A主程序:;ORG 8100:0INT00 EQU 200hINT01 EQU 201hZ8279 EQU 239HD8279 EQU 238HLEDMODE EQU 00HSCANFRQ EQU 38Hdata segmentdata endsstack segmentsta dw 50 dup(?)top equ length stastack endsCODE SEGMENTASSUME CS:CODE,DS:data,SS:stackSTART:CLI ;关中断MOV AL,13H ;ICW1:边沿触发,单片,要ICW4MOV DX,INT00OUT DX,ALNOPNOPMOV AL,8 ;中断号从8开始MOV DX,INT01OUT DX,ALNOPNOPMOV AL,3 ;全嵌套方式,86/88系统9MOV DX,INT01OUT DX,ALNOPNOPMOV DX,INT01MOV AL,00H ;八个中断全部开放OUT DX,ALNOPNOPMOV DX,INT00MOV AL,20H ;非特殊EOI结束中断OUT DX,ALNOPNOPMOV DX,Z8279 ;8279左边输入,八位显示,外部译码MOV AL,LEDMODEOUT DX,ALMOV AL,SCANFRQ ;设置扫描频率OUT DX,ALMOV AL,0D0HOUT DX,ALMOV CX,0FFHL2: LOOP L2MOV AL,90H ;写显示缓冲区RAM命令字OUT DX,ALMOV DX,D8279MOV AL,67H ;显示中断前字样"IRQ"OUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALSTI ;开中断x2: hlt ;等待硬件中断mov cx,5x1: push cxmov cx,0loop $pop cxloop x1mov dx,z8279mov ax,0d0hout dx,almov cx,0ffhl5: loop l5mov al,90hout dx,almov dx,d8279mov al,67h ;中断返回,显示"E...IRQ0"字样out dx,almov al,50hout dx,almov al,0fhout dx,almov al,80hout dx,alout dx,almov al,79hout dx,aljmp short x2code endsend start(2)IRQ0.ASM 中断子程序;ORG 8200:0Z8279 EQU 239HD8279 EQU 238Hdata segmentdata endsstack segmentstack endsCODE SEGMENTASSUME CS:CODE,DS:data,SS:stack START:STIMOV DX,Z8279MOV AL,0D0HOUT DX,ALMOV CX,0FFHl1: loop l1MOV AL,90HOUT DX,ALMOV DX,D8279mov al,80hout dx,alout dx,alout dx,alMOV AL,3FHOUT DX,ALMOV AL,67HOUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALIRETCODE ENDSEND START实验七直流电机驱动实验一.实验要求利用0832D/A转换输出直流量,控制直流电机的转速。

二.实验目的了解直流电机控制的基本方法。

三.实验电路及连线CS0832接8088译码地址200H,CS8279已固定接至238H。

第15模块的COUT接C+。

四.实验说明1.直流电机转速调节某些场合往往要求直流电机的转速在一定范围内可调节,例如,电车、机床等,调节范围根据负载的要求而定。

调速可以有三种方法:(1)改变电机两端电压;(2)改变磁通;(3)在电枢回路中,串联调节电阻。

本实验采用第一种方法:通过改变施加于电机两端的电压大小达到调节直流电机转速的目的。

本实验用DAC0832D/A转换输出控制直流电机两端电压。

2.直流电机运转方向控制要改变直流电动机的转向,必须改变电磁转矩的方向。

根据左手定则,改变电磁转矩的方法有两种方法:(1)改变电枢电流的方向;(2)改变磁通的方向。

本实验采用第一种方法。

本实验用实验机键盘输入来控制直流电机的速度。

在运行过程中,可按动小键盘的“0─9”数码键,控制电机转速,按“F”键退出程序。

五.实验程序框图六.实验程序:D0832 EQU 200HC8279 EQU 239HD8279 EQU 238H CODE SEGMENTASSUME CS:CODE,DS:CODE START:PUSH CSPOP DSINI:MOV DX,D0832MOV AL,00HOUT DX,ALMOV DX,C8279MOV AL,00HOUT DX,ALMOV AL,90HOUT DX,ALMOV AL,34HOUT DX,ALMOV AL,0D2HOUT DX,ALJMP SHORT $+2 WAIT1:IN AL,DXMOV AH,ALAND AL,80HCMP AL,80HJE W AIT1MOV AL,AHAND AL,0FHCMP AL,00HJE W AIT1RUN:CALL CHKKEYCALL DISPLAYMOV DX,D0832OUT DX,ALJMP RUN CHKKEY PROC NEAR RDKEY:MOV DX,C8279IN AL,DXMOV AH,ALAND AL,80HCMP AL,80HJE RDKEYMOV AL,AHAND AL,0FHCMP AL,00HJE RDKEYMOV AL,40HOUT DX,ALMOV DX,D8279IN AL,DXCHK:CMP AL,0FHJE QUITCMP AL,0AHJNC RDKEYMOV SPDNUM,ALLEA BX,SPDXLATMOV AH,ALRTN:MOV DX,C8279MOV AL,0C2HOUT DX,ALMOV AL,AHRETCHKKEY ENDPDISPLAY PROC NEARMOV AH,ALMOV DX,D8279LEA BX,LEDMOV AL,SPDNUMXLATOUT DX,ALLEA SI,DSPMOV CX,0007H LOOP1:MOV AL,[SI]OUT DX,ALINC SILOOP LOOP1MOV AL,AHRETDISPLAY ENDPQUIT:MOV DX,D0832MOV AL,00HOUT DX,ALMOV DX,C8279MOV AL,0D2HOUT DX,ALHLTLED DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHSPD DB 60H,70H,80H,90H,0A0HDB 0B0H,0C0H,0D0H,0E0H,0FFHDSP DB 00H,5EH,79H,79H,73H,6DH,0DEHSPDNUM DB 0CODE ENDSEND START实验八步进电机驱动实验一.实验要求利用8255的PC口PC0-PC3轮流输出脉冲序列,实验机上键盘控制步进电机的转速和转动方向。

二.实验目的1.了解控制步进电机的基本原理。

2.掌握控制步进电机转动的编程方法。

三.实验电路及连线CS8255接200H,CS8279已固定接至238H。

PC0-PC3接至SMA-SMD。

四.实验说明1. 本实验提供的程序是供四相步进电机使用。

本实验使用的步进电机用直流+12V电压,电机线圈由A、B、C、D四相组成。

2. 驱动方式为四相单四拍方式,各线圈通电顺序如下表。

表中首先向A相线圈输入驱动电流,接着向B,C,D线圈通电,最后又返回到A相线圈驱动,按这种顺序轮流切换,电机轴按顺时针方向旋转。

若通电顺序相反,则电机轴按逆时针方向旋转。

3. 在运行过程中,可按动小键盘的“0─9”数码键,控制步进电机的转速,按“B或C”键控制步进电机的方向,按“F”键退出。

五.实验程序框图六.实验程序:C8279 EQU 20AHD8279 EQU 208HC8255 EQU 203HP8255C EQU 202H CODE SEGMENTASSUME CS:CODE,DS:CODE START:PUSH CSPOP DSINI:MOV DX,C8255MOV AL,80HOUT DX,ALMOV DX,C8279MOV AL,00HOUT DX,ALMOV AL,2AHOUT DX,ALMOV AL,90HOUT DX,ALMOV AL,0D1HOUT DX,ALJMP SHORT $+2WAIT1:IN AL,DXMOV AH,ALAND AL,80HJNZ WAIT1MOV AL,AHAND AL,0FHCMP AL,00HJE W AIT1LEA BX,STEPRUN:CALL CHKKEYCALL DISPLAYMOV CX,08HLOOP3:MOV DX,P8255CMOV AL,[SI]OUT DX,ALINC SICALL DELAYLOOP LOOP3JMP RUNCHKKEY PROC NEAR RDKEY:MOV DX,C8279IN AL,DXMOV AH,ALAND AL,80HCMP AL,80HJE RDKEYMOV AL,AHAND AL,0FHCMP AL,00HJE RTNMOV AL,40HOUT DX,ALMOV DX,D8279IN AL,DXCHK:CMP AL,15HJE QUITCMP AL,0AHJNC DIREMOV DELAYTIME,ALJMP RTNDIRE:CMP AL,12HJNE NEXTMOV DIRDSP,40HLEA BX,STEPJMP RTNNEXT:CMP AL,13HJNE RTNMOV DIRDSP,46HLEA BX,STEPADD BX,07HRTN:MOV SI,BXRETCHKKEY ENDPDELAY PROC NEARPUSH CXMOV CX,0AHSUB CL,DELAYTIME LOOP1:PUSH CXMOV CX,03FFH LOOP2:NOPLOOP LOOP2POP CXLOOP LOOP1POP CXRETDELAY ENDPDISPLAY PROC NEARPUSH BXMOV DX,D8279MOV AL,DELAYTIMELEA BX,LEDXLATOUT DX,ALMOV AL,DIRDSPOUT DX,ALMOV CX,0006HLEA BX,DSPLOOP4:MOV AL,[BX]OUT DX,ALINC BXLOOP LOOP4MOV DX,C8279MOV AL,0C2HOUT DX,ALPOP BXRETDISPLAY ENDPQUIT:MOV DX,C8279MOV AL,0D2HOUT DX,ALjmp $LED DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH DSP DB 5EH,79H,79H,73H,6DH,0EDH DELAYTIME DB 01HSTEP DB 04H,05H,01H,09H,08HDB 0AH,02H,06H,02H,0AHDB 08H,09H,01H,05H,04H DIRDSP DB 40HCODE ENDSEND START实验十串并转换实验一.实验要求利用8255并行口和并行输出串行移位寄存器74LS164,扩展一位数码显示在数码显示器上循环显示0-9这10个数字。

相关文档
最新文档