第1个回答 2013-05-07
sbit echo=P3^6;
cemk()
{uint mk=0;
TR0=0;
TH0=0;
TL0=0;
echo=0;
while((!echo);
TR0=1;
while(echo);
TR0=0;
mk=TH0*256+TL0
return mk;
}
主程序要加上
TMOD=0x11;
EA=1;
ET0=1;
把要测的端脚接P3.6调用cemk()程序返回的数据就是脉宽了(机器周期1us即(12MHZ晶振)测量范围0~65535us)如果害怕陷入死循环可以在while()语句里面加点保护。
这个只测量高电平时间周期时间zhxiufan答的就是,他的比较全