资源预览内容
第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
第9页 / 共44页
第10页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
w中断的概念wMCS-51的中断系统w中断源和中断标志w中断的允许和优先权w中断的处理过程w外部中断源的扩展w中断的应用第章中 断 系 统本章内容Single Chip Microcomputer中断的基本概念v日常生活中断的例子v单片机中的中断概念v中断技术的优点日常中断的例子返回你正在专心看书,突 然电话铃响,于是你记下 正在看的书的页数,去接 电话,接完电话后再回来 接着看书。计算机中的中断概念返回中断是指当CPU正在处理某项事务 的时候,如果系统发生了紧急事件 ,要求CPU暂停当前正在处理的工作 而去处理这个紧急事件,待事件处 理完成后,再回到原来中断的地方 ,继续执行原来被中断的程序,这 个过程 。将能引起中断的事件称为中断源。CPU现行运行的程序称为主程序。处理随机事件的程序称为中断服务 子程序。 中断过程动画演示中断技术的优点v分时操作CPU可以同多个外设“同时”工作v实时处理CPU及时处理随机事件v故障处理电源掉电、存储出错、运算溢出 MCS-51中断系统v中断源v中断标志v中断允许v中断优先级vMCS-51中断系统结构v中断寄存器MCS-51的中断系统中断源8051单片机有5个中断请求源: 单片机 INT0或 外部输入中断源INT0(P3.2)INT1或 外部输入中断源INT1(P3.3)T0 片内定时器T0的溢出中断源T1 片内定时器T1的溢出中断源串行口 片内串行口发送或接收中断源MCS-51的中断系统中断标志CPU主 程 序INT0INT1T0T1串口IE0TF0 IE1 TF1TI RI中断源中断标志位 每一个中断源都有相应的中断标志位; 某一个中断源申请中断,相应中断标志位置1。中断矢量0003H000BH0013H001BH0023HMCS-51的中断系统中断允许CPU主 程 序INT0INT1T0T1串口IE0 TF0 IE1 TF1TI RI中断源中断标志位 EA总中断允许位,EA=1开放所有中断,EA=0,禁止所有中断; 某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁 止相应中断源的中断。中断允许ESET0EX0EX1ET1EAMCS-51的中断系统中断优先级CPU主 程 序INT0INT1T0T1串口IE0 TF0 IE1 TF1TI SI中断源中断标志位 单片机中有两个中断优先级,即高优先级中断和低优先级中断,前 者优先权高于后者(在程序中设置,相应位=1,为高优先级); 同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件 形成,无法改变)。中断允许ESET0EX0EX1ET1EA自然优先级高低优先控制PSPT0PX0PX1PT1IE0TCONSCONINT0IT0=0IT0=1INT1IT1=0IT1=1TF0IE1TF1T0T1TI RITXDRXDESET0EX0EX1ET1EA自然优先级矢量 地址高级中断请求自然优先级矢量 地址低级中断请求PX0PT0PX1PT1PSIEIPMCS-51的中断控制系统结构图中断标 志位中断源 允许总允许中断优 先级TCON寄存器中断请求控制寄存器TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON76543210IT0/IT1:外部中断0/1请求触发方式控制位。1为脉冲触 发,下降沿有效。0为电平触发,低电平有效。 IE0/IE1:外中断/请求标志位。当CPU采样到()端出现 有效中断请求时,IE0(IE1)位由硬件置“1”。当中断响 应完成转向中断服务程序后,由硬件把IE0(或IE1)清零 。 TR0/TR1:定时器运行控制位。0停止定时器/计数器工作 ,1启动定时器/计数器开始工作。TCON寄存器中断请求控制寄存器注意:该寄存器可以位寻址。TF0/TF1:计数溢出标志位。当计数器产生计数溢 出时,相应的溢出标志位由硬件置“1”。当转向 中断服务后,由硬件自动清“0”。计数溢出标志 位的使用有两种情况:采用中断方式时,作中断请 求标志位来使用;采用查询方式时,作查询状态位 来使用。返回 TI (SCON.1)串行发送中断标志。 RI (SCON.0)串行接收中断标志。SM0 SM1 SM2RENTB8RB8 TI RISCON寄存器串行中断控制寄存器SCON98H76543210注意:该寄存器可以位寻址。IE寄存器中断屏蔽寄存器IE A8H EA ESET1EX1 ET0EX0例:允许定时器T0中断:SETB EASETB ET0 或 MOV IE,#82H76543210注意:该寄存器可以位寻址。 PS:串行口的中断优先级控制位。“0”为低优先级,“1”为高优先级。 PT1:定时器/计数器T1的中断优先级控制位。“0”为低优先级,“1”为高 优先级。 PT1:定时器/计数器T1的中断优先级控制位。“0”为低优先级,“1”为高 优先级。 PT0:定时器/计数器T0的中断优先级控制位。“0”为低优先级,“1”为高 优先级。PX0:外部中断0的中断优先级控制位。“0”为低优先级,“1”为高优先级。 同级中优先权次序从高到低依次为:、T0、T1、RI/TI。PSPT1PX1PT0PX0IP寄存器中断优先级控制寄存器IP B8H 76543210IP寄存器中断优先级控制寄存器v 51单片机有两个中断优先级高级和低级v 专用寄存器IP为中断优先级寄存器,用户可用软件 设定v 相应位为1,对应的中断源被设置为高优先级,相 应位为0,对应的中断源被设置为低优先级v 系统复位时,均为低优先级v 该寄存器可以位寻址中断处理过程中断处理过程分为三个阶段:中断响应、中断 处理和中断返回。v 中断响应v 中断处理(又称中断服务)v 中断返回v 中断请求的撤除 中断响应中断 返回CPU响应中断的基本条件v有中断源提出中断请求;v中断总允许位EA1,即CPU中断开放;v申请中断的中断源的中断允许位为1,即中断没有 被屏蔽;vCPU没有响应同级或更高优先级的中断;v当前指令执行结束;v如果正在执行的指令是RETI或访问IE、IP指令。 CPU在执行RETI或访问IE、IP指令后,至少还需 要再执行一条其它指令后才会响应中断请求。中断响应中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。中断响应过程: 保护断点地址;中断响应 把程序转向中断服务程序的入口地址(通常称矢量地址)。特别注意:这些工作是硬件自动完成的! 断点 地址中断服务 子程序的 入口地址中断响应中断服务子程序入口地址又称为中断矢量或中断向量。中断响应 单片机中5个中断源的矢量地址是固定的,不能改动。断点 地址中断服务 子程序的 入口地址程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH使用时,通常在这些入口地址处 存放一条长跳转LCALL addr16指令 ,使程序跳转到用户安排的中断 服务程序起始地址上去!程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH包含T0中断服务子程 序的程序结构: ORG 0000H AJMP MAIN ORG 000BH AJMP INTT0 ORG 0100H MAIN: . INTT0:.RETIENDAJMP MAINAJMP INTT0中断处理中断服务程序从入口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。中断响应入口地址RETI中断处理INTT0: PUSH ACCPUSH DPHPUSH DPLPUSH PSW中断源服务POP PSWPOP DPLPOP DPHPOP ACCRETI保护现场恢复现场中断处理过程示意图中断源发中断请求中断响应条件 是否满足?中断是否受阻?把PC断点地址压入堆栈相应中断源的中断入口地址 送入PC,转向中断服务程序NY YN由硬件 自动完成关中断保护现场中断服务开中断关中断恢复现场开中断中断返回断点地址由堆栈弹入PC保护现场和 恢复现场的 过程中不允 许中断,以 免现场遭到 破坏。保护和恢复现场之后 的开中断是为了允许 有更高级中断打断此 中断服务程序。 硬件自 动完成中 断 服 务 程 序中断返回 中断返回是指中断服务完后,计算机返回到原来暂停 的位置(即断点),继续执行原来的程序。 中断返回由专门的中断返回指令RETI来实现。中断响应中断 返回中断返回 RETI指令功能:把断点地址取出,送回到程序计数器 PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。 特别注意:不能用RET指令代替RETI指令!中断响应中断 返回中断响应时间v中断响应时间是指CPU检测到中断请求 信号到转入中断服务程序所需要的时间 。v注:MCS-51单片机响应中断的最短时间为3个 机器周期,最长为8个机器周期。若CPU检测 到中断请求信号时正好是一条指令的最后一个 机器周期,且不是RETI或访问IE、IP指令,则 不需等待就可以立即响应。 外部中断源的扩展v单片机仅有两个外部中断输入端.v可用三种方法扩展:1. 定时器T0,T1。(工作在计数方式下)2. 中断和查询结合。3.外接中断控制芯片(如8259)进行扩展 。1用定时器/计数器作外部中断源MSC-51单片机有两个定时器/计数器T0和T1 ,它们作为计数器使用时,计数输入端T1(T0 )发生负跳变时将使计数器加1。利用此特性, 适当设置计数器初值,就可以把计数输入端T1 (T0)作为外部中断输入端。例如,将定时器/ 计数器T0设置为工作方式2计数模式,计数初值 设为0FFH,且允许中断。当计数输入端发生一 个负跳变时,计数器加1,便发生溢出,从而产 生中断。ORG 0100HMOV TMOD,#06H ;设置定时 器T0为工作方式2、计数模式MOV TH0,#0FFH ;设置计数器初值MOV TL0,#0FFH SETB IT0 ;选择跳变触发方式SETB ET0 ;允许定时器中断SETB EA ;CPU开中断SETB TR0 ;启动定时器T0初始化程序如下:v以上程序执行后,当定时器/计数器T0计数输入端发 生负跳变时,TL0加1,产生溢出,标志位TF0置1, 向CPU发出中断请求,同时TH0的值重新送入TL0,保 证下一次中断过程的顺利进行。这样T0端相当于脉 冲方式的外部中断请求输入端。同理T1也可以实现 外部中断源的扩展。v注:用本方法扩展外部中断源是以占用内部定时中 断为代价的。只有当定时/计数器空闲时才能使用。 2查询方式扩展外部中断源当外部中断源较多时,可以采用查询方式扩 展外部中断源。把多个中断源通过硬件(或非门 )引入外部中断源输入端(INT0或INT1),同时 将中断源连接到某I/O接口。这样,每个中断源都 可能引起中断,在中断服务程序中通过软件查询 I/O口,便可以确定哪一个是正在申请的中断源, 查询的次序则由中断
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号