第四章中断概要

上传人:今*** 文档编号:110048964 上传时间:2019-10-28 格式:PPT 页数:38 大小:1.11MB
返回 下载 相关 举报
第四章中断概要_第1页
第1页 / 共38页
第四章中断概要_第2页
第2页 / 共38页
第四章中断概要_第3页
第3页 / 共38页
第四章中断概要_第4页
第4页 / 共38页
第四章中断概要_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《第四章中断概要》由会员分享,可在线阅读,更多相关《第四章中断概要(38页珍藏版)》请在金锄头文库上搜索。

1、第4章 单片机中断系统及定时/计数器,什么是中断,2,任何一件事情的发生都会中断小林看电视的进程而去响应和处理事件。例如,邮递员上门送信,小林必须去开门签收信件,当事件处理完后,小林回去接着看电视。,中断源 可以引起中断的事件称为中断源。单片机中也有一些可以引起中断的事件,8051中一共有5个中断源:两个外部中断(p3.2,p3.3),两个计数器/定时器中断(P3.4,P3.5),一个串行口中断(p3.0,p3.1)。,5个独立中断源所对应的向量地址如表5-2所示。,表5-2 中断源的入口地址,图5-1 中断响应的过程,中断控制及相关的SFR,中断允许控制:IE,中断请求标志:TCON及SCO

2、N,中断优先控制:IP,中断触发方式控制:TCON(IT0和IT1),中断允许寄存器IE( Interrupt Enable) 在8051单片机中断系统中,中断的允许或禁止是由8位中断允许寄存器IE来控制的。中断允许寄存器IE(SFR地址:0A8H)各位的定义如表5-3所示。,表5-3 中断允许寄存器IE,EA:总允许位(一级控制)。EA=0时,禁止一切中断;EA=1时,中断开放。 ES:ES=1时允许RI 、TI引发中断,否则禁止串口中断. ET1、ET0:定时器T1、T0允许位,ET1=1或ET0=1时,允许TF1或TF0引发中断,否则禁止相应的定时器中断。 EX1、EX0:外部中断1/外

3、部中断0,允许位EX1 =1或 EX0 =1时允许相应的外部中断,否则禁止相应的外部中断。,中断一例,9,10,ORG 00H ; 起始地址00H MAIN: MOV IE, #84H ; 使能外部中断1 GREEN: CLR P0.0 ; 点亮绿色发光二极管D1 JMP GREEN ; 循环,; 中断服务子程序段,熄灭绿色发光二极管D1,点亮红色D2 ORG 13H; 外部中断1的中断服务子程序起始地址为13H EXT1_RED: SETB P0.0 ; 熄灭绿色发光二极管D1 CLR P0.1 ; 点亮红色D2 D1: MOV R4, #20 ; 延时程序100ms D2: MOV R5,

4、 #248 D3: MOV R6, #248 DJNZ R6, $ DJNZ R5, D3 DJNZ R4, D2 SETB P0.1 ; 熄灭红色发光二极管D2 RETI ; 中断服务子程序结束 END ; 程序结束,外部中断信号输入端/INT0和 /INT1,11,12,外部中断的触发方式 使单片机产生外部中断的信号有两种方式,一是低电平触发,二是下降沿触发。 当单片机上电复位后,使能外部中断时就默认以低电平方式触发。在低电平触发模式下,外部中断信号输入端/INT0和/INT1出现低电平就会触发外部中断0或外部中断1。,外部中断的下降沿触发,13,除了低电平触发外,边沿触发也是一种常用的触

5、发外部中断的模式。在该模式下,/INT0端或/INT1端出现下降沿即可使单片机产生中断。与低电平触发不同,下降沿触发方式不是单片机默认的中断触发方式,所以需要指令来设置单片机工作在该模式下。方法是通过寄存器TCON中的IT0位和IT1位来分别控制/INT0和/INT1触发方式。,TCON的外部中断标志,IT0/IT1(TCON.0/2),外部中断0/1触发方式控制位。 当IT0=0时,为电平触发方式。 当IT0=1时,为边沿触发方式(下降沿有效)。 IE0/1(TCON.1/3),外部中断0/1中断请求标志位。 外部有中断请求时,硬件使IE1/0置1,硬件清0。,【例5-2】请写出INT1为低

