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

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

QQ登錄

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

搜索
查看: 2968|回復(fù): 0
收起左側(cè)

51單片機(jī)實(shí)線0~5000hz的頻率計(jì)Proteus仿真程序

[復(fù)制鏈接]
ID:422662 發(fā)表于 2019-11-13 14:15 | 顯示全部樓層 |閱讀模式
這個(gè)是本桂電學(xué)長(zhǎng)的一個(gè)項(xiàng)目,分享給大家
項(xiàng)目地址https://github.com/lstwwa/universit

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

這個(gè)是圖

這個(gè)是圖

51hei.png
單片機(jī)源程序如下:
  1. /*************************************************************************
  2. *名稱(chēng):頻率計(jì)
  3. *說(shuō)明:實(shí)現(xiàn)0~5000hz頻率計(jì)的統(tǒng)計(jì)
  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'}; //數(shù)碼管顯示緩沖區(qū),千,百,十,個(gè)
  16. const uchar displayMode=0x00;           //后四位分別對(duì)應(yīng)緩沖區(qū)中每位的數(shù)據(jù)類(lèi)型,1為任意字符顯示,0為數(shù)字顯示
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  31.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  32.   displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  33.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  34.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  44.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  45.   displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  46.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  47.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  56.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  57.   displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  58.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  59.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  69.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  70.   displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  71.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  72.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  82.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  83.   displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  84.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  85.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  95.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  96.   displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  97.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  98.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  108.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  109.   displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  110.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  111.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  121.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  122.   displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  123.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  124.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  134.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  135.   displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  136.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  137.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  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';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  149.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  150.   displayBuff[2]=(get_fre%100)/10+'0';         //計(jì)算頻率十位,放在緩沖區(qū)第2位
  151.         displayBuff[3]=get_fre%10+'0';                  //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  152.   ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  153.         ledunwork=1;
  154.         ledwork=0;
  155.         bee=0;
  156.         }
  157.         


  158.         }        

  159. }
復(fù)制代碼
51hei.png
51hei.png
仿真工程有2個(gè)錯(cuò)誤:
基于89c51的頻率計(jì).zip (301.96 KB, 下載次數(shù): 31)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久久久 | 亚洲三区在线观看 | 久久鲁视频| 日韩免费av | 国产美女精品视频免费观看 | 国产欧美日韩综合精品一区二区 | 日韩成人在线观看 | 国产精品久久久久久久久久三级 | 牛牛热在线视频 | 精品久| 亚洲国产精品一区二区第一页 | 91视频在线| 一区二区三区中文字幕 | 日本精品久久久久久久 | 日韩欧美国产一区二区 | 国产ts人妖系列高潮 | 秋霞a级毛片在线看 | 国产成人精品视频在线观看 | 国产精品综合视频 | 国产欧美精品一区二区三区 | 国产福利在线视频 | 一本岛道一二三不卡区 | 青青久草| 麻豆精品久久久 | 国产精品区二区三区日本 | 精品一区免费 | 性一交一乱一透一a级 | 久久成人一区二区三区 | 国产精品久久久久久妇女6080 | 精国产品一区二区三区 | 久久综合久久久 | 国产精品视频网址 | 国产精品一区二区三区99 | 粉嫩粉嫩芽的虎白女18在线视频 | 亚洲精品在线看 | 欧美一级大片免费看 | 美国十次成人欧美色导视频 | 欧美一级欧美一级在线播放 | 欧美在线视频一区二区 | 欧美精品在线一区 | 国产精品一区二区三区久久 |