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

📄 i2c.lst

📁 电子称重的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 172          *               如果总共有六次写入失败,LCD显示E2P ERR的内容,此时专业人员应检查
 173          *               出错原因,系统停止工作。
 174          **************************************************************************/
 175          void E_write(Uchar Address,Uchar E_data)
 176          {
 177   1      Uchar i;
 178   1      
 179   1       for(i=0;i<3;i++)
C51 COMPILER V8.02   I2C                                                                   02/09/2007 11:18:00 PAGE 4   

 180   1       {EA=0;
 181   2        E_address(Address);
 182   2         I_send(E_data);
 183   2          I_stop();
 184   2          EA=1;
 185   2          delayms(10);
 186   2          Address=Address+E2PROM_bias;
 187   2       }
 188   1      }
 189          
 190          /**************************************************************************
 191          *      函数原型:Uchar E_read(Uchar Address);
 192          *      功    能:从24C02中读出地址为Address单元以及与它相对应的两个备份单元的内容,
 193          *               如果三个都一样,那么返回值就是其中一个值;如果两个一样,另一个不 一样,
 194          *               那么一样的值做为返回值;如果三个都不一样,那么认为中间的值做为返回值。
 195          *               如果三个值有不一样的情况下,必须重新写入。以便三个值都一致。
 196          *               如果读出三个数的失败的次数达到六次, LCD显示E2P   ERR的内容,此时专业人员应检查
 197          *               出错原因,系统停止工作。
 198          **************************************************************************/
 199          Uchar E_read(Uchar Address)
 200          {
 201   1      Uchar i;
 202   1      Uchar accept[3];
 203   1       for(i=0;i<3;i++)
 204   1       {
 205   2       EA=0;
 206   2        E_address(Address);
 207   2         I_start();
 208   2         I_send(READ);
 209   2          accept[i]=I_receive();
 210   2          I_clock();
 211   2          I_stop();
 212   2          EA=1;
 213   2          delayms(2);
 214   2          Address=Address+E2PROM_bias;
 215   2        }
 216   1           if((accept[1]==accept[0])&&(accept[1]==accept[2]))return(accept[1]);
 217   1           else  if((accept[1]!=accept[0])&&(accept[1]!=accept[2]))
 218   1            {E_err=1; return(accept[1]);}
 219   1           else  if(accept[0]==accept[2])accept[1]=accept[0];
 220   1      
 221   1      
 222   1       E_write(Address,accept[1]);
 223   1       return(accept[1]);
 224   1      }
 225          
C51 COMPILER V8.02   I2C                                                                   02/09/2007 11:18:00 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
_E_readex. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Address. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  E_data . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0001H  3
  datan. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0005H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
SSENS. . . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  6
  ssenn. . . . . . . . . . . . . . . .  MEMBER   -----  FLOAT    0000H  4
  ssenn2 . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0004H  1
  dot. . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
I_receive. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  I_data . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
_E_writeex . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Address. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  E_data . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0001H  3
  datan. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0005H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
UNITS. . . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  13
  unitshow . . . . . . . . . . . . . .  MEMBER   -----  PTR      0000H  3
  unitn. . . . . . . . . . . . . . . .  MEMBER   -----  FLOAT    0003H  4
  dotm . . . . . . . . . . . . . . . .  MEMBER   -----  CHAR     0007H  1
  unitbit. . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0008H  4
  unitmode . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000CH  1
HOLDSET. . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  6
  holdd. . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  holdt. . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  holdweight . . . . . . . . . . . . .  MEMBER   -----  FLOAT    0002H  4
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
_E_read. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Address. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  accept . . . . . . . . . . . . . . .  AUTO     DATA   ARRAY    0002H  3
WP . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A4H  1
ADCHIP . . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  2
  zero . . . . . . . . . . . . . . . .  MEMBER   -----  CHAR     0000H  1
  gain . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
_E_write . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Address. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  E_data . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
_I_send. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  I_data . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
I_clock. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  sample . . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
_delayms . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
SCALESET . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  11
  scap . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  scapex . . . . . . . . . . . . . . .  MEMBER   -----  CHAR     0001H  1
C51 COMPILER V8.02   I2C                                                                   02/09/2007 11:18:00 PAGE 6   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


  ssens. . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  unit . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0003H  1
  filmode. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0004H  1
  zeromode . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
  stamode. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0006H  1
  ztrmode. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0007H  1
  linem. . . . . . . . . . . . . . . .  MEMBER   -----  CHAR     0008H  1
  linedot. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0009H  1
  flag . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000AH  1
SDA. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A6H  1
I_start. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
I_init . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
COM. . . . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  3
  baud . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  add. . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  mode . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
SCALENOW . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  16
  weight . . . . . . . . . . . . . . .  MEMBER   -----  FLOAT    0000H  4
  tare . . . . . . . . . . . . . . . .  MEMBER   -----  FLOAT    0004H  4
  zero . . . . . . . . . . . . . . . .  MEMBER   -----  LONG     0008H  4
  ad . . . . . . . . . . . . . . . . .  MEMBER   -----  LONG     000CH  4
SCL. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A5H  1
MSG. . . . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  2
  message. . . . . . . . . . . . . . .  MEMBER   -----  CHAR     0000H  1
  param. . . . . . . . . . . . . . . .  MEMBER   -----  CHAR     0001H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
SCALESYS . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  20
  rule . . . . . . . . . . . . . . . .  MEMBER   -----  FLOAT    0000H  4
  cweight. . . . . . . . . . . . . . .  MEMBER   -----  FLOAT    0004H  4
  hov. . . . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0008H  4
  lov. . . . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   000CH  4
  units. . . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0010H  2
  sysunits . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0012H  2
E_err. . . . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
_E_address . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Address. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
I_stop . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
va_list. . . . . . . . . . . . . . . .  TYPEDEF  -----  PTR      -----  3
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1
SCAPS. . . . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  6
  scapn. . . . . . . . . . . . . . . .  MEMBER   -----  FLOAT    0000H  4
  low. . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0004H  1
  high . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    399    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      22
   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 + -