C51单片机的中断

合集下载

80c51单片机外部中断初始化步骤

80c51单片机外部中断初始化步骤

80C51 单片机外部中断初始化的步骤如下:
1. 设置中断优先级:通过设置特殊功能寄存器IP 来确定中断的优先级。

可以设置不同的优先级以确定中断的响应顺序。

2. 允许中断:通过设置特殊功能寄存器IE 来允许相应的中断源。

将对应中断源的使能位设置为1。

3. 设置触发方式:通过设置特殊功能寄存器TCON 来选择外部中断的触发方式。

可以选择低电平触发、下降沿触发或上升沿触发。

4. 配置中断向量:中断向量是指中断服务程序的入口地址。

可以通过设置特殊功能寄存器Interrupt Vector Table(中断向量表)来指定中断服务程序的入口地址。

这些步骤是80C51 单片机外部中断初始化的一般流程。

具体的实现方式可能会因不同的单片机型号和编译器而有所差异。

在实际编程中,还需要根据具体的需求和硬件连接来进行相应的配置。

关于51系列单片机中断嵌套

关于51系列单片机中断嵌套

说最基本的,老的51单片机(80C51系列)有5个中断源,2个优先级,可以实现二级中断服务嵌套。

现在很多扩展的51单片机已经有4个优先级(或更多)和更多的中断源了。

在说到中断之前,我先来定义一下优先级,明白了什么是优先级,后面的阐述就容易明白了。

实际上很多人都是混淆了优先级的含义,所以才觉得糊里糊涂。

中断的优先级有两个:查询优先级和执行优先级。

什么是查询优级呢?我们从datasheet或书上看到的默认(IP寄存器不做设置,上电复位后为00H)的优先级:外部中断0 > 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断或int0,timer0,int1,timer1,serial port 或INT0、T0、INT1、T1、UART或PX0>PT0>PX1>PT1>PS>......其实都是查询优级。

首先查询优先级是不可以更改和设置的。

这是一个中断优先权排队的问题。

是指多个中断源同时产生中断信号时,中断仲裁器选择对哪个中断源优先处理的顺序。

而这与是否发生中断服务程序的嵌套毫不相干。

当CPU查询各个中断标志位的时候,会依照上述5个查询优先级顺序依次查询,当数个中断同时请求的时候,会优先查询到高优查询先级的中断标志位,但并不代表高查询优先级的中断可以打断已经并且正在执行的低查询优先级的中断服务。

例如:当计数器0中断和外部中断1(按查询优先级,计数器0中断>外部中断1)同时到达时,会进入计时器0的中断服务函数;但是在外部中断1的中断服务函数正在服务的情况下,这时候任何中断都是打断不了它的,包括逻辑优先级比它高的外部中断0计数器0中断。

而中断的执行优先级就是你对IP寄存器的设置了。

在2个优先级的情况下,某位为1,则相应的中断源为高优先级;为0,则为低优先级。

关于中断的优先级有三条原则:1、CPU同时接收到几个中断时,首先响应优先级最高的中断请求;2、正在进行的中断过程不能被新的同级或低行优优先级的中断请求所中断;3、正在进行的低行优优先级中断服务,能被高行优优先级中断请求中断;若:同一执行优先级中的中断申请不止一个时,则有一个中断优先权排队问题。

51单片机中断实施的步骤

51单片机中断实施的步骤

51单片机中断实施的步骤介绍中断是指在程序运行的过程中,当发生特定条件的时候,中断会打断程序的正常执行,转而执行中断服务程序。

51单片机中断实施的步骤可以帮助开发者合理地利用中断的功能,提高程序的灵活性和效率。

本文将详细介绍51单片机中断实施的步骤。

步骤一:设置中断向量表中断向量表是存放中断服务程序入口地址的一组地址。

首先,需要用特定的指令将中断服务程序的入口地址存入中断向量表的相应位置。

51单片机具有8个中断源,对应的中断向量表从0x0003~0x001B,每个中断源有两个地址,分别为中断入口地址和重定向入口地址。

步骤二:开放中断在51单片机中,中断允许位和中断优先级相互影响,因此在开放中断之前,需要设置好相关的中断优先级和中断允许位。

设置中断优先级的方法有两种,一种是通过设置中断允许位的方式,另一种是通过设置寄存器中的优先级位的方式。

步骤三:编写中断服务程序中断服务程序是在中断发生时执行的一段特定的代码。

在编写中断服务程序时,需要注意以下几点: - 中断服务程序必须使用org指令指定入口地址,保证程序正确执行; - 中断服务程序中不应该包含太长的延时和大量的计算; - 中断服务程序中可以操作的寄存器有限,需要仔细查看相关的资料。

步骤四:设置中断允许位为了使中断能够正常工作,需要在中断实施前设置相关的中断允许位。

在51单片机中,P33为总中断允许位,P34为定时器0中断允许位,P3^5为定时器1中断允许位,以此类推。

设置中断允许位的代码如下:EA=1; // 总中断允许位ET0=1; // 定时器0中断允许位ET1=1; // 定时器1中断允许位...步骤五:配置中断源在实施中断之前,需要配置好中断源。

在51单片机中,中断源可以是外部中断、定时器中断、串口中断等等。

配置中断源的代码如下:IT0=1; // 外部中断0下降沿触发IT1=0; // 外部中断1低电平触发...步骤六:启动中断通过设置中断允许位和配置中断源后,即可启动中断。

51单片机中断函数定义

51单片机中断函数定义

51单片机中断函数定义51单片机是一种广泛应用于嵌入式系统开发的单片机,其中断函数是其常用的编程方法。

本文将为读者介绍51单片机中断函数的定义及其编写方法。

一、中断函数的概念中断函数是指当51单片机运行时,某个特殊事件(如外部中断、定时器中断等)发生时,CPU自动调用的一段程序。

这段程序一般是由开发者自己编写的,用于完成特定的工作任务。

二、中断函数的定义在51单片机的开发中,需要用到中断函数时,就需要先进行中断函数的定义。

中断函数的定义包括以下几个方面:1. 定义函数名中断函数一般采用void类型,同时加上中断函数名称,以便CPU 识别该函数。

例如:void timer_ISR() {}2. 定义函数类型在编写中断函数时,需要定义其类型,以表明该函数为中断函数。

例如:void interrupt Timer() interrupt 1 {}其中,interrupt表示该函数为中断函数;Timer表示中断名称;1表示中断号,不同的中断有不同的中断号。

3. 定义中断向量因为51单片机有多个中断,每个中断都有自己的中断向量,需要在编写中断函数时定义中断向量。

例如:org 0BH针对不同的中断类型,中断向量有不同的取值位置,需要根据实际情况设定。

三、中断函数的编写方法编写中断函数时,需要注意以下几点:1. 禁止中断嵌套在编写中断函数时,必须要禁止中断嵌套。

因为中断函数执行期间若还发生新的中断,将影响程序的正常执行。

可以在中断函数的开始部分使用EA=0来禁止所有中断,而在中断函数结束时使用EA=1来允许中断。

2. 确定中断源在编写中断函数时,需要确定触发中断的中断源。

例如,寄存器TCON.0表示定时器1溢出中断,如果等于1表示中断发生。

因此,我们可以用if(TCON&0x01)来判断是否触发中断。

3. 处理中断当中断源发生时,中断函数被调用。

我们可以在中断函数中编写代码来处理中断,例如改变某个寄存器的值,或运行特定的代码等。

51单片机中断程序例子

51单片机中断程序例子

51单片机中断程序例子
1. 外部中断:当外部信号引脚检测到高电平时,单片机会触发外部中断服务程序。

可以利用外部中断实现按键扫描功能,当按键按下时,触发中断程序对按键进行处理。

2. 定时器中断:利用定时器中断可以实现精确的时间控制。

例如,我们可以设置定时器中断为1秒,当定时器溢出时,触发中断程序,实现1秒钟执行一次的任务。

3. 串口中断:当接收到串口数据时,单片机会触发串口中断服务程序,可以利用串口中断实现串口通信功能。

