MCS-51单片机中断系统.ppt_第1页
MCS-51单片机中断系统.ppt_第2页
MCS-51单片机中断系统.ppt_第3页
MCS-51单片机中断系统.ppt_第4页
MCS-51单片机中断系统.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

中断的概念 MCS-51的中断系统 中断源和中断标志 中断的允许和优先权 中断的处理过程 外部中断源的扩展 中断的应用,第 章 中断系统,本章内容,Single Chip Microcomputer,中断的基本概念,日常生活中断的例子 单片机中的中断概念 中断技术的优点,日常中断的例子,返回,你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。,计算机中的中断概念,返回,中断是指当CPU正在处理某项事务的时候,如果系统发生了紧急事件,要求CPU暂停当前正在处理的工作而去处理这个紧急事件,待事件处理完成后,再回到原来中断的地方,继续执行原来被中断的程序,这个过程 。 将能引起中断的事件称为中断源。 CPU现行运行的程序称为主程序。 处理随机事件的程序称为中断服务子程序。,中断过程动画演示,中断技术的优点,分时操作 CPU可以同多个外设“同时”工作 实时处理 CPU及时处理随机事件 故障处理 电源掉电、存储出错、运算溢出,MCS-51中断系统,中断源 中断标志 中断允许 中断优先级 MCS-51中断系统结构 中断寄存器,MCS-51的中断系统中断源,8051单片机有5个中断请求源:,单片机,MCS-51的中断系统中断标志,CPU,主程序,INT0,INT1,T0,T1,串口,IE0,TF0,IE1,TF1,中断源,中断标志位,每一个中断源都有相应的中断标志位; 某一个中断源申请中断,相应中断标志位置1。,中断矢量,0003H,000BH,0013H,001BH,0023H,MCS-51的中断系统中断允许,CPU,主程序,INT0,INT1,T0,T1,串口,IE0,TF0,IE1,TF1,中断源,中断标志位,EA总中断允许位,EA=1开放所有中断,EA=0,禁止所有中断; 某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁止相应中断源的中断。,中断允许,ES,ET0,EX0,EX1,ET1,EA,MCS-51的中断系统中断优先级,CPU,主程序,INT0,INT1,T0,T1,串口,IE0,TF0,IE1,TF1,中断源,中断标志位,单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(在程序中设置,相应位=1,为高优先级); 同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形成,无法改变)。,中断允许,ES,ET0,EX0,EX1,ET1,EA,自然优先级,优先控制,PS,PT0,PX0,PX1,PT1,IE0,TCON,SCON,TF0,IE1,TF1,T0,T1,TI,RI,TXD,RXD,ES,ET0,EX0,EX1,ET1,EA,自然优先级,矢量地址,高级中断请求,自然优先级,矢量地址,低级中断请求,PX0,PT0,PX1,PT1,PS,IE,IP,MCS-51的中断控制系统结构图,中断标志位,中断源允许,总允许,中断优先级,TCON寄存器中断请求控制寄存器,TCON,IT0/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)串行接收中断标志。,SCON寄存器串行中断控制寄存器,SCON 98H,注意:该寄存器可以位寻址。,IE寄存器中断屏蔽寄存器,IE A8H,例:允许定时器T0中断: SETB EA SETB ET0 或 MOV IE,#82H,注意:该寄存器可以位寻址。,PS:串行口的中断优先级控制位。“0”为低优先级,“1”为高优先级。 PT1:定时器/计数器T1的中断优先级控制位。“0”为低优先级,“1”为高优先级。 PT1:定时器/计数器T1的中断优先级控制位。“0”为低优先级,“1”为高优先级。 PT0:定时器/计数器T0的中断优先级控制位。“0”为低优先级,“1”为高优先级。 PX0:外部中断0的中断优先级控制位。“0”为低优先级,“1”为高优先级。 同级中优先权次序从高到低依次为:、T0、T1、RI/TI。,IP寄存器中断优先级控制寄存器,IP B8H,IP寄存器中断优先级控制寄存器,51单片机有两个中断优先级高级和低级 专用寄存器IP为中断优先级寄存器,用户可用软件设定 相应位为1,对应的中断源被设置为高优先级,相应位为0,对应的中断源被设置为低优先级 系统复位时,均为低优先级 该寄存器可以位寻址,中断处理过程,中断处理过程分为三个阶段:中断响应、中断处理和中断返回。 中断响应 中断处理(又称中断服务) 中断返回 中断请求的撤除,CPU响应中断的基本条件,有中断源提出中断请求; 中断总允许位EA1,即CPU中断开放; 申请中断的中断源的中断允许位为1,即中断没有被屏蔽; CPU没有响应同级或更高优先级的中断; 当前指令执行结束; 如果正在执行的指令是RETI或访问IE、IP指令。CPU在执行RETI或访问IE、IP指令后,至少还需要再执行一条其它指令后才会响应中断请求。,中断响应,中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。 中断响应过程: 保护断点地址;,把程序转向中断服务程序的入口地址(通常称矢量地址)。,特别注意:这些工作是硬件自动完成的!,断点地址,中断服务子程序的入口地址,中断响应,中断服务子程序入口地址又称为中断矢量或中断向量。,单片机中5个中断源的矢量地址是固定的,不能改动。,断点地址,中断服务子程序的入口地址,程序存储器ROM,0000H:复位后,程序的入口地址(PC=0000H),0023H:串行口中断入口,0003H:外部中断0入口,000BH:定时器0溢出中断入口,0013H:外部中断1入口,001BH:定时器1溢出中断入口,002AH,使用时,通常在这些入口地址处存放一条长跳转LCALL addr16指令,使程序跳转到用户安排的中断服务程序起始地址上去!,程序存储器ROM,0000H:复位后,程序的入口地址(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:. . . RETI END,AJMP MAIN,AJMP INTT0,中断处理,中断服务程序从入口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。 中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。,入口地址,RETI,中断处理,INTT0: PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中断源服务 POP PSW POP DPL POP DPH POP ACC RETI,保护现场,恢复现场,中断处理过程示意图,中断源发中断请求,中断响应条件 是否满足?,中断是否受阻?,把PC断点地址压入堆栈,相应中断源的中断入口地址送入PC,转向中断服务程序,N,Y,Y,N,由硬件 自动完成,关中断,保护现场,中断服务,开中断,关中断,恢复现场,开中断,中断返回,断点地址由堆栈弹入PC,中断服务程序,中断返回,中断返回是指中断服务完后,计算机返回到原来暂停的位置(即断点),继续执行原来的程序。 中断返回由专门的中断返回指令RETI来实现。,中断返回,RETI指令功能:把断点地址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。 特别注意:不能用RET指令代替RETI指令!,中断响应时间,中断响应时间是指CPU检测到中断请求信号到转入中断服务程序所需要的时间。 注:MCS-51单片机响应中断的最短时间为3个机器周期,最长为8个机器周期。若CPU检测到中断请求信号时正好是一条指令的最后一个机器周期,且不是RETI或访问IE、IP指令,则不需等待就可以立即响应。,外部中断源的扩展,单片机仅有两个外部中断输入端. 可用三种方法扩展: 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 TH0,#0FFH ;设置计数器初值 MOV TL0,#0FFH SETB IT0 ;选择跳变触发方式 SETB ET0 ;允许定时器中断 SETB EA ;CPU开中断 SETB TR0 ;启动定时器T0,初始化程序如下:,以上程序执行后,当定时器/计数器T0计数输入端发生负跳变时,TL0加1,产生溢出,标志位TF0置1,向CPU发出中断请求,同时TH0的值重新送入TL0,保证下一次中断过程的顺利进行。这样T0端相当于脉冲方式的外部中断请求输入端。同理T1也可以实现外部中断源的扩展。 注:用本方法扩展外部中断源是以占用内部定时中断为代价的。只有当定时/计数器空闲时才能使用。,2查询方式扩展外部中断源,当外部中断源较多时,可以采用查询方式扩展外部中断源。把多个中断源通过硬件(或非门)引入外部中断源输入端(INT0或INT1),同时将中断源连接到某I/O接口。这样,每个中断源都可能引起中断,在中断服务程序中通过软件查询I/O口,便可以确定哪一个是正在申请的中断源,查询的次序则由中断源优先级决定,这样可实现多个外部中断源的扩展。 例如,通过OC门实现外部中断源扩展的基本原理如下图所示。当外部扩展中断源的任何一个中断申请信号置为低电平时,其对应的OC门输出为低,使有效,申请中断。有中断后,软件查询P1口状态,决定是哪一个中断源。查询次序决定优先级。,参考程序如下:,ORG 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 0000H ;复位地址 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 MOV 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: ,题目

温馨提示

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

评论

0/150

提交评论