想总结中断由来已久,但是总感觉一章的东西,太多,无从下手。


        前几天看到一句话“能把自己学会的东西说出来,才是真的学会”。今天,就要会一会这中断系统


        图片和文字内容来自:普中科技的ppt,百度文库,《操作系统》,《组成原理》我整理整理。


        先不谈中断,先看看cpu可以如何处理输入输出。比如,现在我的键盘在输入,试问cpu如何知道我输入完成,以将输入的内容送入内存进行处理?最简单的是,cpu原地等待,cpu进行不断的查询,查询键盘是否输入完成。但是这样,cpu就不能去做其他事情,严重影响cpu的速度。


       此时可以引入中断的方式。cpu工作自己的。键盘输入自己的。当键盘输入完成,发出中断请求。如果cpu决定响应该中断,保存当前工作进度,去提取输入的内容。中断处理结束后,恢复原来工作现场,继续工作。这样cpu的效率就大大提高。


中断的概念:


CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);


CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);


待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。

图一

引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统。


51单片机的中断系统结构


89C51/52的中断系统有5个中断源 ,2个优先级,可实现二级中断嵌套 。

图二

图三

注意:上面都是请求中断,但cpu是否响应中断?这由IE寄存器决定。


           只有IE的开关闭合(即cpu允许),当请求中断时,cpu才会响应。


中断请求标志(TCON):


1、TCON的中断标志

图四

(目前来说,只关心背景为深色的位)


IT0(TCON.0),外部中断0触发方式控制位。


        当IT0=0时,为电平触发方式。


        当IT0=1时,为边沿触发方式(下降沿有效)。


IE0(TCON.1),外部中断0中断请求标志位。


IT1(TCON.2),外部中断1触发方式控制位(类似IT0)。


IE1(TCON.3),外部中断1中断请求标志位。


TF0(TCON.5),定时/计数器T0溢出中断请求标志位。


TF1(TCON.7),定时/计数器T1溢出中断请求标志位。


中断请求标志(SCON):

中断允许控制(IE)


CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。

图六

EX0(IE.0),外部中断0允许位;


ET0(IE.1),定时/计数器T0中断允许位;


EX1(IE.2),外部中断0允许位;


ET1(IE.3),定时/计数器T1中断允许位;


ES(IE.4),串行口中断允许位;


EA (IE.7), CPU中断允许(总允许)位。(所以执行中断时,总中断必须打开)


中断优先级(中断优先寄存器--IP):


同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:

图七

这里面稍微提下中断服务程序入口。当执行中断的时候,cpu要转去执行中断程序。但是如何知道程序的入口位置?


可以把中断的程序入口放在0003H的位置,cpu将这里面存储的程序入口放入pc(每次下一步执行的指令)中。(这只是我目前的想法,不知道正确与否)


中断号:


这在后面写程序会用到。

图八

 

如果是外部中断0的函数,在中断函数的后面加上 interrupt 0(0为外部中断0的中断号)。


中断优先级三条原则:


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


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


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


为了实验上述判优,有硬件排队器;当然也可以用软件实现判优。

图九:具有屏蔽功能的排队器

 

上面这些优先级的设定是IP(中断优先寄存器),我没有用过,也不清楚怎么用,这里转载下其他文章关于它的介绍。


来源:http://www.sohu.com/a/191453790_99957951


P在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H一BFH,IP用来设定各个中断源属于两级中断中的哪一级,IP的基本格式如下图所示:

图十

×:无效位。


PS:串行I/O中断优先级控制位。PS=1,高优先级;PS=0,低优先级。


PTl:定时器/计数器1中断优先级控制位。PTl=1,高优先级;PTl=0,低优先级。


Pxl:外部中断1中断优先级控制位。Pxl=1,高优先级;PXl=O,低优先级。


PT0:定时器/计数器o中断优先级控制位。PT0=1,高优先级;PTO=0,低优先级。


Px0:外部中断0中断优先级控制位。Px0=1,高优先级;Px0=0,低优先级。


 


中断的使用:


使用中断,要熟悉中断的结构,要根据要求设置寄存器。


1、首先明确使用哪个中断。


2、接着就要设置TCON(或者SCON),中断请求标志。


3、紧接着是设置IE,中断允许标志。


当上述设置满足时,单片机运行满足条件会触发中断请求,此时中断允许,进入中断,执行中断。


 


引用文章:


51单片机中断控制


单片机中断系统的控制寄存器IE和IP 


51普中单片机的ppt


唐朔飞的《计算机组成原理》

关键字:单片机  中断系统  cpu 引用地址:单片机的中断系统(一)

上一篇:单片机的外部中断(二)
下一篇:51单片机的定时中断(三)

推荐阅读

