㈠ 51单片机中断函数怎么写
51单片机的中断函数格式:
例
void jump_low() interrupt 2
{
P1 = ~P1; //位反转
}
interrupt函数格式:
void +函数名()+interrupt +数字0~4
0 表示外部中断0
1 表示定时器/计数器(T0)
2外部中断1
3:定时器/计数器(T1)
4:串行口
㈡ 51单片机,如果中断函数比较长,执行到一半又触发了这个中断,程序会停止从头执行,还是执行结束后响应中
51单片机中,中断分高低两个优先级,高优先级的中断能打断低优先级的中断。
但同级中断是不能打断同级中断的!无论该中断函数有多长,在执行到一半这个中断又发生了,还是要等到该中断函数执行完毕,并再执行了一条主程序指令后才会再次进入该中断。
不过,若楼主恰好在这个低优先级中断服务程序中修改了该中断为高优先级,那么如果该中断函数比较长,执行到一半又触发了这个中断,则该中断函数就会被重新从头开始执行(中断嵌套)。这是因为除串口中断以外的其他中断,在 CPU 响应该中断,程序转入该中断函数前就已经将该中断的中断标志清零了。
另外,51的串口中断比较特别,因为需要软件清除串口中断标志,所以只要在未清串口中断标志前,是不会发生上述这样的中断嵌套的。
㈢ 51单片机中断函数在哪里放置
中铅大断函数不用在主函数中调用,只槐悄竖要中断事件发生,单片机自己主动会调到中断函数中运睁。
两个中断函数指向同一个interrupt的时候,编译就会报错了。