c51单片机中断函数中如何实现循环, 以下程序无法实现对中断函数的运算循环。

2025-03-09 10:35:22
推荐回答(1个)
回答1:

首先中断函数中一般是要杜绝循环的,也不用延时的。

延时通过定时器定时来实现,中断多次进入就能实现重复多次处理。


设置一个位变量,每次进入后取反,根据它的值来给P2口服不同的值。

启动前给flag赋值1,n赋值10,然后启动定时计数器,设置合适的初值,使其定时为500

bit flag;
int n;
void hi() interrupt 2 using 2
{
    if(n-->0)
        if(flag)
            P2 = 0xf8;
        else
            P2 = 0x07;
        flag = ~ flag;
}