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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

簡易頻率計+AD原理圖+單片機代碼

[復制鏈接]
跳轉到指定樓層
#
單片機簡易頻率計原理圖如下:



----------------------------------------------------------------------------------------------------
第一部分:文件夾命名規則
----------------------------------------------------------------------------------------------------
APP        應用程序文件夾
BRD        板載設備驅動與使用文件夾
CPU        微控制器相關文件夾
CPU-CFF    微控制器內存等配置文件夾
CPU-STP    微控制器啟動代碼文件夾
ELS        其他代碼文件夾
FUC        通用自定義代碼文件夾
GEN        通用標準代碼文件夾
PRJ        工程文件夾
PRJ-EXE    IAR工程輸出可執行文件文件夾
PRJ-OBJ    工程輸出文件文件夾
PRJ-LST    工程輸出鏈表文件夾
SYS        操作系統文件夾

51單片機源程序
  1. //==================================================================================================
  2. //  工程功能:
  3. //  工程等級:工程級/驅動級
  4. //  工程硬件:STC89C52RC
  5. //  工程軟件:Keil C51 uVision4
  6. //  工程作者:智心科技(ZhiXinKeJi)(http://bengbucollege.taobao.com/)
  7. //  工程創建:2014-10-31
  8. //  工程版次:1
  9. //  工程修改:2014-10-31
  10. //  修改內容:
  11. //==================================================================================================

  12. //==============================包含的頭文件========================================================
  13. #include"MAIN.H"                            // 包含全局頭文件,

  14. //==============================定義全局變量========================================================
  15. unsigned long Freq_CUNT;

  16. //==================================================================================================
  17. //  實現功能:主函數
  18. //  函數說明:
  19. //  函數備注:
  20. //==================================================================================================
  21. void main(void)
  22. {
  23.         TIME_Cnfg();                // 配置 定時器(TIME)
  24.         SEGx4_Init();                // 初始化 SEGx4

  25.         while(1)
  26.         {        
  27.                 if(Freq_CUNT<=10000)                        
  28.                 {
  29.                         SEGx4_ShowNumbx4(Freq_CUNT);                // 1Hz單位
  30.                         LEDx2_Sets(LEDc1,LEDs0);                        // 黃燈亮
  31.                         LEDx2_Sets(LEDc2,LEDs1);                        // 綠燈滅
  32.                 }
  33.                 else if(Freq_CUNT<=400000)
  34.                 {
  35.                         SEGx4_ShowNumbx4(Freq_CUNT/1000);        // 1KHz單位
  36.                         LEDx2_Sets(LEDc1,LEDs1);                        // 黃燈滅
  37.                         LEDx2_Sets(LEDc2,LEDs0);                        // 綠燈亮
  38.                         DELAY_nMS(1000);
  39.                 }
  40.                 else
  41.                 {
  42.                         SEGx4_ShowStrg("----");                                //
  43.                         LEDx2_Sets(LEDc1,LEDs1);                        // 黃燈滅
  44.                         LEDx2_Sets(LEDc2,LEDs1);                        // 綠燈滅
  45.                 }
  46.         }
  47. }
