编一个51单片机外部中断测频率的程序,急求!!

编一个51单片机外部中断测频率的程序,急求!!,第1张

void timers() interrupt 0

{count++;

TR0=1;

}

void timer0() interrupt 1

{ TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t++;

}

每一个下降沿到达时conut自加1。开启一个定时器,计算一定时间t内的count值,主程序就好写了,再写一个H=count/t语句,H就是频率了。总体思路就是这样,细节你就自己来写吧。

void mian(viod)

这是什么意思?应该是void main(void)吧,这种细节问题不注意很难写出高质量的程序哦,再说了,TH1=0x3C; TL1=0xAF; //50ms???应该是TH1=0x3C; //50ms

TL1=0xB0;

600脉冲也很简单啊, 用600作初值,算出TH0和TL0,然后写出中断服务程序,主函数中设置点P1口LED灯

50KHz频率不高,直接采用T0计数就可以了,大概思路如下:

T0设置为计数器模式,下降沿计数。T1设置成定时器模式,中断20ms即可,20ms中断时读取T0内部的计数值,然后计算既可以得到频率。

数码管显示采用分时驱动吧,正好利用20ms的中断来刷新每位。具体的应该你也知道,这个是基础。

不过在极低频率,0X HZ估计效果很差,这个需要设置不同的量程来做了,自动量程可以采用不同频率下改变T1中断时间的方法来做,具体也就是说多久才能取到一个脉冲。

TMOD = 0X01; --设置 T0

TH1=0x00;-----用 T1 计时?

TL1=0x00;

T1,是方式一。

a=TH1;

b=TL1;

F=a256+b;--算法有错。

nrz 的两种频率,大约是多少?

以上就是关于编一个51单片机外部中断测频率的程序,急求!!全部的内容,包括:编一个51单片机外部中断测频率的程序,急求!!、本人菜鸟,写了一段单片机(c语言)测频率的程序,有两个问题、请问单片机的数字频率计怎么设计程序要求是0--50KHZ进行计数;要用四个数码显示管显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10067460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存