实验四定时器8253与中断控制器8259A实验

合集下载

8253 8259报告

8253 8259报告

预习报告一、实验目的1.学习8253编程定时/计数器的工作方式。

2.掌握中断控制器8259A与微处理机接口的原理和方法。

3..掌握中断控制器8259A的应用编程。

二、预习内容(一)实验中应用的芯片的结构、引脚、工作原理及工作方式。

(1)8253芯片。

8253具有3个独立的计数通道,采用减1计数方式。

在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。

当计数脉冲是已知周期的时钟信号时,计数就成为定时。

8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。

六种方式分别是:1)方式0:计数结束则中断;2)方式1:单脉冲发生器;3)方式2:速率波发生器;4)方式3:方波发生器;5)方式4:软件触发方式计数;6)方式5:硬件触发方式计数。

图1,8253结构图图2,8253引脚图8253引脚图如图1-2示,各引脚功能如下。

D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。

(2)8259芯片。

一个外部中断请求信号通过中断请求线IRQ,传输到IMR(中断屏蔽寄存器),IMR根据所设定的中断屏蔽字(OCW1),决定是将其丢弃还是接受。

如果可以接受,则8259A将IRR(中断请求暂存寄存器)中代表此IRQ的位置位,以表示此IRQ有中断请求信号,并同时向CPU的INTR(中断请求)管脚发送一个信号。

但CPU这时可能正在执行一条指令,因此CPU不会立即响应。

而当这CPU正忙着执行某条指令时,还有可能有其余的IRQ线送来中断请求,这些请求都会接受IMR的挑选。

如果没有被屏蔽,那么这些请求也会被放到IRR中,也即IRR中代表它们的IRQ的相应位会被置1。

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五、实验结果程序调试通过后,当我们按一次单脉冲发生器的输出开关,对应连好的灯就会亮。

8259A中断控制器和8253计数器

8259A中断控制器和8253计数器

8259A中断控制器和8253计数器·定时器实验浏览次数:1129次悬赏分:50|解决时间:2008-12-2 12:17 |提问者:liushang8811程序1参考流程图1:开始2:关中断3:初始化8253(设定定时器0和1的工作方式及技术初值)4:使用INT 21H的35H号功能获取0AH号中断向量并保存。

5:使用INT 21H的25H号功能设置0AH号中断的新中断向量。

6:设置IMR寄读器及允许IRQ2中断。

7:开中断8:循环等待中断。

程序2参考流程图:编写中断服务程序。

要求主机每响应一次IRQ2的中断时,就执行一次终端服务子程序。

