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

📄 main.lst

📁 基于c8051f020的应用
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  06/25/2008 15:44:08 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe MAIN.C DB OE

stmt level    source

   1          /*********************************************************************************************************
             -******************
   2          ** 文件名:      MAIN.C
   3          ** Copyright (c) 北京金时石油测试技术有限公司-测试仪器公司技术开发部
   4          ** 创建人:      wxt
   5          ** 日 期:      2007.06.
   6          ** 修改人:      
   7          ** 日 期:
   8          ** 描 述:      转速测试仪
   9          ** 硬  件:      RotateSpeed(sch & pcb)
  10          ** 版 本:      V1.0
  11          ** 功  能:      采集转速数据
  12          ** 硬件描述:
  13          
  14          **********************************************************************************************************
             -*****************/
  15          #include <c8051F020.h>
  16          #include <stdio.h>
  17          #include <setjmp.h>
  18          #include "HEAD.H"
  19          //********************************************************************************************************
             -******************
  20          jmp_buf ReturnToMain;                                           // 定义返回主程序设置点的寄存器空间 
  21          unsigned int  Timer3=0x00;                      // 定时器0的寄存器
  22          unsigned char DatLong=0x00;                     // 串口发送数据长度指针
  23          unsigned char ComFlag=0x00;
  24          unsigned char DateUpLoadFlag=0x00;
  25          xdata unsigned char FunctionKey=0x00;                                   // 按键标志
  26          xdata unsigned char DatPocket[RtuDataLong+5]={0x00};// 串口发送数据缓冲数组
  27          xdata unsigned char RTUaddress4[RtuDataLong]={0x00};
  28          xdata unsigned int  Sam_Num_flag=0x00;// 采集次数计数
  29          xdata unsigned int  HollSigNum=0x00;
  30          xdata unsigned char disp_ram[8][128]={0x00};
  31          xdata unsigned char Clock_Date_Str[9]="07-06-22",Clock_Time_Str[9]="11:40:23";// 时间寄存器
  32          xdata unsigned char DI_Data[13]="DI:1111 1111";
  33          xdata unsigned char NowWellName=0x00;
  34          
  35          xdata unsigned char Str_Buffer[16];//={0x00};
  36          
  37          float RotateSpeed=0;
  38          xdata unsigned int  HollSpaceTime=0x00; // 霍尔信号间隔
  39          
  40          xdata unsigned char HollDate[HollDateLong]={0x00};
  41          xdata unsigned int  HollDataNum=0x00;
  42          xdata unsigned char WorkStation=0x00;
  43          xdata unsigned char WellSaveStation[MaxWellSaveNum]={0};
  44          xdata unsigned char NowWellNum=0x00;
  45          xdata unsigned char NowSaveWellAddr=0x00;
  46          xdata unsigned char UsedWell[MaxWellSaveNum];           //有效井数
  47          
  48          xdata struct wellindex_name_date well_index[MaxWellSaveNum];
  49          
  50          xdata unsigned char TestTime=1;
  51          
  52          xdata unsigned char TempT2=0x00;
C51 COMPILER V7.06   MAIN                                                                  06/25/2008 15:44:08 PAGE 2   

  53          xdata unsigned int  Tem2Con=0x00;
