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

標題: 簡易頻率計+AD原理圖+單片機代碼 [打印本頁]

作者: shaoye    時間: 2017-5-4 12:12
標題: 簡易頻率計+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)






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲国产成人在线视频 | 国产成人免费视频网站视频社区 | 91偷拍精品一区二区三区 | 国产日韩欧美 | 久久人爽| 久久久久久国产精品 | 午夜免费av | 成人福利片 | 极品国产视频 | 亚洲美女视频 | 在线观看国产视频 | 国产在线视频一区二区 | 久久免费国产视频 | 精品国产欧美一区二区 | 亚洲国产视频一区二区 | 国产精品96久久久久久 | 美女张开腿露出尿口 | 中文字幕国产视频 | 亚洲福利在线观看 | 久久人人爽人人爽人人片av免费 | 国产国产精品久久久久 | 国产一区2区 | 国产午夜精品一区二区三区四区 | 国内自拍偷拍 | 欧美不卡 | 免费a在线 | 北条麻妃99精品青青久久 | 精品久久视频 | 免费一区在线 | 特级毛片| 国产精品久久久久久二区 | 999热精品视频 | 国产福利视频在线观看 | 国产精品久久久久久久久久 | 久久精品久久精品久久精品 | 日韩av视屏| 国内自拍视频在线观看 | 成人免费看片又大又黄 | 91精品国产综合久久香蕉922 | www.中文字幕.com| 国产精品99久久久久 |