中断服务子程序的核心就是显示字符串“THIS IS A 8259A INTERRUPT”1:开始2:显示字符串3:技术结束?终端结束并返回4:关中断5: 使用INT 21H的25H号功能恢复原OAH号中断的中断向量6: 恢复IMR寄存器的原值7: 开中断8: 结束,返回DOS用汇编,急用,跪谢1.MOV AX,FLAGSAND AX,1111110111111111B ;关中断MOV FLAGS,AXMOV AL,00110110B ;假设定时器0设为方式3OUT 43H,ALMOV AL,XXH ;OUT 40H,ALMOV AL,XXHOUT 40H,AL ;定时器0初值MOV AL,01110110B ;假设定时器1设为方式3OUT 43H,ALMOV AL,XXH ;OUT 41H,ALMOV AL,XXHOUT 41H,AL ;定时器1初值MOV AH,35HMOV AL,0AHINT 21HPUSH ES ;保存原向量PUSH BXPUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DXMOV DS,XXH ;新中断向量段地址MOV DX,XXH ;新中断向量偏移量MOV AH,25HMOV AL,0AHINT 21HPOP DXPOP DSIN AL,21HMOV SAV_IR,AL ;保存原8259设置(必须事先在数据段中为SAV_IR开辟一个字节的空间)OR AL,00000100B ;开IR2OUT 21H,ALMOV AX,FLAGSOR AX,0000001000000000B ;开中断MOV FLAGS,AXWAIT1:JMP WAIT12.MESSAGE DB 'THIS IS A 8259A INTERRUPT$'SAV_IR DB 0MOV AH,9MOV DX,SEG MESSAGEMOV DS,DXMOV DX,OFFSET MESSAGEINT 21HMOV AX,FLAGSAND AX,1111110111111111B ;关中断MOV FLAGS,AXPUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DXMOV DS,ESMOV DX,BX ;原0AH中断向量值MOV AH,25HMOV AL,0AHINT 21HPOP DXPOP DSMOV AL,SAV_IR ;读回8259原设置值OUT 21H,ALMOV AX,FLAGSOR AX,0000001000000000B ;开中断MOV FLAGS,AXIRET回答者:shinesnow_wy|三级| 2008-11-12 18:51 呵呵~~我们是同行啊~~~也许是对的吧~~顶~~顶~~~顶~~~~MOV AX,FLAGSAND AX,1111110111111111B ;关中断MOV FLAGS,AXMOV AL,00110110B ;假设定时器0设为方式3OUT 43H,ALMOV AL,XXH ;OUT 40H,ALMOV AL,XXHOUT 40H,AL ;定时器0初值MOV AL,01110110B ;假设定时器1设为方式3 OUT 43H,ALMOV AL,XXH ;OUT 41H,ALMOV AL,XXHOUT 41H,AL ;定时器1初值MOV AH,35HMOV AL,0AHINT 21HPUSH ES ;保存原向量PUSH BXPUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DXMOV DS,XXH ;新中断向量段地址MOV DX,XXH ;新中断向量偏移量MOV AH,25HMOV AL,0AHINT 21HPOP DXPOP DSIN AL,21HMOV SAV_IR,AL ;保存原8259设置(必须事先在数据段中为SAV_IR开辟一个字节的空间)OR AL,00000100B ;开IR2OUT 21H,ALMOV AX,FLAGSOR AX,0000001000000000B ;开中断MOV FLAGS,AXWAIT1:JMP WAIT12.MESSAGE DB 'THIS IS A 8259A INTERRUPT$'SAV_IR DB 0MOV AH,9MOV DX,SEG MESSAGEMOV DS,DXMOV DX,OFFSET MESSAGEINT 21HMOV AX,FLAGSAND AX,1111110111111111B ;关中断MOV FLAGS,AXPUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DXMOV DS,ESMOV DX,BX ;原0AH中断向量值MOV AH,25HMOV AL,0AHINT 21HPOP DXPOP DSMOV AL,SAV_IR ;读回8259原设置值OUT 21H,ALMOV AX,FLAGSOR AX,0000001000000000B ;开中断MOV FLAGS,AXIRET。

8259A可编程中断控制器实验

8259A可编程中断控制器实验

集美大学计算机工程学院实验报告课程名称微机系统与接口技术实验名称实验二8259A可编程中断控制器实验实验类型设计型姓名学号日期地点微机实验室成绩教师第1页共8页1. 实验目的及内容1.1实验目的1)了解8259A芯片的工作原理。

学会使用8259A中断控制芯片实现对外中断的响应和处理。

2)了解8259A内部结构和熟悉8086的接口逻辑。

3)掌握8259A的初始化编程方法和8086是如何响应中断、退出中断的。

1.2实验内容1)设计8259A与8086CPU的硬件连接图,分配8259A的端口地址为9000H,9001H。

2)设计8259A的外围连接,实现拨动单脉冲开关触发8259A中断,8086计数中断次数并显示于G5区的断码管LED上。

3)中断次数的显示需调用系统给定的显示子程序DISPLAY8。

程序开始处必须设置外部连接,告诉汇编程序该显示程序在何处;设置显示缓冲区及相应的入口参数:si——显示缓冲区首地址。

若要让LED无任何显示,即对应单元送10H,若要让它显示数字,则把数字值直接送到相应的显示缓冲区单元中就可以显示了。

4)要保证DISPLAY8能正常显示,必须使得8279键盘/LED控制器能正确运行。

此时要设置连线:①8279键盘/LED控制器的CLK应连接2MHz的时钟;②8279键盘/LED控制器的CS,A0连接到芯片组A3区的CS5,A0;③控制数码管LED亮灭的数据(段码,列码)由8279的键盘/LED控制器输出,应该把E5区中的B,C与G5区的B,C对应连接起来。

