微机接口实验报告-8259中断控制器应用实验
微机接口实验报告8259中断控制器实验

实验六8259中断控制器实验1 实验目的(1) 学习中断控制器8259的工作原理。
(2) 掌握可编程控制器8259的应用编程方法。
3 实验内容编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。
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内部寄存器的读出命令。
2.8259寄存器及命令的控制访问在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。
对寄存器和命令的访问控制如表6-1所示。
图6-1 8259内部结构和引脚图图6-2(a) ICW1格式图6-2(b) ICW2格式图6-2(c) ICW3格式图6-2(d) ICW4格式图6-3 OCW命令字格式3. PC微机系统中的8259在80x86系列PC微机系统中,系统中包含了两片8259A中断控制器,经级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表6-2示。
《微机原理及应用》实验6-8259中断控制器实验

实验报告
一、实验目的
⑴掌握8259中断控制器的接口方法。
⑵掌握8259中断控制器的应用编程。
二、实验内容
编制程序,利用8259芯片的IR作为中断源,产生单一中断,系统显示中断号“7”。
三、实验过程
(1)实验连线
(2)实验步骤
编写源程序,编译、装载,连续运行程序,按动AN按钮,LED数码管从最高位开始依次显示“7”,显示满后,最高位显示“P.”,继续等待中断。
四、实验总结(不少于150字)
最高位显示“P.”:
LED数码管从最高位开始依次显示“7”:
心得体会:
这次试验是一次硬件的实验,与以前的实验有很大的不同(以前的是软件实验)。
硬件实验与软件实验最大的不同就是,硬件实验室需要连线,不管你的实验能不能成功,都要先把线连好,否则就没有成功一说
五、思考题
若改用其他中断源,应怎样修改连线及程序?(不少于100字)
试从端口地址、初始化工作方式、系统功能调用入口参数及出口参数设置以及硬件连线几个方面进行阐述。
8259中断控制实验

8259中断控制实验1 实验目的1. 掌握8259中断控制器的工作原理;2. 学习8259的应用编程方法;3. 掌握8259级联方式的使用方法。
2 实验设备PC机一台,TD-PITE实验装置一套。
3 实验内容及步骤1. 中断控制器8259简介在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。
该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。
从片的INT连接到主片的IR2信号上构成两片8259的级联。
在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。
8259的内部连接及外部管脚引出如图2-3-1所示。
INTR串口0MIR6MIR7SIR1图2-3-1 8259内部连续及外部管脚引出图表2-3-1列出了中断控制单元的寄存器相关信息。
表2-3-1 ICU寄存器列表初始化命令字1寄存器(ICW1)说明见图2-3-2所示。
ICW1图2-3-2 初始化命令字1寄存器初始化命令字2寄存器(ICW2)说明见图2-3-3所示。
7ICW2中断向量地址图2-3-3 初始化命令字2寄存器初始化命令字3寄存器(ICW3)说明,主片见图2-3-4,从片见图2-3-5。
7ICW3(主片)图2-3-4主片初始化命令字3寄存器7ICW3(从片)图2-3-5 从片初始化命令字3寄存器初始化命令字4寄存器(ICW4)说明见图2-3-6。
7ICW4图2-3-6 初始化命令字4寄存器操作命令字1寄存器(OCW1)说明见图2-3-7。
OCW1图2-3-7 操作命令字1寄存器操作命令字2寄存器(OCW2)说明如图2-3-8所示。
7OCW2图2-3-8 操作命令字2寄存器操作命令字3寄存器(OCW3)说明如图2-3-9所示。
7OCW3图2-3-9 操作命令字3寄存器查询状态字(POLL )说明如图2-3-10所示。
微机实验三8259中断控制实验

姓名:学号:2.3 8259中断控制实验2.3.1 实验目的1. 掌握8259中断控制器的工作原理;2. 学习8259的应用编程方法;3. 掌握8259级联方式的使用方法。
2.3.2 实验设备PC机一台,TD-PITE实验装置一套。
2.3.3 实验内容及步骤1、8259单中断实验8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。
图2-3-11 8259单中断实验接线图实验步骤(1)按图2-3-11连接实验线路;(2)编写实验程序,经编译、链接无误后装入系统;(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”以说明响应了中断。
实验结果分析主程序运行过程中遇到中断请求,进而响应中断请求,即在屏幕上输出字符“7”。
实验流程图2、主8259 多中断实验实验步骤:(1)按上图所示完成实验电路连线。
KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR6上。
(2)打开PC机,运行Wmd86软件,进入Wmd86集成开发环境。
(3)对程序进行编译、连接、加载和运行,并验证实验程序的正确性。
(4)分别按动单次脉冲开关KK1+或KK2+时,显示屏上会显示什么信息,将屏幕截图填在实验报告数据处理分析部分的表2中。
(5)如果同时按KK1+和KK2+时,显示屏上会显示什么信息,并在实验结论对实验结果进行解释。
流程图中断请求分析与实验一相比,中断向量表多存储了M6。
主程序在运行过程中接到中断请求,于是响应中断,在处理中断程序的过程中再次接到中断请求,于是再次响应中断,处理中断程序。
处理完后逐层返回。
3. 8259级联实验实验接线图如图2-3-12所示,KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR1上,当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。
编写程序。
实验步骤(1)按图2-3-12连接实验线路;(2)输入程序,编译、链接无误后装入系统;(3)运行程序,按动KK1+或KK2+,观察实验结果,验证实验程序的正确性; (4)若同时按下KK1+和KK2+,观察实验结果,解释实验现象。
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可编程中断控制器实验班级:计算12 姓名:学号:上机实践日期:2014.11 上机实践时间:2学时一、实验目的1、了解8259A芯片的工作原理。
学会使用8259A中断控制芯片实现对外部中断的响应和处理;2、了解8259A内部结构和熟悉8086的接口逻辑;3、掌握对8259A的初始化编程方法和8086是如何响应中断、退出中断。
二、实验设备STAR系列试验仪一套、星研集成软件环境、PC机一台三、实验内容1、设计8259A与8086CPU硬件连接图,分配8259A端口地址为9000H,9001H;2、设计8259A的外围连接,实现拨动单脉冲开关触发8259A中断,8086计数中断次数并显示于G5区的数码管LED上;3、中断次数的显示需调用系统给定的显示子程序DISPLAY8。
程序开始处必须设置外部连接,告诉汇编程序该显示程序在何处(即对应单元必须送10H),若要让它显示数字,则把数字值直接送到响应的显示缓冲区单元就可以显示了;4、要保证DISPLAY8能正常显示,必须使得8279键盘/LED控制器能正确运行;5、基于所设计的硬件及其连接,编写程序流程图,并编写程序实现8086对中断次数的计数及显示。
四、实验拓展思考1、从8259A收到上升沿,到8088响应中断,试画出这个过程的时序图。
2、把出发脉冲改为由8253产生,中断时间间隔为1S,设计硬件连接图,编写程序流程图,并设计程序实现。
3、设计一实时时钟。
五、实验步骤1、电路设计2、在STAR系列试验仪上完成连线B3:CS、A0 ——A3:CS7、A0B3:INT、INTA ——ES8088:INTR、INTA B3:IR2 ——C5:OUT1E5:CS、A0 ——A3:A0E5:CLK ——B2:2MHZE5:B、C ——G5:B、CC5:CS、A0、A1 ——A3:CS1、A0、A1C5:CLK0 ——B2:2MC5:OUT0 ——C5:CLK1C5:GATE0、GATE1 ——C1:VCC3、编写程序流程图及汇编程序程序流程图:程序见附录开始8253初始化(计数器0方式2,计数器1方式3)计数器0送入初值1000(1000分频)计数器1送入初值8259初始化(上升沿触发,单片,不需要ICW4)ICW2控制字0AH,ICW3控制字0DHICW控制字0FBH中断服务程序地址放置内存判断中断是否到来结束8259可编程中断开中断是FLAG=1调用中断程序COUNT值BCD加1并进行BCD码调整否FLAG=0调用LED显示子程序IRETSTIJS: CMP FLAG,0JZ JSCMP COUNT2,18HJG l1CALL LEDl1: MOV FLAG,0INT_TO PROCMOV AX,0MOV ES,AXMOV DI,28H ;过程的中断向量在表内的偏移量MOV AX,OFFSET INTACLDSTOSWMOV AX,CS ;中断程序的断地址STOSWRETINT_TO ENDPLED PROCMOV AL,COUNT0DAAMOV AH,ALAND AL,0FHMOV BUFFER,ALAND AH,0F0H ROR AH,4MOV BUFFER+1,AH MOV AL,COUNT1 DAAMOV AH,ALAND AL,0FH MOV BUFFER+2,AL AND AH,0F0H ROR AH,4MOV BUFFER+3,AH MOV AL,COUNT2 DAAMOV AH,ALAND AL,0FH MOV BUFFER+2,AL AND AH,0F0H ROR AH,4MOV BUFFER+5,AH MOV BUFFER+6,10H MOV BUFFER+7,10H LEA SI,BUFFER CALL DISPLAY8 RETLED ENDPINTA: PUSH DX PUSH AXINC COUNT0CMP COUNT0,3CH JNZ I1INC COUNT1MOV COUNT0,0I1: CMP COUNT1,3CH JNZ I2INC COUNT2MOV COUNT1,0I2: CMP COUNT2,18H JNZ I3MOV COUNT2,0I3: MOV FLAG,1 MOV DX,09000H MOV AL,20HOUT DX,ALPOP AXPOP DXIRETEND START。
实验3 8259中断控制器实验(20131104)

实验三、8259中断控制器实验1.实验目的(1).掌握中断控制器8259 IP核的工作原理,熟悉对8259的初始化设置。
(2).掌握中断服务程序的编写方法。
(3).掌握程序固化及脱机运行程序的方法。
2.实验原理8259的工作原理。
参考微机原理与接口技术相关教材。
使用中断控制器8259,首先要对8259初始化,对初始化命令字ICW1~ICW4进行设置,初始化命令字的格式如表3-1所示。
8259 - P rogrammble Intrrupt Controller图3-1 8259 可编程中断控制器表3-1 初始化命令字ICW1~ICW4数据格式:子程序的入口地址写入中断向量表。
另外要编写相关的中断服务子程序。
8259的端口地址如下:PIC_ICW1 EQU 20HPIC_ICW2 EQU 21HPIC_ICW3 EQU 21HPIC_ICW4 EQU 21Hppt 8255的端口地址是:port A 378h ;PA接2个LED数码管port B 379h ;PB接8个LED 发光二极管port C 37ah ;PC口ppt_ctrl 37bh ;控制字口ppi 8255的端口地址是:port A 060h ;PA接4×4键盘和LCD液晶模块port B 061h ;PB 最低位控制计数器2门控信号port C 062h ;PC pc.0控制ppi portA 输入使能ppt_ctrl 063h ;控制字口定时器/计数器8254的端口地址:PIT_CNT0 EQU 40HPIT_CNT1 EQU 41HPIT_CNT2 EQU 42HPIT_CTRL EQU 43H3.实验内容(1)中断计数显示程序本实验主要验证中断控制器8259的中断控制功能。
中断请求信号由按键产生,该按键向8259的IR1发出中断请求,每中断一次,寄存器加1计数,并通过8255的PA口外接的数码管显示出中断的次数。
PA 口输出使能由PC口最低位控制。
8259中断控制实验报告

8259中断控制实验报告实验报告:8259中断控制实验一、实验目的:学习和掌握8259中断控制器的工作原理和使用方法。
二、实验设备:计算机、8259中断控制器芯片、连接线、示波器等。
三、实验原理:1.8259中断控制器简介8259是Intel公司推出的一个通用中断控制器芯片,它可以管理多种设备的中断请求,并对中断请求进行优先级排序和处理。
8259具有级联功能,可以通过级联实现更多的设备中断管理。
2.8259工作原理8259中断控制器有两个主要模块:中断请求译码器和中断向量地址寄存器。
中断请求译码器用于判断中断请求的优先级,按照优先级排序,将中断请求发送给CPU。
中断向量地址寄存器用于存储中断向量的地址,CPU根据中断向量的地址来执行相应的中断服务程序。
3.8259中断控制器的寄存器8259中断控制器有多个重要的寄存器,包括中断屏蔽寄存器、中断请求寄存器、中断服务地址寄存器等。
中断屏蔽寄存器用于屏蔽或打开特定中断请求。
中断请求寄存器用于存储当前的中断请求状态。
中断服务地址寄存器用于存储中断向量的地址。
四、实验内容:1.配置8259中断控制器将8259中断控制器连接到计算机,并通过连接线将适当的引脚连接到需要中断控制的设备上。
2.编写中断服务程序根据实验要求,编写相应的中断服务程序,并将其存储在中断服务地址寄存器指定的内存地址中。
3.设置中断向量地址将中断向量的地址存储在中断向量地址寄存器中,使CPU能够根据中断请求执行相应的中断服务程序。
4.测试中断控制功能通过测试设备向8259中断控制器发送中断请求,观察计算机是否能正确处理中断请求,并执行相应的中断服务程序。
五、实验结果与分析:经过以上实验步骤,我们成功配置了8259中断控制器,并编写了相应的中断服务程序。
在测试过程中,通过向8259中断控制器发送中断请求,我们观察到计算机正确地处理了中断请求,并执行了我们编写的中断服务程序。
这表明我们成功地完成了8259中断控制实验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名院专业班年月日实验内容8259中断控制器实验指导老师【实验目的】(1)学习中断控制器8259的工作原理。
(2)掌握可编程控制器8259的应用编程方法。
【试验设备】PC微机一台、TD-PIT+实验系统一套。
【实验内容】(1) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。
(2) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“9”,中断显示6次后退出。
【实验原理】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内部寄存器的读出命令。
图6-1 8259内部结构和引脚图姓名院专业班年月日实验内容8259中断控制器实验指导老师图6-2(a) ICW1格式图6-2(b) ICW2格式图6-2(c) ICW3格式图6-2(d) ICW4格式姓名院专业班年月日实验内容8259中断控制器实验指导老师图6-3 OCW命令字格式2. 8259寄存器及命令的控制访问在硬件系统中,8259A仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的器和命令字。
对寄存器和命令的访问控制表如表6-1所示。
表6-1 8259寄存器及命令的访问控制3. PC微机系统中的8259在80x86系列PC微机系统中,系统中包含了两片8259A中断控制器,经级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表6-2示。
两片8259A的端口地址为:主片8259使用020H和021H两个端口;从片使用0A0H和0A1H两个端口。
系统初始化两片姓名院专业班年月日实验内容8259中断控制器实验指导老师8259的中断请求信号均采用上升沿触发,采用全嵌套方式,优先级的排列次序为0级最高,依次为1级、8级~15级,然后是3级~7级。
在扩展系统总线上的INTR对应的中断线就是PC机保留中断其中的一个。
对INTR中断的初始化PC机已经完成,在使用时主要是将其中断屏蔽打开,修改中断向量。
表6-2 PC微机系统中的硬件中断中断号功能中断向量号中断向量地址主8259A IRQ0 日时钟/计数器0 08H 0020H~0023H主8259A IRQ1键盘09H 0024H~0027H主8259A IRQ2接从片8259A 0AH 0028H~002BH主8259A IRQ3串行口2 0BH 002CH~002FH主8259A IRQ4串行口1 0CH 0030H~0033H主8259A IRQ5并行口2 0DH 0034H~0037H主8259A IRQ6软盘0EH 0038H~003BH主8259A IRQ7并行口1 0FH 003CH~003FH从8259A IRQ8实时钟70H 01C0H~01C3H从8259A IRQ9保留71H 01C4H~01C7H从8259A IRQ10保留72H 01C8H~01CBH从8259A IRQ11保留73H 01CCH~01CFH从8259A IRQ12保留74H 01D0H~01D3H从8259A IRQ13协处理器中断75H 01D4H~01D7H从8259A IRQ14硬盘控制器76H 01D8H~01DBH从8259A IRQ15保留77H 01DCH~01DFH 【实验说明及步骤】本实验要求使用总线上INTR中断请求线完成一次单中断应用实验。
中断处理程序完成在屏幕上的显示字符“9”。
实验前先运行CHECK程序,得到INTR所对应的中断号、相应的初始化命令字寄存器ICW及操作命令字寄存器OCW的地址、开屏蔽的命令字、中断矢量地址和PCI卡中断控制寄存器INTCSR的地址。
得到这些信息后就可以开始设计实验了。
参考程序流程如图6-5所示。
实验步骤如下。
(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上;(2)首先运行CHECK程序,查看INTR中断号及相关信息;(3)参考实验流程图编写程序,然后编译链接;(4)将单次脉冲单元的KK1+连接到系统总线上的INTR;(5)运行程序,按动KK1+按键,观察中断是否产生。
姓名院专业班年月日实验内容8259中断控制器实验指导老师图6-5 8259终端应用实验(1)参考程序流程图【汇编源程序】实验1:INTR_IVADD EQU 01CCH INTR_0CW1 EQU 0A1H INTR_0CW2 EQU 0A0H INTR_IM EQU 0F7H PCI_INTCSR EQU 7878H STACK1 SEGMENT STACKDW 256 DUP(?) STACK ENDSDATA SEGMENT CS_BAK DW ?IP_BAK DW ?IM_BAK DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE START:MOV AX,DATAMOV DS,AXCLIMOV AX,PCI_INTCSR姓名院专业班年月日实验内容8259中断控制器实验指导老师MOV AX,1F00HOUT DX,AXADD DX,2MOV AX,003FHMOV DX,AXMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX,ES:[DI]MOV IP_BAK,AXMOV AX,OFFSET MYISRMOV ES:[DI],AXMOV DI,2MOV AX,ES:[DI]MOV CS_BAK,AXADD DI,2MOV AX,ES:[DI]MOV CS_BAK,AXMOV AX,SEG MYISRMOV ES:[DI],AXMOV DX,INTR_0CW1IN AL,DXMOV IM_BAK,ALADD AL,INTR_IMOUT DX,ALSTIWAIT1:MOV AH,1INT 16HJZ WAIT1QUIT: CLIMOV DX,PCI_INTCSRMOV AX,0000HOUT DX,AXMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX.IP_BAKMOV ES:[DI],AXMOV DI,2MOV AX,CS_BAKMOV ES:[DI],AXMOV DX,INTR_0CW1MOV AL,IM_BAKOUT DX,ALSTIMOV AX,4C00HINT 21HMYISR PROC NEARMOV AL,39HMOV AH,0EHINT 10HMOV AL,20HINT 10HOVER:MOV DX,PCI_INTCSR ADD DX,2MOV AH,003FHOUT DX,AXMOV DX,INTR_0CW2MOV AL,20HOUT DX,ALMOV AL,20HOUT 20H,ALIRETMYISR ENDPCODE ENDSEND START姓名院专业班年月日实验内容8259中断控制器实验指导老师实验2:INTR_IVADD EQU 01CCH INTR_0CW1 EQU 0A1H INTR_0CW2 EQU 0A0H INTR_IM EQU 0F7H PCI_INTCSR EQU 7878H STACK1 SEGMENT STACKDW 256 DUP(?) STACK ENDSDATA SEGMENTCS_BAK DW ?IP_BAK DW ?IM_BAK DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE START:MOV AX,DATAMOV DS,AXMOV CX,0CLIMOV AX,PCI_INTCSRMOV AX,1F00HOUT DX,AXADD DX,2MOV AX,003FHMOV DX,AXMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX,ES:[DI]MOV IP_BAK,AXMOV AX,OFFSET MYISRMOV ES:[DI],AXMOV DI,2MOV AX,ES:[DI]MOV CS_BAK,AXADD DI,2MOV AX,ES:[DI]MOV CS_BAK,AXMOV AX,SEG MYISRMOV ES:[DI],AXMOV DX,INTR_0CW1IN AL,DXMOV IM_BAK,ALADD AL,INTR_IMOUT DX,ALMOV CX,0STIWAIT1:CMP CX,6JNZ WAIT1 QUIT: CLIMOV DX,PCI_INTCSRMOV AX,0000HOUT DX,AXMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX.IP_BAKMOV ES:[DI],AXMOV DI,2MOV AX,CS_BAKMOV ES:[DI],AXMOV DX,INTR_0CW1MOV AL,IM_BAKOUT DX,ALSTIMOV AX,4C00HINT 21HMYISR PROC NEARINC CXMOV AL,39HMOV AH,0EHINT 10H姓名院专业班年月日实验内容8259中断控制器实验指导老师MOV AL,20HINT 10HOVER:MOV DX,PCI_INTCSR ADD DX,2MOV AH,003FHOUT DX,AXMOV DX,INTR_0CW2MOV AL,20HOUT DX,ALMOV AL,20HOUT 20H,ALIRET MYISR ENDP CODE ENDSEND START【实验结果】实验1:每按一次KK1+按键,显示器上显示一个字符“9”;实验2:每按一次KK1+按键,显示器上显示一个字符“9”,6次后退出。