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

下载本文档

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

文档简介

1、课程主讲:訾学博第第1 1章章: :微机原理微机原理概述概述第第2 2章章: :单片机概单片机概述述第第3 3章章: MCS-: MCS-5151单片机的硬单片机的硬件结构件结构( (* *) )第第4 4章章: MCS-: MCS-5151单片机指令单片机指令系统系统( (* *) )第第5 5章章: MCS-: MCS-5151单片机程序单片机程序设计设计( (* *) )第第7 7章章: MCS-: MCS-5151的定时器的定时器/ /计计数器数器( (* *) )第第6 6章章: MCS-: MCS-5151的中断系统的中断系统( (* *) )第第8 8章章: MCS-: MCS-

2、5151的串行口的串行口( (* *) )第第9 9章章: : 系统扩系统扩展技术展技术第第1010章章: : 模拟模拟接接口口第第1111章章: : 人机交人机交互接口互接口课程内容2 8051单片机的中断系统 8051单片机的中断处理过程 8051单片机的中断服务程序设计 8051的多中断源系统设计本讲主要内容3某人看书某人看书某人正在处理一件事某人正在处理一件事A手机铃响手机铃响出现另一件须立即解决的事出现另一件须立即解决的事B暂停看书暂停看书中止中止A 书中作记号书中作记号记录断点,便于接续记录断点,便于接续 电话谈话电话谈话处理处理B继续看书继续看书继续继续A的工作的工作保护断点中断

3、响应中断请求中断返回 (1) 现实生活中的中断:现实生活中的中断:6.1.1 6.1.1 中断的概念中断的概念4 中断原因:中断原因: 一个人不可能同一个人不可能同时完成两项任务。时完成两项任务。 单片机只有单片机只有一个一个CPU,一,一旦面临多任务,它也会旦面临多任务,它也会中断吗?中断吗?先接电话,然后再继续看书,这样效率最高!5(2) 单片机的中断单片机的中断 CPUCPU进行工作进行工作A A时发生了事件时发生了事件B B,请求,请求CPUCPU马上处理马上处理 CPUCPU暂时中断当前工作暂时中断当前工作A A,转去处理事件,转去处理事件B B 事件事件B B处理完后,回到工作处理

4、完后,回到工作A A被中断的地方继续处理被中断的地方继续处理A A工作工作 中断源 中断请求 中断服务 中断返回 中断系统中断的优点v 利用率高v 实时性强v 可靠性好中断 当CPU正在处理某件事情时,单片机外部或内部发生的某一紧急事件请求CPU立即去处理,于是,CPU暂时中止当前的工作,转去处理这个紧急事件,待处理完毕后,再回到原来被中止的地方,继续原来的工作。中断系统 能够实现中断处理功能的部件中断处理过程 中断请求 中断响应 中断服务 中断返回7主程序中断请求响应中断请求返回主程序中断服务程序继续执行主程序中断源 引起中断的原因,或者是能发出中断申请的来源 又被称作“中断请求源”中断请求

5、 中断源向CPU提出的处理请求外部中断0和1(INT0、INT1) 采集到低电平或者脉冲下降沿时,产生中断请求。 INT0来自P3.2引脚 INT1来自P3.3引脚定时/计数器0和1(T0、T1) 定时功能时,计数脉冲来自片内 计数功能时,计数脉冲来自片外 T0来自P3.4引脚 T1来自P3.5引脚 计数值由8个1变成8个0时,产生中断请求。串行中断 发送或接收完一个字节数据时,产生中断请求 发送来自P3.0引脚 接收来自P3.1引脚8MCS-51MCS-51的中断源的中断源并行处理并行处理 CPUCPU可以与多台外设并行工作,并分时与他们进行信息可以与多台外设并行工作,并分时与他们进行信息交

6、换,提高了交换,提高了CPUCPU的工作效率。的工作效率。实时控制实时控制 单片机应用系统可能随机请求单片机应用系统可能随机请求CPUCPU提供服务。有了中断提供服务。有了中断系统,系统,CPUCPU就可以立即响应并予以处理。就可以立即响应并予以处理。故障处理故障处理 单片机系统在工作时可能会出现一些突发故障,如电源单片机系统在工作时可能会出现一些突发故障,如电源断电,存储器出错,程序执行错误(如除数为断电,存储器出错,程序执行错误(如除数为0 0)等,一旦出)等,一旦出现故障,现故障,CPUCPU就可及时转去执行故障处理程序,而不必停机。就可及时转去执行故障处理程序,而不必停机。9 为实现中

