《MCS-51单片机中断系统.ppt》由会员分享,可在线阅读,更多相关《MCS-51单片机中断系统.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.中断的概念2.MCS-51的中断系统3.中断源和中断标志4.中断的允许和优先权5.中断的处理过程6.外部中断源的扩展7.中断的应用第第章章中中断断系系统统 本章内容本章内容Single Chip Microcomputer中断的基本概念v日常生活中断的例子v单片机中的中断概念v中断技术的优点 日常中断的例子日常中断的例子返回 你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。计算机中的中断概念计算机中的中断概念返回中断中断是指当CPU正在处理某项事务的时候,如果系统发生了紧急事件,要求CPU暂停当前正在处理的工作而去处理这个紧急事件,待事件处理完
2、成后,再回到原来中断的地方,继续执行原来被中断的程序,这个过程。将能引起中断的事件称为中断源中断源。CPU现行运行的程序称为主程序主程序。处理随机事件的程序称为中断服务中断服务子程序子程序。中断过程动画演示 中断技术的优点中断技术的优点v分时操作分时操作 CPU可以同多个外设“同时”工作v实时处理实时处理 CPU及时处理随机事件v故障处理故障处理 电源掉电、存储出错、运算溢出 MCS-51中断系统v中断源中断源v中断标志中断标志v中断允许中断允许v中断优先级中断优先级vMCS-51MCS-51中断系统结构中断系统结构v中断寄存器中断寄存器 MCS-51MCS-51的中断系统的中断系统中断源中断
3、源8051单片机有5个个中断请求源:单片机单片机INT0或 外部输入中断源INT0(P3.2)INT1或 外部输入中断源INT1(P3.3)T0 片内定时器T0的溢出中断源T1 片内定时器T1的溢出中断源串行口 片内串行口发送或接收中断源 MCS-51MCS-51的中断系统的中断系统中断标志中断标志 CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断源中断标志位中断标志位 每一个中断源都有相应的中断标志位;某一个中断源申请中断,相应中断标志位置1。中断矢量0003H000BH0013H001BH0023H MCS-51MCS-51的中断系统的中断系统中断允许中断
4、允许 CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断源中断标志位中断标志位 EA总中断允许位,总中断允许位,EA=1开放所有中断,开放所有中断,EA=0,禁止所有中断;禁止所有中断;某一个中断源还有相应的中断允许位,某一个中断源还有相应的中断允许位,1允许相应中断源的中断,允许相应中断源的中断,0禁禁止相应中断源的中断。止相应中断源的中断。中断允许中断允许ESET0EX0EX1ET1EA MCS-51MCS-51的中断系统的中断系统中断优先级中断优先级CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中断源中断源中断标志位中断标志位 单
5、片机中有两个中断优先级,即高高优先级中断和低低优先级中断,前者优先权高于后者(在程序中设置,相应位在程序中设置,相应位=1=1,为高优先级,为高优先级);同一优先级别的中断源按照自然优先级自然优先级顺序确定优先级别(硬件硬件形成,无法改变形成,无法改变)。中断允许中断允许ESET0EX0EX1ET1EA自然优先级自然优先级高低优先控制优先控制PSPT0PX0PX1PT1 IE0TCONSCONINT0 IT0=0 IT0=1INT1 IT1=0 IT1=1TF0 IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自自然然优优先先级级矢量地址高高级级中中断断请请求求自自然然
6、优优先先级级矢量地址低低级级中中断断请请求求PX0PT0PX1PT1PSIEIP MCS-51 MCS-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:
7、定时器运行控制位。0停止定时器/计数器工作,1启动定时器/计数器开始工作。TCON寄存器中断请求控制寄存器注意:该寄存器可以位寻址。TF0/TF1:计数溢出标志位。当计数器产生计数溢 出时,相应的溢出标志位由硬件置“1”。当转向中断服务后,由硬件自动清“0”。计数溢出标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。返回 TI(SCON.1)串行发送中断标志。RI(SCON.0)串行接收中断标志。SM0 SM1 SM2RENTB8RB8 TI RISCON寄存器串行中断控制寄存器SCON 98H76543210注意:该寄存器可以位寻址。IE寄存
8、器中断屏蔽寄存器 IE A8H EA ESET1EX1 ET0EX0例:允许定时器T0中断:SETB EA SETB ET0 或 MOV IE,#82H76543210注意:该寄存器可以位寻址。PS:串行口的中断优先级控制位。:串行口的中断优先级控制位。“0”为低优先级为低优先级,“1”为高优先级。为高优先级。PT1:定时器:定时器/计数器计数器T1的中断优先级控制位。的中断优先级控制位。“0”为低优先级为低优先级,“1”为为高优先级。高优先级。PT1:定时器:定时器/计数器计数器T1的中断优先级控制位。的中断优先级控制位。“0”为低优先级为低优先级,“1”为为高优先级。高优先级。PT0:定时
9、器:定时器/计数器计数器T0的中断优先级控制位。的中断优先级控制位。“0”为低优先级为低优先级,“1”为为高优先级。高优先级。PX0:外部中断:外部中断0的中断优先级控制位。的中断优先级控制位。“0”为低优先级为低优先级,“1”为高优先级。为高优先级。同级中优先权次序从高到低依次为:、同级中优先权次序从高到低依次为:、T0、T1、RI/TI。PSPT1PX1PT0PX0IP寄存器中断优先级控制寄存器 IP B8H 76543210IP寄存器中断优先级控制寄存器v 51单片机有两个中断优先级高级和低级v 专用寄存器IP为中断优先级寄存器,用户可用软件设定v 相应位为1,对应的中断源被设置为高优先
10、级,相应位为0,对应的中断源被设置为低优先级v 系统复位时,均为低优先级v 该寄存器可以位寻址中断处理过程 中断处理过程分为三个阶段:中断响应、中断处理和中断返回。v 中断响应v 中断处理(又称中断服务)v 中断返回v 中断请求的撤除中断请求的撤除 中断响应中断返回CPU响应中断的基本条件v有中断源提出中断请求;v中断总允许位EA1,即CPU中断开放;v申请中断的中断源的中断允许位为1,即中断没有被屏蔽;vCPU没有响应同级或更高优先级的中断;v当前指令执行结束;v如果正在执行的指令是RETI或访问IE、IP指令。CPU在执行RETI或访问IE、IP指令后,至少还需要再执行一条其它指令后才会响
11、应中断请求。中断响应中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。中断响应过程:保护断点地址;中断响应 把程序转向中断服务程序的入口地址(通常称矢量地址)。特别注意:这些工作是硬件自动完成的!断点地址中断服务子程序的入口地址中断响应中断服务子程序入口地址又称为中断矢量或中断向量。中断响应单片机中5个中断源的矢量地址是固定固定的,不能改动。断点地址中断服务子程序的入口地址程序存储器程序存储器ROMROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口00
12、1BH:定时器1溢出中断入口002AH使用时,通常在这些入口地址处存放一条长跳转LCALL addr16指令,使程序跳转到用户安排的中断服务程序起始地址上去!程序存储器程序存储器ROMROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH包含T0中断服务子程序的程序结构:ORG 0000HORG 0000HAJMP MAINORG 000BHORG 000BHAJMP INTT0ORG 0100HORG 0100HMAIN:.INTT0:
13、.RETI ENDAJMP MAINAJMP INTT0中断处理中断处理中断服务程序从入口地址入口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。中断响应入口地址入口地址RETI中断处理中断处理INTT0:PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中断源服务 POP PSW POP DPL POP DPH POP ACC RETI保护现场恢复现场中断处理过程示意图中断源发中断请求中断源发中断请求中断响应条件中断响应条件 是否满足?是否满足?中断是否受阻?中断是否
14、受阻?把把PC断点地址压入堆栈断点地址压入堆栈 相应中断源的中断入口地址相应中断源的中断入口地址送入送入PC,转向中断服务程序转向中断服务程序NYYN 由硬件自动完成 关中断关中断保护现场保护现场中断服务中断服务 开中断开中断 关中断关中断恢复现场恢复现场 开中断开中断中断返回中断返回断点地址由堆栈弹入断点地址由堆栈弹入PC保护现场和恢复现场的过程中不允许中断,以免现场遭到破坏。保护和恢复现场之后的开中断是为了允许有更高级中断打断此中断服务程序。硬件自动完成中断服务程序中断返回 中断返回是指中断服务完后,计算机返回到原来暂停的位置(即断点),继续执行原来的程序。中断返回由专门的中断返回指令RE
15、TI来实现。中断响应中断返回中断返回 RETI指令功能:把断点地断点地址取出,送回到程序计数器址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。特别注意:不能用RET指令代替RETI指令!中断响应中断返回中断响应时间v中断响应时间是指CPU检测到中断请求信号到转入中断服务程序所需要的时间。v注:MCS-51单片机响应中断的最短时间为3个机器周期,最长为8个机器周期。若CPU检测到中断请求信号时正好是一条指令的最后一个机器周期,且不是RETI或访问IE、IP指令,则不需等待就可以立即响应。外部中断源的扩展v单片机仅有两个外部中断输入端.v可用三种方法
16、扩展:1.定时器T0,T1。(工作在计数方式下)2.中断和查询结合。3.外接中断控制芯片(如8259)进行扩展。1用定时器/计数器作外部中断源MSC-51单片机有两个定时器/计数器T0和T1,它们作为计数器使用时,计数输入端T1(T0)发生负跳变时将使计数器加1。利用此特性,适当设置计数器初值,就可以把计数输入端T1(T0)作为外部中断输入端。例如,将定时器/计数器T0设置为工作方式2计数模式,计数初值设为0FFH,且允许中断。当计数输入端发生一个负跳变时,计数器加1,便发生溢出,从而产生中断。ORG 0100H MOV TMOD,#06H ;设置定时 器T0为工作方式2、计数模式 MOV T
17、H0,#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查询方式扩展外部中断源查
18、询方式扩展外部中断源当外部中断源较多时,可以采用查询方式扩展外部中断源。把多个中断源通过硬件(或非门)引入外部中断源输入端(INT0或INT1),同时将中断源连接到某I/O接口。这样,每个中断源都可能引起中断,在中断服务程序中通过软件查询I/O口,便可以确定哪一个是正在申请的中断源,查询的次序则由中断源优先级决定,这样可实现多个外部中断源的扩展。例如,通过OC门实现外部中断源扩展的基本原理如下图所示。当外部扩展中断源的任何一个中断申请信号置为低电平时,其对应的OC门输出为低,使有效,申请中断。有中断后,软件查询P1口状态,决定是哪一个中断源。查询次序决定优先级。参考程序如下:参考程序如下:OR
19、G 0003H LJMP INTER_PRO ORG 0100H INTER_PRO:JNB P1.0,SUB0_PRO JNB P1.1,SUB1_PRO.JNB P1.7,SUB7_PRO.中断控制芯片(如)进行扩展 当需要扩展的外部中断源比较多时,可以使用专用中断控制器8259实现。一个8259可以直接扩展8个中断源,经级联后,最多可以扩展64个中断源。中断应用举例【例】出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断(P3.2)引脚输入,行驶里程为轮胎周长运转圈数。设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。参考程序如下:ORG 00
20、00H;复位地址 LJMP STAT;转初始化 ORG 0003H;中断入口地址 LJMP INT;转中断服务程序 ORG 0100H ;初始化程序首地址STAT:MOV SP,#60H ;置堆栈指针 SETB ITO;置边沿触发方式 MOV IP,#01H;置高优先级 MOV IE,#81H;开中断 MOV 30H,#0;里程计数器清0 MOV 31H,#0 MOV 32H,#0 LJMP MAIN;转主程序,并等待中断 ORG 0200H;中断服务子程序首地址INT:PUSH Acc;保护现场 PUSH PSW MOV A,30H;读低8位计数器 ADD A,#2;低8位计数器加2m MO
21、V 30H,A;回存 CLR A ADDC A,31H;中8位计数器加进位 MOV 31H,A;回存 CLR A ADDC A,32H;高8位计数器加进位 MOV 32H,A;回存 POP PSW;恢复现场 POP Acc RETI;中断返回MAIN:v题目:8人抢答器。v内容:在知识竞赛等场合,抢答器是经常用到的产品。用单片机设计一个具有优先权的8人抢答器,0号抢答器优先权最高,7号抢答器优先权最低。8位选手,8轮抢答,每位选手可以申请一次0号抢答器,1号抢答器,7号抢答器。也可以按照选手分数高低分配抢答器优先级,如分数最低者用0号抢答器,一次类推。抢答成功者,对应的指示灯闪烁。v要求:用按键开关代表抢答器按键操作,以LED发光二极管代替指示灯。闪烁频率为1Hz。.硬件:画出硬件电路原理图,考虑中断源扩展。.软件:画出程序流程图,编写源程序,考虑优先级问题。.调试:记录调试过程,分析调试结果。