做用51单片机做一个频率计,测量范围为0.1Hz~10kHz

作者&投稿:友备 (若有异议请与网页底部的电邮联系)
自动控制原理和硬件设计有什么关系?~

呵呵,经典自动控制原理主要是理论,研究简单的控制系统的。在过程控制中主要用于计算PID各部分的参数,然后加以调节。在电气设计中要是想稳定一个状态的话,同样要加入反馈调节,比如说电机调速等问题,甚至要采用双闭环无静差调节,你需要利用自控原理去计算反馈系数,然后通过自控原理去分析这个系统的稳定性能否达到工业要求。不过现在大部分复杂的控制系统都是利用现代控制理论即状态方程来设计系统,因为线控的话不用去考虑其中的过程 ,而且控制的变量也比较随意,像卫星的遥感,控制,还有飞机的自动导航系统,都是利用的现代控制理论。但是自动控制理论永远是自动化类的经典学科。

市场有自动定时控制器,很容易设置和使用。也很便宜。
至于冬天夏天的问题,完全可以人去控制。

很明显啊,在测量小于1Hz频率时,测量时间必须大于1s,比如10s,20s或者更长时间,这样才能保证测量准确。

既然你一次定时0.5s不能变,那就有程序控制累加多个0.5s的测量结果再计算频率值。

所以程序中使用自适应方法,首先测量一个0.5s,看得到的频率值是否大于1,如果大于1即直接测量,如果频率值为0,表示被测频率小于1Hz,就转入长时间测量的模式。

在不改变定时时间的前提下,也就是0.5秒定时,是不能实现0.1~2Hz频率的测量的。
你所谓2Hz~10KHz易实现也是基于这个道理。但这个也是理论情况。
当你0.5s内刚好检测到一个脉冲,你认为这个时候是2Hz而不是2.5hz或者3.9hz?
这中间存在一个测量精度的问题。实际上你所测到的信号是在2hz到4hz之间。

实际上我们在测量信号的时候,低频一般会采用测周期,高频用测频才能提高测量的准确性。
至于高低频的临界点,跟你的计数频率有关,感兴趣的话可以去看《电子测量原理》。

下面我来讲下测周实现的方法,可以使用边沿触发的D触发器输出作为单片机的外部定时控制,测量信号作为触发时钟,计数值作为该信号的周期。

写程序的话,可能比较麻烦,说说思路吧,小数点后面的可以用计数的方法,实际上就是在一个输入时钟内,计数,看计数到几,由于单片机的时钟是已知的,所示用计数值乘以时钟周期就可以得出外部输入时钟的,小数点后面部分的周期,从而可得F频率

先把所有的测得的数据X10 ,最后计算之后/10,不就可以了吗?

做用51单片机做一个频率计,测量范围为0.1Hz~10kHz
答:在不改变定时时间的前提下,也就是0.5秒定时,是不能实现0.1~2Hz频率的测量的。你所谓2Hz~10KHz易实现也是基于这个道理。但这个也是理论情况。当你0.5s内刚好检测到一个脉冲,你认为这个时候是2Hz而不是2.5hz或者3.9hz?这中间存在一个测量精度的问题。实际上你所测到的信号是在2hz到4hz之...

AT89C51单片机设计频率计,测量0Hz--99.99KHz的频率,精度0.1%,分频是怎...
答:100K以内,直接用51定时器的计数模式来做,完全能达到0.1%的精度,没必要分频。 实在想分频,那你可以用74系列的计数器比如74HC160来做,可以任意设置你想要的分频系数。

单片机频率计
答:利用51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示出来。要求能够对0-250KHZ的信号频率进行准确计数,计数误差不超过±1HZ。2.电路原理图 见插图 3.程序设计内容 (1).定时/计数器T0和T1的工作方式设置,由图可知,T0是工作在计数状态下...

假设51单片机采用12mhz晶振,利用单片机制作一个测量电阻为0-1kkhz的...
答:init2();//液晶屏初始化 A1=number/10000%10;//分离出十万,万,千,百,十,个 A2=number/1000%10;A3=number/100%10;A4=number/10%10;A5=number%10;

做用51单片机做一个频率计,测量范围为0.1Hz~10kHz
答:很明显啊,在测量小于1Hz频率时,测量时间必须大于1s,比如10s,20s或者更长时间,这样才能保证测量准确。既然你一次定时0.5s不能变,那就有程序控制累加多个0.5s的测量结果再计算频率值。所以程序中使用自适应方法,首先测量一个0.5s,看得到的频率值是否大于1,如果大于1即直接测量,如果频率值为0,...

51单片机制作频率计,测周法如何测量(用T0和T1两个就可以了吗),求大虾...
答:U8 code scn[]={0x7f,0xbf,0xdf,0xef};//先点亮左边一个数码管 U8 buf[4]={0,0,0,0};// 显示缓冲区 U8 cnt = 0; // 扫描计数 unsigned int freq = 0;unsigned int F;void main(void){ EA = 1; // 允许中断 TMOD = 0x01; // 设定时器0为模式1(16位)ET0 = 1...

51单片机用定时器计数器测量频率
答:定时器1对外部脉冲计数时TMOD高4位设置应该是5 因此TMOD=0x51;以下我的频率计程序:include <reg52.h>//因没用到STC12C5410专有特殊功能寄存器,此处用52或51的头文件均可 define unit unsigned int define uchar unsigned char //定义以I/O口的功能 sbit beiguang=P3^2;//液晶屏背光 sbit ...

基于51单片机的数字频率计(0—10MHZ)
答:再加两个数码管,用 T1 引脚检测频率,打开T1中断,每中断一次 加1计数,满1秒中后停止T1计数,读出T1计数器的 TH1 TL1,频率 = 65536 x 中断次数 + TH1 HL1 。前提是 选择高速单片机,即只要 T1 引脚 能够响应 10M 的频率就没有问题 因为 要 计数 65536 次才 T1才会中断一次。

基于51单片机的频率计的设计,要求:、测试范围1HZ—200KHZ;可设置波段...
答:T0最大的计数值为65536,小于要求计数的频率的最大值 采用软件计数的方法来实现,若1s内有A次溢出,最后的T0为B,则输出信号的频率为:f=A*65536+B 所以可以实现0-300KHz的频率检测。可以通过数码管或LCD显示频率值。对于波段来讲,你可以设置好定时器的初始值可以获取。

51单片机制作简易数字频率计程序
答:这里有一个四位数码管的频率计,供参考 include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码//uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端(开发板)uc...