ImageVerifierCode 换一换
格式:PPT , 页数:47 ,大小:484KB ,
资源ID:14014689      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/14014689.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第05章 中断技术1.ppt)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第05章 中断技术1.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,1,第,5,章 中断技术,主要内容:,1,、中断的基本概念,2,、,IBM-PC,微机中断系统,3,、可编程中断控制器,8259A,4,、,8259A,在微机系统中的应用,重点内容:,可编程中断控制器,8259A,及其应用,2,第,5,章 中断技术,5.1,中断的基本概念,一、中断,CPU,执行程序时,由于发生了某种随机的事件(外部或内部),,引起,CPU,暂时中断正在运行的程序,转去执行一段特殊的服务程序,(称为中断服务程序或中断处理程序),以处理该事件,该事件,处理完后又返回被中断的程序继续执行,

2、这一过程称为中断。,二、引入中断的原因,(,1,)提高数据传输率,(,2,)避免了,CPU,不断检测外设状态的过程,提高了,CPU,的利用率,(,3,)实现对特殊事件的实时响应,3,第,5,章 中断技术,三、中断工作方式的特点,1,、并行处理能力,有了中断功能,可以实现,CPU,和多个外设同时工作,仅仅,在它们相互需要交换信息时,才进行,“,中断,”,。这样,CPU,可以控,制多个外设并行工作,提高了,CPU,的使用效率。,2,、实时处理能力,计算机应用于实时控制时,现场的许多事件需要,CPU,能迅,速响应、及时处理,而提出请求的时间往往又是随机的。有,了中断系统,才能实现实时处理。,3,、故

3、障处理能力,在,CPU,运行过程中,有时会出现一些故障,可以利用中断,系统,通过执行故障处理程序进行处理,不影响其他程序的,运行。,4,第,5,章 中断技术,4,、多道程序或多重任务的运行,在操作系统的调度下,使,CPU,运行多道程序或多重任务。一个,程序需要等待外设,I/O,操作结果时,就暂时,“,挂起,”,同时启动另一,道程序运行。,I/O,操作完成后,挂起的程序再排队等待运行。这样,,多个程序交替运行。从大的时间范围来看,多道程序在,“,同时,”,运,行。也可以给每道程序分配一个固定的时间间隔,利用时钟定时,中断进行多道程序的切换。由于,CPU,速度快,,I/O,设备速度慢,各,道程序感

4、觉不到,CPU,在做其他的服务,好像专为自己服务一样。,5,第,5,章 中断技术,四、中断源与中断识别,1,、中断源,引发,CPU,中断的信息源。,(,1,)硬中断,外设中断:交换信息,硬件中断:电源掉电、奇偶错,(,2,)软中断,指令中断:,DOS,和,BIOS,功能调用,程序中断:程序运行出错。溢出、,非法操作码、非法除,2,、中断识别,CPU,寻找中断源,目的是形成中断服务程序入口地址。,方法,向量中断:中断向量指示中断服务程序入口地址。,查询中断:用软件或硬件查询技术确定中断源。,6,第,5,章 中断技术,五、中断向量和中断向量表,1,、中断向量,中断服务程序入口地址,包括中断程序的段

5、基址,CS,和偏移量,IP,。,2,、中断向量表,是中断号与该中断号对应的中断服务程序入口地址,之间关系的链接表。,通过中断号可找到中断服务程序入口地址在内存单,元中地址。,PC,机在内存,0000H,03FFH,共,1024,单元中存放,00H,号,FFH,号共,256,个中断服务程序的中断向量。,7,第,5,章 中断技术,六、中断号与中断向量指针,1,、中断号,00H,FFH,(,1,)外设中断(可屏蔽中断):由,8259A,提供,(,2,)指令中断:由程序直接给出,int 21h,(,3,)不可屏蔽中断和内部特殊中断:由系统预先设置,中断号,名称,中断号,名称,00H,除数零,06H,系

