| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 单片机中断系统 -> 正文阅读 |
|
[嵌入式]单片机中断系统 |
前言:中断系统是单片机非常重要的组成部分,是为了使单片机能够对外部或者内部随机发生的事件实时处理而设置的。 一:单片机的概念 一个高速主机和一个低俗外设连接时,效率极低,低俗外设工作时无端大量占用CPU时间。一个高速主机和多个低速外设连接时,高速主机无法进行多任务并行处理。此时需引入“中断”。 ?CPU在处理某一事件A时,另一事件B发出请求(中断请求);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A,这一过程称为中断。 ??中断源:引起CPU中断的根源。 中断源向CPU提出中断请求,CPU暂时中断原来正在处理的事件A,转去处理事件B,对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。 二:传送方式及特点 中断系统具有以下优点: ①:分时操作。CPU可以分时为多个外设服务,提高了计算机的利用率。 ②:实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强。 ③:可靠性高:CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。 三:C51中断系统 3.1 C51中断系统有5个中断源,2个优先级,可实现二级中断嵌套。 例:(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。 3.2:中断处理过程
?每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的,IP中断优先级寄存器地址为B8H。 同一优先级的中断请求不止一个时,因此有中断优先排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成。 设置51单片机的4个中断源,使他们的优先顺序为 ?T1,INT1,INT0,T0。 ?IPH=0X08,PT1=1,IP=0X40,0X1=1。 C51中断优先级有如下3条原则。 ①:CPU同时接收到几个中断请求,首先响应优先级别最高的中断请求。 ②:正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。 ③:正在进行的低优先级中断服务,能被高优先级中断请求所中断。 为了实现上述后2条原则,中断系统内部设有2个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断。它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,他将阻断后来所有的低优先级中断请求。
CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的,IE中断允许寄存器的地址为A8H。 3.3完整步骤
①:中断源有中断请求。 ②:此中断源的中断允许位为1. ③:CPU开中断(即EA=1)。 以上3条同时满足时,CPU才有可能响应中断请求。
①:中断请求。中断事件一旦发生,中断源就提交中断请求(将中断标志位置1),欲请求CPU暂时放下目前的工作,转向为该中断作专项服务。 ②:中断使能。虽然中断源提交了中断请求,但是,能否得到CPU的响应,还要取决于该中断请求能否通过若干关卡送到CPU(中断使能位等于2,关卡放行) ③:中断响应。 ④:中断处理。 ⑤:中断返回。 3.4中断请求标记的置位和清除
?下降沿触发方式条件下,在产生中断请求时由硬件置位中断请求标记,当CPU响应中断时由硬件清除。电平触发方式条件下,中断请求标记由外部中断源控制。具体是,当CPU检测到INT引脚上出现低电平时,中断标志IE由硬件置位,INT引脚上出现高电平时,中断标志IE由硬件清除。 ①:定时器中断 计数溢出时,由硬件置位中断请求标记,当CPU响应中断时,则由硬件清除。 ②:串口中断 当串口接受完1帧数据后请求中断,由硬件置位中断请求标记RI,RI必须由软件清除。当串口发送完1帧数据后请求中断,由硬件置位中断请求标记TI,TI必须由软件清除。
每个中断源都有3个位 ①:优先级定义位 ②:中断使能位 ③:中断请求标记位。
EA为全局中断使能位(总允许位),为0时,全局中断禁止;为1时,全局中断允许。 ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 7:51:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |