单片机中断系统原理应用

合集下载

单片机外部中断原理及应用

单片机外部中断原理及应用

单片机外部中断原理及应用单片机是一种集成电路,可以执行特定任务的微型计算机。

它被广泛应用于各种电子产品中,如电视机、洗衣机、空调等。

为了提高单片机的灵活性和扩展性,可以通过外部中断来实现对特定事件的响应。

本文将探讨单片机外部中断的原理及其应用。

一、单片机外部中断的原理外部中断是指当某个特定的事件发生时,使单片机将正常的程序执行中断,转而去执行与该事件相关的程序。

在单片机中,外部中断信号通过引脚同内部中断控制电路相连。

当引脚的电平发生变化时,中断控制电路就会引起一个中断请求。

接下来,我们将详细介绍外部中断的工作原理。

1.引脚配置:首先,需要将外部中断所连接的引脚配置为中断引脚。

这通常是通过配置相应的寄存器来实现的。

具体的配置方法可能因不同的单片机而有所不同。

2.中断优先级:各个外部中断的优先级需要正确地设置。

当多个中断请求同时发生时,单片机应该按照设定的优先级执行相应的中断程序。

3.中断屏蔽:有时,我们可能不希望某些中断请求引起中断。

在这种情况下,可以设置相应的中断屏蔽。

屏蔽某个中断请求后,单片机将不会对该请求进行响应。

4.中断触发方式:外部中断可以基于边沿触发或电平触发。

在边沿触发中断中,中断请求的触发方式可以为上升沿触发、下降沿触发或双边沿触发;而在电平触发中断中,中断请求的触发方式可以为高电平触发或低电平触发。

5.中断服务程序:当发生中断时,单片机将会执行与该中断相关的中断服务程序。

中断服务程序是一段特定的代码,用于处理中断事件。

二、单片机外部中断的应用外部中断在单片机的应用中起到了关键作用。

通过外部中断,单片机可以及时响应外部事件,并执行相应的处理程序。

下面将以一个具体的应用场景来说明外部中断的应用。

假设我们正在设计一款智能家居系统,该系统可以通过远程控制来控制家中的灯光。

我们使用一个红外遥控器来发送控制码,单片机则通过外部中断来接收红外信号并解码。

1.硬件连接:将红外接收模块连接到单片机的外部中断引脚上。

单片机原理及应用教程(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

《单片机原理及应用》第6章 51单片机中断系统应用基础

《单片机原理及应用》第6章   51单片机中断系统应用基础
• 单片机原理及应用(第4版)
• 姜志海 王蕾 姜沛勋 编著
• 电子工业出版社
第6章 51单片机中断系统应用基础
• 本章主要介绍中断系统的应用。 • 包括:
6.1 中断结构与控制 6.2 中断优先级与中断子程序 6.3 外部中断应用举例 6.4 实验与设计
6.1 中断结构与控制
5个中断源
• 外部中断:外部中断0 /INT0
6.2 中断优先级与中断子程序
• 优先级排列如下(从高到低): 外部中断0 定时器/计数器0溢出 外部中断1 定时器/计数器1溢出 串行口中断
6.3 外部中断应用示例
• 51单片机提供了2个外部中断源 : • 外部中断0请求,占用P3.2引脚,其中断请求号为0 • 外部中断1请求,占用P3.3引脚,其中断请求号为2 • 外部中断源的初始化时通过设置相应的特殊功能寄
注意:
和例题5-6的区别
修改:
(1)按3下S0,P1口的发光状态发生反转 (2)按一下,灯变为闪烁,按一下,灯全亮。
【例6-2】当S0动作时,P1.0端口的电平反向,当外S1 动作,P1.7端口的电平反向
• 修改:
• (1)S0控制P1.0—P1.3的灯,S1控制P1.4—P1.7的灯 。
• (2)按下S0后,点亮8只LED;按下S1后,变为闪烁状 态。
(3)IE寄存器中的EA、EX0、EX1位
• EA为中断允许总控制位;EX0、EX1为外 部中断0中断和外部中断1中断的中断允 许位。如:
• SETB EA;开放总的中断控制 • SETB EX0;允许外部中断0中断 • CLR EX1;禁止外部中断1中断
【例6-1】初始状态时低4位灯亮,高4位的灯灭,编程 实现按一下S0,P1口的发光状态发生反转。

单片机中的中断与定时器的原理与应用

单片机中的中断与定时器的原理与应用

单片机中的中断与定时器的原理与应用在单片机(Microcontroller)中,中断(Interrupt)和定时器(Timer)是重要的功能模块,广泛应用于各种嵌入式系统和电子设备中。

本文将介绍中断和定时器的基本原理,并探讨它们在单片机中的应用。

一、中断的原理与应用中断是指在程序执行过程中,当发生某个特定事件时,暂停当前任务的执行,转而执行与该事件相关的任务。

这样可以提高系统的响应能力和实时性。

单片机中的中断通常有外部中断和定时中断两种类型。

1. 外部中断外部中断是通过外部触发器(如按钮、传感器等)来触发的中断事件。

当外部触发器发生状态变化时,单片机会响应中断请求,并执行相应的中断服务程序。

外部中断通常用于处理实时性要求较高的事件,如按键检测、紧急报警等。

2. 定时中断定时中断是通过定时器来触发的中断事件。

定时器是一种特殊的计时设备,可以按照设定的时间周期产生中断信号。

当定时器倒计时完成时,单片机会响应中断请求,并执行相应的中断服务程序。

定时中断常用于处理需要精确计时和时序控制的任务,如脉冲计数、PWM波形生成等。

中断的应用具体取决于具体的工程需求,例如在电梯控制系统中,可以使用外部中断来响应紧急停车按钮;在家电控制系统中,可以利用定时中断来实现定时开关机功能。

二、定时器的原理与应用定时器是单片机中的一个重要模块,可以用于计时、延时、频率测量等多种应用。

下面将介绍定时器的工作原理和几种常见的应用场景。

1. 定时器的工作原理定时器是通过内部时钟源来进行计时的。

它通常由一个计数器和若干个控制寄存器组成。

计数器可以递增或递减,当计数值达到设定值时,会产生中断信号或触发其他相关操作。

2. 延时应用延时是定时器最常见的应用之一。

通过设定一个合适的计时器参数,实现程序的精确延时。

例如,在蜂鸣器控制中,可以使用定时器来生成特定频率和持续时间的方波信号,从而产生不同的声音效果。

3. 频率测量应用定时器还可以用于频率测量。

单片机中断原理及应用

单片机中断原理及应用

单片机中断原理及应用单片机中断是一种重要的编程技术,它在嵌入式系统中起到关键作用。

本文将介绍单片机中断的原理以及在实际应用中的一些常见用法。

一、中断的原理中断是一种在程序执行期间由外部事件引发的特殊信号,它会打断正常的程序流程,跳转到中断处理程序进行相应的处理。

单片机中断可以通过硬件或软件触发,根据中断优先级的不同,可以采用优先级编码或轮询方式进行中断请求的处理。

硬件中断通常由外部事件引起,例如按键按下、定时器溢出、串口数据接收等。

当这些事件发生时,单片机会发出中断请求信号,并保存当前的执行状态,然后跳转到相应的中断服务程序进行处理。

处理完毕后,单片机会恢复到被中断的位置继续执行。

软件中断是通过执行特殊的指令触发,常用于在程序中主动请求中断。

软件中断一般用于实现程序间的通信、任务调度等功能。

二、中断的应用1. 外部中断外部中断是单片机中最常见的中断类型之一,它可以响应外部事件的触发。

例如,当用户按下按键时,就可以通过外部中断实现按键检测并进行相应的处理。

外部中断通常用于实现外设的输入功能,如按钮检测、触摸屏输入等。

在外部中断的应用中,首先需要配置外部中断引脚的触发方式和中断服务程序。

当外部事件触发时,单片机会跳转到中断服务程序中执行相应的操作。

在中断服务程序中,可以对输入信号进行处理,如检测按键是否按下、读取触摸屏坐标等,然后根据需求进行相应的响应或操作。

2. 定时器中断定时器中断是单片机中另一个常见的中断类型。

通过定时器中断,可以实现精确的定时任务,如测量时间间隔、产生定时脉冲等。

定时器中断通常用于实现系统时钟、延时、定时采样等功能。

在定时器中断的应用中,首先需要对定时器进行配置以及中断服务程序的编写。

在中断服务程序中,可以进行一系列与时间相关的操作,如更新系统时钟、执行定时任务、控制脉冲输出等。

3. 串口中断串口中断用于处理串口通信中的数据接收或发送中断事件。

单片机通过串口中断可以实现与外部设备的可靠通信,如与PC机的数据传输、与传感器的数据采集等。

51单片机中断系统工作原理

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.程序需要保证在中断服务程序中只使用寄存器组中的部分寄存器,在返回前需要恢复这些寄存器的值。

STM32系列单片机原理及应用-C语言案例教程 第4章 STM32单片机的中断系统及定时器

STM32系列单片机原理及应用-C语言案例教程 第4章 STM32单片机的中断系统及定时器
当同时有多个中断请求产生时,CPU先响应优先级较高的中断请求。
STM32中断相关的概念
3.中断屏蔽
中断屏蔽是中断系统中的一个重要功能。 在嵌入式系统中,通过设置相应的中断屏蔽位,禁止CPU响应 某个中断,从而实现中断屏蔽。 中断屏蔽的目的:是保证在执行一些关键程序时不响应中断。 对于一些重要的中断请求是不能屏蔽的,如重新启动、电源故障、 内存出错、总线出错等影响整个系统工作的中断请求。 因此,根据中断是否可以被屏蔽划分,中断可分为可屏蔽中断 和不可屏蔽中断两类。
第4章 STM32单片机的 中断系统及定时器
第4章 STM32单片机中断系统及定时器
内容提要:
介绍了STM32单片机的中断系统、中断基本的概念、 嵌套向量中断控制器NVIC、外部中断及中断使用步骤,还 描述定时器/计数器,定时器的分类及相关寄存器的使用 方法,介绍了中断控制向量NVIC和外中断EXTI,并在例题 提供相应的中断程序,演示了外部中断控制LED。
名称
地址
优先级类 型
说明

0X00—0000 —
保留
复位
NMI
0X00—0008 固定
不可屏蔽中断,RCC 时钟安全系 统(CSS)连接到 NMI 向量
HardFault MemManage BusFault UsageFault
SVCall DebugMonitor — PendSV SysTick WWDG
内容安排
中 中断 断控 系制 统器
外 部 中 断
定 时 器
计 数 器
NVIC
第4章 中断系统及定时器
STM32单片机的中断系统:
本章学习要求:
1.了解STM32中断相关的概念 2.了解STM32嵌套向量中断控制器NVIC 3.了解STM32外部中断/事件控制器

单片机中的中断处理技术及其在实时系统中的应用

单片机中的中断处理技术及其在实时系统中的应用

单片机中的中断处理技术及其在实时系统中的应用引言单片机是一种能够在单个集成电路中实现微处理器功能的芯片。

中断是单片机中非常重要的一种技术,它能够在特定的事件发生时打断当前的程序执行,优先处理紧急事件。

本文将介绍单片机中的中断处理技术及其在实时系统中的应用。

一、中断处理技术的原理中断处理技术允许外部设备在特定条件下打断当前的执行流程,转而去执行中断服务程序。

中断处理器(INTERRUPT)是CPU中的一个模块,负责检测和处理外部中断请求。

它具有下列基本功能:1. 检测:中断处理器通过检测中断请求信号来判断是否发生了中断。

2. 响应:一旦检测到中断请求,中断处理器将产生中断嵌套层数+1的中断嵌套层数信息,并从中断向量表中找到特定的中断服务程序地址。

3. 执行:执行中断服务程序。

4. 恢复:处理完中断服务程序后,中断处理器将中断嵌套层数-1,并从中断堆栈中恢复程序执行。

二、中断处理技术的分类中断处理技术按照中断源、中断类型和中断优先级等不同特征可分为多种类型。

以下是常见的几种中断处理技术:1. 外部中断:由外部设备触发的中断,比如按键中断、定时器中断和外部设备的中断请求。

2. 内部中断:由CPU内部产生的中断,比如程序运行错误、算数溢出等。

3. 软件中断:由指令中的软件中断指令触发的中断。

4. 异常:由非法的程序操作或错误的指令导致的中断。

5. 中断优先级:当多个中断同时发生时,按照预先设置的优先级决定哪个中断被处理。

三、实时系统中的中断处理技术的应用实时系统对于时间敏感型任务具有严格的响应时间要求,而中断处理技术能够更好地满足这种要求,因此在实时系统中广泛应用。

以下是中断处理技术在实时系统中的应用:1. 用于硬件定时实时系统中的任务具有时间性要求,通过设置定时器中断可以精确地控制任务的执行时间。

通过中断处理技术,我们可以在需要时及时进行任务切换,并保证任务的及时执行。

2. 管理外部事件实时系统通常需要处理多个外部事件,如传感器输入、通信接收等。

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

中断系统1、中断的概念如果单片机没有中断功能,单片机对外部或是内部事件的处理只能采用程序查询方式,即CPU不断查询是否有事件发生。

显然,采用程序查询方式,CPU不能再做别的事,而是在大部分时间处于等待状态。

单片机都具有实时处理能力,能对外部或是内部发生的事件做出及时地处理,这是靠中断技术来实现的。

当CPU正在处理某件事情的时候,外部或内部发生的某一事件请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。

中断服务处理程序处理完该事件后,再回到原理被中止的地方,继续原来的工作,这样的过程称为中断,如图所示。

处理事件的过程称为CPU的中断响应过程。

对事件的整个处理过程,称为中断服务或中断处理。

实现这种功能的部件称为中断系统,产生中断的请求源称为中断源。

中断源向CPU提出的处理请求,称为中断请求或中断申请。

CPU暂时中止执行的程序,转去执行中断服务程序,除了硬件会自动把断点地址PC值压入堆栈之外,用户还得注意保护有关的工作寄存器、累加器、标志位等信息,这称为现场保护。

最后执行中断返回指令,从堆栈中自动弹出断点地址到PC,继续执行被中断的程序,这称为中断返回。

2、MCS-51中断系统的结构单片机的中断系统有5个中断请求源,具有两个中断优先级,可实现两级中断服务程序嵌套。

用户可以用软件来屏蔽所有的中断请求,也可以用软件使CPU接受中断请求;每一个中断源可以用软件独立地控制为开中断或是关中断状态;每一个中断源中的中断级别均可用软件来设置。

下图为中断系统结构图。

3、中断请求源中断系统共有五个中断请求源它们是:1)INT0 外部中断0请求,由INT0引脚输入,中断请求标志为IE0。