6、统保留,01H,单步,07H,系统保留,02H,NMI,非屏蔽中断,08H,日时钟中断,03H,断点,09H,键盘中断,04H,溢出,0EH,软盘中断,05H,屏幕打印,21H,系统功能调用,8,第,5,章 中断技术,2,、中断向量指针,中断向量所在的存储单元的地址。,3,、中断号与中断向量指针间的关系,中断号,4 =,中断向量的低字节的指针,从该指针开始,四个存储单元地址依次存放的是中断程序的偏移量,IPL,和,IPH,及段基址,CSL,和,CSH,。,中断号,4+0,IP,L,中断号,4+1,IP,H,中断号,4+2,CS,L,中断号,4+3,CS,H,内,存,地,址,9,第,5,章 中断

7、技术,4,、类型,0,类型,4,已由系统定义,不允许用户做任何修改。类型,5,类型,31,是系统备用中断,占用表地址,00014H,0007FH,。,类型,32,类型,255,中断矢量表地址,00080H,003FFH,,可供用,户使用。,七、中断向量表的初始化,例:,将中断向量码为,48H,的服务程序入口地址放入向量表中断向,量表的初始化,MOV AX,,,0000H,MOV DS,,,AX,MOV SI,,,0120H,MOV BX,,,OFFSET INT1,MOV SI,,,BX,MOV BX,,,SEG INT1,MOV SI+2,,,BX,10,第,5,章 中断技术,八、中断向量的

8、装入与修改,1,、中断向量的装入,分系统装入和用户装入两种情况;系统设置的中断服务,程序,其中断向量由系统负责装入。其中,由,BIOS,提供的服,务程序,其中断向量是在系统加电后由,BIOS,负责装入;由,DOS,提供服务程序,其中断向量在启动,DOS,时由,DOS,负责装入。,用户开发的中断系统,在编写中断服务程序时,其中断,向量由用户负责装入,其方法可采用,MOV,指令直接对中断向,量表中填写中断向量。,11,第,5,章 中断技术,例:,中断类型号为,60H,,中断服务程序的段基址为,seg_intr,,,偏移量是,offset_intr,(,006DH,),写出装入中断向量的,程序代码。

9、CLI,;,关中断,CLD,;,内存地址加,1,MOV AX ,0,;,MOV ES ,AX,;给,ES,赋值为,0,MOV DI ,4*60h,;,中断向量指针,ID,MOV AX ,offset_intr,;中断服务程序偏移量,AX,STOSW,;,AX DI,及,DI+1,单元中,,DI+2 DI,MOV AX,,,seg_intr,;中断服务程序偏移量,AX,STOSW,;,AX DI+2,及,DI+3,单元中,,DI+4 DI,STI,;,开中断,(,1,)用,mov,指令装入,12,第,5,章 中断技术,(,2,)将中断向量直接写入中断向量表,MOV AX ,00H,;,MOV

10、ES ,AX,;,给,ES,赋值为,0,MOV BX ,4*60h,;,中断向量指针,ID,MOV AX ,006DH,;,中断服务程序偏移量,AX,MOV ES:BX,AX,;,将中断向量偏移量装向量表,PUSH CS,;,将,CS,压入堆栈,POP AX,;,将,CS AX,MOV ES:BX+2,AX,;,将中断向量段基址装向量表,13,第,5,章 中断技术,2,、中断向量的修改,在,PC,机中用户不直接装中断向量,通过修改中断向量,来使用系统的中断资源。,中断向量的修改是利用,DOS,功能调用,int 21H,中的,35H,号和,25H,号功能来完成的。,(,1,),int 21H,的

