想总结中断由来已久,但是总感觉一章的东西,太多,无从下手。
前几天看到一句话“能把自己学会的东西说出来,才是真的学会”。今天,就要会一会这中断系统。
图片和文字内容来自:普中科技的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
唐朔飞的《计算机组成原理》
上一篇:单片机的外部中断(二)
下一篇:51单片机的定时中断(三)
推荐阅读
史海拾趣
广州西博臣科技有限公司(简称西博臣)成立于2001年,从创立之初就专注于湿度传感器的研发和生产。公司是国内最早从事高分子湿度传感器研发并进行规模化生产的厂家之一,凭借其独特的技术实力和对行业的深刻理解,逐渐在市场中崭露头角。
Avalon Photonics深知技术创新是公司发展的核心动力。因此,公司每年都将大量资金投入研发领域,不断推动技术创新。公司研发团队积极探索新技术、新材料,在光子学领域取得了多项重要突破。这些技术创新不仅提升了Avalon产品的竞争力,也为公司在市场上赢得了良好的声誉。
在成功推出高效能芯片后,艾谱科公司开始积极拓展市场。公司凭借其产品的技术优势,与多家知名电子产品制造商建立了合作关系。同时,艾谱科还积极参加国际电子展会,向全球客户展示其产品的卓越性能。随着市场知名度的提高,艾谱科的订单量逐渐增加,公司规模也不断扩大。
随着全球对环保问题的日益关注,ECLIPTEK公司积极响应环保号召,将绿色环保理念融入其产品研发和生产过程中。公司采用环保材料和清洁能源,减少生产过程中的废弃物和污染物排放。同时,ECLIPTEK还积极参与环保公益活动,推动电子行业的可持续发展。
为了进一步扩大市场份额,Fibrefab开始实施全球化战略。公司先后在亚洲、欧洲和美洲等地设立生产基地和研发中心,以满足不同地区客户的需求。同时,Fibrefab还积极与全球知名的电信运营商和设备制造商建立合作关系,共同推动光纤通讯技术的发展和应用。这一战略的实施不仅帮助Fibrefab拓展了海外市场,也提升了其品牌影响力和市场竞争力。
Electronic-Bauteile Goerlitz GmbH公司自创立之初,就以其独特的技术创新为核心竞争力。公司不断投入研发资源,开发出了一系列具有竞争力的电子产品部件。这些部件以其高性能、低功耗和可靠性,赢得了市场的广泛认可。公司通过与高校和研究机构的合作,不断引进新技术,推动产品升级换代,确保了其在行业中的领先地位。
江西三川水表股份有限公司 曾茂华 宋财华 摘要: 本文章简单地介绍一个比较完整的无线网络集抄系统。 关键字: Zigbee,TinyOS,中继,无线节电,无线远程终端,无线手持机,无线hub,上位机管理系统。 一,引言 现阶段,无线网络技 ...… 查看全部问答∨ |
本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 全球LED产业日前因上游电子元件严重缺料,产能难以接续,导致许多国际大厂交货期纷纷拖延,竟由原先的5周狂延至20周以上 !消息一出,有如在快速起步的LED产业投下震撼弹,不仅业界急跳脚,下游 ...… 查看全部问答∨ |
大家好,我是一名大三的学生,学的是嵌入式方向的,但我们现在才学嵌入式操作系统,都TMD还是理论,学了等于没学,就上学期还学了个汇编,现在一学期都快过完了,感觉什么关于嵌入式方面的都没学到,如果靠下学期再来学点东西,以后出去就别想混了 ...… 查看全部问答∨ |
|
将部分I/O口设置为输入口,如果再将其置为高电平,会有影响吗? 如16F73的端口A,设置TRISA=0XF0,就是高4位是输入,低4位是输出,如果再执行PROTA=0xFF,对高4位的输入会有影响吗?… 查看全部问答∨ |
|
这个项目已经基本完工,还剩下2个功能,字符和图形混合打印;条码打印功能; 请速和我联系! QQ 925338025 简历请发到:hongge.tiger@gmail.com … 查看全部问答∨ |
我是做水电行业数据采集系统的.自己单位开发数据采集的控制板,原理CPU采用的8位的. 目前,申请了经费,计划开发32位CPU,想用ARM9,S3C2410. 我们的系统主要在野外通过传感器采集信号,再通过GSM或卫星等方式发送出去,所以需要多种接口. 请教: 1、用 ...… 查看全部问答∨ |
作为ST公司的忠实粉丝,自ST公司推出STM32开始就支持其芯片使用,花费巨资购买KEIL和ULINK2,及 Embest公司的ST 开发板,优易特公司的HMI开发板,以积极推动ST芯片的使用。在一个小产品的选型中, 鉴于51系列破解严重的现实,采用了ST最新推 ...… 查看全部问答∨ |
请教各位高手,我买的430UIF型仿真器,也就是用USB口的,但是没有驱动,所以脸上设备的时候方针是总出现“初始化设备失败”,求助哪位有此种仿真器的驱动啊?不胜感激!!… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 下载有礼:多通道高精度信号生成必杀器--最新AWG5200信号发生器
- 早睡早起,为自己的健康打个卡
- 【把你我的经验串一串,共享丰收】EEWORLD优秀主题/回复第17期活动开始拉
- 看是德科技X8711A 物联网设备功能测试解决方案,答题赢好礼
- 有奖问答|ADI应用之旅——工业大机器健康篇
- 答题赢京东卡|PI InnoSwitch产品系列学习中心
- Quartus Prime设计软件15.1版 带你体验革命性的设计生涯
- 已结束|Maxim IO-Link通信协议设计方案详解,5大优势助你轻松联网!
- Mouser 福利活动:邀请新用户下单,各得百元奖励!
- 学《TIVA C Launchpad入门课程》 晒成绩 赢大礼!