STC51单片机中断系统介绍
一、中断概念
在单片机执行任务过程中,可能会遇到其他任务需要优先执行,此时就需要引入中断。中断是广泛应用于51或ARM单片机里用于优先执行部分代码的重要功能,下图是中断过程示意图
二、中断寄存器
我们结合此图对中断系统进行介绍。根据图片可以看出,与中断有关的寄存器有TCON、IE、IP(RX和TX这里不加赘述)
TCON:
TF1(TF0):定时计数器溢出标志位,当定时计数器记满时会自动置1,可通过if(TF1==1)或while语句来判断是否溢出,并执行下一步操作。
TR1(TR0):定时计数器的启动控制位,启动时软件编程置1
IE1(IE0):外部中断请求标志位
IT1(IT0):外部中断触发选择位,若为1,则为下降沿触发,若为0,则为低电平触发
IE:
EA:总中断开关,使用任何中断前要先使EA置1
ET2:52系列T2中断允许位
ES:置1时开放串行口中断
ET1(ET0):定时计数器T1(T0)溢出中断允许位,使用定时计数器时需要使其置1
EX1(EX0):外部中断INT1(INT0)允许位,使用外部中断前要使其置1
中断优先级寄存器IP:
51单片机有五个中断源,但只有两个优先级,必然会有几个中断请求源处于同样的优先级。当CPU同时接收到几个同优先级中断请求时,其内部会有一个硬件查询逻辑,将根据中断查询逻辑的自然优先顺序来查询。
51单片机自然优先级为:
外部中断0>定时器0>外部中断1>定时器1>串口中断>定时器2
三、中断响应过程
51单片机的CPU在每一个周期都顺序查询每一个中断源,在机器周期的S5P2状态采样并按照优先级处理所有被激活的中断请求。但是在出现以下情况时,将不会处理中断请求:
①CPU正在处理更高级或同级中断
②现在的机器周期不是所执行指令的最后一个机器周期
③正在执行的指令是RETI或正在访问IE或IP
CPU响应中断时,首先会置位相应的优先级状态触发器,以阻断同级或低级触发请求。之后会自动清除响应的中断标志,并自动保护断电程序,将pc内容压入堆栈,并把中断源对应的矢量单元地址装入pc
STC51单片机中断系统介绍相关推荐
- STC51单片机中断与定时器配置参考
*外中断INT0--------void intsvr0(void) interrupt 0 using 1 *定时/计数器T0-----void timer0(void) interrupt 1 u ...
- 奥克斯空调红外遥控信号编码协议的分析,STC51单片机读红外程序
2022.9 网上根本找不到资料,没人免费发布,有发布也是要钱的.哎.自己研究吧. 刚买的奥克斯清芯净空调,遥控器型号YKR-T/101,这样子的,手感不错: 用USB示波器抓了波形看了一下,和标准的 ...
- STC51单片机23——T2定时器的使用
/** TF2 定时器2 溢出标志.定时器2 溢出时置位,必须由软件清除. 当RCLK或TCLK=1 时,TF2 将不会置位.TR2 定时器2 启动/ 停止控制位. 置1 时启动定时器.C/T2 定时 ...
- STC51单片机学习笔记8——stc12c56 串口显示AD(多路ad)
stc12c56 串口显示AD(多路ad). AD中断设置 AUXR: ADC_CONTR: //#define ADC_POWER 0x80后面不能加分号,不然就会错.其他定义必须加分号!!! // ...
- STC51单片机35——五线四相步进电机驱动测试程序(2个步进电机)
/*-------------------------------------------------------------------------------- MCU: ...
- STC51单片机学习笔记4——stc12c56 串口
stc12c56 串口(没有用独立波特率发生器,用T1不分频.中断式接受与发送) //烧写程序时,一定要选用外部晶振(烧写软件默认为内部晶振(5M~6M)) //烧写时,有时候写不进去,尝试断开地线, ...
- STC51单片机学习笔记9——stc12c52 串口显示AD(单路ad+led指示灯)
stc12le5204ad 为8位AD //烧写程序时,一定要选用外部晶振(烧写软件默认为内部晶振(5M~6M)),不然还会影响ADC //烧写时,有时候写不进去,尝试断开地线,然后接上上电 #inc ...
- stc51单片机入门 c语言,STC51单片机入门 (C语言)
51单片机发展主要历程:AT89C51系列--STC89C52系列--STC90系列--STC11系列--STC12系列--STC15F系列--STC15W系列(最新主流),由于STC12系列功能已经 ...
- STC51单片机制作的万年历项目(可做毕设),增加了温度显示。
使用STC51单片机模组在kevil4平台制作的万年历项目. 算是自己的第一个项目的记录和总结,通过这次项目提高了自己对C语言的使用,知道了怎么使用51单片机来完成一些功能. 参考资料为:普中51-双 ...
最新文章
- android首页图片轮播效果,Android_Android自动播放Banner图片轮播效果,先看一下效果图支持本地图 - phpStudy...
- 深度学习 Deep Learning with MATLAB(懒人版)
- 在aspx页面向iframe中post参数
- pycharm打包.py程序为可执行文件exe
- 傅奎:十年安全路,一颗好奇心
- 云 文件 服务器 只存,云 文件 服务器只存
- vue.js嵌套路由
- php根据类名字符串,PHP 5.5 新特性 ::class 获取类名字符串
- iOS开发常见的宏定义(实用)
- Unity--初识Live2D Cubism以及通过代码来实现Live2D模型的基本功能(二)
- 嵌入式技术栈之I2S
- web前端数据可视化控件
- C++实现经典同步问题(生产者消费者、读者写者、哲学家进餐、吸烟者问题)
- Day01-python编程基础
- Liunx教程超详细(完整)
- 灰色预测(MATLAB)
- oracle基本参数调整优化
- 自制PMW3901光流模块
- 以铜为镜,正衣冠,以史为镜,明心志,以人为镜,明得失
- 网络隔离环境下的跨网数据传输,如何保障安全性?