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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

發一個3位小數的單片機頻率計程序備忘

[復制鏈接]
跳轉到指定樓層
樓主
利用外中斷記錄脈沖數,利用T0記錄秒數,f=總脈沖數/總秒數,每10秒更新一次,1000秒后可以精確到3位小數,用于檢測32768Hz晶振。
根據檢測結果,在晶振電路中可串并合適的電容微調頻率,提高走時精度。

單片機源程序如下:
  1. //利用外中斷記錄脈沖數,利用T0記錄秒數,f=總脈沖數/總秒數
  2. //每10秒更新一次,1000秒后可以精確到3位小數,用于檢測32768Hz晶振
  3. #define MAIN_Fosc                11059200L        //定義主時鐘
  4. #include<reg52.h>
  5. //#include        "STC90.H"
  6. #include        "INTRINS.H"
  7. #include  "Delayms.h"
  8. #include  "lcd1602.h"
  9. #define uchar unsigned char
  10. #define uint unsigned int

  11. sbit COUNT_IN=P3^2;

  12. unsigned long count=0,pul;
  13. unsigned long  f=0,t10s=0;
  14. unsigned int ms50=0;
  15. //bit flag;

  16. void init()
  17. {
  18.    IT0=1;        //INT0負跳變觸發        
  19.    TMOD &= 0xF0;    //清定時器0
  20.    TMOD |= 0x01;    //定時器0:16位定時器
  21.    TH0=0x4c;          //11.0592Mhz50ms
  22.    TL0=0x00;
  23.    ET0=1;//開定時中斷
  24.    EX0=1;//開外部INTO中斷
  25.    TR0=1;//啟動定時
  26. //   EA=1; //CPU開中斷總允許
  27. }
  28. void EXINT0() interrupt 0
  29. {
  30.   count++;         //脈沖數累加
  31. }

  32. void time0() interrupt 1
  33. {
  34.   TH0=0x4c;
  35.   TL0=0x00;         //50ms11.0592Mhz
  36.   ms50=ms50+1;          //累計50毫秒數
  37.   if (ms50>=200) //設定10秒刷新時間,200*50ms=10s
  38.    {
  39.     t10s++;      //10秒累加
  40.     ms50=0;
  41.     pul=count;
  42. //    flag=1;         //10秒時間到標志
  43.    }
  44. }

  45. void display_1602_plj(void)
  46. {
  47. DisplayOneChar(0,0,'P');//標題
  48. DisplayOneChar(1,0,'i');
  49. DisplayOneChar(2,0,'n');
  50. DisplayOneChar(3,0,'L');
  51. DisplayOneChar(4,0,'v');
  52. DisplayOneChar(5,0,'J');
  53. DisplayOneChar(6,0,'i');
  54. //DisplayOneChar(7,0,' ');
  55. DisplayOneChar(8,0,'t');   //累計秒數
  56. DisplayOneChar(9,0,':');
  57. if(t10s>=1000)
  58. {DisplayOneChar(11,0,t10s%10000/1000+48);}
  59. if(t10s>=100)
  60. {DisplayOneChar(11,0,t10s%1000/100+48);}
  61. if(t10s>=10)
  62. {DisplayOneChar(12,0,t10s%100/10+48);}
  63. if(t10s>=1)
  64. {DisplayOneChar(13,0,t10s%10+48);}
  65. DisplayOneChar(14,0,'0');
  66. DisplayOneChar(15,0,'S');

  67. if(f>=100000000)            //頻率
  68. {DisplayOneChar(0,1,f%1000000000/100000000+48);}
  69. if(f>=10000000)
  70. {DisplayOneChar(1,1,f%100000000/10000000+48);}
  71. if(f>=1000000)
  72. {DisplayOneChar(2,1,f%10000000/1000000+48);}
  73. if(f>=100000)
  74. {DisplayOneChar(3,1,f%1000000/100000+48);}
  75. if(f>=10000)
  76. {DisplayOneChar(4,1,f%100000/10000+48);}
  77. DisplayOneChar(5,1,f%10000/1000+48);
  78. DisplayOneChar(6,1,'.');
  79. DisplayOneChar(7,1,f%1000/100+48);
  80. DisplayOneChar(8,1,f%100/10+48);
  81. DisplayOneChar(9,1,f%10+48);
  82. DisplayOneChar(10,1,'H');
  83. DisplayOneChar(11,1,'z');
  84. }

  85. void main()
  86. {
  87.   Delayms(255);                           //上電延時               
  88.   Delayms(255);                           //上電延時               
  89.   Delayms(255);                           //上電延時               
  90.   Delayms(255);                           //上電延時               
  91.   init();
  92.   Delayms(50);                           //上電延時               
  93.   InitLcd();                     //液晶初始化
  94.   display_1602_plj();
  95.   EA=1; //CPU開中斷總允許
  96. while(1)
  97.   {
  98.       if (t10s>=1)  //10秒取樣時間到
  99.       {
  100.        f=pul*100/t10s;          //頻率=脈沖個數/時間,3位小數
  101.        display_1602_plj();
  102.       }
  103.   }
  104. }
復制代碼


附件內只包含Keil代碼下載:
89c52 lcd1602頻率計3位小數.rar (48.68 KB, 下載次數: 11)


評分

參與人數 1黑幣 +40 收起 理由
admin + 40 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区高清不卡 | 久久久久久国产精品 | 在线观看中文字幕dvd播放 | 国产婷婷色一区二区三区 | 国产成人精品久久二区二区91 | 福利视频网 | 日日噜噜噜夜夜爽爽狠狠视频97 | 精品毛片 | av一区二区三区 | 亚洲国产二区 | 中文字幕免费视频 | 日日av | 奇米av | 九九视频在线观看 | 午夜成人免费视频 | 中文字幕在线观看一区 | 精品亚洲一区二区 | 九九热精品视频在线观看 | 天天插天天操 | 免费成人在线网站 | 国产精品福利在线观看 | 黄色a三级 | 欧美精品影院 | 精品九九| 精品婷婷 | 亚洲第一网站 | 在线观看日本网站 | 欧美性猛交一区二区三区精品 | 一本一道久久a久久精品综合蜜臀 | 欧美一级黄色片免费观看 | av毛片在线免费观看 | 国产 欧美 日韩 一区 | 日韩精品一区二区三区中文字幕 | 日韩精品一区二区三区中文字幕 | 91精品一区二区三区久久久久久 | 国产一卡二卡三卡 | 亚洲最大看片网站 | 成人在线免费电影 | 日本精品久久久久 | 国产高清视频在线 | 欧美精品一区二区在线观看 |