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

📄 main.lst

📁 SM5964在系统编程的源代码,通过COMM串行口进行程序下载,方便嵌入式系统开发
💻 LST
字号:
C51 COMPILER V7.04   MAIN                                                                  04/08/2006 10:08:34 PAGE 1   


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

stmt level    source

   1          
   2          #include "main.h"
   3          #include "sm5964.h"
   4          #include "comm.h"
   5          #include "myapp.h"
   6          #include "isp.h"
   7          //#include <string.h>
   8          #include <absacc.h>
   9          
  10          //unsigned char  read_flash(unsigned int page,unsigned char addr);
  11          
  12          
  13          void InitSystem();
  14          void ResetSystem();
  15          
  16          void InitParameter();
  17          
  18          void Delay1ms(unsigned char num);
  19          
  20          
  21          unsigned char MyIspFlag _at_ 0x32;//由应用程序部分传送过来的变量,共用
  22          
  23          unsigned char g_MachineNo;//机器编号
  24          unsigned char g_Buzz_LcdLigth_FlahPage_Statue;
  25          
  26          unsigned char NumCounter;
  27          unsigned int i;
  28          
  29          
  30          /*
  31          *********************************************************
  32          **主程序main()
  33          *********************************************************
  34          */
  35          void main()
  36          {
  37   1              
  38   1              unsigned char flagIsp=0;//标志是否下载
  39   1              
  40   1      
  41   1      
  42   1      
  43   1              NumCounter=0;
  44   1      
  45   1              EA=0;
  46   1              WatchDog();
  47   1      
  48   1      
  49   1              
  50   1      
  51   1              //====================================
  52   1              //1.初始化硬件,参数,串口
  53   1              //1.1.初始化硬件,允许片内XDATA
  54   1              InitSystem();
  55   1              Delay1ms(50);
C51 COMPILER V7.04   MAIN                                                                  04/08/2006 10:08:34 PAGE 2   

  56   1      
  57   1              //1.2.初始化参数
  58   1              InitParameter();
  59   1      
  60   1              //1.3.初始化串口
  61   1              InitComm(Baud38400);
  62   1      
  63   1      
  64   1      
  65   1              WatchDog();
  66   1      
  67   1              //======================================isp
  68   1              //3.判断是否唤醒下载
  69   1              if(MyIspFlag==0x55)
  70   1              {               
  71   2                      MyIspFlag=0;
  72   2                      IspServer();
  73   2                      flagIsp=1;//已经下载
  74   2              }
  75   1      
  76   1              //======================================isp
  77   1              //4.判断是否强制下载
  78   1              if(flagIsp==0)
  79   1              {
  80   2                      
  81   2                      #ifdef ENABLE_ISP
                              if(PIN_ENISP==0)
                              {
                                      IspServer();
                                      flagIsp = 1;
                              }
                              #endif
  88   2              }
  89   1      
  90   1              //======================================isp
  91   1              //5.判断是否PC机控制进入下载
  92   1              if(     flagIsp==0)
  93   1              {
  94   2                      
  95   2                      if(CheckPcCmd()==ID_OK)
  96   2                      {
  97   3                              IspServer();
  98   3                              flagIsp = 1;
  99   3      
 100   3                      }
 101   2              }
 102   1      
 103   1              
 104   1              //======================================isp
 105   1              //6.判断用户程序是否完整
 106   1              while(1)
 107   1              {               
 108   2                      WatchDog();
 109   2                      if(CheckAppPrg()!=ID_OK)
 110   2                      {
 111   3                              IspServer();
 112   3                      }
 113   2                      else
 114   2                      {
 115   3                              ResetSystem();//进入用户应用程序
 116   3                      }
 117   2      
C51 COMPILER V7.04   MAIN                                                                  04/08/2006 10:08:34 PAGE 3   

 118   2              }       
 119   1      
 120   1      
 121   1      }
 122          //////////////////////////////////////////////////////////
 123          
 124          /*
 125          *********************************************************
 126          **初始化系统
 127          *********************************************************
 128          */
 129          void InitSystem()
 130          {
 131   1      
 132   1              
 133   1              EA=0;
 134   1              TR1=0;
 135   1              TR2=0;
 136   1              TR0=0;
 137   1              ES=0;
 138   1      
 139   1      
 140   1      
 141   1              SCONF   =0x00;
 142   1              RS82C55=0x81;  //0x81;  PortA--out  PortB--out PortC--In~Out
 143   1      
 144   1      //      g_MachineNo=read_flash(WORKMODE_PAGE,MACHINENO_OFFSET);
 145   1              g_MachineNo=0;
 146   1      
 147   1              PIN_TXEN=RS485_COMM_DISENABLE;//不允许发送
 148   1      
 149   1              //SCONF:
 150   1              //WDR 7 6 5 4 3  ISPE OME ALEI
 151   1              SCONF   =VALUE_SCONF;//允许IPSE OME     
 152   1              ISPFD   =0x55;
 153   1              ISPFD   =0xaa;
 154   1              ISPFD   =0x55;
 155   1      
 156   1      
 157   1      }
 158          /*
 159          *********************************************************
 160          **恢复系统
 161          *********************************************************
 162          */
 163          void ResetSystem()
 164          {
 165   1      
 166   1              unsigned int addr;
 167   1      
 168   1      
 169   1              EA      =0;
 170   1              T2CON=0x00;     
 171   1              IP=0X00;
 172   1              TR2=0;
 173   1              EA=0;
 174   1              SCONF=0x00;//不允许ISP,XDATA
 175   1      
 176   1              //恢复串口动作
 177   1              TMOD=0x00;           
 178   1              PCON=0x00;                       
 179   1              SCON=0x00;            
C51 COMPILER V7.04   MAIN                                                                  04/08/2006 10:08:34 PAGE 4   

 180   1              TR1     =0x00;
 181   1      
 182   1              PIN_TXEN=RS485_COMM_DISENABLE;//不允许发送
 183   1              
 184   1              //main地址
 185   1              addr = ChipRead(0x01);
 186   1              addr <<= 8;
 187   1              addr += ChipRead(0x02);
 188   1      
 189   1      
 190   1              
 191   1              jmpmain(addr);
 192   1      
 193   1      }
 194          /*
 195          *********************************************************
 196          **初始参数
 197          *********************************************************
 198          */
 199          void InitParameter()
 200          {
 201   1              for (i=0;i<215;i++)
 202   1              {
 203   2                      g_CommBuffer[i]=0xff;
 204   2              }
 205   1      
 206   1      }
 207          
 208          /*
 209          *********************************************************
 210          **延迟时间函数
 211          *********************************************************
 212          */
 213          void Delay1ms(unsigned char num)
 214          {
 215   1      
 216   1      
 217   1              unsigned int k;
 218   1      
 219   1              for(i=0;i<num;i++)
 220   1              {
 221   2                      for(k=0;k<100;k++)WatchDog();
 222   2              }
 223   1      
 224   1      }
 225          
 226          
 227          /*
 228          void setflashHIADDR(value) {\
 229                                          g_Buzz_LcdLigth_FlahPage_Statue=0xC0;   \
 230                                          g_Buzz_LcdLigth_FlahPage_Statue|=(value&0x7f);  \
 231                                          PA82C55=g_Buzz_LcdLigth_FlahPage_Statue ; \
 232                                         }
 233          
 234          void  set_flash_page(page)  
 235          {
 236                  setflashHIADDR( page>>6 );
 237          }
 238          */
 239          
 240          /*
 241          *********************************************************
C51 COMPILER V7.04   MAIN                                                                  04/08/2006 10:08:34 PAGE 5   

 242          **读取机号
 243          *********************************************************
 244          */
 245          /*
 246          unsigned char  read_flash(unsigned int page,unsigned char addr)
 247          {      
 248                          unsigned char xdata *rdaddr;
 249                  unsigned char bf=0;
 250                  set_flash_page(page);
 251                                           
 252                  page<<=8;
 253                  page&=0x3f00;
 254                  rdaddr=addr|FLASH_CS|page;
 255          
 256                  bf=*rdaddr;
 257          
 258                  return (bf);
 259          
 260          }
 261          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    247    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5       3
   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 + -