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

📄 main.lst

📁 C51单片机端
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.01   MAIN                                                                  12/04/2006 10:50:21 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c LARGE OPTIMIZE(7,SPEED) BROWSE ORDER MODDP2 DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include <string.h>
   3          #include <stdio.h>
   4          
   5          #include "config.h"
   6          #include "isp.h"
   7          #include "lcd.h"
   8          #include "system.h"
   9          #include "hex.h"
  10          
  11          void vInitSystem(void);
  12          void uart_tx(Uchar tx_data);
  13          
  14          extern unsigned char Msg;
  15          extern unsigned char m_BankSector;
  16          extern unsigned char mBuffer[256];
  17          extern unsigned int  offset;
  18          extern unsigned char SreialStr;
  19          
  20          unsigned int  mSectorSize;
  21          unsigned char m_Bank;
  22          unsigned int  moffset;
  23          
  24          float mPer;
  25          float mPercent;
  26          
  27          void main(void)
  28          {
  29   1              unsigned char mPTick=0;
  30   1              unsigned char mFlashTimes;
  31   1              unsigned int  mFlashMax;
  32   1              unsigned int  mFlashID;
  33   1              unsigned long mErrsum;
  34   1      
  35   1              mFlashID = vFlashId();
  36   1              vInitSystem();
  37   1              SreialStr = 0;
  38   1      
  39   1              //界面显示      
  40   1              vDrawLogo(4, 36, 256, 72, 1);
  41   1              lprintf(7,166,0,"FirmWare V1.0 12/15/06");
  42   1          lprintf(7,184,0,"Serial No  xxxx-xxxx");
  43   1          lprintf(7,202,0,"Device ID  =  %4X",mFlashID);
  44   1              lprintf(3,220,0,"Shanghai Spectrum Instrument Ltd.");
  45   1              
  46   1              Msg = HEX_DEC_OK;
  47   1              while(1)
  48   1              {
  49   2                      switch (Msg) 
  50   2                      {
  51   3                              case HEX_DEC_SECTOR_IRQ :
  52   3                                      mFlashID = vFlashId();
  53   3                                      Msg = HEX_DEC_OK;
  54   3                                      vCOmSend(2, 0x1D, mFlashID);  //返回FLASH ID号                          
  55   3                                      break;
C51 COMPILER V8.01   MAIN                                                                  12/04/2006 10:50:21 PAGE 2   

  56   3                              
  57   3                              case HEX_DEC_SECTOR_BANK :
  58   3                                      mSectorSize = offset;
  59   3                                      Msg = HEX_DEC_OK;
  60   3                                      vCOmSend(2, 0x1E, mSectorSize);  //返回FLASH扇区大小
  61   3                                      break;                  
  62   3                                                             
  63   3                              case HEX_DEC_START      :  //开始
  64   3                                      mFlashMax = 0;         //每帧允许编程次数
  65   3                                      mPer = 0;
  66   3                                      mPTick = 0;
  67   3                                      mErrsum = 0;                                
  68   3                                      vFlashErase();            //擦除Flash
  69   3                                      Msg = HEX_DEC_OK;
  70   3                                      lprintf(7,126,0,"Programing ......                ");           
  71   3                                      vCOmSend(0, 0x05, 0);           //就绪
  72   3                                      break;                                          
  73   3      
  74   3                              case HEX_DEC_SEG_ERR    :      //段错误
  75   3                                      Msg = HEX_DEC_OK;
  76   3                                      vCOmSend(0, 0x09, 0);   
  77   3                                      break;
  78   3      
  79   3                              case HEX_DEC_SEG_DATA   :     //段数据
  80   3                                      m_Bank = m_BankSector;
  81   3                                      Msg = HEX_DEC_OK;
  82   3                                      vCOmSend(0, 0x08, 0);     //段正确
  83   3                                      break;
  84   3      
  85   3                              case HEX_DEC_FRAME_ERR  :      //帧错误
  86   3                                      Msg = HEX_DEC_OK;
  87   3                                      vCOmSend(0, 0x07, 0);      //帧错误 
  88   3                                      break;
  89   3      
  90   3                              case HEX_DEC_FRAME_DATA :      //帧数据
  91   3                                      moffset = offset;
  92   3                                      mFlashMax = 0;
  93   3                                      vWriteSector(mBuffer,mSectorSize,offset,m_Bank);
  94   3                                      if((mFlashMax = vVerify(mBuffer,mSectorSize,moffset,m_Bank)) !=0)
  95   3                                      {
  96   4                                              mFlashTimes = 1;
  97   4                                              vWriteSector(mBuffer,mSectorSize,offset,m_Bank);
  98   4                                              if((mFlashMax = vVerify(mBuffer,mSectorSize,moffset,m_Bank)) !=0)
  99   4                                              {
 100   5                                                      mFlashTimes = 2;
 101   5                                                      vWriteSector(mBuffer,mSectorSize,offset,m_Bank);
 102   5                                                      if((mFlashMax = vVerify(mBuffer,mSectorSize,moffset,m_Bank)) !=0)
 103   5                                                      {
 104   6                                                              vWriteSector(mBuffer,mSectorSize,offset,m_Bank);
 105   6                                                              mFlashMax = vVerify(mBuffer,mSectorSize,moffset,m_Bank);
 106   6                                                      }
 107   5                                              }
 108   4                                      }
 109   3                                      if(mFlashMax != 0)
 110   3                                      {
 111   4                                              mErrsum += (unsigned long )mFlashMax;
 112   4                                              lprintf(7,148,0,"Error Number is  %ld",mErrsum);        
 113   4                                              Msg = HEX_DEC_OK;
 114   4                                              vCOmSend(0, 0x1A, 0);  //烧写错误
 115   4                                              break;
 116   4                                      }
 117   3                                      
C51 COMPILER V8.01   MAIN                                                                  12/04/2006 10:50:21 PAGE 3   

 118   3                                      mPer += (float)mSectorSize;
 119   3                              mPTick++;
 120   3                                      if(7<mPTick)
 121   3                                      {
 122   4                                              mPTick = 0;
 123   4                                              mPercent   = (float)(mPer/(4*65536.0));
 124   4                                              mPercent = mPercent*100+0.5;
 125   4                                              lprintf(24,126,0,"%3d%c",(unsigned int)mPercent,'%');   
 126   4                                      }

⌨️ 快捷键说明

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