uart.lst

来自「I2C slaver 的8051源码」· LST 代码 · 共 337 行 · 第 1/2 页

LST
337
字号
C51 COMPILER V7.50   UART                                                                  03/02/2009 15:59:07 PAGE 1   


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

line level    source

   1          #include "STC11L60XE.h"
   2          #include "globe.h"
   3          
   4          extern unsigned char xdata SDA_DATA[];
   5          extern bit Buffer_Return;
   6          extern unsigned int var;
   7          
   8          
   9          unsigned int i_i;
  10          unsigned int var_var;
  11          
  12          void SendToPc(void)
  13          {
  14   1              static unsigned int  i = 0;
  15   1              static unsigned char  j = 0;
  16   1              static unsigned char SBUF_Bak;
  17   1      
  18   1              static unsigned char First_Call = 0;
  19   1              static unsigned char Buffer_End = 0;    
  20   1      
  21   1              if (((i == 0) &&(First_Call == 0)) ||((i == 0) &&(Buffer_End == 1)))
  22   1                      {
  23   2                              ;
  24   2                      }
  25   1              else
  26   1                      {
  27   2                              i++;
  28   2                      }
  29   1              First_Call = 1;
  30   1              Buffer_End = 0; 
  31   1              
  32   1              if((i < var ) && (Buffer_Return == 0))//var 是放的次序数
  33   1                      {
  34   2                              if(SDA_DATA[i] == 0x7c)
  35   2                                      {LED1 = !LED1;//////////////////////////////                                                    
  36   3                                              i++;
  37   3                                              if(SDA_DATA[i] == 0xc0)
  38   3                                                      {
  39   4                                                              i++;
  40   4                                                              if(SDA_DATA[i] == 0x20)
  41   4                                                                      {
  42   5                                                                              j = 1;
  43   5                                                                      }
  44   4                                                              else
  45   4                                                                      {
  46   5                                                                              j = 0;
  47   5      
  48   5                                                                              SBUF_Bak = SBUF;
  49   5                                                                              
  50   5                                                                              SBUF = SDA_DATA[i];
  51   5                                                                              while(TI == 0);
  52   5                                                                              TI = 0; 
  53   5      
  54   5                                                                              SDA_DATA[i] = 0x20;//清空
  55   5                                                                                                                                              
C51 COMPILER V7.50   UART                                                                  03/02/2009 15:59:07 PAGE 2   

  56   5                                                                      }                                                       
  57   4                                                      }
  58   3                                              
  59   3                                              if(SDA_DATA[i] == 0x00)
  60   3                                                      {                                       
  61   4      
  62   4                                                              //SBUF = 0x0d;
  63   4                                                              //while(TI == 0);
  64   4                                                              //TI = 0; 
  65   4                                                              //SBUF = 0x0a;
  66   4                                                              //while(TI == 0);
  67   4                                                              //TI = 0;       
  68   4                                                              
  69   4                                                              if(SBUF_Bak != '|')
  70   4                                                                      {
  71   5                                                                              SBUF = 0x0d;
  72   5                                                                              while(TI == 0);
  73   5                                                                              TI = 0; 
  74   5                                                                              SBUF =0x0a;
  75   5                                                                              while(TI == 0);
  76   5                                                                              TI = 0;                 
  77   5      
  78   5                                                                              SBUF_Bak = '|';
  79   5                                                                      }
  80   4      
  81   4      
  82   4                                                              i++; //处理7c 00 c0的c0
  83   4                                                              SDA_DATA[i] = 0x20;
  84   4                                                      }               
  85   3                                              
  86   3                                      }       
  87   2                              
  88   2                              if(SDA_DATA[i] == 0xc0) 
  89   2                                      {LED2 = !LED2;//////////////////////////////            
  90   3                                              i++;
  91   3                                              if(SDA_DATA[i] == 0x20)
  92   3                                                      {
  93   4                                                              if(j == 0)
  94   4                                                                      {
  95   5                                                                              SBUF_Bak = SBUF;
  96   5                                                                              
  97   5                                                                              SBUF = SDA_DATA[i];
  98   5                                                                              while(TI == 0);
  99   5                                                                              TI = 0; 
 100   5      
 101   5                                                                              SDA_DATA[i] = 0x20;//清空       
 102   5                                                                      }
 103   4                                                      }
 104   3                                              else
 105   3                                                      {
 106   4                                                              SBUF_Bak = SBUF;
 107   4                                                              
 108   4                                                              SBUF = SDA_DATA[i];
 109   4                                                              while(TI == 0);
 110   4                                                              TI = 0; 
 111   4      
 112   4                                                              SDA_DATA[i] = 0x20;//清空       
 113   4                                                      
 114   4                                                      }
 115   3                                      }
 116   2                              
 117   2                      }
C51 COMPILER V7.50   UART                                                                  03/02/2009 15:59:07 PAGE 3   

 118   1               if(Buffer_Return == 1) //Buffer_Return等于1是返回的标志
 119   1                      {
 120   2                              while(i < Buffer_Len)
 121   2                                      {
 122   3                                              if(SDA_DATA[i] == 0x7c)
 123   3                                              {                                                       
 124   4                                              i++;
 125   4                                              if(SDA_DATA[i] == 0xc0)
 126   4                                                      {
 127   5                                                              i++;
 128   5                                                              if(SDA_DATA[i] == 0x20)
 129   5                                                                      {
 130   6                                                                              j = 1;
 131   6                                                                      }
 132   5                                                              else
 133   5                                                                      {
 134   6                                                                              j = 0;
 135   6                                                                              
 136   6                                                                              SBUF_Bak = SBUF;
 137   6                                                                              
 138   6                                                                              SBUF = SDA_DATA[i];
 139   6                                                                              while(TI == 0);
 140   6                                                                              TI = 0; 
 141   6      
 142   6                                                                              SDA_DATA[i] = 0x20;//清空
 143   6                                                                                                                                              
 144   6                                                                      }                                                       
 145   5                                                      }
 146   4                                              
 147   4                                              if(SDA_DATA[i] == 0x00)
 148   4                                                      {
 149   5                                                              
 150   5                                                              //SBUF = 0x0d;
 151   5                                                              //while(TI == 0);
 152   5                                                              //TI = 0; 
 153   5                                                              //SBUF =0x0a;
 154   5                                                              //while(TI == 0);
 155   5                                                              //TI = 0;               
 156   5      

⌨️ 快捷键说明

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