51中断系统
MCS-51单片机的中断系统
![MCS-51单片机的中断系统](https://img.taocdn.com/s3/m/96ded87b571252d380eb6294dd88d0d233d43c19.png)
MCS-51单⽚机的中断系统单⽚机中断技术概述在任何⼀款事件驱动型的CPU⾥⾯都应该会有中断系统,因为中断就是为响应某种事件⽽存在的。
中断的灵活应⽤不仅能够实现想要的功能,⽽且合理的中断安排可以提⾼事件执⾏的效率,因此中断在单⽚机应⽤中的地位是⾮常重要的。
单⽚机中断(Interrupt)是硬件驱动事件,它使得CPU暂停当前的主程序,转⽽去执⾏⼀个中断服务⼦程序。
为了更形象地理解中断,下⾯以学⽣上⾃习时接电话为例阐述⼀下中断的概念。
单⽚机的中断系统有5个中断源、2个中断优先级,可实现两级中断服务程序嵌套。
如果单⽚机没有中断系统,单⽚机的⼤量时间可能会浪费在查询是否有服务请求发⽣的定时査询操作上。
采⽤中断技术完全消除了单⽚机在査询⽅式中的等待现象,⼤⼤地提⾼了单⽚机的⼯作效率和实时性。
单⽚机中断系统结构及中断控制中断系统结构图如图5-2所⽰。
由图5-2可见,MCS-51中断系统共有5个中断请求源:INT0——外部中断请求0,中断请求信号由INT0引脚输⼊。
定时/计数器T0计数溢出发出的中断请求。
INT1——外部中断请求1,中断请求信号由INT1引脚输⼊。
定时/计数器T1计数溢出发出的中断请求。
串⾏⼝中断请求。
中断优先级从⾼到底排列。
单⽚机如何知道有中断请求信号?是否能够响应该中断?若5个中断源请求信号同时到来,单⽚机如何响应?这些问题都可以由中断寄存器来解决。
单⽚机中断寄存器有中断标志寄存器TCON和SCON、中断使能寄存器IE和中断优先级寄存器IP,这些寄存器均为8位。
中断标志寄存器5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存,单⽚机通过这些中断标志位的状态便能知道具体是哪个中断源正在申请中断。
TCON寄存器TCON寄存器为定时/计数器的控制寄存器,字节地址为88H,可位寻址。
特殊功能寄存器TCON的格式如图5-3所⽰。
TCON各标志位功能如下。
TF1——定时/计数器T1的溢出中断请求标志位。
第5章-MCS-51单片机中断系统-PPT
![第5章-MCS-51单片机中断系统-PPT](https://img.taocdn.com/s3/m/5388a371ef06eff9aef8941ea76e58fafab045c5.png)
5、2、2 MCS-51单片机得中断源
IT1=1,外中断1为下降沿触发 采样:CPU在每一个机器周期得S5P2期间 对P3、3引脚采样,若上一个机器周期检测为 高电平,紧挨着得下一个机器周期为低电平,则 使IE1置1。 IT0:外中断0触发方式控制位。
CPU主要就是通过标志寄存器、控制 寄存器、优先级寄存器对中断源进行管
5、2、2 MCS-51单片机得中断源
(1)与中断标志相关得SFR
主要有:定时器/计数器T0、T1控制寄 存器TCON
串行口控制寄存器SCON 定时器/计数器2控制寄存器T2CON(第 6章介绍) (2)中断控制寄存器:TCON、IE (3)中断优先级寄存器:IP
DMA释放总线:当一批数据传送后, DMA控制器再向CPU发出“结束总线请 求”,CPU响应请求,收回总线使用权。
DMA方式速度高、效率高,可以与CPU 并行工作。
5、1、2 中断得相关概念
1、中断得概念
CPU在正常运行得时候, 外部或者内部发生了请求 CPU迅速去处理得事件,CPU 暂时中断当前得程序,去处理 所发生得事件,处理完事件后, 再返回到原来被中断得程序 继续运行。此过程称为中断。
图5-3 定时器得控制寄存器
TCON可位寻址。复位后TCON=00H。 TF1(TCON、7):T1溢出标志位
当T1计满溢出时,由内部硬件置位; 中断响应后自动清 0。
5、2、2 MCS-51单片机得中断源
TF0:T0溢出标志位 功能同TF1。
IT1:外中断1触发方式设置位 IT1=0,外中断1为低电平触发
5、1、1 微机得输入/输出方式
MCS-51单片机的中断系统
![MCS-51单片机的中断系统](https://img.taocdn.com/s3/m/b49a1bd8bb68a98270fefa3c.png)
其各位格式为: D7 D6 D5 D4 D3 D2 D1 D0 -- -- -- PS PT1 PX1 PT0 PX0
如果CPU接收到几个相同优先级的中断请求源时,响应哪一个 中断申请要取决于一个内部的硬件查询序列,此时应按照下表所 示的优先权结构先后响应中断请求。
中断源 外部中断0(IE0) 定时器T0中断(TF0) 外部中断1(IE1) 定时器T1中断(TF1) 串行口中断(RI、TI)
主程序的中断处理
1.2 CPU响应及处理中断机制
一般来说,根据中断源的轻重缓急排序,CPU优先处理最 紧急事件的中断请求源。也就是说,需要对各个中断源设定 相应的优先级,CPU总是最先响应级别最高的中断。中断源可 以分为两个中断优先级:高优先级和低优先级。用户可以用 关中断指令或复位指令来屏蔽所有中断请求,也可以用开中 断指令使CPU接收中断申请。
SM0 SM1 SM2 REN TB8 RB8 TI RI
1.4 中断控制及中断优先级
1.中断允许控制寄存器IE(字节地址A8H)
D7 D6 D5 D4 D3 D2 D1 D0 EA -- ET2 ES ET1 EX1 ET0 EX0
使用汇编语言程序控制中断请求信号的允许 或禁止的程序示例如下:
CLR EA ; 禁止所有中断请求
MOV SP, #60H SETB PX0 SETB IT0 SETB ET0 SETB EX0 SETB EA
【例2】若要求外部中断引脚 采用边沿触发方式,处于高优先 级,初始化程序可以采用位操作指令,也可以用字节型指令进行编 制。
位操作指令: SETB EA SETB EX1 SETB PX1 SETB IT1
送/接收后引起。
2.中断请求标志 1)TCON寄存器中的中断标志 TCON是定时/计数器T0、T1的控制寄存器,格式如下:
第3章MCS-51单片机的中断系统
![第3章MCS-51单片机的中断系统](https://img.taocdn.com/s3/m/609f972eb4daa58da0114abb.png)
3.3 MCS-51的中断系统 的中断系统
4、中断响应过程 、 关中断:屏蔽其它中断请求信号。 关中断:屏蔽其它中断请求信号。 保护断点:将断点地址压入堆栈保存,即当前 值入栈 值入栈。 保护断点:将断点地址压入堆栈保存,即当前PC值入栈。 寻找中断源:中断服务程序入口地址送 ,转入中断服务。 寻找中断源:中断服务程序入口地址送PC,转入中断服务。 保护现场:将中断服务程序使用的所有寄存器内容入栈。 保护现场:将中断服务程序使用的所有寄存器内容入栈。 中断处理:执行中断源所要求的程序段。 中断处理:执行中断源所要求的程序段。 恢复现场:恢复被使用寄存器的原有内容。 恢复现场:恢复被使用寄存器的原有内容。 开中断:允许接受其它中断请求信号。 开中断:允许接受其它中断请求信号。 中断返回:执行 指令, 中断返回:执行RETI指令,栈顶内容 指令 栈顶内容→PC,程序跳转回断点。 ,程序跳转回断点。
当前PC入栈 书中作记号 当前 入栈
主程序 执行主程序 中断请求 断点 继续执行主程序 中断返回 执行中断 处理程序 中断响应
中断与转子的区别 中断是随机的, 中断是随机的,转子事先编程决定
3.3.1 中断的定义 2、几个术语 、 主程序:原来正常运行的程序称为主程序。 主程序:原来正常运行的程序称为主程序。 断点: 主程序被断开的位置(或地址)称为“断点” 断点 主程序被断开的位置(或地址)称为“断点”。 中断源:引起中断的原因,或发出中断申请的来源。 中断源 引起中断的原因,或发出中断申请的来源。 引起中断的原因 中断请求:中断源要求服务的请求称为“中断请求” 中断请求 中断源要求服务的请求称为“中断请求” 。 中断源要求服务的请求称为 中断响应: 终止当前执行的程序, 中断响应:CPU终止当前执行的程序,去执行相应中断源 终止当前执行的程序 的中断请求。 的中断请求。 中断服务或中断处理程序: 中断服务或中断处理程序: “中断”之后所执行的相应的处理程序。 中断”之后所执行的相应的处理程序。 中断系统:能够实现中断处理功能的部件。 中断系统:能够实现中断处理功能的部件。
第五章 中断系统
![第五章 中断系统](https://img.taocdn.com/s3/m/b4217cd7ad51f01dc281f153.png)
四、中断系统的功能 一般来说,一个中断系统具有以下功能: (一)实现中断及返回 当某中断源发出中断请求后,CPU应决定是否响应这个中断请求,如当前正 在执行更重要的工作可暂时不响应中断,若响应这个中断请求,CPU在当前指令 执行完后,就要保护断点地址和现场(即下条指令地址和相关寄存器内容),以便 执行完中断服务程序后能正确返回原处执行,然后转到需要处理的中断服务程序 的人口地址,去执行中断服务程序,当中断服务程序执行完毕再恢复现场和断点 ,去继续执行主程序。 (二)实现优先级排队 当计算机带有多个中断源时,可能会出现两个或两个以上中断源同时向CPU提 出中断请求的情况。这时CPU应能够根据事先确定的中断源的优先级别来先响应 高优先级的中断 并为它服务,然后再响应较低优先级的中断请求。 (三)实现中断嵌套 当CPU正在响应某一中断源的中断请求时,又有新的中断源发出请求,如果 新的请求的优先级别高于正在执行的中断源的优先级,则CPU暂停现行的服务程 序,转去执行更高级别的中断源的服务程序,执行完毕后再回到被中断的较低中 断源的服务程序继续执行,即实现了中断嵌套。若新的中断源的优先级别低于或 是等于正执行的中断源,则CPU不响应这个请求,直到正在处理的中断服务程序 执行完毕后,才去处理新的中断请求。
三、中断的分类 按中断产生的位置,中断可分为: (1)外部中断,或称外部硬件实时中断,它是由外部送到CPU的某一特定引脚 上产生的。 (2)内部中断,或称软件指令中断,是为了处理程序运行过程中发生的一些意 外情况或调试程序方便而提供的中断。 按接受中断的方式,中断可分为: (1)可屏蔽中断,可以通过指令使CPU根据具体情况决定是否接受中断请求。 (2)非屏蔽中断,只要中断源提出请求,CPU就必须响应,主要用于一些紧急 情况的处理,如掉电等。 以上从不同的角度对中断进行了分类,对于某一种类型的计算机可能只具备 其中的某几种方式,例如MCS—51就不具备非屏蔽中断方式。
51单片机中断系统详解
![51单片机中断系统详解](https://img.taocdn.com/s3/m/940d1d04eef9aef8941ea76e58fafab069dc446c.png)
51单片机中断系统详解51 单片机中断系统详解(定时器、计数器)51 单片机中断级别中断源INT0---外部中断0/P3.2 T0---定时器/计数器0 中断/P3.4 INT1---外部中断1/P3.3 T1----定时器/计数器1 中断/P3.5 TX/RX---串行口中断T2---定时器/计数器 2 中断第5 最低4 5 默认中断级别最高第2 第3 第4 序号(C 语言用) 0 1 2 3 intrrupt 0中断允许寄存器IE位序号符号位EA/0 ------ET2/1 ES ET1 EX1 ET0 EX0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 EA---全局中允许位。
EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。
EA=0,关闭全部中断。
-------,无效位。
ET2---定时器/计数器2 中断允许位。
ET2=1, 打开T2 中断。
ET2=0,关闭T2 中断。
关,。
ES---串行口中断允许位。
关,。
ES=1,打开串行口中断。
关,。
ES=0,关闭串行口中断。
关,。
ET1---定时器/计数器1 中断允许位。
关,。
ET1=1,打开T1 中断。
ET1=0,关闭T1 中断。
EX1---外部中断1 中断允许位。
EX1=1,打开外部中断1 中断。
EX1=0,关闭外部中断1 中断。
ET0---定时器/计数器0 中断允许位。
ET0=1,打开T0 中断。
EA 总中断开关,置1 为开;EX0 为外部中断0 (INT0) 开关,。
ET0 为定时器/计数器0(T0)开EX1 为外部中断1(INT1)开ET1 为定时器/计数器1(T1)开ES 为串行口(TX/RX)中断开ET2 为定时器/计数器2(T2)开ET0=0,关闭T0 中断。
EX0---外部中断0 中断允许位。
EX0=1,打开外部中断0 中断。
EX0=0,关闭外部中断0 中断。
中断优先级寄存器IP位序号位地址------PS/0 PT1/0 PX1/0 PT0/0 PX0/0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 -------,无效位。
51单片机中断系统工作原理
![51单片机中断系统工作原理](https://img.taocdn.com/s3/m/b9a5f037e97101f69e3143323968011ca200f741.png)
51单片机中断系统工作原理
51单片机中断系统是处理器与外部设备之间通信的一种机制,它允许外设在需要时中断CPU的正常程序执行,从而执行一些高优先级的任务。
本文将从以下几个方面介绍51单片机中断系统的工作原理:
1. 中断源和中断向量表
51单片机中断系统的中断源可以是内部或外部的。
内部中断源包括定时器、串口、ADC等模块,而外部中断源则可以是外部中断引脚、外部数据存储器等。
中断向量表则是一个存储各中断服务程序入口地址的表格,它可以在CPU执行中断时快速定位相应的中断服务程序。
2. 中断控制器和优先级
中断控制器是一个用于控制中断的硬件模块,它可以根据中断源的优先级来决定哪个中断请求会被响应。
优先级高的中断请求会被优先响应,而低优先级的则会被忽略。
在中断控制器中还有一个中断允许寄存器,它用于允许或禁止特定的中断源。
3. 中断服务程序的编写
中断服务程序是一段特殊的程序,它用于响应中断请求并执行相应的操作。
在编写中断服务程序时,需要注意以下几点:首先,中断服务程序必须尽快完成,以便让CPU恢复正常的程序执行;其次,中断服务程序需要保存现场,即保存一些特定的寄存器值,以便后续程序恢复时可以正确地执行;最后,中断服务程序需要执行IRET指令,
以便将中断返回地址出栈并返回到原来的程序执行点。
通过深入了解51单片机中断系统的工作原理,我们可以更好地理解中断系统的原理和应用,并在实际应用中更好地使用它。
第5章MCS-51的中断系统
![第5章MCS-51的中断系统](https://img.taocdn.com/s3/m/57826355647d27284b735181.png)
例:写出INT1为低电平触发的中断系统初始化程序
SETB EA; SETB EX1 SETB PX1 CLR IT1
二、 中断服务程序
1、编写中断程序应注意以下几点: ① 为了要跳到用户设计的中断服务程序,在相应入口 地址安排一条跳转指令; ② 在中断服务程序的末尾,安排一条返回指令RETI; ③ 由于在响应中断时,CPU只自动保护断点,所以 CPU的其他现场的保护和恢复也必须由用户在中断服 务程序中安排。
1、T0/T1中断撤除:自动清除TF0 TF1
2、TX/RX中断撤除:不能自动撤除,必须软件清“0” CLR RI CLR TI ANL SCON ,#0FCH
3、外部中断请求的撤除
对于负边沿触发的外部中断,CPU在响应中断后是 用硬件自动清除中断请求标志IE0或IE1。
电平触发时,虽然自动清除中断请求标志IE0或IE1。但 不及时撤除低电平的话会重复响应中断,必须采取措施。
中断允许寄存器IE的单元地址是A8H,各控制位也可 位寻址,故既可以用字节传送指令也可以用位操作指 令来对各个中断请求加以控制。 例:开放T/C1的溢出中断
MOV IE,#88H;
SETB EA SETB ET1
二、 对中断优先级的控制
MCS-51具有两个中断优先级,可由软件设置每个中断 源为高优先级中断或低优先级中断,可实现二级中断 嵌套。
可在中断服务程序开 头安排如下程序: INSVR:ANL P1 ,#0FEHORL Fra bibliotek1,#01H …
RETI END
§4 中断系统的初始化及应用
一、中断系统的初始化 中断初始化是指用户对TCON、SCON、IE等特殊功能 寄存器中的各控制位进行赋值。
中断系统的初始化步骤: 1、 CPU开中断或关中断 2、 某中断源中断请求的允许或禁止(屏蔽) 3、 设定所用中断的中断优先级 4、若为外部中断,则应规定低电平还是负边沿的中断 触发方式
51单片机中断系统概念及结构
![51单片机中断系统概念及结构](https://img.taocdn.com/s3/m/94e07a1d854769eae009581b6bd97f192279bf14.png)
51单⽚机中断系统概念及结构————————————————————————————————————————————中断的过程:对于单⽚机来讲,中断是指CPU在处理某⼀时间A时,发⽣了另⼀事件B请求CPU⽴刻去处理(中断发⽣);CPU暂时停⽌当前的⼯作(中断响应),转⽽去处理事件B(中断服务),待CPU处理事件B完成后,再回到原来事件A被中断的地⽅继续处理事件A(中断返回)。
①中断源// 5个中断源都有⼀个中断⼊⼝地址,当某个中断源产⽣中断时,CPU响应中断便到相应的中断⼊⼝地址执⾏中断服务程序②中断的嵌套与优先级处理③中断的响应过程- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -中断系统结构外部中断请求源:INT0、INT1外部中断0(INT0)由外部引脚P3.2引⼊,外部中断1(INT1)由外部引脚P3.3引⼊内部中断请求源:T0、T1、串⼝中断- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -程序定义⽅式定义中断函数的⼀般形式void 函数名() interrupt 中断号 using 寄存器⼯作组p.s.如果中断函数中调⽤了其他函数,则被调⽤函数所使⽤的寄存器组必须与中断函数相同。
中断函数不能参数传递,没有返回值,不能直接被调⽤。
中断序号- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -中断优先级- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -中断系统寄存器TCON:低4位给外部中断请求源使⽤,⾼4位给内部中断请求源定时器T0 T1使⽤外部请求源IT0:INT0触发⽅式控制位,可由软件进⾏置位和复位。
51单片机中断系统含动态演示.
![51单片机中断系统含动态演示.](https://img.taocdn.com/s3/m/407386255acfa1c7aa00cc9d.png)
IP
PS PT1 PX1 PT0 PX0
位地址 BFH BEH BDH BCH BBH BAH B9H B8H
B8H
1:高优先级 0:低优先级
系统复位后,IP各位为0,所有中断源设置为低优先级,(中断顺序按 默认优先顺序响应)通过更新IP的值,就可以容易地改变中断源的优先级。
高优先级 低优先级
INT0 T0 INT1 T1 TX/RX
低优先级中断服务
高
优
先
断点2
级 中
断
服
务
IT0=0 INT0
IT0=1
T0
IT1=0 INT1
IT1=1 T1
TXD RXD
中断标 志位
第六章 51单片机内部功能单元及应用
51单片机中断系统结构示意
TCON
IE
IP
IE0
PX0
EX0
PT0
TF0 ET0
PX1
IE1 EX1
自 然 优 先 级
高 级 中 断 请
IE interrupt enable 中断使能寄存器 A8H
IP interrupt priority 中断优先级寄存器 B8H
第六章 51单片机内部功能单元及应用
定时器控制寄存器TCON位定义
位
D7 D6 D5 D4 D3 D2 D1 D0 字节地址
TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
第六章 51单片机内部功能单元及应用
中断过程示意
中断请求
中断源
中断响应
中断服务
中断返回
主程序
中断服务
51单片机的中断系统解析
![51单片机的中断系统解析](https://img.taocdn.com/s3/m/b2ddb21bbf1e650e52ea551810a6f524cdbfcb6a.png)
51单片机的中断系统解析在单片机的世界里,中断系统就像是一位高效的调度员,能够让单片机在处理主要任务的同时,及时响应并处理那些紧急或重要的事件。
51 单片机的中断系统就是这样一个强大而实用的功能模块,它为单片机的应用开发提供了极大的灵活性和高效性。
要理解51 单片机的中断系统,首先得知道什么是中断。
简单来说,中断就是单片机在正常执行主程序的过程中,由于内部或外部的事件触发,暂停当前正在执行的程序,转而去执行相应的中断服务程序,处理完中断事件后再返回原来被中断的地方继续执行主程序。
51 单片机的中断源共有 5 个,分别是外部中断 0(INT0)、外部中断 1(INT1)、定时器/计数器 0 溢出中断(TF0)、定时器/计数器 1溢出中断(TF1)和串行口中断(RI 或 TI)。
外部中断 0 和 1 是由单片机外部引脚的电平变化引起的。
当外部中断引脚(P32 对应 INT0,P33 对应 INT1)上的电平从高到低或从低到高发生变化时,就会触发相应的中断。
这在需要实时响应外部事件的场合非常有用,比如按键检测、外部信号的捕捉等。
定时器/计数器 0 和 1 溢出中断则是基于定时器/计数器的计数满溢出而产生的。
通过设置定时器/计数器的工作方式和初值,可以实现精确的定时或计数功能。
当计数器达到设定的值时,就会产生溢出中断,从而可以执行相应的定时处理任务,比如定时采样、定时控制等。
串行口中断是在串行通信过程中产生的。
当串行口接收完一帧数据或者发送完一帧数据时,就会触发相应的中断,以便及时处理接收到的数据或者准备发送下一组数据。
51 单片机的中断系统有两级控制,分别是总中断允许控制位 EA 和各中断源的允许控制位。
总中断允许控制位 EA 就像是一个总开关,只有当 EA 置 1 时,整个中断系统才有可能响应中断。
而各中断源的允许控制位则分别控制着相应中断源的开关,只有当对应的允许控制位也置 1 时,该中断源才能被响应。
51单片机中断系统
![51单片机中断系统](https://img.taocdn.com/s3/m/9e23e1fb1a37f111f1855b97.png)
TCON D7 D6 D5 D4 D3 D2 D1 D0 (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
• IT0(IT1):触发方式控制位。0:电平触发方式;1:边沿 触发方式。
设置堆栈指针 • 编写中断服务程序
2020/2/28
1
13
第5章 51单片机中断系统
5.3.2 51单片机中断系统的应用
• 【例5-1】利用外部中断统计外部事件的次 数
P3.2 P3.0 INT0
8051
外部事件单拍负脉冲
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
ET2 ES ET1 EX1 ET0 EX0
置“1”,允许;清“0”,禁止
2020/2/28
1
6
第5章 51单片机中断系统
• 5.2.4 两级优先级控制 • 中断优先级寄存器IP
IP D7 D6 D5 D4 D3 D2 D1 D0
(B8H)
PT2 PS PT1 PX1 PT0 PX0
置“1”,高优先级;清“0”,低优先级。
1
10
第5章 51单片机中断系统
• 2. 中断响应过程 • (1) 根据中断请求源的优先级高低,对相应
的优先级状态触发器置“1”。 • (2) 保护断点,即把程序计数器PC的内容压
入堆栈保存。
• (3) 清除内部硬件可清除的中断请求标志位 (IE0、IE1、TF0、TF1)。
• (4) 把被响应的中断服务程序入口地址送入 PC中,从而转入相应的中断服务程序执行。
MCS51单片机中断系统
![MCS51单片机中断系统](https://img.taocdn.com/s3/m/cf9e061452d380eb62946dff.png)
中断程序入口地址
五个中断程序的入口地址为: 五个中断程序的入口地址为: 外中断0 INT0) 外中断0(INT0) :0003H 定时器0 T0) 定时器0(T0) :000BH 外中断1 INT1) 外中断1(INT1) :0013H 定时器1 T1) 定时器1(T1) :001BH 串行口(RI/TI) 串行口(RI/TI) :0023H
可归纳为下面两条基本规则: 可归纳为下面两条基本规则: (1)低优先级可被高优先级中断,反之则不能。 低优先级可被高优先级中断,反之则不能。 (2)同级中断不会被它的同级中断源所中断。 )同级中断不会被它的同级中断源所中断。
CPU正在执行高优先级的中断 正在执行高优先级的中断, 若 CPU 正在执行高优先级的中断 , 则不能被任何中断 源所中断。 源所中断。 中断优先级寄存器IP 其字节地址为B IP, 中断优先级寄存器IP,其字节地址为B8H。
寄存器名称 D7 定时器控制 TCON(88H TF1 寄存器 ) 位地址 8FH 串行口控制 SCON(98H) 寄存器 位地址 9FH 中断允许 IE(A8H) EA 寄存器 位地址 AFH 中断优先级 IP(B8H) 寄存器 位地址 D6 D5 TF0 8DH 9DH D4 D3 IE1 8BH D2 IT1 8AH D1 IE0 89H TI 99H ET0 A9H PT0 B9H D0 IT0 88H RI 98H EX0 A8H PX0 B8H
MCS-51复位后,IE清 MCS-51复位后,IE清0,所有中断请求被禁止。 复位后 所有中断请求被禁止。 若使某一个中断源被允许中断,除了IE IE相应的位的被 若使某一个中断源被允许中断,除了IE相应的位的被 还必须使EA =1。 EA位 置“1” ,还必须使EA位=1。 改变IE的内容,可由位操作指令来实现, IE的内容 改变IE的内容,可由位操作指令来实现,即: bit; SETB bit; bit。 CLR bit。 若允许片内2个定时器/计数器中断, 例5-1 若允许片内2个定时器/计数器中断,禁止其它 中断源的中断请求。编写设置IE IE的相应程序段 中断源的中断请求。编写设置IE的相应程序段 用位操作指令来编写如下程序段: (1)用位操作指令来编写如下程序段: CLR ES ;禁止串行口中断 EX1 禁止外部中断1 CLR EX1 ;禁止外部中断1中断 EX0 禁止外部中断0 CLR EX0 ;禁止外部中断0中断
51单片机中断系统
![51单片机中断系统](https://img.taocdn.com/s3/m/0069aa6e66ec102de2bd960590c69ec3d5bbdbc0.png)
51单片机中断系统在单片机的世界里,中断系统就像是一位高效的调度员,能够让单片机在处理复杂任务时有条不紊,实现高效、实时的响应。
今天,咱们就来好好聊聊 51 单片机中断系统这个重要的概念。
咱们先来理解一下啥是中断。
想象一下,单片机正在专心致志地执行一个任务,比如说计算一组数据的平均值。
这时候,突然有个更紧急、更重要的事情发生了,比如外部设备传来了一个急需处理的数据。
这时候,单片机就得暂时放下手头正在做的事情,先去处理这个紧急任务,处理完之后再回来继续之前的工作。
这个过程,就是中断。
51 单片机的中断系统呢,有 5 个中断源。
这 5 个中断源就像是 5 个不同的紧急信号通道,分别是外部中断 0、外部中断 1、定时器/计数器0 溢出中断、定时器/计数器 1 溢出中断和串行口中断。
外部中断 0 和外部中断 1 通常是由外部的信号触发的。
比如说,你可以通过连接一个按钮到单片机的引脚,当你按下按钮时,就会产生一个外部中断信号,让单片机暂停当前的工作,去执行与这个按钮相关的处理程序。
定时器/计数器 0 溢出中断和定时器/计数器 1 溢出中断则是跟单片机内部的定时器/计数器有关。
你可以设定定时器/计数器的值,当它计数到满或者定时时间到了,就会产生中断。
这在很多需要定时操作的场景中非常有用,比如定时发送数据、定时控制电机转动等。
串行口中断则是在单片机进行串行通信时发挥作用。
当串行口接收到数据或者发送完数据时,就会产生中断,通知单片机进行相应的处理。
那单片机是怎么知道有中断发生的呢?这就得提到中断标志位了。
每个中断源都有一个对应的中断标志位,当中断发生时,这个标志位就会被置位。
单片机会定期检查这些标志位,一旦发现有标志位被置位了,就知道有相应的中断发生了。
但是,单片机也不能一有中断就马上跑去处理呀,万一首先正在执行的任务很重要不能中断呢?所以,51 单片机还有中断允许控制寄存器和中断优先级控制寄存器。
中断允许控制寄存器就像是一个总开关,你可以通过设置它来决定是否允许某个中断源产生中断。
第六章 51系列单片机中断系统
![第六章 51系列单片机中断系统](https://img.taocdn.com/s3/m/de658018a300a6c30c229f17.png)
51系列单片机的中断系统
本章主要介绍51系列单片机中断系统问题, 本章将介绍以下具体内容:
中断系统----中断源、中断方式 、中断控制寄 存器、中断响应、中断请求的撤除。
6.1
中断系统的概念
6.1.1 中断系统
中断应用在: 处理实时控制、故障自动诊断、计算机与 外围设备之间进行数据传送、进行人机对话等场合。 中断:是计算机的一种资源共享技术。中断技术就是解决这 种多项任务共享一个CPU资源的最好办法。
一般加装所示电路,并通过响应软件来撤销电平请求信号。
Q输出端
SD为置1端, 高电平有效 D端是逻辑输入端, 固定为低电平 CP为时钟输入端, 接外中断信号
当外中断请求发生时,将D端的低电平送到Q端,形成中断请求信 号。中断响应后,由软件对SD进行操作,将Q端恢复为高电平。 在中断服务程序中增加如下指令: (1) SETB P1.0 ; P1.0输出高电平,始终将Q端置1,永久封锁外中
中断请求标志
触发方 0 低电平 式选择 1 下降沿
定时控制寄存器TCON(字节地址88H)
外中断0 (1)请求标志 当CPU采样到INT0 (1)出现有效中断请求时,该 位由硬件自行设置为1,待中断响应后,该位自动清0。 该位一般为单片机硬件查询用,也可以软件查询。
8FH TF1
8EH TR1
8DH TF0
EA
ES
ET1
EX1
ET0 EX0
EA —— 中断允许总控制 位 (CPU开中断控制位) EA = 0 中断全部关闭 EA = 1 中断开启,各中 断由各自的控制位控制。
ET0(ET1) —— 定时器0(或 定时器1)中断允许控制位 ET0(ET1) = 0 定时器0 (或定时器1)中断禁止 ET0(ET1) = 1 定时器0 (或定时器1)中断允许
51单片机中断系统
![51单片机中断系统](https://img.taocdn.com/s3/m/aa432959b9f3f90f76c61bca.png)
《测量与机电控制》核心课程
§5.5 中断系统
1、T0方式0 — 13位方式
振荡器 1/12
T0 TR0 GATE
INT0
+
计数脉冲输 入
定时 器
C/T=0
TL0 TH0 TF0
C/T=1 控制端 低5位 8
位
&
13位计数器
计数 器
《测量与机电控制》核心课程
在TMOD中,各有一个控制位(C/T),分别用于 控制定时/计数器T0和T1是工作在定时器方式还是计数器 方式。
《测量与机电控制》核心课程
§5. 0
TH TL
TH TL0
1
微
溢出
1
0
溢出
处
启动 / 停
理器μP
止 内部总线
工作方式 工作方式
TCON
TMOD
微处理器与T/C的关系
计数输入端P3.4/P3.5作为边沿触发的外部中断的输入, 这时C/T工作于计数方式,计数的初始值为FFH。 (2)利用逻辑电路实现外部中断:
5V
INT0
A
ORG
0003H
B
AJMP INT0
OC门
P1.0 P1.1 P1.2
C INT0:PUSH PSW PUSH A JB P1.2, EI1 JB P1.1, EI2 JB P1.0, EI3 《。测。量与。机电。控制》核心课程
单片机的中断为固定入口式中断,即一响应中断就转入固定入
口地址执行中断服务程序。这些单元中往往是一些跳转指令。
中断优先级(2个)
每个中断源都可由程序指定为高优先级或底优先《级测。量与机电控制》核心课程
51单片机中断系统工作原理
![51单片机中断系统工作原理](https://img.taocdn.com/s3/m/aab9e56abf23482fb4daa58da0116c175f0e1ec0.png)
51单片机中断系统工作原理51单片机是一种常见的嵌入式微控制器,它的中断系统是其重要的工作原理之一,能够实现对外部事件的响应。
下面我们就来详细了解一下51单片机中断系统的工作原理。
一、中断系统的基本概念中断是指在程序执行过程中,由外部设备或用户触发处理器的一种特殊机制。
中断可以分为硬件中断和软件中断,硬件中断是硬件设备通过中断控制器向处理器请求服务的机制,而软件中断则是通过使用特殊指令触发中断的机制。
在51单片机中,可以通过触发INT0和INT1外部中断来向单片机请求服务。
二、中断系统的组成51单片机的中断系统主要由以下几个组成部分组成:1.中断向量表中断向量表是指存放中断服务程序入口地址的一组地址表。
当中断事件触发时,处理器会自动跳转到相应的中断向量表中寻找对应的中断服务程序入口地址,然后执行相应的中断服务程序。
511单片机中断向量表的地址为0x0000H~0x0031H,共有13个向量表项。
2.中断屏蔽寄存器中断屏蔽寄存器是指用于屏蔽和允许中断的寄存器。
当某个中断事件触发时,处理器会先检查该中断的中断屏蔽寄存器是否为0,如果为0,则允许该中断服务程序执行。
如果中断屏蔽寄存器不为0,则该中断服务程序不会被执行。
在51单片机中,中断屏蔽寄存器为IE寄存器,共有8位,每一位代表一个中断源的屏蔽情况。
3.中断服务程序中断服务程序是处理中断事件的程序,它通常只有几十个指令,需要尽快完成操作并返回。
在51单片机中,中断服务程序通过中断向量表来调用。
三、中断的使用方法1.触发中断在51单片机中,可以通过对INT0和INT1引脚进行电平变化或跳变触发INT0中断和INT1中断。
例如,当INT0和P3.2引脚连接时,当P3.2引脚变为低电平时,就会触发INT0中断。
2.编写中断服务程序编写中断服务程序需要注意以下几点:a.程序需要保证在中断服务程序中只使用寄存器组中的部分寄存器,在返回前需要恢复这些寄存器的值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、中断响应
响应中断后,由硬件自动生成长调用指令 “LCALL”, 其格式为LCALL addr16,而addr16就 是各中断源的中断矢量地址
中断源 中断矢量地址
0003H 外部中断0(INT0) 定时器/计数器0(T0) 000BH 0013H 外部中断1(INT1) 定时器/计数器1(T1) 001BH
中断优先级说明
• 中断优先级控制,除了中断优先级控制寄存器之外,还有二 个不可寻址的优先级状态触发器,其中一个用于指示某一高 优先级中断正在进行服务,而屏蔽其它高优先级中断;另一 个用于指示某一低优先级中断正在进行服务,从而屏蔽其它 低优先级中断,但不能屏蔽高优先级中断。 • 在中断执行过程中,高中断优先级可以中断低中断优先级 的中断过程。但是若在中断服务程序中,关掉所有中断 (CLR EA)或关掉部分中断时除外。 • 当CPU同时接收到二个不同优先级的中断请求时,先响应高 优先级的中断,如果CPU同时接收到的是几个同一优先级的 中断请求时,则由内部的硬件查询序列确定它们的优先服务 次序,即在同一优先级内有一个由内部查询序列确定的笫二 个优先级结构。其排列如下:
» Ø · Î µ Ö
SCON(98H)
» Ø · Î µ Ö
ቤተ መጻሕፍቲ ባይዱ
IE(A8H)
» Ø · Î µ Ö
9FH EA AFH
9EH
9DH
9CH ES ACH PS BCH
9BH ET1 ABH PT1 BBH
9AH EX1 AAH PX1 BAH
IP(B8H)
» Ø · Î µ Ö
二、TCON寄存器(Timer Control)
2. 对于串行接收/发送中断请求和80C52中的定时 器/计数器T2的溢出和捕获中断请求,在CPU响应 中断后,必须在中断服务程序中应用软件清除RI、 TI、TF2和 EXF2这些中断标志,才能撤除中断。 (硬件置位,软件清除) 。 3.采用外加 硬件结合软件清除中断请求。 对于采用电平触发方式的外部中断请求,中断标 志的撤消是自动的,但中断请求信号的低电平可能 继续存在,在以后机器周期采样时又会把已清“0” 的IE0、IE1标志重新置“1”,再次申请中断。为保 证在CPU响应中断后、执行返回指令前,撤除中断 请求,必须考虑另外的措施,保证在中断响应后把 中断请求信号从低电平强制改变为高电平。可在系 统中加入电路。 (硬件置位,硬、软件结合清除)
不同点 ⑴ 中断请求信号可以由外部设备发出,是 随机的,比如故障产生的中断请求,比如 按键中断等;子程序调用却是由软件编排 好的。 ⑵ 中断响应后由固定的矢量地址转入中断 服务程序,而子程序地址由软件设定。 ⑶ 中断响应是受控的,其响应时间会受一 些因素影响;子程序响应时间是固定的。
中断执行与子程序调用的比较
相似点: ⑴ 都是中断当前正在执行的程序,转去执行子程 序或中断服务程序。 ⑵ 都是由硬件自动地把断点地址压入堆栈,然后 通过软件完成现场保护。 ⑶ 执行完子程序或中断服务程序后,都要通过软 件完成现场恢复,并通过执行返回指令,重新返回到 断点处,继续往下执行程序。 ⑷ 二者都可以实现嵌套,如中断嵌套和子程序嵌 套。
5-1-2 中断处理过程
一.中断响应条件 1.有中断请求信号 2. 系统处于开中断状态 二.中断响应过程 1.关中断:屏蔽其它中断请求信号。 2.保护断点:将断点地址压入堆栈保存,即当前PC值入栈。 3.寻找中断源:中断服务程序入口PC,转入中断服务。 4.保护现场:将中断服务程序使用的所有寄存器内容入栈。 5.中断处理:执行中断源所要求的程序段。
过程:中断采样 一、中断采样 中断查询 中断响应
中断采样是针对外部中断请求信号进行的,而内部中断请 求都发生在芯片内部,可以直接置位TCON或SCON中的 中断请求标志。在每个机器周期的S5P2(笫五状态的第二 节拍)期间,各中断标志采样相应的中断源,并置入相应 标志。
二、中断查询
若查询到某中断标志为1,则按优先级的高低进行 处理,即响应中断。 80C51的中断请求都汇集在TCON和SCON二个特殊 功能寄存器中。而CPU则在下一机器周期的S6期间按优 先级的顺序查询各中断标志。先查询高级中断,再查询 低级中断。同级中断按内部中断优先级序列查询。如果 查询到有中断标志位为“1” ,则表明有中断请求发生, 接着从相邻的下一个机器周期的S1状态开始进行中断响 应。 由于中断请求是随机发生的,CPU无法预先得知, 因此中断查询要在指令执行的每个机器周期中不停地重 复执行。
• IE寄存器中各位设置:为0时,禁止中断;为 1时,允许中断。 • 系统复位后IE寄存器中各位均为0,即此时禁止所有中断。 • 与中断有关的控制位共6位,即: • ⒈ EX0(IE.0)——外部中断0中断允许位。 • ⒉ ET0(IE.1)——定时器/计数器T0中断允许位。 • ⒊ EX1(IE.2)——外部中断1中断允许位。 • ⒋ ET1(IE.3)一—定时器/计数器T1中断允许位。 • ⒌ ES(IE.4)——串行口中断允许位。 • ⒍ EA(IE.7)——CPU中断允许位。当EA=1,允许所有 中断开放,总允许后,各中断的允许或禁止由各中断源的中断允 许控制位进行设置;当EA=0时,屏蔽所有中断。
五、中断优先级寄存器IP(Interrupt Priority)
在80C51中有高、低两个中断优先级(Priority level) ,通过中断优先级寄存器IP来设定。 IP寄存器中各位设置: 为0时,为低中断优先级;为1时,设为高中断优先 级。 系统复位后IP寄存器中各位均为0,即此时全部设定为 低中断优先级。
串行口(RI、TI) 定时器/计数器2
0023H 002BH
中断响应过程描述
• 先将程序计数器PC的内容压入堆栈进行保护,先 低位地址,后高位地址,同时堆栈指针SP加2。 • 将对应中断源的中断矢量地址装入程序计数器PC, 去执行中断服务程序。由于各中断矢量区仅8个字节, 通常是在中断矢量区中安排一条无条件转移指令,使 程序执行转向在其它地址中存放的中断服务程序。 • 中断服务程序由中断矢量地址开始执行,直至遇到 RETI指令为止。 • 执行中断返回指令RETI,一是撤销中断申请,弹 出断点地址进入PC,先弹出高位地址,后弹出低位 地址,同时堆栈指针SP减2,恢复原程序的断点地址 执行;二是恢复中断触发器原先状态。
5-1-1 中断概念
某人看书 电话铃响 暂停看书 执行主程序 中断信号INT=0 日常事务 中断请求 保护断点
暂停执行主程序 中断响应
书中作记号 当前PC入栈
电话谈话
继续看书
执行I/O程序
返回主程序
中断服务
中断返回
一.两种中断
1.可屏蔽中断(maskable) 可程控“开中断/关中断”。软件 设置允许/禁止CPU响应中断。 2.非屏蔽中断(Nonmaskable) 不可程控“关中断”。有中断请 求信号,CPU必须响应。 日常事务 二.中断优先权 1.当同时有多个中断请求 信号,先响应优先级别高的 中断请求。 2.高优先级中断请求信号 可中断低优先级中断服务。
程序
INT NMI 微型机
中断服务 中断服务 程序1 程序2
三.中断源(Interrupt sources) 能发出中断请求信号的各种事件。如I/O设备、定 时时钟、系统故障、软件设定等。
四、中断的主要功能 ⒈ 实现CPU与外部设备的速度配合 ⒉ 实现实时控制 ⒊ 实现故障的及时发现及处理 ⒋ 实现人机联系
中断源
• • • • • • ⒈ 外部中断0 ⒉ 定时器T0中断 ⒊ 外部中断1 ⒋ 定时器T1中断 ⒌ 串行口中断 ⒍ 定时器T2中断
中断优先级
最高
最低
5-4 中断请求的撤除
CPU响应中断请求,转向中断服务程序执行, 在其执行中断返回指令(RETI)之前,中断 请求信号必须撤除,否则将会再一次引起中断 而出错。 中断请求撤除的方式有三种,即: 1. 由单片微机内部硬件自动复位。 对于定时器/计数器T0、T1 的溢出中断和采 用跳变触发方式的外部中断请求,在CPU响应 中断后,由内部硬件自动清除。(硬件置位, 硬件清除)
第5章
8051中断系统 (Interrupt system)
5-1 中断技术概述 5-2 MCS-51中断系统概述 5-3 中断系统控制 5-4 中断请求的撤除 5-5 中断响应过程 5-6 中断系统应用举例
5-1
中断技术概述
日 常 事 务 程 序 中 断 服 务 程 序
中断系统是计算机的 重要组成部分之一。
三、SCON寄存器(Serial Control)
低二位锁存接收中断源RI和发送中断源TI。 TI(SCON.1):串行口发送中断源。 发送完一帧,由硬件置位。响应中断后,必须用软 件清 0。 RI(SCON.0):串行口接收中断源。 接收完一帧,由硬件置位。响应中断后,必须用软 件清0。
四、中断允许控制(IE:Interruption Enable)
6.恢复现场:恢复被使用寄存器的原有内容。
7.开中断:允许接受其它中断请求信号。 8.中断返回:执行RETI指令,栈顶内容PC,程序跳转回断点 处。
5-2 MCS-51中断系统概述
IT0=0
IT0=1
IT1=0
IT1=1
一.中断源 • 8051中有五个中断源;8052中增加了一个中断 源——定时器/计数器T2,即有六个中断源。 每一个中断源都能被程控为高优先级或低优先级。 8051五个中断源中包括二个外部中断源和三个内 部中断源。 • 二个外部中断源INT0(P3.2)和INT1(P3.3), 外部设备的中断请求信号、掉电等故障信号都可 以从INT0或INT1引脚输入。 • 三个内部中断源为定时器/计数器T0和T1的定 时/计数谥出中断源和串行口发送或接收中断源。
5-3
中断系统控制
D7 TF1 8FH 8EH D6 D5 TF0 8DH 8CH D4 D3 IE1 8BH D2 IT1 8AH D1 IE0 89H TI 99H ET0 A9H PT0 B9H D0 IT0 88H RI 98H EX0 A8H PX0 B8H