1.中断概念
中断是指由于某种随机事件的发生,计算机暂停现行程序的运行,转去执行另一个程序,以处理发生的事件,处理完毕后自动返回原来的程序继续运行。
2.中断原理
INT0与INT1为外部中断,TX,RX串口共用一个中断。
以INT0外部中断0为例,IT0=0时为低电平触发,IT0=1时为下降沿触发。当中断触发后,TCON中断请求位中的IE0就置为1向CPU申请中断。如需CPU接收到中断请求,则必须打开EX0中断0开关位和EA总中断开关位,最后经过IP中断优先级的判断,向CPU申请中断。
中断的优先级:
①低级中断过程中,高级中断可打断低级中断;
②高级中断过程中,低级中断不可打断高级中断;
③同级中断不可打断同级中断。;
④同级中断同时触发,按自然优先级。
3.中断的写法
void Extlnt0(void) interrupt 0
{
//需要中断运行的程序
}
void main()
{
EX0 = 1; //使能INT0中断
PX0 = 0; //中断优先级设置
IT0 = 1; //设置INT0的中断类型(1:仅下降沿触发 0:低电平触发)
EA = 1; //开总中断开关
while(1);
}