4. ADC中断:当模数转换器完成一次转换时,单片机会触发ADC中断服务程序,可以利用ADC中断实现模拟信号的采集和处理。

5. 看门狗中断:看门狗定时器溢出时,单片机会触发看门狗中断服务程序,可以利用看门狗中断实现系统复位或其他相关功能。

6. 外部中断优先级:当多个外部中断同时触发时,可以通过设置外部中断的优先级来确定触发的顺序和优先级。

7. 定时器中断优先级:当多个定时器中断同时触发时,可以通过设置定时器中断的优先级来确定触发的顺序和优先级。

8. 中断嵌套:单片机支持中断嵌套,即在一个中断服务程序中触发
另一个中断服务程序,可以通过中断嵌套实现复杂的任务处理。

9. 中断屏蔽:单片机支持对中断的屏蔽,即可以通过设置中断屏蔽标志位来屏蔽某些中断,使其暂时不被触发。

10. 中断标志位:单片机提供中断标志位,用于标识中断是否被触发。

在中断服务程序中,可以通过读取和清除中断标志位来判断中断是否发生。

以上是根据51单片机中断程序的例子进行的描述,这些例子涵盖了常见的中断类型和相关功能。

通过学习和理解这些例子,可以更好地掌握51单片机中断编程的原理和方法。

MCS-51单片机中断系统

MCS-51单片机中断系统
行字节操作时,寄存器地址为88H。按位操作时,各位的地址为88H ~8FH。寄存器的内容及位地址表示如下:
位地址 位符号
8FH 8EH DH CH 8BH 8AH 89H 8H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0 和IT1——外部中断请求触发方式控制位 IT0 (IT1)=1 脉冲触发方式,下降沿有效 IT0 (IT1)=0 电平触发方式,低电平有效
MAIN: ···
HERE:
SJMP HERE
1NJERRV
;中断响应程序
RETI
并不是所有的请求都被响应,当遇到下列情况之一时不响应
这些中断请求:
(1)CPU正在处理一个同级或者高级的中断服务
(2)当前指令还没有执行完毕
(3)当前指令是RET、RETI或者是访问IP、IE的指令,执行完
这些指令后,还必须再执行一条指令,才响应中断请求。
从中断的定义我们可以看到中断应具备中断源、中断 响应、中断返回这样三个要素。中断源发出中断请求,单片机 对中断请求进行响应,当中断响应完成后应进行中断返回,返 回被中断的地方继续执行原来被中断的程序。
6-2 中断控制寄存器
1. 定时器控制寄存器(TCON) 该寄存器用于保存外部中断请求以及定时器的计数溢出。进
IE0和IE1——外中断请求标志位 当CPU采样到 INT(0 或 INT1)端出现有效中断请求时,IE0 (IE1)位由硬件置“1”。当中断响应完成转向中断服务程序
时,由硬件把IE0(或IE1)清零。 TR0 和TR1——定时器运行控制位
TR0 (TR1 )=0 定时器/计数器不工作 TR0 (TR1 )=1 定时器/计数器开始工作 TF0和TF1——计数溢出标志位 当计数器产生计数溢出时,相应的溢出标志位由硬件置“1”。 当转向中断服务时,再由硬件自动清“0”。计数溢出标志位 的使用有两种情况:采用中断方式时,作中断请求标志位 来使用;采用查询方式时,作查询状态位来使用。

如何设置51单片机的中断优先级