11、35H,号功能,功 能:,读取中断向量,入口参数:,AH=35H,,,AL=,中断号,出口参数:,ES:BX=,中断向量,(,2,),int 21H,的,25H,号功能,功 能:,写入中断向量,入口参数:,AH=25H,,,AL=,中断号,出口参数:,DS:DX=,要写入的中断向量,14,第,5,章 中断技术,(,3,)中断向量修改的步骤,用,35H,号功能获取原中断向量,并保存在字变量中;,用,25H,号功能设置新中断向量,取代原中断向量,转,到新中断服务程序中;,新中断服务程序执行完毕,再用,25H,号功能将保存在,字变量中的原中断向量写回去,恢复原中断向量。,例:,假设原中断程序的中断

12、号为,n,,新中断程序的入,口地址的段基地址为,SEG_INTR,,偏移地址为,OFFSET_INTR,。,15,第,5,章 中断技术,分析下列各段程序功能:,MOV AH,,,35H,;取原中断向量,MOV AL,,,nH,INT 21H,MOV OLD_OFF,,,BX,MOV BX,,,ES,MOV OLD_SEG,,,BX,;保存原中断向量,(其它程序段),MOV AH,,,25H,;设置新中断向量,MOV AL,,,nH,;中断号,MOV DX,,,SEG_INTR,MOV DS,,,DX,;,DS,指向新中断程序段地址,MOV DX,,,OFFSET_INTR,;,DX,指向新中断

13、程序偏移地址,INT 21H,16,第,5,章 中断技术,(其它程序段),MOV AH,,,25H,;恢复原中断向量,MOV AL,,,nH,MOV DX,,,OLD_SEG,MOV DS,,,DX,MOV DX,,,OLD_OFF,INT 21H,17,第,5,章 中断技术,四、中断处理过程,1,、中断请求,当外部设备要求,CPU,为他服务时,要向,CPU,发中断请求信号,申请中断。,(,1,)外部中断源,由外部硬件产生可屏蔽或不可屏蔽中断的请求信号;,(,2,)内部中断源,在程序运行过程中发生了指令异常或其他情况。,2,、中断响应,中断源提出中断请求后,必须满足一定的条件,,CPU,才可响

14、应中断。,(,1,)响应可屏蔽中断必须同时具备以下条件,CPU,处于允许中断状态(,IF=1,);,没有不可屏蔽中断请求和总线请求,;,当前指令执行结束。,18,第,5,章 中断技术,(,2,)响应不可屏蔽中断必须同时满足以下条件,没有总线请求;,当前指令执行结束。,(,3,)响应内部中断的条件,当前指令执行结束。,(,4,),CPU,接受中断请求后转入中断响应周期。在中断响应周期,识别中断源,取得中断源的中断类型;,将标志寄存器,FLAGS,和,CS,、,IP,(断点)先后压入堆栈保存;,清除自陷标志位,TF,和中断允许标志位,IF,;,获得相应的中断服务程序入口地址,转入中断服务程序。,1

15、9,第,5,章 中断技术,3,、中断服务,(,1,)保护现场,在执行中断服务程序时,先保护中断服务时要使用的寄存器的,内容,中断返回前再将其内容恢复。这样,中断处理程序的运,行不会影响主程序的运行。具体的做法是将这些寄存器的内容,压入堆栈。,(,2,)开中断,以便在执行中断服务程序时,能响应较高级别的中断请求。,(,3,)中断处理,执行输入输出或非常事件的处理,执行过程中允许,CPU,响应较,高级别设备的中断请求。,(,4,)关中断,保证在恢复现场时不被新的中断打扰。,(,5,)恢复现场,中断服务程序执行结束前,应将堆栈中保存的内容按入栈相反,的顺序弹出,送回到原来的,CPU,寄存器,从而保证

16、被中断的程,序能够正常地继续执行。,20,第,5,章 中断技术,4,、中断返回,(,1,)在中断服务程序的最后,需要安排一条中断返回,指令,用于将堆栈中保存的,IP,,,CS,,,FLAGS,的值,弹出,使程序回到被中断的地址,并恢复被中断,前的状态。,(,2,)保护和恢复现场的操作在,8086 CPU,中由软件完成。,有的微处理机如,MC68000,,保护现场操作在中断,响应周期由硬件完成,恢复现场、中断返回用一,条返回指令来完成。,21,第,5,章 中断技术,五、中断指令,1,、开中断(,STI,)和关中断(,CLI,)指令,(,1,)这两条指令用来操纵,CPU,标志寄存器的中断允许标志位