7、断功能而配置的硬件和编写的软件就是中断为实现中断功能而配置的硬件和编写的软件就是中断系统。系统。中断功能由中断系统来执行。中断功能由中断系统来执行。10110INT1INTIT0=0IT0=1IE0TF0IE1TF1TIRIT0T1TXRX+ESET1EX1ET0EX010PT010PT110PX110PS10PX0矢量地址自然优先级矢量地址自然优先级低级中断请求PC高级中断请求PC IE IPIT1=0IT1=1硬件查询硬件查询源允许总允许优先级中断请求标记中断触发方式中断源中断请求中断请求中断允许中断允许中断优先级中断优先级中断响应中断响应 8051中断系统的结构5个中断源、个中断源、2个

8、中断优先级个中断优先级8051单片机有单片机有5个中断源。见下表个中断源。见下表 哪些哪些部件可以部件可以向向CPU申请中申请中断呢?断呢?中断源中断源 说明说明 外部中断外部中断 从从P3.2引脚引入的外部中断申请引脚引入的外部中断申请定时器定时器T0中断中断 定时器定时器T0溢出时引发中断申请溢出时引发中断申请外部中断外部中断从从P3.3引脚引入的外部中断申请引脚引入的外部中断申请定时器定时器T1中断中断定时器定时器T1溢出时引发中断申请溢出时引发中断申请串行口中断串行口中断一次串行发送或接收完成后,发出中断一次串行发送或接收完成后,发出中断申请申请0INT1INT能够向能够向CPU发出中

9、断申请的部件称为中断源。发出中断申请的部件称为中断源。中断允许寄存器中断允许寄存器IE中断优先级寄存器中断优先级寄存器IP定时定时/计数器及外部中断控制寄存器计数器及外部中断控制寄存器TCON串口控制寄存器串口控制寄存器SCON 单片机通过对单片机通过对4个特殊功能寄存器个特殊功能寄存器实施中断控制:实施中断控制:13 触发方式设置及中断标志触发方式设置及中断标志 76543210TCONTF1TR1TF0TR0IE1IT1IE0IT0字节地址:字节地址:88H外部中断触发方式位IT1、IT0(用ITx表示) 电平方式(ITx=0),INTx引脚低电平时IEx=1,响应中断后IEx不自动清0(

10、INTx引脚状态)。 边沿方式(ITx=1),INTx引脚负跳变时IEx=1,响应中断后IEx自动清0。 外部中断标志IE1、IE0(用IEx表示)两种触发方式比较: 电平方式时电平方式时, INTx低电平必须保持到响应时,否则就会漏掉;在中断低电平必须保持到响应时,否则就会漏掉;在中断服务结束前,服务结束前,INTx低电平必须撤除,否则中断返回之后将再次产生中断。低电平必须撤除,否则中断返回之后将再次产生中断。 例,例,8255的中断请求线在接受读或写操作后即被复位,因此以其去请求的中断请求线在接受读或写操作后即被复位,因此以其去请求电平触发方式的中断比较方便。电平触发方式的中断比较方便。边

11、沿方式时,边沿方式时,采样到有效下降沿后,在采样到有效下降沿后,在IEx中将锁存一个中将锁存一个1。若。若CPU暂暂时不能响应,申请标志也不会丢失,直到响应时才清时不能响应,申请标志也不会丢失,直到响应时才清0。 例,例,ADC0809的转换结束信号的转换结束信号EOC为正脉冲,经反相后就可以作为为正脉冲,经反相后就可以作为8051的的INTx信号信号 。 溢出中断标志溢出中断标志TF1、TF0(用(用TFx表示)表示) 溢出中断请求标志溢出中断请求标志TFx ,Tx启动后就开始由初值进行加启动后就开始由初值进行加1计数,直至计数,直至最高位产生溢出使最高位产生溢出使TFx=1向向CPU请求中

12、断。请求中断。CPU响应中断后响应中断后TFx自动自动清清0。 SCONSCON的中断标志的中断标志76543210SCONTIRI字节地址:字节地址:98HRI:串口:串口接收接收中断标志,响应中断时中断标志,响应中断时不能自动清除不能自动清除 TI:串口:串口发送发送中断标志,响应中断时中断标志,响应中断时不能自动清除不能自动清除 外部中断INTi(i=0,1) 电平方式触发中断 ITi设置为0 CPU在每个机器周期的S5P2采样INTi引脚,若INTi引脚为低电平时,则置IEi为1,产生中断请求。 跳沿方式触发中断 ITi设置为1 加到INT0上的信号电平从高跳变到低时,触发中断 当CP