6、电平触发的中断系统初始化程序。 解:(1)采用位操作指令。 SETB EA SETB EX1 ;开INT1中断 CLR IT1 ;令INT1为电平触发 (2)采用字节型指令。 MOV IE,#84H ;开INT1中断 ANL TCON,#0FBH ;令INT1为电平触发,中断优先级处理 假如你正在看书,电话铃响了,同时又有人按门铃,你该先做哪样事呢?如果你正是在等一个很重要的电话,你一般不会去理会门铃的;反之,如果你正在等一个重要的客人,则可能就不会去理会电话。如果不是这两者(即不等电话,也不是等人上门),你可能会按你通常的习惯去处理。总之,这里存在一个优先级的问题。单片机中也是如此,也有优先

7、级的问题。,中断源的自然优先级 MCS-51单片机有5个独立的中断源,它们可以利用专用寄存器IP设置不同的优先级。若都被设置成同一优先级,5个中断源的自然优先级由硬件形成,排列如表5-1所示。,2) 中断的优先级控制寄存器 中断优先级寄存器IP(SFR地址:0B8H)各位的定义如表5-4所示。,PS:串行口中断优先级设定位。 PT1、PT0:定时器T1、T0中断优先级设定位。 PX1、PX0:外部中断1、外部中断0的中断优先级设定位。 以上各位若被置1,则相应的中断将被设置为高优先级中断;若被置0,则相应的中断将被设置为低优先级中断。,图5-5 中断嵌套流程,【例5-4/4-3】P1口作输出口

8、,正常时控制8只灯(P1口输出低电平时灯被点亮)每隔0.5s全亮全灭一次;按下开关1,8只灯从右向左依次点亮;按下开关2,8只灯从左向右依次点亮。开关1的低电平脉冲信号作为外部中断信号由INT0 (P3.2)管脚输入,开关2的低电平信号作为外部中断信号由INT1 (P3.3)管脚输入。,ORG 0000H ;程序入口 LJMP MAIN ;转向主程序 ORG 0003H ;外部中断0的入口地址 LJMP INT_0 ;转向外部中断0中断服务程序 ORG 0013H ;外部中断1的入口地址 LJMP INT_1 ;转向外部中断1中断服务程序,ORG 0030H MAIN: MOV SP, #80

9、H MOV IE,#85H;允许外部中断0、外部中断1 SETB PX1 ;外部中断1为高优先级 SETB IT0 ;外部中断0为边沿触发 MOV A, #00H LP1: MOV P1, A LCALL DELAY CPL A SJMP LP1 ORG 0100H INT_1: PUSH ACC ; 外部中断1中断服务程序 PUSH PSW SETB RS1 ;选择第2组工作寄存器 CLR RS0 MOV R2,#07H MOV A,#7FH ; 灯点亮的初始状态,NEXT1:MOV P1, A LCALL DELAY RR A DJNZ R2,NEXT1 POP PSW POP ACC R

10、ETI INT_0:PUSH ACC ;外部中断0中断服务程序 PUSH PSW SETB RS1 ;选择第2组工作寄存器 CLR RS0 MOV R2,#07H MOV A,#7FH ;灯点亮的初始状态 NEXT0:MOV P1,A LCALL DELAY RL A DJNZ R2,NEXT0 POP PSW POP ACC RETI,DELAY:MOV R3,#250 ;延时0.5s程序 DEL2:MOV R2, #248 NOP DEL1:DJNZ R2, DEL1 DJNZ R3, DEL2 RET END,编写中断服务程序时还需注意以下几点。 (1) 各中断源的中断入口地址之间只相隔

11、8B,容纳不下普通的中断服务程序,因此,在中断入口地址单元通常存放一条无条件转移指令,可将中断服务程序转至存储器的其他任何空间。 (2) 若要在执行当前中断程序时禁止其他更高优先级中断,需先用软件关闭CPU中断,或用软件禁止相应高优先级的中断,在中断返回前再开放中断。,中断请求的撤除 CPU响应中断请求后即进入中断服务程序,在中断返回前,应撤除该中断请求,否则会重复引起中断而导致错误。MCS-51单片机各中断源中断请求撤销的方法各不相同 1)定时器中断请求的撤除 对于定时器0或定时器1溢出中断,CPU在响应中断后即由硬件自动清除其中断标志位TF0或TF1,无需采取其他措施。 2)串行口中断请求

