c51单片机中断详解

合集下载

51单片机中断号

51单片机中断号

51单片机中断号若51单片机使用C语言编程,51单片机中断号的排列顺序是按中断向量地址由低到高来排列中断号,不是按中断查询的优先级或者中断服务顺序的优先级来排列中断号的。

本内容简单介绍了C51单片机的中断号以及中断向量,方便大家了解和学习关键词:中断向量C51单片机一、中断号二、interrupt 和 using 在C51中断中的使用8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个串口输入/输出中断),两级中断优先级;128 字节内置RAM;独立的 64K 字节可寻址数据和代码区。

中断发生后,MCU 转到 5 个中断入口处之一,然后执行相应的中断服务处理程序。

中断程序的入口地址被编译器放在中断向量中,中断向量位于程序代码段的最低地址处,注意这里的串口输入/输出中断共用一个中断向量。

8051的中断向量表如下:C51单片机的中断号以及中断向量C51单片机的中断号以及中断向量一、中断号外部中断0 0定时器T0 1外部中断1 2定时器T1 3串口中断 4二、interrupt 和 using 在C51中断中的使用8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个串口输入/输出中断),两级中断优先级;128 字节内置RAM ;独立的 64K 字节可寻址数据和代码区。

中断发生后,MCU 转到 5 个中断入口处之一,然后执行相应的中断服务处理程序。

中断程序的入口地址被编译器放在中断向量中,中断向量位于程序代码段的最低地址处,注意这里的串口输入/输出中断共用一个中断向量。

8051的中断向量表如下:中断源 中断向量 上电复位 0000H 外部中断0 0003H 定时器0 溢出 000BH 外部中断1 0013H 定时器1 溢出 001BH 串行口中断 0023H 定时器2 溢出 002BH51单片机定时器中断号 [复制链接]admin849 主题 987 帖子 3106 积分 管理员 积分 3106 • 发消息 电梯直达楼主发表于 2013-11-10 23:37:34 | 只看该作者| | 有用的中断号知识void 表示函数类型interrupt 0 ←这里的0表示中断源编号using 1 ←这里的1表示选用的寄存器组别在MCS-51单片机中,单片机类型不同,中断源个数也有差别.例如8051有5个中断源,8052有6个中断源.现以8051为例中断源 中断服务入口地址 中断标志外部中断INT0 0003H IE0定时器T0 000BH TF0外部中断INT1 0013H IE1串行口TI/RI 00023H TI/RI中断优先级别从上到下依次降低interrupt 表示中断优先级,using表示所用工作寄存器组。

第十一讲 80C51单片机的中断 0911

第十一讲 80C51单片机的中断 0911

5个中断源:2个在片外, 3个在片内。 个中断源: 个在片外 个在片外, 个在片内 个在片内。 个中断源 外部中断源: 外部中断源: 端口线引入, 由P3.2端口线引入,低电平或下降沿引起。 端口线引入 低电平或下降沿引起。 由P3.3端口线引入,低电平或下降沿引起。 端口线引入,低电平或下降沿引起。 端口线引入 内部中断源: 内部中断源: T0:定时器 计数器 中断,由T0回零溢出引起。 计数器0中断 回零溢出引起。 :定时器/计数器 中断, 回零溢出引起 T1:定时器 计数器 中断,由T1回零溢出引起。 计数器1中断 回零溢出引起。 :定时器/计数器 中断, 回零溢出引起 TI/RI:串行 中断,由串口完成一帧字符发送 接收 中断, :串行I/O中断 由串口完成一帧字符发送/接收 引起。 引起。
中断在每一个机器周期的s5p2被采样并锁存到中断标志寄存器tconscon中等到下一个机器周期被查询电路查询到若中断允许并且满足响应条件cpu接着执行一条由硬件生成的子程序调用指令以转到相应的中断服务子程序入口该硬件调用指令本身需两个机器周期
80C51单片机的中断系统 单片机的中断系统 本讲教学内容: 本讲教学内容: 80C51单片机的中断控制 单片机的中断控制 中断初始化和中断服务程序
中断向量表( 中断向量表(Interrupt Vector Table) )
中断源名称 外部中断0 定时器T0中断 外部中断1 定时器T1中断 串行口中断 中断向量(入口地址) 0003H 000BH 0013H断系统内部结构 中断系统内部结构
图 2 80C51中断系统内部结构示意图
要求开放定时器0中断: ORG 0000H AJMP MAIN ORG 000BH AJMP TOINT0 MAIN: MOV IE,#82H MOV IP,#02H MOV SP,#03FH … TOINT0: … RETI