13、U响应中断后,IEi由硬件自动复位定时/计数器中断Ti(i=0,1) Ti产生溢出(计数值由8个1变成8个0)时,TFi由0变成1,向CPU发出中断请求。 中断响应后,TFi自动复位。串行中断 发送(TX) 发送完一个字节数据时,TI由0置1,向CPU发出中断请求。 中断响应后,必须用指令复位TI。 接收(RX) 接收完一个字节数据时,RI由0置1,向CPU发出中断请求。 中断响应后,必须用指令复位RI。17S1S2S3S4S5S6P1 P2 P1 P2P1 P2 P1 P2P1 P2 P1 P218位地址8FH 8EH 8DH 8CH 8BH 8AH 89H 88H位符号TF1 TR1 TF

14、0 TR0 IE1 IT1 IE0 IT0TF1 TF0:当定时当定时/计数器产生溢出时,由硬件置计数器产生溢出时,由硬件置“1”,并申请中断。当转向中断服务时,并申请中断。当转向中断服务时,再由硬件自动清再由硬件自动清“0”。IE1 IE0:当当CPU采样到外部中断请求时,由硬件置采样到外部中断请求时,由硬件置“1”。当转向中断服务时,再由硬件自动。当转向中断服务时,再由硬件自动清清“0”。IT1 IT0:为为1时,脉冲触发方式,下降沿有效时,脉冲触发方式,下降沿有效为为0时,电平触发方式,低电平有效时,电平触发方式,低电平有效位地址9FH 9EH 9DH 9CH 9BH 9AH 99H 9

15、8H位符号SM0 SM1 SM2 REN TB8 RB8TIRITI:当串行口发送完一帧串行数据后,由硬件置当串行口发送完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清在转向中断服务程序后,用软件清“0”RI:当串行口接收完一帧串行数据后,由硬件置当串行口接收完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清在转向中断服务程序后,用软件清“0”中断请求所影响到的位地址 中断允许控制中断允许控制中断源的开放和屏蔽由IE控制(1,开放;0,禁止) 76543210IEEAESET1EX1ET0EX0字节地址:字节地址:A8H EX0:外中断0允许 ET0:T0中断允许

16、 EX1:外中断1允许 ET1:T1中断允许 ES :串口中断允许 EA :CPU中断允许 20位地址AFH AEH ADH ACH ABH AAH A9H A8H位符号EA-ESET1 EX1 ET0 EX0EA:中断允许总控制位。中断允许总控制位。0禁止,禁止,1允许。允许。ES:串行中断允许控制位。串行中断允许控制位。0禁止,禁止,1允许。允许。ET1: 定时计数器定时计数器1中断允许控制位。中断允许控制位。0禁止,禁止,1允许。允许。EX1外部中断外部中断1允许控制位。允许控制位。0禁止,禁止,1允许。允许。ET0定时计数器定时计数器0中断允许控制位。中断允许控制位。0禁止,禁止,1允

17、许。允许。EX0外部中断外部中断0允许控制位。允许控制位。0禁止,禁止,1允许。允许。中断允许中断允许21【例】若允许片内2个定时/计数器中断,禁止其他中断源的中断请求,试编写出设置IE的程序段。CLR ES; ES=0,禁止串行口中断CLR EX0; EX0=0,禁止外部中断0CLR EX1; EX1=0,禁止外部中断1SETB ET0; ET0=1,允许定时/计数中断0SETB ET1; ET1=1,允许定时/计数中断0SETB EA; CPU开中断(方法1) 用位操作指令(方法2) 用字节操作指令MOV IE,#10001010BIE位地址AFH AEH ADH ACH ABH AAH

18、A9H A8H位符号EA-ESET1 EX1 ET0 EX010001010 中断优先级控制中断优先级由IP控制(1,高级;0,低级) 76543210IPPSPT1PX1PT0PX0字节地址:字节地址:B8H PX0:外中断0优先级 PT0:T0中断优先级 PX1:外中断1优先级 PT1:T1中断优先级 PS :串口中断优先级同一优先级的自然顺序:同一优先级的自然顺序:自高至低:自高至低:INT0、T0、INT1、T1、串口。、串口。 23位地址BFH BEH BDH BCH BBH BAH B9H B8H位符号-PSPT1 PX1 PT0 PX0PX0: 外部中断外部中断0的优先级设定位,

