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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機實線0~5000hz的頻率計Proteus仿真程序

[復制鏈接]
跳轉到指定樓層
樓主
這個是本桂電學長的一個項目,分享給大家
項目地址https://github.com/lstwwa/universit

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


單片機源程序如下:
  1. /*************************************************************************
  2. *名稱:頻率計
  3. *說明:實現0~5000hz頻率計的統計
  4. *主程序
  5. *************************************************************************/
  6. #include "target.h"
  7. #include "led.h"
  8. //#define delay_time 25000
  9. sbit bee=P2^1;
  10. sbit ledunwork=P2^3;
  11. sbit ledwork=P2^2;
  12. void INIT(void)
  13. {

  14. }
  15. uchar displayBuff[4]={'0','0','0','0'}; //數碼管顯示緩沖區,千,百,十,個
  16. const uchar displayMode=0x00;           //后四位分別對應緩沖區中每位的數據類型,1為任意字符顯示,0為數字顯示
  17. void main()
  18. {
  19.   uint get_fre;
  20.   target_init();
  21.   init_led();
  22.   sei();
  23.   while(1)
  24.   {
  25.     get_fre=get_fre_number();
  26.                
  27.         if(get_fre/1000<0x01)                                                                                    //0-1000
  28.         {
  29.         get_fre=get_fre;
  30.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  31.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  32.   displayBuff[2]=(get_fre%100)/10+'0';          //計算頻率十位,放在緩沖區第2位
  33.         displayBuff[3]=get_fre%10+'0';                          //計算頻率個位,放在緩沖區第3位
  34.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  35.         ledunwork=1;
  36.         ledwork=0;
  37.         bee=1;
  38.   }
  39.         
  40.         if(get_fre/1000>=0x01&&get_fre/1000<0x02)                                                                                 //1000-2000
  41.         {
  42.                 get_fre=get_fre-85;
  43.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  44.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  45.   displayBuff[2]=(get_fre%100)/10+'0';          //計算頻率十位,放在緩沖區第2位
  46.         displayBuff[3]=get_fre%10+'0';                          //計算頻率個位,放在緩沖區第3位
  47.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  48.         ledunwork=1;
  49.         ledwork=0;
  50.         bee=1;
  51.   }

  52.         if(get_fre/1000>=0x02&&get_fre/1000<0x03)                                                               // 2000-3000
  53.         {
  54.                 get_fre=get_fre-170;
  55.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  56.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  57.   displayBuff[2]=(get_fre%100)/10+'0';          //計算頻率十位,放在緩沖區第2位
  58.         displayBuff[3]=get_fre%10+'0';                          //計算頻率個位,放在緩沖區第3位
  59.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  60.         ledwork=0;
  61.         ledunwork=1;
  62.         bee=0;
  63.         }
  64.         
  65.         if(get_fre/1000>=0x03&&get_fre/1000<0x04)                                                               // 3000-4000
  66.         {
  67.                 get_fre=get_fre-255;
  68.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  69.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  70.   displayBuff[2]=(get_fre%100)/10+'0';          //計算頻率十位,放在緩沖區第2位
  71.         displayBuff[3]=get_fre%10+'0';                          //計算頻率個位,放在緩沖區第3位
  72.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  73.         ledwork=0;
  74.         ledunwork=1;
  75.         bee=0;
  76.         }
  77.         
  78.                 if(get_fre/1000>=0x04&&get_fre/1000<0x05)                                                               // 4000-5000
  79.         {
  80.                 get_fre=get_fre-340;
  81.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  82.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  83.   displayBuff[2]=(get_fre%100)/10+'0';          //計算頻率十位,放在緩沖區第2位
  84.         displayBuff[3]=get_fre%10+'0';                          //計算頻率個位,放在緩沖區第3位
  85.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  86.         ledwork=0;
  87.         ledunwork=1;
  88.         bee=0;
  89.         }
  90.         
  91.                 if(get_fre/1000>=0x05&&get_fre/1000<0x06)                                                               // 5000-6000
  92.         {
  93.                 get_fre=get_fre-425;
  94.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  95.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  96.   displayBuff[2]=(get_fre%100)/10+'0';          //計算頻率十位,放在緩沖區第2位
  97.         displayBuff[3]=get_fre%10+'0';                          //計算頻率個位,放在緩沖區第3位
  98.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  99.         ledwork=1;
  100.         ledunwork=0;
  101.         bee=0;
  102.         }
  103.         
  104.                 if(get_fre/1000>=0x06&&get_fre/1000<0x07)                                                               // 6000-7000
  105.         {
  106.                 get_fre=get_fre-510;
  107.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  108.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  109.   displayBuff[2]=(get_fre%100)/10+'0';          //計算頻率十位,放在緩沖區第2位
  110.         displayBuff[3]=get_fre%10+'0';                          //計算頻率個位,放在緩沖區第3位
  111.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  112.         ledwork=1;
  113.         ledunwork=0;
  114.         bee=0;
  115.         }
  116.         
  117.                 if(get_fre/1000>=0x07&&get_fre/1000<0x08)                                                               // 7000-8000
  118.         {
  119.                 get_fre=get_fre-595;
  120.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  121.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  122.   displayBuff[2]=(get_fre%100)/10+'0';          //計算頻率十位,放在緩沖區第2位
  123.         displayBuff[3]=get_fre%10+'0';                          //計算頻率個位,放在緩沖區第3位
  124.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  125.         ledwork=1;
  126.         ledunwork=0;
  127.         bee=0;
  128.         }
  129.         
  130.                 if(get_fre/1000>=0x08&&get_fre/1000<0x09)                                                               // 8000-9000
  131.         {
  132.                 get_fre=get_fre-680;
  133.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  134.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  135.   displayBuff[2]=(get_fre%100)/10+'0';          //計算頻率十位,放在緩沖區第2位
  136.         displayBuff[3]=get_fre%10+'0';                          //計算頻率個位,放在緩沖區第3位
  137.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  138.         ledwork=1;
  139.         ledunwork=0;
  140.         bee=0;
  141.         }
  142.         
  143.         
  144.         
  145.         if(get_fre/1000>=0x09)                                                                                  //>9000
  146.         {
  147.         get_fre=get_fre-765;
  148.         displayBuff[0]=get_fre/1000+'0';            //計算頻率千位,放在緩沖區第0位
  149.         displayBuff[1]=(get_fre/100)%10+'0';          //計算頻率百位,放在緩沖區第1位
  150.   displayBuff[2]=(get_fre%100)/10+'0';         //計算頻率十位,放在緩沖區第2位
  151.         displayBuff[3]=get_fre%10+'0';                  //計算頻率個位,放在緩沖區第3位
  152.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環顯示數碼管緩沖區中數據
  153.         ledunwork=1;
  154.         ledwork=0;
  155.         bee=0;
  156.         }
  157.         


  158.         }        

  159. }
