找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7713|回復(fù): 20
打印 上一主題 下一主題
收起左側(cè)

用89C51單片機(jī)制作了一個(gè)頻率計(jì) 實(shí)測(cè)精度0.003%非常簡(jiǎn)潔 附源碼仿真圖高清測(cè)試圖

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
             如題,用AT89C52單片機(jī)制作了一個(gè)頻率計(jì)_實(shí)測(cè)很準(zhǔn)_非常簡(jiǎn)潔_附源碼仿真圖高清測(cè)試圖

下圖:信號(hào)發(fā)生器顯示100KHz,本試驗(yàn)數(shù)碼顯示100003Hz,達(dá)到0.003%,比我的萬(wàn)用表強(qiáng)
制作出來(lái)的實(shí)物圖如下:


下圖:信號(hào)發(fā)生器顯示10Khz,本試驗(yàn)數(shù)碼顯示10000Hz


下圖:信號(hào)發(fā)生器顯示1.000 000KHz,本試驗(yàn)數(shù)碼顯示1000Hz


下圖:信號(hào)發(fā)生器顯示220Hz,本試驗(yàn)數(shù)碼顯示220Hz


下圖:信號(hào)發(fā)生器顯示2Hz,本試驗(yàn)數(shù)碼顯示2Hz


下圖:信號(hào)發(fā)生器顯示454KHz,本試驗(yàn)數(shù)碼顯示454020Hz,這也是最大量程


下圖:信號(hào)發(fā)生器顯示100K,萬(wàn)用表顯示99.99KHz


下圖:信號(hào)發(fā)生器顯示200Hz,萬(wàn)用表顯示199.99Hz


下表是ZT219萬(wàn)用表說(shuō)明書(shū)的頻率檔和電容檔介紹


這里有一段測(cè)試視頻,
基于五一單片機(jī)的頻率計(jì)簡(jiǎn)單測(cè)試_嗶哩嗶哩_bilibili


附上單片機(jī)源碼,太簡(jiǎn)潔吧
  1. /****************************************************
  2. 名稱(chēng):頻率計(jì),用8位數(shù)碼管顯示

  3. 說(shuō)明:用計(jì)數(shù)器1對(duì)外部頻率信號(hào)進(jìn)行計(jì)數(shù),用定時(shí)器0每隔
  4.           一秒查詢(xún)計(jì)數(shù)器1的累計(jì)值,就是信號(hào)頻率。
  5.         89c52 主頻11.0592M         在開(kāi)發(fā)板上測(cè)試通過(guò)
  6. ****************************************************/

  7. #include <REGX52.H>
  8. #include "SMG.h"

  9. unsigned long num;           //        儲(chǔ)存計(jì)算頻率值
  10. unsigned char T1_count;         //計(jì)數(shù)器1計(jì)滿(mǎn)65536的次數(shù)

  11. void init()
  12. {
  13.         TMOD = 0x51;// 0101 0001
  14.         TH0 = 0x4c;// 初值=65536 - 11.0592/12*50000;定時(shí)50ms
  15.         TL0 = 0x00;
  16.         PT0 = 1;
  17.         EA = ET1 = ET0 =1;
  18.         TR0 = TR1 = 1;
  19.         TI = 1;
  20. }
  21. void main()
  22. {
  23.         init();
  24.         while(1)
  25.         {
  26.                  smgxs8w(num);         //數(shù)碼管顯示8位數(shù)
  27.         }
  28. }

  29. void T1_int() interrupt 3        //計(jì)數(shù)65536次觸發(fā)一次
  30. {
  31.         T1_count++;        
  32. }

  33. void T0_int() interrupt 1        //50ms觸發(fā)一次
  34. {
  35.         static unsigned char T0_count;
  36.         TR1 = 0;
  37.         TH0 = 0x4c;//定時(shí)50ms
  38.         TL0 = 0x13;        //理論值0x00,實(shí)測(cè)0x13最準(zhǔn)
  39.         if(++T0_count == 20)          //達(dá)到1秒
  40.         {
  41.                 num = T1_count *65536 + TH1*256+TL1;
  42.                 TH1 = TL1 = 0;
  43.                 T1_count = 0;
  44.                 T0_count = 0;
  45.         }         
  46.         TR1 = 1;

  47. }
復(fù)制代碼




仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)




Proteus7.5版本的仿真dsn文件和代碼下載: 頻率計(jì)—數(shù)碼管顯示.7z (71.08 KB, 下載次數(shù): 149)

IMG_20211007_180722.jpg (2.66 MB, 下載次數(shù): 157)

IMG_20211007_180722.jpg

IMG_20211007_180407.jpg (2.03 MB, 下載次數(shù): 149)

IMG_20211007_180407.jpg

IMG_20211007_175934.jpg (2.28 MB, 下載次數(shù): 169)

IMG_20211007_175934.jpg

IMG_20211007_175114.jpg (2.18 MB, 下載次數(shù): 170)

