0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

认识80S51的中断

冬至子 来源:华维单片机编程 作者:华维 2023-06-06 11:36 次阅读

中断(interrupt)是CPU在执行程序时,对系统发生的某个事件(程序自身或外界的原因)作出的一种反应,暂时放下目前所执行的程序,先去执行特定的程序,待完成特定的程序后,再返回执行刚才放下的程序。比如用户按下按钮,程序必须及时处理用户的按钮请求,然后再返回来继续执行。

图片

比如,老师正在讲课,而同学有疑问,随时都可以举手发问,老师将立即暂停讲课,为同学解惑,再继续刚才暂停的课程,这样的动作就是中断。

中断源

中断源(中断请求源):能够向CPU发出中断申请的部件。

8051提供5个中断服务(中断源):外部中断(INT0、INT1),定时器中断/计数器中断(TF0、TF1),串行口中断UART(RI/TI)。

8052提供6个中断服务(中断源),除了包含8051提供的5个中断外,还包括第三个定时器/计数器(Timer2)的中断。

MCS-51的中断

图片

图片

外部中断

外部中断INT0/INT1,CPU通过12引脚(即P3.2)及13脚(即P3.3)来接收外部中断的请求。

外部中断信号的采样方式可分为电平触发(低电平触发)及边缘触发(负边缘触发,即时钟信号由高转低时触发)两种。

若要采用电平触发,需要将TCON寄存器中的IT0(或IT1)设定为0,则只要P3.2引脚(或P3.3引脚)为低电平,即视为外部中断需求。

若要采用边缘触发需要将TCON寄存器中的IT0(或IT1)设定为1,则只需要P3.2引脚(或P3.3引脚)的信号由高电平转为低电平,即视为外部中断需求。

这些中断需求将反应在IE0(或IE1)里,若IE寄存器的EX0(或EX1)=1,且EA=1,CPU将进入该中断的服务。

至于中断的优先级寄存器(IP寄存器),只是安排多个中断发生时中断服务执行的顺序而已,若只有一个中断,将不会有所影响。

定时器/计数器中断

定时器/计数器中断有TF0和TF1两个(8052多一个:TF2)。若是定时器,CPU将对内部的时钟脉冲计数,而提出内部中断;若是计数器,CPU将对外部的脉冲计数,而提出内部中断。至于外部脉冲的输入,则是通过T0引脚(即14脚,也就是P3.4)及T1引脚(即15脚,也就是P3.5)

串行口中断

串行口中断(UART)有RI或TI两个,CPU通过RXD引脚(即10引脚,也就是P3.0)及TXD引脚(即11脚,也就是P3.1)要求接收(RI)中断需求或传送(TI)中断需求。

相关寄存器

在前面的[MCS-51中断系统图]中,我们可将中断启用寄存器(IE寄存器)看作中断功能的开关,中断优先级寄存器(IP寄存器)是判断各中断优先级的开关。而实际上,IE寄存器、IP寄存器、TCON寄存器都是一个8位的可寻址寄存器,如下图

图片

中断优先级

若没有在IP寄存器里设定优先级,则中断的优先级为:

INT0 >TF0>INT1>TF1>RI/TI。

若设定了优先级:

假设TF1=1,则中断优先级应为:

TF1>INT0 >TF0>INT1> RI/TI;

假设TF0 =1,INT1=1,则中断优先级应为:TF0>INT1>INT0 > TF1>RI/TI。

定时器/计数器控制寄存器TCON里,有部分设定与外部中断信号的采样有关。其中IT0与IT1分别为INT0与INT1的采样信号设置位:

若设置为1,则是采用下降沿触发信号;

若设置为0,则是采用低电平触发。

IE0与IE1是由CPU所操作的中断标志位,当中断发生时将被设定为1,结束中断时,恢复为0。

中断的应用

中断的设定包括开启中断开关(IE寄存器的设定)、中断优先级的设定(IP寄存器的设定)、中断信号的设定(TCON寄存器的设定)等。

在程序中设定中断命令:

IE=0x81  //即1000 0001,对照前面IE寄存器图片可得EA=1,EX0=1,即启用INT0中断
IE=0x84  //启用INT1中断
IE=0x85  //启动INT0、INT1中断
IP=0x04  //设置INT1中断具有最高优先级
TCON=0x8  //设定INT1采用下降沿触发

中断程序格式:void +函数名+interrupt +数字0~4,其中0—4分别表示

0:外部中断INT0

1:定时器/计数器TF0

2:外部中断INT1

3:定时器/计数器TF1

4:串行口TI/RI

如:void my_INT (void) interrupt 0

{

......//中断子程序逻辑代码

}

举例:12引脚(即P3.2)接入按钮,当在主程序运行过程中,按下这个按钮,程序就会进入中断子程序,执行子程序的逻辑,中断子程序执行完,再进入主程序继续执行。