如何设置 51 单片机的中断优先级
在 MCS-51 单片机中断优先级中由中断优先级寄存器 IP 来高置的,IP 中某位设为 1,相应的中断就是高优先级,否则就是低优先级。 PS PT1 PX1 PT0 PX0 IP 优先级别寄存器各位介绍如下:
PS PT1 PX1 PT0 PX0
0 0 0 0 0 1 1 0
因此,最终,IP 的值就是 06H。 例:在上例中,如果 5 个中断请求同时发生,求中断响应的次序。 响应次序为:定时器 0->外中断 1->外中断 0->实时器 1->串行中 断。
Байду номын сангаас
PS:串行口中断优先级控制位。PS=1 设定串行口为高优先级中断;PS=0 为低优先级中断。 PT1:T1 中断优先级控制位。PT1=1 设定定时器 T1 为高优先级中断; PT1=0 为低优先级中断。 PX1:外部中断 1 优先级控制位。PX1=1 设定定时器外部中断 1 为高优先 级中断;PX1=0 为低优先级中断。 PT0:T0 中断优先级控制位。PT0=1 设定定时器 T0 为高优先级中断; PT0=0 为低优先级中断。 PX0:外部中断 0 优先级控制位。PX0=1 设定定时器外部中断 0 为高优先 级中断;PX0=0 为低优先级中断。 例:设有如下要求,将 T0、外中断 1 设为高优先级,其它为低优先级, 求 IP 的值。 IP 的首 3 位没用,可任意取值,设为 000,后面根据要求写就可以了

51单片机中断程序原理

51单片机中断程序原理中断是51单片机中一个非常重要的概念,它可以使得单片机在执行程序时,突然停下来去处理发生的事件,然后再回到原来被中断的地方继续执行。

这种机制可以使得单片机具有并发执行多个任务的能力,提高系统的响应速度和实时性。

在51单片机中,中断程序原理是这样的:当一个中断事件发生时,单片机会立即停止当前的操作,保存当前的程序现场(包括程序计数器和寄存器等重要信息),然后跳转到中断服务程序(Interrupt Service Routine,ISR)的指定地址开始执行。

为了实现中断程序,需要进行以下几个步骤:1. 配置中断向量表:中断向量表是一个存储中断服务程序地址的表,它将不同的中断事件映射到对应的中断服务程序。

在51单片机中,中断向量表位于片内RAM的0x00-0x1F地址空间,每个中断事件占用一个字节。

用户需要根据自己的需求,在程序中设置相应的中断向量表。

2. 开启中断:单片机有多个中断源,例如外部中断、定时器中断、串口中断等。

用户需要根据自己的需要选择中断源,并在程序中通过设置相关的寄存器,使得中断源为有效状态。

3. 编写中断服务程序:中断服务程序是用户自定义的一段代码,用于处理中断事件。

它负责完成中断事件的相应操作,比如处理接收到的数据、采集传感器数据等。

中断服务程序执行完后,需要使用RET指令返回到中断被触发的地方继续执行。

总之,中断程序原理是通过配置中断向量表、开启中断和编写中断服务程序三个步骤来实现的。

中断可以允许单片机在执行主程序时,及时地响应外部事件,并对其进行处理。

这在实际的应用中非常重要,可以提高系统的可靠性、实时性和响应速度。

51单片机中断详解

51单片机中断详解1、中断发生CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理2、中断响应和中断服务CPU暂时中断当前的工作,转去处理事件B3、中断返回待CPU将事件B处理完毕后,再回到原来事件A 被中断的地方继续处理事件A这一过程称为中断二、中断过程示意图3、 MCS51中断系统的结构MCS51的中断系统有5个中断源(8052有6个),2个优先级,可实现二级中断嵌套四、中断寄存器单片机有10个寄存器主要与中断程序的书写控制有关1、中断允许控制寄存器IE2、定时器控制寄存器TCON3、串口控制寄存器SCON4、中断优先控制寄存器IP5、定时器工作方式控制寄存器TMOD6、定时器初值赋予寄存器(TH0/TH1,TL0/TL1)五、部分寄存器详解1、中断允许控制寄存器(IE)EX0:外部中断0允许位;ET0:定时/计数器T0中断允许位;EX1:外部中断1允许位;ET1:定时/计数器T1中断允许位;ES :串行口中断允许位;EA :CPU中断允许(总允许)位。

2、定时器/计数器控制寄存器控制寄存器(TCON)IT0:外部中断0触发方式控制位当IT0=0时,为电平触发方式(低电平有效)当IT0=1时,为边沿触发方式(下降沿有效)IE0:外部中断0中断请求标志位IT1:外部中断1触发方式控制位IE1:外部中断1中断请求标志位TF0:定时/计数器T0溢出中断请求标志位TF1:定时/计数器T1溢出中断请求标志位3、串行口控制寄存器(SCON)RI:串行口接收中断标志位。

