📄 i2c.lst
字号:
968 1 return (mask); /* return acknowledge bit */
969 1 }
970
971
972
973 /******************************************************************************/
974 /* Subroutine: I2CMasterRead */
975 /* */
976 /* Description: Read one byte of data from the slave device. Check */
977 /* for WAIT condition before every bit is received. */
978 /* */
979 /* Input: Acknowledge require: */
980 /* 0 - generate LOW output after a byte is received */
981 /* 1 - generate HIGH output after a byte is received */
982 /* */
983 /* Return: received one byte of data from slave device */
C51 COMPILER V5.50, I2C 02/12/03 05:12:36 PAGE 16
984 /* */
985 /* */
986 /******************************************************************************/
987
988 unsigned char I2CMasterRead(unsigned char ack)
989 {
990 1 unsigned char i;
991 1 unsigned int mask, rec_data;
992 1
993 1 rec_data = 0;
994 1 mask = 0x80;
995 1 for (i=0; i<8; i++)
996 1 {
997 2 if (SDA)
998 2 rec_data |= mask;
999 2
1000 2 mask = mask >> 1;
1001 2 SCL = 1; /* clock is high */
1002 2 Delay(2);
1003 2 SCL = 0; /* clock is low */
-
1004 2 }
1005 1
1006 1 if (ack) /* set SDA data first before port direction */
1007 1 SDA = 1; /* send acknowledge */
1008 1 else SDA = 0;
1009 1
1010 1 Delay(3);
1011 1 SCL = 1; /* clock is high */
1012 1 Delay(1);
1013 1 SCL = 0; /* clock is low */
1014 1 SDA = 1;
1015 1 Delay(6); /* to avoid short pulse transition on SDA line */
1016 1 return (rec_data);
1017 1 }
1018
1019
1020 /******************************************************************************/
1021 /* Subroutine: I2CStop */
1022 /* */
1023 /* Description: generate stop condition on the I2C bus */
1024 /* */
1025 /* Input: none */
1026 /* */
1027 /* Return: "0" - the bus line is OK */
1028 /* */
1029 /******************************************************************************/
1030
1031 unsigned char I2CStop()
1032 {
1033 1 SDA = 0;
1034 1 SCL =1 ;
1035 1 Delay(10);
1036 1 SDA = 1;
1037 1 return (0);
1038 1 }
1039
C51 COMPILER V5.50, I2C 02/12/03 05:12:36 PAGE 17
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
T2I0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
T2I1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
P4 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E8H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
P5 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F8H 1
BD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00DFH 1
T2R0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
T2R1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
_I2CMasterRead . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
ack. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0001H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
mask . . . . . . . . . . . . . . . . * REG * DATA U_INT 0002H 2
rec_data . . . . . . . . . . . . . . AUTO DATA U_INT 0000H 2
EADC . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
IADC . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C0H 1
I2FR . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
I3FR . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1
EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C7H 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
T2CM . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
IEX2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C1H 1
IEX3 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C2H 1
IEX4 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C3H 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
IEX5 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C4H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
IEX6 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C5H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
_I2CMasterWrite. . . . . . . . . . . . PUBLIC CODE PROC ----- -----
input_byte . . . . . . . . . . . . . * REG * DATA U_CHAR 0001H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
mask . . . . . . . . . . . . . . . . * REG * DATA U_INT 0002H 2
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
Dev_Sel. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
Sec_Add_Reg. . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
Min_Add_Reg. . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
Hr_Add_Reg . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
DOW_Add_Reg. . . . . . . . . . . . . AUTO DATA U_CHAR 0003H 1
DOM_Add_Reg. . . . . . . . . . . . . AUTO DATA U_CHAR 0004H 1
Mon_Add_Reg. . . . . . . . . . . . . AUTO DATA U_CHAR 0005H 1
Yr_Add_Reg . . . . . . . . . . . . . AUTO DATA U_CHAR 0006H 1
Cont_Add_Reg . . . . . . . . . . . . AUTO DATA U_CHAR 0007H 1
Word_Add . . . . . . . . . . . . . . AUTO DATA U_CHAR 0008H 1
RAM_Size . . . . . . . . . . . . . . AUTO DATA U_CHAR 0009H 1
Tenths_Sec_Add_Reg . . . . . . . . . AUTO DATA U_CHAR 000AH 1
Wdog_Add_Reg . . . . . . . . . . . . AUTO DATA U_CHAR 000BH 1
Al_Mon_Add_Reg . . . . . . . . . . . AUTO DATA U_CHAR 000CH 1
Al_DOM_Add_Reg . . . . . . . . . . . AUTO DATA U_CHAR 000DH 1
Al_Hr_Add_Reg. . . . . . . . . . . . AUTO DATA U_CHAR 000EH 1
Al_Min_Add_Reg . . . . . . . . . . . AUTO DATA U_CHAR 000FH 1
Al_Sec_Add_Reg . . . . . . . . . . . AUTO DATA U_CHAR 0010H 1
Flags_Add_Reg. . . . . . . . . . . . AUTO DATA U_CHAR 0011H 1
SQW_Add_Reg. . . . . . . . . . . . . AUTO DATA U_CHAR 0012H 1
C51 COMPILER V5.50, I2C 02/12/03 05:12:36 PAGE 18
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
Tamper1_Add_Reg. . . . . . . . . . . AUTO DATA U_CHAR 0013H 1
Tamper2_Add_Reg. . . . . . . . . . . AUTO DATA U_CHAR 0014H 1
Sel_RTC_Reg. . . . . . . . . . . . . AUTO DATA U_CHAR 0015H 1
RTC_Data . . . . . . . . . . . . . . AUTO DATA U_CHAR 0016H 1
Sec_Reg. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0017H 1
Min_Reg. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0018H 1
Hr_Reg . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0019H 1
DOW_Reg. . . . . . . . . . . . . . . AUTO DATA U_CHAR 001AH 1
DOM_Reg. . . . . . . . . . . . . . . AUTO DATA U_CHAR 001BH 1
Mon_Reg. . . . . . . . . . . . . . . AUTO DATA U_CHAR 001CH 1
Yr_Reg . . . . . . . . . . . . . . . AUTO DATA U_CHAR 001DH 1
Cont_Reg . . . . . . . . . . . . . . AUTO DATA U_CHAR 001EH 1
Tenths_Sec_Reg . . . . . . . . . . . AUTO DATA U_CHAR 001FH 1
Wdog_Reg . . . . . . . . . . . . . . AUTO DATA U_CHAR 0020H 1
Al_Mon_Reg . . . . . . . . . . . . . AUTO DATA U_CHAR 0021H 1
Al_DOM_Reg . . . . . . . . . . . . . AUTO DATA U_CHAR 0022H 1
Al_Hr_Reg. . . . . . . . . . . . . . AUTO DATA U_CHAR 0023H 1
Al_Min_Reg . . . . . . . . . . . . . AUTO DATA U_CHAR 0024H 1
Al_Sec_Reg . . . . . . . . . . . . . AUTO DATA U_CHAR 0025H 1
Flags_Reg. . . . . . . . . . . . . . AUTO DATA U_CHAR 0026H 1
SQW_Reg. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0027H 1
Tamper1_Reg. . . . . . . . . . . . . AUTO DATA U_CHAR 0028H 1
Tamper2_Reg. . . . . . . . . . . . . AUTO DATA U_CHAR 0029H 1
Interrupts . . . . . . . . . . . . . AUTO DATA U_CHAR 002AH 1
Sec_Data . . . . . . . . . . . . . . AUTO DATA U_CHAR 002BH 1
Min_Data . . . . . . . . . . . . . . AUTO DATA U_CHAR 002CH 1
Hr_Data. . . . . . . . . . . . . . . AUTO DATA U_CHAR 002DH 1
DOW_Data . . . . . . . . . . . . . . AUTO DATA U_CHAR 002EH 1
DOM_Data . . . . . . . . . . . . . . AUTO DATA U_CHAR 002FH 1
Mon_Data . . . . . . . . . . . . . . AUTO DATA U_CHAR 0030H 1
Yr_Data. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0031H 1
j. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0032H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0033H 1
Number_Bytes . . . . . . . . . . . . AUTO DATA U_CHAR 0034H 1
Error_Flag . . . . . . . . . . . . . AUTO DATA U_CHAR 0035H 1
RAM_Data_In. . . . . . . . . . . . . AUTO DATA U_CHAR 0036H 1
RAM_Add. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0037H 1
RAM_Data_Out . . . . . . . . . . . . AUTO DATA U_CHAR 0038H 1
Dev_Add. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0039H 1
RTC_Reg_Size . . . . . . . . . . . . AUTO DATA U_CHAR 003AH 1
RAM_Density. . . . . . . . . . . . . AUTO DATA U_CHAR 003BH 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
T2PS . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1
PCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0087H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
I2C_Init . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
SWDT . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BEH 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C6H 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1
C51 COMPILER V5.50, I2C 02/12/03 05:12:36 PAGE 19
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
EX2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
I2CStart . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
EX3. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
_Delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
count. . . . . . . . . . . . . . . . * REG * DATA U_INT 0006H 2
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
EX4. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
ADM. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00DBH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
EX5. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
EAL. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
EX6. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1
MX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D8H 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
MX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D9H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
MX2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00DAH 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
SDA. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00E8H 1
CLK. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00DEH 1
_putchar . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
Board_Init . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
SCL. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00E9H 1
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BFH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
I2CStop. . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
wchar_t. . . . . . . . . . . . . .
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -