
飞利浦半导体
产品数据
80C51的8位微控制器系列
4K / 8K / 16K / 32K闪存
89C51/89C52/89C54/89C58
中断优先级结构
0
INT0
1
IT0
IE0
优先级结构
每一个中断源,也可单独设置为1
四个优先级由特殊功能设置或清除位
寄存器的IP (图12)和IPH (图13) 。低优先级
中断本身可以被更高优先级的中断,但
不是由相同的电平的另一个中断。一个高优先级3
中断不能被任何其他的中断源中断。
如果两个请求不同优先级的同时接收到
较高优先级的中断申请。如果该请求
相同的优先级同时收到,内部投票
序列决定响应哪一个中断。因此,在每个
优先级有由确定的第二优先级的结构
查询序列如下:
来源
1. IE0 (外部INT 0 )
2. TF0 (定时器0 )
3. IE1 (外部INT 1 )
4. TF1 (定时器1 )
5. RI + TI (UART)
6. TF2 , EXF2 (定时器2 )
SU01521
TF0
0
INT1
1
IT1
IE1
打断
来源
TF1
TI
RI
TF2 , EXF2
在优先级
(最高)
(最低)
图10. 80C51中断源
另外,“优先级内”的结构只用来解决
同一优先级的并发请求。
IP和IPH寄存器包含了许多未实现的位。
用户软件不要向其写入1秒到这些位置,因为它们可能
在其他的80C51系列的产品中使用。
如何中断的处理
中断标志位进行采样,每个机器周期的S5P2 。
将样品在下列机器周期轮询。如果一种
该标志是在一组条件下,在前面的周期的S5P2 ,对
轮询周期会发现它和中断系统将产生一个
LCALL到相应的服务程序,提供了这个
硬件产生的LCALL会不会被以下任一操作
条件:
1.相等或更高优先级的中断在运行中
进展情况。
2.电流(轮询)周期中没有执行的最后周期
在正在执行的指令。
3.正在执行的指令是RETI或访问IE或IP
寄存器。
所有这三个条件将阻止LCALL的产生
到中断服务程序。条件2保证了
指令进步将引导之前任何完成
服务程序。条件3保证,如果在指令
进步是RETI或是访问IE或IP ,那么至少有一个以上
指令执行之前的任何中断向量来。
轮询周期重复与每个机器周期,并且
调查值是出席的S5P2值
先前的机器周期。需要注意的是积极的,但如果中断标志不
被响应为上述条件1中,如果标志不为
仍然活跃的时候阻塞情况消除时,否认
中断不会被响应。换句话说,一个事实,即
中断标志一度活跃,但不提供服务不记得。
每个轮询周期都是新的。
中断
本数据手册中所述的设备提供了6个中断
源。这些示于图10中外部中断
INT0和INT1都可以是电平触发或
边沿触发,按照IT0和IT1注册
TCON 。实际产生的中断标志位IE0
和IE1的TCON 。当产生一个外部中断,则标志
生成它由硬件清零时,中断服务程序
被引导到只有在中断是边沿触发。如果
中断是电平触发,则外部请求来源
什么控制请求标志,而不是芯片上的硬件。
由TF0和TF1产生定时器0和定时器1中断,
这是由各自的定时器/计数器的翻转设置
寄存器(除见定时器0在模式3 ) 。当定时器中断是
生成,生成它的标志由片上清除
当服务程序是矢量的硬件。
串口中断由RI和TI的逻辑或产生。
无论这些标志由硬件在服务清除
程序是矢量。实际上,该服务程序必须
以确定它是否是RI或TI产生中断,
和位将在软件清零。
所有这些产生中断的位可以设置或清除
软件,具有相同的结果,虽然它已被置位或清零
由硬件。也就是说,中断可以产生或待批
中断可以在软件中被取消。
每种中断源都可以单独启用或
在特殊功能寄存器IE设置或清除位禁止
(图11) 。 IE浏览器中还包含了一个全局禁止位EA,它禁用
所有中断一次。
2002年1月15日
22