单片机及接口技术:第6章MCS-51单片机的中断系统

上传人:人*** 文档编号:569957669 上传时间:2024-08-01 格式:PPT 页数:33 大小:941KB
返回 下载 相关 举报
单片机及接口技术:第6章MCS-51单片机的中断系统_第1页
第1页 / 共33页
单片机及接口技术:第6章MCS-51单片机的中断系统_第2页
第2页 / 共33页
单片机及接口技术:第6章MCS-51单片机的中断系统_第3页
第3页 / 共33页
单片机及接口技术:第6章MCS-51单片机的中断系统_第4页
第4页 / 共33页
单片机及接口技术:第6章MCS-51单片机的中断系统_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《单片机及接口技术:第6章MCS-51单片机的中断系统》由会员分享,可在线阅读,更多相关《单片机及接口技术:第6章MCS-51单片机的中断系统(33页珍藏版)》请在金锄头文库上搜索。

1、 单片微型计算机与接口技术单片微型计算机与接口技术 ( (第第4 4版版) ) 第第6 6章章 MCS-51MCS-51单片机的中断系统单片机的中断系统 学习内容学习内容 中断的基本概念中断的基本概念 中断的系统结构中断的系统结构 中断的响应过程中断的响应过程 中断的应用编程中断的应用编程n中断中断 CPUCPU外设外设( (或定时器或定时器) )工作,当事件工作,当事件发生时,发生时,CPUCPU暂停正在执行的程序转而为该暂停正在执行的程序转而为该外设外设( (或定时器或定时器) )服务,处理完毕再回到原程服务,处理完毕再回到原程序处序处n 中断源中断源n 中断优先级中断优先级n 中断系统中

2、断系统中断系统要解决的问题中断系统要解决的问题:1 1)如何检测随机发生的中断请求?)如何检测随机发生的中断请求?2 2)如何允许中断或禁止中断?)如何允许中断或禁止中断?3 3)如何为允许的中断源服务?)如何为允许的中断源服务?4 4)如何应对多个中断源同时请求?)如何应对多个中断源同时请求?5 5)如何正确地返回到原断点处?)如何正确地返回到原断点处? 中断与子程序的主要区别中断与子程序的主要区别: 子程序是预先安排好的子程序是预先安排好的; 中断是随机发生的中断是随机发生的6.1 8XX516.1 8XX51中断系统结构中断系统结构 5 5个中断源个中断源:3 3个片个片内,内,2 2个