2)INT1 外部中断1请求,由INT1引脚输入,中断请求标志为IE1。

3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。

4)定时器/计数器T1 溢出中断请求,中断请求标志为TF1。

5)串口中断请求,中断请求标志为TI或RI。

这些中断请求源的中断请求标志位分别由特殊功能寄存器TCON和SCON的相应位锁存。

TCON为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。

TCON也锁存外部中断请求标志。

如下图所示。

与中断系统有关的各标志位的功能如下:IT0—选择外部中断请求INT0为跳沿触发方式或是电平触发方式的控制位。

IT0=0,为电平触发方式,引脚INT0上低电平有效IT0=1,为跳沿触发方式,引脚INT0上的电平从高到低的负跳变有效。

IT0 位可由软件置1或清0。

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

当IT0=0,为电平触发方式,每个机器周期的S5P2采样INT0引脚,若INT0脚为低电平,则置“1”,否则清“0”IE0。

当IT0=1,即INT0为跳沿触发方式时,当第一个机器周期采样到为低电平时,则置“1”IE0。

IE0=1表示外部中断0正在向CPU申请中断。

当CPU响应中断,转向中断服务程序时,由硬件清“0”IE0。

IT1—选择外部中断请求INT1为跳沿触发方式或电平触发方式的控制位,其意义和IT0类似。