简述msc-51单片机中断处理过程的步骤

简述msc-51单片机中断处理过程的步骤

简述msc-51单片机中断处理过程的步骤1.引言1.1 概述MSC-51单片机是一种广泛应用的微控制器,其中断处理过程是系统中一个重要的组成部分。

中断处理指的是当外部设备或内部程序发生特定的事件时,单片机会中断正在执行的任务,转而处理这个事件。

中断处理过程的步骤是指在中断事件发生后,单片机执行的一系列操作以响应并处理这个事件。

中断处理过程的步骤包括中断请求检测和中断优先级判断。

首先,单片机会不断地检测是否发生了中断请求,这可以通过外部设备引起的中断请求信号或内部程序的中断请求指令来实现。

一旦检测到中断请求,单片机会停止当前正在执行的任务,保存当前的程序状态和现场信息。

接下来,单片机会进行中断优先级判断,确定哪个中断事件具有更高的优先级。

这意味着,如果同时发生多个中断请求,单片机需要根据优先级确定要先处理哪个中断。

一般而言,不同的中断请求会有不同的优先级,高优先级的中断请求会中断低优先级的中断请求。

一旦确定了中断优先级,单片机会保存当前的执行现场,并跳转到相应的中断服务程序。

中断服务程序是为了处理特定中断事件而编写的程序代码,它会执行一系列的操作,完成中断事件的处理。

处理完成后,单片机会从中断服务程序返回到中断发生时的位置,并恢复之前保存的程序状态和现场信息。

总之,MSC-51单片机中断处理过程是一个相对复杂的过程,涉及到中断请求检测、中断优先级判断以及中断服务程序的执行。

这个过程可以有效地响应和处理外部设备或内部程序的中断请求,提高单片机系统的实时性和可靠性。

文章结构部分主要介绍了本文的整体架构和章节安排。

以下是文章1.2文章结构部分的内容:1.2 文章结构本文分为引言、正文和结论三个部分。

具体结构如下:引言部分首先概述了MSC-51单片机中断处理过程的重要性和背景,接着介绍了本文的目的和意义。

正文部分主要包含两个章节。

第一个章节是MSC-51单片机中断处理过程的概述,详细介绍了中断处理的基本概念和原理。

c51单片机中断详解

c51单片机中断详解
一、中断请求标志位 A、TCON中的中断标志位 TCON为定时器/计数器的控 制寄存器,字节地址为88H。
包含: (1)T0和T1的溢出中断请求标志位TF1和TF0。 (2)外部中断请求标志位IE1与IE0。 各标志位的功能:
IE1——外部中断请求1的中断请求标志位。 IE1=0,无中断请求。 IE1=1,外部中断1有中断请求。当CPU响应该中 断,转向中断服务程序,由硬件清“0”IE0。
● IT1外部中断1的中断触发方式控制位
IT1——选择外部中断请求1为负跳变触发方式 还是电平触发方式:
IT1 =0,为电平触发方式,IE1状态完全 由IT1决定。
IT1=1,为负跳变触发方式。 IT1可由软件置“1”或清“0”。
● IT0—外部中断请求0为负跳变触 发方式还是电平触发方式,意义与 IT1类似。 ● IE0—外部中断请求0的中断请求 标志位,意义与IE1类似。
二、中断允许控制
中断允许控制寄存器IE
CPU对中断源的开放或屏蔽,由片内 的中断允许寄存器IE控制(两级控制)。 字节地址为A8H,可位寻址。格式如下:
IE中各位的功能如下:
(1)中断允许总控制位EA(IE.7位):
EA=0,所有中断请求被屏蔽。
EA=1,CPU开放中断,但五个中断源 的中断请求是否允许,还要由IE中 的5个中断请求允许控制位决定。
CPU暂时中止当前的工作,转到中断 服务处理程序处理所发生的事件。
处理完该事件后,再回到原来被中止的 地方,继续原来的工作,这称为中断。
中断方式优点:大大地提高了CPU的 工作效率。
●能够实现中断处理功能的部件称为 中断系统。 ●产生中断的请求源称为中断请求源。 ●中断源向CPU提出的处理请求,称为 中断请求(或中断申请)。 ● CPU暂时终止自身的事务,转去处 理中断事件的过程,称为CPU的中断响 应过程。

