中断系统与定时计数器各个位的定义

合集下载

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0

第05章 MCS-51单片机的中断与定时(1-4)

第05章 MCS-51单片机的中断与定时(1-4)

2
1
TH0
;P1.0输出“0” ;P1.0输出“1”
5.2 MCS-51单片机的中断系统
五、外中断应用举例
1. 中断初始化程序
设置外中断源的触发方式 设置中断允许寄存器IE 设置中断优先级寄存器IP
2. 中断服务程序
保护现场 中断处理 恢复现场
23/65
5.2 MCS-51单片机的中断系统
【例5-3】 设外部中断0为下降沿触发方 式,高优先级,试编写中断初始化程序
5.2 MCS-51单片机的中断系统
【例5-4】 将单脉冲接到外中断0(INT0)引脚,利 用P1.0作为输出,经反相器接发光二极管。编写程 序,每按动一次按钮,产生一个外中断信号,使发 光二极管的状态发生变化,由亮变暗,或反之
P1.0 单脉冲 发生器 INT0
1
+5V
8031
26/65
5.2 MCS-51单片机的中断系统
串口:0023H
20/65
5.2 MCS-51单片机的中断系统
四、中断请求的撤除
1.定时/计数器中断请求标志TF0/TF1会自动撤除 2.串行口中断请求标志TI/RI要用指令撤除
CLR TI ;清TI标志位 CLR RI ;清RI标志位
3.负脉冲触发的外中断请求标志IE0/IE1会自动撤除 4.低电平触发的外中断请求信号需要外加电路撤除
下次课前请预习5.3节
30/65
5.3 51单片机的定时器/计数器
MCS-51单片机内部有两个16位定时/计数器 T0和T1,简称定时器0和定时器1
在特殊功能寄存器TMOD和TCON的控制下, 它们既可以设定成定时器使用,也可以设定 成计数器使用
定时/计数器有4种工作方式,具有中断功能, 可以完成定时、计数、脉冲输出等任务

52单片机中断

52单片机中断

52单片机中断52单片机一共有6个中断源:INTO0--外部中断0,由P3.2端口线引入,低电平或下降沿引起。

INTO1--外部中断1,有P3.3端口线引入,低电平或下降沿引起。

T0--定时器/计数器0中断,由T0计数器计满回零引起。

T1--定时器/计数器1中断,由T1计数器计满回零引起。

T2--定时器/计数器2中断,由T2计数器计满回零引起。

TI/RI--串口中断,串行端口完成一帧字符发送/接收后引起。

52单片机的中断级别单片机在使用中断功能时,通常需要设置两个与中断有关的寄存器:①中断允许寄存器IE②中断优先级寄存器IP一,中断允许寄存器 IE功能:EA-- 全局中断允许位EA=1 打开全局中断控制,在此条件下,有各个中断控制位确定相应中断的打开或关闭EA=0 关闭全部中断ET2 定时器/计数器2中断允许位ET2=1 打开T2中断ET2=0 关闭T2中断ES 串行中断允许位ET1 定时器1中断允许位EX1 外部中断1允许位ET0 定时器/计数器0中断允许位EX0 外部中断允许位二,中断优先级寄存器IPPS 串行优先级控制位PS=1 串行口中断定义为高优先级中断PS=0 串行口中断定义为低优先级中断PT1 定时器/计数器1优先级控制位PX1 外部中断1中断优先级控制位PT0 定时器/计数器0优先级控制位PX0 外部中断0中断优先级控制位注意:定时器系统是单片机内部一个独立的硬件部分,它与CPU和晶振通过内部某些控制线连接并相互作用,CPU一旦设置开始启动定时功能后,定时器便在晶振的作用下自动开始计时,当定时器计数计满后,会产生中断,即通知CPU该如处理。