*** WARNING C231 IN LINE 53 OF MAIN.C: 'Tem2Con': redefinition
  54          xdata float InstantaneousSpeed=0;
  55          //********************************************************************************************************
             -******************
  56          void main(void)
  57          {
  58   1              DisableDog();
  59   1              EA = 0;
  60   1              POWER_ON;
  61   1              CRYSTAL_INIT();
  62   1              PORT_INIT();
  63   1      
  64   1              //SOUND_ON;
  65   1              RTUaddress4[33]=Read_Eeprom(0x7FFF);
  66   1              NowWellName=Read_Eeprom(0x7FFE);
  67   1              TestTime=Read_Eeprom(0x7FFD);
  68   1              if(TestTime>8)
  69   1                      Write_Eeprom(0x7FFD,1);
  70   1              TestTime=Read_Eeprom(0x7FFD);
  71   1      
  72   1              LCD_INIT();
  73   1              LED_Init();
  74   1              Timer3_Init();
  75   1              Com0_Init();
  76   1              Com1_Init();
  77   1              Timer0_Init();
  78   1              DS1302_Init();
  79   1              Holl_Init();
  80   1              DAC_Init();
  81   1              ADC_Init();
  82   1              EEPROM_Init();
  83   1      
  84   1              CTRL485 = 0;
  85   1              SOUND_OFF;
  86   1              EA = 1;                                                 // 开总中断
  87   1      
  88   1              setjmp (ReturnToMain) ;
  89   1              LCD_CLEAR();
  90   1      
  91   1              while(1)
  92   1              {
  93   2                      //FeedDog();
  94   2                      if(Timer3%TimeFre==0x00)
  95   2                      {
  96   3                              DS1302_Read();
  97   3                              ADC_Work();
  98   3                              //LCD_DispStr("RotateSpeed",MainShowAddr,30);
  99   3                              disp_chn_str("抽油机转速仪",5,20,16,1);
 100   3                              LCD_SHOW_TIME();
 101   3                              LCD_SHOW_BatVol();
 102   3                              LCD_SHOW_InstantaneousSpeed();
 103   3                              Display_Data();
 104   3                      }
 105   2                      if(FunctionKey=get_key( 1 ))
 106   2                      {
 107   3                              if(FunctionKey==RETURN_KEY)
 108   3                              {
 109   4                                      Sys_Function();
 110   4                              }
 111   3                              if(FunctionKey==UP_ARROW_KEY)
 112   3                              {
C51 COMPILER V7.06   MAIN                                                                  06/25/2008 15:44:08 PAGE 3   

 113   4                                      RTUaddress4[33]=Read_Eeprom(0x7FFF)+2;
 114   4                                      Write_Eeprom(0x7FFF,RTUaddress4[33]);
 115   4                              }
 116   3                              if(FunctionKey==DOWN_ARROW_KEY)
 117   3                              {
 118   4                                      RTUaddress4[33]=Read_Eeprom(0x7FFF)-2;
 119   4                                      Write_Eeprom(0x7FFF,RTUaddress4[33]);
 120   4                              }
 121   3                              FunctionKey=0x00;
 122   3                      }
 123   2                      if(DateUpLoadFlag!=0x00)
 124   2                      {
 125   3                              UpLoadWellDateTure(DatPocket[2]);
 126   3                              DateUpLoadFlag=0x00;
 127   3                      }
 128   2              }
 129   1      }
 130          //********************************************************************************************************
             -******************
 131          void CRYSTAL_INIT(void)
 132          {
 133   1              xdata unsigned char i;          // delay counter
 134   1      
 135   1              OSCXCN = 0x67;          // start external oscillator with 11.0592MHz crystal
 136   1              for(i=0;i<254;i++);     // XTLVLD blanking interval (>1ms)
 137   1              while(!(OSCXCN & 0x80));// Wait for crystal osc. to settle
 138   1              OSCICN = 0x88;          // select external oscillator as SYSCLK source
 139   1                                                              // enable missing clock detector,internal oscillator disable
 140   1      }
 141          //********************************************************************************************************
             -******************
 142          void PORT_INIT(void)
 143          {
 144   1              XBR0 = 0x04;            // 使能UART0
 145   1              //XBR1 = 0x04;              // 使能外部中断0
 146   1              XBR1 = 0x20;                // 使能T2
 147   1              XBR2 = 0x44;            // 使能数据交叉开关和禁止允许弱上拉,使能UART1
 148   1              //P0MDOUT |= 0xFF;          // 允许TXD0,RXD0,TXD0,RXD0,INT0为推挽输出
 149   1              P1MDOUT |= 0xFF;                
 150   1              P2MDOUT |= 0xEF;
 151   1              P3MDOUT |= 0xFF;            
 152   1              
 153   1              P2 |= 0x0F;
 154   1              P3  = 0xFF;
 155   1      
 156   1              P74OUT &=~30;
 157   1              P6 |= 0xFF;
 158   1      
 159   1              P0MDOUT |= 0x20;            // 推挽输出,强制输出0,1
 160   1      
 161   1              P0MDOUT &=~0x10;            // 开漏输出,输出1后可读取IO口状态
 162   1              P0 |= 0x10;
 163   1      
 164   1              P2MDOUT &=~0x10;
 165   1              P2 |= 0x10;
 166   1      
 167   1      
 168   1              KEYLED = 0;
 169   1      }
 170          /*
 171          //********************************************************************************************************
             -******************
C51 COMPILER V7.06   MAIN                                                                  06/25/2008 15:44:08 PAGE 4   

 172          void SoftReset(void)
 173          {
 174              RSTSRC |= 0x10;     
 175          }
 176          
 177          //********************************************************************************************************
             -******************
 178          void FeedDog(void)                                                      //启动/复位看门狗
 179          {
 180                  WDTCN = 0xA5;                                                   //默认看门狗最大时间间隔是94ms,
 181          }
 182          */
 183          //********************************************************************************************************
             -******************
 184          void DisableDog(void)
 185          {
 186   1              WDTCN = 0xDE;
 187   1              WDTCN = 0xAD;
 188   1      }
 189          //********************************************************************************************************
             -******************
 190          void Delay_ms(unsigned int mini)
 191          {
 192   1              xdata unsigned char delay;
 193   1      
 194   1              while(mini--)
 195   1              {
 196   2               for (delay = 240; delay != 0 ; delay--);
 197   2              }
 198   1      }
 199          //********************************************************************************************************
             -******************
 200          // The End
 201          //********************************************************************************************************
             -******************


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    393    ----
   CONSTANT SIZE    =     13    ----
   XDATA SIZE       =   2957       2
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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