c51定时中断实验报告

c51定时中断实验报告

c51定时中断实验报告本文介绍的是C51定时中断实验,利用这个实验可以更好地理解C51的定时器与中断模块,进一步熟悉C语言的使用。

一、实验目的1.掌握C51单片机的定时器模块和中断模块。

2.熟悉定时器与中断的工作原理。

3.掌握利用中断实现定时功能的方法。

4.掌握如何调试程序,发现和解决程序问题。

二、实验装置硬件:STC89C52微控制器、电源、电路板、电路元件等。

软件:Keil C51集成开发环境。

三、实验原理1.定时器模块C51单片机中的定时器模块包含了3种不同的工作方式:工作模式0、模式1和模式2。

这些工作模式拥有不同的计数器范围和计数方式。

在本实验中,将使用工作模式1,因为它适用于大多数定时需求,并且易于编写程序。

工作模式1基本特点如下:(1)Timer1用两个8位计数器(TH1和TL1)组成,当一个计数器溢出时(从FFH计数到00H),计数值自动重装,同时中断请求位TF1被设置。

(2)计数器TH1可以初始值,TL1需要重新初始计数。

(3)Timer1的计数时钟来源可以是外部时钟源或内部时钟源,一般选择内部时钟源。

(4)TH开头的寄存器和TL开头的寄存器合起来组成16位的Timer1计数器,这个计数器的数值大小为TH1-TH1。

(5)x表示H或L。

用C语言对Timer1进行编程,首先需要完成以下配置:TMOD |= 0x10; // 定时器模式选择,使用模式1,TH0和TL0为一组计数器TH1 = (65536 - 50000) / 256; // 定时器初值设置ET1 = 1; // 打开定时器中断其中,TMOD是用来选择定时器工作模式,可以用对应的数值进行配置;TH1和TL1需要根据需要设置计数器初始值,该初值的计算公式为:计数初值 = (65536 - 计数时间/12)。

ET1为定时器1允许中断的位,EA为总中断允许位,TR1为定时器1工作使能位。

2.中断模块中断是一种实时响应外部事件处理的技术手段,当特定的硬件事件发生时,CPU自动调出相应的中断处理程序来响应事件,处理程序完成任务后返回继续程序运行,从而提高了CPU的效率。

C51的中断函数

C51的中断函数

C51的中断函数C51的中断函数的格式为:void FuncIr(void) interrupt x [using y]以下是一些分析:一、中断函数是一个特殊的函数,没有参数,也没有返回值;但是程序中允不允许使用return呢?答案是允许的,不过只能用"return;",不能用"return(z);";用在一些需要快速返回的地方,对应的汇编会有多个ret语句,相对效率会高一些。

二、using的用法,using可以修饰任何函数,不过个人建议只用来修饰中断函数;简单的说,“using”会指定工作寄存器组,由于中断函数一般都是比较紧急的事情,有时一条语句都会斤斤计较,所以使用using切换寄存器组可以省去一些压栈的动作,由于51只有两级中断,同级中断不能被打断,因此,我们可以同级中断设成同样的寄存器组,从某种意义上来说,有一组寄存器是多余的。

同时个人建议中断函数应该使用using这个关键字。

三、中断中调用函数,首先要讨论中断函数中调用函数的必要性,前天在论坛上我和别人争论过这个问题,现在我还是这个观点:有些情况中断中调用函数还是必要的,这个时候是不是该调用函数,其实和普通函数差不多,首先是这个函数如果调用多次,或者要带一些参数什么的就更加必要的;前天有人跟我叫劲,说假如只调用一次且无参数无返回的函数要直接写,因为如果用函数,至少会增加CALL和RET两条语句,我不敢苟同,我是实际调试发现的,当你程序比较复杂时,你将那部分单独拉出来做成函数,可能代码和时间都会更好。

四、中断中调用的函数最好不要被中断外的其它函数调用,因为会出现“重复调用”的警告,有时这种调用是很致命的,有人说这个函数可以用reentrant来修饰,是的,的确可以这样解决,不过个人不建议这么做,也许这样会跟你减少很多堆栈空间,并且整个程序的优化要差很多,个人建议出现这种情况就把这个函数写两遍,分成两个函数分别调用。

c51中断函数的介绍