17、IF,。,(,2,)对可屏蔽中断,INTR,起作用。,2,、软中断指令,INT n,(,1,)该指令功能是调用,n,号中断服务程序。,N,为中断号。,(,2,)完成以下操作:,标志寄存器内容进栈保存,使标志位,TF,置,0,,禁止单步操作;使,IF,标志位置,0,,关闭,中断,防止外部中断进入,被中断的程序的断点地址,CS,和,IP,,先后进栈保存,CPU,将指令中的中断号,n*4,,作为地址指针,从中断向量,表中,取出,n,号中断服务程序的入口地址,装入,CS,和,IP,。,22,第,5,章 中断技术,3,、中断返回指令,IRET,这是一条中断服务程序的出口指令,其功能是对中断,的程序的断

18、点地址和标志寄存器做恢复操作。,4,、暂停指令,HLT,该指令的功能是暂时停止执行主程序,而等外部中断,的发生。,23,第,5,章 中断技术,五、中断向应周期及,INTA,信号的作用,CLK,(时钟信号),ALE,(地址允许),T1,T2,T3,T4,T1,T2,T3,T4,LOCK,(总线锁定),INTA,(中断响应),ID0D7,(数据总线),中断号,(,1,),CPU,发第一个,INTA,时,,LOCK=0,总线处于封锁状态,防止其它设备占,用总线,,8259A,中断服务寄存器,ISR,置位,中断请求寄存器,IRR,清零。,表示中断已被响应。,(,2,),CPU,发第二个,INTA,时,

19、LOCK=1,总线解除封锁状态,,ALE=0,允许数据线工作,类型号通过数据总线送,CPU,。,24,第,5,章 中断技术,练习,1,、中断向量地址是(),A,、子程序入口地址,B,、中断服务程序入口地址,C,、中断服务程序入口地址的地址,D,、中断地址,2,、在下面中断中,只有()需要硬件提供中断类型码。,A,、,INT 0 B,、,INT n C,、,NMI D,、,INTR,3,、硬中断可分()和()两种。,4,、,8086/8088,最多能处理()种中断。,5,、非屏蔽中断的中断类型号是()。,6,、对于掉电的处理。,8086/8088,是通过()来处量的。,7,、,CPU,接收中断

20、号,将它左移()位,形成中断向量,的指针。,25,第,5,章 中断技术,5.4 8259A,在,PC,中的应用,1,、,IBM PC/XT,初始化,PC/XT,系统中使用了,1,片,8259A,来提供,8,级中断请求,IRQ0,IRQ7,,分别用于日时钟、键盘、保留、串行口,2,、串行口,1,、,硬盘、软盘、打印机中断,中断类型号从,08H,0FH,。,8,级中断请求均,为边沿触发,采用全嵌套方式工作,,IRQ0,优先级最高,,IRQ7,优先级,最低。端口地址使用,20H,、,21H,。系统对,8259A,初始化的程序段如下:,INTA00 EQU 20H,;,8259A,端口,INTA01

21、EQU 21H,CLI,;关中断,MOV AL,,,13H,;,ICW1,边沿触发、单片,OUT INTA00,,,AL,MOV AL,,,08,OUT INTA01,,,AL,;,ICW2,中断类型号的高,5,位,从,8,开始,MOV AL,,,09,;,ICW4,全嵌套,,8088,系统、正常结束、缓冲方式,OUT INTA01,,,AL,STI,;开中断,26,第,5,章 中断技术,2,、,IBM PC/AT,初始化,IBM PC/AT,系统使用了,2,片,8259A,级连成,15,级中断,如图所示。,使用特点是,主片、从片的中断请求均为边沿触发。采用全嵌套,方式,优先级顺序从高到低依次