当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。

注意,RI必须由软件清除。

TI:串行口发送中断标志位。

当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。

每发送完一个串行帧,由硬件置位TI。

CPU响应中断时,不能自动清除TI,TI必须由软件清除。

4、中断优先级控制寄存器(IP)PX0:外部中断0优先级设定位PT0:定时/计数器T0优先级设定位PX1:外部中断0优先级设定位PT1:定时/计数器T1优先级设定位PS :串行口优先级设定位PT2:定时/计数器T2优先级设定位六、中断响应条件1、中断源有中断请求2、此中断源的中断允许位为13、开中断(即EA=1)。

51单片机中断原理

51单片机中断原理在单片机的世界里,中断就像是一个随时待命的“紧急事务处理员”。

当单片机正在执行主程序,忙得不可开交时,突然来了一些紧急情况,比如外部设备发来的数据需要立刻处理,或者定时时间到了需要执行特定的操作,这时候中断就发挥作用了。

要理解 51 单片机的中断原理,咱们得先从几个基本概念说起。

首先是中断源。

这可以想象成是引起中断的“源头”。

在 51 单片机中,常见的中断源有外部中断 0、外部中断 1、定时器/计数器 0 溢出中断、定时器/计数器 1 溢出中断,还有串行口中断。

这些中断源就像是不同的“紧急事务”,各自有着特定的触发条件。

比如说外部中断 0 和 1,通常是由外部引脚的电平变化引起的。

当设定的引脚从高电平变为低电平(或者反过来),就会触发相应的外部中断。

定时器/计数器的溢出中断呢,则是当定时器/计数器累计到设定的值时产生的。

这就好比一个闹钟,设定的时间一到,就会响铃提醒。

串行口中断则是在串行通信过程中,出现特定的通信事件时触发。

接下来是中断允许控制寄存器 IE。

它就像是一个“总开关”,决定哪些中断源被允许响应。

如果某个中断源对应的位被设置为 1,就表示允许这个中断源产生中断;如果是 0,就表示禁止。

然后是中断优先级控制寄存器 IP。

在多个中断源同时请求中断时,中断优先级就决定了哪个中断先被处理。

优先级高的中断会先得到响应,处理完后再处理优先级低的中断。

当一个中断发生时,单片机可不是手忙脚乱地随便处理。

它有着一套严格的中断响应流程。

首先,单片机在执行主程序时,会不断检测是否有中断请求。

一旦检测到有中断请求,并且中断是被允许的,单片机会暂停当前正在执行的主程序,把当前主程序的断点地址(也就是接下来要继续执行主程序的位置)保存起来。

这就像是在一张纸上记下当前做到哪一步了,等处理完中断回来还能接着做。

然后,单片机就会跳转到相应的中断服务程序去执行。

中断服务程序就像是专门处理紧急事务的“小分队”,有着特定的任务和处理逻辑。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SETB EA; SETB EX0;SETB ET0;SETB EX1;SETB ET1;CLR ES
则此时该系统中:
CPU中断允许;

允许外部中断 0 、外部中断 1 、定时器
/ 计数器 0 、定时器 / 计数器 1 提出的中断 申请;
允 许 中 断 源 的 中 断 优 先 次 序 为 :
IE0和IE1——外中断请求标志位 当CPU采样到INT0(或INT1 )端 出现有效中断请求时,IE0 (或IE1) 位由硬件置“1”。当中断响应完成转 向中断服务程序时,由硬件把IE0 (或IE1)清零。
2.SCON寄存器
SCON 98H 7 6 5 4 3 2 1 TI 0 RI
TI (SCON.1)——串行发送中断标志。 RI (SCON.0)——串行接收中断标志。 注意:该寄存器可以位寻址。
MCS-51的中断系统——中断标志
中断源 INT0 T0 INT1 T1 串口 中断标志位 CPU IE0 TF0 IE1 TF1 TI RI 主 程 序
每一个中断源都有相应的中断标志位;
某一个中断源申请中断,相应中断标志位置1。
MCS-51的中断系统——中断允许
中断源 中断标志位 中断允许
入口地址
中断服务程序从中断子程序入 口地址开始执行,直到返回指
应 响 断 中
令RETI为止,这个过程称为中
断处理(或中断服务)。 中断服务子程序一般包括两部 分内容,一是保护和恢复现场, 二是处理中断源的请求。
RETI
中断处理
INTT0: PUSH ACC PUSH PUSH PUSH DPH DPL PSW 保护现场
中断源

