标题: P00口输出方波程序 [打印本页]

作者: dongfshu    时间: 2009-9-3 18:55
标题: P00口输出方波程序

大家好,我现在想在89S51的P00口输出25K的方波,但不知道怎么回事,总是跟我想象的结果不一样。16M的晶振,请高手给与指点下,谢谢了
#include <reg52.h>
sbit P00=P0^0;
void main(void)
{
long float Freq=25000.00;
long float temp;
float tt;
int t;
temp=(2000000/3)/Freq;
tt=65536-temp;
t=(int)tt;
P00=1;
TMOD=0x01;
TH0=t/256;
TL0=t%256;
TR0=1;
 while(1)
 {
   if(TF0==1)
   {
     TF0=0;
   P00=~P00;
   TH0=t/256;
   TL0=t%256;
   }
 }

}


作者: luffy    时间: 2009-9-17 17:13
肯定不行了,16M的晶体的话计一个脉冲就是16/12=1.3us,而你计了65509个数,也就是定时器溢出一次是1.3*65509=0.085us,
85个毫秒,周期就是170毫秒,频率也才6HZ左右
作者: xiaoshandong    时间: 2009-9-17 22:28

计一个脉冲是12/16吧的时间吧


作者: xiaoshandong    时间: 2009-9-17 22:34
应该是不是  TH0=(49151-20)/256
                TL0=(49151-20)%256

作者: luffy    时间: 2009-9-18 08:27

哦,对,算错了,计一个脉冲是12/16=0.75us






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1