1.中断
先来了解中断的概念,我们拿生活中举个例子,就比如你原本在洗衣服,洗着洗着水开了,这时候你跑过去把关火,把水灌入水瓶后,在回来洗衣服,那么这个过程实际上就是发生一次中断。
对单片机来讲,中断是指CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速处理(中断发生);CPU暂时停止当前工作(中断响应),转去处理事件B(中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称之为中断。
1.1.中断优先级
涉及中断——优先级。单片机在执行程序试同一时刻发生两个中断。单片机该先执行哪个?这时候我们就要设置中断优先级寄存器,来告诉单片机先执行哪个。
对于51/52单片机来讲,若没设置中断优先级,它内部自己有一套优先级,如下
中断源 级别 序号 入口地址
INT0-----外部中断0 最高 0 0003H
T0-----定时器/计数0 中断 第二 1 000BH
INT1-----外部中断1 第三 2 0013H
T1-----定时器/计数1 中断 第四 3 001BH
TI/RI-----串行口中断 第五 4 0023H
T2-----定时器/计数2 中断 最低 5 002BH
注:定时器2是52单片机特有的。
1.2中断允许寄存器
EA = 1;打开全局中断控制
EA = 0;关闭全部中断
ET0 = 1;打开定时器0中断
ET0 = 0;关闭定时器0中断
ET1 = 1;打开定时器1中断
ET1 = 0;关闭定时器1中断
ET2 = 1;打开定时器2中断
ET2 = 0;关闭定时器2中断
ES = 0;关闭中断允许位
ES = 1P;打开中断允许位
EX1 = 1;打开外部中断允许位1
EX1 = 0;关闭外部中断允许位
EX0 = 1;打开外部中断允许位0
EX0 = 0;关闭外部中断允许位