【STC89C51单片机】定时器中断系统

中断概念

中断是一种重要的硬件机制,用于在处理器正在执行程序时,能够及时响应某些外部或内部事件。中断可以临时中止当前正在执行的指令序列,转而去执行专门的中断服务程序(ISR,Interrupt Service Routine),以处理这些突发事件。中断处理完毕后,处理器可以返回原程序的执行位置,继续执行未完成的任务

中断的工作过程

  • 事件发生:当某个中断事件(如定时器到期、外部信号、电平变化等)发生时,中断信号被触发。
  • 中断请求:中断控制器向CPU发出中断请求(Interrupt Request,IRQ)。
  • 处理中断请求:如果CPU当前没有屏蔽该中断且中断优先级允许,CPU会在完成当前指令后暂停正在执行的程序,并保存当前的程序计数器(PC)和相关的状态信息,以便在中断处理完毕后恢复。
  • 执行中断服务程序:CPU跳转到对应中断向量表中指定的中断服务程序(ISR)入口地址,执行中断处理代码。
  • 恢复原程序:中断处理完毕后,CPU恢复先前保存的状态和程序计数器,继续执行被中断的程序。

中断的分类

  • 外部中断:由外部设备或外部事件引发,例如按键按下、传感器信号、串口通信等。
  • 内部中断:由内部事件引发,例如定时器溢出、中断错误等。
  • 软件中断:由软件指令引发,例如系统调用(syscall)。

中断的优先级

不同的中断源可以有不同的优先级。当多个中断同时发生时,优先级高的中断会先被处理。例如在8051微控制器中,可以通过中断优先级寄存器(IP)来设置各个中断的优先级。

定时器中断方式控制

  • 中断系统结构图
    在这里插入图片描述

  • 中断寄存器
    在这里插入图片描述
    CPU能响应定时器0中断的条件:需要配置IE寄存器的bit1: ET0 bit7:EA
    ET0中断允许要置一 ET0 = 1
    EA总中断要置一 EA = 1

代码示例

