外部中断_单片机_普中

发布时间:2024-08-05  

1 中断介绍

在我们的日常生活中,经常会遇到这样的情况:我们正在看书,突然客厅的电话响了,这时往往会停止看书,转而去接电话,接完电话后又接着看书。这种停止当前工作,转而去做其他工作,做完后又返回来做先前工作的现象称为中断。


所以单片机虽然是个机器,它也有类似的中断现象,当单片机正在执行某程序时,如果突然出现意外情况,它就需要停止当前正在执行的程序,转而去处理意外情况,处理完后又接着执行原来的程序。


2 中断相关概念

    

 

 图1 中断结构图

(1) 中断源

要让 CPU 中断当前的程序去做其他事情,需要向它发出请求信号,CPU 接收到中断请求信号后才能产生中断。让CPU产生中断的信号称为中断源(又称中断请求源)。


51系列单片机的中断源包括:两个外部中断源、两个定时器/计数器中断源和一个串行通信口中断源,如果它们向 CPU 发出中断请求信号,CPU 就会产生中断,停止执行当前的程序,转而去执行指定的程序(又称中断服务程序或中断子程序),执行完后又返回来执行原来的程序。

 

(2) 中断的优先级别

单片机内的CPU在工作时,如果一个中断源向它发出中断请求信号,它就会产生中断;如果同时有两个或两个以上的中断源发出中断请求信号,CPU会怎么办呢?CPU会先接受优先级别高的中断源请求,然后再接受优先级别低的中断源请求。

(3) 中断处理过程

① 响应中断请求。当 CPU 正在执行主程序时,如果接收到中断源发出的中断请求信号,就会响应中断请求,停止主程序,开始执行中断。

② 保护断点。为了在执行完中断后能返回主程序,在执行中断时,会将主程序的下一条指令的地址(又称断点地址)保存到数据存储器(RAM)的堆栈中。

③ 寻找中断入口地址。保护好断点后,CPU开始寻找中断入口地址(又称矢量地址),中断入口地址存放着相应的中断子程序,不同的中断源对应着不同的中断入口地址。

④ 执行中断子程序。CPU寻找到中断入口地址后,就开始执行中断入口地址处的中断子程序。由于几个中断入口地址之间只有8个单元空间(表中如0003H~000BH相隔8个单元),较小的中断子程序(程序只有一两条指令)可以写在这里,较大的中断子程序无法写入,通常的做法是将子程序写在其他位置,而在中断入口地址单元只写一条跳转指令,由该指令跳转到中断子程序。

⑤ 中断返回。执行完中断子程序后,就会返回到主程序,返回的方法是从RAM的堆栈中取出之前保存的断点地址,然后执行该地址处的主程序,从而返回到主程序。

(4)中断相关寄存器

(5)中断响应条件:①中断源有中断请求;②中断源的中断允许位为 1;③ CPU 开中断(即 EA=1)。

3 功能要求:外部中断属于单片机的内部资源,本实验所使用的独立按键KEY3和KEY3直接接在单片机开发板P3.2和P3.3,而P3.2和P3.3不仅是普通的IO口,而且还可以作为外部中断使用。故可以通过按键来模拟外部的脉冲信号输入到外部中断管脚来触发外部中断。要实现的功能是,当按下KEY3可控制LED1指示灯亮灭,按下KEY4可控制LED2指示灯亮灭。


4 原理分析

(1)在中断结构图1中,INT0和INT1即为外部中断0和外部中断1。

INT0对应的是P3.2口的附加功能,可由IT0选择其触发方式(低电平有效或者下降沿有效)。当CPU监测到P3.2引脚上出现有效的中断信号时,中断标志IE0置1(单片机自动完成),向申请中断。

INT1对应的是P3.3口的附加功能,可由IT1选择其触发方式(低电平有效或者下降沿有效)。当CPU监测到P3.3引脚上出现有效的中断信号时,中断标志IE1置1(单片机自动完成),向申请中断。

(2)外部中断寄存器的配置


1)中断请求标志寄存器 TCON

① IT0(TCON[0]):外部中断0触发方式控制位,当IT0=0时,为低电平触发方式;当IT0=1时,为边沿触发方式(下降沿有效);

②   IE0(TCON[1]):外部中断0中断请求标志位;

③   IT1(TCON[2]):外部中断1触发方式控制位,当IT1=0时,为低电平触发方式;当IT1=1时,为边沿触发方式(下降沿有效);

④   IE1(TCON[3]):外部中断1中断请求标志位。

2)中断允许控制寄存器 IE

①  EX0(IE[0]):外部中断0允许位;

② ET0(IE[1]):定时/计数器T0中断允许位;

③ EX1(IE[2]):外部中断1允许位;

④ ET1(IE[3]):定时/计数器T1中断允许位;

⑤ ES(IE[4]):串行口中断允许位;

⑥ IE[5]

⑦ IE[6]

⑧ EA(IE[7]):CPU中断允许位,即总允许位。


