#include#define scl TRISC3 //定义时钟线#define sda TRISC4 //定义数据线#define nop() asm("nop")//#define nop() asm("asm")#define uchar unsigned char#define uint unsigned int__CONFIG(0xf73a);uchar no,ack,c,data;uchar code[]={0xff,0x7f,0x5f,0x3f,0x1f,0X00}; //送往24LC04的数据,也是PD口要显示的数据//========================================================================//功能描述:初始化子程序//函数名称:init();void init(){TRISC=0xff; //C口设为输入,RC3为SCL线,RC4为SDA线PORTC=0x00;TRISB=0x00; //B口设为输出,用来显示IC24LC02中读出的内容PORTB=0x00;TRISD=0xff; //D口设为输入,当RD0口为低电平时,开始写,当RD1口为低电来时,开始读。PORTD=0xff;}//========================================================================//功能描述:延时子程序//函数名称:delay_250ms();void delay(){unsigned int d=24999;while(--d);}//========================================================================//功能描述:I2C启动程序//函数名称:start_i2c();void start_i2c(){sda=1; //发送启动条件的数据信号nop();scl=1;nop();nop();nop();nop();nop(); //24LC02要求的建立时间sda=0; //发送起始信号nop();nop();nop();nop();scl=0; //钳住I2C总线,准备发送数据或接收数据nop();nop();}//========================================================================//功能描述:I2C停止程序//函数名称:stop_i2c();void stop_i2c(){sda=0; //发送结束条件的数据信号nop();scl=1;nop();nop();nop();nop();sda=1;nop();nop();nop();nop();}//========================================================================//功能描述:字节传送程序// Function: 将数据C发送出去,可以是地址,也可以是数据,发完后等待回应,并对此状态//位进行操作(不应答或非应答都使ack=0 ),发送数据正常,ack=1;ack=0//表示被控器无应答或损坏//函数名称:send_byte(uchar c);void send_byte(uchar c){uchar bit_count;for(bit_count=0;bit_count<8;bit_count++){ if((c<