51单片机输出50hz的PWM波怎么不行?为什么输出的是100hz的

#include<reg52.h>
#include<intrins.h>
sbit ppm=P0^0;
unsigned int tmt=0;
unsigned int TM=0;
/*舵机及超声波控制*/
void time_1() interrupt 3 //T1中断
{
if((tmt)<TM)
ppm=1;
else
ppm=0;
tmt=tmt%100;
tmt++;
}

/*初始化函数*/
void initializer()
{ TMOD=0x20; //设T1方式2
TH1=TL1=56; //200us
ET1=1; //允许T1中断
TR1=1; //开启定时器
EA=1; //开启总中断
}

/*主函数*/
void main()
{
initializer(); //程序初始化
while(1)
{
TM=7;
}
}

按程序周期是20000个机器周期,如果晶振是12M的话,那么输出频率为50Hz,如果是24M的话,则输出频率为100Hz追问

晶振是12m的,在protues上仿真能行,但是单片机上就是不行,atmel和stc的都不行,并且是两个最单片机小系统

温馨提示:答案为网友推荐,仅供参考