一、C51读写AT24C04源代码
/*=============================================*/
/*;***********************************/
/*;起动24C01时序*/
void Start()
{
SCL=1;
SDA=1;
SDA=0;
SCL=0;
}
/*;************************************/
/*;停止24C01时序*/
void Stop()
{
SDA=0;
SCL=1;
SDA=1;
}
/*;**************************************/
/*;检测24C01的响应信号*/
bit ACK()
{
bit c;
SDA=1;
SCL=1;
c=SDA;
SCL=0;
return c;
}
/*;************************************/
/*;往24C01发一8位数据*/
void SendChar(unsigned char ch)
{
unsigned char i;
i=8;
do
{
SDA=(ch&0x80);
SCL=1;
SCL=0;
ch《《=1;
}while(--i!=0);
}
/*;**************************************/
/*;从24C01接收一8位数据*/
unsigned char RecChar()
{
unsigned char i,j;
i=8;
do
{
SCL=1;
j=(j《《1)|SDA;
SCL=0;
}while(--i!=0);
return j;
}
//;**************************************
/*;********************************/
/*;往24C01写一字节*/
void WriteChar(unsigned int addr,unsigned char ch)
{
unsigned char c;
c=((*((unsigned char *)&addr))《《1)&0x02;