2. 实验环境星研电子软件,STAR系列实验仪一套、PC机一台、导线若干3. 实验方法8259A的中断引脚IRi与单脉冲连接,实现拨动单脉冲开关触发8259A中断,8086计数中断次数并显示于G5区的断码管LED上,此实验使用8259A的IR2中断,正脉冲触发中断,脉冲频率为2MHz.4.实验步骤MOV DX,9001HMOV AL,00001010B OUT DX,ALMOV AL,00001101B OUT DX,ALMOV AL,11111011B OUT DX,ALMOV CX,0000HMOV BL,00HMOV BH,11STI L1: MOV FLAG,0MOV AL,BLAND AL,0FHMOV BUF,ALMOV AL,BLSHR AL,4AND AL,0FHMOV BUF+1,ALMOV BUF+2,10HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HMOV BUF+6,10HMOV BUF+7,10HLEA SI,BUFCALL DISPLAY8 CHECK:CMP FLAG,0JZ CHECK CMP BH,00HJZ ZEROJMP L1ZERO:MOV DX,9001HIN AL,DX OR AL,00000100 OUT DX,ALJMP ZEROIRQ2 PROC FARMOV AL,BLADD AL,01HDAAMOV BL,ALDEC BHMOV FLAG,1MOV DX,9000HMOV AL,00100000BOUT DX,ALIRETIRQ2 ENDPEND START4.4运行调试程序1)按要求设计的电路正确连接线路,检查完毕后打开电源。

微型计算机实验报告用8253和8259实现电子表洗衣机控制系统

微型计算机实验报告用8253和8259实现电子表洗衣机控制系统

2015-2016 学年第一学期《微型计算机技术》课程设计报告项目组:第八组学院:计算机科学与工程指导教师:唐培丽设计时间:2016年1月目录一、团队构成及分工 (3)二、项目进度计划 (4)三、实验报告 (5)四、设计报告 (7)五、程序清单 (20)六、课程设计总结 (40)一、团队构成及分工指导教师签字:年月日二、项目进度计划三、实验报告1.实验目的1.学习8253编程定时/计数器的工作方式。

2.掌握中断控制器8259A与微处理机接口的原理和方法。

3.掌握中断控制器8259A的应用编程。

2.实验内容利用8253的定时器功能。

8253的四个端口地址为48H,49H,4AH,4BH,本实验采用8253的通道2,工作在方式3(方波发生器方式)输入CLK2为1KHZ。

输出OUT2作为8259的断请求信号。

8259有两个口地址,本实验为20H和21H,其中20H用来写ICW1,21H用来写ICW2、ICW4,本实验中8259为单片,边沿触发,中断类型号的起始值是8,采用3号中断源,即IRQ3和8253输出口OUT2相连,每过1秒接收到一个中断,向8259发出中断请求信号, CPU响应后,在中断处理程序中,把时间缓冲区中的时间加1,并将其输入到显示缓冲区,以便显示器显示更新后的时间。

计数初值的计算:1/1000000*X=1/20 X=50000D=0C350H(用1MHZ信号产生1/20秒方波)3.实验步骤1.连接好实验线路。

图1-1 实验连线图2.编写程序并调试。

3.运行程序,实验仪显示器上显示一电子秒表。

4.实验记录显示屏亮,刚开始可以看到八段管的第六个管开始显示数字,计时开始,每秒加1,实现了时钟效果。

现象的原因分析:程序写入控制字与计数初值后,定时器启动工作,当计数器减到1时,输出端输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端输出1s,向CPU申请中断,其中一个数码管显示,当计数到60s时,输出端向CPU申请中断,由另一数码管显示1min,同理由数码管显示1h,CPU处理,使数码管的显示发生变化。

实验四 8259A的单级中断控制实验

实验四 8259A的单级中断控制实验

实验四使用8259A的单级中断控制实验一、实验目的1.掌握中断控制器8259A与微机接口的原理和方法。

2.掌握中断控制器8259A的应用编程。

二、实验内容编制程序,利用开关作为8259芯片IR7的中断源,人工控制产生单一中断。

中断的功能是驱动发光二极管,使其亮灭,不停地闪动。

三、实验提示8259中断控制器是专为控制优先级中断设计的芯片。

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

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

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

实验箱中采用一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表所示。

表1 8259中断矢量对应关系务程序程序,使系统每次响应外部中断IR7时发光二极管闪烁。

