码迷,mamicode.com
首页 > 其他好文 > 详细

单片机模拟 IIC 总线与 EEPROM(AT24C02)通信

时间:2014-05-01 21:58:58      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:嵌入式   单片机   通信   存储   数据   

数据有效性:

mamicode.com,码迷

起始和终止信号时序:

mamicode.com,码迷

设备地址:

mamicode.com,码迷

写字节时序:

mamicode.com,码迷

读数据时序:

mamicode.com,码迷

函数模拟 IIC 总线 时序:

/**************************************/
/******模拟I2C总线操作函数*************/
/**************************************/
//延时函数
void Delay()
{ ; ; }
//初始化
void I2C_Init()
{
	SDA = 1;
	SCL = 1;
}
//起始信号
void I2C_Start()
{
	SDA = 1;
	Delay();
	SCL = 1;
	Delay();
	SDA = 0;
	Delay();
}
//终止信号
void I2C_Stop()
{
	SDA = 0;
	Delay();
	SCL = 1;
	Delay();
	SDA = 1;
	Delay();
}
//应答信号
void I2C_Acknowledge()
{
	unsigned char i;
	SCL = 1;
	Delay();
	while((SDA == 1) && (i<250)){ //在一定时间内等待应答信号
		i++;
	}
	SCL = 0;
	Delay();
}
//写一个字节
void I2C_WriteByte(unsigned char Data)
{
	unsigned char i,temp;
	temp = Data;
	SCL = 0;
	Delay();
	for(i = 0;i < 8;i++){
		temp = temp<<1;	
		SDA = CY;     //CY为PSW寄存器的溢出位
		Delay();
		SCL = 1;
		Delay();
		SCL = 0;
		Delay();
	}
	SDA = 1;
	Delay();
}
//读一个字节
unsigned char I2C_ReadByte()
{
	unsigned char i,temp,Data;
	SCL = 0;
	Delay();
	SDA = 1;
	Delay();
	for(i = 0;i < 8;i++){
		SCL = 1;
		Delay();
		temp = SDA;
		Data = (Data<<1)|temp;
		SCL = 0;
		Delay();
	}
	return Data;
}
//在特定位置写一个字节数据
void I2C_WriteByteAt(unsigned char address,unsigned char Data)
{
	I2C_Init();
	I2C_Start();
	I2C_WriteByte(0xa0);//写器件地址,最后一位表示数据方向
	I2C_Acknowledge();
	I2C_WriteByte(address);//写存储地址
	I2C_Acknowledge();
	I2C_WriteByte(Data);//写数据
	I2C_Acknowledge();
	I2C_Stop();
}
//从特定位置读一个字节数据
unsigned char I2C_ReadByteAt(unsigned char address)
{
	unsigned char Data;
	I2C_Init();
	I2C_Start();
	I2C_WriteByte(0xa0);//写器件地址,最后一位表示数据方向
	I2C_Acknowledge();
	I2C_WriteByte(address);//写存储地址
	I2C_Acknowledge();
	I2C_Start();
	I2C_WriteByte(0xa1);//再次写器件地址,注意改变数据方向
	I2C_Acknowledge();
	Data = I2C_ReadByte();//读数据
	I2C_Stop();
	return Data;
}


单片机模拟 IIC 总线与 EEPROM(AT24C02)通信,码迷,mamicode.com

单片机模拟 IIC 总线与 EEPROM(AT24C02)通信

标签:嵌入式   单片机   通信   存储   数据   

原文地址:http://blog.csdn.net/crazy_xiaohe/article/details/24813389

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!