復制代碼


仿真工程有2個錯誤:
基于89c51的頻率計.zip (301.96 KB, 下載次數: 31)


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品在线播放 | 81精品国产乱码久久久久久 | 国产高清一区二区三区 | 亚洲成人一区二区 | 成人免费大片黄在线播放 | 国产在线拍偷自揄拍视频 | 国产三级日本三级 | 热99在线 | 国产一区二区免费 | 久久久精品网站 | www.887色视频免费 | 日韩精品在线观看一区二区三区 | 97色伦网 | 91在线导航 | 久久久男人的天堂 | 日本在线中文 | 一区二区三区 在线 | 国产精品无码久久久久 | 日韩电影一区 | 精品一区二区三区免费毛片 | 黄色在线免费观看视频 | 欧美日韩1区2区3区 欧美久久一区 | 亚洲自拍一区在线观看 | 欧美精品一区在线 | 毛片免费看 | 久久久综合久久 | 欧美一区二区三区大片 | a免费视频| 国产精品久久久久aaaa樱花 | 精品日韩在线 | 精品国产aⅴ | 日韩免费网站 | 在线观看成人精品 | 一区二区三区四区不卡 | 国产一区二区三区视频 | 狠狠的干狠狠的操 | 91视频.com| 一区二区三区视频在线 | 国产亚洲第一页 | 午夜国产一区 | 日韩a视频|