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

合集下载

8259、8253实验报告

8259、8253实验报告

数字逻辑与CPU实验报告实验内容:8259中断控制器、8253可编程定时/计数器接口实验姓名:班级:学号:实验一8259中断控制器实验一、实验目的1、掌握8259的工作原理。

2、掌握编写中断服务程序的方法。

3、掌握初始化中断向量的方法。

二、实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。

三、实验方法(1)连线1、单脉冲发生器输出P+与8259的IR0相连;2、8259的片选CS8259与CS0相连;3、8259的INT与8086的INT相连;4、CS273与CS1相连;5、00与LED1相连;其他线均已连好。

(2)在8086实验系统软件中编辑程序,编译链接后,调试程序,程序流程图如图2。

(3)调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处。

四、程序源代码CODE SEGMENT PUBLICASSUME CS:CODEORG 100H;设置堆栈起点0100HSTART: 图2 程序流程图 MOV DX,4A0HMOV AX,13H ;写ICW1,单片8259,要写ICW4OUT DX,AXMOV DX,4A2HMOV AX,80H ;写入ICW2,设定IR0中断类型吗为80HOUT DX,AXMOV AX,01 ;写入ICW4,设定一般嵌套,非自动EOI方式 OUT DX,AXMOV AX,0 ;写入OCW1,设定允许中断。

OUT DX,AXMOV AX,0MOV DS,AXMOV SI,200H ;中断向量预存放在0100:0200H(向量码80H) MOV AX,OFFSET HINT;取中断服务程序的入口地址MOV DS:[SI],AXADD SI 2MOV AX,CSMOV DS:[SI],AXSTI;开中断JMP $;原地跳转HINT:;中断服务程序XOR CX,0FFH;CX全部取反(8位)MOV DX,4B0H;CS273接口的地址,与8个LED灯相连MOV AX,CX;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的的地址MOV AX,20H;写入OCW2,一般EOI命令,全嵌套方式OUT DX,AXIRET;中断返回CODE ENDSEND START五、实验结果程序调试通过后,当我们按一次单脉冲发生器的输出开关,对应连好的灯就会亮。

8259中断实验报告

8259中断实验报告

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

微机原理与汇编语言_实验5_8259中断控制器实验概论

微机原理与汇编语言_实验5_8259中断控制器实验概论

微机原理与汇编语言实验报告姓名x x x学号xxxxxx 专业班级计科x班课程名称微机原理与汇编语言实验日期2014.11.25 实验名称8259中断控制器实验成绩1、掌握8259A的工作原理。

2、掌握编写中断服务程序方法。

3、掌握初始化中断向量的方法。

二、实验内容1、实验原理本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。

电平开关电路简单io扩展电路8259中断控制器电路1)电平开关电路开关量输入电路由8只开关组成,每只开关有两个位置H和L,一个位置代表高电平,一个位置代表低电平。

对应的插孔是:K1~K8。

2)扩展输出口扩展输出接口由74LS273构成,74LS273的输出信号由插孔O0~O7输出,插孔CS273是其选通信号,其它信号线已接好。

3)8259中断控制电路CS8259是8259芯片的片选插孔,IR0~IR7是8259的中断申请输入插孔。

DDBUS是系统8位数据总线。

INT插孔是8259向8086CPU的中断申请线,INTA是8086的中断应答信号。

2、实验步骤1)实验接线CS0↔CS8259 CS1↔CS273 O0~O7↔LED1~LED8 K1~K8↔IR0~IR7 INT↔INTR INTA↔QINTACS0 片选信号,地址04A0~04AF 偶地址有效CS1 片选信号,地址04B0~04BF 偶地址有效CS2 片选信号,地址04C0~04CF 偶地址有效CS3 片选信号,地址04D0~04DF 偶地址有效CS4 片选信号,地址04E0~04EF 偶地址有效CS5 片选信号,地址04F0~04FF 偶地址有效CS6 片选信号,地址0000~01FF 偶地址有效CS7 片选信号,地址0200~03FF 偶地址有效关于偶地址有效当8259片选连接CS0时,因访问端口时地址位A0的值必须为1,由A1地址位来区分两个端口吗,因此,偶地址:04A0,04A4…奇地址:04A2,04A6…2)编译调试程序3)全速运行程序,拨动某一电平开关,观察LED的亮灭情况。

