sbit A2 =P2^0; //ADDRESS INPUT
sbit SCL=P2^1; //SEAIAL CLOCK INPUT
sbit SDA=P2^2; //SERIAL DATA
sbit led2=P3^1;
//SCL=1时SDA下降沿表示开始
void eeprom_start(void)
{
SCL=1;
;;
SDA=0;
;;
SCL=0;
}
//SCL=1时SDA出现上升沿表示停止
void eeprom_stop(void)
{
SCL=1;
;;
SDA=1;
;;
SCL=0;
}
//AT24C02写一个字节
void eeprom_write(uint8 x)
{
uint8 a;
for(a=0;a<8;a++)
{
SDA=(bit)(x&0x80);
SCL=1;
;;
SCL=0;
;;
x<<=1;
}
}
void respons(void)
{
SDA=1;
SCL=1;
;;
while(SDA==1);
buzzer=~buzzer;
SCL=0;
;;
}
//AT24C08读操作
uint8 eeprom_read()
{
uint8 a,b;
SCL=1;
for(a=0;a<8;a++)
{
b<<=1;
SCL=0;
;;
SCL=1;
;;
b=b|SDA;
}
return b;
} |