单片机之中断优先级
当单片机正在处理某一事件的时候外界发生了紧急事件请求,要求单片机暂停当前的工作而去处理这个紧急的事件,处理完成后,再回到原来被中断的地方继续原来的工作,这样的过程就叫做中断。但是中断发生时或者同时几个中断发生时,究竟先执行哪个中断,就是所谓的中断优先级,中断优先级有两种,一种是抢占优先级,一种是固有优先级。
抢占优先级:抢占的概念就是优先级高的中断可以打断优先级低的中断。当进入低优先级中断中执行时,又发生了高级优先的中断,则立即进入高优先级中断,执行完之后再返回处理低优先级的中断。抢占优先级由图1的IP寄存器控制,设置了某一位为1,则这一位的优先级就比其他为的优先级高。
图1:中断优先级控制寄存器
PS:串口中断优先级控制位
PT1:定时器1中断优先级控制位
PX1:外部中断1中断优先级控制位
PT0: 定时器0中断优先级控制位
PX0:外部中断0中断优先级控制位
固有优先级:也称为非抢占优先级。各个中断都有一个默认的优先级顺序,如图2所示。
图2:中断优先顺序
这里的优先级并不具有抢占的特性,也就是说即使在低优先级中断执行过程中又发生了高优先级的中断,那么高优先级的中断也只能等到低优先级的中断执行完成后才能得到响应。既然不能抢占,那这个优先级有什么作用呢?
答案是当多个中断同时存在时,就需要根据这个优先级顺序,当然几个中断能够同时发生的概率很低,但是有一种情况却很常见,就是当关闭了总中断,即EA=0后,经过一段时间重新打开中断,在这段时间里,因为总中断关闭了,这段时间里即使有几个中断先后发生了也得不到响应,而当总中断再次打开后,它们就会同时请求响应了,这个时候就需要有先后顺序才行,而固有优先级就是这个顺序。
抢占优先级和固有优先级相互补充,才使得单片机的中断系统能够有条不紊的工作,因此只有理解了中断优先级才能正确的编写中断程序。
51单片机中断学习
一、中断的概念
CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);
CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);
待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断
二、中断源
在51单片机中有5个中断源
中断号 优先级 中断源 中断入口地址
0 1(最高) 外部中断0 0003H
1 2 定时器0 000BH
2 3 外部中断1 0013H
3 4 定时器1 0018H
4 5 串口总段 0023H
三、中断寄存器
单片机有10个寄存器主要与中断程序的书写控制有关
1.中断允许控制寄存器IE
2.定时器控制寄存器TCON
3.串口控制寄存器SCON
4.中断优先控制寄存器IP
5.定时器工作方式控制寄存器TMOD
6.定时器初值赋予寄存器(TH0/TH1,TL0/TL1)
寄存器详细说明:http://blog.sina.com.cn/s/blog_a05b986d0101545c.html
四、寄存器功能与赋值说明
注:在用到中断时,必须要开总中断EA,即EA=1。 //开总中断
1.中断允许控制寄存器IE
EX0(EX1):外部中断允许控制位
EX0=1 外部中断0开关闭合 //开外部0中断
EX0=0 外部中断0开关断开
ET0(ET1):定时中断允许控制位
ET0=1 定时器中断0开关闭合 //开内部中断0
ET0=0 定时器中断0开关断开
ES: 串口中断允许控制位
ES=1 串口中断开关闭合 //开串口中断
ES=0 串口中断开关断开
2.定时器控制寄存器 TCON //控制外部中断和定时器中断
外部中断:
IE0(IE1):外部中断请求标志位
当INT0(INT1)引脚出现有效的请求信号,此位由单片机自动置1,cpu开始响应,处理终端,而当入
中断程序后由单片机自动置0.
//外部中断,即外部中断相应的引脚接入低电平或下降沿信号时,中断开始响应。
IT0(IT1):外部中断触发方式控制位 //选择有效信号
IT0(IT1)=1:脉冲触发方式,下降沿有效。
IT0(IT1)=0:电平触发方式,低电平有效。
内部中断:
TF0(TF1):内部定时器/计数器溢出中断标志位
当定时器、计数器计数溢出的时候,此位由单片机自动置1,cup开始响应,处理中断,而当进入中
断程序后由单片机自动置0.
//内部中断实际上就是利用内部的计数器,只不过提供计数的脉冲来自单片机自身。
TRO(TR1):定时器/计数器启动位 //启动定时器
TRO(TR1)=1; 启动定时器/计数器0
TR0(TR1)=0; 关闭定时器/计数器0
3.串口控制寄存器SCON
TI:串行口发送中断标志位
当单片机串口发送完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的,
必须由用户在中断服务中用软件清0.
RI:串行口接收中断标志位
当单片机串口接收完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的,
必须由用户在中断服务软件中用软件清0.
(IP以后补上,TMOD,TL0/TH0 在定时器/计数器中讲)
五、中断结构图:
六、定时器/计数器
1.计数的定义:
计数是指对外部事件进行计数,外部事件的发生以输入脉冲的形式表示,因此计数功能的实质就是对外来
的脉冲进行计数,在单片机中对应引脚T0和T1,两个脉冲输入端。
外部输入的脉冲在负跳变时有效(即外部脉冲由1变化到0),计数器加1.
2.定时器:
定时器是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,因此定时器的实质是对内
部脉冲的计数,在单片机中,每个机器周期产生一次计数脉冲,计数器加1.
3.工作方式控制寄存器TMOD:
TMOD的低半字节(D0,D1,D2,D3)用来控制定时器/计数器0
TMOD的高半字节(D4,D5,D6,D7)用来控制定时器/计数器1
对TMOD中的内容说明:
GATE——门控制。
GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。
当INT0引脚为高电平时TR0置位,启动定时器T0;
当INT1引脚为高电平时TR1置位,启动定时器T1。
GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。
C/T——功能选择位
C/T=0时为定时功能,C/T=1时为计数功能。
M0、M1——方式选择功能
由于有2位,因此有4种工作方式
4.根据单片机晶振,所选TMOD的的工作方式,所要定的时间,来确定THO和TLO所要赋予的初值
(以12M晶振,工作方式1,16位计数器为例,设所定时间为Xus(16为计数器最大数65536,即65536us,若所
定时间大于65535,则要用if语句控制,现假设X<65535))
1.时钟周期的时间t=1/12M=1/12 us
2.机器周期的时间T=12*1/12=1 us
3.因为每经过一个机器周期计数器+1,所以,计数器+1,经过的时间为 1 us。
若所定时间为X,则要求经过Xus,中断响应,又因为16为计数器要全部置1(即达到65535)+1后,中断才会
响应,所以,初值=(65536-X)
4.将初值转化为16进制码,分别付给THO和TLO
eg:所定时间5ms
初值=(65536-5000)=60536=EC78
TH0=0XEC; TL0=0X78;
(当工作方式不同时,TH0/TL0的赋值也不同,个人觉得有了16位计数器了,其余的没什么用,不介绍了)
5.写程序时另一种THO/TLO赋值方法
TH0=(65536-20000)/256;
TL0=(65536-20000)%6;
这样设置,每经过20ms,发生一次中断,中断时间一般以秒为单位,所以经过n次中断即可。
相关问答
MCS- 51 系列 单片机的中断 系统分为几个 优先级 ?如何设定?MCS-51单片机有两个中断优先级。在51单片机中,有2个可编程定时/计数器·5个中断源,2个优先级,21个专用寄存器。另有8位CPU的4kbytes程序存储器(ROM),128byt...
80c 51 单片机的中断 自然 优先级 ?80c51单片机的自然优先级是指当两个同等优先级中断到来时,优先影应谁。根据规定,在这种情况下,谁的中断向量小,谁的自然优先级就高。比方说INT0和INT1,如果...
51单片机 有哪几个 中断 源?几个 优先级 ?mcs-51单片机有5个中断源,分别为:1、外部中断0(INT0):默认中断级别最高,中断入口地址0003H;2、定时/计数器0(T1):默认中断级别第2,中断入口地址000BH;3...
51单片机中断 源的自然优先顺序为?中断源:外部中断0、定时器0、外部中断1、定时器1、串口中断标志位:IE0、TF0、IE1、TF1、(RI或TI)中断源:外部中断0、定时器0、外部中断1、定时器1、串口中断...
8051单片机的 中断 系统哪四个部分组成?51单片机有5个中断源,两个中断优先级:INT0、T0、INT1、T1、串行口中断(包括串行接收中断RI和串行发送中断TI)。这5个中断源的中断入口地址分别...
51单片机 最多只有2级中断优先级吗? 中断优先级的 嵌套是什么意思?是的51单片机只有两级中断,高级中断可以嵌套到低优先级中断中。所谓中断嵌套是指低优先级中断服务中,高级中断被触发时,低级中断服务被暂停,进入到高级中断,...
51单片机的中断 系统有哪些寄存器?答:51单片机的中断系统有以下几种寄存器:中断允许寄存器IEEA——全局中断ES——串口中断ET2——定时器2中断EX1——外部中断1ET1——定时器1中断EX0...
51单片机的 五个 中断 源名称?51单片机的5个中断源:1、INT0——外部中断0,由P3.2端口引入,低电平或下降沿引起。默认优先级最高2、INT1——外部中断1,由P3.3端口引入,低电平或...51单片...
中断优先级 由高到低的顺序依次是?中断优先级是什么,中断优先级处理原则中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:(1)先响应优先级高的中断请求,再响应优先级低的中断请求。...
如果在 单片机 中要设置 中断 源的 优先级 为?在单片机中设置中断源的优先级,通常需要根据具体的硬件和编程环境来实现。以下是一般步骤和注意事项:了解硬件手册:首先,需要查阅所使用的单片机的硬件手册或...