12、的撤除 对于串行口中断,CPU在响应中断后,硬件不能自动清除中断请求标志位TI、RI,必须在中断服务程序中用软件将其清除。,3)外部中断请求的撤除 外部中断可分为边沿触发型和电平触发型。 对于边沿触发的外部中断0或1,CPU在响应中断后由硬件自动清除其中断标志位IE0或IE1,无需采取其他措施。 对于电平触发的外部中断,其中断请求撤除方法较复杂。因为对于电平触发外中断,CPU在响应中断后,硬件不会自动清除其中断请求标志位IE0或IE1,同时,也不能用软件将其清除,所以,在CPU响应中断后,应立即撤除INT0或INT1引脚上的低电平;否则,就会引起重复中断而导致错误。,5.4 外部中断源的扩展,

13、5.4.1 用定时器作外部中断源 MCS-51单片机有两个定时器,如在某些应用中不被使用,则它们的中断可作为外部中断请求使用。此时,可将定时器设置成计数方式,计数初值可设为满量程,则它们的计数输入端T0(P3.4)或T1(P3.5)引脚上发生负跳变时,计数器加1便产生溢出中断。利用此特性,可把T0脚或T1脚作为外部中断请求输入线,而计数器的溢出中断作为外部中断请求标志。,【例5-1】将定时器T0扩展为外部中断源。 解:将定时器T0设定为方式2(自动恢复计数初值),TH0和TL0的初值均设置为FFH,允许T0中断, CPU开放中断,部分源程序如下: MOV TMOD,#06H MOV TH0,#

14、0FFH MOV TL0,#0FFH SETB TR0 SETB ET0 SETB EA ,5.4.2 中断和查询相结合 利用两根外部中断输入线(INT0引脚),每一中断输入线可以通过或非的关系连接多个外部中断源,同时,利用并行输入端口线作为多个中断源的识别线,其电路原理如图5-8所示。,中断服务程序如下: ORG 0003H ;外部中断0入口 AJMP INT_0 ;转向中断服务程序入口 INT_0: PUSH PSW ;保护现场 PUSH ACC JB P1.0,EXINT0 ;中断源查询并转相应中断程序 JB P1.1,EXINT1 JB P1.2,EXINT2 JB P1.3,EXIN

15、T3,5.6 实 践 训 练,任务:工业顺序控制 1. 实现任务 工业顺序控制,由P1.01.6控制注塑机的7道工序,现模拟控制7只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,高电平启动。P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定6道工序只有1位输出,第七道工序3位有输出。,5.6 实 践 训 练,4. 实施过程 (1)硬件设计 P3.4接K1,P3.3接K2(外中断1),P1.0P1.6分别接发光二极管D1D7,P1.7接LM386正向输入端,通过LM386功率放大后5脚输入接扬声器,由它发出报警声音。硬件设计如图5-12所

16、示。,2) 软件设计 根据要求,程序设计如下: ORG 0000H LJMP PO10 ORG 0013H ;外部中断1的入口地址 LJMP PO16 ORG 0080H PO10:MOV P1, #7FH ORL P3, #00H PO11:JNB P3.4,PO11 ;开工吗? MOV IE, #84H MOV IP, #04H MOV PSW,#00H ;初始化 MOV SP, #53H,PO12:MOV P1,#7EH ;第一道工序 ACALL PO1B MOV P1,#7DH ;第二道工序 ACALL PO1B MOV P1,#7BH ;第三道工序 ACALL PO1B MOV P1,#77H ;第四道工序 ACALL PO1B MOV P1,#6FH ;第五道工序 ACALL PO1B MOV P1,#5FH ;第六道工序 ACALL PO1B MOV P1,#0FH ;第七道工序 ACALL PO1B SJMP PO12 PO16:MOV B,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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