c51中断函数的介绍C51编译器允许用c51创建中断服务程序,大家仅仅需要关心中断号和寄存器组的选择就可以了。

编译器自动产生中断向量和程序的入栈及出栈代码。

在函数声明时包括interrupt,将把所声明的函数定义为一个中断服务程序。

另外,可以用using定义此中断服务程序所使用的寄存器组。

一、中断函数的定义1、中断函数定义的格式为:函数类型函数名interrupt n using n其中:Interrupt后面的n是中断号。

关键字using后面的n是所选择的寄存器组,取值范围是0-3.定义中断函数时,using是一个选项,可以省略不用。

如果不用则由编译器选择一个寄存器组作为绝对寄存器组。

2、8051的中断过程通过使用interrupt关键字和中断号来实现,中断号告诉编译器中断程序的入口地址。

中断号对应着IE寄存器中的使能位,换句话说,IE 寄存器中的0位对应着外部中断0,相应的外部中断0的中断号是0.IE寄存器中的使能位与外部中断对应关系:中断号中断源0 外部中断01 定时器02 外部中断13 定时器1中断4 串行口中断5 定时器2中断二、使用中断函数时要注意的问题:1. 在设计中断时,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在主程序中。

一般来说中断服务程序应该做最少量的工作,这样做有很多好处。

首先系统对中断的反应面更宽了,有些系统如果丢失中断或对中断反应太慢将产生十分严重的后果,这时有充足的时间等待中断是十分重要的。

其次它可使中断服务程序的结构简单,不容易出错。

中断程序中放入的东西越多,他们之间越容易起冲突。

简化中断服务程序意味着软件中将有更多的代码段,但可把这些都放入主程序中。

中断服务程序的设计对系统的成败有至关重要的作用,要仔细考虑各中断之间的关系和每个中断执行的时间,特别要注意那些对同一个数据进行操作的ISR.2. 中断函数不能传递参数。

3. 中断函数没有返回值。

4. 中断函数调用其他函数,则要保证使用相同的寄存器组,否则出错。

C51单片机中断(两篇)

引言:C51单片机中断是单片机开发中一个非常重要的概念。

通过中断,程序能够在运行过程中及时响应外部事件,提高系统的实时性和可靠性。

本文将进一步探讨C51单片机中断的相关知识,特别是中断优先级、中断嵌套、中断服务函数等方面的内容。

概述:C51单片机中断机制是通过改变程序的执行流程来实现的。

当中断事件发生时,CPU会暂停当前的执行任务,保存现场后转去执行中断服务程序,待中断服务程序执行完毕后,再恢复到之前的执行状态。

C51单片机中断机制通过这样的方式,有效地实现了对外部事件的及时响应。

正文内容:1. 中断优先级1.1 中断优先级的概念中断优先级是指在多个中断事件同时发生时,CPU按照一定的优先级顺序处理这些中断请求。

在C51单片机中,中断优先级是通过中断控制器来实现的。

中断控制器按照预先设定的优先级进行中断请求的响应,优先级越高的中断请求将被优先处理。

1.2 中断优先级的设置在C51单片机中,中断优先级的设置是通过特殊功能寄存器(SFR)来完成的。

通过设置SFR中的相关位,可以对不同的中断请求进行优先级设置。

具体的设置方法可以参考C51单片机的相关手册和数据手册。

2. 中断嵌套2.1 中断嵌套的概念中断嵌套是指在中断服务程序执行过程中,又发生了其他的中断事件,并且这些中断事件的优先级高于当前正在执行的中断服务程序。

在C51单片机中,中断嵌套是通过中断控制器的中断请求线来实现的。

当一个中断事件发生时,如果其优先级高于当前执行的中断服务程序,CPU会立即切换到新的中断服务程序中去执行。

2.2 中断嵌套的处理方法在C51单片机中,中断嵌套的处理是通过中断服务程序的堆栈来实现的。

当发生中断嵌套时,CPU将当前的现场信息保存到堆栈中,然后切换到新的中断服务程序中执行。

当新的中断服务程序执行完毕后,CPU会从堆栈中恢复之前的现场信息,并回到原来的中断服务程序继续执行。

3. 中断服务函数3.1 中断服务函数的概念中断服务函数是指用来处理中断事件的函数。

51单片机中断系统详解

