欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)數(shù)字頻率計(jì)仿真設(shè)計(jì)0~9000hz 數(shù)碼管顯示 帶源碼

[復(fù)制鏈接]
ID:140725 發(fā)表于 2017-3-17 23:21 | 顯示全部樓層 |閱讀模式
今天給51黑電子論壇的朋友們分享一個(gè)51單片機(jī)做的數(shù)字頻率計(jì),用數(shù)碼管顯示,有詳細(xì)的程序代碼.
仿真原理圖如下:
0.png


部分單片機(jī)源碼預(yù)覽:
freCountMain.c文件:
  1. /*************************************************************************
  2. *實(shí)例名稱:頻率計(jì)
  3. *實(shí)例說明:實(shí)現(xiàn)0~9000hz頻率計(jì)的統(tǒng)計(jì)
  4. *作者:yd
  5. *時(shí)間:09.06.20
  6. *************************************************************************/
  7. #include "target.h"
  8. #include "led.h"
  9. uchar displayBuff[4]={'0','0','0','0'}; //數(shù)碼管顯示緩沖區(qū),千,百,十,個(gè)
  10. const uchar displayMode=0x00;           //后四位分別對應(yīng)緩沖區(qū)中每位的數(shù)據(jù)類型,1為任意字符顯示,0為數(shù)字顯示
  11. void main()
  12. {
  13.   uint get_fre;
  14.   target_init();
  15.   init_led();
  16.   sei();
  17.   while(1)
  18.   {
  19.     get_fre=get_fre_number();
  20.         if(get_fre/1000<0x0A)
  21.         {
  22.           displayBuff[0]=get_fre/1000+'0';            //計(jì)算頻率千位,放在緩沖區(qū)第0位
  23.         }
  24.         displayBuff[1]=(get_fre/100)%10+'0';          //計(jì)算頻率百位,放在緩沖區(qū)第1位
  25.     displayBuff[2]=(get_fre%100)/10+'0';          //計(jì)算頻率十位,放在緩沖區(qū)第2位
  26.         displayBuff[3]=get_fre%10+'0';                          //計(jì)算頻率個(gè)位,放在緩沖區(qū)第3位
  27.     ledSweepDisplay(displayBuff,displayMode,0x04);//循環(huán)顯示數(shù)碼管緩沖區(qū)中數(shù)據(jù)
  28.   }

  29. }
復(fù)制代碼

