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

📄 interface.lst

📁 电赛一等奖作品:音频信号分析仪单片机源码
💻 LST
字号:
C51 COMPILER V8.02   INTERFACE                                                             09/05/2007 10:54:04 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE INTERFACE
OBJECT MODULE PLACED IN interface.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE interface.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "lcd.h"
   2          #include "func.h"
   3          #include "interface.h"
   4          #include "key.h"
   5          #include "getinputnum.h"
   6          typedef unsigned int uint;
   7          typedef unsigned char uchar;
   8          typedef unsigned long ulong;
   9          void DisplayState(void)
  10          {
  11   1              char temp[10];
  12   1              uchar len,j;
  13   1              ulong phase;
  14   1              LcdClear();
  15   1              SetPos(0,0);
  16   1              LcdPrint("波形: ",sizeof("波形: ")-1);
  17   1              switch (CurWaveType)
  18   1              {
  19   2                      case 0: LcdPrint("\xd5\xfd弦波",sizeof("\xd5\xfd弦波")-1);
  20   2                                break;
  21   2                      case 1:LcdPrint("方波  ",sizeof("方波  ")-1);
  22   2                                break; 
  23   2                      case 2:LcdPrint("\xc8\xfd角波",sizeof("\xc8\xfd角波")-1);
  24   2                                break;          
  25   2                      case 3:LcdPrint("锯齿波",sizeof("锯齿波")-1);
  26   2                                break; 
  27   2                      case 4:LcdPrint("自定义",sizeof("自定义")-1);
  28   2                                break; 
  29   2                      default:break;
  30   2          }
  31   1      
  32   1          /////////////////
  33   1          SetPos(0,1);
  34   1          LcdPrint("频率:",sizeof("频率:")-1);
  35   1          len=ltoa(Wave[CurWaveType].Freq,temp);
  36   1          if(Wave[CurWaveType].Freq>1000)
  37   1          {
  38   2              for(j=len;j>len-3;j--)
  39   2              {
  40   3                  temp[j]=temp[j-1];
  41   3              }
  42   2              temp[len-3]='.';
  43   2              LcdPrint(temp,len+1);
  44   2              LcdPrint("KHz",3);
  45   2          }
  46   1          else
  47   1          {
  48   2              LcdPrint(temp,len);
  49   2              LcdPrint("Hz",2);
  50   2          }
  51   1      
  52   1          /////////////////
  53   1          SetPos(0,2);
  54   1          LcdPrint("幅度:",sizeof("幅度:")-1);
  55   1          temp[3]=Wave[CurWaveType].Peak;
C51 COMPILER V8.02   INTERFACE                                                             09/05/2007 10:54:04 PAGE 2   

  56   1          if(temp[3]<0){temp[3]*=-1;}
  57   1          temp[0]=temp[3]/10;
  58   1          temp[2]=temp[3]%10;
  59   1          temp[0]+=0x30;temp[2]+=0x30;temp[1]='.';
  60   1          LcdPrint(temp,3);
  61   1          LcdPrint("V",1);
  62   1          /////////////////////////////
  63   1          SetPos(0,3);
  64   1          LcdPrint("相位:",sizeof("相位:")-1);
  65   1          phase=(ulong)Wave[CurWaveType].Phase*(ulong)360;
  66   1          phase/=256;
  67   1          temp[2]=phase%10+0x30;
  68   1          phase/=10;
  69   1          temp[1]=phase%10+0x30;
  70   1          phase/=10;
  71   1          temp[0]=phase%10+0x30;
  72   1          LcdPrint(temp,3);
  73   1          LcdPrint(" 度",sizeof(" 度")-1);
  74   1      }
  75          
  76          
  77          uchar GetWaveType()
  78          {
  79   1              uchar temp=CurWaveType,key;
  80   1              ShowCursor();
  81   1              while(1)
  82   1              {
  83   2                      SetPos(3,0);
  84   2                      key=WaitKey();
  85   2                      if(key!=0x0f)
  86   2                      {
  87   3                              temp++;if(temp>3) {temp=0;}
  88   3                              SetPos(3,0);
  89   3                              switch (temp)
  90   3                              {
  91   4                              case 0:LcdPrint("\xd5\xfd弦波",sizeof("\xd5\xfd弦波")-1);
  92   4                                break;
  93   4                              case 1:LcdPrint("方波  ",sizeof("方波  ")-1);
  94   4                                    break; 
  95   4                              case 2:LcdPrint("\xc8\xfd角波",sizeof("\xc8\xfd角波")-1);
  96   4                                break;          
  97   4                              case 3:LcdPrint("锯齿波",sizeof("锯齿波")-1);
  98   4                                break; 
  99   4                              default:break;
 100   4                              }
 101   3                      }
 102   2                      else 
 103   2                      {
 104   3                              //HideCursor();
 105   3                              return temp;
 106   3                      }
 107   2          }
 108   1      
 109   1      
 110   1              
 111   1      }
 112          bit ProcessSingleInput(void)
 113          {
 114   1              bit change=0;
 115   1              float ftemp;
 116   1              ulong temp;
 117   1              uchar i,key;
C51 COMPILER V8.02   INTERFACE                                                             09/05/2007 10:54:04 PAGE 3   

 118   1              SetPos(5,3);
 119   1              ShowCursor();
 120   1              while(1)
 121   1              {
 122   2                      key=WaitKey();
 123   2                      switch(key)
 124   2                      {
 125   3                              case 0x00:      temp=GetWaveType();
 126   3                                                      if(CurWaveType!=temp)
 127   3                                                      {
 128   4                                                              CurWaveType=temp;
 129   4                                                              change=1;
 130   4                                                      }
 131   3                                                      SetPos(0,0);
 132   3                                  ShowCursor();
 133   3                                                      break;
 134   3                              case 0x01:      SetPos(3,1);
 135   3                                              for(i=0;i<10;i++)
 136   3                                              {
 137   4                                                      LcdPrint(" ",1);
 138   4                                              }
 139   3                                                      temp=GetInputNum(3,1,5);
 140   3                                                      if(temp>0 && temp<=20000 && Wave[CurWaveType].Freq!= temp)
 141   3                                                      {
 142   4                                                              Wave[CurWaveType].Freq=temp;
 143   4                                                              change=1;
 144   4                                                      }
 145   3                                                      SetPos(0,0);
 146   3                                  ShowCursor();
 147   3                                                      break;
 148   3                              case 0x02:      ftemp=10*GetInputFloatNum(3,2,4);
 149   3                                                      if (ftemp<=50 && ftemp>=-50)
 150   3                                                      {
 151   4                                                              Wave[CurWaveType].Peak=ftemp;
 152   4                                                              change=1;
 153   4                                                      }
 154   3                                                  SetPos(0,0);
 155   3                                  ShowCursor();
 156   3                                                      break;
 157   3                              case 0x03:      temp=GetInputNum(3,3,3);
 158   3                                                      if(temp<360 && Wave[CurWaveType].Phase!=temp)
 159   3                                                      {
 160   4                                                              Wave[CurWaveType].Phase=((float)temp*256)/360+0.5;
 161   4                                                              change=1;
 162   4                                                      }
 163   3                                                  SetPos(0,0);
 164   3                                  ShowCursor();
 165   3                                                      break;
 166   3      
 167   3                              case 0x0f:      LcdClear();
 168   3                                                      LcdPrintLine("改变波形配置?",sizeof("改变波形配置?")-1,1,1);
 169   3                                                      key=WaitKey();
 170   3                                                      if(key==0x0f)
 171   3                              {
 172   4                                                                      HideCursor();
 173   4                                                                      return change;
 174   4                              }
 175   3                              default:break;
 176   3                      }
 177   2              DisplayState();
 178   2              }
 179   1              
C51 COMPILER V8.02   INTERFACE                                                             09/05/2007 10:54:04 PAGE 4   

 180   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1084    ----
   CONSTANT SIZE    =     92    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      26
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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