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

📄 contr.lst

📁 EEPROM局部抄写软件,可以任意设置地址,抄写一段数据,数据由母片提供.
💻 LST
字号:
C51 COMPILER V7.06   CONTR                                                                 03/04/2005 11:38:33 PAGE 1   


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

stmt level    source

   1          #include"reg52.h"
   2          #include "intrins.h"
   3          #define TRUE  1
   4          #define FLASE 0
   5          #define uchar unsigned char
   6          #define uint  unsigned int
   7          #define ulong unsigned long
   8          #define _Nop() _nop_()
   9          sbit SDA2=P1^3;
  10          sbit SCL1=P1^0;
  11           bit ack1;
  12          ////////////////////////////////
  13          void JIYI_StartI2c( )
  14          {
  15   1      
  16   1              SDA2 = 1;
  17   1              _Nop();
  18   1              _Nop();
  19   1              _Nop();
  20   1              SCL1 = 1;
  21   1              _Nop();    //  after stop must wait > 4.7 can to new start
  22   1             _Nop();
  23   1             _Nop();
  24   1              _Nop();
  25   1              _Nop();
  26   1              _Nop();
  27   1              _Nop();
  28   1              SDA2 = 0;
  29   1              _Nop();    //  the start signal keep up to > 4.0
  30   1              _Nop();
  31   1              _Nop();
  32   1              _Nop();
  33   1             _Nop();
  34   1              _Nop();
  35   1              _Nop();
  36   1              SCL1 = 0;
  37   1              _Nop();    // T_low > 4.7
  38   1              _Nop();
  39   1             _Nop();
  40   1              _Nop();
  41   1             _Nop();
  42   1              _Nop();
  43   1              _Nop();
  44   1      
  45   1      }
  46          
  47          void JIYI_StopI2c()
  48          {
  49   1              SDA2 = 0;
  50   1              _Nop();
  51   1              _Nop();
  52   1          SCL1 = 1;
  53   1              _Nop();
  54   1              _Nop();
  55   1              _Nop();
C51 COMPILER V7.06   CONTR                                                                 03/04/2005 11:38:33 PAGE 2   

  56   1              _Nop();
  57   1              _Nop();
  58   1              _Nop();
  59   1              _Nop();
  60   1              SDA2 = 1;
  61   1              _Nop();
  62   1              _Nop();
  63   1              _Nop();
  64   1              _Nop();
  65   1              _Nop();
  66   1      }
  67          
  68          void JIYI_Send_byte( uchar c )
  69          {
  70   1              uchar BitCnt;
  71   1              for( BitCnt = 0; BitCnt < 8; BitCnt ++ )
  72   1              {
  73   2                      if((c << BitCnt) & 0x80) SDA2 = 1;
  74   2                      else SDA2 = 0;
  75   2                      _Nop();
  76   2                      _Nop();
  77   2                      _Nop();
  78   2                      SCL1 = 1;
  79   2                      _Nop();
  80   2                      _Nop();
  81   2                      _Nop();
  82   2                      _Nop();
  83   2                      _Nop();
  84   2                      _Nop();
  85   2                      _Nop();
  86   2                      SCL1 = 0;
  87   2                      _Nop();
  88   2                      _Nop();
  89   2                     _Nop();
  90   2              }
  91   1              _Nop();
  92   1              _Nop();
  93   1              _Nop();
  94   1              SDA2 = 1;
  95   1              _Nop();
  96   1             _Nop();
  97   1              _Nop();
  98   1              SCL1 = 1;
  99   1              _Nop();
 100   1              _Nop();
 101   1             _Nop();
 102   1              _Nop();
 103   1              _Nop();
 104   1             _Nop();
 105   1              if (SDA2 == 1) ack1 =0;
 106   1              else ack1 = 1;
 107   1              SCL1 = 0;
 108   1              _Nop();
 109   1              _Nop();
 110   1              _Nop();
 111   1              _Nop();
 112   1      }
 113          
 114          uchar JIYI_Rcv_byte()
 115          {
 116   1              uchar retc;
 117   1              uchar BitCnt;
C51 COMPILER V7.06   CONTR                                                                 03/04/2005 11:38:33 PAGE 3   

 118   1      
 119   1              retc = 0;
 120   1              SDA2 = 1;
 121   1              for( BitCnt = 0 ; BitCnt < 8; BitCnt ++)
 122   1              {
 123   2                      _Nop();
 124   2                      _Nop();
 125   2                      _Nop();
 126   2                      SCL1 = 0;
 127   2                      _Nop();
 128   2                      _Nop();
 129   2                      _Nop();
 130   2                      _Nop();
 131   2                      _Nop();
 132   2                      _Nop();
 133   2                      _Nop();
 134   2                      SCL1 = 1;
 135   2                      _Nop();
 136   2                      _Nop();
 137   2                      _Nop();
 138   2                      _Nop();
 139   2                      _Nop();
 140   2                      _Nop();
 141   2                      _Nop();
 142   2                      retc = retc << 1;
 143   2                      if (SDA2 == 1) retc= retc +1;
 144   2                      _Nop();
 145   2                      _Nop();
 146   2                      _Nop();
 147   2                      _Nop();
 148   2          }
 149   1              SCL1 = 0;
 150   1              _Nop();
 151   1              _Nop();
 152   1              _Nop();
 153   1              _Nop();
 154   1         return(retc);
 155   1      }
 156          
 157          void JIYI_AckI2c( bit a )
 158          {
 159   1              if ( a == 0) SDA2 = 0;
 160   1              else SDA2 = 1;
 161   1              _Nop();
 162   1              _Nop();
 163   1              _Nop();
 164   1              _Nop();
 165   1              _Nop();
 166   1          SCL1 = 1;
 167   1              _Nop();
 168   1              _Nop();
 169   1              _Nop();
 170   1              _Nop();
 171   1              _Nop();
 172   1              _Nop();
 173   1              SCL1 = 0;
 174   1              _Nop();
 175   1              _Nop();
 176   1              _Nop();
 177   1      }
 178          ///////////////////////
 179          bit JIYI_RS16K ( uchar sla, uchar suba, uchar *s, uchar no )
