1、 实验报告专业班级 姓名 学 号 实验题目 日 期 实验八:8259 中断控制器实验一、实验目的1、掌握 8259A 的工作原理。2、掌握编写中断服务程序方法。3、掌握初始化中断向量的方法。二、实验设备MUT型实验箱、8086CPU 模块。三、实验内容用脉冲发生器作为中断源,每按一次脉冲发生器的按键即产生一次中断。 在中断服务程序中,通过 74LS273 输出一个数据,以点亮与中断源相对应位置的 LED。四、实验原理介绍8259 中断控制器电路本实验用到三部分电路:电平开关电路、简单 I/O 口扩展电路和 8259 中断控制器电路。电平开关电路、简单 I/O 口扩展电路参看实验一。8259 中
2、断控制器电路:如上图所示,其中:CS8259 是 8259 芯片的片选插孔,IR0IR7 是 8259 的中断申请输入插孔。DDBUS 是系统 8 位数据总线。INT 插孔是 8259 向8086CPU 的中断申请线,INTA 是 8086 的中断应答信号。五、实验步骤1、实验接线CS0 CS8259 CS1 CS273 O0O7LED1LED8 单脉冲输出 P+IR0 INTINT INTA INTA2、编译调试程序3、全速运行程序,按下单脉冲发生器按键,观察LED的亮灭情况。六、实验提示1、8259 的使用说明请详细阅读教科书。2、8086 的中断系统是向量中断方式。内存中特定位置有一中断
3、向量表,表内存有不同中断类型的中断向量(中断入口地址) 。不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。3、中断类型由 8259 通过数据总线送给 8086,8086 内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序。请仔细研读教材 8259 的工作时序。4、中断类型的高 5 位由 8259 寄存器 ICW2 决定,低 3 位由中断源 IRx 的编码自动填入。IR0IR7 的编码分别为 000,001,010,011,100,101,110,111。七、实验程序框图八、参考程序8259初 始 化开
4、中 断AX输 出开 始延 时AX=0H?YN 关 中 断AX置 数开 中 断中 断 返 回中 断 服 务 流 程程序框图assume cs:codecode segment publicorg 100hstart: mov cx,0start1: climov dx,04a0hmov ax,13hout dx,ax ;ICW1, ICW4 NEEDEDmov dx,04a2hmov ax,80hout dx,ax ;ICW2 中断类型 80hmov ax,01out dx,ax ;ICW4mov ax,00hout dx,ax ;OCW1, 开放所有中断mov ax,0mov ds,axmov
5、 si,200h ;初始化中断向量表mov ax,offset hintmov ds:si,axadd si,2mov ds:si,100hmov ax,0stiwaiting: cmp ax,55hnopnopnopnopnopnopnopnopjne waiting ;没发生中断,则等待nopnopmov dx,04b0hxor cx,0ffhmov ax,cxout dx,ax ;LED 灯亮灭一次jmp start1nophint: clinopnopnopnopnopnopnopnopmov ax,55hnopiretcode endsend start九、思考题如果源接 IR2 程序应如何编写?