久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4807|回復: 28
打印 上一主題 下一主題
收起左側

STC15W408單片機頻率計能做到多高頻率?

  [復制鏈接]
跳轉到指定樓層
樓主
自己搞維修,經常用到測頻率的,也是多年想制作的,這次有時間了,
想用STC15W408AS單片機制作頻率計,用外接基頻和與非門,單片機只做計數器用
用內部35M頻率(不用產生基頻,不用擔心頻率不穩),且不分頻,盡量提高計數分辨率,
頻率計能做到多高呢?


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2021-12-22 09:58 | 只看該作者
如果是學習值得自己制作,搞維修還是買一個劃算。
回復

使用道具 舉報

板凳
ID:401564 發表于 2021-12-22 10:09 | 只看該作者
不管是什么維修,搞臺二手的示波器,比頻率計實用很多
回復

使用道具 舉報

地板
ID:624769 發表于 2021-12-22 11:35 | 只看該作者
我很疑惑,你不用定時,只計數,如何得出頻率??

有現成的CCP不用,非要用外部中斷, 那這計頻能力不見得比89C52來得高。
回復

使用道具 舉報

5#
ID:883242 發表于 2021-12-22 12:05 | 只看該作者
頻率不夠可以外掛預分頻器。
回復

使用道具 舉報

6#
ID:57657 發表于 2021-12-22 14:16 | 只看該作者
用FPGA可以測幾百Mhz沒有問題
回復

使用道具 舉報

7#
ID:401564 發表于 2021-12-22 15:23 | 只看該作者
npn 發表于 2021-12-22 14:16
用FPGA可以測幾百Mhz沒有問題

FPGA在速度上確實要強大很多,關鍵是:FPGA有多少人會呢?樓主會不會呢?在論壇的這個板塊,大多是新手,關于用FPGA來進行設計的建議,基本等于白說
回復

使用道具 舉報

8#
ID:155507 發表于 2021-12-22 19:25 | 只看該作者
你用16位的計時器,頻率計能做到最高可測頻率 65,535Hz

回復

使用道具 舉報

9#
ID:213173 發表于 2021-12-22 20:55 | 只看該作者
給你提供一個思路,理論上能達10M以上,電路能夠仿真成功,未經實物驗證。


  1. //適用于STC15W408AS-20PIN系列
  2. #include <STC15F2K60S2.H>

  3. unsigned char code dispcode[]={//共陽數碼管段碼"0~f"
  4.                 0xc0,0xf9,0xa4,0xb0,
  5.                 0x99,0x92,0x82,0xf8,
  6.                 0x80,0x90,0x88,0x83,
  7.                 0xc6,0xa1,0x86,0x8e};
  8. unsigned char data temp[6];     //顯示緩存
  9. unsigned char T0count;     //T0的計數器值
  10. bit flag,sign;             //標志位
  11. unsigned long num;         //頻率值
  12. //初始化定時器0
  13. void Timer0Init()        //@24.000MHz
  14. {
  15.         TMOD= 0x05;                //設置外部計數模式
  16.         TL0 = 0x00;                //設置定時初始值
  17.         TH0 = 0x00;                //設置定時初始值
  18.         TF0 = 0;                //清除TF0標志
  19.         TR0 = 1;                //定時器0開始計時
  20.         EA  = 1;                //開總中斷
  21.         ET0 = 1;                //開T0中斷
  22. }
  23. //初始化定時器2,沒有定時器1
  24. void Timer2Init()        //2毫秒@24.000MHz
  25. {
  26.         AUXR |= 0x04;        //定時器時鐘1T模式
  27.         T2L = 0x80;                //設置定時初始值
  28.         T2H = 0x44;                //設置定時初始值
  29.         AUXR |= 0x10;        //定時器2開始計時
  30.         IE2 |=0x04;    //開T2中斷
  31. }
  32. //主函數
  33. void main(void)
  34. {  
  35.         unsigned char i;
  36.         P1M1 = 0x00;                                         //設置P1準雙向
  37.         P1M0 = 0x00;                                         //設置P1準雙向
  38.         P3M1 = 0x00;                                         //設置P3.4準雙向 其余IO口推挽
  39.         P3M0 = 0x10;                                         //設置P3.4準雙向 其余IO口推挽
  40.         P5M1 = 0x00;                                         //設置P5準雙向
  41.         P5M0 = 0x00;                                         //設置P5準雙向
  42.         Timer0Init();
  43.         Timer2Init();
  44.         sign=1;
  45.         while(1)
  46.         {
  47.                 if(flag==1)
  48.                 {
  49.                         flag=0;
  50.                         num=((unsigned long)T0count<<16)|(TH0<<8|TL0);
  51.                         for(i=6;i>0;i--)
  52.                         {
  53.                                 temp[i-1]=num%10;//由低位到高位保存
  54.                                 num/=10;
  55.                         }
  56.                         TH0=0x00;
  57.                         TL0=0x00;
  58.                         T0count=0;
  59.                         TR0=1;        //定時器0開始計數
  60.                         sign=1;        //定時器2開始計時
  61.                 }
  62.         }
  63. }
  64. //定時器T0中斷服務子函數
  65. void t0(void) interrupt 1
  66. {
  67.         T0count++;
  68. }
  69. //定時器T2中斷服務子函數  
  70. void t2(void) interrupt 12
  71. {
  72.         static unsigned char i;   //顯示計數器值
  73.         static unsigned int count;   //計時計數器值
  74.         TL1 = 0x60;                //設置定時初始值
  75.         TH1 = 0xF0;                //設置定時初始值
  76.         if(sign)
  77.         {
  78.                 if(++count>=500)             //秒定時
  79.                 {
  80.                         TR0=0;
  81.                         count=0;
  82.                         sign=0;                                                       
  83.                         flag=1;
  84.                 }
  85.         }
  86.         P3&=0x10;                              //消隱
  87.         if(i==2)P1=dispcode[temp[i]]&0x7f;//加小數點表示KHz
  88.         else P1=P1=dispcode[temp[i]];                 //段碼
  89.         switch(i)                                                            //位碼
  90.         {
  91.                 case 0: P3|=0x01; break;
  92.                 case 1: P3|=0x02; break;
  93.                 case 2: P3|=0x04; break;
  94.                 case 3: P3|=0x08; break;
  95.                 case 4: P3|=0x20; break;
  96.                 case 5: P3|=0x40; break;
  97.         }               
  98.         i=++i%6;
  99. }
