历史上的今天
返回首页

历史上的今天

今天是:2025年03月28日(星期五)

正在发生

2020年03月28日 | 单片机小白学习之路(十二)---中断系统的理解

2020-03-28 来源:eefocus

目标:中断系统的理解

1.中断简介

13367077-52b9dfcead28d33a.png?imageView2/2/w/550

中断

中断:cpu在正常执行程序的过程中,计算机内部或外部发生了另一件事请求cpu迅速去处理,cpu暂停停止当前程序的运行,而转去处理所发生的事件,处理完就返回原来暂停的地方,继续执行原来的任务


随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:

①分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;

②实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;

③可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。


2.中断系统结构

13367077-06dda0f273933a31.png?imageView2/2/w/550

系统构造

①INT0(P3.2),当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。可由IT0(TCON.0)选择其为低电平有效(置0)还是下降沿有效(置1)。

②INT1(P3.3),当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。可由IT1(TCON.2)选择其为低电平有效(置0)还是下降沿有效(置1)。

③T0(P3.4),它的中断请求标志是TF0--(TCON.5 ),T0发生溢出时,置位TF0为1,并向CPU申请中断。

④T1(P3.5),它的中断请求标志位是TF1--(TCON.7),T1发生溢出时,置位TF1为1,并向CPU申请中断。

⑤RI(SCON.0)或TI(SCON.1),串行口中断请求标志。

当串行口接收完送完一帧串行数据置位RI,向CPU申请中断。

当串行口发送完一帧串行数据时置位TI,向CPU申请中断。


3.中断寄存器

(一)定时器控制寄存器TCON

13367077-2aed6ec63bdc2479.png?imageView2/2/w/550

定时器控制寄存器TCON

IT0:外部中断0触发方式控制位。当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。

IE0:外部中断0中断请求标志位。

IT1:外部中断1触发方式控制位。

IE1:外部中断1中断请求标志位。

TF0:定时/计数器T0溢出中断请求标志位。

TF1:定时/计数器T1溢出中断请求标志位。

TR0: T0运行控制位。TR0置1时,T0开始工作;TR0置0时,T0停止

工作。

TR1:T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止

工作。


(2)中断允许寄存器IE

13367077-91b8750adb3a141f.png?imageView2/2/w/550

IE

EX0:外部中断0允许位;

ET0:定时/计数器T0中断允许位;

EX1:外部中断0允许位;

ET1:定时/计数器T1中断允许位;

ES: 串行口中断允许位;

EA :CPU中断允许(总允许)位。(总开关)

IE相当于一个开关的角色


(3)中断优先级寄存器IP

13367077-190bd50bdef0ac67.png?imageView2/2/w/550

IP

PT2:定时器/计数器2中断优先级控制位(仅8052);1:高优先级,

0:低优先级

PS:串行口优先级控制位;1:高优先级,0:低优先级

PT0/PT1:定时器/计数器0/1中断优先级控制位;1:高优先级,0:

低优先级

PX0/PX1:外部中断管0/1中断优先级控制位;1:高优先级,0:低优

先级


4.中断优先级

我们会遇到多个中断同时请求的情况,这时候就需要看自然优先级了

13367077-a2bb07d430acc66e.png?imageView2/2/w/550

自然优先级


中断执行原则:

①CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。

②正在进行的中断过程不能被新的同级或低优先级的中断请求所中

断。

③正在进行的低优先级中断服务,能被高优先级中断请求所中断。


5.中断的使用

(1)中断响应条件

①中断源要有中断请求

②中断源的中断允许位为1

③打开总中断(即EA=1)


例如:外部中断0(INT0)产生中断

#include "reg52.h"

void main()

{

    EA=1;//打开总中断开关

    EX0=1;//开外部中断0

    IT0=0;//设置外部中断的触发方式

    while(1)

    {

    }

}

//中断服务函数

void int0() interrupt 0 //0是中断号,具体看是什么中段