51单片机中断系统详解51 单片机中断系统详解(定时器、计数器)51 单片机中断级别中断源INT0---外部中断0/P3.2 T0---定时器/计数器0 中断/P3.4 INT1---外部中断1/P3.3 T1----定时器/计数器1 中断/P3.5 TX/RX---串行口中断T2---定时器/计数器 2 中断第5 最低4 5 默认中断级别最高第2 第3 第4 序号(C 语言用) 0 1 2 3 intrrupt 0中断允许寄存器IE位序号符号位EA/0 ------ET2/1 ES ET1 EX1 ET0 EX0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 EA---全局中允许位。

EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。

EA=0,关闭全部中断。

-------,无效位。

ET2---定时器/计数器2 中断允许位。

ET2=1, 打开T2 中断。

ET2=0,关闭T2 中断。

关,。

ES---串行口中断允许位。

关,。

ES=1,打开串行口中断。

关,。

ES=0,关闭串行口中断。

关,。

ET1---定时器/计数器1 中断允许位。

关,。

ET1=1,打开T1 中断。

ET1=0,关闭T1 中断。

EX1---外部中断1 中断允许位。

EX1=1,打开外部中断1 中断。

EX1=0,关闭外部中断1 中断。

ET0---定时器/计数器0 中断允许位。

ET0=1,打开T0 中断。

EA 总中断开关,置1 为开;EX0 为外部中断0 (INT0) 开关,。

ET0 为定时器/计数器0(T0)开EX1 为外部中断1(INT1)开ET1 为定时器/计数器1(T1)开ES 为串行口(TX/RX)中断开ET2 为定时器/计数器2(T2)开ET0=0,关闭T0 中断。

EX0---外部中断0 中断允许位。

EX0=1,打开外部中断0 中断。

EX0=0,关闭外部中断0 中断。

中断优先级寄存器IP位序号位地址------PS/0 PT1/0 PX1/0 PT0/0 PX0/0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 -------,无效位。

C51的中断函数