22、为,IRQ0,、,IRQ1,、,IRQ8,IRQ15,、,IRQ3,IRQ7,。主片使用端口地址,20H,和,21H,,从片使用端口地址,0A0H,和,0A1H,。主片中断类型号从,8,开始,从片中断类型号从,70H,开始。,从片,8259A,CAS2,INT,D0D7,RD,WR,A0,INTA,CS,CAS0,CAS1,SP/EN,IR0,IR7,.,.,.,.,.,.,主片,8259A,CAS2,INT,D0D7,RD,WR,A0,INTA,CS,CAS0,CAS1,SP/EN,IR0,IR7,.,.,.,IR1,IR2,译,码,器,D0D7,INTR,IOR,IOW,A0,INTA,地

23、址,CPU,总线,中断源,中断源,.,.,.,.,.,.,.,.,.,Vcc,27,第,5,章 中断技术,系统初始化,8259A,的程序段如下:;端口地址定义,INTA00 EQU 20H,;,8259A,主片端口,0,INTA01 EQU 21H,;,8259A,主片端口,1,INTB0 EQU 0A0H,;,8259A,从片端口,0,INTBB1 EQU 0A1H,;,8259A,从片端口,1,;主片初始化,CLI,;关中断,MOV AL,,,11H,;边沿触发、多片、,16,位系统,OUT INTA00,,,AL,MOV AL,,,08,;中断类型号从,8,开始,OUT INTA01,,

24、AL,MOV AL,,,04H,;,ICW3,主片的,IR2,引脚接有从片,OUT INTA01,,,AL,MOV AL,,,01H,;,ICW4,非缓冲、全嵌套方式、,16,位系统、正常结束,OUT INTA01,,,AL,28,第,5,章 中断技术,;从片初始化,MOV AL,,,11H,;边沿触发、多片、,16,位系统,OUT INTB00,,,AL,MOV AL,,,70H,;中断类型号从,70H,开始,OUT INTB01,,,AL,MOV AL,,,02,;从片接主片的,IR2,(即标识码,=010,),OUT INTB01,,,AL,MOV AL,,,01H,;,ICW4,非缓

25、冲、全嵌套、,16,位系统、正常结束,OUT INTB01,,,AL,STI,;开中断,29,第,5,章 中断技术,3,、中断服务程序的编制,编写,PC DOS,下的硬件中断服务程序,有几点需要注意:,(,1,)由于系统引导过程已完成,8259A,的初始化,所以应用程序一般,不再重新初始化,但为了正确转入用户自己的中断服务程序,,应对中断向量表进行修改。方法是:根据用户中断类型号先从,中断向量表取出相应的中断向量,并保存在事先定义的变量中;,然后,向存放原中断向量的单元写入新中断服务程序的入口地,址;最后,在应用程序终止退出之前,从保存的变量中取回原,中断向量恢复到中断向量表中。修改中断向量表

26、应避免使用,MOV,型传送指令,可通过调用,DOS,系统功能获取中断向量,(,35H,功能)和设置中断向量(,25H,功能),具体用法可参考下,面的程序。通常,修改中断向量之前要用,CLI,指令关中断。,(,2,)为确保中断能够产生,在使用,STI,开中断指令之前还要用,OCW1,命令对,IMR,寄存器操作,解除用户中断级对应的屏蔽位。这样,,一旦,CPU,开中断可立即响应外部中断请求。,30,第,5,章 中断技术,(,3,)如果要实现中断嵌套,应该在中断服务程序入口处立即开中断,(使用,STI,指令)。,(,4,)中断程序结束前必须发,EOI,命令和,IRET,指令。如果是从片,则,服务程序