IMG_20211007_175114.jpg

評(píng)分

參與人數(shù) 3黑幣 +115 收起 理由
shushikuan + 10 很給力!
一片一城 + 15 很給力!
admin + 90 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏23 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:678280 發(fā)表于 2021-10-8 11:32 | 只看該作者
仿真就這個(gè)?



回復(fù)

使用道具 舉報(bào)

板凳
ID:678280 發(fā)表于 2021-10-8 11:38 | 只看該作者
信號(hào)輸入端呢?檔位呢?
回復(fù)

使用道具 舉報(bào)

地板
ID:965487 發(fā)表于 2021-10-8 13:46 | 只看該作者

不好意思,仿真數(shù)碼管的圖在上面,源程序在附件打包文件里。這個(gè)是用LCD屏顯示的仿真圖,可能是在改用數(shù)碼管的時(shí)候一同復(fù)制到新文件夾里了。
回復(fù)

使用道具 舉報(bào)

5#
ID:965487 發(fā)表于 2021-10-8 13:56 | 只看該作者
一片一城 發(fā)表于 2021-10-8 11:38
信號(hào)輸入端呢?檔位呢?

這個(gè)是我學(xué)習(xí)昨天學(xué)習(xí)單片機(jī)時(shí)的實(shí)驗(yàn)作品,實(shí)物就是那個(gè)照片里的開(kāi)發(fā)板了。
從仿真圖看,信號(hào)輸入端在A(yíng)T89C52的P3.5腳,這個(gè)沒(méi)有檔位,最大量程實(shí)測(cè)在450000HZ,這以下能保證精度,這是單片機(jī)主頻時(shí)鐘決定的。
如果要實(shí)用和增大量程,輸入端還要加放大器、波形整形和分頻等電路。
本人還處在學(xué)習(xí)階段,請(qǐng)多指導(dǎo)。
回復(fù)

使用道具 舉報(bào)

6#
ID:678280 發(fā)表于 2021-10-8 17:49 | 只看該作者
樓主辛苦了。按你的電路和代碼仿真了一回,可我不會(huì)設(shè)置給它的合適的信號(hào),請(qǐng)教了。







回復(fù)

使用道具 舉報(bào)

7#
ID:678280 發(fā)表于 2021-10-8 20:13 | 只看該作者
本帖最后由 一片一城 于 2021-10-8 20:15 編輯

在Proteus中我添加了一個(gè)方波發(fā)生器,加了隔直電容,可還是看不到正常的測(cè)量結(jié)果,是我哪里沒(méi)弄對(duì)?




回復(fù)

使用道具 舉報(bào)

8#
ID:965487 發(fā)表于 2021-10-9 08:35 | 只看該作者
一片一城 發(fā)表于 2021-10-8 17:49
樓主辛苦了。按你的電路和代碼仿真了一回,可我不會(huì)設(shè)置給它的合適的信號(hào),請(qǐng)教了。

如圖所示,點(diǎn)擊左側(cè)工具箱里的快捷圖標(biāo),打開(kāi)虛擬信號(hào)源面板,選擇數(shù)字時(shí)鐘發(fā)生器DCLOCK,再打開(kāi)它,設(shè)置參數(shù),特別是頻率。其它信號(hào)源,例如正弦波頻率要大于220Hz(實(shí)測(cè))。如實(shí)際應(yīng)用,P3.5端口要接0V—5V高低電平方波信號(hào),頻率1Hz—400 000Hz。打字慢,只能說(shuō)到這,不知可說(shuō)明白了。
回復(fù)

使用道具 舉報(bào)

9#
ID:965487 發(fā)表于 2021-10-9 08:44 | 只看該作者
從我的分析來(lái)看隔直電容C3不能加,因?yàn)镻3.5要下降沿電平觸發(fā),即要輸入0V-5V低高電平方波,即脈動(dòng)的直流電,不是交流方波。從你的555電路看,一是否起振了,二是看C1 R1 R2的參數(shù),頻率過(guò)高,三用示波器看看波形是否是方波。如實(shí)際應(yīng)用,P3.5端口要接0V—5V高低電平方波信號(hào),頻率1Hz—400 000Hz。打字慢,只能說(shuō)到這,不知可說(shuō)明白了。
回復(fù)

使用道具 舉報(bào)

10#
ID:678280 發(fā)表于 2021-10-9 10:53 | 只看該作者
wzqwxx 發(fā)表于 2021-10-9 08:44
從我的分析來(lái)看隔直電容C3不能加,因?yàn)镻3.5要下降沿電平觸發(fā),即要輸入0V-5V低高電平方波,即脈動(dòng)的直流電 ...

非常感謝你的回復(fù)。謝謝。
回復(fù)

使用道具 舉報(bào)

11#
ID:678280 發(fā)表于 2021-10-9 12:04 | 只看該作者
是我仿真時(shí)選錯(cuò)了數(shù)碼管極性,改正后正常了。



有微小波動(dòng),總體十分精準(zhǔn)。
  