单片机在使用定时器/计数器功能时,通常需要设置两个与定时器有关的寄存器:①工作方式寄存器TMOD②控制计数器TCON一,工作方式寄存器TMODGATE 门控位GATE=0 定时器/计数器启动与停止仅受TCON寄存器中TRX(X=0,1)来控制GATE=1 定时器/计数器启动与停止由TCON寄存器中TRX(X=0,1)和外部中断引脚(INT0或INT1)上的电平状态来共同控制C/T 定时器模式和计数器模式选择位(1为计数器模式,0为定时器模式)M1M0 工作方式选择位每个定时器有4个工作方式,他们由M1M0设定二,定时器/计数器控制寄存器TCONIF1 定时器1溢出标志位TR1 定时器1运行控制位由软件清零关闭定时器1,当GATE=1,且INT1为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1IE1 外部中断1请求标志当IT0=1时为电平触发方式,每个机器周期的S5P2采样INT1引脚,若INT1脚为低电平。

单片机教程 第6章-中断系统

单片机教程 第6章-中断系统

TCON位功能:
TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。
③ IE1 —— 外中断中断请求标志 当P3.3引脚信号有效时,IE1=1 ④ IE0 —— 外中断中断请求标志 当P3.2引脚信号有效时,IE0=1
IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。
=1:在INT0/INT1端申请中断的信号负跳变有效.
6.2
51单片机的中断系统
3、串行口中断设定
串行控制寄存器SCON控制字,字节地址:98H
SCON 位名称 位地址 功能 D7 D6 — — — — — — D5 — — — D4 — — — D3 — — — D2 — — — D1 TI 99H 串行发送 中断标志 D0 RI 98H 串行接收 中断标志
6.1
中断的概念
6.1.3 中断的分类 可分为三类: * 可屏蔽中断:由CPU的可屏蔽中断引脚INT引起的 中断。 * 非屏蔽中断:由CPU的非屏蔽中断引脚NMI引起的 中断(8086CPU)。 * 软件中断:由中断指令引起的中断(8086CPU)。 • 51单片机的中断可以分为:
①外部中断,由外部可屏蔽中断和外部计数器中断组成; ②内部中断,由内部定时器、串口传输中断等组成。
输入引脚。允许用户设定外部中断源以低电平或 者是负跳变方式触发。
6.2
51单片机的中断系统
②定时器溢出中断源:内部中断,51内部有两
个16位定时/计数器,它们由内部定时脉冲(主脉 冲12分频)或外部引脚T0、T1输入的外部计数脉 冲计数。当计数值溢出时,产生中断请求。这两 个16位定时/计数器的初值可由用户设定。

c单片机中断详解

c单片机中断详解
被任何中断源所中断

例62 设置IP寄存器的初始值;使2个外中断请求 为高优先级;其它中断请求为低优先级
1用位操作指令 SETB PX0 ;2个外中断为高优先级 SETB PX1 CLR PS ;串口为低优先级中断 CLR PT0 ;T0低优先级中断 CLR PT1 ;T1低优先级中断
响应中断请求的条件
四 中断返回
▪中断返回由专门的中断返回指令 RETI来实现
五 中断请求的撤消 2 外部中断请求的撤消 1跳沿方式外部中断请求的撤消是自 动撤消的 2电平方式外部中断请求的撤消
六 外部中断的响应时间 外部中断的最短的响应时间为3
个机器周期:
外部中断响应的最长的响应时间为8个机 器周期
注意:如果已在处理同级或更高级中断; 响应时间无法计算
在一个单一中断的系统里;MCS51单片机对 外部中断请求的响应的时间总是在3~8 个机器周期之间
补充:中断服务程序的设计
一 中断服务程序设计的任务 基本任务:
1设置中断允许控制寄存器IE 2设置中断优先级寄存器IP 3对外中断源;是采用电平触发还是跳沿触发 4编写中断服务程序;处理中断请求 前3条一般放在主程序的初始化程序段中
● TF0—T0溢出中断请求标志位 T0 计 数 溢 出 时 ; 由 硬 件 置 1TF0; 向 CPU 申 请 中
断;CPU响应TF0中断时;硬件自动清0TF0;TF0也可由 软件清0 ● TF1—T1的溢出中断请求标志位;功能和TF0类似 TR1 TR0 2个位与中断无关 当MCS51复位后;TCON 被清0;则CPU关中断;所有中断请求被禁止
3 关于C51中断函数的几点说明续
• C51编译器对中断函数编译时会自动在程序的 开始和结束处加上如下内容:开始处对ACC B DPH DPL和PSW入栈;结束时出栈 中断函 数未加using n修饰符时;开始处还要将R0R1 入栈;结束时出栈 如果中断函数加using n修 饰符;则在开始将PSW入栈后还要修改中PSW 的工作寄存器选择位RS0和RS1

定时计数器详解

定时计数器详解

mcs-51单片机计数器定时器详解【1】80C51单片机内部设有两个16位的可编程定时器/计数器。

可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。

在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。

:从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。

其访问地址依次为8AH-8DH。

每个寄存器均可单独访问。

这些寄存器是用于存放定时或计数初值的。

此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。

这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。

TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。

当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。

定时计数器的原理:16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。

当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。

显然,定时器的定时时间与系统的振荡频率有关。

因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。

如果晶振为12MHz,则计数周期为:T=1/(12×106)Hz×1/12=1μs这是最短的定时周期。

若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。

当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。

计数器在每个机器周期的S5P2期间采样引脚输入电平。

若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。

《单片机应用技术》000-9(周君芝)课件 项目三 中断系统与定时计数器的应用

《单片机应用技术》000-9(周君芝)课件 项目三  中断系统与定时计数器的应用

3.1.3 中断系统的结构
IE0: 外部中断 INT0 的请求标志位。当CPU检测到外部中断请求时,该标志位置“1”;当
CPU转向中断服务程序时,由硬件自动置“0”(只适用于边沿触发方式)。 IT1和IE1:
外部中断 INT1 的触发方式控制位和请求标志位,其含义与IT0和IE0相同。
3.1.3 中断系统的结构
在电平触发方式中,当CPU转向中断服务程序时,不能自 动清除IE标志位,也不能由软件进行清除。因此应在中断返回 前撤销引脚上的低电平,否则就会产生CPU多次响应一次中断 的错误。
3.1.2 中断的特点
中断的特点主要 有分时操作、实 时处理、故障处
理等。
分时操作 实时处理
故障处理
只有当服务对象向CPU发出中断请求时,CPU才去 为它服务,无中断请求时CPU正常工作,这样单片机可 以为多个对象服务,从而大大地提高了CPU的工作效率。
利用中断技术,各个服务对象可以根据需要随时 向CPU发出中断请求,CPU可及时发现和处理中断请 求并为之服务,以满足实时控制的要求。
位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
功能
用于定时/计数器
用于中断
TCON的位名称、位地址及功能
IT0: 外部中断 INT0 的触发方式控制位,由软件进行置“1”和置“0”。当IT0=1时,为
边沿触发方式(即当引脚P3.2出现下降沿脉冲信号时,中断请求有效);当IT0=0时, 为电平触发方式(即当引脚P3.2为低电平信号时,中断请求有效)。
1.中断源
向CPU发出中断请求的信号称为中断源。51系列单片机中有5个中断源,其中2个外部中 断源,3个内部中断源,具体如下。
INT0 外部中断,由引脚

中断控制