四、实验电路五、实验软件清单Port0 EQU 0FFE0HPort1 EQU 0FFE1HCODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 3400HP8259: CLIMOV AX,OFFSET INT8259MOV BX,003CHMOV [BX],AXMOV BX,003EHMOV AX,0000HMOV [BX],AXCALL FOR8259MOV AL,0FEHMOV DX,0FFE4HSTIJMP $;============================== FOR8259:MOV AL,13HMOV DX,Port0OUT DX,ALMOV AL,08HMOV DX,Port1OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,7FH ;IRQ7OUT DX,ALRET;--------------------------- INT8259:cliPush dxPush axMOV AL,20HMOV DX,Port0OUT DX,ALPop axPop dxOut dx,almov cx,0loop $Rol al,1STIIRETCODE ENDSEND P8259六、实验软件框图七、实验步骤(1)按实验电路图连接线路:①开关Ki 和8259 7号中断IR7插孔相连。

PC机8259A的中断应用实验

PC机8259A的中断应用实验

8259A的中断应用实验一、实验目的(1)学习8259 A中断控制器的结构及其工作原理。

(2)掌握59A的工作方式及初始化。

(2)学习8259 可编程控制器的应用编程。

(3)掌握使用PC 机内8259 的方法。

(4)掌握修改中断向量的方法。

二、实验要求编写一键盘中断处理程序,计数键盘中断次数,并用该程序替换系统键盘中断处理程序,使当键盘中断产生10 次后,显示按键次数并结束应用。

三、相关基本知识a、CPUCPU是中央处理单元(Central Process Unit)的缩写,它可以被简称做微处理器。

(Microprocessor),不过经常被人们直接称为处理器(processor)。

不要因为这些简称而忽视它的作用,CPU是计算机的核心,其重要性好比心脏对于人一样。

实际上,处理器的作用和大脑更相似,因为它负责处理、运算计算机内部的所有数据,而主板芯片组则更像是心脏,它控制着数据的交换。

CPU的种类决定了你使用的操作系统和相应的软件。

CPU主要由运算器、控制器、寄存器组和内部总线等构成,是PC的核心,再配上储存器、输入/输出接口和系统总线组成为完整的PC。

CPU的基本结构、功能及参数CPU主要由运算器、控制器、寄存器组和内部总线等构成。

寄存器组用于在指令执行过后存放操作数和中间数据,由运算器完成指令所规定的运算及操作。

CPU主要的性能指标有:1.主频主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。

CPU的主频=外频×倍频系数。

很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。

CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。

CPU的运算速度还要看CPU的流水线的各方面的性能指标。

当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。

2.外频外频是CPU的基准频率,单位也是MHz。

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

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

实验四 定时器8253与中断控制器8259A 实验
一﹑实验目的
1. 掌握计数器/定时器8253的工作原理和编程方法。

2. 掌握8259中断控制器的工作原理;
3. 掌握中断服务程序的编写。

二﹑实验内容
1. 该实验用PC 机内部的中断控制器8259A ,中断源用TPC_H 实验箱上8253来产生,电路如下所示,将8253计数器0、计数器1分别设置为方式3和方式2,计数初值设为2000,每隔4秒产生一次。

TPC_H 实验箱上的IRQ 已连接到PC 机内部主片8259A 的IRQ7,主片8259A 的端口地址为20H 和21H ,主机启动时,系统已将8259A 中断控制器进行了初始化(边沿触发﹑一般完全嵌套方式﹑非自动结束,ICW2为08H ,IRQ7对应的中断类型码为0FH);
2. 实验电路如下图:
注意:做中断实验时,JB 上的短路片应插在“I/O ”位置,JC 上的短路片插在“I/O ”位置。

3. 编写程序,要求每次主机响应外中断IRQ7时,显示"THIS IS A 8259A INTERRUPT !",在键盘上敲任意一个键,程序退出。

4. 修改电路和程序,直接用手动产生单个脉冲作为中断请求信号,要求每按一次开关产生一次中断,在屏幕上显示一次“THIS IS A IRQ7 INTRUPT !”,中断10次后程序退出。

JC
I/O EM
实验连线6条,如图红色虚线所示
去IRQ7
去去50去1MHz 输出端
1.复习8259A工作原理,编程方法和使用方法。

2.根据要求编写相应的汇编程序。

四﹑报告要求
1.整理好经过运行是正确的源程序,并加上注释。

2.总结实验调试过程中遇到的问题。

3.通过实验回答思考题。