如:
#include <reg51.h> #include <math.h>
/* ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
此程序用以说明 C51 库函数的使用 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ */
void timer0(void) interrupt 1 {
//中断处理程序 } 以上只是简单的例子,完整详细的对中断系统的讲解请见专门的章节。 使用中断函数时要注意的几个问题: 1)在设计中断地,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在 主程序中。一般来说中断服务程序应该 做最少量的荼,这样做有很多好处。首先系统对中 断的反应面更宽了,有些系统如果丢失中断或对中断反应太慢将产生十分严重的后果。这时 有充足的时间等待中断是十分重要的。其次它可使中断服务程序的结构 3)中断函数没有返回值。 4)中断函数调用其他函数,则要保证使用相同的寄存器组,否则出错。 5)中断函数使用浮点运算要保存浮点寄存器的状态。 (2)C51 的库函数 C51 的开发环境提供了很多短小精悍的函数,可以很方便地使用。
C51 的中断函数
C51 编译器允许用 C51 创建中断服务程序。仅仅需要关心中断号与寄存器组的选择就 可以了。编译器自动产生中断向量与程序的入栈及出栈代码。在函数声明时包括 interrupt, 将把所声明的函数定义为一个中断服务程序。另外,可以用 using 定义此中断服务程序所使 用的寄存器组。(关于 51 单片机的中断系统可以阅读相关章节)
51 单片机的中断过程通过使用 interrupt 关键字与中断号来实现,中断号告诉编译器 中断程序的入口地址。中断号对应着 IE 寄存器中的全能位,换句话说,IE 寄存器中的 0 位 对应着外部中断 0,相应的外部中断 0 的中断号是 0。(关于 IE 寄存器的详细内容请参加相关 章节)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IE1=1,外部中断1有中断请求。当CPU响应该中 断,转向中断服务程序,由硬件清“0”IE0。
资料仅供参考
● IT1外部中断1的中断触发方式控制位
IT1——选择外部中断请求1为负跳变触发方式 还是电平触发方式:
IT1 =0,为电平触发方式,IE1状态完全 由IT1决定。
IT1=1,为负跳变触发方式。 IT1可由软件置“1”或清“0”。
二、采用中断时的主程序结构
三、 中 断 服 务 程 序 的 流 程
资料仅供参考

补充 C51中资料仅供参的考 中断函数
C51语言程序中采用中断函数编写中断处理程序。
1、中断函数的定义形式如下:
void 函数名(void ) interrupt m [using n] { 说明语句
执行语句 }
说明:m的取值为0-31,对应单片机的中断号
(1)用位操作指令 SETB PX0 ;2个外中断为高优先级 SETB PX1 CLR PS ;串口为低优先级中断 CLR PT0 ;T0低优先级中断 CLR PT1 ;T1低优先级中断
资料仅供参考
响应中断请求的条件
一、一个中断请求被响应,需满足以下 必要条件:
(1)IE寄存器中的中断总允许位EA=1。

资料仅供参考
例6-1 若允许片内2个定时器/计数器中
断,禁止其它中断源的中断请求。编写
设置IE的相应程序段。
(1)用位操作指令来编写如下程序段:
CLR ES
;禁止串行口中断
CLR EX1
;禁止外部中断1中断
CLR EX0
;禁止外部中断0中断
SETB ET0
;允许T0中断
SETB ET1
;允许中断
资料仅供参考
● IT0—外部中断请求0为负跳变触 发方式还是电平触发方式,意义与 IT1类似。 ● IE0—外部中断请求0的中断请求 标志位,意义与IE1类似。
资料仅供参考
● TF0—T0溢出中断请求标志位。
T0计数溢出时,由硬件置“1”TF0,向CPU申 请中断,CPU响应TF0中断时,硬件自动清“0”TF0, TF0也可由软件清0。
资料仅供参考
3、关于C51中断函数的几点说明(续)
• C51编译器对中断函数编译时会自动在程序的 开始和结束处加上如下内容:开始处对ACC、 B、DPH、DPL和PSW入栈,结束时出栈。 中断函数未加using n修饰符时,开始处还要 将R0-R1入栈,结束时出栈。如果中断函数加 using n修饰符,则在开始将PSW入栈后还要 修改中PSW的工作寄存器选择位RS0和RS1。
• 中断技术的特点
分时操作
——CPU可以同多个外设“同时” 工作
实时处理
——CPU及时处理随机事件
故障处理
——电源掉电、存储出错、运算 溢出
MCS-51中断系统资料仅的供参考 结构及中断源
中断源有以下几种情况:
(1)I/O设备(2)硬件故障(3) 实时时钟(4)为调试而设置的 中断。
MCS-51有5个中断请求源,两个中 断优先级,可两级嵌套。
CPU暂时中止当前的工作,转到中断 服务处理程序处理所发生的事件。
处理完该事件后,再回到原来被中止的 地方,继续原来的工作,这称为中断。
中断方式优点:大大地提高了CPU的 工作效率。
资料仅供参考
●能够实现中断处理功能的部件称为 中断系统。 ●产生中断的请求源称为中断请求源。 ●中断源向CPU提出的处理请求,称为 中断请求(或中断申请)。 ● CPU暂时终止自身的事务,转去处 理中断事件的过程,称为CPU的中断响 应过程。
中断允许控制寄存器IE
CPU对中断源的开放或屏蔽,由片内 的中断允许寄存器IE控制(两级控制)。 字节地址为A8H,可位寻址。格式如下:
资料仅供参考
IE中各位的功能如下:
(1)中断允许总控制位EA(IE.7位):
EA=0,所有中断请求被屏蔽。
EA=1,CPU开放中断,但五个中断源 的中断请求是否允许,还要由IE中 的5个中断请求允许控制位决定。
资料仅供参考
IP各个位的含义: (1)PS——串行口中断优先级
控制位 1:高优先级中断; 0:低优先级中断。
资料仅供参考
(2)PT1——定时器T1中断优先级控制位 1:高优先级中断; 0:低优先级中断。
(3)PX1——外部中断1中断优先级控制位 1:高优先级中断; 0:低优先级中断。
资料仅供参考
资料仅供参考
CPU与外设之间的数据传送 用四种方式:
(1)无条件传送方式 (2)程序查询传送方式 (3)直接存储器存取(DMA) 方式
(4)中断方式——单片机能及时 地响应和处理单片机外部事件或 内部事件所提出的中断请求。
中断的概念
资料仅供参考
CPU正在执行程序时,单片机外部或 内部发生的某一事件,请求CPU迅速去 处理。
(1)TI—发送中断请求标志位。串口每发送 完一帧串行数据后,硬件自动置“1”TI。必 须在中断服务程序中用软件对TI标志清“0”。
资料仅供参考
(2)RI—接收中断请求标志位。串 口接收完一个数据帧,硬件自动置 “1”RI标志。必须在中断服务程序 中用软件对RI标志清“0”。
资料仅供参考
二、中1中断函数的几点说明(续)
• 中断函数调用其它函数,则被调用函数与 中断函数必须使用相同的寄存器组,均用 相同的using n修饰符说明。

中断源
中断级别

外部中断0
最高

T0溢出中断

外部中断1 T1溢出中断 串行口中断
置 原 则?
最低
资料仅供参考
可归纳为下面三条基本规则: (1)低优先级可被高优先级中断,反之
则不能。 (2)同级中断不会被它的同级中断源所
中断。 (3)若CPU正在执行高优先级的中断,
则不能被任何中断源所中断。

例6-2 设置IP寄存器的资料初仅供参考始值,使2个外中断请 求为高优先级,其它中断请求为低优先级。
SETB EA
;CPU开中断
资料仅供参考
(2)用字节操作指令来编写: MOV IE,#8AH
或者用: MOV 0A8H,#8AH ;A8H为IE寄存器 字节地址
资料仅供参考
三、中断优先级寄存器IP 两个中断优先级,可实现两级中断 嵌套。如图所示:
资料仅供参考
每个中断源的中断优先级都是 由中断优先级寄存器IP中的相应位 的状态来控制的。 中断优先级寄存器IP,其字节地址 为B8H。
资料仅供参考
中断控制
一、中断请求标志位 A、TCON中的中断标志位 TCON为定时器/计数器的控 制寄存器,字节地址为88H。
包含:
资料仅供参考
(1)T0和T1的溢出中断请求标志位TF1和TF0。
(2)外部中断请求标志位IE1与IE0。
各标志位的功能:
IE1——外部中断请求1的中断请求标志位。
IE1=0,无中断请求。
2
第2组
10H-17H
3
第3组
18H-1FH
资料仅供参考
3、关于C51中断函数的几点说明: 中断函数不能有返回值,用void说明。 中断函数不能进行参数传递,()内 为空或void。 中断函数不能被其它函数直接调用, 因为中断函数的返回是由RETI指令完成 的, RETI影响单片机的硬件中断系统, 由单片机的硬件系统产生出栈操作,修 改PC值。直接调用会出现致命错误。
资料仅供参考
●对事件的整个处理过程称为中断 处理。 ●中断返回:处理完毕中断事件, 再回到原来被中止的地方。
没有中断,CPU的大 量时间会浪费在原地踏 步的操作上。
资料仅供参考
下图所示:对事件的整个处理过程
进入中断→保护现场→中断处理恢复现场 →中断返回
来都所 设需有 置要的
软过 件程
资料仅供参考
(4)PT0——定时器T0中断优先级控制位 1:高优先级中断; 0:低优先级中断。
(5)PX0——外部中断0中断优先级控制位 1:高优先级中断; 0:低优先级中断。
资料仅供参考
可见由软件可改变各中断源的中断优先级。
在同时收到几个同一优先级的中断请求
时,优先响应哪一个中断,取决于内部的查
询顺序。查询顺序如下:
(2)该中断源发出中断请求,即该中断源对应 的中 断请求标志为“1”。
(3)该中断源的中断允许位=1,即该中断没有 被屏蔽。
(4)无同级或更高级中断正在被服务。
资料仅供参考
二、中断响应的主要过程
中断源
入口地址 资料仅供参考
外部中断0
0003H
定时器/计数器T0 000BH
外部中断1
0013H
定时器/计数器T1 001BH
对应特殊功能寄存器TCON和 SCON的相应位。
下页为简表
资料仅供参考
MCS-51的中断系统——中断标志
中断源
INT0 T0 INT1 T1 串口
中断标志位
IE0 TF0 IE1 TF1 TI RI
CPU
主 程 序
▪ 每一个中断源都有相应的中断标志位; ▪ 某一个中断源申请中断,相应中断标志位置1。
中断系统结构示意图如下图所示:
资料仅供参考
P140
资料仅供参考
●中断请求源
五个中断请求源 :
(1)INT0*—外部中断请求0,由 引脚INT0*输入,中断请求标志 为IE0。
(2)INT1*—外部中断请求1,由 引脚INT1*输入,中断请求标志 为IE1。
资料仅供参考
(3)定时器/计数器T0溢出中断请 求,中断请求标志为TF0。 (4)定时器/计数器T1溢出中断请 求,中断请求标志为TF1。 (5)串行口中断请求,中断请求标 志为TI或RI。
相关文档
最新文档