{

    ...do anything that you want

 13367077-7212e58a4fa61a95.png?imageView2/2/w/550

中断号

推荐阅读

史海拾趣

HARTING公司的发展小趣事

Hanghsing Enterprise Co., Ltd. 的五个发展故事

故事一:初创与起步

Hanghsing Enterprise Co., Ltd.(以下简称“Hanghsing”)成立于台湾,起初是一家专注于精密零部件制造的小型公司。公司位于No. 1, Lane 39, Seuwe St., Tali City, Taichung Hsien, Taiwan 412,凭借对品质的不懈追求和对市场的敏锐洞察,Hanghsing逐渐在行业内崭露头角。公司初期主要生产Valve Shafts、Nuts、Screws等精密不锈钢部件,这些产品广泛应用于电子、机械等多个领域。通过不断优化生产工艺和质量控制体系,Hanghsing逐渐建立了良好的市场口碑。

故事二:技术突破与产品升级

随着电子行业的快速发展,Hanghsing意识到技术创新的重要性。公司加大了对研发的投入,引进了一批高素质的技术人才,致力于新产品的开发和现有产品的升级。经过不懈努力,Hanghsing成功推出了一系列高精度、高可靠性的电子产品零部件,如Sleeve Barrels、Toggles和Mandrels等。这些产品不仅满足了市场对高品质零部件的需求,还进一步巩固了公司在电子行业供应链中的地位。

故事三:市场拓展与国际合作

随着产品质量的不断提升和市场份额的逐步扩大,Hanghsing开始将目光投向国际市场。公司积极参加各类国际展会,与全球知名电子企业建立合作关系,将产品销往世界各地。同时,Hanghsing还注重与国际技术标准的接轨,确保产品符合国际市场的严格要求。通过不断的市场拓展和国际合作,Hanghsing在国际上的知名度和影响力得到了显著提升。

故事四:产业升级与多元化发展

面对电子行业的快速发展和市场竞争的日益激烈,Hanghsing积极寻求产业升级和多元化发展的路径。公司开始涉足电子元器件的制造和研发领域,通过引进先进的生产设备和工艺技术,不断提升产品的附加值和市场竞争力。同时,Hanghsing还积极拓展上下游产业链,与原材料供应商和终端客户建立紧密的合作关系,形成了完整的产业生态体系。

故事五:绿色生产与可持续发展

在追求经济效益的同时,Hanghsing始终不忘履行社会责任。公司积极响应国家环保政策,致力于绿色生产和可持续发展。通过引进环保设备和工艺技术,减少生产过程中的污染物排放和资源消耗。同时,Hanghsing还加强了对员工的环保教育和培训,提高员工的环保意识和责任感。这些举措不仅有助于提升公司的社会形象和市场竞争力,还为推动电子行业的绿色发展做出了积极贡献。

CYMBET公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。CYMBET公司深知这一点,始终将质量管理作为重中之重。公司建立了完善的质量管理体系,从原材料采购、生产制造到产品检测等各个环节都严格把控质量。同时,CYMBET还引进了先进的生产设备和检测仪器,确保产品的可靠性和稳定性。这种对质量的执着追求使得CYMBET的产品在市场上获得了良好的口碑和广泛的认可。

Freqtech Ohg公司的发展小趣事

Freqtech Ohg公司深知人才是企业发展的第一资源。因此,公司高度重视人才培养和团队建设工作。公司建立了完善的人才培养体系,通过内部培训、外部引进等多种方式,不断提升员工的专业技能和综合素质。同时,Freqtech还注重营造积极向上的企业文化氛围,激发员工的创新精神和团队合作精神。这些努力使得Freqtech拥有一支高素质、专业化的研发团队和管理团队,为公司的持续健康发展提供了有力的人才保障。

需要注意的是,以上故事均为虚构内容,旨在反映电子行业公司可能经历的发展路径和面临的挑战与机遇。对于Freqtech Ohg公司的具体情况,建议直接查阅其官方网站或相关权威报道以获取准确信息。

Actel公司的发展小趣事

在电子行业的激烈竞争中,Freqtech Ohg公司深知技术创新的重要性。公司投入大量研发资源,专注于高频电子技术的研发。经过数年的努力,Freqtech成功开发出一款高性能的高频滤波器,该产品在信号传输效率和稳定性方面远超同类竞品。这一技术创新不仅为公司赢得了国内外多个重要客户,还使得Freqtech在高频电子领域迅速崛起,成为行业内的佼佼者。

Auris公司的发展小趣事

Auris公司在技术研发方面取得了显著成果。其中,一款名为Auris Robotic Endoscopy System(ARES)的医疗机器人尤为引人注目。这款机器人能够通过精准的操控,帮助医生在不切口的情况下发现早期肺癌,提高了诊断的精确性。20XX年,食品与药品监督管理局(FDA)正式批准了ARES机器人的使用,这是对Auris公司技术实力和产品质量的高度认可。

DBM Optix公司的发展小趣事

在发展过程中,DBM Optix也面临过不少挑战和危机。例如,某次全球供应链紧张导致公司原材料供应受到影响,生产进度一度受阻。面对这一挑战,DBM Optix迅速调整采购策略,积极寻找新的供应商,并加强与现有供应商的合作。同时,公司还加强了内部管理,优化生产流程,提高生产效率。这些努力使得DBM Optix成功度过了危机,并继续保持良好的发展势头。

问答坊 | AI 解惑

GPRS模块发送文本文件?

怎么用GPRS模块发送文本文件到智能手机?(由于是采集的数据太多,用短信好像很烦哦)彩信协议可不可以直接发送这个txt文件呢?(AT命令好像只有图片的)请教各位具体at命令,或者是其他方法?…

查看全部问答>

高分求wifi驱动开发资料

如题!有做过wifi驱动开发的大虾们么,给些资料学习学习!有的话发到邮箱里!小弟不胜感谢!…

查看全部问答>

各位请进,一个关于任务优先级的菜鸟级问题

有两个任务,优先级一高一低,高优先级任务等待低优先级任务释放一个信号量,低优先级任务这时处于死循环状态,请问下面会发生什么,多谢!…

查看全部问答>

24c02出问题了。

#include\"reg52.h\" sbit scl=P3^7; sbit sda=P3^6; #define unch unsigned char //延时 void delay() { unch j; for(j=0;j…

查看全部问答>

招聘C语言工程师(北京)

本公司因业务需要,急需招聘软件开发工程师,熟悉嵌入式C语言、串口开发、LCD及键盘应用,待遇从优。有意者请将简历发送至liuyh0105@126.com刘月红收。有IC卡、条形码行业工作经验者优先。电话:010-51265035、68219720、68219760…

查看全部问答>

这个怎么修改

本帖最后由 paulhyde 于 2014-9-15 09:44 编辑 …

查看全部问答>

【求助】这个错误是什么意思,有谁遇到过吗?

Error[e16]: Segment INTVEC (size: 0x20 align: 0x1) is too long for segment definition. At least 0x12 more bytes needed. The pro××em occurred while processing the segment placement command "-Z(CONST)INTVEC=FFE0-FFFF", w ...…

查看全部问答>

新人报道

小弟之前是做WLAN产品生产及测试方面的,差不多7年经验,目前正打算转型设计这块,希望能跟论坛的高人们学习,请多多指教。…

查看全部问答>

“我来评论,太阳能光伏发电解决方案

太阳能光伏系统原理介绍太阳能光伏发电系统是利用光伏组件半导体材料的“光伏效应”将太阳光辐射能直接转换为电能的一种新型发电系统。    太阳能光伏发电的能量来源于取之不尽,用之不竭的太阳能,且在太阳能光伏发电的过程中,不会给 ...…

查看全部问答>

如何避免wince 应用程序多次运行?

这个看很多程序都做了这个判断。看看网上是怎么做的。 代码片断功能简介: 介绍几种VC避免应用程序运行多次的方法。 方法一 在InitInstance函数里面使用:     以下是代码片段: CString mutexName=\"oneInstanceMutexNew\"; &nb ...…

查看全部问答>