51单片机设计频率计,T0作定时器,T1作计数器,为什么测量时是单片机P3.4作为被测频率输入引脚。

2024-12-20 07:01:51
推荐回答(2个)
回答1:

主要看你T0\T1的工作方式,因T0有方式0、方式1、方式2和方式3四钟工作方式,而T1只有0-2三种方式。一般都使用T0计数,T1定时配合使用进行频率的测定与显示。

回答2:

程序中没有看到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;
}