前言

本文介绍基于常见的51单片机,即如下图的芯片:

  • STC89C51具备5个中断源

    中断源 优先级 中断请求标志位 中断允许控制位
    外部中断0 0 IE0 EX0
    定时器中断0 1 TF0 ET0
    外部中断1 2 IE1 EX1
    定时器中断1 3 TF1 ET1
    串口中断 4 RI / TI /

    优先级数字越低,越优先得到CPU处理。配置中断时,需要将对应中断允许控制位置1。

  • 使用任何中断,都需要打开总中断,即程序语句 EA = 1 ;

  • 与中断相关的寄存器:IE 、TCON、SCON(此处只介绍了常用的)


一、中断相关寄存器介绍

1.IE:中断允许寄存器(可位寻址)

D7 D6 D5 D4 D3 D2 D1 D0
IE EA / / ES ET1 EX1 ET0 EX0

对寄存器位功能介绍如下:

①EA :CPU总中断允许控制位。EA=1,允许总中断;EA=0,屏蔽所有中断请求。

②ES:串口中断允许位。用到串口中断时需要置 1

③ET1:定时器1中断允许位。用到定时器1中断时需要置 1

④EX1:外部中断1中断允许位。用到外部中断1中断时需要置 1

⑤ET0:定时器0中断允许位。用到定时器0中断时需要置 1

⑥EX0:外部中断0中断允许位。用到外部中断0中断时需要置 1

实际应用中使用到中断的话,需根据对应中断将其中断允许位置 1,且EA也需置 1。

2.TCON:定时器/计数器控制寄存器(可位寻址)

D7 D6 D5 D4 D3 D2 D1 D0
TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

对寄存器位功能介绍如下:

①TF1: T1 溢出标志位。T1溢出后,硬件置1,硬件清0。
②TR1:T1 运行控制位。在 GATE=0时(此位在TMOD寄存器),只要TR1=1 , T1开始工作。
③TF0:T0 溢出标志位。T0溢出后,硬件置1,硬件清0。
④TR0:T0 运行控制位。在 GATE=0时(此位在TMOD寄存器),只要TR0=1 , T0开始工作。
⑤IE1:外部中断1请求标志位。硬件置1,硬件清0。
⑥IT1:外部中断1触发方式控制位。IT1=0,低电平触发;IT1=1,下降沿触发。
⑦IE0:外部中断0请求标志位。硬件置1,硬件清0。
⑧IT0:外部中断0触发方式控制位。IT0=0,低电平触发;IT0=1,下降沿触发。

实际应用中,标志位不用配置,标志位是用来给CPU触发中断的;而控制位是在使用到任意中断时,需将对应的控制位置 1 。

3.SCON : 串行控制寄存器(可位寻址)

位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
SCON / / / / / / T1 R1

下面对寄存器控制位进行介绍:

①TI:发送中断请求标志位。

②RI:接收中断请求标志位。

以上2个标志位,大多用于串口通信时,用于发送或接收到数据时的判断,由硬件置1,软件清0。实际应用中,可以配合2个标志位对数据进行处理。

二、程序

以下程序为外部中断0和外部中断1参考程序。

#include <reg51.h>void INT0( ) interrupt 0   //如果是外部中断1,中断号为2(即interrupt 2)
{//Something to do ;
}void main( )
{IT0=1;        //中断触发方式,1为下降沿触发,0为低电平触发(如果是外部中断1,则为IT1)EX0=1;     //使能外部中断0(如果是外部中断1,则为EX1)EA=1;        //允许总中断while(1);        //
}

STC89C51——中断系统相关推荐

  1. 基于STC89C51单片机中断系统操作

    MCS-51 单片机中断系统 CPU正在处理某件事情时,外部发生另一件事情,请求CPU处理后CPU暂时停止工作后,转入处理发生的事情,结束后返回原任务.这一程序称为中断. Created with R ...

  2. 【DSP开发】C6000非多核非KeyStone系列DSP中断系统

    C6000系列DSP的中断系统 上一篇介绍了C6455的GPIO系统,最后把GPIO4配置成了中断/事件模式,本文将介绍C6455的中断系统,介绍完基本概念后,给出把GPIO4映射到INT4的代码. ...

  3. Linux中断(interrupt)子系统之一:中断系统基本原理【转】

    转自:http://blog.csdn.net/droidphone/article/details/7445825 这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于AR ...

  4. linux中断系统那些事之----中断处理过程【转】

    转自:http://blog.csdn.net/xiaojsj111/article/details/14129661 以外部中断irq为例来说明,当外部硬件产生中断时,linux的处理过程.首先先说 ...

  5. PowerPC中断系统简介(一)

    1. PowerPC中断系统简介 PowerPC处理器的中断系统由两部分组成,一是内核的中断及异常的处理:二是中断控制器.以P2020处理器为例,包括E500内核中断及异常处理系统和OpenPIC中断 ...

  6. 51单片机的中断系统

    文章目录 1 51单片机的中断系统 1.1 中断的固有优先级和抢占优先级 1 51单片机的中断系统 1.1 中断的固有优先级和抢占优先级 中断使能寄存器: 中断查询序列: interrupt 后面中断 ...

  7. 51单片机 | 中断系统概念及结构

    -------------------------------------------- 中断的过程: 对于单片机来讲,中断是指CPU在处理某一时间A时,发生了另一事件B请求CPU立刻去处理(中断发生 ...

  8. 8086中断系统——《x86汇编语言:从实模式到保护模式》读书笔记04

    80X86中断系统 能够处理256个中断 用中断向量号0-255区别 可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理 1.中断的分类 中断可以分为内部中断和外部中断. (1)内 ...

  9. S3C2410中断系统

    S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器.该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,支 ...

最新文章

  1. PHP Liunx 服务安全防范方案
  2. 图解VC++ opengl环境配置和几个入门例子
  3. 结构体对齐,#pragma pack
  4. Spring Boot整合Spring Data Redis-存取JSON格式Java对象
  5. oracle11gasm,Oracle11gASM之ACFS创建案例
  6. Euler:欧拉函数&素数筛
  7. 飞信SDK内容【转载】
  8. 分段函数if语句_C语言函数系列之库函数中基础必会函数(一)
  9. Android中的onActivityResult和setResult方法的使用
  10. [译] 什么阻塞了 DOM?
  11. HashMap底层原理与扩容机制
  12. Blender简单建模
  13. 做个什么网站可以赚钱,这6种网站最好赚钱!
  14. 微信小程序学习(五)
  15. 网站社交登录之微博登录
  16. mysql数据库教学系统设计_MySQL-教学系统数据库设计
  17. bzoj1605 / P2905 [USACO08OPEN]农场危机Crisis on the Farm
  18. 运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exis
  19. exchange2007+outlook2007,无法使用外出助理
  20. 2022年企业法律顾问综合法律知识考试模拟试题卷及答案

热门文章

  1. 分享一个数学公式编辑器 Mathtype 6.9 最新版 附注册码
  2. m基于中继协助的认知无线电频谱切换机制的matlab仿真分析
  3. ### 献给阿尔吉侬的花束python版本——bfs
  4. 信息摘要算法之一:MD5算法解析及实现
  5. web前端培训多长时间
  6. 如何通过自动下载使PlayStation 4(和游戏)保持最新
  7. 服务器响应未知 请再试一次,PS4 错误代码解决方法
  8. 倾斜矩形框的IOU计算与Python实现
  9. 昆仑通态TPC7022Nt物联网屏试用
  10. 《AutoCAD 2013中文版从入门到精通》——第 1 章  AutoCAD 2013基础 1.1 操作界面...