|
中断结构
1. 中断允许寄存器IE和XICON
STC89C52系列单片机CPU对中断源的开放或屏蔽,每一个中断源是否被允许中断,是由
内部的中断允许寄存器IE(地址为A8H)和XICON(地址为C0H)控制的。寄存器IE的格式如
下:
- EA : CPU的总中断允许控制位,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请。
- EA的作用是使中断允许形成两级控制。即各中断源首先受EA控制;其次还受各中断源自
- 己的中断允许控制位控制。
- ET2: 定时/计数器T2的溢出中断允许位。ET2=1,允许T2中断;ET2=0,禁止T2中断。
- ES : 串行口1中断允许位。ES=1,允许串行口1中断;ES=0,禁止串行口1中断。
- ET1 : 定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。
- EX1 : 外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
- ET0 : T0的溢出中断允许位。ET0=1,允许T0中断;ET0=0禁止T0中断。
- EX0 : 外部中断0中断允许位。EX0=1,允许中断;EX0=0禁止中断。
寄存器XICON的格式如下:
XICON : 辅助中断控制寄存器 (可位寻址)
- PX3: 置位表明外部中断3的优先级为高,优先级最终由[PX3H,PX3]=[0,0];[0,1];[1,0];[1,1]来决定。
- EX3 : 如被设置成1,允许外部中断3中断;如被清成0,禁止外部中断3中断。
- IE3 : 外部中断3中断请求标志位,中断条件成立后,IE3=1,可由硬件自动清零。
- IT3 : 外部中断3中断源类型选择位。IT3=0,INT3/P4.2引脚上的低电平可触发外部中断3。
- IT3=1,外部中断3为下降沿触发方式。
- PX2: 置位表明外部中断2的优先级为高,优先级最终由[PX2H,PX2]=[0,0];[0,1];[1,0];
[1,1]来决定。 - EX2 : 如被设置成1,允许外部中断2中断;如被清成0,禁止外部中断2中断。
- IE2 : 外部中断2中断请求标志位,中断条件成立后,IE2=1,可由硬件自动清零。
- IT2 : 外部中断2中断源类型选择位。IT2=0,INT2/P4.3引脚上的低电平可触发外部中断2。
- IT2=1,外部中断2为下降沿触发方式。
- STC89C52系列单片机复位以后,IE和XICON被清0,由用户程序置“1”或清“0”IE和XICON相应的位,实现允许或禁止各中断源的中断申请,若使某一个中断源允许中断必须同时
- 使CPU开放中断。更新IE和XICON的内容可由位操作指令来实现(SETB BIT;CLR BIT),
- 也可用字节操作指令实现(即MOV IE,#DATA,ANL IE,#DATA;ORL IE,#DATA;MOV
- IE,A等)。
中断优先级
STC89C52系列单片机的所有的中断都具有4个中断优先级,对于这些中断请求源可编程为
高优先级中断或低优先级中断,可实现两级中断服务程序嵌套。 �
能被高优先级中断所中断,但不能被另一个低优先级中断所中断,一直执行到结束,遇到返回
指令RETI,返回主程序后再执行一条指令才能响应新的中断申请。以上所述可归纳为下面两
条基本规则:
⒈ 低优先级中断可被高优先级中断所中断,反之不能。
⒉ 任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断所中断
当同时收到几个同一优先级的中断要求时,哪一个要求得到服务,取决于内部的查询次
序。这相当于在每个优先级内,还同时存在另一个辅助优先级结构,STC89C52系列单片机各
中断优先查询次序如下:
中断源 查询次序
0. INT0 (highest)
1. Timer 0
2. INT1
3. Timer 1
4. UART
5. Timer 1
6. INT1
7. INT1 (lowest)
如果使用C语言编程,中断查询次序号就是中断号,例如:
void Int0_Routine(void) interrupt 0;
void Timer0_Rountine(void) interrupt 1;
void Int1_Routine(void) interrupt 2;
void Timer1_Rountine(void) interrupt 3;
void UART_Routine(void) interrupt 4;
void Timer2_Routine(void) interrupt 5;
void Int2_Routine(void) interrupt 6;
void Int3_Routine(void) interrupt 7;
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|