C51单片机本来执行主程序遇到一个中断之后,我希望中断结束之后返回主程序不是执行剩下的而是进入等待,有没有什么方法
等待是什么意思?是等待进去下一次中断?
可以在中断结束时,在中断服务程序中加入一个跳转指令,让程序跳转到一个等待函数,然后在等待函数中等待下一次中断发生。例如:
void interrupt_service() // 中断服务程序
{
// 中断处理代码
// ...
// 跳转到等待函数
goto wait;
}
void wait() // 等待函数
{
// 等待下一次中断发生
// ...
}
void main()
{
// 初始化
// ...
// 进入等待状态
wait:
// 执行等待函数
wait();
// 返回主程序
// ...
}
这样,当中断发生时,程序会跳转到中断服务程序进行处理,处理完毕后会跳转到等待函数,然后程序会一直停留在等待函数中等待下一次中断发生。如果需要返回主程序,可以在等待函数中增加一些条件判断语句,满足条件时跳转回主程序。