27、结束前必须向主片和从片分别发,EOI,命令。,以下是运行在,PC,上的一个完整的中断处理程序。程序功能是,对输入,到,IRQ7,引脚的中断请求次数进行统计并显示,计满,9,次后返回,DOS,操,作系统。,STACK SEGMENT STACK “STACK”,DB 100 DUP,(,?,),STACK ENDS,DATA SEGMENT,INT_SEG DW?,;定义变量,以保存中断向量段址,INT_OFF DW?,;定义变量,以保存中断向量偏移量,CNT DB?,;保存中断次数,DATA ENDS,31,第,5,章 中断技术,CODE SEGMENT,ASSUME CS,:,CODE,,,

28、DS,:,DATA,,,SS,:,STACK,,,ES,:,DATA,;以下为主程序,START,:,MOV AX,,,DATA,MOV DS,,,AX,MOV AL,,,0FH,;,0FH,为中断类型号(,IR7,对应的中断类型号),MOV AH,,,35H,;获取中断向量功能号,INT 21H,;调用后,中断向量段址在,ES,中,偏移量在,BX,中,MOV INT_SEG,ES,;保存原中断向量段址,MOV INT_OFF,BX,;保存原中断向量偏移量,CLI,;关中断,MOV AL,,,0FH,;中断类型号,MOV AH,,,25H,;设置中断向量功能号,MOV DX,,,SEG INT

29、PRO,;,MOV DS,DX,;,DS,指向新中断向量段址,MOV DX,,,OFFSET INT_PRO,;,DX,指向新中断向量偏移量,INT 21H,MOV AX,,,DATA,;恢复数据段寻址,32,第,5,章 中断技术,MOV DS,,,AX,IN AL,,,21H,;解除,IR7,的屏蔽位,AND AL,,,7FH,OUT 21H,,,AL,MOV BL,,,0,;计数器初值,MOV CNT,,,0,;计数单元初值为,0,L1,:,STI,CMP CNT,,,BL,;比较判断,相同,CPU,循环等待,JZ L1,;每产生一次中断,,BL,增,1,MOV DL,,,BL,;准备调

30、用显示功能,ADD DL,,,30H,;转换成,ASCII,码,MOV AH,,,2,INT 21H,;屏幕显示,MOV CNT,,,BL,;保存,CMP BL,,,9,JZ L2,;计满,9,次转移,JMP L1,L2,:,CLI,;恢复中断向量前关中断,33,第,5,章 中断技术,MOV AL,,,0FH,;中断类型号,MOV AH,,,25H,;设置原中断向量功能号,MOV DX,,,INT_OFF,;,DX,装入原中断向量偏移量,MOV BX,,,INT_SEG,MOV DS,,,BX,;,DS,装入原中断向量段址,INT 21H,IN AL,,,21H,;屏蔽,IR7,位,OR AL

31、80H,OUT 21H,,,AL,STI,MOV AX,,,4C00H,;返回操作系统,INT 21H,;以下为中断服务程序,INT_PRO PROCFAR,STI,INC BL,MOV AL,,,20H,;中断结束命令(,OCW2,),OUT 20H,,,AL,34,第,5,章 中断技术,IRET,;中断返回,INT_PRO ENDP,;中断程序结束,CODE ENDS,END START,;主程序结束,注:以上实例没有用停机(,HLT,)指令等待中断,,主要原因是为了避免由于系统定时器中断而造,成中断次数的重复显示。,35,第,5,章 中断技术,4,、综合应用,利用,8086,学习机

32、使用,8254,计数器,0,,采用工作方式,3,,产生,1kHz,的方波脉冲信号;通过计数器,1,,采用工作方式,4,,用,OUT1,作计数,脉冲,计满,100,次向,CPU,发一次中断申请,,CPU,响应这一中断后继,续写入计数值,100,,重新开始计数;通过计数器,2,,采用工作方式,0,,,每隔,1,秒钟向,CPU,发一次中断请求,使,8,个指示灯闪动。编写程序,,并画出硬件连接图。设,8254,芯片地址为,4C0H,、,4C2H,、,4C4H,、,4C6H,,,8259,芯片地址为,4B0H,,,4B2H,,,74LS373,芯片地址,04A0H,。,分析:,(,1,)由于,CLK0