IE1—外部中断1的中断请求标志位,其意义和IE0类似。

TF0—MCS-51片内定时器/计数器T0溢出中断请求标志位。

当启动T0计数后,定时器/计数器T0从初始值开始加1计数,当最高位产生溢出时,由硬件置“1”TF0,向CPU申请中断,CPU响应TF0中断时,清“0”TF0,TF0也可由软件清零(查询方式)。

TF1 定时器/计数器T1的益处中断请求标志位,功能和TF0类似。

TR1、TR0这2个位与中断无关,仅与定时器/计数器T1和T0有关,它们的功能将在其它章节中介绍。

当复位后,TCON被清0,则CPU关中断,所有中断请求被禁止。

SCON为串口控制寄存器,字节地址为98H,可位寻址。

SCON的低二位锁存串口的接收中断和发送中断标志,其格式如下图。

SON中各标志位的功能如下:T1—串口的发送中断请求标志位。

CPU将一个字节的数据写入发送缓冲器SBUF时,就启动一侦串行数据的发送,每发送完一侦串行数据后,硬件自动置“1”TI。

但CPU响应中断时,CPU并不清楚TI,必须在中断服务程序中用软件对TI清“0”。

RI—串行扣接受中断请求标志位。

在串行口允许接收时,每接收完一个串行侦,硬件自动置“1”RI。

