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

📄 main_s.lst

📁 8051模拟IIC总线读写24CXX原程序。
💻 LST
字号:
C51 COMPILER V7.00 Beta 6  MAIN_S                                                          12/19/2003 14:19:30 PAGE 1   


C51 COMPILER V7.00 Beta 6, COMPILATION OF MODULE MAIN_S
OBJECT MODULE PLACED IN main_s.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main_s.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include"3552.h"
   2          #include "i2cm.h"
   3          #define  SLA_R  0x26;
   4          #define  SLA_W  0x27;
   5          extern unsigned char idata Slave_Adr;
   6          extern unsigned char idata FReceive_Done;
   7          extern unsigned char idata FTransmitted_Done;
   8          unsigned char code DATA1[]={0x55,0xAA,0xA5,0x5A};
   9          extern unsigned char idata SDATA[10];
  10          void init_i2c();
  11          
  12          //=====================================================
  13          
  14          //====================================================
  15          int main()
  16          {
  17   1              
  18   1               SP =0x30;
  19   1               Init_uart();
  20   1           init_i2c();
  21   1      //---------------------------------------------------
  22   1      //Slave receive mode
  23   1      //----------------------------------------------------
  24   1      while(1)
  25   1      {       
  26   2      #if 1
  27   2           FReceive_Done = 0;
  28   2               transs("---slave receive mode!!---\n\r");
  29   2               while(!FReceive_Done){}
  30   2               transs("---slave receive end!!---\n\r");        
  31   2           Compare_Data();
  32   2      #endif
  33   2      //---------------------------------------------------
  34   2      //Slave transmit mode
  35   2      //---------------------------------------------------
  36   2                FTransmitted_Done =0; 
  37   2                transs("---slave transmitted mode!!---\n\r");
  38   2                while(!FTransmitted_Done){}
  39   2                transs("---slave transmitted end!!---\n\r");
  40   2      //---------------------------------------------------
  41   2      }
  42   1         while(1);            
  43   1         return 0;
  44   1      }
  45          //====================================================
  46          void Init_uart()
  47          {
  48   1           SCON = 0x50;
  49   1               TI = 0x00;
  50   1               TMOD = 0x20;
  51   1               TL1  = 0x00;
  52   1               TH1 = 0xF3;    //12M 2400
  53   1               TR1 = 0x01;
  54   1      }
  55          //--------------------------------------
C51 COMPILER V7.00 Beta 6  MAIN_S                                                          12/19/2003 14:19:30 PAGE 2   

  56          void init_i2c()
  57          {         
  58   1                      EA=1;
  59   1                      ES1=1;  
  60   1                      S1CON=ENABLE_I2C;
  61   1                  S1ADR=SLA_R;        
  62   1                  
  63   1      }
  64          //=======================================
  65          //---------------------------------------
  66          //* transmit a char*/
  67          void transc (char c)
  68          {
  69   1              SBUF = c;
  70   1              while(!TI);
  71   1              TI = 0;
  72   1      }
  73          //---------------------------------------
  74          //---------------------------------------
  75          void transreg(char c)
  76          {
  77   1              int tmp;
  78   1              int tmpc;
  79   1              tmp=c;
  80   1              tmp=(tmp>>4)&0x0F;
  81   1              ACC=tmp;
  82   1          tmpc=hextoascii(tmp); 
  83   1          transc(tmpc);
  84   1              tmp=c&0x0F;
  85   1              tmpc=hextoascii(tmp); 
  86   1          transc(tmpc);
  87   1              transs("\n\r");
  88   1           
  89   1      }
  90          
  91          //-----------------------------------------
  92          int hextoascii(int hex2)
  93          {
  94   1              int tmp1;
  95   1              tmp1=hex2;
  96   1              if (tmp1 >= 0x0A )
  97   1                { 
  98   2              tmp1 += 0x37;
  99   2                }
 100   1          else
 101   1                {
 102   2                      tmp1+=0x30;
 103   2                } 
 104   1           return tmp1;
 105   1      }
 106          //-------------------------------------------
 107          /* transmit a string */
 108          
 109          void transs(char *s)
 110          {
 111   1      
 112   1         while (*s!='\0')
 113   1          {
 114   2            SBUF=*s;
 115   2                while(!TI);
 116   2                TI = 0 ;
 117   2            s++;
C51 COMPILER V7.00 Beta 6  MAIN_S                                                          12/19/2003 14:19:30 PAGE 3   

 118   2         }
 119   1      
 120   1      }
 121          //-------------------------------------------
 122          void Compare_Data()
 123          {
 124   1              unsigned int data i ;
 125   1              unsigned char idata compare_Flag = 0;
 126   1              for(i=0;i<4;i++)
 127   1               {
 128   2                      
 129   2                      if(DATA1[i]==SDATA[i])
 130   2                      {
 131   3                              compare_Flag =0;
 132   3                              //transreg(DATA1[i]);
 133   3                              //transreg(SDATA[i]);
 134   3                      }
 135   2                      else
 136   2                      {
 137   3                              //transreg(DATA1[i]);
 138   3                              //transreg(SDATA[i]);
 139   3                              compare_Flag =1;
 140   3                      }
 141   2                      
 142   2               }
 143   1               if(!compare_Flag)
 144   1               {
 145   2                      transs("-----ok!-----\n\r");
 146   2                      FReceive_Done = 0;
 147   2               }
 148   1               else
 149   1               {
 150   2                  transs("-----fail!-----\n\r");
 151   2                      FReceive_Done = 0;
 152   2               }
 153   1      }
 154          //--------------------------------------------


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    268    ----
   CONSTANT SIZE    =    163    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   IDATA SIZE       =   ----       1
   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 + -