51单片机项目4_51单片机的中断系统
MCS-51单片机的中断系统
MCS-51单⽚机的中断系统单⽚机中断技术概述在任何⼀款事件驱动型的CPU⾥⾯都应该会有中断系统,因为中断就是为响应某种事件⽽存在的。
中断的灵活应⽤不仅能够实现想要的功能,⽽且合理的中断安排可以提⾼事件执⾏的效率,因此中断在单⽚机应⽤中的地位是⾮常重要的。
单⽚机中断(Interrupt)是硬件驱动事件,它使得CPU暂停当前的主程序,转⽽去执⾏⼀个中断服务⼦程序。
为了更形象地理解中断,下⾯以学⽣上⾃习时接电话为例阐述⼀下中断的概念。
单⽚机的中断系统有5个中断源、2个中断优先级,可实现两级中断服务程序嵌套。
如果单⽚机没有中断系统,单⽚机的⼤量时间可能会浪费在查询是否有服务请求发⽣的定时査询操作上。
采⽤中断技术完全消除了单⽚机在査询⽅式中的等待现象,⼤⼤地提⾼了单⽚机的⼯作效率和实时性。
单⽚机中断系统结构及中断控制中断系统结构图如图5-2所⽰。
由图5-2可见,MCS-51中断系统共有5个中断请求源:INT0——外部中断请求0,中断请求信号由INT0引脚输⼊。
定时/计数器T0计数溢出发出的中断请求。
INT1——外部中断请求1,中断请求信号由INT1引脚输⼊。
定时/计数器T1计数溢出发出的中断请求。
串⾏⼝中断请求。
中断优先级从⾼到底排列。
单⽚机如何知道有中断请求信号?是否能够响应该中断?若5个中断源请求信号同时到来,单⽚机如何响应?这些问题都可以由中断寄存器来解决。
单⽚机中断寄存器有中断标志寄存器TCON和SCON、中断使能寄存器IE和中断优先级寄存器IP,这些寄存器均为8位。
中断标志寄存器5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存,单⽚机通过这些中断标志位的状态便能知道具体是哪个中断源正在申请中断。
TCON寄存器TCON寄存器为定时/计数器的控制寄存器,字节地址为88H,可位寻址。
特殊功能寄存器TCON的格式如图5-3所⽰。
TCON各标志位功能如下。
TF1——定时/计数器T1的溢出中断请求标志位。
51系列单片机的中断系统
51系列单片机的中断系统在单片机开发过程中,中断系统是非常重要的,它在很大程度上决定了系统对外界的反应速度。
因此,用好中断,对一个系统开发的成败有着非常重要的意义。
同时,在应用系统的开发中,单片机中断资源也是相当宝贵的,如何合理地使用中断资源,也是一个需要认真对待的问题。
几乎所有的单片机开发实例,都涉及了中断系统的使用问题。
对中断概念的理解,一般都是站在CPU 的角度,认为中断系统是一种重要的外部设备。
如果换个角度,面向应用任务来认识中断,就会看到,中断不仅仅只是外设。
引入中断概念后,一块物理CPU 就变成了多块“逻辑CPU ”,复杂的多任务应用系统才有可能实现,操作系统才得以变成现实。
可以说,中断是使微机走向实用的关键概念。
8.1 中断概念8.1.1 从面向CPU 的观点认识中断概念在应用系统中,CPU 与外部设备之间需要频繁交换数据。
通常CPU 处理数据的速度比外部设备快得多,这造成系统内部各部分之间数据协调转移的不匹配。
为解决外部设备与CPU 之间的速度匹配问题,CPU 与外部设备之间的数据交换可以采用两种办法:查询方式和中断方式。
在查询方式中,不论是输入还是输出,都是以计算机为主动的一方。
CPU 在传送数据之前,首先要查询外部设备是否处于“准备好”状态。
对于输入操作,需要知道外设是否已把要输入的数据准备好了;对于输出操作,则要知道外设是否已把上一次CPU 输出的数据处理完毕。
只有通过查询确信外设已处于“准备好”状态,CPU 才能发出访问外设的指令,实现数据交换。
查询方式的优点是通用性好,可以用于各类外部设备和CPU 之间的数据传送,缺点是需要有一个等待查询过程,CPU 在等待查询期间不能进行其他操作,从而导致工作效率低下。
与查询方式不同,中断方式是外设主动提出数据传送的请求,CPU 在收到这个请求以前,一直在执行着主程序,只是在收到外设希望进行数据传送的请求之后,才中断原有主程序的执行,暂时去与外设交换数据,数据交 图8.1中断概念示意图 换完毕后立即返回继续执行主程序。
51单片机的中断系统PPT幻灯片课件
3)低优先级的中断源和高优先级的中断源同时产生中 断请求时,系统先响应高优先级的中断请求,后响应低优 先级的中断请求;
8
4)多个同级的中断源同时产生中断请求时,系统按照默 认的顺序先后予以响应,5个中断默认优先级见表4-1。
12
直至该中断信号被检测到。同时在中断返回前必须变为电 平,否则会再次产生中断。概括地说,IT0=1时INT0的中 断请求信号是脉冲后沿(负脉冲)有效,P3.2从1变为0时 系统认为INT0有中断请求;IT0=0时,INT0的中断请求信 号是低电平有效,即P3.2保持为0时系统认为INT0有中断 请求。
TF0,定时器/计数器T0的溢出中断请求标志位。 当T0开始计数后,从初值开始加1计数,在计满产生 溢出时,由硬件使置位TF0,向CPU请求中断,CPU响 应中断时,硬件自动将TF0清零。如果采用软件查询 方式,则需要由软
16
件将TF0清零。因此,系统是通过检查TF0的状态来确定T0 是否有中断请求。TF0=1表示T0有中断请求,TF0=0时则 没有。
14
端输入低电平,则置位IE0。采用电平触发时,输入到 INT0端的外部中断信号必须保持低电平, IT0=1时表示 有中断请求,IT0=0时则没有中断请求。下面INT1的情况 类似,不再重复说明。
15
IT1,外部中断1(INT1)的触发方式控制位。其 意义和IT0相同。
IE1,外部中断1的中断请求标志位。其意义和 IE0相同。
嵌入式单片机方向—单片机C语言程序项目设计
项目4 单片机的中断系统
1
4.1 任务说明
本节为理论内容,重点掌握单片机的中断类型、控制方 式以及应用,单片机共有5个中断源,两级优先级控制,在 以后的项目实践中,我们要用到定时器中断、外部中断和串 行中断。
MCS-51单片机的中断系统
其各位格式为: D7 D6 D5 D4 D3 D2 D1 D0 -- -- -- PS PT1 PX1 PT0 PX0
如果CPU接收到几个相同优先级的中断请求源时,响应哪一个 中断申请要取决于一个内部的硬件查询序列,此时应按照下表所 示的优先权结构先后响应中断请求。
中断源 外部中断0(IE0) 定时器T0中断(TF0) 外部中断1(IE1) 定时器T1中断(TF1) 串行口中断(RI、TI)
主程序的中断处理
1.2 CPU响应及处理中断机制
一般来说,根据中断源的轻重缓急排序,CPU优先处理最 紧急事件的中断请求源。也就是说,需要对各个中断源设定 相应的优先级,CPU总是最先响应级别最高的中断。中断源可 以分为两个中断优先级:高优先级和低优先级。用户可以用 关中断指令或复位指令来屏蔽所有中断请求,也可以用开中 断指令使CPU接收中断申请。
SM0 SM1 SM2 REN TB8 RB8 TI RI
1.4 中断控制及中断优先级
1.中断允许控制寄存器IE(字节地址A8H)
D7 D6 D5 D4 D3 D2 D1 D0 EA -- ET2 ES ET1 EX1 ET0 EX0
使用汇编语言程序控制中断请求信号的允许 或禁止的程序示例如下:
CLR EA ; 禁止所有中断请求
MOV SP, #60H SETB PX0 SETB IT0 SETB ET0 SETB EX0 SETB EA
【例2】若要求外部中断引脚 采用边沿触发方式,处于高优先 级,初始化程序可以采用位操作指令,也可以用字节型指令进行编 制。
位操作指令: SETB EA SETB EX1 SETB PX1 SETB IT1
送/接收后引起。
2.中断请求标志 1)TCON寄存器中的中断标志 TCON是定时/计数器T0、T1的控制寄存器,格式如下:
51单片机的中断系统
(4)DATA(数据地址赋值)伪指令 格式为: 字符名称 DATA 表达式 ORG 0200H AA DATA 35H DELAY XDATA 0A7E6H MOV A,AA ;A←(35H) ┇ LCALL DELAY ;调用07E6H子程序 ┇ END
(5)DB(定义字节)伪指令 格式为: [标号:]DB 项或项表 (6)DW(Define Word) 伪指令 格式为: [标号:]DW 项或项表 (7)DS(定义存储空间)伪指令 DS(Define Storage) 伪指令 格式为: [标号:] DS 表达式 (8)BIT(位地址赋值)伪指令 格式为: 字符名称 BIT 位地址
§4.5 MCS-51单片机对中断系统的初始化 中断系统的初始化一般有以下3步: 开放相应中断源; 设定该中断源的中断优先级; 对于外部中断源,还要设定中断触发方式 (是低电平触发还是负边沿触发)。
1、外部中断的初始化 采用位操作指令 SETB EA SETB EX0 SETB PX0 CLR IT0 字节型指令 MOV IE, #81H ORL IP, #01H ANL TCON, #0FDH 外部中断的撤除 CLR EX0
2. 定时器/计数器溢出中断的初始化 SETB EA SETB ET0 SETB PT0 定时器/计数器溢出中断的撤除 CLR ET0 3. 串行口中断的初始化 SETB EA SETB ES 串行口中断的撤除 CLR ES
§4.8 外部中断实验
实验要求在CPU响应外部中断1的中断请 求后,顺序点亮8支LED;在响应外部中断0 的中断请求后,停止顺序点亮8支LED。
4.1.2 中断源 中断源:引起中断的事件或发出中断请示 的来源。 中断源一般有以下几种: 1. 外部设备中断源 2. 故障中断源 3. 定时器中断源
51单片机中断系统工作原理
51单片机中断系统工作原理51单片机是一种常见的嵌入式微控制器,它的中断系统是其重要的工作原理之一,能够实现对外部事件的响应。
下面我们就来详细了解一下51单片机中断系统的工作原理。
一、中断系统的基本概念中断是指在程序执行过程中,由外部设备或用户触发处理器的一种特殊机制。
中断可以分为硬件中断和软件中断,硬件中断是硬件设备通过中断控制器向处理器请求服务的机制,而软件中断则是通过使用特殊指令触发中断的机制。
在51单片机中,可以通过触发INT0和INT1外部中断来向单片机请求服务。
二、中断系统的组成51单片机的中断系统主要由以下几个组成部分组成:1.中断向量表中断向量表是指存放中断服务程序入口地址的一组地址表。
当中断事件触发时,处理器会自动跳转到相应的中断向量表中寻找对应的中断服务程序入口地址,然后执行相应的中断服务程序。
511单片机中断向量表的地址为0x0000H~0x0031H,共有13个向量表项。
2.中断屏蔽寄存器中断屏蔽寄存器是指用于屏蔽和允许中断的寄存器。
当某个中断事件触发时,处理器会先检查该中断的中断屏蔽寄存器是否为0,如果为0,则允许该中断服务程序执行。
如果中断屏蔽寄存器不为0,则该中断服务程序不会被执行。
在51单片机中,中断屏蔽寄存器为IE寄存器,共有8位,每一位代表一个中断源的屏蔽情况。
3.中断服务程序中断服务程序是处理中断事件的程序,它通常只有几十个指令,需要尽快完成操作并返回。
在51单片机中,中断服务程序通过中断向量表来调用。
三、中断的使用方法1.触发中断在51单片机中,可以通过对INT0和INT1引脚进行电平变化或跳变触发INT0中断和INT1中断。
例如,当INT0和P3.2引脚连接时,当P3.2引脚变为低电平时,就会触发INT0中断。
2.编写中断服务程序编写中断服务程序需要注意以下几点:a.程序需要保证在中断服务程序中只使用寄存器组中的部分寄存器,在返回前需要恢复这些寄存器的值。
51单片机中断系统
0000H单元:上电时,程序计数器PC所指向的单元 0003H单元:外部中断/INT0的入口地址; 000BH单元:定时器T0的溢出中断入口地址; 0013H单元:外部中断/INT1的入口地址; 001BH单元:定时器T1的溢出中断入口地址; 0023H单元:串行口接收、传送的中断入口地址。
如图3-1所示,对事件的整个处理过程,称为中断处理(或中断服务)。
图:中断响应过程
能够实现中断处理功能的部件称为中断系统; 产生中断的请求源称为中断请求源。 中断源向CPU提出的处理请求,称为中断请求(或中断申请)。
进入中断→保护现场→中断处理恢复现场 →中断返回
中断方式优点:大大地提高了CPቤተ መጻሕፍቲ ባይዱ的工作效率。
TCON为定时器/计数器的控制寄存器,字节地址为88H。 TCON包含: (1)T0和T1的溢出中断请求标志位TF1和TF0 (2)外部中断请求标志位IE1与IE0。格式如图5-3所示:
各标志位的功能: (1)IT0—选择外中断请求0为跳沿触发方式还是电平触发方
式: IT0=0,为电平触发方式。IT0=1,为跳沿触发方式。 可由软件置“1”或清“0”。
PAGE: 37
(5)ET0:定时器/计数器T0的溢出中断允许位 0:禁止T0溢出中断; 1:允许T0溢出中断。
(6)EX0:外部中断0中断允许位。 0:禁止外部中断0中断; 1:允许外部中断0中断。
C51复位后,IE清0,所有中断请求被禁止。 若使某一个中断源被允许中断,除了IE相应的位的被置“1” ,还必须
➢ 电平触发方式的外部中断请求信号的完全撤消,是通过软硬 件相结合的方法来实现的。
③串行口中断请求的撤消
➢ 响应串行口的中断后,内部硬件没有自动清除TI或RI,所 以串行口中断请求的撤消只能用软件清除。
单片机C51的中断系统
汇报人: 202X-01-03
目录
• C51单片机的中断系统概述 • C51单片机的中断处理过程 • C51单片机的中断服务程序设计 • C51单片机的外部中断 • C51单片机的中断应用实例
CHAPTER 01
C51单片机的中断系统概述
中断的基本概念
中断是单片机在执行程序过程中,遇到突发事件或异常情况时,暂时停止当前任 务,转而去处理突发事件,处理完毕后再返回到原任务继续执行的过程。
中断优先级和中断向量
中断优先级
C51单片机的中断优先级分为抢 占优先级和子优先级,抢占优先 级高的中断可以打断正在执行的 低优先级中断。
中断向量
中断向量是指中断处理程序的入 口地址,C51单片机通过中断向 量表来保存各个中断源的中断向 量。
CHAPTER 02
C51单片机的中断处理过程
中断请求
CHAPTER 03
C51单片机的中断服务程序 设计
中断服务程序的编写
01
初始化中断向量表
在C51单片机中,需要初始化中 断向量表来指定每个中断源对应 的中断服务程序入口地址。
02
编写中断服务程序
03
配置中断触发方式
根据具体的中断源,编写相应的 中断服务程序,实现相应的功能 。
根据需要配置中断触发方式(电 平触发或边沿触发),并设置中 断优先级和子优先级。
外部中断概 述
外部中断的 处理
外部中断具有响应速度快、实时性好等优点,适用于 需要快速响应外部事件的应用场景。
外部中断的 优点
当外部中断发生时,需要编写相应的中断服务程序来 处理中断。在中断服务程序中,可以执行相应的操作 ,如读取传感器数据、控制继电器等。
51单片机的中断系统讲解
跑马灯运行,按键按下停止。中断方式
void delay(unsigned int d) { while(--d>0); }
void INT0_ISR() { P1=0xFF; }
interrupt 0
=1,有中断请求;= 0,无中断请求。
CPU响应中断后, TF1、TF0、IE1、IE0自动清零。 TI,RI标志必须软件清零。
2.外部中断触发方式选择位:
IT0、IT1 =1:负边沿(脉冲)触发中断请求; =0:低电平触发中断请求。
3.中断允许控制位:EA、ES、ET1、EX1、ET0、EX0
4.1
MCS-51单片机中断系统
4.1.4 中断响应过程
1. 中断采样
外部中断源 2. 中断查询
CPU
INT0 INT1
TCON SCON
3. 中断响应 执行中断程序
LCALL addr16
4 单片机的中断与定时系统
4.1
MCS-51单片机中断系统
4.2
C51单片机中断程序
函数类型 函名 interrupt m [using n]
{ while(--d>0); } void main() { unsigned char i,sel; while(1)
{ sel=0xFE; for(i=0;i<8&&INT1==1;i++)
{ P1=sel; delay(50000); sel=sel<<1; sel=sel|0x01; } } }
EA (总中断)
EX1、EX0 (外部中断)
ET1、ET0(定时计数器中断) ES (串行中断)
=1开中断;= 0关中断。
51单片机学习笔记中断系统
51单片机学习笔记中断系统一、51单片机的中断系统 1,中断的概念 2,51单片机的中断系统结构二、中断请求标志 1,中断优先级 2,中断优先级原则 3,中断源三、51单片机中断处理过程一、51单片机的中断系统1,中断的概念CPU在处理其中一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A (中断返回),这一过程称为中断图解引起CPU中断的根源,称为中断源。
中断源向CPU提出的中断请求。
CPU暂时中断原来的事务A,转去处理事件B。
对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。
实现上述中断功能的部件称为中断系统。
2,51单片机的中断系统结构5个中断源分别为外部中断0和1(INT0和INT1)、定时器计数器中断0和1(T0和T1)、串行通信中断(RX TX)。
TCON是控制寄存器,用来控制定时器(T0、T1)的启动和停止及设置溢出标志和中断情况;IE是中断允许寄存器;IP是中断优先级寄存器。
控制寄存器TCON:IT0、IT1、IE0、IE1位用于外部中断。
IT0,外部中断0触发方式选择位; IE0,外部中断0请求标志(置1表示INT0正向CPU申请中断)IT0=1时,下降沿触发(电平从高到低负跳变有效); IT0=1时,下降沿触发,IE0置1;IT0=0时,低电平触发(一直响应); IT0=0时,低电平触发,IE0置1;IT1同理。
IE1同理。
TF0、TF1、TR0、TR1位用于定时器计数器。
(定时器计数器下一篇文章细讲)TR0,定时器0运行控制位; TF0,定时器0溢出标志GATE=1,INT1=1,TR0=1时,启动定时器0; T0计满溢出时,TF0置1; GATE=0,TR0=1时,启动定时器0; TF1同理。
TR1同理。
中断允许寄存器IE:你要使用一些中断,就要对相应的允许位置1EX0,外部中断0中断允许位; ET0,定时器计数器0中断允许位; ES,串行口中断允许位EX0=1,打开外部中断0中断; ET0=1,打开T0中断; ES=1,打开串行口中断EX0=0,关闭外部中断0中断; ET0=0,关闭T0中断; ES=0,关闭串行口中断EX1同理。
51单片机中断系统
51单片机中断系统关单片机中断系统的概念:什么是中断,我们从一个生活中的例程引入。
你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。
这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。
仔细研究一下生活中的中断,对于我们学习单片机的中断也很有好处。
第一、什么可经引起中断,生活中很多事件能引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了….等等诸如此类的事件,我们把能引起中断的称之为中断源,单片机中也有一些能引起中断的事件,8031中一共有5个:两个外部中断,两个计数/定时器中断,一个串行口中断。
第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人按了门铃,你该先做那样呢,如果你正是在等一个很重要的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,则可能就不会去理会电话了。
如果不是这两者(即不等电话,也不是等人上门),你可能会按你常常的习惯去处理。
总之这里存在一个优先级的问题,单片机中也是如此,也有优先级的问题。
优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断产生的情况,比如你正接电话,有人按门铃的情况,或你正开门与人交谈,又有电话响了情况。
考虑一下我们会怎么办吧。
第三、中断的响应过程:当有事件产生,进入中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不一样的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不一样的中断,我们要在不一样的地点处理,而这个地点常常还是固定的。
计算机中也是采用的这种办法,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,当然在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程序。
51单片机的中断系统解析
51单片机的中断系统解析在单片机的世界里,中断系统就像是一位高效的调度员,能够让单片机在处理主要任务的同时,及时响应并处理那些紧急或重要的事件。
51 单片机的中断系统就是这样一个强大而实用的功能模块,它为单片机的应用开发提供了极大的灵活性和高效性。
要理解51 单片机的中断系统,首先得知道什么是中断。
简单来说,中断就是单片机在正常执行主程序的过程中,由于内部或外部的事件触发,暂停当前正在执行的程序,转而去执行相应的中断服务程序,处理完中断事件后再返回原来被中断的地方继续执行主程序。
51 单片机的中断源共有 5 个,分别是外部中断 0(INT0)、外部中断 1(INT1)、定时器/计数器 0 溢出中断(TF0)、定时器/计数器 1溢出中断(TF1)和串行口中断(RI 或 TI)。
外部中断 0 和 1 是由单片机外部引脚的电平变化引起的。
当外部中断引脚(P32 对应 INT0,P33 对应 INT1)上的电平从高到低或从低到高发生变化时,就会触发相应的中断。
这在需要实时响应外部事件的场合非常有用,比如按键检测、外部信号的捕捉等。
定时器/计数器 0 和 1 溢出中断则是基于定时器/计数器的计数满溢出而产生的。
通过设置定时器/计数器的工作方式和初值,可以实现精确的定时或计数功能。
当计数器达到设定的值时,就会产生溢出中断,从而可以执行相应的定时处理任务,比如定时采样、定时控制等。
串行口中断是在串行通信过程中产生的。
当串行口接收完一帧数据或者发送完一帧数据时,就会触发相应的中断,以便及时处理接收到的数据或者准备发送下一组数据。
51 单片机的中断系统有两级控制,分别是总中断允许控制位 EA 和各中断源的允许控制位。
总中断允许控制位 EA 就像是一个总开关,只有当 EA 置 1 时,整个中断系统才有可能响应中断。
而各中断源的允许控制位则分别控制着相应中断源的开关,只有当对应的允许控制位也置 1 时,该中断源才能被响应。
第6章 51单片机的中断系统和外部中断
C1 C2 R1
U1
30pF 19
R2
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 100
P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C52
SW1
SW-SPST
SW2
SW-SPST
6.5 51单片机外部中断应用实例
6.5.2 低电平中断的应用
3、实例的应用代码
51单片机使用两个外部中断服务子程序来对外部中断0和外部中断1的 进行处理,在中断服务子程序中只做一件事情,就是控制对应的LED 翻转。
6.3 51单片机的中断服务子程序设计
中断服务函数需要使用关键字interrupt来进行定义,interrupt后面的参数 0~4表明了中断源,在实际使用中常常使用using来定义在中断服务函数中使 用的寄存器组,其参数可以为0~3,分别对应通用工作寄存器组0~组3, 可以减少压入堆栈的变量内容,从而简化中断服务函数的内容,以加快程序 执行的速度。 标准结构:void 函数名(void) interrupt 中断标号 using 寄存器编号 { 中断函数代码; } 51单片机中断源对应的中断标号按照内部优先级从高到低的顺序分配为 0~5,外部中断0对应的中断号是0,定时/计数器T2对应的中断号是5 。
第六章 51单片机的中断系统和外部中 断
6.1 51单片机的中断系统
51单片机中断系统
51单片机中断系统在单片机的世界里,中断系统就像是一位高效的调度员,能够让单片机在处理复杂任务时有条不紊,实现高效、实时的响应。
今天,咱们就来好好聊聊 51 单片机中断系统这个重要的概念。
咱们先来理解一下啥是中断。
想象一下,单片机正在专心致志地执行一个任务,比如说计算一组数据的平均值。
这时候,突然有个更紧急、更重要的事情发生了,比如外部设备传来了一个急需处理的数据。
这时候,单片机就得暂时放下手头正在做的事情,先去处理这个紧急任务,处理完之后再回来继续之前的工作。
这个过程,就是中断。
51 单片机的中断系统呢,有 5 个中断源。
这 5 个中断源就像是 5 个不同的紧急信号通道,分别是外部中断 0、外部中断 1、定时器/计数器0 溢出中断、定时器/计数器 1 溢出中断和串行口中断。
外部中断 0 和外部中断 1 通常是由外部的信号触发的。
比如说,你可以通过连接一个按钮到单片机的引脚,当你按下按钮时,就会产生一个外部中断信号,让单片机暂停当前的工作,去执行与这个按钮相关的处理程序。
定时器/计数器 0 溢出中断和定时器/计数器 1 溢出中断则是跟单片机内部的定时器/计数器有关。
你可以设定定时器/计数器的值,当它计数到满或者定时时间到了,就会产生中断。
这在很多需要定时操作的场景中非常有用,比如定时发送数据、定时控制电机转动等。
串行口中断则是在单片机进行串行通信时发挥作用。
当串行口接收到数据或者发送完数据时,就会产生中断,通知单片机进行相应的处理。
那单片机是怎么知道有中断发生的呢?这就得提到中断标志位了。
每个中断源都有一个对应的中断标志位,当中断发生时,这个标志位就会被置位。
单片机会定期检查这些标志位,一旦发现有标志位被置位了,就知道有相应的中断发生了。
但是,单片机也不能一有中断就马上跑去处理呀,万一首先正在执行的任务很重要不能中断呢?所以,51 单片机还有中断允许控制寄存器和中断优先级控制寄存器。
中断允许控制寄存器就像是一个总开关,你可以通过设置它来决定是否允许某个中断源产生中断。
51单片机的中断系统ppt课件
项目4 单片机的中断系统
最新课件
1
4.1 任务说明
本节为理论内容,重点掌握单片机的中断类型、控制方 式以及应用,单片机共有5个中断源,两级优先级控制,在 以后的项目实践中,我们要用到定时器中断、外部中断和串 行中断。
最新课件
2
4.2 中断系统的结构
51单片机中断系统的结构如图4-1所示,5个中断 分别有5个中断源,并提供两个中断优先级控制,能 够实现两级中断服务程序的嵌套。单片机的中断系统 是通过4个相关的特殊功能寄存器TCON、SCON、IE和 IP来进行管理的。因此用户可以用软件对每个中断的 开和关以及优先级的控制。定时器控制寄存器TCON用 于设定外部中断的中断。
最新课件
12
直至该中断信号被检测到。同时在中断返回前必须变为电 平,否则会再次产生中断。概括地说,IT0=1时INT0的中 断请求信号是脉冲后沿(负脉冲)有效,P3.2从1变为0时 系统认为INT0有中断请求;IT0=0时,INT0的中断请求信 号是低电平有效,即P3.2保持为0时系统认为INT0有中断 请求。
最新课件
29
PS,串行口的中断优先级控制位。PS=1时, 串行口被定义为高优先级中断源;PS=0时,串行口 被定义为低优先级中断源。
PT1,定时器/计数器T1的中断优先级控制位。 PT1=1,T1被定义为高优先级中断源;PT1=0,T1 被定义为低优先级中断源。
PX1,外部中断1(INT1)的优先级控制位。PX =1,外部中断1被定义为高优先级中断源;PX0=0, 外部中断1被定义为低优先级中断源。
最新课件
18
SC ON
D 7
D6 D5 D4 D3 D2 D1 D0
51单片机中断系统
51单片机中断系统本讲任务:了解中断概念,以外部中断为例讲解中断程序的编写方法。
中断的概念:单片机处理某一事件A时,发生了另一事件B请求(中断求);单片机暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待单片机将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。
引起单片机中断的根源或原因:中断源向单片机提出中断请求,中断发生的时刻不能事先确定。
中断优先级:单片机的中断系统一般允许多个中断源,当几个中断源同时向单片机请求中断,要求为它服务的时候,这就存在单片机优先响应哪一个中断源请求的问题。
通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。
单片机总是先响应优先级别最高的中断请求。
中断嵌套:当单片机正在处理一个中断请求源的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断源请求。
单片机暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。
中断优先级的三条原则:1:单片机同时接收到几个中断时,首先响应优先级别最高的中断请求。
2:正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
3:正在进行的低优先级中断服务,能被高优先级中断请求所中断。
中断系统相关寄存器:中断源:8051的中断系统有5个中断源,2个优先级。
中断响应条件:中断源有中断请求;此中断源的中断允许位为1;开中断(即EA=1)。
以上三条同时满足时,CPU才有可能响应中断。
一次中断过程的完整步骤:1、中断请求:中断事件一旦发生,中断源就提交中断请求(将中断标志位置1),欲请求单片机暂时放下目前的工作转向为该中断作专项服务。
2、中断使能:虽然中断源提交了中断请求,但是,能否得到单片机的响应,还要取决于该中断请求能否通过若干关卡送达单片机(中断使能位等于1,关卡放行),这些关卡有以下两类:此中断源的中断允许位;全局中断允许位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IE D7 D6 D5 D4 D3 D2 D1 D0
位地 AF AE AD AC AB AA A9 A8 址 HHHHHHHH
位名 称
EA
— —
— —
ES
ET 1
EX 1
ET 9
EX 0
EA,CPU的中断开放标志。EA=0时,CPU屏蔽所 有的中断请求,此时即使有中断请求,系统也不会去响 应;
EA = 1时,CPU开放中断,但每个中断源的中断请 求是允许还是被禁止,还需由各自的控制位确定。
TF1,定时器/计数器T1的溢出中断请求标志位,其作 用同TF0。
TR0和TR1分别是T0和T1的控制位,与中断无关。将 在定时器/计数器应用内容中介绍。
(2)SCON SCON为串行口控制寄存器,主要用于设置串行
口的工作方式,同时也用于保存串行口的接收中断和 发送中断标志。字节地址是98H,既支持字节操作, 又支持位操作。位地址的范围是98H~9FH。8位中只 有最低的两位与中断有关,其格式如下:
ES,串行口的中断控制位。ES=1,允许串行口中 断;ES=0,禁止串行口中断。
ET1:定时器/计数器1的溢出中断控制位。ET1=1, T1的中断开放,ET1=0,T1的中断被关闭。
EX1,外部中断1的中断控制位。EX1=1,允许外部 中断1中断;EX1=0,禁止外部中断1的中断。
ET0,定时器/计数器T0的溢出中断控制位。ET0 =1时允许T0中断;ET0=0,禁止T0中断。
PT0,定时器/计数器T0的中断优先级控制位。其功能 同PT1。
PX0,外部中断0(INT0)的优先级控制位。其功能 同PX1。
中断优先级控制寄存器IP的各位都由用户置位或复 位,可用位操作指令或字节操作指令更新IP的内容,以改 变各中断源的中断优先级,单片机复位后IP全为0,各个 中断源均为低优先级中断。
IE0,外部中断0的中断请求标志位。如果IT0置1,则 当P3.2上的电平由1变为0时,由硬件置位IE0,向CPU申
请中断。如果CPU响应该中断,在转向中断服务时,由硬 件将IE0复位。可见,IT0用于设定INT0中断请求的信号形 式。设定了IT0后,如果INT0产生了有效的中断请求信号 (P3.2出现脉冲后沿或低电平),则由中断系统的硬件电 路自动将IE0置位。单片机系统在工作过程的每一个机器 周期的特定时刻(即S5P2),通过检测INT0的中断请求标 志位IE0是1还是0来确定INT0是否有中断请求,而不是通 过检测P3.2上的中断请求信号来确定INT0的中断请求。
定时器控制寄存器TCON是定时器/计数器T0和T1 的控制寄存器,也用来锁存T0和T1的溢出中断请求
TF0、TF1标志及外部中断请求源标志IE0、IE1。TCON的 字节地址88H,既支持字节操作,又支持位操作。位地址 的范围是
TCON D7 D6 D5 D4 D3 D2 D1 D0
位名 称
TF1
一、中断源
单片机5个中断源都有自己的标志位,包括外部 中断(P3.1)引脚接受的外部中断请求;外部中断 (P3.2)引脚接受的外部中断请求;定时器/计数器0 (T0)溢出中断请求;定时器/计数器1(T0)溢出中 断请求;串行口完成一帧数据发送或接收中断请求源 TI或RI。
其中INT0和INT1一般称为外部中断,T0、T1和串行口 (SIO 的TI和RI)则称为内部中断。在有中断请求时,
EX0,外部中断0的中断控制位。EX0=1,允许 外部中断0的中断;EX0=0,禁止外部0的中断。
可见,EA=0时,所有的中断都被屏蔽,此时IE 低5位的状态没有任何作用。EA=1时,可以通过对IE
设置来开放或关闭相应的中断,在图5-1中可以很直观地 看出来。单片机复位后,IE寄存器被清零,所有的中断都 被屏蔽。IE寄存器中各个位的状态支持位寻址,用户根据 要求用指令SETB置位或CLR清零,而实现相应的中断源 允许中断或禁止中断,当然也可以采用字节操作来实现。 例如,若要求开放外部中断,关闭内部中断,则可以用两 条置位指令将EA、EX0和EX1置位,ES、ET1和ET0保持 为系统复位后的默认值0。如果使用字节操作方式,则一
直至该中断信号被检测到。同时在中断返回前必须变为电 平,否则会再次产生中断。概括地说,IT0=1时INT0的中 断请求信号是脉冲后沿(负脉冲)有效,P3.2从1变为0时 系统认为INT0有中断请求;IT0=0时,INT0的中断请求信 号是低电平有效,即P3.2保持为0时系统认为INT0有中断 请求。
(3)中断屏蔽寄存器IE
8051单片机的CPU对中断源的开放或屏蔽(即 闭),是由片内的中断允许寄存器IE(也称为中断控 制寄存器或中断屏蔽寄存器)控制的。IE的字节地址 是A8H,既支持字节操作,又支持位操作。位地址的 范围是A8H~AFH。8位中有6位与中断有关,剩下的 两位没有定义。其格式如下:
B8H,既支持字节操作,又支持位操作。位地址的范围是 B8H~BFH。8位中有5位与中断有关,剩下的3位没有定 义。其格式如下 :
IP D7 D6 D5 D4 D3 D2 D1 D0
位地 BF BE BD BC BB BA B9 B8 址 HHHHHHHH 位名 — — — PS PT1 PX1 PT0 PX0 称 ———
嵌入式单片机方向—单片机C语言程序项目设计
项目4 单片机的中断系统
4.1 任务说明
本节为理论内容,重点掌握单片机的中断类型、控制方 式以及应用,单片机共有5个中断源,两级优先级控制,在 以后的项目实践中,我们要用到定时器中断、外部中断和串 行中断。
4.2 中断系统的结构
51单片机中断系统的结构如图4-1所示,5个中断 分别有5个中断源,并提供两个中断优先级控制,能 够实现两级中断服务程序的嵌套。单片机的中断系统 是通过4个相关的特殊功能寄存器TCON、SCON、IE和 IP来进行管理的。因此用户可以用软件对每个中断的 开和关以及优先级的控制。定时器控制寄存器TCON用 于设定外部中断的中断。
串口控制寄存器SCON用于保存串行口(SIO)的发送 中断标志和接收中断标志。中断控制寄存器IE用于设定各 个中断源的开放或关闭。各个中断源的优先级可以由中断 优先级寄存器IP中的相应位来确定,同一优先级中的各中 断源同时请求中断时,由中断系统的内部查询逻辑来确定 响应的顺序。
图4-1 8051单片机中断系统的结构
端输入低电平,则置位IE0。采用电平触发时,输入到 INT0端的外部中断信号必须保持低电平, IT0=1时表示 有中断请求,IT0=0时则没有中断请求。下面INT1的情况 类似,不再重复说明。
IT1,外部中断1(INT1)的触发方式控制位。其 意义和IT0相同。
IE1,外部中断1的中断请求标志位。其意义和 IE0相同。
TR 1
TF0
TR 0
IE1
IT1
IE0
IT0
IT0,外部中断0(INT0)触发方式控制位,用于 设定INT0中断请求信号的有效方式。如果将IT0设定 为1,则外部中断0为边沿(脉冲)触发方式,CPU在 每个机器周期的S5P2采样INT0的输入信号(即单片 机的P3.2脚)。如果在一个机器周期中采样到高电平, 在下一个机器周期中采样到低电平,则硬件自动将 IE0置为“1”,向CPU请求中断;如果IT0为0,则外 部中断0为电平触发方式。此时系统如果检测到INT0
SC ON
D 7
D6 D5 D4 D3 D2 D1 D0
位地 9F 9E 9D 9C 9B 9A 99 98 址 HH H H H H H H
位名 称
S M 0
SM 1
S M2
R E N
ቤተ መጻሕፍቲ ባይዱ
TB 8
RB 8
TI
RI
RI,串行口的接收中断标志位。8051单片机的 串行口共有4中工作方式。在串行口的方式0中,每当 接收到第8位数据时,由硬件置位RI;在其他工作方 式中,若SM2=0,在接收到停止位的中间时置位RI; 若SM2=1,仅当接收到的第9位数据RB8为1时,并 且在接收到停止位的中间时置位RI,表示串行口已经 完成一帧数据的接收,向CPU申请中断,准备
TF0,定时器/计数器T0的溢出中断请求标志位。 当T0开始计数后,从初值开始加1计数,在计满产生 溢出时,由硬件使置位TF0,向CPU请求中断,CPU响 应中断时,硬件自动将TF0清零。如果采用软件查询 方式,则需要由软
件将TF0清零。因此,系统是通过检查TF0的状态来确定T0 是否有中断请求。TF0=1表示T0有中断请求,TF0=0时则 没有。
表4-1 中断入口地址及优先级排列表
中断源
入口地址
中断级别
外部中断0
0003H
最高
T0溢出中断
000BH
外部中断1
0013H
T1溢出中断 串行口中断
001BH 0023H
最低
三、中断系统使用的多功能寄存器 要使用8051单片机的中断功能,必须掌握4个相
关的特殊功能寄存器中特定位的意义及其使用方法。 下面分别介绍4个特殊功能寄存器对中断的具体管理 方法。 (1)TCON
PS,串行口的中断优先级控制位。PS=1时, 串行口被定义为高优先级中断源;PS=0时,串行口 被定义为低优先级中断源。
PT1,定时器/计数器T1的中断优先级控制位。 PT1=1,T1被定义为高优先级中断源;PT1=0,T1 被定义为低优先级中断源。
PX1,外部中断1(INT1)的优先级控制位。PX =1,外部中断1被定义为高优先级中断源;PX0=0, 外部中断1被定义为低优先级中断源。
接收下一帧数据。但当CPU转到串行口的中断服务程序 时,不复位RI,必须由设计者在程序中用指令来清零RI。 简单地说,串行口在接收完一帧数据时
自动将RI置位,向CPU申请中断。 TI,串行口的发送中断标志位。在方式0中,每当发
送完8位数据时由硬件置位。在其他方式中,在发送到停 止位开始时置位TI,表示串行口已经完成一帧数据的发 送,向CPU申请中断,准备发送下一帧数据。要发送的数 据一旦写入串行口的数据缓冲器SBUF,单片机的硬件电 路就立即启动发送器进行发送。CPU响应中断时并不清零 TI,同样要在程序中用指令来清零。