单片机 第五章 单片机的中断系统_第1页
单片机 第五章 单片机的中断系统_第2页
单片机 第五章 单片机的中断系统_第3页
单片机 第五章 单片机的中断系统_第4页
单片机 第五章 单片机的中断系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机第五章单片机的中断系统第一页,共二十六页,编辑于2023年,星期日第一节中断的基本概念中断概念:CPU在正常运行程序时,由于CPU以外某一事件的发生,引起CPU暂停正在运行的程序,而转到为该事件的发生预先安排好的服务程序中去执行。主程序断点PC+XRETI中断服务程序继续执行主程序中断响应返回主程序PCPC中断入口地址中断流程示意图中断源入口地址外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H第二页,共二十六页,编辑于2023年,星期日2、中断源(可由硬件或软件引起):引起中断的事件 MSC-51具有多个中断源,51子系列有5个中断源,2个外部中断,2个定时中断和1个串行中断。(A).外中断:外部信号引起,共2个。 即:外部中断“0”,中断请求信号由引脚INT0(P3.2)引入; 外部中断“1”,中断请求信号由引脚INT1(P3.3)引入。 外部中断请求有两种信号形式:低电平触发方式和负跳脉冲触发方式:(B).定时器/计数器中断:内部计数器计数溢出,溢出标志位TFX作为单片机接受中断请求标志。 信号来源:内部(定时)和外部(计数)。(C). 串行中断:串行数据传送(发送和接收)的需要而设置。负跳脉冲触发方式:负跳信号有效,即CPU在连续两个周期对引入端INTX采样,如果前周期为高电平,后一周期为低电平,则为有效的负跳脉冲触发方式的外中断申请。低电平触发方式:低电平有效,只要CPU在每机器周期S5P2期间从引入端INTX采 样到低电平,就进入外中断。第三页,共二十六页,编辑于2023年,星期日IE------中断允许控制寄存器,TCON----定时控制寄存器,SCON----串行口控制寄存器。IP------中断优先级控制寄存器,第二节MCS-51单片机的中断系统与中断控制有关的控制寄存器有四个:第四页,共二十六页,编辑于2023年,星期日

IE0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8HEA//ESET1EX1ET0EX01.中断允许控制寄存器IE用户软件设置寄存器地址为A8H(2)EX0(EXl):外部中断允许控制位(INT0、INT1) EX0(EXl)=0禁止外中断 EX0(EXl)=l允许外中断(1)EA:中断允许总控制位。 EA=0中断总禁止,禁止所有中断,即不响应任何中断请求。 EA=1中断总允许,总允许后中断的禁止或允许由各中断源的中断允许 控制位进行设置。通过设置相关寄存器,达到控制中断工作的目的一、中断控制寄存器第五页,共二十六页,编辑于2023年,星期日(4)ES:串行中断允许控制位 ES=0禁止串行中断 ES=1允许串行中断结论:MCS—51通过中断允许控制寄存器对中断的允许实行两级控制。以EA位作为总控制位,以各中断源的中断允许位作为分控制位。MCS—51单片机复位后(1E)=00H,因此中断系统处于禁止状态。单片机在中断响应后不会自动关闭中断。因此在转中断服务程序后,应使用有关指令禁止中断,即以软件方式关闭中断。(3)ET0(ETl):定时/计数中断允许控制位(T0、T1) ET0(ETl)=0禁止定时(或计数)中断 ET0(ETl)=1允许定时(或计数)中断第六页,共二十六页,编辑于2023年,星期日2.定时器控制寄存器TCON 寄存器地址为88H

TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0(2)IT0、IT1:外中断请求触发方式控制位。用户软件设置 ITX=0 低电平触发方式 ITX=1 负跳脉冲触发方式(1)IE0、IE1:外部中断请求标志。硬件自动设置 CPU采样到INTX端有效的中断请求后,IEX位由硬件自动置“1”。在中断响 应期间(要转向中断服务程序时),由硬件自动清零。至少2个机器周期至少1个机器周期第七页,共二十六页,编辑于2023年,星期日(3)TF0、TF1:定时器溢出中断请求标志位,相应溢出标志位TFX由硬件置“1”。两种使用方式:a.软件查询时,作为溢出标志位,查询 有效后,用户软件清零。 b.中断方式时,作为中断请求标志位,为“1”时,自动转向中断服 务程序,再由硬件自动清零。LOOP:JBCTF0,NEXTSJMPLOOP3.串行口控制寄存器SCON(其中只有两位与中断有关)寄存器地址为98H

SCON9FH9EH9DH9CH9BH9AH99H98HSM0SM1SM2RENTB8RB8TIRI(4)TR0、TR1:下一章讲定时器/计数器时再讲(1)TI:串行口发送中断标志位。当CPU将一个数据写入发送缓冲器时,就启动发送当最后一个数据位发送完后,TI由硬件自动置位,并向CPU发中断申请。进行中断服务程序时,TI要由软件清0。软件查询时,TI可作为状态位使用。(2)RI:串行口接收中断标志位。当CPU接收数据时,当接收到最后一个数据位后,RI由硬件自动置位,并向CPU发中断申请。进行中断服务程序时,RI要由软件清0。软件查询时,RI可作为状态位使用。第八页,共二十六页,编辑于2023年,星期日4.中断优先级控制寄存器IP用户软件设置寄存器地址为B8H