復制代碼






回復

使用道具 舉報

10#
ID:883698 發表于 2021-12-22 22:31 | 只看該作者
用普通的89C52RC,晶振11.0592,做過能測出15M左右的頻率
回復

使用道具 舉報

11#
ID:72088 發表于 2021-12-23 12:36 | 只看該作者
188610329 發表于 2021-12-22 11:35
我很疑惑,你不用定時,只計數,如何得出頻率??

有現成的CCP不用,非要用外部中斷, 那這計頻能力不見 ...

我準備用恒溫晶振10M,分頻到0.5HZ,比單片機定時器準確很高。用35M主頻,理論分辨率能做到17M,
又需要用多時間閘門,比如1HZ閘門,100ms閘門,10ms閘門,前級準備用MB506,測到2.4G頻率
回復

使用道具 舉報

12#
ID:72088 發表于 2021-12-23 12:37 | 只看該作者
Y_G_G 發表于 2021-12-22 10:09
不管是什么維修,搞臺二手的示波器,比頻率計實用很多

準備前級用BM506做到2.4G頻率一下測量
回復

使用道具 舉報

13#
ID:72088 發表于 2021-12-23 12:39 | 只看該作者
angmall 發表于 2021-12-22 19:25
你用16位的計時器,頻率計能做到最高可測頻率 65,535Hz

溢出進位啊,溢出一次加1,可以做到3字節,理論256*256*256
回復

使用道具 舉報

14#
ID:955673 發表于 2021-12-23 17:57 | 只看該作者
STC15 IO速度 12.幾,STC8 系列強推拉模式 28 左右,要不要留點余量
回復

使用道具 舉報

15#
ID:401564 發表于 2021-12-23 18:23 | 只看該作者
新鄉家電維修 發表于 2021-12-23 12:37
準備前級用BM506做到2.4G頻率一下測量

好像感覺還不錯的樣子,但好像有點不對
你做好一個頻率計.那不是得找個儀器來校正,如果有校正的儀器,我要頻率計干嘛
如果做好不校正,你怎么知道準不準
我也做過幾年的產線編修,示波器就用得多,頻率計基本用不到
回復

使用道具 舉報

16#
ID:994053 發表于 2021-12-24 13:59 | 只看該作者
找個示波器看一看
回復

使用道具 舉報

17#
ID:72088 發表于 2022-2-10 17:57 | 只看該作者
188610329 發表于 2021-12-22 11:35
我很疑惑,你不用定時,只計數,如何得出頻率??

有現成的CCP不用,非要用外部中斷, 那這計頻能力不見 ...

0.5HZ基準
回復

使用道具 舉報

18#
ID:879809 發表于 2022-2-10 23:43 | 只看該作者
這個問題的答案取決于預分頻器最高工作頻率。
回復

使用道具 舉報

19#
ID:884042 發表于 2022-7-25 00:40 | 只看該作者
我做過一個袖珍的頻率計,只有巴掌大,因此功能也很少,我是直接用單片機連接倍頻分頻電路的,完事后面在用定時器幾時。只能測100khz左右,精確度還不高,后來就丟在角落吃灰了。
回復