33、2.5MHz,,,T=0.4s,由计数器,0,产生的,1kHz,的,单拍负脉冲信号,,T=1ms,所以初值为,2500,,即,09C4H,。,(,2,)因为计数器,1,和计数器,2,分别工作在方式,4,和方式,0,,当,GATE=1,时,依靠计数初值启动定时或计数,因而初始,化时要先对中断控制器,8259A,初始化,再对计数器,1,和计,数器,2,初始化,装入时间常数后立即执行。,(,3,),CLK2,与,OUT0,连接在一起,输入时钟为,1kHz,,,T=1ms,。,计数器,2,每隔,1,秒钟向,CPU,发一次中断请求,计时工作时,间常数等于,1000,。,36,第,5,章 中断技术,D0

34、D7,RD,WR,A1,A2,A13,A14,A15,INTR,CPU,8086,CLK0,OUT0,GATE0,D0D7,RD,CLK1,OUT1,GATE1,CLK2,OUT2,GATE2,WR,A0,A1,CS,IR1,IR0,74LS244,8253,DE,LE,74LS373,8259A,INT,D0D7,Vcc,2.5MHz,74LS138,LED1,LED1,.,.,.,.,.,.,+15V,1,11,37,第,5,章 中断技术,START,:,MOV DX,,,04C6H,;设置,8253,控制口地址,MOV AL,,,00 11 011 0B,;二进制,方式,3,写,16,位

35、计数器,0,OUT DX,,,AL,;控制字写入计数器,0,的控制寄存器,MOV DX,,,04C0H,;设置,8253,计数器,0,地址,MOV AX,,,09C4H,;计数初值,OUT DX,,,AL,MOV AL,,,AH,OUT DX,,,AL,;写入初值高,8,位,MOV BL,,,00H,;灯亮或灭的标志,CLI,MOV DX,,,04B0H,;,8259A,的偶地址,MOV AL,,,00010011B,;设置,ICW18259,初始化控制字,ICW1,OUT DX,,,AL,;写入,ICW1,MOV DX,,,04B2H,;,8259A,的奇地址,MOV AL,,,50H,;

36、设置,8259A,初始化控制字,ICW2,OUT DX,,,AL,;写入,ICW2,MOV AL,,,0000001B,;设置,8259A,初始化控制字,ICW4,OUT DX,,,AL,;写入,ICW4,38,第,5,章 中断技术,MOV AL,,,0FCH,;设置,IR0,、,IR1,不可屏蔽操作控制字,OCW1,OUT DX,,,AL,;写入,OCW1,MOV AX,,,OFFSET INTR1,;设置中断服务程序,INTR1,的偏移地址,MOV WORD PTR 140H,,,AX,;中断矢量表地址为,50H4,MOV AX,,,SEG INTR1,;设置中断服务程序,INTR1,所在

37、段地址,MOV WORD PTR 142H,,,AX,MOV AX,,,OFFSET INTR2,;设置中断服务程序,INTR2,偏移地址,MOV WORD PTR 144H,,,AX,;中断矢量表地址为,51H4,MOV AX,,,SEG INTR2,;设置中断服务程序,INTR2,所在段地址,MOV WORD PTR 146H,,,AX,MOV DX,,,04C6H,;设置,8253,控制口地址,MOV AL,,,01 01 100 0B,;二进制数,方式,4,写低字节,计数器,1,计数,OUT DX,,,AL,;将控制字写入计数器,1,的控制寄存器,MOV DX,,,04C6H,;设置,

