📄 i2c.lst
字号:
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 + -