关于植入芯片到人体内部,从技术层面来讲,已经没有什么难度。举个例子,喜好养宠物的人,有不少人会选择为自己的宠物植入宠物芯片。这一种很典型无线电射频芯片,只比大米粒大一点点,使用特定的装置打入宠物体内。如果用特定的仪器扫描芯片中记录的信息,如宠物主人的名字,地址,联系方式等,就会被全部读出。某些更为高端的芯片甚至还有定位功能,如果...
  单车玻璃用量提高正逐渐成为汽车行业的一大趋势。据中国报告网信息显示,在20世纪50年代,单车的玻璃用量大约在2.2平方米左右。而到了最近几年,一辆汽车大约需要用到5平方米左右的玻璃,几乎是之前的两倍之多。  如果车云菌没记错的话,上一次如此带动玻璃产业繁荣发展的还是智能手机时代的爆发。彼时,第一代iPhone惊为天人的出世颠覆了人们对传统...
去年同期大疆推出了御 Mavic Mini,这是一款便携且价格适中的无人机产品。据外媒报道,大疆可能很快会推出其下一代产品-御 Mavic Mini 2。据报道,御 Mavic Mini 2 已在美国相机,电子产品和胶卷设备零售商 Adorama 的网站上列出。该页面甚至透露了可能的零售价,显示御 Mavic Mini 2 单机版的零售价为 449 美元,畅飞套装的零售价则为 ...
直接上代码:bsp_spi_flash.c/** ****************************************************************************** * @file bsp_spi_flash.c * @author STMicroelectronics * @version V1.0 * @date 2019 * @brief SPI FLASH(W25Q64)应用函数bsp ****************************************************************...

史海拾趣

问答坊 | AI 解惑

浅谈无线集抄系统在水表中的应用

江西三川水表股份有限公司   曾茂华 宋财华 摘要: 本文章简单地介绍一个比较完整的无线网络集抄系统。 关键字: Zigbee,TinyOS,中继,无线节电,无线远程终端,无线手持机,无线hub,上位机管理系统。 一,引言 现阶段,无线网络技 ...…

查看全部问答∨

全球LED电子原料严重吃紧 供货速度决定市场胜负

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 全球LED产业日前因上游电子元件严重缺料,产能难以接续,导致许多国际大厂交货期纷纷拖延,竟由原先的5周狂延至20周以上 !消息一出,有如在快速起步的LED产业投下震撼弹,不仅业界急跳脚,下游 ...…

查看全部问答∨

powerpc 跳到0x800是怎么回事

有用过powerpc 的同志吗?我程序一运行就就跳到0x800是怎么回事了?…

查看全部问答∨

关于如何学习嵌入式 高手 们进啊

大家好,我是一名大三的学生,学的是嵌入式方向的,但我们现在才学嵌入式操作系统,都TMD还是理论,学了等于没学,就上学期还学了个汇编,现在一学期都快过完了,感觉什么关于嵌入式方面的都没学到,如果靠下学期再来学点东西,以后出去就别想混了 ...…

查看全部问答∨

将部分I/O口设置为输入口,如果再将其置为高电平,会有影响吗?

如16F73的端口A,设置TRISA=0XF0,就是高4位是输入,低4位是输出,如果再执行PROTA=0xFF,对高4位的输入会有影响吗?…

查看全部问答∨

USB驱动的疑问

书上说 USB主端叫Host 从端叫Function 因此对应的驱动分别叫做USB Host Driver及USB Function Driver 如果我现在的Wince设备只做主端,是不是就不需要USB Function Driver了?…

查看全部问答∨

急招Windows微型打印机驱动开发人员

这个项目已经基本完工,还剩下2个功能,字符和图形混合打印;条码打印功能; 请速和我联系! QQ 925338025 简历请发到:hongge.tiger@gmail.com …

查看全部问答∨

请教开发32位CPU,想用ARM9,S3C2410如何?

我是做水电行业数据采集系统的.自己单位开发数据采集的控制板,原理CPU采用的8位的. 目前,申请了经费,计划开发32位CPU,想用ARM9,S3C2410. 我们的系统主要在野外通过传感器采集信号,再通过GSM或卫星等方式发送出去,所以需要多种接口. 请教: 1、用 ...…

查看全部问答∨

严肃批评ST公司的严重错误

作为ST公司的忠实粉丝,自ST公司推出STM32开始就支持其芯片使用,花费巨资购买KEIL和ULINK2,及 Embest公司的ST 开发板,优易特公司的HMI开发板,以积极推动ST芯片的使用。在一个小产品的选型中, 鉴于51系列破解严重的现实,采用了ST最新推 ...…

查看全部问答∨

求MSP430UIF型仿真器驱动程序

请教各位高手,我买的430UIF型仿真器,也就是用USB口的,但是没有驱动,所以脸上设备的时候方针是总出现“初始化设备失败”,求助哪位有此种仿真器的驱动啊?不胜感激!!…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved