主函数文件:
#include <reg52.h>
#include "./delay/delay.h"
sbit SCL = P2^1;
sbit SDA = P2^2;
bit ack = 0;
#define SUCC 1
#define ERR 0
void iic_start()
{
SDA = 1;
SCL = 1;
delay_us(1);
SDA = 0;
delay_us(1);
SCL = 0;
}
void iic_stop()
{
SDA = 0;
SCL = 1;
delay_us(1);
SDA = 1;
delay_us(1);
SCL = 0;
}
bit iic_send_byte(unsigned char byte)
{
unsigned char i;
for(i = 0; i < 8; i++)
{
SDA = byte & 0x80;
SCL = 1;
delay_us(1);
SCL = 0;
delay_us(1);
byte <<= 1;
}
SCL = 1;
SDA = 1;
delay_us(1);
if(0 == SDA)
{
ack = 1;
}
else
{
ack = 0;
}
SCL = 0;
return ack;
}
unsigned char iic_rcv_byte()
{
unsigned char i;
unsigned char temp;
unsigned char a;
SDA = 1;
for(i = 0; i <