




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章中断系统,5.1中断系统概述,5.2MCS-51中断系统的结构,HOME,5.3中断响应过程,5.4中断服务程序的设计,5.5中断编程实例,本章问题,1、中断都有哪些作用?2、MCS-51单片机的中断与其它计算机有什么不同?3、中断子程序设计时应注意哪些问题?,NEXT,HOME,5.1中断系统概述,CPU中止正在运行的程序,转向特定服务程序的过程称为中断。当完成中断后,CPU再回到原来的“断点”继续原来的程序。中断源可以是由外部产生,也可以由单片机内部产生。外部中断往往具有随机性、不可知性。,BACK,NEXT,HOME,BACK,NEXT,HOME,中断的作用,实现CPU与外部设备的速度配合;实现实时控制;实现故障的及时发现与处理;实现人机联系。,中断种类:可屏蔽中断(可以通过软件屏蔽的中断);非屏蔽中断(不可通过软件屏蔽的中断。有中断请求信号,CPU必须响应)。中断优先权:当同时有多个中断请求信号,先响应优先级别高的中断请求;高优先级中断请求信号可中断低优先级中断服务。中断源:能发出中断请求信号的各种事件。如I/O设备、定时时钟、系统故障、软件设定等,又可分为内部中断和外部中断。,5.2MCS-51中断系统的结构,BACK,NEXT,HOME,MCS-51单片机共有5个中断源,2个中断优先级,它的中断处理程序可实现两级嵌套,有较强的中断处理能力。单片机对中断系统的管理是通过相关的专用寄存器来实现的。,BACK,NEXT,HOME,5.3中断响应过程,要使单片机执行中断响应,必须首先进行正确的设置。在MCS-51单片机中,特殊寄存器IE、IP是用于中断设置的,而中断标志则放在TCON和SCON这两个寄存器中。,5.3.1中断设置,1.中断允许寄存器IE,EA:总允许位。EA=0:禁止一切中断;EA=1中断开放。ES:串行口中断允许位。ES=1:允许RI、TI引发中断;ES=0:禁止中断。ET1、ET0:定时器T1、T0允许位。ET=1允许,=0禁止。EX1、EX0:外中断INT1、INT0允许位。ET=1允许,=0禁止,BACK,NEXT,HOME,2.中断优先级寄存器IP,PS:串行口中断优先级设定位;PT1、PT0:定时器T1、T0中断优先级设定位;PX1、PX0:外中断INT1、INT0中断优先级设定位;“1”为高优先级,“0”为低优先级。,BACK,NEXT,HOME,【注意】:IE和IP寄存器中的每一位都可以进行位操作,都有相应的位地址,因此可以用软件进行复位或置位。,由于IP寄存器的设定,将5个中断源分为两个级别。中断的发生将遵循下面的3条基本原则:1,低级中断在响应执行中,可以被高级中断所中断,反之则不能。2,一个中断(不论是什么优先级)一旦得到响应,与它同级的中断则不能再中断它。3,当CPU同时收到几个中断要求时,CPU响应哪个中断源按照正常的优先级而定。,BACK,NEXT,HOME,3.中断优先级的响应原则,4.如何改变中断优先级的顺序,从中断系统结构中可以清楚地看出同一级别中5个中断源的顺序。很明显,要改变这种顺序只能通过IP的设置。如:要想将串行口的级别设为最高时,将IP中的PS置”1”。既使用指令:SETBPS或MOVIP,#10H完成对IP设置。,5.3.2中断响应过程,1.中断响应的条件,有中断请求信号;系统处于开中断状态,EA=1;该中断源被允许中断;无同级或更高级中断正在被服务,2.中断响应过程,(1)关中断:屏蔽其它中断请求信号。(2)保护断点:将断点地址压入堆栈保存,即当前PC值入栈。(3)寻找中断源:中断服务程序入口PC,转入中断服务。(4)保护现场:将中断服务程序使用的所有寄存器内容入栈。(5)中断处理:执行中断源所要求的程序段。(6)恢复现场:恢复被使用寄存器的原有内容。(7)开中断:允许接受其它中断请求信号。(8)中断返回:执行RETI指令,栈顶内容PC,程序跳转回断点处。,BACK,NEXT,HOME,CPU查询到某一中断源后,使相应的“优先级激活”触发器置位用以阻断同级或低级中断。在硬件的控制下,程序自动转向对应的矢量单元,执行其服务程序。CPU响应中断时,将当时程序计数器PC的内容进栈,并将相应的中断矢量装入PC中,使CPU转向对应的服务程序。中断服务程序的最后一条指令是RETI,指令将清除“优先级激活触发器”,然后从堆栈中弹出断点地址并装入到PC中。矢量入口的指令应当是转移指令。,BACK,NEXT,HOME,3.外部中断触发方式的选择,在MCS-51引脚上,有INT0、INT1两个外部的中断输入,作为外部事件的触发信号。CPU在每一个机器周期对它们进行一次检测。系统设定了两种触发方式:边沿触发(下降沿)和电平触发(低电平)。具体由TCON中的IT0、IT1来确定。,电平触发方式:CPU在每个机器周期的S5P2采样INT0和INT1的输入电平,在电平触发方式下,单片机中没有专门的中断请求标志,同时单片机响应中断后,也不能自动清除请求信号,因此若中断服务程序执行完后,中断信号仍为低电平的话,CPU会继续响应中断。,边沿触发方式:CPU在每个机器周期的S5P2采样INT0和INT1的输入电平,如果相继两次采样,前一个周期采样到INT0或INT1为高电平,接着的下一个周期采样到INT0或INT1为低电平,则置位中断请求标志IE0或IE1(在TCON中),表示外部中断源正在向CPU申请中断,直到该中断被响应后,标志IE1或IE0才被硬件清“0”。,BACK,NEXT,HOME,4.中断请求的撤消,以外中断电平触发为例:当CPU响应该中断并进入到服务程序后,在执行RETI返回主程序前,必须将外部的低电平撤消,否则,当CPU返回主程序后,会因为外部的低电平信号而再次进入中断,使程序无法正常运行。同理,其它中断源也存在类似的问题。所以在使用中断时必须清楚在响应某一中断时,其中断请求(标志)是否要撤消,如何撤消等问题。下表是MCS-51的中断请求的撤消方法,BACK,NEXT,HOME,【注意】:此表指使用中断服务程序来处理中断事件时的情况,如果采用查询标志的方法来处理事件时,都需要软件来清除标志。,BACK,NEXT,HOME,撤消外部电平请求信号的方案,5.外部中断的响应时间,MCS-51单片机在每个机器的S5P2期间对INT0和INT1进行检测,如果发现有中断请求,又能满足响应的条件,便在下一个机器周期的S1状态开始应答,单片机首先执行一个内部硬件子程序,这个子程序本身占用两个机器周期,因此从外部发出中断请求信号到执行中断服务程序的第一条指令至少需要三个完整的机器周期。,BACK,NEXT,HOME,如果现行的机器周期是本指令的最后一个周期,又无前述的其他响应条件所阻止,CPU马上响应,需要三个机器周期。如果现行的机器周期不是本指令的最后一个机器周期,则可能会增加13个周期,因为MCS-51单片机指令最长执行时间为4个机器周期,这样响应时间为46个机器周期。如果CPU正在执行的是RETI或是访问IE、IP寄存器的指令,则单片机需要再执行一条其他指令才会响应中断。当然这条指令可以是14个机器周期,所以这种情况下,可能会增加5个机器周期。,【因此】:对于外部中断而言,单片机响应时间为38个机器周期,如果fOSC=12MHz,则响应时间为38us。,【注意】:中断响应时间的不确定,在大多数场合下可能是无关紧要的,但是对于一些较特殊的场合下,这种响应时间的不确定往往会带来一些问题。如:利用中断来编制一个时钟程序时,便不可避免的带来误差,所以是要提醒大家注意。,【例】:设计一单片机电路,要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。,BACK,NEXT,HOME,答案,6.多个外部中断源系统设计,如果MCS-51单片机需要扩展的外部中断源较多时,可以采用硬件触发结合软件查询法来扩展外部中断源。下图为支持电路。,【说明】:XI1XI4经由4个OC门电路组成“线与”电路,“线与”后接到INT1端。这就是说,如果在4个外中断源XI1XI4中有1个或几个出现低电平,则“线与”输出为低电平,从而引起INT1中断。由于XI1XI4还分别与P1.0P1.3相连,因此通过查询P1.0P1.3便可识别中断源。,BACK,NEXT,HOME,5.4中断服务程序的设计,BACK,NEXT,HOME,1.中断源及任务的确定,要正确地使用中断,除了熟悉中断的硬件结构外,必须编写相应的中断服务程序,因此需要注意以下几个问题。,首先要确定单片机系统所要完成的功能,进而确定哪些任务需要使用中断,采用何种方式的中断等。,2.中断设置,设置中断允许控制寄存器IE;设置中断优先级寄存器IP;若是外部中断,还应设置中断触发方式IT0和IT1;【注意】:此部分程序一般放在初始化程序中,3.采用中断时的主程序结构,由于在MCS-51单片机中,各中断入口地址在程序存储器的开始处,因而主程序的第一条语句多使用长跳转指令LJMP,以避开中断入口地址。同时在各中断入口地址处也使用长跳转指令LJMP,转到中断服务程序处。,BACK,NEXT,HOME,【例】:ORG0000HLJMPMAIN;转到主程序ORG0003H;INT0入口地址LJMPINTO;转INT0中断服务程序ORG000BH;计数/定时器0中断入口地址LJMPCTC0;转计数/定时器0中断服务.;程序.,MAIN:;主程序.INT0:;INT0中断服务程序.CTC0:;计数/定时器0中断程序,【注意】:伪指令ORG可以在程序中多次使用,但其后地址不得重复,同时应按其后地址的顺序依次排列。,BACK,NEXT,HOME,4.中断服务程序的流程,就是中断响应过程,此前已经介绍。,5.5中断编程实例,【例】:如下图所示,将P1口的P1.4P1.7设置成输入,P1.0P1.3设置成输出。现要求利用8051将开关所设置的数据读入后分别通过P1.3P1.0输出,驱动发光二极管,以检查P1.7P1.4输入电平的情况。要求采用外中断方式,每边沿触发一次,完成一次读、写任务。,答案,BACK,NEXT,HOME,【讨论题】:设计一个抢答装置。设有八个输入端。,本章总结,本章介绍了MCS-51单片机中断系统的相关基础知识,如中断的作用、中断的基本结构、中断的设置、中断的优先级以及中断响应服务程序的编写等。,作业:P11116;17。,BACK,HOME,【解】:INT0输入按键信号,P1.0输出改变LED状态。边沿触发:每次按键引起一次中断请求。电路如下所示,ORG0000H;程序入口LJMPMAINORG0003H;中断入口LJMPPINT0ORG0100H;主程序MAIN:MOVSP,#40H;设栈底CLREA;关中断SETBEX0;允许INT0中断SETBIT0;负跳变触发中断SETBEA;开中断H:SJMP$;等待中断ORG0200H;中断服务程序PINT0:CPLP1.0;改变LEDRETI;返回主程序,BACK,【解】:由图可见,中断请求从INT0输入,并采用了去抖动电路。当P1.3P1.0的任何一位输出为1时,就会使相应的发光二极管发光。程序清单如下:,ORG0000HAJMPGAFN;转向主程序ORG0003H;外部中断0入口地址AJMPPAUSEO;转向中断服务程序:ORG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度交通基础设施项目行政合同管理细则
- 宁德7年级数学试卷
- 二零二五企业ISO9000质量认证咨询与质量管理体系认证准备合同
- 2025版酒店旅游业经营权质押借款合同书
- 二零二五年医疗健康信息管理系统创建合同
- 2025电商数据安全保护与隐私合规服务合同
- 七上期末的数学试卷
- 2025年国家电投所属中国电能暑期实习生招募15人笔试参考题库附带答案详解
- 2025浙江杭州钱江人才开发有限公司招聘3人笔试参考题库附带答案详解
- 宁波三锋数学试卷
- 音响设备消费行为预测-洞察及研究
- 手术部(室)医院感染控制标准WST855-2025解读课件
- 2025年纪检监察新入职人员岗前考试试题库及答案
- 2025年0-3岁儿童发展指南
- 2025数字量化混凝土配合比设计标准
- 三升四数学综合练习(60天)暑假每日一练
- 宁德新能源verify测试题库
- 2025届广州市高三年级阶段训练(8月市调研摸底) 数学试卷(含答案)
- FZ/T 62025-2015卷帘窗饰面料
- DBJ50∕T-348-2020 装配式混凝土建筑结构工程施工工艺标准
- 公司办公用品领用管理制度
评论
0/150
提交评论