19、的优先级设定位,1为高,为高,0为低为低PT0: 定时中断定时中断0的优先级设定位,的优先级设定位,1为高,为高,0为低为低PX1: 外部中断外部中断1的优先级设定位,的优先级设定位,1为高,为高,0为低为低PT0: 定时中断定时中断0的优先级设定位,的优先级设定位,1为高,为高,0为低为低PX:串行中断的优先级设定位,串行中断的优先级设定位,1为高,为高,0为低为低中断优先级中断优先级 中断优先级遵循的原则几个中断同时申请,先响应高级的中断几个中断同时申请,先响应高级的中断 正进行的中断服务,同级或低级中断不能对其中断,正进行的中断服务,同级或低级中断不能对其中断,但可以被高级中断所中断。但

20、可以被高级中断所中断。 为此,中断系统内设有对应高、低为此,中断系统内设有对应高、低2个个优先级状态触发器优先级状态触发器(用户不能寻址)。(用户不能寻址)。 状态触发器的复位由中断返回指令状态触发器的复位由中断返回指令RETI控制。控制。25【例】设置IP寄存器的初始值,使得MCS-51系统的2个外中断请求为高优先级,其他中断请求为低优先级SETB PX0; PX0=1,外中断0为高优先级SETB PX1; PX1=1,外中断1为高优先级CLR PT0; PT0=0,定时中断0为低优先级CLR PT1; PT1=0,定时中断1为低优先级CLR PS; PS=0,串行中断为低优先级(方法1)

21、用位操作指令(方法2) 用字节操作指令MOV IP,#00000101B位地址BFH BEH BDH BCH BBH BAH B9H B8H位符号-PSPT1 PX1 PT0 PX000000101IP6.2.1 6.2.1 中断响应条件和时间中断响应条件和时间 中断响应条件中断响应条件CPU开中断开中断中断源发出中断请求中断源发出中断请求中断源的中断允许位中断源的中断允许位为为1无同级或更高级中断无同级或更高级中断正在被服务正在被服务中断响应的过程中断响应的过程 由硬件根据中断源的由硬件根据中断源的类型自动生成一条长调类型自动生成一条长调用指令用指令LCALL addr16LCALL add

22、r16。 Addr16Addr16为程序存储器为程序存储器中相应的中断入口地中相应的中断入口地址址 CPUCPU执行执行LCALL addr16LCALL addr16 (1) (1) 将将PCPC的内容压入的内容压入堆栈,以保护断点堆栈,以保护断点 (2) (2) 将中断入口地址将中断入口地址装入装入PCPC,使程序转向,使程序转向响应中断请求的中断响应中断请求的中断入口地址。入口地址。27中断源入口地址外部中断00003H定时/计数器T0 000BH外部中断10013H定时/计数器T1 001BH串行中断0023H两个中断入口间隔只有8个字节,一般情况下难以安排下一个完整的中断服务程序,通

23、常只是在中断入口地址处放置一条无条件转移指令,使程序执行转向在其他地址存放的中断服务程序。中断响应被封锁的三种情况中断响应被封锁的三种情况 CPUCPU正在处理同级的或更高优先级的中断。正在处理同级的或更高优先级的中断。 一个中断被响应时,要把中断优先级状态触发器设置一个中断被响应时,要把中断优先级状态触发器设置为为“1 1”( (该触发器指出该触发器指出CPUCPU处理的中断优先级别处理的中断优先级别) ),从,从而封锁低级中断和同级中断请求。而封锁低级中断和同级中断请求。 查询到中断请求的机器周期不是当前正在执查询到中断请求的机器周期不是当前正在执行指令的最后一个机器周期。行指令的最后一个

