1. 中止的原理:
CPU暂时中止当时的作业(这叫中止呼应),转去处理事情B(这叫中止服务)。
2. 89C51的中止体系有5个中止源(按优先级凹凸排序为:外部中止0、计时器中止0、外部中止1、计时器中止1、串口中止),2个优先级,可完成二级中止嵌套(中止处理进程又有优先级更高的中止产生)。府第单片机中可能有更多的中止源和更多的优先级等。
3. 89C51单片机的中止优先级有三个准则:
(1)CPU一起接收到几个中止时,首要呼应优先等级最高的中止请求。 (2)正在进行的中止进程不能被新的同级或低优先级的中止请求所中止。 (3)正在进行的低优先级中止服务,能被高优先级中止请求所中止。(为完成后两个准则,体系设有两个不能寻址的优先级触发器。其间一个置1,一共正在呼应高优先级的中止,将阻断后来一切的中止请求;另一个置1,一共正在呼应低优先级中止,将阻断后来一切低优先级中止请求。)
4. CPU对中止体系一切中止以及某个中止源的开发和屏蔽是由中止答应寄存器IE操控的。
5. 中止呼应条件:
(1)中止源有中止请求;(2)此中止源的中止答应位为1;(3)CPU开中止(即EA=1)。
6. 程序员运用中止需求做什么?
(1)运用哪个中止(外部中止,计时器中止,串口中止等),便确认了呼应的中止号;(2)期望触发中止的条件是什么,比方下降沿触发仍是低电平触发;(3)中止之后要干什么(中止服务程序要尽量简略)。
举例:a.设置IE中呼应的值——EA置1(答应CPU中止)、翻开要运用的中止;b.设置TCON中相应中止的触发方法(如下图所示TCON寄存器);c.写中止服务程序(void 函数名() interrupt 中止号 using 0~3中的恣意值 { 函数体 },其间0~3中的值一共挑选片内四组寄存器中的一组来保存中止前的现场,一般主张初学者不写“using 0~3中的恣意值”,由于你不清楚内部寄存器的运用情况,不写的情况下,Keil会主动帮你指定的。)
7. 外部中止:
IT0(TCON.0)决议外部中止0是低电平有用仍是下降沿有用(从高电平变到低电平)。同样地,IT1(TCON.2)对应外部中止1。