4 硬件设计

(1)系统框图

  

 

(2)独立按键和LED灯原理图

5 软件设计


 1 #include "reg52.h"

 2 

 3 typedef unsigned int     u16;

 4 typedef unsigned char     u8;

 5 

 6 //定义输入、输出管脚

 7 sbit KEY3     = P3^2;      //独立按键3控制管脚

 8 sbit KEY4    = P3^3;      //独立按键4控制管脚

 9 sbit LED1    = P2^0;      //LED1控制管脚

10 sbit LED2    = P2^1;      //LED2控制管脚

11 

12 //延时函数,ten_us=1时,大约延时10us

13 void delay_10us(u16 ten_us)

14 {

15      while(ten_us--);

16 }

17 

18 //对外部中断0进行初始化设置

19 void exti0_init(void)

20 {

21       IT0    = 1;        //下降沿触发方式

22     EX0 = 1;        //打开INT0的中断允许

23     EA  = 1;        //打开总中断

24 }

25 

26 //对外部中断1进行初始化设置

27 void exti1_init(void)

28 {

29       IT1    = 1;        //下降沿触发方式

30     EX1 = 1;        //打开INT1的中断允许

31     EA  = 1;        //打开总中断

32 }

33 

34 void main()

35 {

36      exti0_init();    //对外部中断INT0进行配置

37     exti1_init();    //对外部中断INT1进行配置

38     while(1)

39     {

40 

41     }

42 }

43 

44 //外部中断0中断函数,中断号为0

45 void exti0() interrupt 0  

46 {

47       delay_10us(1000);     //消抖,忽略按下抖动过程

48     if(KEY3==0)           //再次判断按键3是否按下

49         LED1 = !LED1;     //LED1状态翻转

50 }

51 

52 //外部中断1中断函数,中断号为2

53 void exti1() interrupt 2  

54 {

55       delay_10us(1000);     //消抖,忽略按下抖动过程

56     if(KEY4==0)           //再次判断按键4是否按下

57         LED2 = !LED2;     //LED2状态翻转

58 }


6 仿真结果

 

7 实现现象

当按下按键KEY3,指示灯LED1点亮,再按下按键KEY3,指示灯LED1熄灭,如次循环。同理,按键KEY4控制LED2。


参考资料:
(1)中断系统的结构是什么样的?了解了结构才能进行下一步 (baidu.com);

(2)(80条消息) 51单片机中断相关寄存器_红桃Jk的博客-CSDN博客_51单片机中断寄存器;

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    源工作,所以,STM32单片机最多允许同时有16个外部中断外部中断的分配方式如下表所示:STM32单片机的外部中断触发方式为边沿触发,即上升沿触发和下降沿触发......
    16组,并且每一组中同一个时刻只能有一个中断源工作,所以,STM32单片机最多允许同时有16个外部中断外部中断的分配方式如下表所示: STM32单片机的外部中断触发方式为边沿触发,即上升沿触发和下降沿触发......
    51单片机外部中断点亮LED;外部中断软件设计原理 中断发生的三个条件 ①中断源有中断请求; ②此中断源的中断允许位为 1; ③CPU 开中断(即 EA=1)。 比如我们配置外部中断 0,对应......
    标志,其功能及操作方式同IE1。   IT0--外部中断0触发方式选择位,其功能及操作方式同IT1。   51单片机中断系统   第一、什么可经引起中断,生活中很多事件能引起中断:有人按了门铃了,电话......
    一文详解MCS-51单片机的中断系统;MCS-51中断系统:5个中断源(两个外部中断, 两个定时器, 一个串口),2个优先级 中断相关概念 中断:当CPU正在处理某件事情时,单片机外部......
    MCS-51 单片机的中断系统;知识点5. MCS-51 单片机的中断系统 主要内容:中断技术概述、中断系统结构、中断允许与中断优先级的控制、响应中断请求的条件、外部中断的响应时间、外部中断的触发方式......
    到P3.3引脚上出现有效的中断信号时,中断标志IE1置1(单片机自动完成),向申请中断。 (2)外部中断寄存器的配置 1)中断请求标志寄存器 TCON ① IT0(TCON[0]):外部中断0触发方式......
    单片机中断寄存器知识点总结;单片机中断源 一、一般而言,MCS-51单片机有5个中断源,分别是: 1、外部中断0; 2、外部中断1; 3、定时/计数器0中断; 4、定时/计数器1中断; 5、串行口发送或接受中断......
    单片机的中断系统(2024-12-17 11:20:29)
    是: TCON(定时器控制寄存器) TCON 寄存器控制定时器和外部中断的启动、停止及相关状态。它包含了溢出标志位、启动控制位和外部中断触发方式等。 TCON......
    就必须得去处理那个按键(中断的响应),看看是发生了什么事,按键处理完后继续回来执行程序(中断的返回)。 MCS-51单片机中断系统的结构 5个中断源的符号、名称及产生的条件如下。 INT0:外部中断0,由P3.2......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>