五﹑思考题
初始化时设置为非自动结束方式,那么在中断服务程序
将结束时必须设置什么操作命令?如果不设置这种命令会发
生什么现象?
六、实验原理
1、PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。

中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。

IBM-PC/XT机内有一片8259中断控制器对外可提供8个中断源:
中断源中断类型号中断功能
IRQ0 08H 时钟
IRQ1 09H 键盘
IRQ2 0AH 保留
IRQ3 0BH 串行口2
IRQ4 0CH 串行口1
IRQ5 0DH 硬盘
IRQ6 0EH 软盘
IRQ7 0FH 并行打印机
8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线总线插槽中可以引出,系统已设定中断请求信号为“边沿触发”、普通结束方式。

对于286以上的微机又扩展了一片8259中断控制器,主片的IRQ2已用于从片的级连。

本实验箱在出厂时,默认IRQ7引到实验台上。

2、编程说明:PC机中断控制器8259的地址为20H、21H,编程时要根据中断类型号设置中断矢量,8259中断屏蔽寄存器IMR对应位要清0(允许中断),中断服务程序返回前要使用中断结束命令:
MOV AL,20H
OUT 20H,AL
中断结束返回DOS时应将IMR对应位置1,以关闭中断。

七、实验参考流程如下:
八、实验步骤:
⑴、打开实验箱,按红虚线位置连接好接线(6条),检查连接有无错误。

⑵、连接微机至实验板的50线扁平电缆。

⑶、打开微机和实验板电源。

⑷、编写程序并调试程序。

⑸、调试通过后全速运行并观察实验结果。

⑹、写出实验报告并交微机组成原理实验室。

九、实验参考程序如下:
;******************************; ;* 8259IRQ7定时中断服务程序 *; ;******************************; data segment
mess db ' THIS IS A 8259A INTERRUPT !',0aH,0dH,'$' data ends stack segment
db 100h dup(?) stack ends code segment
assume cs:code,ds:data,ss:stack start: mov ax,cs mov ds,ax
mov dx,offset int7 mov ax,250fh
int 21h ;设中断程序int7的类型号为0fh cli ;清中断标志位 in al,21h ;读中断屏蔽寄存器 and al,7fh ;开放IRQ7中断 out 21h,al
中断主程序
中断服务程序
sti ;开中断
mov dx,283h ;向8253写控制字
mov al,36h ;使0通道为工作方式3
out dx,al
mov ax,2000 ;写入循环计数初值2000
mov dx,280h
out dx,al ;先写入低字节
mov al,ah
out dx,al ;后写入高字节
mov dx,283h
mov al,74h ;设8253通道1工作方式2
out dx,al
mov ax,2000 ;写入循环计数初值2000
mov dx,281h
out dx,al ;先写低字节
mov al,ah
out dx,al ;后写高字节
sss: jmp sss
int7: mov ax,data ;中断服务程序
mov ds,ax
mov dx,offset mess
mov ah,09 ;显示每次中断的提示信息
int 21h
mov al,20h
out 20h,al ;发出EOI结束中断
mov ah,06h ;检测按键状态
mov dl,0ffh
int 21h
je rete
in al,21h
or al,80h ;关闭IR7中断
out 21h,al
sti ;置中断标志位
mov ah,4ch ;返回DOS
int 21h
rete: sti ;开中断
iret ;中断返回
code ends
end start
;********************************;
;* 8259IRQ7中断10次服务程序 *;
;********************************;
data segment
mess db ' THIS IS A 8259A INTERRUPT !',0aH,0dH,'$' data ends
code segment
assume cs:code,ds:data
start: mov ax,cs
mov ds,ax
mov dx,offset int7
mov ax,250fh
int 21h ;设中断程序int7的类型号为0fh
cli ;清中断标志位
in al,21h ;读中断屏蔽寄存器
and al,7fh ;开放IRQ7中断
out 21h,al
mov cx,10 ;记中断循环次数为10次
sti ;置中断标志位
ll: jmp ll
int7: mov ax,data ;中断服务程序
mov ds,ax
mov dx,offset mess
mov ah,09 ;显示每次中断的提示信息
int 21h
mov al,20h
out 20h,al ;发出EOI结束中断
loop next
in al,21h
or al,80h ;关闭IR7中断
out 21h,al
sti ;置中断标志位
mov ah,4ch ;返回DOS
int 21h
next: iret
code ends
end start。

相关文档
最新文档