《6第6章中断系统.ppt》由会员分享,可在线阅读,更多相关《6第6章中断系统.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 本章介绍的主要内容本章介绍的主要内容 中断的系统结构中断的系统结构 中断的响应过程中断的响应过程 中断的的应用编程中断的的应用编程6.1 6.1 中断系统结构中断系统结构 8XX51有有5个中断源,个中断源,3个在个在片内,片内,2个在片外,每个在片外,每个中断都有一个中断服务程序,中断服务程序的入口个中断都有一个中断服务程序,中断服务程序的入口地址(矢量地址)在地址(矢量地址)在ROM中是固定的。当中是固定的。当CPU响应响应中断时,硬件自动形成这些地址并送入中断时,硬件自动形成这些地址并送入PC,由此进,由此进入中断服务程序;入中断服务程序;8XX51 中的5个中断源的中断优先级有两个大
2、个中断源的中断优先级有两个大的级别,且允许中断嵌套;的级别,且允许中断嵌套;符号符号 名名 称称 中中 断断 引引 起起 原原 因因 矢量地址矢量地址INTINT0 0外部外部中断中断0 0 P3.2P3.2引脚的低引脚的低电电平或下降沿信号平或下降沿信号 0003H0003HINTINT1 1 外部外部中断中断1 1P3.3P3.3引脚的低引脚的低电电平或下降沿信号平或下降沿信号 0013H0013HT T0 0定定时时器器0 0中断中断 定定时计时计数器数器0 0计计数回零溢出数回零溢出 000BH000BHT T1 1定定时时器器1 1中断中断 定定时计时计数器数器1 1计计数回零溢出数
3、回零溢出 001BH001BHT T2 2定定时时器器2 2中断中断 定定时计时计数器数器2 2中断中断(TF(TF2 2或或T T2 2EXEX信号)信号)002BH002BHTI/RITI/RI 串行口中断串行口中断 串行通信完成一串行通信完成一帧帧数据数据发发送或接收引起中送或接收引起中断断 0023H0023H二、中断控制的有关寄存器二、中断控制的有关寄存器 (1)(1)中断控制寄存器中断控制寄存器IE IE 中断的允许和禁止中断的允许和禁止 IEIE寄存器的各位对应相应的中断源,是否允寄存器的各位对应相应的中断源,是否允许该中断源产生中断。允许:许该中断源产生中断。允许:1 1;禁止
4、:;禁止:0 0。EAEA -ETET2 2 ES ES ETET1 1 EX EX1 1ETET0 0 EX EX0 0中断中断总总控控不不 用用 T T2 2串行口串行口T T1 1 INT INT1 1 T T0 0INTINT0 0说明:说明:1.IT0和和IT1为外中断为外中断INT0 和和INT1中断触发方式选择,中断触发方式选择,1:下降沿触发:下降沿触发 0:低电平触发:低电平触发 2.IE0、IE1、TF0、TF1标识中断源是否有中断请求,标识中断源是否有中断请求,1:有:有 0:无:无3.TR0 和和 TR1 为定时器为定时器T0和和T1 启动和停止信号。启动和停止信号。T
5、F1 TR1TF0 TR0 IE1IT1 IE0IT0T1 请请求求有有/无无 T1工作工作启启/停停 T0 请请求求有有/无无 T0 工作工作启启/停停 INT1 请请求求有有/无无 INT1方式方式下沿下沿/低低电电平平 INT0请请求求有有/无无 INT0方式方式下沿下沿/低低电电平平(2)(2)定时器控制寄存器定时器控制寄存器TCONTCON(3)(3)中断优先级管理寄存器中断优先级管理寄存器IPIP-PT2PSPT1PX1PT0PX0T2串行口串行口 T1INT1 T0INT0 当某几个中断源在当某几个中断源在IP寄存器相应位同为寄存器相应位同为1或同为零时,或同为零时,由内部查询确
6、定优先级,查询的顺序是:由内部查询确定优先级,查询的顺序是:T0INT0INT1T1串行口串行口T2五个中断源的优先级别由五个中断源的优先级别由IP寄存器管理。寄存器管理。某位为某位为1:属于高级别,:属于高级别,0:属于低级别。:属于低级别。IE:1000,0111 IP:0000,0101表示:本应用系统响应表示:本应用系统响应3个中断源:个中断源:INT0 INT1 T0能否实现:INT1 INT0 T1 T0?MCS_51系列单片机的中断结构可以用图6.1示。6.2 中断响应过程中断响应过程 一、中断处理过程一、中断处理过程 中断处理过程分为四个阶段:中断请中断处理过程分为四个阶段:中
7、断请求,中断响应,中断处理、中断返回。求,中断响应,中断处理、中断返回。MCS51系列单系列单 片机的中断过程流程如片机的中断过程流程如下图所示。下图所示。N NNYYYN执执 行行 指指 令令中断标志中断标志=1?(中断请求中断请求?)指令指令最后一个最后一个T周期周期?EA=1?允允 许许 位位=1?CPU 判判 别优别优 先权先权,响响 应优应优 先权高先权高 的中断的中断断点的断点的PC进栈进栈,中断服务入口地址送中断服务入口地址送PC撤撤 除除 中断中断 标标 志志中中 断断 服服 务务中中 断断 返返 回回,断断 点点 出出 栈栈 送送 PC 中断请求中断请求中断响应中断响应中断服
8、务中断服务中断返回中断返回l中断请求、中断响应过程由中断请求、中断响应过程由硬件完成硬件完成。l中断服务程序应根据需要进行编写。程序中要中断服务程序应根据需要进行编写。程序中要注意保护现场和恢复现场。注意保护现场和恢复现场。l中断返回是通过执行一条中断返回是通过执行一条RETI中断返回指令,中断返回指令,使堆栈中被压入的断点地址送使堆栈中被压入的断点地址送PC,从而返回主从而返回主程序的断点继续执行主程序。程序的断点继续执行主程序。若某个中断源通过编程设置,处于被打开的状态,若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,然而下面三种情并满足中断响应的条件,然而下面三种情 况
9、单片机不况单片机不响应此中断:响应此中断:当前正在执行的指令没执行完;当前正在执行的指令没执行完;当前响应了同级或高级中断;当前响应了同级或高级中断;正在操作正在操作IEIE、IPIP中断控制寄存器或执行中断控制寄存器或执行RETIRETI指令。指令。二、中断请求的撤除二、中断请求的撤除 CPU响应中断后,应撤除该中断请求标志,否则响应中断后,应撤除该中断请求标志,否则会再会再次中断。次中断。1.对定时计数器对定时计数器T0、T1的溢出中断,的溢出中断,CPU响应响应中断后,硬件自动清除中断请求标志中断后,硬件自动清除中断请求标志TF0 TF1。2.对边沿触发的外部中断对边沿触发的外部中断IN
10、T1和和INT0,CPU响应响应中断后硬件自动清除中断请求标志中断后硬件自动清除中断请求标志IE0和和IE1。3.对于串行口中断和对于串行口中断和电平触发的外部中断电平触发的外部中断,CPU响应中响应中断后,中断请求标志也不会自动清除,可用软件或设计硬断后,中断请求标志也不会自动清除,可用软件或设计硬件电路清除。件电路清除。6.3 6.3 中断的汇编语言程序中断的汇编语言程序 用户通过用户通过IE、TCON、IP、SCON实现对中实现对中断的管理。这几个寄存器在单片机复位时是清零断的管理。这几个寄存器在单片机复位时是清零的,因此必须初始化这些寄存器:的,因此必须初始化这些寄存器:1.开中断总控
11、开关开中断总控开关EA,置位中断源的中断允许位。置位中断源的中断允许位。2.对外部中断对外部中断INT0、INT1,选择中断触发方式。,选择中断触发方式。4.4.编写中断服务程序时,要注意保护现场与恢复。编写中断服务程序时,要注意保护现场与恢复。3.多个中断源中断,应设定中断优先级,预置多个中断源中断,应设定中断优先级,预置IP。5.中断服务程序的入口地址要按规定的地址存中断服务程序的入口地址要按规定的地址存入,由于五个中断的矢量地址入,由于五个中断的矢量地址0003H、000BH、0013H、001BH、0023H之间相距很近,存之间相距很近,存不下一个中断服务程序,通常将中断服务程不下一个
12、中断服务程序,通常将中断服务程序安排在序安排在ROM的其他地址空间,而在矢量地的其他地址空间,而在矢量地址的单元安排一条转移指令。址的单元安排一条转移指令。例例1.1.在下图中在下图中P1.4P1.4P1.7P1.7接有四个发光二极管,接有四个发光二极管,P1.0P1.0P1.3P1.3接有四个开关,消抖电路用于消除中断请求信接有四个开关,消抖电路用于消除中断请求信号的抖动,当开关来回拔动一次将产生一个下降沿信号的抖动,当开关来回拔动一次将产生一个下降沿信号,通过号,通过INTINT0 0向向CPUCPU申请中断。申请中断。要求:初时发光二极管全黑,每中断一次,要求:初时发光二极管全黑,每中断
13、一次,P1.0P1.0P1.3P1.3所接的开关状态反映到发光二极管上,开关断开的支所接的开关状态反映到发光二极管上,开关断开的支路,对应的发光二极管亮。路,对应的发光二极管亮。一、汇编语言中断程序的设计一、汇编语言中断程序的设计、ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 0003H ORG 0003H ;INT0INT0中断入口中断入口 AJMP WBI AJMP WBI ;转中断服务程序转中断服务程序 ORG 0030H ORG 0030H ;主程序主程序 MAIN:MOV P1MAIN:MOV P1,#0FH#0FH ;全灯灭,低四位输入全灯灭,低四位输入 SETB IT0 SETB IT0 ;边沿触发中断边沿触发中断 SETB EX0 SETB EX0 ;允许外中断允许外中断0 0中断中断 SETB EA SETB EA ;开中断开关开中断开关 SJMP$SJMP$WBI WBI:MOV P1MOV P1,#0FH#0FH ;P1P1先写入先写入“1 1”且灯灭且灯灭 MOV AMOV A,P1 P1 ;输入开关状态输入开关状态 SWAP A SWAP A MOV P1 MOV P1,A A ;输出到输出到P1P1高高4 4位位 RETIRETI END END
限制150内