CPU在响应中断时,并不清除RI,必须在中断服务程序中用软件对RI清“0”。

4、中断允许寄存器IECPU对中断源的开放或是屏蔽,是由片内的中断允许寄存器IE控制的。

IE的字节地址为A8H,可进行位寻址。

中断允许寄存器IE对中断的开放和关闭实现两级控制。

所谓两级控制,就是有一个总的开关中断控制位EA,当EA=0时,所有的中断请求被屏蔽,CPU对任何中断请求都不接受;当EA=1时,CPU开放总中断,但五个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定如下图。

IE中各位的功能如下:中断允许总控制位。

EA=0,CPU屏蔽所有的中断请求(也称CPU关中断)。

EA=1,CPU开放所有中断(也称CPU开中断)。

串口中断允许位ES=0,禁止串口中断;ES=1,允许串口中断。

定时器/计数器T1的溢出中断允许位ET1=0,禁止T1中断ET1=1,允许T1中断。

外部中断1中断允许位EX1=0,禁止外部中断1中断EX1=1, 允许外部中断1中断定时器/计数器T0的溢出中断允许位ET0=0,禁止T0中断ET0=1,允许T0中断复位以后,IE被清零,由用户程序置“1”或清“0”IE 相应得位,实现允许或禁止各中断的中断申请。

若使某一个中断源允许中断,必须同时使CPU开放中断。

如更新IE的内容,可由位操作指令来实现,也可用字节操作指令实现。

假设允许片内定时器/计数器中断,禁止其它中断的中断申请。

的步骤为:1、ES=0//禁止串口中断2、EX1=0//禁止外部中断13、EX0=0//禁止外部中断04、ET1=1//允许定时器/计数器T1中断5、ET0=1//允许定时器/计数器T0中断6、EA=1// CPU开放所有中断(也称CPU开中断)。

以上是采用位操作的方式,还可以采用字节的方式:IE=0X8AH5、中断优先级寄存器IP中断请求源有两个中断优先级,对于每一个中断请求源可由软件定为高优先级中断或是低优先级中断,可实现两级中断嵌套,两级中断嵌套的过程如下图一个正在执行的低优先级中断程序能被高优先级的中断源所中断,但不能被另一个低优先级的中断源所中断。

若CPU正在执行高优先级的中断,则不能被任何中断源所中断,一直执行到结束,遇到中断返回指令,返回主程序后再执行一条指令后才能响应新的中断请求。

可归纳为两条基本原则:1.低优先级可被高优先级中断,反之则不能。

2.任何一种中断,一旦得到响应,不会再被它同级中断源所中断。

如果某一中断源被设置为高优先级中断,在执行该中断服务程序时,则不能被任何其它的中断源所中断。

