8051单片机中断系统结构及中断控制原理

发布者:zhaodawei617最新更新时间:2024-01-03 来源: elecfans关键字:单片机 手机看文章 扫描二维码
随时随地手机看文章

当几个中断源同时向CPU请求中断时,按所发生的实时事件的轻重缓急排队,优先处理最紧急事件的中断请求,于是单片机规定每个中断源的优先级别。


当CPU正在处理一个中断请求,又发生另一个优先级比它高的中断请求,CPU暂时中止对前一中断处理,转而去处理优先级更高的中断请求,待处理完后,再继续执行原来的中断处理程序,这样的过程称为中断嵌套,这样的中断系统称为多级中断系统。


由于外界异步事件中断CPU正在执行的程序时随机的,CPU转向去执行中断服务程序时,除了硬件会自动把断电地址,即16位PC程序计数器的值压入堆栈之外,用户还得注意保护有关工作寄存器,累加器,标志位等信息,这个过程通常称为保护现场 。以便在完成中断服务程序后,恢复原工作寄存器,累加器,标志位等的内容,这个过程称恢复现场;最后执行中断返回指令,自动弹出断电到PC,返回主程序,继续执行被中断的程序。


下面我们看看8051中断系统结构及中断控制:

8051单片机有五个中断请求源,四个用于中断控制的寄存器IE.IP.TCON和SCON,用于控制中断的类型,中断允许,中断起停和各种中断源的优先级别。

五个中断源有两个优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。8051的中断源包括:INT0,INT1引脚输入的外部中断源;三个内部的中断源,即定时器T0的溢出中断源,定时器T1的溢出中断源和串行口的发送/接收中断源。


从INT0,INT1引脚输入的两个外部中断源和它们的触发方式控制位锁存在特殊功能寄存器TCON的低四位,其格式如下:


IE1,即TCON.3:外部中断INT1请求标志位。当CPU检测到在INT1引脚上出现的外部中断信号时,由硬件置位IE1=1,请求中断。CPU执行中断服务程序后,IE1位被硬件自动清0.

IT1,即TCON.2:外部中断INT1请求类型,触发方式控制位,由软件来置1或清0,以控制外部中断1的触发类型。

IT1=0,外部中断1被设置为电平触发方式,当引脚INT1输入低电平时,置位IE1,申请中断。CPU在每个机器周期的S5P2期间采样INT1的输入电平,当采样到低电平时,置IE1=1。采用电平触发方式时,输入到引脚INT1的外部中断源必须保持电平有效,直到该直到程序被CPU响应。同时,在该中断服务程序执行完之前,外部中断源有效电平必须被撤销,否则将产生,另一次中断。

IT1=1,外部中断1被设置为边缘触发方式,CPU在每个机器周期采样引脚INT1的电平。如果相继的两次采样中,一个周期采样到引脚INT1为高电平,接着下一个周期采样到引脚INT1为低电平,INE1由硬件自动清0.因为每个机器周期采样一次外部中断输入电平,外部中断源输入的高电平和低电平时间必须保持12个振荡周期以上,才能保证CPU检测到负跳变信号,即下降沿。

IEO,即TCON.1:外部中断请求标志位。IE0=1时,外部中断0向CPU请求中断,当CPU响应外部中断后,IE0由硬件清0。

ITO,即TCON.0:外部中断0触发方式控制位。IT0=0,外部中断0被设置为边沿触发方式。IT0=1时,外部中断0被设置为边电平发方式。其功能和IT1类似。

中断控制:除特殊功能寄存器TCON和SCON中某些位与中断有关外,还有两个特殊功能寄存器IE和IP专门用于中断控制。

中断允许IE:


8051单片机中,特殊功能寄存器IE位中断允许寄存器,控制CPU对中断源总的允许或禁止以及每个中断源是否允许中断。其格式为:

EA:中断总允许位。EA=1,CPU允许中断;EA=0,CPU禁止所有的中断请求。

ES:串行中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。

EX1:T0溢出中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。

EX0:外部中断允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。

8051系统复位后,IE中各位均被清0,即禁止所有中断。

中断优先级设定寄存器IP。8051单片机具有两个中断优先级,每个中断源可编程为高优先级中断或低优先级中断,并可实现二级中断嵌套。高优先级中断源可中断正在执行的低优先级中断服务程序。