入口地址
0003H 000BH 0013H 001BH 0023H


INT0 T0 INT1 T1 RI/TI
特别注意:这些工作是硬件自动完成的!
5.中断入口地址安排跳转指令: 如:ORG 0003H LJMP INTT0 INTT0: 中断服务子程序 RETI
二、中断处理
中断的基本概念
看书
中断请求 中断响应
电话 铃响 继续 看书
接电话
中断返回
中断的基本概念
主程序 中断响应
中断请求
断点 继续执 行程序
执行中断服务 (或处理)子程 序
中断返回
中断的定义
所谓的中断就是,当 CPU 正在处理 某项事务的时候,如果外界或者内部发 生了紧急事件,要求 CPU 暂停正在处理 工作而去处理这个紧急事件,待处理完 后,再回到原来中断的地方,继续执行 原来被中断的程序,这个过程称作中断。
其中与中断有关的控制位共2位:
TI——串行口发送中断请求标志位 当发送完一帧串行数据后,由硬件置“1”; 在转向中断服务程序后,用软件清“0”。
RI——串行口接收中断请求标志位 当接收完一帧串行数据后,由硬件置“1”; 在转向中断服务程序后,用软件清“0”。 串行中断请求由TI和RI的逻辑或得到。
9CH 9BH 9AH ES ET1 EX1 ACH ABH AAH PS PT1 PX1 BCH BBH BAH
中断设计举例
例如 , 某软件中对寄存器 IE 、 IP 设置 如下:MOV IE,#00H
MOV
MOVIE, # 8FH(来自0001111B)IP, # 06H(00000110B)
IP B8H
7
6
5
4 PS
3 2 1 0 PT1 PX1 PT0 PX0
51单片机有两个中断优先级——高级和低级
专用寄存器IP为中断优先级寄存器,用户可 用软件设定
相应位为1,对应的中断源被设置为高优先级, 相应位为0,对应的中断源被设置为低优先级 系统复位时,均为低优先级
中断优先级处理原则
应 响 断 中 中 断 返 回
中断响应条件:
☞ 有中断源发出中断请求。
☞ 中断总允许位EA = 1。
☞ 申请中断的中断源允许。
满足以上基本条件,CPU一般会响应中断。
但若有下列任何一种情况存在,则中断响应会受 到阻断。
a.CPU正在响应同级或高优先级的中断。
b.当前指令未执行完。
c.正在执行RETI中断返回指令或访问专用寄 存器IE和IP的指令。
CPU
INT0 T0 INT1 T1 串口
IE0 TF0 IE1 TF1 TI RI
EX0 ET0 EX1 ET1 ES EA
主 程 序
EA——总中断允许位,EA=1开放所有中断,EA=0,禁止所有中断;
某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁 止相应中断源的中断。
MCS-51的中断系统——中断优先级
▲中断优先级控制寄存器(IP)
1.定时器控制寄存器(TCON)
TCON 7 TF1 6 5 TF0 4 3 IE1 2 IT1 1 IE0 0 IT0
T1溢出中断标志(TCON.7): T1启动计数后,计满溢出由硬件 置位TF1=1,向CPU请求中断,此标志 一直保持到CPU响应中断后,才由硬 件自动清0。也可用软件查询该标志, 并由软件清0。
8051单片机有5个中断源:
外部中断源:外部中断0(INT0 ) 外部中断1(INT1 ) 内部中断源:定时/计数中断0(T0) 定时/计数中断1(T1) 串行中断
1. 外部中断源
外部中断0(INT0 ):来自引脚P3.2 外部中断1(INT1 ):来自引脚P3.3 外部中断请求两种方式: 电平触发方式(低电平有效) 下降沿触发方式(脉冲的下降沿有 效,至少要维持一个机器周期)
则初始化程序如下:
MOV IP, #04H MOV TCON, #01H MOV IE, #85H
或使用位操作指令如下:
MOV IP, #04H MOV TCON, #01H SETB EA SETB EX0 SETB EX1
中断处理过程
中断处理过程分为三个阶段:中断响应、中 断处理和中断返回。 中断响应 中断处理(又称中断服务) 中断返回 中断请求的撤除
计数溢出标志位的使用有两种情况: 采用中断方式时,作中断请求标志位 来使用; 采用查询方式时,作查询状态位来使 用。
TCON 88H
7 TF1
6
5 TF0
4
3 IE1
2 IT1
1 IE0
0 IT0
外部中断INT1中断标志 位(TCON.3) : IE1=1,外部中断1 向CPU申请中断
外部中断INT1触发方 式控制位(TCON.2): IT1=0,电平触发方 式 IT1=1, 下降沿触发 方式
一、中断响应过程
1.采样: CPU在每个机器周期的S5P2期间 采样中断请求信号。 2.锁定: 如果有中断请求,将中断请求信 号锁定到相应的请求标志位(TCON 中)。
TF1 TF0 IE1 IT1 IE0 IT0
3.查询: 在S6P2状态按一定的顺序(INT0、 T0、 INT1、 T1、 RI/TI)查询请求 标志,并将有效的中断请求按优先级 次序排好。 4.产生LCALL指令: 如果查询到某标志位为“1” (在TCON中),硬件自动产生一条 LCALL指令,转到相应的中断入口地 址(也称中断向量或中断矢量)。
程序存储器ROM
002AH
使用时,通常在这些入口地址 处存放一条跳转指令,使程序 跳转到用户安排的中断服务子 程序起始地址上去!
0023H:串行口中断入口