中断控制
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF0/TF1:定时器溢出中断申请标志位(由硬件自动置位)。 =0:定时器未溢出; =1:定时器溢出(由全“1”变成全“0”)时由硬件自动置 位,申请中断,中断被CPU响应后由硬件自动清零。
TR0/TR1:定时器运行启停控制位(可由用户通过软件设置 )。
二.51单片机的中断系统
8051单片机提供了5个中断源,2个中断优先级控制,可实 现2个中断服务嵌套。可通过程序设置中断的允许或屏蔽,设 置中断的优先级。 1.8051的中断源 8051允许5个中断源: (1)外部中断源(中断标志为IE0和IE1 ) 由 INT0 ( P3.2 )端口线引入,低电平或下降沿引起。 由 INT1 ( P3.3 )端口线引入,低电平或下降沿引起。 (2)定时器/计数器中断源 (中断标志为TF0、TF1和TI/RI ) T0:定时/计数器0中断,由T0回零溢出引起。 T1:定时/计数器1中断,由T1回零溢出引起。 (3)串口中断源 (中断标志为TI/RI ) TI/RI:串行I/O中断,完成一帧字符发送/接收引起。
void ISR_Key(void) interrupt 0 using 1 { LED = ~ LED; //K1按下触发一次,P0.0取反一次 }
④ 若正在执行RETI,或正在访问IE或IP寄存器,则必须执行完 当前指令的下一条指令。后方能响应中断。
(2)中断响应的过程
中断过程包括中断请求、中断响应、中断服务、中断返 回四个阶段。 中断请求:中断源将相应请求中断的标志位置 “1”,表示发出 请求,并由CPU 查询。 中断响应:在中断允许条件下相应中断。断点入栈→撤除中断 标志→关闭低同级中断允许→中断入口地址送PC。 这些工作 都是由硬件自动完成的。 中断服务:根据入口地址转中断服务程序,包含保护现场、执 行中断主体、恢复现场。 中断返回:执行中断返回RETI指令→断点出栈→开放中断允许 →返回原程序。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章中断系统与定时/计数器本章概要及学习目标本章介绍单片机中断系统的概念及89C51三种中断类型的工作方式;介绍定时/计数器的结构、类型及控制方式。

并通过实训介绍中断技术、定时/计数器的具体应用及中断服务子程序的基本编程方法。

通过对本章的学习,读者应掌握和了解以下知:1.89C51中断系统的概念及中断系统的功能2.特殊功能寄存器TCON、SCON、IE、IP、TH、TL和TMOD各控制位的功能及设置方法3.定时/计数器的结构、两种工作方式、四种工作模式及应用4.中断服务子程序的结构及基本编程方法5.MCS-51单片机外部中断源的扩展方法5.1 中断系统中断系统是计算机的重要组成部分。

实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。

中断系统的应用大大提高了计算机的工作效率。

中断技术的应用使计算机的功能更强,效率更高。

5.1.1 中断的概念1.中断技术中断是指CPU正在执行程序的过程中,CPU以外发生的某一事件(如芯片引脚一个电平的变化、一个脉冲沿的发生或定时/计数器的溢出等)向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。

这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。

例5.1中,50ms定时时间到则发生定时器0溢出,向CPU提出中断请求,CPU响应中断请求,就暂时终止当前执行的程序,转去执行相应的处理程序ISSR(Interrupt Service Subroutine)。

“中断”之后所执行的相应的处理程序通常称之为中断服务或中断处理子程序,原来正常运行的程序称为主程序。

主程序被断开的位置(或地址)称为“断点”。

引起中断的原因或能发出中断申请的来源,称为“中断源”。

中断源要求服务的请求称为“中断请求”(或中断申请)。

例5.1中的中断服务子程序是ISSR程序,主程序中的断点(读者自行查找),中断源是定时器0,在50ms定时时间到后由硬件置位TCON寄存器中的TF0位,然后自动向CPU发出中断请求。

调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排好的,而何时调用中断服务程序事先无法确定,因为“中断”的发生是由外部因素随机决定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成的。

对这个中断全过程的分析,研究及实现方法称为中断技术。

2.中断技术的应用采用中断技术能实现以下的功能:(1)并行处理有了中断技术,就解决了快速的CPU与慢速外设之间的速度匹配问题,CPU可以与多台外设并行工作,CPU可分时与多台外设进行信息交换。

CPU在启动外设后,便继续执行主程序;而外设被启动后,开始进行准备工作。

当外设准备就绪时,就向CPU发出中断请求,CPU响应该中断请求并为其服务完毕后,返回到原来的断点处继续执行主程序。

外设在得到服务后,也继续进行自己的工作。

CPU和外设并行工作。

由于CPU与外设速度的悬殊差异,CPU可以使多个外设同时工作,并分时为多台外设提供服务。

(2)实时处理在单片机实时控制中,请求CPU提供服务是随机发生的。

有了中断系统,CPU就可以立即响应并进行相应的处理。

从而实现了实时处理。

(3)故障处理单片机系统工作时会出现一些突发故障,如电源断电、存储器出错、运算溢出等。

有了中断系统,当出现故障时,CPU可及时转去执行故障处理程序,自行处理故障而不必停机。

在单片机应用系统中,为了实现上述中断功能而配置的软件与硬件,便称为中断系统。

5.1.2 中断系统的硬件结构和中断源1.中断系统的硬件结构中断过程是在硬件基础上再配以相应的软件而实现的,不同的计算机,其硬件结构和软件指令是不完全相同的,因此,中断系统也是不尽相同的。

89C51中断系统的结构示意图如图5. 1. 1所示。

图5. 1. 1 89C51中断系统的结构示意图由图可知,89C51单片机有5个中断源,分别为外部中断0 INT0、外部中断1INT1、定时器0溢出中断请求TF0、定时器1溢出中断请求TF1和串行中断请求R I或TI,四个用于中断控制寄存器,分别为定时/计数器及外部中断控制寄存器TCON(用六位)、串行口控制寄存器SCON(用两位)、中断允许控制寄存器IE及中断优先级控制寄存器IP。

5个中断源有两个优先级,每个中断源可以由中断优先级控制寄存器IP编程设置为高优先级或低优先级中断,同级中断源的中断先后由顺序查询逻辑电路决定。

5个中断源分别对应5个固定的中断入口地址。

2.中断源中断源是中断申请的来源。

89C51单片机的5个中断源见表5. 1. 15.1.3 中断控制89C51通过对4个特殊功能寄存器TCON,SCON,IE和IP的设置来进行中断允许、中断申请方式和中断优先级的控制。

1.定时器/计数器及外部中断控制寄存器TCONTF1:定时器/计数器T1的溢出中断请求标志位。

当启动T1计数后,T1从预先设置的初值开始加1计数。

当计数器最高位产生溢出时,由硬件使TF1置1,并向CPU发出中断请求。

当CPU响应中断时,由硬件使TF1清零。

TF0:定时器/计数器T0的溢出中断请求标志位,含义与TF1相同。

IE1:外部中断1的中断请求标志。

当检测到外部中断引脚P3.3上存在有效的中断请求信号时,由硬件使IE1置1。

当CPU响应该中断请求时,由硬件使IE1清零。

IE0:外部中断0的中断请求标志位。

其含义与IE1类同。

IT1:外部中断1的中断触发方式控制位。

IT1为0时,外部中断1为电平触发方式,若外部中断1的引脚P3.3为低电平,则使IE1置1,请求中断。

IT1为1时,外部中断1为边沿触发方式,若CPU检测到外部中断1的引脚P3.3有由高到低的负跳边沿时,则使IE1置1,请求中断。

IT0:外部中断0的中断触发方式控制位。

其含义与IT1类同。

TR1:为1时启动定时器/计数器T1,为0时停止定时器/计数器T1。

TR0:为1时启动定时器/计数器T0,为0时停止定时器/计数器T0。

2.串行口控制寄存器SCONTI:串行口发送中断请求标志。

当CPU发送完一串行数据后,此时SBUF寄存器为空,硬件使TI置1,请求中断。

CPU响应中断后,由软件对TI清零。

RI:串行口接收中断请求标志。

当串行口接收完一帧串行数据时,此时SBUF寄存器为满,硬件使RI置1,请求中断。

CPU响应中断后,用软件对RI清零。

其他几位的含义及用法见串行通信一章。

3. 中断允许控制寄存器IE。

EA:中断允许总控制位。

EA=0,禁止所有中断;EA=1,开放所有中断。

但是否允许各中断源的中断请求,还要取决于各中断源的中断允许控制位的状态。

ES:串行口的中断允许位。

ET1:定时器/计数器T1的中断允许位。

EX1:外部中断1 INT1 的中断允许位。

ET0:定时器/计数器T0的中断允许位。

EX0:外部中断0 INT0 的中断允许位。

以上5个中断允许控制位为0时,禁止中断,为1时允许中断。

4. 中断优先级控制寄存器IP。

89C51单片机设有两级中断优先级,通过对IP寄存器相应位的设置进行中断优先级的选择。

PSPT1:定时器/计数器T1中断优先控制位。

PX1:外部中断1优先级控制位。

PT0:定时器/计数器T0中断控制位。

PX0:外部中断0中断优先级控制位。

以上5个中断优先级控制位分别为“0”时,为低级中断,为“1”时为高级中断。

如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部顺序查询逻辑电路,按自然优先级顺序确定该响应哪个中断请求。

自然优先级由硬件形成,排列见表表5.1.4 中断响应1.响应中断的条件(1)有中断请求信号(2)中断允许开放即EA=1,且中断源对应的中断允许位置位。

(3)无同级或更高级中断正在服务。

(4)当前的指令周期已经结束。

(5)如果当前指令为RETI或访问IE和IP的指令,至少需要再执行完一条指令。

当满足以上5个条件时CPU将对中断请求进行响应。

2.中断响应过程如果中断响应条件满足,CPU就响应中断。

中断响应过程分为以下6个步骤:a)保护断点断点就是CPU响应中断时程序计数器PC的内容,它指示被中断程序的下一条指令的地址——断点地址。

