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

📄 rs485test.lst

📁 rs485的通信程序的主程序。采用at91sam7a3芯片编写的。
💻 LST
📖 第 1 页 / 共 3 页
字号:
ARM COMPILER V2.20a,  test_P3                                                              18/07/05  12:57:54  PAGE 1   


ARM COMPILER V2.20a, COMPILATION OF MODULE test_P3
OBJECT MODULE PLACED IN test_P3.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe test_P3.c ARM OPTIMIZE(2,SPEED) BROWSE DEBUG TABS(4) 

stmt  level    source

    1          #include "LPC2xxx.h"
    2          extern  unsigned long   UART0_RE_Flag; 
    3          extern  unsigned long   UART0_TE_Flag; 
    4          extern  unsigned int    UART0_T_Count;
    5          extern  unsigned char   UART0_RData[522];
    6          extern  unsigned char   UART0_TData[522];
    7                  unsigned int    IM_Data_Length;
    8                  unsigned int    Z_Data_Length;
    9                  unsigned char   IM_Data[522];
   10                  unsigned char   Z_Data[20];
   11                  unsigned char   K_Data[20];
   12                  unsigned char   S0PSR_tmp;
   13          
   14          extern  unsigned int    InData_Count;
   15          extern  unsigned char   SPI0_InData[512];
   16          extern  unsigned long   InData_RS_Flag;
   17          extern  unsigned long   InData_RE_Flag;
   18          extern  unsigned long   UART0_TS_Flag;
   19          extern  unsigned long   psk_InData_Flag;
   20          extern  unsigned long   sp_InData_Flag;
   21          extern  unsigned long   ZL_Flag;
   22          
   23          extern  void    power_on_initialization();
   24          extern  void    DelayNS(unsigned int);
   25          extern  int     InData(void);
   26          extern  int     control(void);
   27          extern  int     zl(void);
   28                  unsigned char   ASCiitoHEX(unsigned char);
   29                  unsigned char   HEXtoASCii(unsigned char );
   30          
   31          
   32          //****************************************************************************
   33          //* 名称:main()
   34          //* 功能:This edition add psk InData function.
   35          //****************************************************************************/
   36          int  main(void)
   37          {
   38   1          int i,j;
   39   1          power_on_initialization();
   40   1      
   41   1          while(1)
   42   1          {
   43   2              if(UART0_RE_Flag == 0x55555555)
   44   2              {
   45   3                  UART0_T_Count = 0x0001;
   46   3                  if ((UART0_RData[5]==0x49)&&(UART0_RData[6]==0x4d))   // char_IM   In_Data
   47   3                  {
   48   4                      IM_Data_Length=ASCiitoHEX(UART0_RData[4]);
   49   4                      IM_Data_Length=IM_Data_Length+0x10*ASCiitoHEX(UART0_RData[3]);
   50   4                      IM_Data_Length=IM_Data_Length+0x100*ASCiitoHEX(UART0_RData[2]);
   51   4                      IM_Data_Length=IM_Data_Length+0x1000*ASCiitoHEX(UART0_RData[1]);
   52   4                      j=0;
   53   4      
   54   4                      for(i=7;i<=(IM_Data_Length+4);i=i+2)
   55   4                      {  
   56   5                          IM_Data[j]=0x10*ASCiitoHEX(UART0_RData[i]);
   57   5                          IM_Data[j]=IM_Data[j]+ASCiitoHEX(UART0_RData[i+1]);
   58   5                          j++;
   59   5                      }
ARM COMPILER V2.20a,  test_P3                                                              18/07/05  12:57:54  PAGE 2   

   60   4      
   61   4                      InData_Count = 0x00000000;
   62   4                      UART0_RE_Flag = 0xaaaaaaaa;
   63   4                      InData_RS_Flag=0x55555555;
   64   4                      //S0PCR = 0x90;  //  pclk/100
   65   4                      //if ((psk_InData_Flag==0x55555555)||(sp_InData_Flag==0x55555555))
   66   4                      InData();
   67   4                  }
   68   3      
   69   3                  if (UART0_RData[1]==0x5A)  //char_Z  ZL1_ZL32
   70   3                  {
   71   4                      j=0;
   72   4                      for(i=2;i<=9;i=i+2)
   73   4                      {  
   74   5                          Z_Data[j]=0x10*ASCiitoHEX(UART0_RData[i]);
   75   5                          Z_Data[j]=Z_Data[j]+ASCiitoHEX(UART0_RData[i+1]);
   76   5                          j++;
   77   5                      }
   78   4      
   79   4                      UART0_RE_Flag = 0xaaaaaaaa;
   80   4                      if (ZL_Flag==0x55555555) zl();
   81   4                  }
   82   3      
   83   3                  if (UART0_RData[1]==0x4B)  //char_K ctrl test board
   84   3                  {
   85   4                      j=0;
   86   4                      for(i=2;i<=9;i=i+2)
   87   4                      {  
   88   5                          K_Data[j]=0x10*ASCiitoHEX(UART0_RData[i]);
   89   5                          K_Data[j]=K_Data[j]+ASCiitoHEX(UART0_RData[i+1]);
   90   5                          j++;
   91   5                      }
   92   4      
   93   4                      UART0_RE_Flag = 0xaaaaaaaa;
   94   4                      control();
   95   4                  }
   96   3      
   97   3              }
   98   2      
   99   2              if ((S0PSR_tmp==0x80)&&((IO0PIN&0x00001000)==0x00001000))
  100   2              {
  101   3                  S0PSR_tmp=0x00;
  102   3                  InData_RE_Flag=0x55555555;
  103   3                  InData_RS_Flag=0xaaaaaaaa;
  104   3              }
  105   2      
  106   2              if (InData_RE_Flag==0x55555555)
  107   2              {
  108   3                  S0PCR = 0x10;  //  pclk/100
  109   3                  for (i=1;i<=(InData_Count+4);i++)
  110   3                  {
  111   4                      UART0_TData[2*i-1]=HEXtoASCii((SPI0_InData[i-1])>>4);
  112   4                      UART0_TData[2*i]=HEXtoASCii((SPI0_InData[i-1])&0x0f);
  113   4                  }
  114   3                                
  115   3                  U0THR = 0x53;
  116   3                  UART0_TData[2*InData_Count+1]=0x51;
  117   3      
  118   3                  UART0_T_Count=0x00000000;
  119   3                  UART0_TS_Flag = 0x55555555;
  120   3                  InData_RE_Flag=0xaaaaaaaa;
  121   3              }
  122   2            
  123   2          }
  124   1      
  125   1          return(0);
ARM COMPILER V2.20a,  test_P3                                                              18/07/05  12:57:54  PAGE 3   

  126   1      }
  127          
  128          
  129          unsigned char ASCiitoHEX(unsigned char str1)
  130          {
  131   1          if  ((str1>=0x30)&&(str1<=0x39))
  132   1          {
  133   2              return(str1-0x30);
  134   2          }
  135   1          if  ((str1>=0x41)&&(str1<=0x46))
  136   1          {
  137   2              return(str1-0x37);
  138   2          }
  139   1      
  140   1          return 1;
  141   1      }
  142          
  143          
  144          unsigned char HEXtoASCii(unsigned char str1)
  145          {
  146   1          if (str1<=0x09)                         //if ((str1>=0x00)&&(str1<=0x09))
  147   1          {
  148   2              return(str1+0x30);
  149   2          }
  150   1          if  ((str1>=0x0A)&&(str1<=0x0F))
  151   1          {
  152   2              return(str1+0x37);
  153   2          }
  154   1      
  155   1          return 1;
  156   1      }