同级或低优先级的中断源不能中断正在执行的中断程序。为此,在8051中断系统中,内部有两个优先级状态触发器,它们分别指示出CPU是否在执行高优先级或低优先级中断服务程序,从而分别屏蔽所有的中断申请和同一级的其他中断源申请。

特殊功能寄存器IP为中断优先级寄存器。


各中断源优先级的控制位,用户可用软件设定。其格式如下:

PS:串行中断优先控制位。PS=1,设定串行口为高优先级中断;PS=0,为低优先级。

PT1:T1中断优先控制位。PT1=1,设定定时器T1为高优先级中断;PT=0,为低优先级。

TX1:外部中断1中断优先级别控制位。PX1=1设定外部中断1为高优先级中断;PC1=0,为低优先级。

PT1:T1中断优先控制位。PT1=1,设定定时器T1为高优先级中断;PT1=0,为低优先级。

PT0:T0中断优先控制位。PT1=1,设定定时器T0为高优先级中断;PT0=0,为低优先级。

PX0:外部中断中断优先控制位。PX0=1,设定INT1为高优先级。PX0=0,为低优先级。

8051复位后,IP低五位全部清0,将所有中断源设置为低优级中断。

如果几个同优先级的中断源同时向CPU申请中断,哪一个申请得到服务,取决于它们在CPU内部动登记排队的序号。CPU通过内部硬件查询登记号,按自然优先级决定优先响应哪个中断请求。自然优先级按从高到低的顺序依次为:外中断0,定时器0,外中断1,定时器1,串行中断。


关键字:单片机 引用地址:8051单片机中断系统结构及中断控制原理

上一篇:使用8051单片机原理的步进电机控制
下一篇:将基于8051的微控制器连接到SCI端口

推荐阅读最新更新时间:2024-11-17 00:39

Maxim发布新款DeepCover安全微控制器,极大简化移动支付终端
MAX32560集成安全功能和支付接口,满足最新的PCI-PTS标准并缩短开发时间 中国,北京—2016年11月22日—Maxim推出MAX32560 DeepCover安全微控制器,旨在帮助mPOS终端、ATM键盘、EMV读卡器、接触/非接触式密码键盘以及其它移动支付设备制造商节省PCB空间、降低BOM成本,并更快地将产品投放市场。 目前,移动支付设备的设计者必须使用多个外部IC实现存储器扩展、非接触接口和放大、ISO7816 PHY、磁条接口以及电池切换功能,这些外部元件增加了电路板空间和认证时间。最新MAX32560 DeepCover安全ARM® Cortex®-M3微控制器将这些功能集成到单个芯片中,最多可省去6个外部芯
[单片机]
AM30LV0064D在单片机系统中的典型应用
  1 概述   AM30LV0064D是AMD公司生产的一种新型非易失性闪速存储器。或非(NOR)结构的FLASH具有高速的随机存取功能,但成本较高;新的UltraNAND结构的FLASH相对于NOR结构的FLASH,具有价格低,容量特别大的优势,支持对存储器高速地连续存取。谝芯片工作电压范围在2.7~3.6V,特别适用于需要批量存储大量代码或数据的语音、图形、图像处理场合,在便携式移动存储和移动多媒体系统中应用前景广阔。   2 工作原理与命令字设置   AM30LV0064D采用与工业级NAND结构兼容的UltraNAND结构,内部包含1024个存储块(单元容量为8K字节+256字节缓存);存储块中的数据按页存放,每页
