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

📄 i2c.lst

📁 I2C实用源代码。KEIL C51编译器编写。
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -