用51单片机测频率,T0定时,T1计数,具体程序应该怎么写呀,跪求完整点的

测ne555输出频率,定时50ms,读取T1计数,再乘以20算出频率,我对定时器计时器了解很少,求帮呀

数码管 还是液晶屏显示? 晶振频率多少?
用定时器时,先设置工作方式 再装入初值 开启中断 再开启定时器/计数器
void init()//初始化设置
{
TMOD=0x51;//定时器1作为计数器,定时器0作为定时器用
TH1=0;//计数器清0
TL1=0;
EA=1;//开总中断
ET0=1;//允许定时器0中断
TH0=(65535-50000)/256;// 晶振12M时 定时50ms需装入的初值
TL0==(65535-50000)%256;
TR0=1;//启动计数器
TR1=1;//启动定时器
}

定时器中断程序
void timer0()interrupt 1//注意:定时器0的中断序号为1
{
TH0=(65535-50000)/256;
TL0==(65535-50000)%256;
TR1=0;//暂停计数
bb=TH1;//读出计数器数据
cc=TL1;
TL1=0;//计数器清0
TH1=0;
TR1=1;//重新启动
}

频率f=(bb*256+cc)*20
然后分离出个 十 百 千 万,送液晶屏或数码管去显示
主程序先初始化,然后就是不停地显示追问

显示部分我自己可以搞定,这个我先试试好了,谢谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-02-12
关注这个问题
第2个回答  2015-02-12
要代码,还是要思路追问

代码,最好是比较完整的

相似回答