38、8253,控制口地址,MOV AL,,,10 11 000 0B,;,BCD,数,方式,0,写,16,位数,计数器,2,定时,OUT DX,,,AL,;控制字写入计数器,2,的控制寄存器,MOV DX,,,04C2H,;设置,8253,计数器,1,地址,39,第,5,章 中断技术,MOV AL,64H,;设置计数初值,OUT DX,AL,;计数初值写入,8253,计数器,1,MOV DX,04C4H,;设置,8253,计数器,2,地址,MOV AX,1000H,OUT DX,AL,MOV AL,AH,OUT DX,AL,STI,;开中断,AA,:,HLT,;等待中断,JMP AA,INTR1

39、PROC FAR,CLI,;禁止中断,MOV DX,04C2H,;设置,8253,计数器,1,地址,MOV AX,100,MOV DX,AL,MOV AL,AH,OUT DX,AL,STI,;开中断,MOV AL,20H,MOV 20H,AL,IRET,INTR1 ENDP,40,第,5,章 中断技术,INTR2 PROC FAR,CLI,;禁止中断,MOV DX,04A0H,;,74LS373,的地址,CMP BL,,,00H,;灯闪烁判断,JZ AA2,;,BL=00,灯亮,MOV AL,00H,;,BL=01,灯灭,OUT DX,AL,MOV BL,,,00H,;重新设标志,JMP AA

40、3,AA2 MOV AL,,,0FFH,;灯亮,OUT DX,,,AL,MOV BL,,,01H,;重新设标志,AA3 STI,;开中断,MOV AL,20H,MOV 20H,AL,IRET,INTR2 ENDP,CODE ENDS,END START,41,第,5,章 中断技术,实验电路接线图,+5V,8MHZ,2393,A,B,Q5,gate,clk0,out0,+5V,总线,B4,端子,8253,I/O,口地址译码器,数码管电路,分频器,Q5=0.125MHZ,42,第,5,章 中断技术,data segment,old0a dd?,origin dw 0001h,mesg db str

41、ike any key to return dos$,data ends,code segment,assume cs:code ,ds:data,beg:mov ax ,data,mov ds ,ax,cli ;(),call i8253,call i8259,call rd0a ;,读取,0ah,号中断向量,call wr0a,;写入新的中断向量,mov al ,73h,mov dx ,211h,out dx ,al ;(),43,第,5,章 中断技术,mov ah ,9,mov dx ,offset mesg,int 21h ;(),sti ;(),wait_in:mov ah ,1,i

42、nt 16h,jz wait_in ;(),return:call reset,mov ah,4ch,int 21h,;,(),service proc,push ax,push dx,mov ax ,data,mov ds ,ax,44,第,5,章 中断技术,mov cl ,8,rol origin ,cl,mov ax ,origin,mov dx ,210h,out dx ,al ;(),exit :mov al ,();,out (),();,关主,8259,中断,pop (),pop ();,恢复现场,(),;中断返回,service (),45,第,5,章 中断技术,i8253 p

43、roc,mov al,,,34h,mov dx ,22bh,out dx ,al ;(),mov ax,();,计数初值,mov dx,(),out dx,();,低,8,位送计数器,mov al ,(),out dx,al ;,高,8,位送计数器,ret,i8253 endp,46,第,5,章 中断技术,i8259 proc,in al ,21h,and al ,1 1 1 1 1 0 1 1b,out (),al ;,开放从,8259,in al ,0a1h,and al ,1 1 1 1 1 1 0 1b,out (),al ;,开放用户中断,ret,i8259 endp,rd0a proc,.,.,.,.,.,.,rd0a endp,wd0a proc,.,.,.,.,.,.,wd0a endp,47,第,5,章 中断技术,reset proc,mov dx ,word ptr old0a,mov ds ,word ptr old0a+2,mov ax ,250ah,int 21h,;恢复,0ah,号中断向量,in al ,0a1h,or al ,(),out 0a1h ,al,;屏蔽用户中断,ret,reset endp,code ends,end beg,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服