8259实验程序

合集下载

实验十五 8259可编程中断控制器

实验十五  8259可编程中断控制器

实验十五 8259可编程中断控制器一、实验目的1、熟悉8259基本功能和初始化的命令方式。

2、掌握8259在8086/8088系统中的使用。

3、掌握中断服务程序的编写和中断服务程序电路的设计。

二、使用技术准备1、早期的PC/XT微机中只有一片8259A中断控制器,可接受并处理8级中断。

IBM-PC XT机外中断请求的设置XT机8级外中断表2、PC/AT微机系统的外中断286以上的(PC/AT)微机系统的CPU采用了更高配置的芯片,系统中有两个8259A芯片,接成级连方式,可管理15级中断。

主8259A的口地址为20H、21H,从8259A的口地址为A0H、A1H。

硬件中断源与中断类型对照表中断向量:中断服务程序的入口地址。

中断向量的作用:CPU响应中断后,中断向量将引导CPU去执行相应的中断服务序。

中断向量由两部分组成:1、中断服务程序所在代码段的段基地址(2个字节)。

2、中断服务程序入口的有效地址(2个字节)。

中断向量表我们给每一种中断都安排一个中断类型号。

IBM PC机的中断系统能处理256种类型的中断,类型号为0~0FFH。

每种类型的中断都由相应的中断服务程序来处理,中断向量表就是各中断服务程序的地址表。

PC机存储器最低的1K字节(地址从0~3FFH),存放中断向量,中断向量表中的256项中断向量对应256中断类型,每项占四个字节,其中二个高位字节存放中断服务程序的段地址(16位),二个低位字节存放偏移段地址(16位)。

因为各个服务程序的段地址和偏移地址在中断向量表中按中断类型号顺序存放,所以每类型中断向量的地址可由中断类型号乘以4得出.例如:中断类型4AH的中断向量地址为4AH×4=128H,既128H、129H两个字节存放中断服务程序的偏移地址IP, 12AH、12BH两个字节存放中断服务程序的段地址,取出段地址和偏移地址,CPU就可转入中断服务程序。

中断操作的5个步骤:(1)取中断类型号;(2)计算中断向量地址;(3)取中断向量,偏移地址送IP,段地址送CS;(4)根据CS:IP转入中断服务程序;(5)中断返回到INT指令的下一条指令。

微机实验三8259中断控制实验

微机实验三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+,观察实验结果,解释实验现象。

实验3 8259 中断控制实验

实验3 8259 中断控制实验

实验报告课程名称实验名称实验日期学生专业学生学号学生姓名实验室名称教师姓名成绩南京理工大学机械工程学院微机原理及应用实验38259中断控制实验2017年5月26日车辆工程9141010F0309蒋龙鑫徐群实验48259中断控制实验1实验目的(1)掌握8259中断控制器的工作原理;(2)学习8259的应用编程方法;(3)掌握8259级联方式的使用方法。

2实验设备PC机一台,TD-PITC实验装置一套。

3实验内容及步骤在对8259进行编程时,首先必须进行初始化。

一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。

8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。

在初始化主片8259时,写入初始化命令字的顺序是:ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。

实验内容:实验接线图如图4-1所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。

