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

📄 main_m.lst

📁 8051模拟IIC总线读写24CXX原程序。
💻 LST
📖 第 1 页 / 共 2 页
字号:
  38      =1  //------------------------------------------------------
  39      =1  
  40      =1  #define SEND_START_ACK     0xE6     //return ack &send restart
  41      =1  #define RELEASE_BUS_ACK    0xC6         //return ack &clear si
  42      =1  #define RELEASE_BUS_NONACK 0xC2     //return nonack & clear si
  43      =1  #define SEND_STOP_ACK      0xD6     //return ack & clear si 
  44      =1  #define SEND_STOP_NONACK   0xD2         //
  45      =1  #define ENABLE_I2C                 0xC6         //
  46      =1  
  47      =1  
  48      =1  #endif 
   4          
   5          extern ERS_BLOCK1();
   6          extern _program_data();
   7          extern READ_DATA();
   8          
   9          extern unsigned char idata Slave_Adr;
  10          extern unsigned char idata FReceive_Done;
  11          extern unsigned char idata FTransmitted_Done;
  12          
  13          extern unsigned short CustomCode;
  14          extern unsigned char DataCode;
  15          extern unsigned char Ir0Index;
  16          extern unsigned char Ir1Index;
  17          extern unsigned char IrIndex;
  18          
  19          extern bit read;
  20          extern unsigned char idata SDATA[10];
  21          extern unsigned char DATA[6];
  22          extern unsigned char doubleE[7];
  23          
  24          extern unsigned char wait2sFlag;
  25          extern unsigned char wait20ms;
  26          
C51 COMPILER V7.20   MAIN_M                                                                12/23/2005 17:56:49 PAGE 5   

  27          bit PowerOnFlag = 1;
  28          
  29          void delay(unsigned int delay_time);
  30          void Wait_ms(char cTime);
  31          
  32          int main()
  33          {
  34   1              char *addrHigh;
  35   1              char *addrLow;
  36   1              char *romData;
  37   1      
  38   1              Initial();
  39   1      
  40   1              //I2C mode Master transmit
  41   1              #if 0
                       read = 0;
                       delay(10000);
                       FTransmitted_Done = 0;
                       transs("---Master transmit mode!!---\n\r");
                       delay(1000);
                       S1CON = SEND_START_ACK;
                      Slave_Adr = SLA_W;     
                       while(!FTransmitted_Done){};
                       transs("---Master transmit end !!---\n\r");
                       delay(1000);
                       #endif
  53   1      
  54   1              //I2C mode Master receive
  55   1              #if 0
                       read = 1;
                      FReceive_Done = 0;
                       transs("---Master receive mode!!---\n\r");     
                       delay(10000);
                       Slave_Adr = SLA_W;      
                      S1CON = SEND_START_ACK;
                       while(!FReceive_Done){};
                      transs("---Master receive end !!---\n\r");
                       delay(10000);
                       #endif
  66   1      
  67   1               //erase flash and program an address and read 
  68   1               //iap test
  69   1              #if 1
  70   1              {
  71   2                      DataCode = 0xff;
  72   2                      CustomCode = 0xffff;
  73   2                      ERS_BLOCK1();
  74   2                      Wait_ms(3);
  75   2                      
  76   2                      addrHigh = (char *)0x20;
  77   2                      addrLow = (char *)0x21;
  78   2                      romData = (char *)0x22;
  79   2                      *addrHigh = 0x55;
  80   2                      *addrLow = 0x66;
  81   2                      *romData = 0x55;
  82   2                      _program_data();
  83   2                      Wait_ms(3);
  84   2      
  85   2                      READ_DATA();
  86   2                      Wait_ms(3);
  87   2                      *romData = *(char *)0x22;
  88   2                      transreg(*romData);
C51 COMPILER V7.20   MAIN_M                                                                12/23/2005 17:56:49 PAGE 6   

  89   2              }
  90   1              #endif
  91   1      
  92   1              while(1)
  93   1              {       
  94   2      
  95   2              } 
  96   1      }
  97          
  98          
  99          void Initial()
 100          {
 101   1      //      SP =0x30;
 102   1              INT1 = 1;
 103   1              IE = 0xA6;
 104   1              IP = 0x20;              
 105   1              IT1 = 1;
 106   1              SCON = 0x50;
 107   1              TMOD = 0x22;
 108   1              TL0 = 0x38;
 109   1              TH0 = 0x38;
 110   1              TR0 = 1;
 111   1              TL1  = 0x00;
 112   1              TH1 = 0xF3;             //0xFD 11M 9600                 //0xF3;    //12M 2400
 113   1              TR1 = 1;
 114   1      
 115   1              PowerSwitch= 0;
 116   1              relay_on = 1;
 117   1      }
 118          
 119          //* transmit a char*/
 120          void transc (char c)
 121          {
 122   1              SBUF = c;
 123   1              while(!TI);
 124   1              TI = 0;
 125   1      }
 126          //---------------------------------------
 127          //---------------------------------------
 128          void transreg(char c)
 129          {
 130   1              int tmp;
 131   1              int tmpc;
 132   1              tmp=c;
 133   1              tmp=(tmp>>4)&0x0F;
 134   1              ACC=tmp;
 135   1          tmpc=hextoascii(tmp); 
 136   1          transc(tmpc);
 137   1              tmp=c&0x0F;
 138   1              tmpc=hextoascii(tmp); 
 139   1          transc(tmpc);
 140   1              transs("\n\r");
 141   1           
 142   1      }
 143          
 144          //-----------------------------------------
 145          int hextoascii(int hex2)
 146          {
 147   1              int tmp1;
 148   1              tmp1=hex2;
 149   1              if (tmp1 >= 0x0A )
 150   1                { 
C51 COMPILER V7.20   MAIN_M                                                                12/23/2005 17:56:49 PAGE 7   

 151   2              tmp1 += 0x37;
 152   2                }
 153   1          else
 154   1                {
 155   2                      tmp1+=0x30;
 156   2                } 
 157   1           return tmp1;
 158   1      }
 159          //-------------------------------------------
 160          /* transmit a string */
 161          
 162          void transs(char *s)
 163          {
 164   1      
 165   1         while (*s!='\0')
 166   1          {
 167   2            SBUF=*s;
 168   2                while(!TI);
 169   2                TI = 0 ;
 170   2            s++;
 171   2         }
 172   1      
 173   1      }
 174          //--------------------------------------------
 175          void delay(unsigned int delay_time)
 176          {
 177   1                      while(delay_time)
 178   1                      {
 179   2                              delay_time--;
 180   2                      }
 181   1      }
 182          
 183          void Wait_ms(char cTime)
 184          {
 185   1              unsigned char i,j;
 186   1              for(i=0;i<cTime;i++)
 187   1              {
 188   2                      for(j=0;j<250;j++)_nop_();
 189   2                      for(j=0;j<250;j++)_nop_();
 190   2                      for(j=0;j<250;j++)_nop_();
 191   2                      for(j=0;j<250;j++)_nop_();
 192   2              }
 193   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    334    ----
   CONSTANT SIZE    =      3    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      10
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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