#include <REG52.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit wd=P3^5;//看门狗
sbit led=P0^3;
sbit I2C_SDA=P1^1;
sbit I2C_SCL=P1^0;
//24c64子函数定义
bit I2C_Start(void);//总线开始
void I2C_Stop(void);//总线结束
void I2C_Ack(void);//总线应答
void I2C_Nack(void);//总线无应答
bit I2C_Send_Byte(uchar);//总线发送字节
uchar I2C_Receive_Byte();//总线接受字节
void writebyte_24c64(uchar addH,uchar addL,uchar data_24c64);//写入单个数据
void Delay(unsigned int i);//延时
//uchar readbyte_24C64(uchar addH,uchar addL);
/*****子函数定义*****/
void Delay(unsigned int i)
{
while(i--);
}
bit I2C_Start(void)
{
Delay(10);
I2C_SDA =1;
Delay(10);
I2C_SCL =1;
Delay(10);
if ( I2C_SDA == 0) return 0;
if ( I2C_SCL == 0) return 0;
I2C_SDA = 0;
Delay(10);
I2C_SCL = 0;
Delay(10);
return 1;
}
void I2C_Stop(void)
{
Delay(10);
I2C_SDA = 0;
Delay(10);
I2C_SCL = 1;
Delay(10);
I2C_SDA = 1;
Delay(10);
}
void I2C_Ack(void)
{ Delay(10);
I2C_SDA=0;
Delay(10);
I2C_SCL=1;
Delay(10);
I2C_SCL=0;
Delay(10);
}
void I2C_Nack(void)
{
Delay(10);
- 1
- 2
前往页