/****************************************************************定时器中断控制LED每隔1秒亮灭一次******************** 
*****main中控制另外一个灯每个300ms亮灭一次,有点多线程的意思了**********************************************************/
#include "reg52.h"
sbit led = P3^6;
sbit led1 = P3^7;
int cnt = 0;
void Time0Init()
{//1. 配置定时器0工作模式位16位计时TMOD = 0x01;//2. 给初值,定一个10ms出来TL0=0x00;TH0=0xDC;//3. 开始计时,定时器"数数"TR0 = 1;TF0 = 0;//4. 打开定时器0中断ET0 = 1;//5. 打开总中断EAEA = 1;
}
void Delay300ms()       //@11.0592MHz 软件延时,CPU“数数”
{unsigned char i, j, k;i = 3;j = 26;k = 223;do{do{while (--k);} while (--j);} while (--i);
}
void main()
{led = 1;Time0Init();while(1){led1 = 0;Delay300ms();led1 = 1;Delay300ms();}
}
void Time0Handler() interrupt 1
{cnt++;  //统计爆表的次数//重新给初值TL0=0x00;TH0=0xDC;if(cnt == 100){//爆表100次,经过了1scnt = 0;  //当100次表示1s,重新让cnt从0开始,计算下一次的1sled = !led;//每经过1s,翻转led的状态}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3248205.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Diffusion:解锁AI绘画新纪元的保姆级入门指南

在这个数字艺术日新月异的时代,Stable Diffusion如同一股清新的风,吹散了传统绘画的界限,让每个人都能成为创意无限的数字艺术家。作为一款基于Transformer结构的文本到图像生成模型,Stable Diffusion以其惊人的生成速度、细腻的画…

ubuntu22.04 配置grpc(优化官方教程)

优化了官方教程,2024.7.17顺利打通。 一:添加环境变量 打开root文件夹下的 .bashrc 文件 编辑文件:滚动到文件的底部,然后添加以下行: export MY_INSTALL_DIR$HOME/.local mkdir -p "$MY_INSTALL_DIR" exp…

AMEYA360:思瑞浦推出汽车级理想二极管ORing控制器TPS65R01Q

聚焦高性能模拟芯片和嵌入式处理器的半导体供应商思瑞浦3PEAK(股票代码:688536)发布汽车级理想二极管ORing控制器TPS65R01Q。 TPS65R01Q拥有20mV正向调节功能,降低系统损耗。快速反向关断(Typ:0.39μs),在电池反向和各种汽车电气瞬…

注册安全分析报告:东方航空

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

base SAS programming学习笔记13(Array)

1.Array array-name{dimension} <elements> array-name&#xff1a;向量名称 dimension&#xff1a;向量长度&#xff0c;默认为1&#xff1b; elements:列出变量名&#xff0c;变量名要么全是数值变量或者全是字符变量 array-name和variable不能相同&#xff1b;也不能和…

人工智能实训室的核心功能有哪些?

随着人工智能技术的飞速发展&#xff0c;其在各行各业的应用日益广泛&#xff0c;对高素质、高技能的人工智能人才需求也随之增加。唯众紧跟市场趋势&#xff0c;致力于建设高标准、高质量的人工智能实训室&#xff0c;以满足职业院校及企业对人工智能技术应用型人才的培养需求…

HarmonyOS NEXT学习——@BuilderParam装饰器

初步理解&#xff0c;相当于VUE的插槽slot Builder function overBuilder() {}Component struct Child {label: string ChildBuilder customBuilder() {}Builder customChangeThisBuilder() {}BuilderParam customBuilderParam: () > void this.customBuilder; // 使用自定…

数据结构(双向链表)

链表的分类 链表的结构⾮常多样&#xff0c;以下情况组合起来就有8种&#xff08;2 x 2 x 2&#xff09;链表结构&#xff1a; 虽然有这么多的链表的结构&#xff0c;但是我们实际中最常⽤还是两种结构&#xff1a;单链表和双向带头循环链表 1.⽆头单向⾮循环链表&#xff1a…

图论(一):速概览无向图有向图图的可视化路径问题

一、图论速概览 研究图的性质和图之间的关系节点和边组成&#xff0c;节点表示对象&#xff0c;边表示对象之间的关系无向图&#xff1a;边没有方向&#xff0c;节点之间的连接是双向的。常用于描述简单的关系&#xff0c;如社交网络中的朋友关系。根据边有无权重分为无权重无…

工业控制:CANOpen(控制器局域网络)协议快速学习

文章目录 背景协议介绍CAN总线协议CANOpen协议介绍CANOpen诞生背景CANOpen的对象字典 CANOpen的服务数据对象&#xff08;SDO&#xff09; 参考附录问题CAN总线竞争原理在CAN协议中&#xff0c;帧中的ID是发送者的ID还是接收者的ID&#xff1f; 背景 目前很多CANOpen介绍的文章…

【操作系统】文件管理——文件存储空间管理(个人笔记)

学习日期&#xff1a;2024.7.17 内容摘要&#xff1a;文件存储空间管理、文件的基本操作 在上一章中&#xff0c;我们学习了文件物理结构的管理&#xff0c;重点学习了操作系统是如何实现逻辑结构到物理结构的映射&#xff0c;这显然是针对已经存储了文件的磁盘块的&#xff0…

简单实用的企业舆情安全解决方案

前言&#xff1a;企业舆情安全重要吗&#xff1f;其实很重要&#xff0c;尤其面对负面新闻&#xff0c;主动处理和应对&#xff0c;可以掌握主动权&#xff0c;避免股价下跌等&#xff0c;那么如何做使用简单实用的企业舆情解决方案呢&#xff1f; 背景 好了&#xff0c;提取词…

【React打卡学习第一天】

React入门 一、简介二、基本使用1.引入相关js库2.babel.js的作用 二、创建虚拟DOM三、JSX&#xff08;JavaScript XML&#xff09;1.本质2.作用3.基本语法规则定义虚拟DOM时&#xff0c;不要写引号。标签中混入JS表达式时要用{}。样式的类名指定不要用class,要用className.内联…

中国贸易外经统计年鉴(2006-2023年)

数据年限&#xff1a;2006-2023年全 数据格式&#xff1a;pdf、excel、caj 数据内容&#xff1a;《中国贸易外经统计年鉴》是一部反映中国国内贸易、对外经济贸易和旅游业发展情况的资料性年刊。收录了 中国国内消费品市场、批发和零售业、住宿和餐饮业、国际收支、对外贸易、利…

Web前端知识视频教程分享

资料下载地址: https://545c.com/f/45573183-1323782723-42d3b2?p7526 (访问密码: 7526)

mysql的索引事务和存储引擎

一、索引 1、索引 索引的概念 &#xff1a;索引是一个排序的列表&#xff0c;在列表当中存储索引的值以及索引值对应数据所在的物理行。 索引的引用&#xff1a; 使用索引之后&#xff0c;就不需要扫描全表来定位某行的数据。 加快数据库的查询速度。 索引可以是表中的一…

智慧园区解决方案PPT(44页)

智慧园区解决方案摘要 一、引言 随着科技的飞速发展&#xff0c;智慧化已成为园区建设与发展的重要趋势。然而&#xff0c;传统园区在智慧化方面仍存在诸多不足&#xff0c;如政企互动便捷化不足、园区治理智能化单一、运营生态化缺失等问题。为此&#xff0c;我们提出了以“…

TI 【ads131m02】DSP TMS320F280049C调试与学习笔记

ads131m02 调试与学习笔记 时序SPI 参考链接&#xff1a; ADS131M02_TI官网资料参考 ADS131M02—英文使用手册 ADS131M0x—参考代码 Example C Code ADS131M02 是一款 two 通道、同步采样、24 位、ΔΣ 模数转换器 (ADC)&#xff0c;具有宽动态范围、低功耗和电能测量特定功能…

二叉树的构造

二叉树的构造&#xff08;前后序用来确定根的位置&#xff0c;中用来划分左右子树 最大二叉树&#xff08;递归要先写终止条件 终止条件 终止条件 每次找最大的结点为分界点以及根节点&#xff0c;左边构成左子树&#xff0c;右边构成右子树&#xff0c;递归 class Solution {…

【Docker】Docker-harbor私有仓库部署与管理

目录 一.Harbor 概述 1.什么是Harbor 2.Harbor的特性 3.Harbor的构成 二.Harbor 部署 1.部署 Docker-Compose 服务 2.部署 Harbor 服务 3.启动 Harbor 4.创建新项目 5.创建用户 6.本地上传镜像 7.从Harbor下载镜像 三.镜像同步 1.定时拉取 2.主动推送 四.管理 …