001BH:定时器1溢出中断入口 0013H:外部中断1入口

000BH:定时器0溢出中断入口

0003H:外部中断0入口
0000H:复位后,程序的入口地址(PC=0000H)
第5章
单片机的定时与 中断系统
本章主要内容
中断系统:包含中断源、中断方式、中 断控制寄存器、中断响应和中断请求的 撤除。 定时 /计数器:包含定时 /计数器的定时 和计数功能 、定时 / 计数器的控制寄存 器、工作方式及其应用。
MCS-51的中断系统
单片机在某一时刻只能处理一个任 务,当多个任务同时要求单片机处理时, 这一要求应该怎么实现呢?通过中断可 以实现多个任务的资源共享。
同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件 形成,无法改变)。
MCS-51的中断系统结构图
TCON
IT0=0 INT0 IT0=1
IE
EX0
IP
PX0 PT0
IE0 TF0
T0
IT1=0 INT1 IT1=1
自 然 优 先 级 矢量 地址 自 然 优 先 级
ET0 PX1 EX1 PT1 ET1 PS ES EA
2. 内部中断源
▲定时/计数中断0(T0):定时/计数 发生溢出时,产生中断请求。
▲定时/计数中断1(T1):定时/计数 发生溢出时,产生中断请求。
▲串行中断:为完成串行数据传送而设 置。单片机完成接受或发送一组数据时, 产生中断请求。 说明:外部中断源中断请求需设置,而 内部中断源中断请求不需设置, 自动产生。
自然优先级 中断源 中断标志位 中断允许 优先控制
PX0
CPU

INT0 T0 INT1 T1
IE0 TF0 IE1 TF1 TI SI
EX0
ET0 EX1 ET1 ES EA
PT0
PX1 PT1 PS
主 程 序

串口
单片机中有两个中断优先级,即高优先级中断和低优先级中断, 前者优先权高于后者(在程序中设置,相应位=1,为高优先级);
实现这种功能的部件称为中断系统 (中断机构)。
产生中断的请求源称为中断源。
中断过程中又有中断发生称为中断 嵌套。
中断执行的程序称为中断服务子程序。
相关文档
最新文档