《单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新4》由会员分享,可在线阅读,更多相关《单片机原理及应用教程 第3版 教学课件 ppt 作者 刘瑞新4(13页珍藏版)》请在金锄头文库上搜索。
1、第4章 MCS-51单片机的中断系统 4.1 中断的概念 4.2 MCS-51中断系统结构及中断控制 4.3 MCS-51中断响应过程 4.4 中断响应时间 4.5 中断响应后中断请求的撤除 4.6 中断系统应用实例 4.7 中断程序举例,4.1 中断的概念 4.1.1 中断及中断源 中断是指在CPU正在执行某一段程序的过程中,如果外界或内部发生了紧急事件,要求CPU暂停正在运行的程序转而去处理这个紧急事件,待处理完后再回到原来被停止执行程序的间断点,继续执行原来被打断了的程序的过程。 实现这种功能的机构称为中断系统,产生中断的请求源叫中断源。 4.1.2 中断嵌套 当CPU正在处理一个优先级
2、低的中断请求的时候,如果发生另一个优先级比它高的中断请求,CPU暂停正在处理的中断源的处理程序,转而处理优先级高的中断请求,待处理完之后,再回到原来正在处理的低级中断程序,这种高级中断源能中断低级中断源的中断处理称为中断嵌套。,4.2 MCS-51中断系统结构及中断控制 4.2.1 中断源和中断请求标志 1. 中断源 MSC-51系列单片机的5个中断源,包括2个外部中断源和3个内部中断源。 2个外部中断源是外部中断0和外部中断1 ; 3个内部中断源是定时器/计数器0溢出中断、定时器/计数器1溢出中断、串行口的发送和接收中断(TI和RI)。 2. TCON寄存器 TCON是定时器/计数器0和1(
3、T0、T1)的控制寄存器,同时也用来锁存T0、T1的溢出中断请求标志和外部中断请求标志。 3. SCON寄存器 SCON为串行口控制寄存器,其中的低两位用作串行口中断请求标志。 4.2.2 中断允许控制 在MCS-51单片机中断系统中,中断的允许或禁止是由片内的中断允许寄存器IE控制的。,4.2.3 中断优先级控制 MCS-51系列单片机的中断优先级是由中断优先级寄存器IP控制的。 MSC-51单片机中的中断系统,应遵循以下基本准则: (1) 低优先级中断可被高优先级中断请求所中断,高优先级中断不能被低优先级中断请求所中断。 (2) 同级的中断请求不能打断已经执行的同级中断。 4.3 MCS-
4、51中断响应过程 MCS-51系列单片机的中断响应过程可分为中断响应、中断处理和中断返回三个阶段。 4.3.1 中断响应 CPU响应中断的条件主要有以下几点: (1)有中断源发出中断请求; (2)中断总允许为EA=1,即CPU开中断; (3)请求中断的中断源的中断允许位为1,在下列任何一种情况存在时,中断请求将被封锁。 (1) CPU正在处理同级的或高一级的中断; (2) 当前周期(即查询周期)不是执行当前指令的最后一个周期,即要保证把当前的一条指令执行完才会响应; (3) 当前正在执行的指令是返回(RETI)指令或对IE、IP寄存器进行访问的指令,执行指令后至少再执行一条指令才会响应中断。
5、4.3.2 中断处理 CPU从执行中断处理程序第一条指令开始到返回指令RETI为止,这个过程称为中断处理或中断服务。中断处理一般包括保护现场、处理中断源的请求以及恢复现场三部分内容。 4.3.3 中断返回 中断返回是指执行完中断处理程序的最后指令RETI之后,程序返回到断点,继续执行原来的程序。,4.4 中断响应时间 在不同的情况下,CPU响应中断的时间是不同的。 4.5 中断响应后中断请求的撤除 中断源提出中断申请,在CPU响应此中断请求后,该中断源的中断请求在中断返回之前应当撤除,以免引起重复中断,被再次响应。 4.6 中断系统应用实例 4.6.1 单步操作的中断实现 中断系统的一个重要特
6、性即中断请求只有在一条指令执行完之后才会再次得到响应,并且正在响应中断时,同级中断将被屏蔽,利用这个特点即可实现单步操作。 例如,把外部中断0设置为电平触发方式。在某一中断服务程序的末尾加上以下几条指令: JNB P3.2, $ ; 在变高前原地等待 JB P3.2, $ ; 在变低前原地等待 RETI ; 返回并执行一条指令,4.6.2 外部中断源扩展 1. 利用定时器扩展外部中断源 把8051的两个定时器/计数器(T0和T1)选择为计数器方式,每当P3.4(T0)或P3.5(T1)引脚上发生负跳变时,T0和T1的计数器加1。利用这个特性,可以把P3.4和P3.5引脚作为外部中断请求源,而定
7、时器的溢出中断作为外部中断请求标志。 例如,设T0为模式2外部计数方式,时间常数为0FFH,允许中断。其初始化程序为: MOV TMOD, #06H ; 设T0为模式2,计数器方式工作 MOV TL0, #0FFH ; 时间常数0FFH分别送入TL0和TH0 MOV TH0, #0FFH MOV IE, #82H ; 允许T0中断 SETB TR0 ; 启动T0计数 ,2. 中断加查询方式 利用MCS-51单片机的两条外部中断输入线中的任何一条,通过“与”的关系连接多个外部中断源,无论哪个外部装置提出中断请求,都会使 或 端电平发生变化,究竟是哪个外部装置造成中断,可以通过查询相应I/O口引脚
8、的逻辑电平获知,具体电路如图4-8所示。 这四个中断源的优先级由软件排定。下面是有关程序,中断优先级按装置14由高到低顺序排列。 ORG 0003H LJMP INT0 INT0: PUSH PSW PUSH ACC JB P1.7, DV1 JB P1.6, DV2 JB P1.5, DV3,JB P1.4, DV4 GB: POP ACC POP PSW RETI DV1: ; 装置1中断服务程序 AJMP GB DV2: ; 装置2中断服务程序 AJMP GB DV3: ; 装置3中断服务程序 AJMP GB DV4: ; 装置4中断服务程序 AJMP GB,图4-8 多中断源,4.7
9、中断程序举例 【例4-2】 电路如图4-9所示。单片机读P1.0的状态,把这个状态送到P1.7的指示灯去,当P1.0为高电平,指示灯亮;当P1.0为低电平时,指示灯不亮。要求用中断控制这一输入/输出过程,每请求中断一次,完成一个读写过程。,图4-9 外部中断实例,程序如下: ORG 0000H AJMP MAIN ; 转到主程序 ORG 0003H ; 外部中断0矢量地址 AJMP INT-0 ; 转往中断服务子程序 ORG 0050H ; 主程序 MAIN: SETB IT0 ; 选择边沿触发方式 SETB EX0 ; 允许中断 SETB EA ; CPU开中断 HERE: SJMP HERE ; 主程序踏步 ORG 0200H ; 中断程序入口 INT-0: MOV A, #0FFH MOV P1, A ; 设输入态 MOV A, P1 ; 读开关状态 RR A ; 送P1.0到P1.7 MOV P1, A ; 驱动二极管发光 RETI ; 中断返回 END,本章结束 谢谢使用,