復制代碼
  1. /*================================================================================================*/
  2. /*  文件功能:SEGx4-四位數碼管                                                                    */
  3. /*  文件說明:端口直接連接方式                                                                    */
  4. /*  硬件平臺:STC89C52RC                                                                          */
  5. /*  軟件平臺:Keil uVision4-C51 V9.0                                                              */
  6. /*================================================================================================*/

  7. //==============================包含的頭文件========================================================
  8. #include"MAIN.H"                            // 包含全局頭文件,
  9. #include"SEGx4.H"                           // 包含外設頭文件,SEGx4-四位數碼管
  10. #include"SEGx4_FONT.H"                      // 包含外設頭文件,SEGx4-四位數碼管/字庫文件


  11. //==============================硬件端口定義========================================================
  12. #define SEGx4_DATAPORT P0                   // 定義 SEGx4 段碼 8位端口
  13. sbit SEGx4_BIT0=P2^4;                       // 定義 SEGx4 位碼 0號端口
  14. sbit SEGx4_BIT1=P2^5;                       // 定義 SEGx4 位碼 1號端口
  15. sbit SEGx4_BIT2=P2^6;                       // 定義 SEGx4 位碼 2號端口
  16. sbit SEGx4_BIT3=P2^7;                       // 定義 SEGx4 位碼 3號端口


  17. //==============================宏自定義聲明========================================================
  18. //  SEGx4 位數
  19. #define SEGx4_UNIT              4           // 數據引腳,數據端口使用的數量。


  20. //==============================定義引用變量========================================================
  21. unsigned char SEGx4_ShowData[SEGx4_UNIT];   // 定義字符數組,存放待顯示字符編碼



  22. //==================================================================================================
  23. //  函數功能:SEGx4 初始化
  24. //  函數標記:應用函數,完成,
  25. //  函數說明:   
  26. //--------------------------------------------------------------------------------------------------
  27. //  輸入參量:無
  28. //  輸出參量:無
  29. //==================================================================================================
  30. void SEGx4_Init(void)
  31. {        

  32. }

  33. //==================================================================================================
  34. //  函數功能:SEGx4 顯示字符串
  35. //  函數標記:應用函數,完成,
  36. //  函數說明:   
  37. //--------------------------------------------------------------------------------------------------
  38. //  輸入參量:_STRG:待顯示的字符串;
  39. //  輸出參量:無
  40. //==================================================================================================
  41. void SEGx4_ShowStrg(unsigned char *_STRG)
  42. {
  43.         unsigned char i=0;        //定義局部變量,一定賦予初始值為0
  44.         unsigned char j;                //定義局部變量,用于循環
  45.         while(*_STRG)
  46.         {
  47.                 for(j=0;j<32;j++)                                                        //循環32次,查詢數碼管字模位置
  48.                 {
  49.                         if(SEGx4_CODE[j].CHAR==*_STRG)        //判斷第k個字符的編碼是否與輸入字符相等
  50.                         {
  51.                                 SEGx4_ShowData[i]=SEGx4_CODE[j].CODE;        
  52.                                 i++;
  53.                                 break;
  54.                         }
  55.                 }
  56.                 _STRG++;
  57.         }        
  58. }

  59. //==================================================================================================
  60. //  函數功能:SEGx4 顯示 4位整型數字
  61. //  函數標記:應用函數,完成,
  62. //  函數說明:   
  63. //--------------------------------------------------------------------------------------------------
  64. //  輸入參量:_STRG:待顯示的字符串;
  65. //  輸出參量:無
  66. //==================================================================================================
  67. void SEGx4_ShowNumbx4(unsigned int _NUMB)
  68. {
  69.         unsigned char i,j;                                //定義局部變量,用于循環計數
  70.         unsigned char Numb_Arry[4];        //定義局部數組,用于存儲變量

  71.         Numb_Arry[0]=_NUMB/1000 %10+0x30;
  72.         Numb_Arry[1]=_NUMB/100  %10+0x30;
  73.         Numb_Arry[2]=_NUMB/10   %10+0x30;
  74.         Numb_Arry[3]=_NUMB/1    %10+0x30;

  75.         for(i=0;i<4;i++)
  76.         {
  77.                 for(j=0;j<32;j++)                                                                        //循環32次,查詢數碼管字模位置
  78.                 {
  79.                         if(SEGx4_CODE[j].CHAR==Numb_Arry[i])        //判斷第k個字符的編碼是否與輸入字符相等
  80.                         {
  81.                                 SEGx4_ShowData[i]=SEGx4_CODE[j].CODE;
  82.                                 break;        
  83.                         }
  84.                 }
  85.         }
  86. }

  87. //==================================================================================================
  88. //  函數功能:SEGx4 T2 中斷服務函數
  89. //  函數標記:中斷函數,完成,
  90. //  函數說明:   
  91. //--------------------------------------------------------------------------------------------------
  92. //  輸入參量:無
  93. //  輸出參量:無
  94. //==================================================================================================
  95. void SEGx4_IRQHandler(void)
  96. {
  97.         static unsigned char SEGx4_BITS=0;                // 定義全局變量,用于循環數碼管位數         
  98.         SEGx4_BIT0=1;
  99.         SEGx4_BIT1=1;
  100.         SEGx4_BIT2=1;
  101.         SEGx4_BIT3=1;
  102.         //----------------------------------------------------------------------------------------------
  103.         // 段碼
  104.         //----------------------------------------------------------------------------------------------        
  105.         SEGx4_DATAPORT=SEGx4_ShowData[SEGx4_BITS];        

  106.         //----------------------------------------------------------------------------------------------
  107.         // 位碼
  108.         //----------------------------------------------------------------------------------------------
  109.         switch(SEGx4_BITS)                                       
  110.         {
  111.                 case 0:SEGx4_BIT0=0;SEGx4_BIT1=1;SEGx4_BIT2=1;SEGx4_BIT3=1;break;
  112.                 case 1:SEGx4_BIT0=1;SEGx4_BIT1=0;SEGx4_BIT2=1;SEGx4_BIT3=1;break;
  113.                 case 2:SEGx4_BIT0=1;SEGx4_BIT1=1;SEGx4_BIT2=0;SEGx4_BIT3=1;break;
  114.                 case 3:SEGx4_BIT0=1;SEGx4_BIT1=1;SEGx4_BIT2=1;SEGx4_BIT3=0;break;
  115.                 default:break;
  116.         }

  117.         //----------------------------------------------------------------------------------------------
  118.         // 循環移位
  119.         //----------------------------------------------------------------------------------------------
  120.         SEGx4_BITS++;
  121.         if(SEGx4_BITS>5)
  122.         {

  123. …………限于本文篇幅 余下代碼請從51黑下載附件…………

復制代碼

下載:
簡易頻率計-第01A版.zip (451.63 KB, 下載次數: 45)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区国产在线观看 | 毛片视频免费观看 | 精品国偷自产在线 | 91视视频在线观看入口直接观看 | 午夜视频在线免费观看 | 日韩字幕一区 | 午夜在线精品 | 亚洲欧美一区二区三区国产精品 | 久久久夜夜夜 | 一区二区三区免费 | 国产精品久久久久久久久久久久 | 日韩在线观看一区二区三区 | 伊人色综合久久久天天蜜桃 | 欧美二区乱c黑人 | 国产精品一区二区久久 | 亚洲视频在线看 | 亚洲男人天堂 | 99国产精品99久久久久久 | 狠狠av | 亚洲综合视频 | 日韩欧美中文字幕在线观看 | 在线免费中文字幕 | 久久久久国产精品人 | 欧美日韩一区二区三区四区 | 日韩插插| 国产一级在线观看 | 久久久久久国产精品免费免费狐狸 | 特黄视频| 不用播放器看的av | 99精品一区二区 | 久草在线青青草 | 国产情侣在线看 | 国产精品视频免费看 | 国产午夜精品久久久 | 成人av电影在线观看 | 天天操天天拍 | 欧美一区二区三区一在线观看 | 福利电影在线 | 精品国产视频 | 久色视频在线 | av看片网站 |