IP0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H///PSPT1PX1PT0PX0注意:(一)中断优先级控制原则(参看教材103页)(二)控制逻辑:(a)系统复位后,各位均为0,或如果同级的多个中断请求同时出现,则按CPU查询次序确定那个中断请求被响应。其查询次序为:外部中断0->定时中断0->外部中断l->定时中断1->串行中断。(b)低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优 先级的中断服务,从而实现中断嵌套。(c)如果1个中断请求已被响应,则同级的其它中断响应将被禁止。PX0:外部中断0优先级设定位PXl:外部中断l优先级设定位PT0:定时中断0优先级设定位PTl:定时中断l优先级设定位PS:串行中断优先级设定位对应位置1,优先级为高;置0,优先级为低;第九页,共二十六页,编辑于2023年,星期日中断嵌套流程图主程序RETI低级中断程序继续执行主程序中断响应返回高级中断程序中断响应返回RETI中断优先级:当多个中断源请求中断服务,那么CPU响应这些中断就有一个先后顺序,称之为中断优先级。优先级高,则CPU先响应主程序RETI高级中断程序继续执行主程序中断响应返回低级中断程序中断响应返回RETI优先级低,则CPU不影响高级中断(平级)(平级)第十页,共二十六页,编辑于2023年,星期日自然优先级矢量地址自然优先级矢量地址高级中断请求PCPC断请求低级中SCON中断标志IPPX01PT0110PX110PS100PT10IEEX0ET0EX1ET1ESTCONIE0TF0IE1TF1TIRIRXTXT1IT1=1INT1IT1=0T0INT0IT0=1IT0=0源允许总允许优先级硬件查询EA8051的中断系统第十一页,共二十六页,编辑于2023年,星期日5.中断初始化和中断控制寄存器状态逻辑设置用户通过TCON、SCON、IE和IP四个控制寄存器来使用中断系统。这四个控制寄存器都是既可进行字节寻址又可进行位寻址的。因此对位状态的设置既可以使用字节操作指令又可以使用位操作指令。字节操作指令:MOVIE,#81H;

EA,/,/,ES,ET1,EX1,ET0,EX0位操作指令:SETBEA SETBEX0

第十二页,共二十六页,编辑于2023年,星期日二、中断响应过程中断响应:在满足CPU中断响应条件后,CPU对中断源中断请求的回答。中断响应可能会被阻止或被延迟:

a.CPU正处在为一个同级或高级的中断服务中。

b.查询中断请求的机器周期不是当前指令的最后一个机器周期,即当前指令完成前,不会响应任何中断请求。c.当前指令是返回指令(RET,RETl)或访问IE、IP的指令。MCS—5l中断系统规定,在执行完这些指令之后,还应再继续执行一条指令,然后才能响应中断。以上三个条件称为中断封锁条件1.中断响应基本条件(来中断,开中断)

a.有中断源发出中断申请(中断采样S5P2、中断查询S6) b.中断总允许位EA=1 c.各个中断源相应的允许位置1,即ES、ET1、EX1、ET0、EX0。第十三页,共二十六页,编辑于2023年,星期日3.中断响应过程:

如果满足中断响应条件且不存在中断封锁情况,则CPU进入中断响应周期。完成以下工作:a.将响应的优先级状态触发器置1。b.由硬件清除相应的中断请求标志位:TFX,IEX。但串行中断标志位必须手动清除。c.执行一条由硬件生成的长调用指令LCALL。其格式为LCALLaddrl6,这里的addrl6就是程序存储器中相应中断区的入口地址。该指令将自动把断点地址(当前PC值)压入堆栈保护起来,然后将对应的中断入口地址装入PC,使程序转向该中断入口地址,去执行中断服务程序。中断源入口地址外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H注意:中断服务程序入口地址仅间隔8个字节,因此通常在这些入口地址处存放一条无条件转移指令,以控制程序转到用户安排好的中断服务程序地址去执行。第十四页,共二十六页,编辑于2023年,星期日4.中断响应时间: 从中断请求产生到CPU转到相应的中断服务程序的入口地址所需的时间。

1、基本响应时间(3个机器周期)(1)查询中断标志:1个机器周期;(2)转去执行中断服务程序:2个机器周期2、额外的处理时间(0~5个机器周期)RETI指令:2个机器周期;MUL或DIV指令:4个机器周期。b.最长响应时间为8个机器周期 查询中断标志位时,刚好开始执行(RET,RETl)或访问IE、IP的指令,最长需要2个机器周期;单片机要求必须再继续执行一条指令,然后才能响应中断。若再执行的最长是4个机器周期的指令(MULAB),再加上执行LCALL的2个机器周期,总共是8个机器周期。a.MCS-51单片机所需最短响应时间为3个机器周期。 中断请求标志位请求占1个机器周期(每个机器周期的S5P2期间查询中断标志位)。若此时恰好是正在执行指令的最后一个机器周期,中断立即会在该机器周期结束后被响应,硬件自动产生LCALL指令,耗费2个机器周期。因此总共3个机器周期。第十五页,共二十六页,编辑于2023年,星期日结论:一般的中断响应时间都是3~8个机器周期。但是如果出现同级或是高级中断正在响应或是服务中,则响应时间无法计算。一般应用中,中断响应时间无需计算,只有在精确定时的应用场合,才需要计入中断响应时间,保证定时的精确。

第十六页,共二十六页,编辑于2023年,星期日三中断服务程序中断都是在运行主程序时发生的,是主程序的随机事件,是否允许发生以及如何发生,都应该在主程序中预先设置,这就是中断初始化。中断服务程序:从入口地址开始执行一直到返回指令RETI为止。需注意的问题:2.开中断和关中断

a.在中断处理程序中,关中断,禁止响应其他一切中断,无中断嵌套 b.要保持中断嵌套,就要分别在现场保护和现场恢复前后,加上关中断和开中断,避免现场被破坏。1.现场保护和现场恢复

所谓现场,指中断时刻,单片机存储单元中的数据或状态,一定是主程序和中断程序都用到的且不能被修改的存储单元。 现场保护:位于中断处理程序首部,PUSH操作数 现场恢复:位于中断处理程序尾部,POP操作数第十七页,共二十六页,编辑于2023年,星期日ORG 0000HLJMP MAINORG 0013HLJMP EXINT1ORG 0050HEXINT1:CLR EA

;关中断

PUSH ACC PUSH PSW

;现场保护

SETB EA

;开中断

中断服务程序 CLR EA ;关中断 POP PSW

POP ACC ;现场恢复

SETB EA

;开中断

RETI

;中断返回

ORG 0100HMAIN:

…….第十八页,共二十六页,编辑于2023年,星期日3.中断返回 中断处理程序后最后一条指令必须是中断返回指令RETI。执行该指令时: a.将“优先级状态触发器”复位为0;b.从堆栈栈顶弹出断点地址,装入PC,从而返回主程序。 ORG 0000H LJMP MAIN

ORG 0050HMAIN: ………………. LCALLSUB ……………….

……………….

SJMP$SUB: …………….. RETI;能正确运行吗? ORG 0000H LJMP MAIN ORG 0003H LJMP SUB

MAIN: ………………. ………………. SJMP$ SUB: …………….. RET;能正确运行吗?

第十九页,共二十六页,编辑于2023年,星期日四、中断请求的撤消中断响应后,TCON和SCON中的中断请求标志应该及时清除,否则就意味着中断请求继续存在,处理不当,会造成中断的重复查询和响应。因此就存在一个中断请求的撤消的问题。负脉冲方式外部中断请求的撤消: 两项内容: a.外中断标志位IEX清“0”:中断响应后,硬件自动把标志位IEX清“0”。 b.外中断请求信号的撤消:对于脉冲方式,脉冲信号过后就消失。 因此,负脉冲方式外部中断请求的撤消是自动的。定时中断请求的撤消: 一项内容:定时溢出标志位TFX清“0”。中断响应后,硬件自动把标志位TFX清“0”,即定时中断请求的撤消是自动的。第二十页,共二十六页,编辑于2023年,星期日串行中断软件撤消: 一项内容:标志位清“0”,中断响应后,需要先分别测试TI和RI的状态(只有一个串行中断入口地址),判断完是接收操作还是发送操作后,再软件清“0”。低电平方式外部中断请求的撤消:电平方式外部中断,中断标志的撤消是自动的,但中断请求信号的低电平可能继续存在,在以后的机器周期采样时,又会把清“0”的IEX标志位置“1”。因此其中断请求撤消也分为两项内容: a.外中断标志位IEX清“0”:中断响应后,硬件自动把标志位IEX清“0”。 b.外中断请求信号的撤消:把中断信号引脚从低电平强制改为高,为此需要增加硬件电路和软件程序。第二十一页,共二十六页,编辑于2023年,星期日第三节中断系统的应用中断控制就是对4个与中断有关的专用寄存器TCON、SCON、IE和IP进行管理和控制,管理和控制的项目有:(1)CPU中断的开放与关闭(2)某中断源中断请求的允许与禁止(3)各中断源优先级别的设定(4)外部中断请求的触发方式中断管理与控制程序一般包含在主程序当中。在中断响应过程中,断点的保护是由硬件电路来实现的,用户在编写中断服务程序时,主要需考虑现场的保护与恢复。当存在中断嵌套时,在保护和恢复现场前要关中断;在保护和恢复现场后要根据需要开中断。第二十二页,共二十六页,编辑于2023年,星期日例:硬件电路如图,通过8051单片机的P1口控制8个LED做左移和右移发光,当中断来时(按下/INT0),使8个LED闪烁5次.P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C51+5VINT0外部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论