使用道具 舉報

20#
ID:879348 發表于 2022-7-25 08:26 | 只看該作者
使用定時器門控測量。可以達到非常高的頻率
回復

使用道具 舉報

21#
ID:883242 發表于 2022-7-25 19:54 | 只看該作者
npn 發表于 2021-12-22 14:16
用FPGA可以測幾百Mhz沒有問題

最高能測到多高的頻率不需要FPGA來解決。某一個寶上面一百出頭的8位計數值頻率計就是用普通單片機,加個MB506預分頻器輕松做到2.4GHz最大頻率。

頻率計中,用FPGA做主控,比單片機優秀之處在于解決門控時間和分辨率的矛盾關系。比如單片機要100s門控時間填滿8位數字,用FPGA可能1s就能完成。單純的用FPGA,想做到單片機頻率計2.4GHz的最高頻率那是絕對不可能的。

你還是了解一下頻率計的原理,或者自己思考下做頻率計需要用什么方法來解決,再來發言為好。
回復

使用道具 舉報

22#
ID:688692 發表于 2022-7-26 09:18 | 只看該作者
小貓電子 發表于 2021-12-22 22:31
用普通的89C52RC,晶振11.0592,做過能測出15M左右的頻率

僅靠單片機本身能做到?
回復

使用道具 舉報

23#
ID:151348 發表于 2022-7-26 16:18 | 只看該作者
單靠單片機自身的話最高測到幾百K吧,12M晶振,12T模式還要12分頻,那實際頻率為1M,處理一條語句要一個機器周期,所以1M的頻率還要縮水。即便是1T模式貌似也不會提高多少
回復

使用道具 舉報

24#
ID:1042872 發表于 2022-8-25 08:37 | 只看該作者
用分頻可以20m
回復

使用道具 舉報

25#
ID:491577 發表于 2022-8-25 09:59 | 只看該作者
35M/4=8.75M以下精度還是有保證的,8.75——17M就算能夠測量誤差也很大,2.4G就不要想了,直接購買成品比較好。
回復

使用道具 舉報

26#
ID:1034262 發表于 2022-8-25 16:26 | 只看該作者
STC15W408單片機頻率計,最高計數為主頻的一半,比如我常用32.768MHz做主頻,則最高計數頻率為16MHz。
回復

使用道具 舉報

27#
ID:78901 發表于 2022-9-16 23:09 | 只看該作者
FPGA在速度上確實要強大很多,關鍵是:FPGA有多少人會呢?樓主會不會呢?在論壇的這個板塊,大多是新手,關于用FPGA來進行設計的建議,基本等于白說,我用89C52加8154無需分頻就做到可以測量100MHz的頻率,還是等精度測量http://www.zg4o1577.cn/bbs/dpj-181928-1.html
回復

使用道具 舉報

28#
ID:1034262 發表于 2022-9-17 21:07 | 只看該作者
STC15W408AS用定時器0能測量的頻率是主頻的一半,我的方法是用一個精確的1秒高電平來做門控,10ms低電平來處理,則可以測量很高精度的頻率,比如我用32MHz做主頻,直接測頻最高16MHz,可以用過NB506分頻則可以測2.4GHz。秒信號使用恒溫晶振和GPS校準(馴服時鐘)。
回復

使用道具 舉報

29#
ID:78901 發表于 2022-9-17 22:34 | 只看該作者
業余條件我是用GPS秒信號來校準頻率計
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文在线观看视频 | 国产一区二区三区日韩 | 综合久| 欧美a级成人淫片免费看 | 黄视频网站免费观看 | 久久久久久久av | 欧美亚洲国产一区二区三区 | 天天澡天天操 | 欧美一区二区在线 | 婷婷桃色网| 天天干人人 | 成人在线播放网站 | 伊人伊人伊人 | 午夜精品一区二区三区在线观看 | 一区二区在线不卡 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 日韩成人免费av | 在线只有精品 | 韩日在线观看视频 | 欧美视频偷拍 | 91人人澡人人爽 | 国产羞羞视频在线观看 | 综合国产第二页 | 欧美精品久久久久 | 欧美激情五月 | 欧美日韩精品一区二区天天拍 | 99精品一区二区三区 | 一区二区三区四区av | 亚洲3级| 久久亚洲天堂 | 美女视频h | 国产精品久久久久久久一区二区 | 成人免费大片黄在线播放 | 欧美日韩视频网站 | 天天天天天操 | 91精品久久久久久久久久入口 | 91精品国产777在线观看 | 自拍在线 | 亚洲自拍偷拍欧美 | 日本午夜在线视频 | 一区二区三区四区在线视频 |