C51 COMPILER V7.06   CONTR                                                                 03/04/2005 11:38:33 PAGE 4   

 180          {
 181   1              uchar i;
 182   1              JIYI_StartI2c ();
 183   1              JIYI_Send_byte (sla);
 184   1              if( ack1 == 0 ) return (0);
 185   1              JIYI_Send_byte (suba);
 186   1                      if (ack1 == 0 ) return (0);
 187   1              JIYI_StartI2c();
 188   1              JIYI_Send_byte(sla + 1);
 189   1                      if ( ack1 == 0) return ( 0 );
 190   1              for(i =0;i< no -1; i++)
 191   1                      {
 192   2                      *s = JIYI_Rcv_byte();
 193   2                      JIYI_AckI2c(0);
 194   2                      s++;
 195   2                      }
 196   1              *s = JIYI_Rcv_byte();
 197   1              JIYI_AckI2c(1);
 198   1              JIYI_StopI2c();
 199   1              return(1);
 200   1      }
 201          /////////////////////////////////////////////
 202            bit JIYI_SendStr16K( uchar sla, uchar suba, uchar *s, uchar no )
 203          {
 204   1              uchar i;
 205   1              JIYI_StartI2c();
 206   1              JIYI_Send_byte(sla);
 207   1              if(ack1 == 0)return (0);
 208   1              JIYI_Send_byte(suba);
 209   1                 if(ack1 == 0)return (0);
 210   1              for( i = 0; i < no ;i ++)
 211   1              {
 212   2                      JIYI_Send_byte(*s);
 213   2                      if(ack1 == 0)return (0);
 214   2                      s++;
 215   2               }
 216   1               JIYI_StopI2c();
 217   1               return (1);
 218   1      }
 219                  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    350    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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