8259中断控制 实验报告

8259中断控制 实验报告

深圳大学实验报告课程名称:微机原理与接口技术
实验项目名称:8259中断控制实验
学院:信息工程学院
专业:电子信息工程
指导教师:
报告人:学号:201019 班级:电子
实验时间:2012.5.18
实验报告提交时间:2012.6.9
教务处制
实验程序分析:一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以,PUSH DS就起到这样的作用.在中断程序结束后
程序入口,还得用POP DS 指令返回现场.
这个实验是关于8259的单中断,不牵涉级联问题,所以,8259的初始化只需要看主片就可以了
时候,一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化字
ICW1,ICW2,ICW3,ICW4,由于8259只有一根地址线,因此对各个控制字的操作是按照一定的顺序并结合某些数据位来进行寻址设置的.当初始化完成后,对8259的操作命令字的寻址是通过。

8259中断控制实验

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中断控制实验

微机实验三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中断控制器实验报告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中断控制完整实验报告

实验5 8259中断控制实验实验时间2019年11月27日
实验类型■验证性□设计性□综合性
1. 实验目的
掌握8259中断控制器的工作原理
2. 实验内容及过程(主要内容、操作步骤)
利用系统总线上中断请求信号MIR6,设计一个单一中断实验3. 测试数据及实验结果
4. 实验分析及总结(主要考察内容)
1.显示字符“7”时,前面的“0137H”中的“37H”是“7”的ASCII码,若要改变显示的字符,就更改ASCII码。

2.中断服务程序的入口地址有段基址和段内偏移,故有32位,一个中断在中断向量表里面占4个字节,这4个字节就是中断服务程序的入口地址。

实验第一步就是在初始化中断向量表,就是告诉系统中断服务程序在哪里,填上IQR6的段基址和段内偏移(38H-3BH)。

其次就是对8259A主从片进行初始化,很多东西可以不初始化,就用到了主片,8259A从片上也接了一个中断。

再下面就是中断服务程序,实验中中断服务程序有延时,但是在正常编程情况下中断服务程序决不允许有延时,中断服务程序要快进快出
教师评阅
评价指标:实验目的、操作步骤、设计、算法、程序结构、实验结果、实验分析、实验总结。

8259中断控制实验报告材料

8259中断控制实验报告材料

深圳大学实验报告课程名称:微机原理与接口技术实验项目名称:8259中断控制实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:201019 班级:电子实验时间:2012.5.18实验报告提交时间:2012.6.9教务处制STIAA1: NOP ;无限循环,等待中断发生JMP AA1MIR7: STICALL DELAYMOV AX, 0137HINT 10H ;显示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL ;中断结束命令IRETDELAY: PUSH CX ;延时子程序MOV CX, 0F00HAA0: PUSH AXPOP AXLOOP AA0POP CXRETCODE ENDSEND START实验结果如图所示,能够正确执行设定功能.实验程序分析:一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以, PUSH DS就起到这样的作用.在中断程序结束后,为了能回到之前执行的程序入口,还得用POP DS 指令返回现场.这个实验是关于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这矢量地址.所以在程序开始的时候,就采用MOV AX, OFFSET MIR7,MOV SI, 003CH,MOV [SI], AX这三句来获得偏移地址IP,接着高地址位置又用MOV AX, CS,MOV SI, 003EH,MOV [SI], AX这三条指令来获得CS. CPU根据CS,IP就能转入正确的中断程序执行中断了.而中断程序结尾处,用了MOV AL, 20H OUT 20H, AL以及IRET这三条指令,是为了说明这是正常的EOI,可以通知8259A此次服务结束.MOV AL, 30HOUT 0A1H, AL ;ICW2MOV AL, 02HOUT 0A1H, AL ;ICW3MOV AL, 01HOUT 0A1H, AL ;ICW4MOV AL, 0FDHOUT 0A1H,AL ;OCW1 = 1111 1101MOV AL, 6BHOUT 21H, AL ;主8259 OCW1STIAA1: NOPJMP AA1MIR7: CALL DELAYMOV AX, 014DHINT 10H ;MMOV AX, 0137HINT 10H ;显示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL ;中断结束命令IRETSIR1: CALL DELAYMOV AX, 0153HINT 10H ;SMOV AX, 0131HINT 10H ;显示字符1MOV AX, 0120HINT 10HMOV AL, 20HOUT 0A0H, ALOUT 20H, ALIRETDELAY: PUSH CXMOV CX, 0F00HAA0: PUSH AXPOP AXLOOP AA0POP CXRETCODE ENDSEND START实验结果截图如下,能够正确执行设定功能.。