3、片外;个片外; 有固定的中断入口地址;(有固定的中断入口地址;(硬件自动形成硬件自动形成) 有两级中断优先级;有两级中断优先级; 可中断嵌套可中断嵌套6.1.16.1.1中断源中断源8XX518XX51中断源,其符号、名称、产生条件及中断中断源,其符号、名称、产生条件及中断服务程序的入口地址如表服务程序的入口地址如表6-16-1符号符号 名名 称称 中中 断断 引引 起起 原原 因因 中断服务程序入中断服务程序入口地址口地址INT0*INT0*外部外部中断中断0 0 P3.2P3.2引脚的低电平或下降沿信号引脚的低电平或下降沿信号 0003H0003HINT1*INT1*外部外部中断中断1 1

4、P3.3P3.3引脚的低电平或下降沿信号引脚的低电平或下降沿信号 0013H0013HT0T0定时器定时器0 0中断中断 定时计数器定时计数器0 0计数回零溢出计数回零溢出 000BH000BHT1T1定时器定时器1 1中断中断 定时计数器定时计数器1 1计数回零溢出计数回零溢出 001BH001BHTI/RI TI/RI 串行口串行口中断中断 串行通信完成一帧数据发送或接收引起中串行通信完成一帧数据发送或接收引起中断断 0023H0023H表表6-16-16.1.2 6.1.2 中断控制的有关寄存器中断控制的有关寄存器 ( (用户使用用户使用, ,个个) ) 1,1,中断允中断允/ /禁禁中

5、断控制寄存器中断控制寄存器IE (IE (地址地址A8H,A8H,可位寻址可位寻址) ) ( (单片机只有可屏蔽中断单片机只有可屏蔽中断) ) 允许允许: :置置1 (1 (人工人工) ),禁止,禁止: :置置0 (0 (人工人工/ /开机清零开机清零) )EA EA - - - - ES ES ET1ET1 EX1 EX1 ET0 ET0 EX0 EX0中断总控中断总控允允/ /禁禁 不不 用用 不不用用 串行口串行口允允/ /禁禁 T1T1允允/ /禁禁 INT1INT1允允/ /禁禁 T0T0允允/ /禁禁 INT0INT0允允/ /禁禁 EAEA:中断中断总控总控开关,开关,CPUCP

6、U是否响应中断的前提是否响应中断的前提 EA=1EA=1, CPUCPU开中断开中断 ( (SETB EASETB EA) ) EA=0 EA=0, CPUCPU关中断关中断 ( (CLR EACLR EA) )两级控制两级控制:EA:EAESES、ET1ET1、EX1EX1、ET0ET0、EX0EX0 例例:允许:允许CPUCPU响应响应INT0INT0的中断请求的中断请求 SETB EX0 SETB EX0 SETB EA SETB EA 不允许?不允许? 开机复开机复0 0时时,IE=?,IE=? (P24 (P24 表表1-4,1-4,关闭中断关闭中断) )1.1.中断标志位:中断标志

7、位: TF1TF1、TF0TF0、IE1IE1、IE0IE0、RIRI 、TITI =1=1,有中断请求(,有中断请求(机器置机器置1 1););=0=0,无中断请求,无中断请求 CPUCPU响应中断后响应中断后, , TF1TF1、TF0TF0、IE1IE1、IE0IE0自动清零自动清零 ( (机器机器) ) TITI,RIRI软件清零软件清零 ( (人工人工) )2.2.外部中断触发方式选择位:外部中断触发方式选择位:IT0IT0、IT1IT1 =1=1:下降沿触发;:下降沿触发;=0=0:低电平触发:低电平触发 ( (人工人工) ) 3.3.TR0TR0 和和 TR1TR1 为为T0T0

8、和和T1 T1 启动和停止控制启动和停止控制 ( (与中断无关与中断无关) ) TF1 TF1 TR1TR1TF0 TF0 TR0TR0 IE1IE1IT1IT1 IE0 IE0IT0IT0T1 T1 请求请求有有/ /无无 T1T1工作工作启启/ /停停 T0 T0 请求请求有有/ /无无 T0 T0 工作工作启启/ /停停 INT1 INT1 请求请求有有/ /无无 INT1INT1方式方式下沿下沿/ / 低电平低电平 INT0INT0请求请求有有/ /无无 INT0INT0方式方式下沿下沿/ /低电平低电平 2,2,中断请求标志及外部中断方式选择寄存器中断请求标志及外部中断方式选择寄存器

9、 TCON (TCON (地址地址88H,88H,可位寻址可位寻址) )3,3,中断优先级管理寄存器中断优先级管理寄存器IPIP( (地址地址B8H,B8H,可位寻址可位寻址) ) -PSPSPT1PT1PX1PX1PT0PT0PX0PX0无无用用位位无无用用位位无无用用位位串行串行 口口高高/ /低低T1T1高高/ /低低 INT1INT1高高/ /低低 T0T0高高/ /低低 INT0INT0高高/ /低低 中断优先级控制位:中断优先级控制位:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX0二级优先级:二级优先级:=1=1为高优先级,为高优先级,=0=0为低优先级为低优先级

10、同一优先级别同一优先级别按内部查询顺序排列优先级:按内部查询顺序排列优先级:高高 INT0INT0T0T0INT1INT1T1T1TI/RI TI/RI 低低MCS-51MCS-51系列单片机的中断结构图系列单片机的中断结构图6.2 6.2 中断响应过程中断响应过程 6.2.16.2.1中断处理过程中断处理过程 ( (四个阶段四个阶段) ) 中断请求中断请求: :开中断开中断? ? 满足条件满足条件? ?有中断请求信号有中断请求信号 ( (人工人工, ,机器机器) ) 中断响应中断响应: :判断优先权判断优先权, ,将断点地址将断点地址( (当前当前PCPC值值)堆栈,堆栈, 中断服务程序入口

11、中断服务程序入口 PCPC,转入中断服务,转入中断服务 ( (机器自动机器自动) ) 中断服务中断服务: :执行中断服务程序执行中断服务程序 ( (保护现场和恢复现场保护现场和恢复现场) )( (人工人工) ) 中断返回中断返回:执行:执行RETIRETI指令,栈顶内容指令,栈顶内容( (断点地址断点地址) ) PCPC,程序,程序 返回断点处返回断点处 ( (机器自动机器自动) ) RETIRETI= = RETRET指令指令 + + 通知通知CPUCPU中断服务已结束中断服务已结束5151系列单片机的中断过程流程如图系列单片机的中断过程流程如图6.26.2所示所示NNYYYN执执 行行 指

12、指 令令中断标志中断标志1?1?( (中断请求中断请求?)?) 指令指令最后一个最后一个T T周期周期? ?EA=1?EA=1?允许位允许位 = 1?= 1?CPUCPU判别优先权判别优先权 , ,响应优先权高的中断响应优先权高的中断断点的断点的PCPC进栈进栈, , 中断服务入口地址送中断服务入口地址送PCPC撤撤 除除 中中 断断 标标 志志中中 断断 服服 务务中断返回中断返回, ,断点出栈送断点出栈送PCPC 中断请求中断请求中断响应中断响应中断服务中断服务中断返回中断返回中断响应阻断中断响应阻断 ( (虽其他条件满足虽其他条件满足, ,但单片机不能立即响应但单片机不能立即响应) )1

13、. CPU1. CPU未执行完一条指令未执行完一条指令2 2响应着同级或高级中断服务响应着同级或高级中断服务3 3执行执行RETIRETI指令或访问指令或访问IEIE、IPIP的指令的指令中断响应时间中断响应时间 ( (不是中断服务时间不是中断服务时间) ) 至少为至少为3 38 8个机器周期个机器周期6.2.26.2.2中断请求的撤除中断请求的撤除 ( (清零清零TCON,SCONTCON,SCON中相应位中相应位) )CPUCPU响应中断后,应撤除该中断请求标志响应中断后,应撤除该中断请求标志( (机器,人工机器,人工) )否则再次中断否则再次中断 低电平触发,低电平触发, CPUCPU响

14、应后应撤除响应后应撤除INT1INT1或或INT0INT0的低电平信号的低电平信号 ( (人为变为高电平人为变为高电平) ) 下降沿触发及计数器下降沿触发及计数器 TF1TF1、TF0TF0、IE1IE1、IE0 IE0 自动清零自动清零( (机器机器) ) TITI,RI RI 软件清零软件清零( (人工人工) )6.3 6.3 中断的程序设计中断的程序设计 单片机开机复位单片机开机复位清零清零,中断程序设计时需对,中断程序设计时需对有关位有关位进行预置进行预置开开EAEA,置位中断源的中断允许位置位中断源的中断允许位 (IEIE)对外中断对外中断INT0INT0、INT1INT1选择中断触

15、发方式选择中断触发方式( (TCONTCON) )编写中断服务程序编写中断服务程序多个中断源中断,设定优先级多个中断源中断,设定优先级 ( (IPIP) ) 中断服务程序按规定的中断矢量地中断服务程序按规定的中断矢量地址存入址存入 ( (固定固定) ) 通常矢量地址单元中安排一条转通常矢量地址单元中安排一条转移指令移指令 ( (只有只有8 8个字节可用个字节可用) ) 中断服务程序安排在中断服务程序安排在ROMROM的其他地的其他地址空间址空间 ( (程序较长时程序较长时) ) 6.3.16.3.1汇编语言中断程序的设计汇编语言中断程序的设计 例例6-16-1 在图在图6.36.3中中, ,P

16、1.4P1.4P1.7P1.7接有四个发光二极管,接有四个发光二极管,P1.0P1.0P1.3P1.3接有四个开关,消抖电路用于产生中断接有四个开关,消抖电路用于产生中断请求信号,当消抖电路的开关请求信号,当消抖电路的开关来回拔动来回拔动一次将产生一次将产生一个一个下降沿下降沿信号,通过信号,通过INT0*INT0*向向CPUCPU申请中断,申请中断,要求:要求:初时发光二极管全黑,每中断一次,初时发光二极管全黑,每中断一次,P1.0P1.0P1.3P1.3所所接的开关状态反映到发光二极管上,接的开关状态反映到发光二极管上,(“1” (“1” 亮,亮,”0” 0” 灭灭) ): 、 ORG 0

17、000H ORG 0000H AJMP MAIN AJMP MAIN ;转转主程序主程序 ORG 0003H ORG 0003H ;INT0INT0中断入口中断入口 AJMP AJMP WBI WBI ;转转中断服务程序中断服务程序 ORG 0030H ORG 0030H ;主程序主程序 MAIN:MOV P1MAIN:MOV P1,#0FH #0FH ;全灯灭,低四位输入全灯灭,低四位输入 SETB IT0SETB IT0 ;边沿触发中断边沿触发中断( (MOV MOV TCON,#01HTCON,#01H) ) SETB EX0SETB EX0 ;允许外中断允许外中断0 0中断中断(ORL

18、 (ORL IE,#81H)IE,#81H) SETB EASETB EA ;开中断开关开中断开关 HERE: AJMP HEREHERE: AJMP HERE ;等待中断等待中断 WBIWBI: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位位 RETI RETI ;返回主程序;返回主程序HEREHERE处处 ENDEND例例2.2. 89C51 89C51的的P1P1口接一个口接一个共阴极

19、共阴极的数码管,利用消的数码管,利用消抖开关产生中断请求信号,每来回拔动一次开抖开关产生中断请求信号,每来回拔动一次开关,产生一次中断,用数码管显示中断的次数关,产生一次中断,用数码管显示中断的次数( (最多不超过最多不超过1515次次) )。 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ;转主程序转主程序 ORG 0013H ORG 0013H ;INT1INT1中断入口中断入口 AJMP AJMP INTV1INTV1 ;转中断服务程序转中断服务程序 ORG 0030H ORG 0030H ;主程序主程序MAINMAIN: SETB IT1 SETB I

20、T1 ;边沿触发中断边沿触发中断 SETB EX1 SETB EX1 ;允许允许INT1INT1中断中断 SETB EA SETB EA ;开中断总开关开中断总开关 MOV R0MOV R0,#0 #0 ;计数初值为计数初值为0 0 MOV A MOV A,#3FH #3FH ;“0”0”的字形码送的字形码送A AAL1AL1: MOV P1MOV P1,A A ;显示数码显示数码AL2AL2: CJNE R0CJNE R0,#0FH#0FH,AL1 AL1 ;没满没满1515次循环显示次循环显示 MOV R7MOV R7,#0FFH #0FFH ;满满1515次,显次,显FF,延时延时 DJ

21、NZ R7DJNZ R7, MOV P1MOV P1,#0 #0 ;关显示关显示 CLR EA CLR EA ;关中断关中断 SJMP SJMP ;结束结束INTV1INTV1:INC R0 INC R0 ;中断次数加中断次数加1 1 MOV A MOV A,R0R0 MOV DPTR MOV DPTR,TAB TAB ;DPTRDPTR指向字形码表首址指向字形码表首址 MOVC AMOVC A,A+DPTR A+DPTR ;查表查表 POP DPHPOP DPH POP DPL POP DPL ;弹出断点弹出断点 MOV DPTRMOV DPTR,#AL1#AL1 PUSH DPL PUSH

22、 DPL PUSH DPH PUSH DPH ;修改中断返回点,修改中断返回点,AL1AL1压入堆栈压入堆栈 RETI RETI ;从堆栈弹出从堆栈弹出AL1AL1地址地址PCPC,返主程序,返主程序AL1AL1处处 TABTAB: DB 3FHDB 3FH,06H06H,5BH5BH,4FH4FH,66H66H,6DH6DH DB 7DH DB 7DH,07H07H,7FH7FH,6FH6FH,77H77H,7CH7CH DB 39H DB 39H,5EH5EH,79H79H,71H71H ;字形码表;字形码表( (共阴共阴) ) ENDEND 上面程序每中断一次,执行一次中断服务程上面程序

23、每中断一次,执行一次中断服务程序序INTV1INTV1。在中断服务程序中,累计中断次数并查在中断服务程序中,累计中断次数并查字形表,返回到主程序字形表,返回到主程序AL1AL1地址地址执行显示。执行显示。 上例中中断次数在主程序判断,目的是使读者了上例中中断次数在主程序判断,目的是使读者了解修改中断返回点的方法,如果改在中断服务程解修改中断返回点的方法,如果改在中断服务程序中判断,编程简洁些,下面仅介绍和上例中的序中判断,编程简洁些,下面仅介绍和上例中的不同部分的程序。不同部分的程序。 MOV R0MOV R0, #0 #0 ;计数初值为计数初值为0 0 MOV P1 MOV P1, #3FH

24、 #3FH ;显示显示00 MOV DPTR MOV DPTR,#TAB #TAB ;指向字形码表指向字形码表AGAAGA: SJMP SJMP ;等待中断等待中断INT1INT1:INC R0 INC R0 ;中断次数加中断次数加1 1 MOV A MOV A, R0R0 MOVC A MOVC A, A+DPTR A+DPTR ;查字形码表查字形码表 MOV P1MOV P1, A A ;显示显示(1-F)(1-F) CJNE R0 CJNE R0, #0FH#0FH, RE RE ;1515次中断未到转次中断未到转RERE CLR EA CLR EA ;1515次到关中断次到关中断 RE

25、RE: RETI RETI ;返回主程序的返回主程序的AGAAGA处处TABTAB: DB 3FHDB 3FH,06H06H,5BH5BH,4FH4FH,66H66H,6DH6DH,7DH, 07H 7DH, 07H DB 7FH DB 7FH,6FH6FH,77H77H,7CH7CH,39H39H,5EH5EH,79H79H,71H71H6.4 6.4 外部设备中断的接入外部设备中断的接入n前例中,中断信号用拨动开关模拟前例中,中断信号用拨动开关模拟n实用中,外来中断信号(低电平实用中,外来中断信号(低电平/ /下降沿)下降沿) 单片机单片机INTxINTx* *引脚引脚 每个中断源有固定的

26、中断服务程序的入口地址每个中断源有固定的中断服务程序的入口地址( (称矢称矢量地址或向量地址量地址或向量地址) )。当。当CPUCPU响应中断以后单片机内部响应中断以后单片机内部硬件保证它能自动的跳转到该地址。因此,此地址是硬件保证它能自动的跳转到该地址。因此,此地址是应该熟记的,在汇编程序中,中断服务程序应存放在应该熟记的,在汇编程序中,中断服务程序应存放在正确的向量地址内正确的向量地址内 ( (或存放一条转移指令或存放一条转移指令) )。 6.5 6.5 小小 结结(1 1)中断技术是实时控制中的常用技术,)中断技术是实时控制中的常用技术,5151系列单系列单片机有三个内部中断,二个外部中

27、断。所谓外部中断片机有三个内部中断,二个外部中断。所谓外部中断就是在外部引脚上有产生中断所需要的信号。就是在外部引脚上有产生中断所需要的信号。(2 2)单片机的中断是靠内部的寄存器管理的,这就是)单片机的中断是靠内部的寄存器管理的,这就是中断允许寄存器中断允许寄存器IEIE,中断优先权寄存器中断优先权寄存器IP IP ,必须在必须在CPUCPU开中断即开全局中断开关开中断即开全局中断开关EAEA,开各中断源的中断开各中断源的中断开关,开关,CPUCPU才能响应该中断源的中断请求,其中缺一才能响应该中断源的中断请求,其中缺一不可。不可。(3 3)从程序表面看来,主程序和中断服务程序好象是)从程序表面看来,主程序和中断服务程序好象是没有关连的,只有掌握中断响应的过程,才能理解没有关连的,只有掌握中断响应的过程,才能理解中断的发生和返回,看得懂中断程序中断的发生和返回,看得懂中断程序, ,并能编写高质并能编写高质量中断程序。量中断程序。(4 4)本章重点应掌握中断结构,中断响应过程)本章重点应掌握中断结构,中断响应过程, ,并能并能熟练编制中断程序。熟练编制中断程序。作业作业n6.3n6.4n6.5n6.6

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号