24、机器周期。 只有当前指令执行完毕后,才能响应中断请求,以确只有当前指令执行完毕后,才能响应中断请求,以确保当前指令完整的执行。保当前指令完整的执行。 正在执行的指令是正在执行的指令是RETIRETI或是访问或是访问IEIE或或IPIP的指的指令。令。 MCS-51MCS-51中断系统规定,在执行完上述指令后,需要再中断系统规定,在执行完上述指令后,需要再去执行完一条指令,才能响应新的中断请求。去执行完一条指令,才能响应新的中断请求。28 中断响应时间中断响应时间中断响应至少需要中断响应至少需要3个完整的机器周期个完整的机器周期(38个)!个)!受阻时要附加受阻时要附加35个机器周期个机器周期(

25、无同级或高级中断正进行无同级或高级中断正进行) 查询周期不是当前指令的最后机器周期查询周期不是当前指令的最后机器周期(如如MUL,+3)查询周期恰逢查询周期恰逢RETI类指令类指令(且后跟且后跟MUL指令指令+5)6.2.2 6.2.2 中断响应过程中断响应过程 CPU响应中断过程响应中断过程将相应优先级状态触发器置将相应优先级状态触发器置1(阻断后来同级或低级中断阻断后来同级或低级中断 )执行硬件执行硬件LCALL指令(指令(PC入栈,中断服务程序入口址送入栈,中断服务程序入口址送PC)执行中断服务程序执行中断服务程序 编写中断服务程序注意编写中断服务程序注意中断服务程序入口存放指令中断服务

26、程序入口存放指令LJMP或或AJMP现场保护与现场恢复现场保护与现场恢复6.2.3 6.2.3 中断返回中断返回 中断服务程序最后指令必须是中断服务程序最后指令必须是RETI,其功能:,其功能: 将断点从堆栈弹送将断点从堆栈弹送PC,CPU从原断点继续执行从原断点继续执行 将相应优先级状态触发器清将相应优先级状态触发器清0,恢复原来工作状态,恢复原来工作状态 注意注意不能用不能用RET代替代替RETI 中断服务程序中中断服务程序中PUSH和和POP必须成对使用必须成对使用6.2.4 6.2.4 中断请求的清除中断请求的清除 CPU响应某中断后,在中断返回前,中断请求应被撤除,否响应某中断后,在

27、中断返回前,中断请求应被撤除,否则会引起另一次中断。则会引起另一次中断。1、定时器、定时器0和定时器和定时器1中断中断 CPU在响应中断后用在响应中断后用硬件硬件自动清除有关的中断请求标志自动清除有关的中断请求标志TF0或或TF1。2、边沿触发的外部中断、边沿触发的外部中断 在硬件在硬件CPU在响应中断后用在响应中断后用硬件硬件自动清除有关的中断请求标自动清除有关的中断请求标志志IE0或或IE1。3、电平触发的外部中断、电平触发的外部中断 在硬件上在硬件上CPU对对/INT0、INT1没有控制,因此必须另外采取没有控制,因此必须另外采取措施措施加外部加外部硬件控制硬件控制和和软件编程软件编程。

28、4、串行口中断、串行口中断 CPU在响应中断后没有用硬件自动清除中断请求标志在响应中断后没有用硬件自动清除中断请求标志RI和和TI,必须在中断服务程序中用必须在中断服务程序中用软件软件清除之,以撤除中断请求。清除之,以撤除中断请求。3233ORG 0000H;程序开始LJMP START;= LJMP 1000HORG 0003H;外部中断外部中断0入口地址入口地址LJMP INTORG 1000H;主程序入口START: MOV P1, #0AAH; 0AAH=10101010BSETB EX0;允许外部中断0SETB PX0;设置外部中断0为高优先级SETB IT0;设置外部中断0为负跳变

29、触发SETB EA;开中断SJMP $;原地跳转,等待中断INT:CLR EA;关中断PUSH PSW;现场保护PUSH ACC;SETB EA;开中断CPL A;对累加器A按位取反MOV P1, A;累加器A值送P1端口CLR EA;关中断POP ACC;现场保护POP PSW;SETB EA;开中断RETI;关中断现场保护开中断中断处理关中断现场恢复开中断中断返回中断服务程序的基本流程34为了防止此时有高一级的中断进入,以免现场保护的执行过程被中断。关中断现场保护开中断中断处理关中断现场恢复开中断中断返回35关中断现场保护开中断中断处理关中断现场恢复开中断中断返回所谓现场是指中断时刻单片机

30、中某些寄存器和存储器单元中的数据或状态。为了不让中断服务程序的执行破坏这数据或状态,以免中断返回后影响主程序的运行,需要将他们送入堆栈保存起来。36关中断现场保护开中断中断处理关中断现场恢复开中断中断返回为了允许有更高级的中断进入。这样一来,除了现场保护和现场恢复外,中断处理的过程仍允许中断嵌套的功能37关中断现场保护开中断中断处理关中断现场恢复开中断中断返回为了防止此时有高一级的中断进入,以免现场恢复的执行过程被中断。38关中断现场保护开中断中断处理关中断现场恢复开中断中断返回中断处理结束后,在返回主程序前,把保存的现场的内容从堆栈中弹出,以恢复那些寄存器和存储单元中的原有内容39关中断现场保护开中断中断处理关中断现场恢复开中断中断返回为了允许有更高级的中断进入。现场恢复后,仍允许中断嵌套的功能。40关中断现场保护开中断中断处理关中断现场恢复开中断中断返回必须是返回指令RETI。CPU执行完这条指令后,把响应中断时所置“1”的优先级状态触发器清“0”,然后从堆栈中弹出栈顶上的两个字节的断点地址送到程序计数器PC,弹出的第一个字节送入PCH,第二个字节送入PCL,CPU从断点处重新执行被中断的

温馨提示

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

评论

0/150

提交评论