//主程序:
void main()
{
   IE=0x81 // 启用INT0中断
   TCON=0x01  //设置INT0 为下降沿触发
   ......
   While(1)
   {
     ......
   }
}
//中断子程序 使用INT0外部中断
void int0_test(void) interrupt 0
{
  ......//中断程序逻辑代码
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计数器
    +关注

    关注

    32

    文章

    2253

    浏览量

    94311
  • 定时器
    +关注

    关注

    23

    文章

    3236

    浏览量

    114396
  • UART接口
    +关注

    关注

    0

    文章

    124

    浏览量

    15260
  • 外部中断
    +关注

    关注

    1

    文章

    131

    浏览量

    15798
  • 8051芯片
    +关注

    关注

    0

    文章

    2

    浏览量

    5645
收藏 人收藏

    评论

    相关推荐

    80S51的IO该如何利用晶体管驱动外围设备?

    80S51的IO该如何利用晶体管驱动外围设备? 80C51单片机的P1、P2、P3都是准双向IO,P0是开漏IO。对开漏IO来说,外接上拉电阻后,特性与准双向IO类似。准双向IO的特点是,高电平
    发表于 08-17 21:33

    80s51入门推荐图书

    80s51入门推荐图书
    发表于 08-17 21:42

    80c5180s51不是原创请担待

     51单片机S系列与C系列区别  两者主要的区别是AT89S51支持ISP(In System Programming,即“在线可编程”)。而AT89C51无此功能。  以下描述更加详
    发表于 12-20 12:58

    80C51中断系统结构

    80C51中断系统1.1 80C51中断系统结构一、中断的概念CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理(
    发表于 07-22 08:54

    有关80C51中断系统的基本知识汇总

    什么是中断80C51中断系统结构是由哪些部分组成的?80C51单片机的中断优先级有哪几条原则?
    发表于 08-24 06:34

    80C31BH, 80C51BH,80C51BHP, 87C

    Characterized errata that may cause the 80C31BH, 80C51BH,80C51BHP, 87C51
    发表于 06-24 09:53 25次下载

    80C51中断系统的结构

    80C51中断系统的结构
    发表于 09-20 09:24 15次下载
    <b class='flag-5'>80C51</b><b class='flag-5'>中断</b>系统的结构

    如何实现80C51单片机对外中断功能的控制问题详细资料概述

    分析了80C51单片机的2个对外中断入口—INT0—lNT1和 而的结构、功能。讨论了通过控制机构的合理设置、编程,实现单片机对外中断功能的控制问题。
    发表于 09-25 17:03 3次下载
    如何实现<b class='flag-5'>80C51</b>单片机对外<b class='flag-5'>中断</b>功能的控制问题详细资料概述

    单片机教程之80C51中断系统及定时和计数器的详细资料概述

    本文档的主要内容详细介绍的是单片机教程之80C51中断系统及定时和计数器的详细资料概述主要内容包括了:1、80C51单片机的中断系统 2、80C5
    发表于 11-13 19:05 9次下载
    单片机教程之<b class='flag-5'>80C51</b>的<b class='flag-5'>中断</b>系统及定时和计数器的详细资料概述

    51单片机的中断优先级和中断嵌套的详细资料概述

    基本型80C51系列单片机有5个中断源,2个优先级,每个中断源可通过软件设置为高优先级或低优先级中断,可以实现二级中断服务嵌套。
    发表于 09-03 17:28 5次下载
    <b class='flag-5'>51</b>单片机的<b class='flag-5'>中断</b>优先级和<b class='flag-5'>中断</b>嵌套的详细资料概述

    80C51单片机的中断系统和系统结构的详细资料说明

    本文档的主要内容详细介绍的是80C51单片机的中断系统和系统结构的详细资料说明。
    发表于 07-25 17:36 2次下载
    <b class='flag-5'>80C51</b>单片机的<b class='flag-5'>中断</b>系统和系统结构的详细资料说明

    AT89S51单片机扩充外部中断源系统的设计

    如下图所示,若系统中有5个外部中断请求源IR0~IR4,它们均为高电平请求有效,这时可按中断请求的轻重缓急进行排队,把其中最高级别的中断请求源IR0直接接到AT89S51的一个外部
    发表于 06-18 15:48 2882次阅读
    AT89<b class='flag-5'>S51</b>单片机扩充外部<b class='flag-5'>中断</b>源系统的设计

    基于51单片机的外部中断设计

    基于51单片机的外部中断(嵌套)选用芯片AT89S52/***********************************************************此中断函数
    发表于 11-20 18:06 10次下载
    基于<b class='flag-5'>51</b>单片机的外部<b class='flag-5'>中断</b>设计

    80C51中断系统

    80C51中断系统1.1 80C51中断系统结构一、中断的概念 CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理(
    发表于 11-22 13:06 23次下载
    <b class='flag-5'>80C51</b>的<b class='flag-5'>中断</b>系统

    80c51是几位单片机 80c51单片机有几个中断

    80C51是一种8位微处理器,也被称为8051,由Intel公司推出。它是最早的商用单片机之一,由于它的简单易用、灵活可靠,被广泛应用于许多嵌入式系统中。在80C51系列中,最常见的型号包括AT89C51和AT89
    发表于 03-31 18:21 6450次阅读