单片机片内有一个中断优先级寄存器IP,其字节地址为B8H,可位寻址,只要用程序改变其内容,即可进行各中断源中断优先级的设置如下图各位的含义如下:串口中断优先级控制位PS=1,串口中断定义为高优先级PS=0,串口中断定义为低优先级定时器T1优先级控制位PT1=1,T1定义为高优先级PT0=1,T1定义为低优先级外部中断优先级控制位PX1=1,外部中断定义为高优先级PX1=0,外部中断定义为低优先级定时器T0优先级控制位PT0=1,T0定义为高优先级PT0=0,T0定义为低优先级外部中断0优先级控制为PX0=1,外部中断0定义为高优先级PX0=0,外部中断0定义为低优先级中断优先级控制寄存器IP的各位都由用户程序置“1”或清“0”,可用位操作或是字节操作指令更新IP的内容。

单片机复位后IP为0,各个中断源均为低优先级中断。

各中断源在同一优先级的条件下,外部中断0的优先级最高,串口的优先级最低如下图:例如,要单片的2个外部中断为高优先级,其它中断为低优先级。

的步骤如下PX0=1;PX1=1;PS=0;PT0=0;PT1=1;也可用字节操作IP=0X05H;6、中断响应一个中断源的中断请求被响应,需要满足以下条件:1)该中断源发出中断请求。

2)CPU开中断,即中断总允许位EA=1。

3)申请中断的中断源的中断允许位=1,即该中断没有被屏蔽。

4)无同级或更高级中断正在被服务。

中断响应就是对中断源提出的中断请求的接受,是在中断查询之后进行的。

当CPU查询到有效的中断请求时,在满足上述条件时,紧接着就进行中断响应。

首先是将PC的内容压入堆栈以保护断点,再将中断入口地址装入PC,使程序转向相应得中断入口地址。

各中断源服务程序的入口地址是固定的如下表所示:7、中断请求的撤消定时器/计数器中断的中断请求被响应后,硬件会自动把中断请求标志位(TF0或TF1)清“0”,因此定时器/计数器中断请求时自动撤消的。

当外部中断为跳沿方式时,中断标志位的清“0”和外部中断信号的撤消有关。

其中中断标志位IE0或IE1的清“0”是在中断响应后由硬件自动完成的。

而外部中断信号的撤消,由于跳变沿信号过后也就消失了,所以跳沿方式外部中断请求也就是自动撤消的。

对于电平方式外部中断请求的撤消,中断请求标志的撤消是自动的,但中断信号的低电平可能继续存在,又会把已清“0”的IE0或IE1重新置“1”。

所以必须在中断响应后把中断信号从低电平强制改为高电平。

串口中断标志位是TI和RI,但对这两个中断标志不进行自动清零。

因此CPU无法知道是接收还是发送,还需要测试这两个位的状态,是发送还是接收,然后才能清除。

所以只能通过软件的方法,在中断服务程序中进行。

8、中断服务程序的设计1)设置中断允许控制寄存器IE,允许相应的中断请求源中断。

EA=1; //开总中断,EX0=1;//开中断02)设置中断优先级寄存器IP。

3)若是外部中断,还要设置中断触发方式IT1或IT0IT0=0;//电平触发方式。

4)编写中断服务程序,处理中断请求。

上图为中断函数的书写格式,函数名称不必与上图相同。

电平触发方式具体程序如下:#include<reg52.h> //引入头文件#define uint unsigned int //定义宏#define uchar unsigned char //定义宏sbit dula=P2^6; //数码管的段选sbit wela=P2^7; //数码管的位选sbit d1=P1^0; //定义第一个发光二极管uchar num; //定义变量uchar code table[]={ //定义数码管的字形表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(uint z);void main() //主函数{ EA=1; //开总中断EX0=1;//开中断0IT0=0;//电平触发方式wela=1; //位选打开P0=0x00; //选中所有位wela=0; //关闭位选while(1) //定义主循环{ for(num=0;num<16;num++) //定义数码管的字形循环{ d1=1; //熄灭第一个发光二极管dula=1; //段选打开P0=table[num]; //送入字形码dula=0; //段选关闭delay(1000); //延时}}}void delay(uint z) //定义延时函数{ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void exter0() interrupt 0 //定义中断函数{d1=0; //点亮第一个发光二极管delay(3000);}把程序下载到单片机,数码管正在循环显示(0-F)如果用导线连接P3.2和GND如下图所示可以看出程序停止进入中断第一个发光二极管被点亮,因为为低电平触发,所以不断开导线,就会不停的中断。

相关文档
最新文档