CPU自动把断点地址压入堆栈,以备中断处理完毕后,自动从堆栈取出断点地址送入PC,然后返回主程序断点处,继续执行被中断的程序。

b)给出中断入口地址程序计数器PC自动装入中断入口地址(见表5. 2),执行相应的中断服务程序。

c)保护现场为了使中断处理不影响主程序的运行,需要把断点处有关寄存器的内容和标志位的状态压入堆栈区进行保护。

现场保护要在中断服务程序开始处通过编程实现。

d)中断服务执行相应的中断服务,进行必要的处理。

e)恢复现场在中断服务结束之后,返回主程序之前,把保存在堆栈区的现场数据从堆栈区中弹出,送回到原来的位置。

恢复现场也需要通过编程实现。

f)中断返回执行中断返回指令RETI,它将堆栈内容保存的断点地址弹给PC,程序则恢复到中断前的位置。

5.1.5 中断的嵌套MCS-51单片机有两个中断优先级。

当CPU正在执行中断服务程序,又有新的断源发出中断申请时,CPU要进行分析判断,决定是否响应新的中断。

若是同级中断源申请中断,CPU将不予理睬;若是高级中断源申请中断,CPU将转去响应新的中断请求,待高级中断服务程序执行完毕,CPU再转回低级中断服务程序。

