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

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

3天内不再提示

51单片机中断系统的讲解

汽车电子技术 来源:嵌入式悦翔园 作者:JamesBin 2023-02-17 15:11 次阅读

在接下来的教程中,将会介绍定时器、串口通信等外设的基本使用,而这些外设的使用都要涉及中断,而且中断是单片机或嵌入式开发中一个相当重要的概念。不能掌握中断系统,就无法灵活应用这些外设。

一、中断定义

CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。

图片

引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。

对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统。

图片

二、51中断结构

89C51/52的中断系统有5个中断源 ,2个优先级,可实现二级中断嵌套 。

图片

图片

1、(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。

2、(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。

3、TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。

4、TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。

5、RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。

三、中断配置

CPU对中断系统的所有中断以及某个中断源的开发和屏蔽是由中断允许寄存器IE控制的。

EA:中断允许总开关控制位。(1:所有中断请求被允许;0:所有中断请求被屏蔽)

ES:串行口中断允许控制位。(1:允许串口中断;0:禁止串口中断)

ET1:定时器/计数器T1的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)

EX1:外部中断1中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)

ET0:定时器/计数器T0的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)

EX0:外部中断0中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)

1、中断请求标志

TOCN 的中断标志IT0(TCON.0),外部中断0触发方式控制位。

当IT0=0时,为低电平触发方式。

当IT0=1时,为边沿触发方式(下降沿有效)。

IE0(TCON.1),外部中断0中断请求标志位。

IT1(TCON.2),外部中断1触发方式控制位。

IE1(TCON.3),外部中断1中断请求标志位。

TF0(TCON.5),定时/计数器T0溢出中断请求标志位。

TF1(TCON.7),定时/计数器T1溢出中断请求标志位。

2、中断优先级

外部中断0(IE0)->定时/计数器0(TF0)->外部中断1(IE1)->定时/计数器1(TF1)->串行口(R1或T1)

3、中断源

外部中断0(int0),对应中断号是0,中断入口地址0003h

定时/计数器0(t1),对应中断号1,中断入口地址000bh

外部中断1(int1),对应中断号2,中断入口地址0013h

定时/计数器1(t1),对应中断号3,中断入口地址001bh

串行口中(ri/ti),对应中断号4,中断入口地址0023h

3、中断相应条件

中断源有中断请求

此中断源的中断允许位为1

CPU开中断(EA=1)

四、中断定义

主程序中需要有以下代码:

EA=1;//打开总中断开关
EX0=1;//开外部中断0
IT0=0/1;//设置外部中断的触发方式

中断服务函数:

void int0 () interrupt 0 using 1  // using 1 不用写也不用管


{
do anything that you want
}

五、程序举例

#include
sbit led =P2^1;
void main()
{
   EA=1;            //开启总中断,这个相当于校长
   TMOD =0x01;
   TH0=(65536-48300)/256;    //50ms
   TL0=(65536-48300)%256;
   TR0=1;         //  打开定时器T0
   ET0=1;         //允许中断     这个相当于班主任,只有校长和班主任同意中断才能中断

   while(1)
   {
       ;
   }
}
 void time0() interrupt 1
{
   unsigned int count;
   TF0=0;          //注意TF0同时是中断请求标志位,
                           //TF0=1,请求中断  
   TH0=(65536-48300)/256;    //50ms 装初值
   TL0=(65536-48300)%256;
   count+=1;
   if(count>=20)
   {
      led=~led;
   count=0;
   }


 }

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6036

    文章

    44555

    浏览量

    634845
  • 定时器
    +关注

    关注

    23

    文章

    3247

    浏览量

    114746
  • 嵌入式开发
    +关注

    关注

    18

    文章

    1028

    浏览量

    47565
  • 串口通信
    +关注

    关注

    34

    文章

    1624

    浏览量

    55515
收藏 人收藏

    评论

    相关推荐

    51单片机定时器中断_51单片机中断系统_51单片机扩展中断的四种方法

    中断是为使单片机具有对外部或内部随机发生的事件进行处理而设置的。51单片机有5种中断源,即有5种对应的情况发生时会使
    发表于 12-08 10:15 1.1w次阅读
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>定时器<b class='flag-5'>中断</b>_<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>中断</b><b class='flag-5'>系统</b>_<b class='flag-5'>51</b><b class='flag-5'>单片机</b>扩展<b class='flag-5'>中断</b>的四种方法

    单片机中断系统如何使用?基本概念和应用详细讲解

    本文档的主要内容详细介绍的的是单片机中断系统如何使用?基本概念和应用详细讲解内容包括了:一中断的基本概念,二MCS-
    发表于 09-29 11:08 11次下载
    <b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b><b class='flag-5'>系统</b>如何使用?基本概念和应用详细<b class='flag-5'>讲解</b>

    51单片机教程之51单片机中断系统的详细资料概述

    本文档的主要内容详细介绍的是51单片机教程之51单片机中断系统的详细资料概述主要内容介绍的是
    发表于 11-19 09:56 17次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>教程之<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>中断</b><b class='flag-5'>系统</b>的详细资料概述

    51单片机中断系统详细资料总结

    本文档的详细介绍的是51单片机中断系统详细资料总结。主要内容包括了:1 中断的概念,2 中断
    发表于 03-07 16:37 3次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b><b class='flag-5'>系统</b>详细资料总结

    51单片机外部中断0实例详解

    今天就以51单片机的外部中断0为例,来简单讲解一下单片机中断的用法。1
    发表于 11-11 12:51 19次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>外部<b class='flag-5'>中断</b>0实例详解

    C51单片机学习笔记(四)——单片机中断系统及应用

    C51单片机学习笔记(四)——单片机中断系统及应用文章目录C51
    发表于 11-14 10:21 17次下载
    C<b class='flag-5'>51</b><b class='flag-5'>单片机</b>学习笔记(四)——<b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b><b class='flag-5'>系统</b>及应用

    51单片机中断

    51单片机中断(interrupt)
    发表于 11-20 16:51 13次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>之<b class='flag-5'>中断</b>

    89C51单片机中的中断系统

    89C51单片机中的中断系统对于在单片机中的学习,中断系统
    发表于 11-22 12:21 32次下载
    89C<b class='flag-5'>51</b><b class='flag-5'>单片机</b>中的<b class='flag-5'>中断</b><b class='flag-5'>系统</b>

    STM32单片机外部中断配置讲解

    STM32单片机外部中断配置讲解01单片机外部中断简介所谓外部中断,就是通过外部信号所引起的
    发表于 11-22 12:36 14次下载
    STM32<b class='flag-5'>单片机</b>外部<b class='flag-5'>中断</b>配置<b class='flag-5'>讲解</b>

    51单片机中断系统

    文章目录1 51单片机中断系统1.1 中断的固有优先级和抢占优先级1 51
    发表于 11-22 13:36 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b><b class='flag-5'>系统</b>

    51单片机中断系统

    文章目录1 51单片机中断系统1.1 中断的固有优先级和抢占优先级1 51
    发表于 11-23 16:51 14次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b><b class='flag-5'>系统</b>

    51单片机中断程序示例

    51单片机中断程序示例
    发表于 05-17 18:03 0次下载

    51单片机中断系统应用笔记

    基于51单片机中断系统
    发表于 12-04 09:30 1次下载

    51单片机中断系统介绍

    51单片机中断系统介绍与运用外部中断系统触发数码管显示数字的代码实验
    发表于 12-05 09:10 2次下载

    51单片机中断流程分析

    51单片机中断系统
    发表于 12-05 09:37 1次下载