[单片机]
51单片机普通IO口模拟IIC总线的程序实现
IIC是由Philips公司发明的一种串行数据通信协议,仅使用两根信号线:SerialClock(简称SCL)和SerialData(简称SDA)。 IIC是总线结构,1个Master,1个或多个Slave,各Slave设备以7位地址区分,地址后面再跟1位读写位,表示读(=1)或者写(=0),所以我们有时也可看到8位形式的设备地址,此时每个设备有读、写两个地址,高7位地址其实是相同的。 IIC数据格式如下: 无数据:SCL=1,SDA=1; 开始位(Start):当SCL=1时,SDA由1向0跳变; 停止位(Stop):当SCL=1时,SDA由0向1跳变; 数据位:当SCL由0向1跳变时,由发送方控制SDA,此时SDA为有效数据,不
[单片机]
AVR单片机ATMEGA16编译软件ICCAVR的使用技巧与应用示例
一、先来一段朴实的独白吧 写这篇文的时间是2018年3月21日。大学2013毕业,专业是机械,但喜欢电子。篇首声明:哪一行都有鄙视链,就连打个游戏都不例外。如果大神路过这里,请您show your mercy然后walk away就当nothing happened. 当然,大牛都是很低调的,因为他们身心都沉进编程的世界里不能自拨。好了本文就ICCAVR的使用说明作一个入门式的引导,方便新、老网友作一种可供使用的参考。 上大学并不是为了纯读书,而是自我发现、反馈、然后决定的心理成熟过程,好吧这就是我的层次。上学时为了搞懂一个东西,在网上查找所有的有用的信息资料,当然必须免费的,唉不谈。。现在如果需要一些资源直接买买买,省时省力
[单片机]
AVR<font color='red'>单片机</font>ATMEGA16编译软件ICCAVR的使用技巧与应用示例
详解基于51单片机的small rtos
陈明计,这个人有必要要认识下,因为small rtos 是他写的,他根据ucos的原理写的。这个small rtos是可以再51单片机上运行的,但是受ARM内存的限制。 作为单片机开发的时刻都得想着内存的问题,因为51芯片资源有限。 好了不废话开始学习的旅程 首先你可以在51hei下个small rtos 源代码 http://www.51hei.com/f/small_rtos1.12.1.zip 或者跟我一步一步写。 keil51的工具编译代码后会生成一个.m51的文件,这个文件要学会去看,因为他把你的一些内存分配的地址和函数的地址都会以列表显示出来。 操作系统的任务其实都是一个死循环。我们写的操作系统其实就是把$
[单片机]
详解基于51<font color='red'>单片机</font>的small rtos
MSP430F5529/G2553单片机频率设置程序
MSP430F5529/G2553单片机的频率设置c语言程序: #include "msp430F5529.h" #define P15_H (P1IN & BIT5); #define P15_L (P1OUT & (~BIT5)); int tt=0,temp,kk,i; void delay(int ns) { int kk; while(ns--) for(kk=0;kk 120;kk++); } //******A/D转换函数设置*****// void adc1() { P1SEL |=BIT6; //转换模拟信号从P1.6输入,内部集成了转换模块 ADC12CTL0 =
[单片机]
单片机小白学习之路(二十七)---EEPROM-IIC总线理解(二)
目标:EEPROM-IIC总线理解(二) 在实际的应用中,保存在单片机RAM中的数据,掉电后数据就丢失了,保存在单片机的FLASH中的数据,又不能随意改变,也就是不能用它来记录变化的数值。但是在某些场合,我们又确实需要记录下某些数据,而它们还时常需要改变或更新,掉电之后数据还不能丢失,比如我们的家用电表度数,我们的电视机里边的频道记忆,一般都是使用EEPROM来保存数据,特点就是掉电后不丢失。我们板子上使用的这个器件是24C02,是一个容量大小是2Kbit位,也就是256个字节的EEPROM。一般情况下,EEPROM拥有30万到100万次的寿命,也就是它可以反复写入30-100万次,而读取次数是无限的。 24C02是一个基于I
[单片机]
<font color='red'>单片机</font>小白学习之路(二十七)---EEPROM-IIC总线理解(二)
GD32 MCU如何使用双ADC内核提高ADC采样率?
如下图所示,GD32F303系列MCU在不同的ADC位宽情况下均具有对应的最高采样率,那这个最高采样率还可以提高吗? 答案是可以的。GD32F30X系列MCU可以支持双ADC内核,分别为ADC0和ADC1,且双ADC可以支持同步模式,同步模式可以支持常规并行模式、常规快速交叉模式和常规慢速交叉模式,其中可以使用ADC0和ADC1的交叉模式采样同一个通道,同步等效为提高ADC采样率。 下面以快速交叉模式为例来进行介绍: 以下为常规快速交叉模式工作示意图,常规触发后,ADC1立即启动采样,之后ADC0在7个ADC时钟周期后自动启动。 ADC0和ADC1采样转换的数据在快速交叉模式下会被自动放到32位的ADC0数据寄存器里
[单片机]
GD32 <font color='red'>MCU</font>如何使用双ADC内核提高ADC采样率?
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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