问题遇到的现象和发生背景
检查信号持续性
检测P2^1上面信号 2s时间内一直为1(中断50ms,20次100ms,再20次2s),则led亮,中途有0则led 不亮

问题相关代码,请勿粘贴截图
#include <reg52.h>
sbit alarm=P2^1;
sbit led=P2^2;
unsigned char alarm_num=0;
main()
{
while(1)
{
if(alarm_num>=20)
{led=1;}
else {led=0;}
}
}
void init_time0(void)
{
TMOD|=0X01;
EA=1;
ET0=1;
TR0=1;
}
void timer0(void) interrupt 1
{
static unsigned int num;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
num++;
if(num==50)
{
if(alarm==1)
{alarm_num++;}
else
{alarm_num=0;}
}
}
运行结果及报错内容
结果LED 一直不亮
我的解答思路和尝试过的方法
中断写的,不知道问题出在哪里??