微控制器頻率計如何計算更精確,用51微控制器做的頻率計為什麼會有誤差?

時間 2022-06-01 23:25:06

1樓:做而論道

1全部100ms,測量一次,顯示一次,顯示數值跳動,是正常的。

可以把四次的數值,取平均值,每隔400ms,顯示一次;這樣,跳動的現象就會明顯減小。

如果把八次的數值,取平均值,每隔800ms,顯示一次;這時,顯示的就會很穩定了,但是,也顯得「遲鈍」和「冷漠」多了。

每隔400ms,顯示一次平均值,效果最好。

2樓:

//定時器1工作於定時方式,方式1,定時器0工作於計數方式,方式1

方式1不太好,每觸發一次中斷,需要重新賦初值,有時間浪費,累積多了,就會有偏差,用方式2,8位自動重灌方式較好。如果要求十分精確,最好使用時鐘晶片。

3樓:匿名使用者

你把計頻的步長直接設成1s,這樣主便計算,計數的中斷用定時器中斷去觸發,設一個快取陣列,測3個值或2個值取平均,這樣,比較準而且波動很小,我測50k時就是這樣測的.效果還可以.

4樓:匿名使用者

這可能是51微控制器的缺陷吧,一般到了50k的話測量真的不是很準的。看來只能多測試幾次取平均值。60k的話,你延長測量的時間啊,設定的時間可以是0.5s。試試看

5樓:

你的頻率計的工作原理是什麼,是用定時器嗎,怎麼測的,我覺得使用定時器的計數功能,搞一個上升(下降)沿計數就可以了

用51微控制器做的頻率計為什麼會有誤差?

6樓:

1m,似乎不太好弄,如果要求比較精確的話;

100hz~1m,換成同期:1us~10ms,週期/2=(0.5us~5ms),0.5us的脈寬....24m晶振都做不到的;檢測一個脈寬起碼也行四五條指令吧。。。

用匯編:

loop:

jb data_in,$;高電平等待

jnb data_in,$;低電平等待

inc times;脈寬數加1

ajmp loop;

再用定時器定時:如:10ms,記錄這10ms內times變化了多少次,再換算成頻率;注意誤差範圍。。。。頻率低的話10ms得換大些。。

顯示部分也可用定時器來做。。

綜合以上,應該還是能做的;

如能選些6t 或 1t的51微控制器肯定沒問題,傳統的12t的估計有點難

基於51微控制器的頻率計,輸入訊號小於20khz時,很準,測量頻率變大後誤差加大,是因為微控制器頻率引起的嗎?

7樓:做而論道

微控制器速度有限,對高頻輸入,反應不及時,就會有誤差。

如果程式編寫的很濫,就在會不很高的頻率時,誤差就出現了。

小弟跪求有基於微控制器的等精度頻率計的設計,範圍10hz到100mhz。精度千分之一,希望不吝賜教。 5

8樓:

這麼大頻率的計數器還真沒做過,給你個思路,可以使二進位制用計數器進行降低頻率,比如使用四位二進位制計數器進行降頻,那麼出來的頻率應該最大不超過100/16=6.25mhz,增強型51應該可以測這個頻率了,微控制器測得的頻率再乘16即可,精度滿足的話可以繼續降,進行32分頻,可以降到3mhz多點。

不過這麼大的頻率的晶片不一定好找,如果我以前好像看到過74f390/393好像能達到125m,其他的74系列的74hc390只能達到60多m、74ls390只能達到20m,你自己看看吧,

降頻的話高頻訊號可以測得比較精確,低頻就沒那麼精確了,比如10hz進行16分頻根本就測不出來,所以要把輸入訊號先用微控制器測下頻率,如果頻率較小就不降頻直接用微控制器測,當達到微控制器能測得最大頻率時就進行降頻操作。

9樓:匿名使用者

100m hz?這麼高,微控制器不太好搞吧?常用的微控制器晶振最多才幾十m

10樓:匿名使用者

微控制器的時頻率才十幾mhz且經過分頻什麼的,微控制器的處理速度一般沒這麼高吧,用arm戓dsp就差不多

怎樣用微控制器做頻率計

11樓:匿名使用者

啟動一個定時器,再用另一個計數器,在定時的時間內計了多少個數,然後自己算,最好多計幾組,求平均值,會準確一些,不過,頻率不能太高,微控制器的速度有限。

12樓:匿名使用者

測什麼頻率 電磁波的頻率嗎 我有成套的硬體設計 和c程式 需要的話200賣你吧 哈哈。測試範圍 0-2.4g hz

13樓:匿名使用者

可以做的,不過具體還要看要求

14樓:大草原黃花菜

僅供參考:http://hi.

51微控制器的pc值怎麼算,51微控制器中如何進行相對定址?pc值怎麼計算?rel又怎麼給

鈺瀟 a 50h sp 50h 51h 30h 52h 50h pc 5030h a 50h sp 50h 因為在程式中,sp減了兩次,後來又加了兩次,在程式最後ret有在返回的時候減了兩次,即地址出棧,故最終結果是50h。51h 30h 52h 50h 因為ret指令返回時,出棧的結果是高地址 5...

51微控制器制作頻率計,測周法如何測量 用T0和T1兩個就可以了嗎 ,求大蝦幫忙啊,最好詳細點

include define u8 unsigned char u8 code tab u8 code scn 先點亮左邊一個數碼管 u8 buf 4 顯示緩衝區 u8 cnt 0 掃描計數 unsigned int freq 0 unsigned int f void main void ea 1...

51微控制器產生一定佔空比和頻率的PWM

程式修改了一下,試試,ucount是字元變數而且也只能是字元變數,所以不能大於255.include define count 50 define th m1 65536 count 256 設定定時器t0的定時時間 define tl m1 65536 count 256 設定定時器t0的定時時間...