ARM COMPILER V2.20a,  test_P3                                                              18/07/05  12:57:54  PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN DATA (UART0_RE_Flag)
 EXTERN DATA (UART0_T_Count)
 EXTERN DATA (UART0_RData)
 EXTERN DATA (UART0_TData)
 EXTERN DATA (InData_Count)
 EXTERN DATA (SPI0_InData)
 EXTERN DATA (InData_RS_Flag)
 EXTERN DATA (InData_RE_Flag)
 EXTERN DATA (UART0_TS_Flag)
 EXTERN DATA (ZL_Flag)
 EXTERN CODE32 (power_on_initialization?A)
 EXTERN CODE32 (InData?A)
 EXTERN CODE32 (control?A)
 EXTERN CODE32 (zl?A)
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         ASCiitoHEX?A
 PUBLIC         HEXtoASCii?A
 PUBLIC         main
 PUBLIC         IM_Data_Length
 PUBLIC         Z_Data_Length
 PUBLIC         IM_Data
 PUBLIC         Z_Data
 PUBLIC         K_Data
 PUBLIC         S0PSR_tmp



*** DATA SEGMENT '?DT0?test_P3':
 00000000          IM_Data_Length:
 00000000            DS          4
 00000004          Z_Data_Length:
 00000004            DS          4
 00000008          IM_Data:
 00000008            DS          522
 00000212          Z_Data:
 00000212            DS          20
 00000226          K_Data:
 00000226            DS          20
 0000023A          S0PSR_tmp:
 0000023A            DS          1



*** CODE SEGMENT '?PR?main?test_P3':
   36: int  main(void)
 00000000  E92D4000  STMDB       R13!,{LR}
 00000004  ---- Variable 'i' assigned to Register 'R5' ----
 00000004  ---- Variable 'j' assigned to Register 'R4' ----

⌨️ 快捷键说明

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