当前位置:网站首页>中断系统结构及中断控制
中断系统结构及中断控制
2022-08-09 10:36:00 【华为云】
中断系统结构及中断控制详解
MCS—51提供5个中断请求源,2个中断优先级,可实现两级中断服务程序嵌套。当CPU执行关中断指令后(或复位),将屏蔽所有中断请求,只有CPU执行开中断指令后才有可能接受中断请求,每个中断源可由软件编程为允许中断和禁止中断,每个中断源可程控为高优先级中断或低优先级中断。可见MCS-51具有较强的中断处理能力。
一、中断系统内部结构
MCS-51的中断系统结构框图如下图所示,与中断有关的特殊功能寄存器有4个,分别为中断源寄存器(即专用寄存器TCON和SCON的相关位)、IE和IP。
MCS-51单片机有5个中断源,可提供两个中断优先级,即可实现二级中断嵌套。
二、MCS-51中断源及中断入口
MCS-51的中断源可分为三类:外部中断、定时中断和串行口中断。
1.外部中断类
由外部原因引起的:
INT0——外部中断0请求信号,由P3.2输入,IT0 (TCON.0) 决定中断请求信号是低电平有效还是下降沿有效。一旦输入有效,即向CPU申请中断,并使IE0=1。
INT1——外部中断1请求信号,由P3.3输入,由IT1 (TCON.2) 决定中断请求信号是低电平有效还是下降沿有效。一旦输入有效,即向CPU申请中断,并使IE1=1。
2.定时中断类
定时中断是为满足定时或计数溢出处理的需要而设置的,在单片机芯片内部发生,无需在芯片上设置引入端,但在计数方式时,中断源可以由单片机芯片外部引入。
TF0——定时器T0溢出中断请求。当定时器T0产生溢出时,其中断请求标志TF0=1,请求中断处理。
TF1——定时器T1溢出中断请求。当定时器T1产生溢出时,其中断请求标志TF1=1,请求中断处理。
3.串行口中断类
串行口中断为串行数据的传送需要而设置的。
RI或TI——串行中断请求。
各中断源对应的中断服务程序入口地址:
中断源 入口地址
外部中断0 0003H
定时器T0中断 000BH
外部中断1 0013H
定时器T1中断 001BH
串行口中断 0023H
三、MCS-51中断请求
中断标志位:
TF1、TF0、IE1、IE0、RI 、TI登记各中断源请求信号:=1,有中断请求;= 0,无中断请求。
CPU响应中断后,该中断标志自动清零。TI,RI标志必须软件清零。
外部中断触发方式选择位:
- IT0、IT1=1:负边沿触发中断请求;= 0:低电平触发中断请求。
IE0:外中断0中断申请标志
若IT0=0,每个机器周期的S5P2采样INT0 ,若INT0=0则IE0=1;当 IT0=1时,第一个机器周期采样到INT0为高电平,第二个机器周期为低电平,则IE0=1。IE0=1表示外中断0正在向CPU申请中断,当CPU响应中断,转向中断服务程序时,由硬件清“0”IE0
TF0: T0溢出中断标志
T0被启动计数后,加1计数,溢出后,由硬件使TF0=1,请求中断,此标志保持到CPU响应中断后,由硬件自动清“0”。也可用软件查询该标志,并由软件清“0”。
四、中断允许控制
中断允许控制位:EA、ES、ET1、EX1、ET0、EX0
=1开中断;= 0关中断。
例:允许CPU响应INT0的中断请求
SETB EX0
SETB EA
中断允许寄存器IE格式和各位含义如下:
- EA——CPU中断总允许位。EA=1,CPU开放中断;
- ES ——串行口中断允许位。 ES=1,允许串行口中断
- ET1—— T1中断允许位。 ET1=1,允许T1中断。
- EX1——外部中断1允许位。 EX1=1,允许外部中断1中断
- ET0—— T0中断允许位。 ET0=l,允许T0中断;
- EX0——外部中断0允许位。EX0=1,允许外部中断0中断
- MCS-5l系统复位后,IE中各中断允许位均被清“0” 。
五、 中断优先级
中断优先级——设计人员给每个中断源事先安排中断响应的优先顺序。然后按轻重缓急的次序响应。
专用寄存器IP统一管理中断优先级。可实现两级中断嵌套。
- PS ——串行口中断优先级控制位。
- PT1——T1中断优先级控制位。
- PX1——外部中断1中断优先级控制位。
- PT0——T0中断优先级控制位。
- PX0——外部中断0中断优先级控制位。
以上对应位为1,高优先级;为0,低优先级。
当系统复位后,IP低5位全部清“0”,将所有中断源设置为低优先级中断。
同一优先级别按内部查询顺序排列优先级:
高 INT0、T0、INT1、T1、SIO 低。
自然优先级由硬件形成,排列次序如下:
- 中断源 自然优先级
- 外部中断0 最高级
- 定时器T0中断
- 外部中断1
- 定时器T1中断
- 串行口中断 最低级
边栏推荐
- 【原创】VMware Workstation实现Openwrt软路由功能,非ESXI,内容非常详细!
- 通过Doc在MySQL数据库中建表
- 深度学习--自编码器(AutoEncoder)
- xmms的歌词显示及音量控制OK
- unix环境编程 第十四章 14.8 存储映射I/O
- 学长告诉我,大厂MySQL都是通过SSH连接的
- 1002 写出这个数 (20 分)
- 壁纸
- 分类预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多特征分类预测
- By asking where the variables are stored, the shepherd boy laughed and said to use pointers, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, the use of go lang type pointers (Poin
猜你喜欢
随机推荐
在犹豫中度过了老多天,今天的工作时记录
【MySQL】mysql因为字符集导致left join出现Using join buffer (Block Nested Loop)
Unix Environment Programming Chapter 15 15.3 Functions popen and pclose
xmms播放器加了播放列表的管理功能
Win32控件--------------------WM_DRAWITEM消息测试程序
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目
通过Doc在MySQL数据库中建表
Battery modeling, analysis and optimization (Matlab code implementation)
OpenGL 2.0编程例子
笔记本电脑使用常见问题,持续更新
unix环境编程 第十四章 14.8 存储映射I/O
Win32控件------------显示系统使用的控件版本
shap库源码和代码实现
Nodejs服务端
[Halcon&定位] 解决Roi区域外的模板匹配成功
Solve the ali cloud oss - the original 】 【 exe double-click response can't open, to provide a solution
判断一段文字的width
tensor.eq() tensor.item() tensor.argmax()
arcgis制图之天地图符号样式配置
antd的Table列选择、列拓展