8259硬件实验

8259硬件实验

实验8 8259单级中断控制实验一、实验目的1、掌握8259中断控制器的工作原理;2、掌握8259中断控制器的接口方法;3、掌握8259中断控制器的应用编程;4、学习在接口实验单元上构造连接实验电路的方法。

二、实验内容编制程序,利用8259芯片的IRQ7接单脉冲信号SP 作为中断源,使用边沿触发,产生单一中断进行计数,送数码管最低位显示。

三、程序流程四、实验电路主程序中断服务子程序五、编程提示8259中断控制器是专为控制优先级中断设计的芯片。

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

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

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

六、实验连线1.138译码电路连接:输入端A.B.C,其中A与A2相连,B与A3相连,C与A4相连,138使能控制输入端G与GS相连(GS的寻址范围为FFE0h~FFFFh)。

2.将8259中断控制单元的CS与138译码单元的Y0相连、IRQ7与单脉冲单元的SP相连。

3.用8芯扁平电缆将8259串行通信单元的D0~D7与数据总线单元的D0~D7相连。

七、实验步骤1.编写程序,汇编、链接通过后装载到实验箱内存。

2.全速运行程序,数码管最低位显示“0”,按AN按钮,数码管最低位显示中断计数,满0Fh时清零计数。

;8259单级中断控制器实验outseg equ 0ffdch ;字形控制口,系统已定义,即某位上显示什么outbit equ 0ffddh ;字位控制口,系统已定义,即在哪位上显示m8259 equ 0ffe0h ;8259控制口,GS为CPU的,G为译码器138的使能端,为“1”;;;时开启译码功能c8259 equ 0ffe1h ;8259命令口code segmentassume cs:codeorg 1000hstart: cli ;清中断标志mov dx,outbit ;选中LED第1位,从左到右依次mov al,100000bout dx,al;中断向量mov ax,offset irq7 ;设置偏移地址mov bx,003chmov [bx],axmov ax,0000h ;设置段地址mov bx,003ehmov [bx],axmov dx,m8259 ;8259初始化,间接寻址,偶地址端口,ICW1mov al,1bh ;00011011Bout dx,al ;电平触发mov dx,c8259 ICW2mov al,08hout dx,al ;基地址mov al,09h ICW4out dx,al ;写命令字mov al,7fhout dx,al ;IRQ7开通sti ;置中断标志mloop: mov dx,outsegmov al,0ch ;'P.'out dx,almov cx,0loop $ ;中断响应缓冲jmp mloop ;循环等待;IRQ7中断服务程序irq7: cli ;清中断标志mov dx,outseg ;写字形mov al,0f8h ;显示7out dx,almov dx,m8259 ;写结束字,中断结束,OCW2mov al,20hout dx,alsti ;置中断标志iret ;从中断返回code endsend startLED数码管显示器编程说明1.数码管笔段名称及位置实验箱使用的是共阴数码管,即0点亮、1熄灭。

实验-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 的申请次数记录

8259单级中断控制器试验[1]

8259单级中断控制器试验[1]

实验5 8259单级中断控制器试验一、实验目的:1.掌握8259中断控制器的接口方法2.掌握8259中断控制器的应用编程二、实验内容利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。

要求:主程序在高四位七段码上显示8259,中断服务程序对中断次数计数,并在最低位七段码上显示,中断次数满5次后,显示输出“good”。

中断采用边沿触发,单片,中断类型08H—0FH,工作在非缓冲模式,非AEOI,普通全嵌套。