这就是中断的嵌套。

二级中断嵌套程序执行过程如图图5.1.2 中断嵌套流程图5.1.6 中断系统应用实例例5-1:试利用MCS-51内部定时器以中断的方式通过P1.0输出只有两个状态电平的占空比相等的系列方波,该方波的周期为50mS,用示波器查看。

①:题意分析:该题目是以定时中断来实现的。

程序上分为主程序和中断程序。

主程序负责中断的初始化,并加载第一个中断的定时,以保证系列方波的完整性,因题目简单,除此不再做其它事情;中断程序负责定时改变输出端口的状态,它能自动重载相应的定时值。

中断的执行过程所造成在时间上的影响只有几个μS,同样相对25mS的方波半周期影响极小,可以忽略不计。

②:汇编语言源程序:ORG 0000HSJMP MAIN ;跳到主程序ORG 000BH ;中断程序ISSR:CPL P1.0 ;改变输出端口MOV TH0,#0A6H ;重载25mS定;时值图5.1.3 例5-1流程图MOV TL0,#00HRETI ;中断返回MAIN: MOV IE,#82H ;开放中断总控位及定时器T0中断MOV TMOD,#01H ;设置定时器T0为模式1MOV TH0,#0A6H ;加载25mS定时值MOV TL0,#00HSETB TR0 ;启动定时器SJMP $ ;主程序动态停止END5.2 89C51/80C51的定时/计数器定时/计数器作为89C51的基本结构单元,主要完成以89C51为核心的测控系统中常常需要的定时或延时控制;当需要对外界事件进行计数时,就理所当然地由计数器来完成。

相关文档
最新文档