您好,欢迎访问三七文档
实用文档XX学院实验报告实验名称姓名学号班级教师日期实用文档一、实验容与要求1.1实验容本次实验分为如下3个子实验:(1)单中断请验:利用系统总线上中断请求信号MIR7,设计一个单一中断请验;(2)双中断优先级实验:利用系统总线上中断请求信号MIR6和MIR7,设计一个双中断优先级应用实验,观察8253对中断优先级的控制;(3)级联中断实验:利用系统总线上中断请求信号MIR7和SIR1,设计一个级联中断应用实验。1.2实验要求本次实验中三个子实验的实验要求如下:(1)单中断请验:单脉冲KK1+与主片8259的IR7相连。每按KK1+,进入一次中断,输出7;(2)双中断优先级实验:单脉冲KK1+连主片8259的IR7,KK2+连其IR6。每当KK1+按下时显示“7”,每当KK2+按下显示“6”;(3)级联中断实验:单脉冲KK1+连主片8259的IR7,KK2+连从片的IR1。每当KK1+按下时显示“M7”,每当KK2+按下显示“S1”。二、实验原理与硬件连线2.1实验原理(1)中断控制器8259简介在Intel386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的部连接及外部管脚引出如图1-1:实用文档主片8259A从片8259AINTINTCAS2:0CAS2:0IR2IR4IR6IR7IR1INTR(内核)串口0MIR6MIR7SIR1图1-18259部连续及外部管脚引出图表1-1列出了中断控制单元的寄存器相关信息。表1-1ICU寄存器列表寄存器口地址功能描述ICW1(主)ICW1(从)(只写)0020H00A0H初始化命令字1:决定中断请求信号为电平触发还是边沿触发。ICW2(主)ICW2(从)(只写)0021H00A1H初始化命令字2:包含了8259的基址中断向量号,基址中断向量是IR0的向量号,基址加1就是IR1的向量号,依此类推。ICW3(主)(只写)0021H初始化命令字3:用于识别从8259设备连接到主控制器的IR信号,部的从8259连接到主8259的IR2信号上。ICW3(从)(只写)00A1H初始化命令字3:表明部从控制器级联到主片的IR2信号上。ICW4(主)ICW4(从)(只写)0021H00A1H初始化命令字4:选择特殊全嵌套或全嵌套模式,使能中断自动结束方式。OCW1(主)OCW1(从)(读/写)0021H00A1H操作命令字1:中断屏蔽操作寄存器,可屏蔽相应的中断信号。OCW2(主)OCW2(从)(只写)0020H00A0H操作命令字2:改变中断优先级和发送中断结束命令。OCW3(主)OCW3(从)(只写)0020H00A0H操作命令字3:使能特殊屏蔽方式,设置中断查询方式,允许读出中断请求寄存器和当前中断服务寄存器。IRR(主)IRR(从)(只读)0020H00A0H中断请求:指出挂起的中断请求。ISR(主)ISR(从)(只读)0020H00A0H当前中断服务:指出当前正在被服务的中断请求。POLL(主)POLL(从)(只读)0020H0021H00A0H00A1H查询状态字:表明连接到8259上的设备是否需要服务,如果有中断请求,该字表明当前优先级最高的中断请求。实用文档初始化命令字1寄存器(ICW1)说明见图1-2所示。0001LS001700:边沿触发1:电平触发ICW1图1-2初始化命令字1寄存器初始化命令字2寄存器(ICW2)说明见图1-3所示。T7T6T5T4T300070ICW2中断向量地址图1-3初始化命令字2寄存器初始化命令字3寄存器(ICW3)说明,主片见图1-4,从片见图1-5。S7S6S5S4S3S2S1070S7-S3:0表示无8259被连接到主片上1表示有8259被连接到主片上S2:0表示内部从片没被使用1表示内部从片被级联到主片的IR2上S1:0表示无8259通过IR1连接到主片上1表示有8259通过IR1连接到主片上ICW3(主片)图1-4主片初始化命令字3寄存器0000001070ICW3(从片)图1-5从片初始化命令字3寄存器初始化命令字4寄存器(ICW4)说明见图1-6。实用文档000SNFM00AEOI170ICW4SNFM:0=选择全嵌套模式1=选择特殊全嵌套模式,仅主8259能够工作在特殊全嵌套模式AEOI:0=禁止中断自动结束1=使能中断自动结束,仅主8259能够工作在中断自动结束方式图1-6初始化命令字4寄存器操作命令字1寄存器(OCW1)说明见图1-7。M7M6M5M4M3M2M1M070OCW1M7--M0:0=对应IR信号上的中断请求得到允许1=对应IR信号上的中断请求被屏蔽注意:设置屏蔽位不影响各自中断挂起位图1-7操作命令字1寄存器操作命令字2寄存器(OCW2)说明如图1-8所示。70OCW2RSLEOI00L2L1L0RSLEOI命令000取消优先级自动循环*001一般的中断结束命令010无操作011特殊的中断结束命令**100中断优先级自动循环*101在一般中断结束方式中优先级循环110优先级特殊循环方式**111在特殊中断结束方式中优先级循环***当8259工作在中断自动结束方式下时,这些情况可以改变优先级结构。**在这些情况下优先级由L2:L0指定。L2、L1、L0:在给出特殊的中断结束命令时,L2、L1、L0指出了具体要清除当前中断服务寄存器的哪一位;当给出特殊的优先级循环方式命令时,L2、L1、L0指出了循环开始时哪个中断的优先级最低。图1-8操作命令字2寄存器操作命令字3寄存器(OCW3)说明如图1-9所示。实用文档0ESMMSMM01PRRRIS70OCW3ESMMSMM00无影响01无影响10禁止特殊屏蔽模式11使能特殊屏蔽模式P:设置该位使8259工作在中断查询方式RRRIS00无影响01无影响10读中断请求寄存器IRR11读当前中断服务寄存器ISR图1-9操作命令字3寄存器查询状态字(POLL)说明如图1-10所示。INT----L2L1L070POLLINT:0=无请求1=连接在8259上的设备请求服务L2、L1、L0:当INT为1时,这些位指出了需要服务的最高优先级的IR;当INT为0时这些位不确定。图1-10程序状态字寄存器在对8259进行编程时,首先必须进行初始化。一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。在初始化主片8259时,写入初始化命令字的顺序是:ICW1、ICW2、ICW3、ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC联机的串口通信使用,其它中断源被屏蔽。中断矢量地址与中断号之间的关系如表1-2所示:表1-2中断矢量地址与中断号关系表主片中断序号01234567功能调用08H09H0AH0BH0CH0DH0EH0FH矢量地址20H~23H24H~27H28H~2BH2CH~2FH30H~33H34H~37H38H~3BH3CH~3FH说明未开放未开放未开放未开放串口未开放可用可用从片中断序号01234567功能调用30H31H32H33H34H35H36H37H矢量地址C0H~C3HC4H~C7HC8H~CBHCCH~CFHD0H~D3HD4H~D7HD8H~DBHDCH~DFH说明未开放可用未开放未开放未开放未开放未开放未开放实用文档2.2硬件连线(1)单中断实验:实验接线图如图1-11所示,单次脉冲输出KK1+与主片8259的IR7相连(与实验平台中的MIR7相连),每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”;单次脉冲单元系统总线MIR7主8259KK1+图1-11单中断实验硬件连线图(2)双中断优先级实验:实验接线图如图1-12所示,KK1+和KK2+分别连接到主片8259的IR7(与实验平台MIR7相连)和IR6(与实验平台MIR6相连)上,当按一次KK1+时,显示屏上显示字符“7”,按一次KK2+时,显示字符“6”;单次脉冲单元系统总线MIR6主8259KK2+MIR7KK1+图1-12双中断优先级实验硬件连线图(3)级联双中断优先级实验:实验接线图如图1-13所示,KK1+连接到主片8259的IR7(与实验平台MIR7相连)上,KK2+连接到从片8259的IR1(与实验平台SIR1相连)上,当按一次KK1+时,实用文档显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。单次脉冲单元系统总线MIR6从8259KK2+MIR7KK1+主8259图1-13级联双中断优先级实验硬件连线图三、设计思路、步骤和程序流程图3.1设计思路(1)单中断实验:采用一片8259芯片和KK1+单次脉冲开关,首先让程序进入死循环,等待中断,每按动一次单次脉冲,产生一次外部中断,调用中断程序,在显示屏上输出一个字符“7”。(2)双中断优先级实验:采用一片8259芯片和KK1+与KK2+单次脉冲开关,首先让程序进入死循环,等待中断,当按一次KK1+或KK2+时,产生一次外部中断,调用对应的中断程序,在显示屏上输出对应的字符“7”和“6”。(3)级联双中断优先级实验:采用两片8259芯片,一片为主片,一片作为从片,以及KK1+与KK2+单次脉冲开关。首先让程序进入死循环,等待中断,当按一次KK1+或KK2+时,产生一次外部中断,调用对应的中断程序,在显示屏上输出对应的字符串“M7”和“S1”。3.2实验步骤(1)单中断实验1.按图1-11连接实验线路;2.编写实验程序,经编译、无误后装入系统;3.运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”,说明响应了中断。(2)双中断优先级实验1.按图1-12连接实验线路;2.编写实验程序,经编译、无误后装入系统;实用文档3.运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”,重复按单次脉冲开关KK2+,显示屏会显示字符“6”,说明响应了中断;4.尝试先按KK1+,再快速按KK2+,观察MIR7和MIR6两个中断请求的优先级,分析实验结果。(3)级联双中断优先级实验1.按图1-12连接实验线路;2.编写实验程序,经编译、无误后装入系统;3.运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符串“M7”,重复按单次脉冲开关KK2+,显示屏会显示字符串“S1”,说明响应了中断;4.尝试先按KK1+,再快速按KK2+,观察MIR7和SIR1两个中断请求的优先级,分析实验结果。3.3程序流程图主程序流程图如图1-14:开始关中断写入8259中断向量初始化8259芯片利用OCW1设置中断屏蔽开中断延时按动脉冲开关产生中断N调用对应的中断程序Y图1-14主程序流程图实用文档中断程序流程图如图1-15开始打印字符串打印空格结束中断返回主程序结束图1-15中断程序流程图四、程序清单与执行结果4.1程序清单(1)单中断实验代码CODESEGMENTASSUMECS:CODESTART:;DOS调用写入法CLI;关中断,防止硬件中断对程序的干扰PUSHDS;设置中断向量MOVAX,8MOVDX,AXMOVAX,OFFSETMIR7;取MIR7的偏移地址MOVBX,003CH;中断类型号为n,BX设置为4*nMOV[BX],AX;偏移地址放入4n,4n+1单元MOVAX,SEGMIR7;取MIR7的段地址MOV[BX+2],AX;偏移地址放入4n+2,4n+3单元POPDS实用文档MOVAL,11H;初始化ICM1OUT20H,ALMOVAL,08H;初始化ICM2OUT21H,ALMOVAL,04H;初始化I
本文标题:8259中断实验
链接地址:https://www.777doc.com/doc-7282531 .html