⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 freqtest.lst

📁 用51单片机做的数字频率计
💻 LST
字号:
C51 COMPILER V7.01  FREQTEST                                                               12/16/2008 10:47:50 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE FREQTEST
OBJECT MODULE PLACED IN FreqTest.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE FreqTest.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <REG51.h>
   2          #include <1602_Drive.h>
   3          
   4          /******************************************************************
   5          *       定义接口:                                                                                                        *
   6          *       液晶显示器的接口“1602_Drive.h”库函数中已经定义                          *
   7          *       定义待测方波频率的接口:                                                                          *
   8          *                                                                                                                                 *
   9          ******************************************************************/
  10          sbit FreqIN=P3^2;
  11          
  12          //==================================================================
  13          //定义中间变量
  14          unsigned int tmp;
  15          float  cnttime;
  16          unsigned char outcnt[8];
  17          //==================================================================
  18          //将测量的整数装换为标准有效的字符串
  19          void NumToChar(void)                    
  20          {       unsigned char i;
  21   1              outcnt[0]=tmp/10000+48;tmp%=10000;
  22   1              outcnt[1]=tmp/1000+48;tmp%=1000;
  23   1              outcnt[2]=tmp/100+48;tmp%=100;
  24   1              outcnt[3]=tmp/10+48;tmp%=10;
  25   1              outcnt[4]=tmp+48;
  26   1              outcnt[5]='H';
  27   1              outcnt[6]='z';
  28   1              outcnt[7]='\0'; 
  29   1              for(i=0;i<4;i++)                                //将字符中数字的最高有效位之前的'0'清空为‘ ’。
  30   1              {       if(outcnt[i]=='0')outcnt[i]=' ';                        
  31   2                      else break;
  32   2              }
  33   1      }
  34          //==================================================================
  35          //静态显示文本
  36          void Static_LCD_Print()                 
  37          {       GotoXY(0,0);
  38   1              Print("Loading....");
  39   1              GotoXY(1,1);
  40   1              Print("Made by wanxun");
  41   1      }
  42          //==================================================================
  43          //动态显示数据
  44          void Dynamic_LCD_Print()                 
  45          {       NumToChar();
  46   1              GotoXY(0,0);
  47   1              Print("Freq is: ");
  48   1              Print(outcnt);
  49   1      }
  50          
  51          /******************************************************************
  52          *以下为用测量脉冲周期来测量频率的方法                                                     *
  53          ******************************************************************/
  54          void Initial_C51()
  55          {       TH0=TL0=0; 
C51 COMPILER V7.01  FREQTEST                                                               12/16/2008 10:47:50 PAGE 2   

  56   1              TR0=0;
  57   1              TMOD=0x09;
  58   1      }
  59          
  60          void chkfreq()   
  61          {       while(FreqIN==0);
  62   1              while(FreqIN==1);
  63   1              TR0=1;
  64   1              while(FreqIN==0);
  65   1              while(FreqIN==1);
  66   1              TR0=0;
  67   1              cnttime=500000/(TH0*256+TL0);
  68   1              TH0=TL0=0;
  69   1              tmp=(int)cnttime;       
  70   1              Dynamic_LCD_Print();
  71   1      }
  72          
  73          
  74          void main(void)
  75          {
  76   1              Initial_C51();
  77   1              LCD_Initial();
  78   1              Static_LCD_Print();     
  79   1              chkfreq();                      
  80   1              while(1);
  81   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    464    ----
   CONSTANT SIZE    =     37    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -