主要看你T0\T1的工作方式,因T0有方式0、方式1、方式2和方式3四钟工作方式,而T1只有0-2三种方式。一般都使用T0计数,T1定时配合使用进行频率的测定与显示。
程序中没有看到T1的中断开放,缺少一句:ET1=1; 另外TF0=1这句似乎也不正确
初始化程序改成:
void init_time(void) //定义名为init的初始化子函数
{ //init子函数开始,分别赋值
TMOD=0X51; //GATE C/T M1 M0 GATE C/T M1 M0 计数器T1 定时器T0
// 0 1 0 1 0 0 0 1
TH1=0; //计数器初始值
TL1=0;
TH0=-(50000/256); //定时器t0 定时50ms
TL0=-(50000%256);
EA=1; // IE=0X00; //EA - ET1 ES ET1 EX1 ET0 EX0
ET0=1; // 1 0 1 0 0 0 1 0
TR1=1;
TR0=1;
ET1=1;
}