led.c文件:
  1. #define LED_GLOBAL 1
  2. #include "led.h"
  3. /*******************************************************************************************
  4. *函數(shù)名稱:delay_us(uint us)
  5. *函數(shù)功能:實(shí)現(xiàn)微秒級的延時(shí)
  6. *函數(shù)入口:us,延時(shí)函數(shù)循環(huán)后期數(shù)
  7. *函數(shù)出口:無
  8. *******************************************************************************************/
  9. void delay_us(uint us)
  10. {
  11.   uint i;
  12.   while(us--)
  13.   {
  14.     for(i=0;i<100;i++);
  15.   }
  16. }
  17. /*******************************************************************************************
  18. *函數(shù)名稱:led_init(void)
  19. *函數(shù)功能:四位七段數(shù)碼管顯示初始化
  20. *函數(shù)入口:無
  21. *函數(shù)出口:無
  22. *******************************************************************************************/
  23. void init_led(void)
  24. {
  25.    LED=segLedCode[0];
  26.    LED_CS1=0;
  27.    LED_CS2=0;
  28.    LED_CS3=0;
  29.    LED_CS4=0;
  30. }
  31. /*******************************************************************************************
  32. *函數(shù)名稱:ledWrite(uchar c,uchar n,uchar mod)
  33. *函數(shù)功能:對一組數(shù)碼管的某一位進(jìn)行短暫顯示
  34. *函數(shù)入口:c,要顯示的數(shù)據(jù);n,顯示一組數(shù)碼管中的第n位;mod,c的數(shù)據(jù)形式
  35. *函數(shù)出口:無
  36. *說明:當(dāng)mod==DIGITAL時(shí),c為數(shù)字0~9的ANCII碼形式,此時(shí)在n位數(shù)碼管上顯示想用數(shù)字
  37.        當(dāng)mod==CHARACTER,直接將c輸出數(shù)據(jù)口
  38. *******************************************************************************************/
  39. void ledWrite(uchar c,uchar n,uchar mod)
  40. {
  41.    if(CHARACTER==mod)
  42.    {
  43.           LED=c;  
  44.    }
  45.    else if(DIGITAL==mod)
  46.            {
  47.               if((c-'0')<0x0a)
  48.                   {
  49.                     LED=segLedCode[c-'0'];
  50.                   }
  51.                   else
  52.                   {  
  53.                         LED=segLedCode[0];
  54.                   }
  55.            }
  56.    switch(n)
  57.    {
  58.                 case 0x01:
  59.                 {
  60.                   LED_CS1=0;
  61.                   delay_us(10);
  62.                   LED_CS1=1;
  63.                   break;
  64.                 }
  65.                 case 0x02:
  66.                 {
  67.                   LED_CS2=0;
  68.                   delay_us(10);
  69.                   LED_CS2=1;
  70.                   break;
  71.                 }
  72.                 case 0x03:
  73.                 {
  74.                   LED_CS3=0;
  75.                   delay_us(10);
  76.                   LED_CS3=1;
  77.                   break;
  78.                 }
  79.             case 0x04:
  80.                 {
  81.                   LED_CS4=0;
  82.                   delay_us(10);
  83.                   LED_CS4=1;
  84.                   break;
  85.                 }
  86.                 default:
  87.                   break;

  88.    }

  89. }
  90. /*******************************************************************************************
  91. *函數(shù)名稱:ledSweepDisplay(uchar *segCode,uchar segCodeMod,uchar segNumber)
  92. *函數(shù)功能:循環(huán)在數(shù)碼管上顯示緩沖區(qū)中的數(shù)據(jù)
  93. *函數(shù)入口:segCode,指向顯示緩沖區(qū)中的指針;segCodeMod,0~7位為1或0標(biāo)示1~8位數(shù)碼管顯示的數(shù)據(jù)的類型(DIGITAL或者CHARACTER);segNumber,代表要顯示數(shù)碼管的位數(shù)
  94. *函數(shù)出口:無
  95. *說明:本函數(shù)主要實(shí)現(xiàn)將顯示緩沖區(qū)中的數(shù)據(jù)在數(shù)碼管上顯示出來
  96. *******************************************************************************************/                     
  97. void ledSweepDisplay(uchar *segCode,uchar segCodeMod,uchar segNumber)
  98. {
  99.            uchar segCount;
  100.         for(segCount=0;segCount<segNumber;segCount++)
  101.         {
  102.            if(segCodeMod&0x01)           /*1代表此處顯示任意字符 */
  103.            {
  104.              ledWrite(segCode[segCount],segCount+1,CHARACTER);
  105.            }
  106.            else
  107.            {
  108.              ledWrite(segCode[segCount],segCount+1,DIGITAL);
  109.            }
  110.            segCodeMod=segCodeMod>>1;
  111.         }
  112. }
復(fù)制代碼

0.png 0.png

全部資料下載(含仿真工程文件和完整代碼而且經(jīng)過51hei.com測試通過):
數(shù)字頻率計(jì).rar (20.4 KB, 下載次數(shù): 98)

回復(fù)

使用道具 舉報(bào)

ID:487698 發(fā)表于 2020-5-29 17:28 來自觸屏版 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:764636 發(fā)表于 2020-5-29 21:37 來自觸屏版 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:764492 發(fā)表于 2020-5-29 21:42 | 顯示全部樓層
看暈了 ,天書一樣
回復(fù)

使用道具 舉報(bào)

ID:868397 發(fā)表于 2020-12-29 21:47 | 顯示全部樓層
優(yōu)秀,我的設(shè)計(jì)跟這個(gè)也有關(guān)
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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