基于定时器中断实现LED的闪烁,但LED没有反应


#include 
sbit led=P2^0;
unsigned int t;
void main()
{
    void Timer0_Init()    ;
    while(1)
    {
        if(t==1000)
        {
            led=!led;
            t=0;
        }
       
    }
   
 }
 

void Timer0_Init()        //1毫秒@12.000MHz
{
    
    TMOD &= 0xF0;            //设置定时器模式
    TMOD |= 0x01;            //设置定时器模式
    TL0 = 0x18;                //设置定时初始值
    TH0 = 0xFC;                //设置定时初始值
    TR0 = 1;                //定时器0开始计时
    ET0 = 1;    //使能定时器0中断
}
void Timer0_Isr() interrupt 1
{
    TL0 = 0x18;                //设置定时初始值
    TH0 = 0xFC;                //设置定时初始值
    t++;
}

兄弟,定时器中断没有开,定时器函数需要这样改

void Timer0_Init()        //1毫秒@12.000MHz
{
    
    TMOD &= 0xF0;            //设置定时器模式
    TMOD |= 0x01;            //设置定时器模式
    TL0 = 0x18;                //设置定时初始值
    TH0 = 0xFC;                //设置定时初始值
    TR0 = 1;                //定时器0开始计时
    ET0 = 1;    //使能定时器0中断
    EA = 1;
    ET1 = 1;
}

EA等于1表示允许中断,也就是中断的总开关;ET1是一个分开关,等于1也表示允许中断;二者关系相当于学校大门与学校的教学楼大门,要进入教学楼,你要先进学校大门,在经过教学楼大门,如果学校或者是教学楼大门没开,你怎么也进不去,只有同时打开才能进入。