IR0中断类型好为8 三、实验连接图四、实验程序框图主程序中断服务程序五、实验步骤1.连接硬件电路(1)8259的INT接8088的INTR;(2)8259的INTA接8088的INTA;(3)接8259的IR3;(4)8259的CS接EX1;(5)JX4连JX17。

2. 编写源程序,编译装载并执行。

3. 拨动AN开关按钮,按满10次显示good。

4.若要求脉冲信号接8259的IR4,则程序该如何修改?五、实验报告整理完整的实验程序。

CODE SEGMENT ;H8259.ASMASSUME CS:CODEINTPORT1 EQU 0060HINTPORT2 EQU 0061HINTQ3 EQU INTREEUP3INTQ7 EQU INTREEUP7PA EQU 0FF21H ;字位口PB EQU 0FF22H ;字形口PC EQU 0FF23H ;键入口ORG 12D0HSTART: JMP STA R T0BUF DB ?,?,?,?,?,?intcnt db ?data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTAR T0: CLDCA LL BUF1CA LL WRINTVER ;WRITE INTRRUPTMOV A L,13HMOV DX,INTPORT1OUT DX,A LMOV A L,08HMOV DX,INTPORT2OUT DX,A LMOV A L,09HOUT DX,A LMOV A L,0F7HOUT DX,A LMOV intcnt,01H ;TIME=1STIWATING: CA LL DISP ;DISP 8259-1JMP WATINGWRINTVER: MOV AX,0HMOV ES,AXMOV DI,002CHLEA A X,INTQ3STOSWMOV AX,0000hSTOSWMOV DI,003CHLEA A X,INTQ7STOSWMOV AX,0000hSTOSWRETINTREEUP3: CLIMOV A L,INTCNTCALL CONVERSMOV BX,OFFSET BUF ;077BHMOV A L,10HMOV CX,05HINTRE0: MOV [BX],A LINC BXLOOP INTRE0MOV A L,20HMOV DX,INTPOR T1OUT DX,A LADD INTCNT,01HCMP INTCNT,06HJNA INTRE2CALL BUF2 ;DISP:good INTRE1: CA LL DISPJMP INTRE1CONVERS: AND A L,0FHMOV BX,offset buf ;077A HMOV [BX+5],A LRETINTRE2: MOV A L,20HMOV DX,INTPOR T1OUT DX,A LSTIIRETINTREEUP7: CLIMOV A L,20HMOV DX,INTPORT1OUT DX,A Lcall buf3 ;disp:errINTRE3: CA LL DISPJMP INTRE3DISP: MOV A L,0FFH ;00HMOV DX,PAOUT DX,A LMOV CL,0DFHMOV BX,OFFSET BUF DIS1: MOV A L,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV A L,[BX]POP BXMOV DX,PBOUT DX,A LMOV AL,CLMOV DX,PAOUT DX,A LPUSH CXDIS2: MOV CX,00A0HLOOP $POP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV A L,0FFHMOV DX,PBOUT DX,A LRETBUF1: MOV BUF,08HMOV BUF+1,02HMOV BUF+2,05HMOV BUF+3,09HMOV BUF+4,17HMOV BUF+5,01HRETBUF2: MOV BUF,09HMOV BUF+1,00HMOV BUF+2,00HMOV BUF+3,0dHMOV BUF+4,10HMOV BUF+5,10HRETBUF3: MOV BUF,0eHMOV BUF+1,18HMOV BUF+2,18HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HRETCODE ENDSEND STA R T。

微机实践报告——8259中断控制

微机实践报告——8259中断控制

实验六 8259中断控制(1)一、实验目的1. 学习8086/8088 CPU中断系统的知识。

2. 学习8259中断控制器的使用。

二、实验内容编写程序,使8255的A口控制LED灯。

CPU执行主程序时四个绿灯亮。

用“”作为8259的IR3的输入信号,向CPU请求中断。

CPU在中断服务程序中熄灭绿灯,并使4个红灯亮。

中断服务程序结束,又返回主程序,再使绿灯亮。

