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

📄 main.lst

📁 基于8051F实现导纳分析仪,键盘,液晶,功能都全有,其中包含测频,测相,测高电平,测低电平,测幅.等多种算法思想.用C语言实现.绝对原创!
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  04/04/2008 19:55:16 PAGE 1   


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

line level    source

   1          /*===============================================================*/
   2          /*函数名称: main.c                                              */
   3          /*函数功能: 主函数                                              */ 
   4          /*入口参数: P2----------------------------------------液晶数据传输
   5                       P3------------------------------------------液晶控制脚
   6                                   P5--------------------------------------------键盘控制
   7                                   P5.0------------------------------------------显示电流                         
   8                                   P5.1------------------------------------------显示电压
   9                                   P5.2----------------------------------------显示导纳模
  10                                   P5.3------------------------------------------显示电流                                           
  11                                   P5.3------------------------------------------显示电压
  12                                   P5.3----------------------------------------显示导纳模
  13                                                                                                               */       
  14          /*有无返回: 有                                                  */
  15          /*修改记录: 无修改记录                                          */
  16          /*编写作者: t483-4-19chenyong                                   */
  17          /*编写日期: 2007-4-06                                           */
  18          /*===============================================================*/
  19          #include  "common.h"
  20          #include  "TS12864A.h"
  21          #include  "PCA.h"
  22          #include  "ad9851.h"
  23          #include  "delay.h"
  24          
  25          float Current,Voltage;                //真实测量电压,电流值和导纳模
  26          float Y_Real, Y_Image;
  27          float Y_Abs,  Y_Phase;
  28          unsigned char keY_Abscode;
  29          unsigned long Pulse_Number;           //所测量的脉冲个数 
  30          unsigned long  FrequencyLong_HZ;            
  31          float theta;
  32          float reactive_power;
  33          float average_power; 
  34          
  35          void main(void)
  36          {
  37   1              Port_Initial();
  38   1              Initial_AD9851();                             
  39   1              liangcheng_initial();                     //range intial
  40   1          EA=1;  
  41   1              PCA_Initial();
  42   1              PCA0_Initial(); 
  43   1              LCD_Init();                               //LCD intial
  44   1              CleanScreen();
  45   1              
  46   1      
  47   1      
  48   1              while(1)
  49   1              {
  50   2      
  51   2                  keY_Abscode=keyscan();              
  52   2                      switch(keY_Abscode)
  53   2                      {
  54   3                          case 1:      Port_Initial();
  55   3                                                       LCD_Init();                         //液晶初始化 
C51 COMPILER V8.02   MAIN                                                                  04/04/2008 19:55:16 PAGE 2   

  56   3                                   CleanScreen();                                             
  57   3                                                       EA=1; 
  58   3                                                       show_Current();               /*显示 电流 A*/             
  59   3                                   Current=(float)data_process(0);//采样电流 /*AIN0.0中固定采电流值*/
  60   3                                                       Show_FloatData(Current,3,3);   //显示电流值
  61   3                                                       delay_nms(500);
  62   3                                                       EA=0;                                           
  63   3                                                       break;
  64   3      
  65   3                          case 2:      Port_Initial();
  66   3                                                       LCD_Init();                       //液晶初始化 
  67   3                                   CleanScreen();
  68   3                                                       EA=1; 
  69   3                                                       show_Voltage();          /*显示 电压 V*/
  70   3                                   Voltage=(float)data_process(2);//采样电压 /*2*/
  71   3                                               Show_FloatData(Voltage,3,3);   //显示电压
  72   3                                                       delay_nms(500);
  73   3                                                       EA=0; 
  74   3                                                       break;
  75   3      
  76   3                          case 3:      Port_Initial();
  77   3                                                       LCD_Init();                        //液晶初始化 
  78   3                                   CleanScreen();
  79   3                                                       EA=1;    
  80   3                                                       show_Y_Abs();                          //显示 导纳模 S    
  81   3                                   Current=(float)data_process(0);//采样电流
  82   3                                   Voltage=(float)data_process(2);//采样电压
  83   3                                               Y_Abs=(float)Current/Voltage;  //计算导纳模            
  84   3                                                       Show_FloatData(Y_Abs,3,3);     //显示导纳模
  85   3                                                       delay_nms(500);
  86   3                                                       EA=0; 
  87   3                                                       break;
  88   3      
  89   3                          case 4:      Port_Initial();
  90   3                               PCA_Initial();                 /*捕捉*/
  91   3                                   PCA0_Initial();       
  92   3                                                       LCD_Init();                       //液晶初始化 
  93   3                                   CleanScreen();
  94   3                                                       EA=1;
  95   3                                                       Pulse_Number=PCA_Capture();   //获取高电平脉冲值 
  96   3                                                       show_real();                              //实部
  97   3                                           Compute_REALandIMAGE();       //计算相位,实部,虚部 
  98   3                                                       Show_FloatData(Y_Real,3,3);   //显示实部
  99   3                                                       delay_nms(500);                         
 100   3                                                       EA=0;
 101   3                                                       break;
 102   3      
 103   3                          case 5:      Port_Initial();
 104   3                               PCA_Initial();
 105   3                                   PCA0_Initial();
 106   3                                                       LCD_Init();                       //液晶初始化 
 107   3                                   CleanScreen();
 108   3                                                       EA=1;
 109   3                                                       Pulse_Number=PCA_Capture();   //获取高电平脉冲值 
 110   3                                                       show_image();
 111   3                                           Compute_REALandIMAGE();       //计算相位,实部,虚部 
 112   3                                                       Show_FloatData(Y_Image,3,3);  //显示虚部
 113   3                                                       delay_nms(500);                         
 114   3                                                       EA=0;
 115   3                                                       break;
 116   3      
 117   3                          case 6:      Port_Initial();
C51 COMPILER V8.02   MAIN                                                                  04/04/2008 19:55:16 PAGE 3   

 118   3                               PCA_Initial();
 119   3                                   PCA0_Initial();
 120   3                                                       LCD_Init();                       //液晶初始化 
 121   3                                   CleanScreen();
 122   3                                                       EA=1;
 123   3                                                       Pulse_Number=PCA_Capture();   //获取高电平脉冲值 
 124   3                                                       show_phase();
 125   3                                           Compute_REALandIMAGE();       //计算相位,实部,虚部 
 126   3                                                       Show_FloatData(Y_Phase,3,3);  //显示导纳角     
 127   3                                                       delay_nms(500);                         
 128   3                                                       EA=0;
 129   3                                                       break;
 130   3      
 131   3                          case 7:      Port_Initial();
 132   3                               PCA_Initial();
 133   3                                   PCA0_Initial();
 134   3                                                       LCD_Init();                       //液晶初始化 
 135   3                                   CleanScreen();
 136   3                                                       EA=1;
 137   3                                                       Pulse_Number=PCA_Capture();   //获取高电平脉冲值 
 138   3                                                       show_value();
 139   3                                           Compute_REALandIMAGE();       //计算相位,实部,虚部 
 140   3                                                       Show_FloatData(Y_Real,1,3);   //显示实部 
 141   3                                                       Show_FloatData(Y_Image,3,3);  //显示虚部
 142   3                                                       Show_FloatData(Y_Phase,5,3);  //显示导纳角     
 143   3                                                       delay_nms(500);                         
 144   3                                                       EA=0;
 145   3                                                       break;
 146   3      
 147   3                          case 8:      Port_Initial();
 148   3                               PCA_Initial();
 149   3                                   PCA0_Initial();
 150   3                                                       LCD_Init();                             //液晶初始化 
 151   3                                   CleanScreen();
 152   3                                                       EA=1;
 153   3                                                       Pulse_Number=PCA_Capture();         //获取高电平脉冲值
 154   3                                               show_power();
 155   3                                   Current=(float)data_process(0);     //采样电流
 156   3                                   Voltage=(float)data_process(2);     //采样电压
 157   3                                               Compute_Power();
 158   3                                                       Show_FloatData(average_power,1,3);  //计算有功功率
 159   3                                                       Show_FloatData(reactive_power,3,3); //计算无功功率
 160   3                                                       Show_FloatData(theta,5,3);              //计算功率因素 
 161   3                                                       delay_nms(500);                                 
 162   3                                                       EA=0;
 163   3                                                       break;
 164   3                         case 9:       Port_Initial();
 165   3                                                       LCD_Init();                             //液晶初始化 
 166   3                                   CleanScreen();
 167   3                                       show_window();
 168   3                                                       delay_nms(100);
 169   3                          default:     break;
 170   3                      }
 171   2      
 172   2              }
 173   1      }
 174          
 175          
 176          


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V8.02   MAIN                                                                  04/04/2008 19:55:16 PAGE 4   

   CODE SIZE        =    620    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     45    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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