图4-18259单中断实验接线图参考实验程序清单:SSTACK SEGMENT STACKDW32DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART:PUSH DSMOV AX,0000HMOV DS,AXMOV AX,OFFSET MIR7;取中断入口地址MOV SI,003CH;中断矢量地址MOV[SI],AX;填IRQ7的偏移矢量MOV AX,CS;段地址MOV SI,003EHMOV[SI],AX;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL,11HOUT20H,AL;ICW1MOV AL,08HOUT21H,AL;ICW2MOV AL,04HOUT21H,AL;ICW3MOV AL,01HOUT21H,AL;ICW4MOV AL,6FH;OCW1OUT21H,ALSTIAA1:NOPJMP AA1MIR7:STICALL DELAYMOV AX,0137HINT10H;显示字符7MOV AX,0120HINT10HMOV AL,20HOUT20H,AL;中断结束命令IRETDELAY:PUSH CXMOV CX,0F00HAA0:PUSH AXPOP AXLOOP AA0POP CXRETCODE ENDSEND START实验步骤:(1)按图4-1连接实验线路;(2)编写实验程序,经编译、链接无误后装入系统;(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”以说明响应了中断。

实验3 8259中断控制器实验(20131104)

实验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中断控制器的工作原理和使用方法。

二、实验设备:计算机、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中断控制实验。

8259中断控制器实验的实验报告

8259中断控制器实验的实验报告

8259中断控制器实验的实验报告实验报告:8259中断控制器实验一、实验目的本实验的目的是通过对8259中断控制器的实验,掌握和理解8259中断控制器的原理、工作原理和使用方法。

通过实验能够进一步了解中断控制器的中断分配和中断处理等功能。

同时还能够通过实验,对中断优先级以及中断的屏蔽和响应进行深入了解。

二、实验原理1.8259中断控制器简介8259中断控制器是用于管理和控制多个硬件设备的中断请求的重要芯片。

它是一个具有8个中断请求输入和8个中断向CPU输出的优先级解码器。

中断控制器主要由两个部分组成:中断请求器部分和中断控制器部分。

中断请求器部分用于产生中断请求信号,而中断控制器部分用于优先级解码和中断分配。

2.8259中断控制器的工作原理8259中断控制器可以管理多个硬件设备的中断请求,同时对中断信号进行优先级判断和派发给CPU进行相应处理。

当一些硬件设备发生中断时,会发送中断请求信号给8259中断控制器,然后8259将根据中断请求的优先级判断是否屏蔽或者响应该中断请求。

3.8259中断控制器的使用方法在使用8259中断控制器时,首先需要设置中断控制器的工作模式和中断请求的优先级,然后对中断控制器的屏蔽和响应进行相应的配置。

使用中断控制器时,还需要对中断服务程序进行适当的编程,以实现中断的处理逻辑。

三、实验步骤1.实验前的准备工作(1)准备实验所需的开发板和8259中断控制器。

(2)将8259中断控制器与相应的硬件设备连接。

(3)准备PC机和开发板的通信线缆。

2.8259中断控制器的设置和初始化(1)通过编程方式将8259中断控制器设置为特定的工作模式。

(2)设置中断请求(IRQ)的优先级。

3.中断服务程序的编写(1)根据需求编写中断服务程序,即中断处理逻辑。

(2)将中断服务程序与8259中断控制器的相应中断请求进行关联。

4.实验结果的观察和分析(1)观察测试硬件设备的输出结果。

(2)分析实验结果,判断是否成功实现中断控制和处理。

实验一 8259单级中断控制器实验

实验一 8259单级中断控制器实验

实验一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孔;⑸连JX4→JX17。

2、DJ-8086k软件启动和联机⑴启动和联机。

双击桌面上‘DJ-8086k’快捷图标,即可运行DJ-8086k软件;⑵新建文件:单击菜单栏“文件”或工具栏“新建”图标,即会建立一个新的源程序编辑窗口,此时可在此窗口编辑、输入源程序(注:新建文件扩展名为 .ASM)。

或打开文件F3:单击菜单栏“文件”或工具栏“打开”图标,弹出“打开文件”的对话框,然后选择要装入的源文件,单击“确定”即可装入源文件。

;3、调试程序⑴编译装载F9:打开源文件,依次单击:调试”\“编译装载F9”或工具栏上的编译装载图标,状态栏会提示正在编译、编译成功、正在装载数据、装载数据结束,几秒钟后便会弹出‘源文件调试窗口’,如编译出错,会提示错误信息,待修改源文件正确后,重新编译装载即可;⑵连续运行;单击菜单栏“调试”下的“连续运行”或单击工具栏的连续运行图标,即全速连续运行程序,系统显示8259-1。

实验六 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内部寄存器的读出命令。

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

DB 90H,0A3H,0A1H,86H,8FH
WBUF1:MOV BX,0
ADD BX,2
;将显示8259-1的数据写入内存。
MOV WORD PTR DS:[BX+077AH],1701H MOV WORD PTR DS:[BX+077AH],0509H ADD BX,2
MOV WORD PTR DS:[BX+077AH],0802H
INTREEUP7: CLI
;发生中断7时,调用的中断处理程序。关中断。
MOV AL,20H MOV DX,INTPORT1 OUT DX,AL ;写操作命令字OCW2,使得工作在一般EOI方式。 MOV DS:[077AH],1C1CH
MOV DS:[077CH],101BH
MOV DS:[077Eh],1010H INTRE3:CALL DISP JMP INTRE3 ;显示EER。 ;进入循环。
CODE SEGMENT ASSUME CS:CODE INTPORT1 EQU 0060H INTPORT2 EQU 0061H INTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7 ORG 11A0H START: CLD ;清除DF, CALL WBUF1;将显示8259-1的数据写入内存。 CALL WRINTVER;装入中断矢量表。 MOV AL,13H MOV DX,INTPORT1 OUT DX,AL;将初始化命令字ICW1写入0060H地址,使
;得8259工作在边沿触发,单片8259,需要ICW4(8086模式)。
MOV MOV OUT MOV OUT
AL,08H DX,INTPORT2 DX,AL;写初始化命令字ICW2到0061H。中断矢量从08H开始。 AL,09H DX,AL;写初始化命令字ICW4到0061H地址。工作在一般嵌套方式,
INTREEUP3: CLI MOV AL,DS:[0701H] ;读取计数值。 CALL CONVERS;调用子程序,将中断计数值存放到077AH单元。 MOV BX,077BH MOV AL,10H MOV CX,05H INTRE0: MOV BYTE PTR DS:[BX],AL INC BX LOOP INTRE0;将077BH~077FH单元,写为10H。 MOV AL,20H MOV DX,INTPORT1 OUT DX,AL;写操作命令字OCW2,使得工作在一般EOI方式。
DEC DX
SHR AH,01H JNZ DISP0
MOV DX,0FF22H
MOV AL,0FFH
OUT DX,AL
RET DATA1:DB C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
DB 0FFH,0CH,89H,0DEH,0C7H,8CH,0F3H,0BFH
DISP: MOV DX,077FH;显示子程序。将077AH~077FH中数据显示。 MOV AH,20H DISP0: MOV CX,00FFH MOV BX,DX MOV BL,DS:[BX] MOV BH,0H PUSH DX MOV DX,0FF22H MOV AL,CS:[BX+127BH] OUT DX,AL MOV DX,0FF21H MOV AL,AH OUT DX,AL DISP1: LOOP DISP1 POP DX
ADD BYTE PTR DS:[0701H],01H CMP BYTE PTR DS:[0701H],06H
JNA
INTRE2
;小于Байду номын сангаас于转移。
MOV DS:[077AH],191AH MOV DS:[077CH],1819H MOV DS:[077Eh],1010H INTRE1: CALL DISP ;在屏幕上显示GOOD。
; 缓冲方式,非自动EOI方式,8086模式。
MOV AL,0F7H OUT DX,AL;写操作命令字OCW1。除IR3外,其他中断全部屏蔽。 MOV BYTE PTR DS:[0701H],01H ;TIME=1 STI WATING: CALL DISP JMP WATING;跳转到WATING,如此循环,等待中断的发生。
JMP INTRE1 ;进入死循环。
CONVERS: AND AL,0FH
MOV BX,077AH
MOV DS:[BX],AL
INC RET INTRE2: MOV AL,20H MOV DX,INTPORT1 BX
OUT DX,AL;写操作命令字OCW2,使得工作在一般EOI方式。
STI IRET ;开中断,为下一次中断作准备。 ;中断返回。
RET CODE ENDS END START
WRINTVER:MOV AX,0H ;装入中断矢量表到内存子程序。 MOV ES,AX MOV DI,002CH LEA AX,INTQ3 STOSW MOV AX,0000h STOSW MOV DI,003CH LEA AX,INTQ7 STOSW MOV AX,0000h STOSW RET
相关文档
最新文档