回復(fù)

使用道具 舉報(bào)

12#
ID:965487 發(fā)表于 2021-10-9 15:45 | 只看該作者
一片一城 發(fā)表于 2021-10-9 10:53
非常感謝你的回復(fù)。謝謝。

不客氣,祝你玩得愉快,我們一起學(xué)習(xí)提高。
回復(fù)

使用道具 舉報(bào)

13#
ID:865044 發(fā)表于 2021-10-15 06:53 來(lái)自手機(jī) | 只看該作者
樓主做的不錯(cuò),精度也可以
回復(fù)

使用道具 舉報(bào)

14#
ID:865044 發(fā)表于 2021-10-15 06:54 來(lái)自手機(jī) | 只看該作者
不知道樓主學(xué)習(xí)單片機(jī)多長(zhǎng)時(shí)間了,我也剛開(kāi)始接觸單片機(jī)
回復(fù)

使用道具 舉報(bào)

15#
ID:965487 發(fā)表于 2021-10-15 13:04 | 只看該作者
        2019年10月看到能用C語(yǔ)言對(duì)單片機(jī)編,便產(chǎn)生了對(duì)單片機(jī)興趣,學(xué)了一個(gè)月吧,然后干其他事又耽誤了。30年前剛參加工作時(shí),買(mǎi)過(guò)那種任天堂的游戲機(jī),CPU好像是6502的8位單片機(jī),試著匯編語(yǔ)言,太難記,放上一兩個(gè)月不碰,指令都忘了。那時(shí)候流動(dòng)蘋(píng)果2電腦和8088、80286PC機(jī),價(jià)格貴,我等貧民是接觸不到。本人英文不行,看到單詞就頭痛,90年代到2010年代斷續(xù)學(xué)習(xí)過(guò)C、C++,還有易語(yǔ)言,但由于正處在30、40歲年齡段,工作忙,幾乎沒(méi)有業(yè)余時(shí)間玩這些興趣愛(ài)好,F(xiàn)在已五十歲了,工作輕松了些,試著拾起小時(shí)候的興趣愛(ài)好(電子技術(shù)),一個(gè)月前由于要燒寫(xiě)萬(wàn)用表的EEPROM數(shù)據(jù),沒(méi)有編程器,看到別人能用單片機(jī)編寫(xiě)一個(gè)程序就能解決,于是我又重新看書(shū)看視頻,參考別人源代碼,編寫(xiě)了一段程序(主要是IIC協(xié)議讀寫(xiě)AT24C02),完美解決問(wèn)題。寫(xiě)這段文字時(shí),我還在看要不要學(xué)32位單片機(jī)呢,反正現(xiàn)在有大把時(shí)間,談死還早。
回復(fù)

使用道具 舉報(bào)

16#
ID:865044 發(fā)表于 2021-10-15 23:57 來(lái)自手機(jī) | 只看該作者
wzqwxx 發(fā)表于 2021-10-15 13:04
2019年10月看到能用C語(yǔ)言對(duì)單片機(jī)編,便產(chǎn)生了對(duì)單片機(jī)興趣,學(xué)了一個(gè)月吧,然后干其他事又耽誤了 ...

看到你這么執(zhí)著,我也不敢輕言放棄了,謝謝你說(shuō)了這么多,確實(shí)很佩服您
回復(fù)

使用道具 舉報(bào)

17#
ID:396513 發(fā)表于 2021-11-20 05:10 | 只看該作者
wzqwxx 發(fā)表于 2021-10-15 13:04
2019年10月看到能用C語(yǔ)言對(duì)單片機(jī)編,便產(chǎn)生了對(duì)單片機(jī)興趣,學(xué)了一個(gè)月吧,然后干其他事又耽誤了 ...

這個(gè)代碼可以了,另外一種方法是外部中斷+定時(shí)間 ,測(cè)低頻要比這個(gè)準(zhǔn),不過(guò)挺佩服你的,這個(gè)行業(yè)是由淺到深的,用到的技術(shù)也很多,51的單片機(jī)適合簡(jiǎn)單控制類(lèi),比如一些家電什么的,這行業(yè) 學(xué)海無(wú)涯
回復(fù)

使用道具 舉報(bào)

18#
ID:977861 發(fā)表于 2021-11-23 12:57 | 只看該作者
這個(gè)可以,跟著學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

19#
ID:759755 發(fā)表于 2021-12-29 21:27 | 只看該作者
這個(gè)可以測(cè)量1M的頻率嗎?
回復(fù)

使用道具 舉報(bào)

20#
ID:343102 發(fā)表于 2024-6-28 22:03 | 只看該作者
原理上講,頻率測(cè)量精度要想達(dá)到千分之一,測(cè)量時(shí)間需要1000秒。
回復(fù)

使用道具 舉報(bào)

21#
ID:1117489 發(fā)表于 2024-10-3 19:23 | 只看該作者
下載了,里面有很多文件打不開(kāi)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表