三、实验区域电路连接图8259的INT连8088的INTR(Xl5);8259的INTA连8088的INTA(Xl2);“”插孔和8259的3号中断IR3插孔相连;(单脉冲与时钟单元);8259的CS端接EX1(60H);连JX4→JX17。

IOWR→IOWR;IORD→IORD;A0→A0;PA0…PA3→L2,L6,L10,L14; PA4…PA7→L3,L7,L11,L15。

四、实验步骤1、按连线图接好,检查无误后打开试验箱电源。

通过在计算机上进行设置将试验箱与电脑连接。

2、根据功能要求在 PC 端软件开发平台上编写程序代码,编译通过后下载到试验箱。

在试验箱上检测程序运行的结果。

3、在试验箱上检测程序运行的结果。

即运行程序后,绿色LED灯点亮表面程序运行在主程序。

按下AN开关按钮,应当红色LED灯亮,绿色LED灯灭,表明在执行中断服务程序;过一会儿红灯熄灭了,绿灯又亮了起来,表明中断服务程序已返回了主程序。

4、如果运行结果不正确就要检查连线和程序,修改直到正确。

五、程序框图六、程序代码CODE SEGMENTASSUME CS:CODEINTPORT1 EQU 0060HINTPORT2 EQU 0061HINTQ3 EQU INTREEUP3INTCNT DB ?ORG 1200HSTART:CLDMOV DX,0FF2BHMOV AL,80H/设置8255方式字为10000000/OUT DX,ALCALL WRINTVERMOV AL,13HMOV DX,INTPORT1OUT DX,ALMOV AL,08HMOV DX,INTPORT2OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0F7HOUT DX,ALMOV INTCNT,01HSTI/开中断/WATING:MOV DX,0FF28HMOV AL,0F0HOUT DX,ALJMP WATING/跳转到WATING,使绿灯持续亮/ WRINTVER:MOV AX,0HMOV ES,AXMOV DI,002CHLEA AX,INTQ3STOSW/送偏移地址/MOV AX,0000HSTOSW/送段地址/RETINTREEUP3:CLI/关中断/PUSH AXPUSH DX /现场保护/MOV DX,0FF28HMOV AL,0FHOUT DX,ALMOV BL,0FHDELAY: MOV AX,0FFFFHDELAY1:DEC AXJNZ DELAY1DEC BLJNZ DELAYINTRE2:MOV AL,20HMOV DX,INTPORT1OUT DX,ALPOP DXPOP AXSTI/开中断/IRETCODE ENDSEND START。

试验三8259实验

试验三8259实验

实验三、使用8259的单级中断控制实验一、实验目的:1、通过本实验,要掌握8259的使用方法。

二、实验内容8259的IR3引脚接单脉冲发生电路。

产生的中断次数由8086计数,并将计数个数显示在一位LED上。

三、实验分析:本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0-IR7对应的中断类型号为8-F,其中断矢量关系如下表所示。

中断向量表的写入:使用STOSW 命令将AX的内容存储在ES:DI地址。

ES=0,DI=002CH。

AX先为中断服务程序的地址偏移量(offset INTQ3)、后为段地址0000.A.Y6是由74LS138输出端引出的,由CPU地址线的A4、A5、A6分别连到138的ABC端。

所以,可以确定Y6作为选通信号A6A5A4=110。

B.CPU的A0和8259的A0相连。

C.故8259A 有2 个端口地址。

选择的是60H、61H. 60H 用来写ICW1, 61H 用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写操作命令字。

OCW2、OCW3 用口地址60H,OCW1用口地址61H。

所以:对8259的初始化值如下:ICW1:13HICW2:08HICW4:09HIMR :0F7H图中,使用了3号中断源,IR3插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号。

CPU响应中断后,在中断服务中,对中断次数进行计数并显示。

使用[0701H] 存放计数次数,从1到F。

如果〉F ,重新显示。

所以中断服务程序需要更改计数值。

四、实验线路连接1)8259模块上的INT1连8088的INTR(在主板键盘矩阵下面)。

2)8259模块上的INTA连8088的INTA(在主板键盘矩阵下面)。

3)MP区SP插孔和8259的3号中断IR3插孔相连,SP端初始为低电平。

4)8259模块上的D0~D7连到BUS 2区的XD0~XD7。

