STC89C51——中断系统

2023-11-12

 前言

           本文介绍基于常见的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);		//
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STC89C51——中断系统 的相关文章

随机推荐

  • 记录一个iOS实现视频分片缓存拖拽快进不能播放的问题

    代码现状 首先来看一下我们将视频数据塞给请求的代码 void finishLoadingWithLoadingRequest IdiotResourceTask task printf 哈哈执行到这里执行到到这里 n printf 哈哈哈数
  • 【目标检测-YOLO】YOLOv5-5.0v-损失函数(第四篇)

    YOLO Input Backbone Neck Head 置信度Loss 坐标回归Loss 分类Loss v1 448 448 GoogleNet FC 2 MSE v2 32x D
  • mod_jk 分析

    mod jk 分析 1 mod jk 模块的总体功能 由于 tomcat 的 HTTP 处理部分都由 Java 所写 5 5 12 版本以后出现了 native 库 用以 提高其 I O 和 SSL 的性能 1 在高并发的情况下负载较高 而
  • 误解#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)

    define GPIOA BASE AHB1PERIPH BASE 0x0000 typedef struct IO uint32 t MODER lt GPIO port mode register Address offset 0x00
  • python+opencv最简单的人脸识别入门

    0前置操作 安装python 最新3 10即可 安装pycharm 社区版即可 安装opencv python cmd输入pip install opencv python即可 嫌慢用国内镜像也可以 后续也需要安装opencv contri
  • 利用Scrum敏捷工具管理敏捷产品迭代Sprint Backlog

    什么是Sprint Backlog Sprint Backlog是Scrum的主要工件之一 在Scrum中 团队按照迭代的方式工作 每个迭代称为一个Sprint 在Sprint开始之前 PO会准备好产品Backlog 准备好的产品Backl
  • 数据本地存储方法

    存储到本地的数据类型有 数组 字典 字符串 对象类型的 1 字符串的本地存储 NSString str dsadasd NSArray arr NSSearchPathForDirectoriesInDomains NSLibraryDir
  • opencv-python中的腐蚀与膨胀函数

    1 图像的腐蚀 就像土壤侵蚀一样 这个操作会把前景物体的边界腐蚀掉 但是前景仍然是白色 这是怎么做到的呢 卷积核沿着图像滑动 如果与卷积核对应的原图像的所有像素值都是1 那么中心元素就保持原来的像素值 否则就变为零 这回产生什么影响呢 根据
  • Vision-Centric BEV Perception: A Survey (以视觉为中心的BEV感知综述)论文笔记

    原文链接 https arxiv org abs 2208 02797 1 引言 BEV表达包含了丰富的语义信息 精确定位和绝对尺度 可直接应用于下游任务如行为预测和运动规划 此外 BEV表达为融合不同视角 模态 时间和智能体的信息提供了物
  • nginx配置文件root和alias区别

    总结 alias指定的目录是准确的 root是指定目录的上级目录 并且该上级目录要含有location指定名称的同名目录 root的处理结果是 root路径 location路径 http后面的地址 alias的处理结果是 使用alias路
  • R语言的包bnlearn生成的概率图模型如何进行后续的检验和验证是否合理?有相关示例和论文吗?...

    bnlearn 包生成的概率图模型可以通过多种方法进行后续检验和验证 具体来说 可以考虑以下几种方法 对模型进行统计检验 以评估模型是否符合数据的分布 例如 可以使用Kolmogorov Smirnov检验 Lilliefors检验等 对模
  • condition update在分布式系统中设计

    condition update在分布式系统中设计 1 定义 condition update称为条件更新 用于分布式系统中数据一致性 能够保证在并发操作数据时的正确性 2 方式 1 可以通过version来保证condition upda
  • 解决pgAdmin4启动失败方法

    1 问题现象 有时pgadmin 4启动仅显示启动界面 或者 点击图标一直都没反应 启动界面用鼠标点击下就消失了 然后过很长时间就保错 the application server could not be contect 错误 比如一直出
  • python安装anaconda_安装Anaconda后,python出现import Error

    背景 Win10 VSCode下安装了Python3 6 4和一些package 有的package在site package路径下 在已经安装了Python3 6 4之后 又安装了Anaconda 安装设置都是默认的 Error出现 这时
  • qt控件学习笔记

    QToolBox控件 QToolBox控件 类似于下拉列表控件 头文件 include
  • Jenkins持续集成demo

    1 下载Jenkins的war包 官网地址 https jenkins io 点击下载 将jenkins war 部署到Tomcat中 本文使用的是Tomcat8 5 35 注意Tomcat需要配置账号密码 Tomcat7 是 manage
  • MySQL、Oracle中去重并保留最新的一条数据

    MySQL select from my table where id in select id from select id name group code max create time mt from my table group b
  • IDEA的设置

    terminal wsl2 setting gt tools gt Termianl gt shell path 填写wsl exe的绝对路 绝对路径的查找 wsl2 安装 https docs microsoft com en us wi
  • LA@向量组线性相关性

    文章目录 向量组线性相关性 线性相关 线性无关 多向量向量组线性相关 单向量向量组的线性相关性 单位向量向量组线性相关性 双向量向量组的线性相关性 双向量线性相关的几何意义 三向量线性相关的几何意义 包含零向量的向量组线性相关 概念迁移 线
  • STC89C51——中断系统

    前言 本文介绍基于常见的51单片机 即如下图的芯片 STC89C51具备5个中断源 中断源 优先级 中断请求标志位 中断允许控制位 外部中断0 0 IE0 EX0 定时器中断0 1 TF0 ET0 外部中断1 2 IE1 EX1 定时器中断