微机原理实验---中断控制实验

微机原理实验---中断控制实验

深圳大学实验报告课程名称:微机计算机设计实验项目名称:8259 中断控制实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:**********班级:<1>班实验时间:2011. 05.19实验报告提交时间:2011. 05. 26教务处制一、实验目的1. 掌握8259 中断控制器的工作原理。

2. 学习8259 的应用编程方法。

3. 掌握8259 级联方式的使用方法。

二、实验要求1、8259 单中断实验,由单次脉冲输出与主片8259 的IR7 相连可以实现每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。

2、8259 级联实验,由KK1+连接到主片8259 的IR7 上,KK2+连接到从片8259 的IR1 上,可实现当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。

三、实验设备PC 机一台,TD-PITE 实验装置或TD-PITC 实验装置一套。

四、实验原理1、在Intel 386EX 芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。

该中断控制单元就功能而言与工业上标准的82C59A 是一致的,操作方法也相同。

从片的INT 连接到主片的IR2 信号上构成两片8259 的级联。

在TD-PITE 实验系统中,将主控制器的IR6、IR7 以及从控制器的IR1 开放出来供实验使用,主片8259 的IR4 供系统串口使用。

8259 的内部连接及外部管脚引出如图:2、在对8259 进行编程时,首先必须进行初始化。

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

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

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

8259中断实验报告

8259中断实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

实验5 8259单级中断控制器实验
一、实验目的
⒈掌握8259中断控制器的接口方法。


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

二、实验内容
利用8259实现对外部中断的响应和处理,要求按键以后使发光二极管按照每次加1的方式进行亮灭。

三、实验接线图
四、编程指南
⑴8259芯片介绍
中断控制器8259A是专为控制优先级中断而设计的芯片。

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

因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。

即中断结构可以由用户编程来设定。

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

⑵本实验中使用3号中断源IR3,“”插孔和IR3相连,中断方式
为全嵌套、边沿触发、非级联、普通中断结束,中断类型码根据上表分析,每按一次开关触发一次中断请求。

此时发光二极管按照加1方式亮灭,延时用软件延时的方式。

端口地址见连线图。

五、实验程序框图
IR3中断服务程序:
1、按图连好实验线路图。

⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“”
插孔和8259的3号中断IR3插孔相连,“”端初始为低电平;⑷8259的CS端接FF80H孔;⑸8255A芯片的PA0-PA7依次和发光二极管L1~L8相连。

2、运行实验程序并观察结果。

程序清单:
CODE SEGMENT
ASSUME CS:CODE
ORG 1000H
START: xor ax,ax
mov es,ax
cld
mov di, 002Ch ;如何算出中断向量地址?
mov ax, offset int_3
stosw
mov ax, seg int_3
stosw ;设定IR3中断向量,存放中断服务程序入口地址
mov al,13h
mov dx,0FF80h
out dx,al ;设定ICW1
mov al,08h
mov dx,0FF81h
out dx,al ;设定ICW2
mov al,01h ///////////////思考题1时该句改为mov al,03h out dx,al ;设定ICW4
mov al, 0f7h
out dx,al ;设定OCW1
mov al,80h
mov dx,0FF2Bh
out dx,al ;设定8255PA口输出
mov al,0ffh
mov dx,0FF28h
out dx,al ;发光二极管全灭
mov bl,0 ///////////////思考题2时该句改为mov bl,1
sti ;开中断
jmp $ ;程序无限循环等待中断
int_3: push ax ;保护现场
sti ;重新开中断
inc bl ;计数值加1 //////////////////思考题2时该句屏蔽掉
////////////////////思考题2是加此句ROL bl,1
mov al,bl
not al
mov dx,0FF28h
out dx,al ;取反输出点亮发光二极管
mov al,20h
mov dx, 0FF80h
out dx,al ;普通中断结束命令送入OCW2
pop ax ;恢复现场
iret ;中断返回
CODE ENDS
END START
七、思考题
1若改为AEOI,该如何编程?
2每按一次按键,发光二极管左移一位,该如何编程?
思考题程序在原程序基础上的改动在上已指明。

相关文档
最新文档