⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at24c16_driver.c

📁 该压缩包内还有51单片机常用各类外设驱动C程序源码(128*64点阵屏
💻 C
字号:
#include "AT89S52.h"
#include "CONFIG.H"
#include "IIC_Driver.h"

/*-------------------------------------------------------
				向I2C总线写n个字节
				Device_Adr:块地址(0~7)
				Word_Adr:内存地址(0~255)
				*buffer:待发数组指针
				n:发送字节数(1~16)
-------------------------------------------------------*/
void Write_N_Bytes(uchar Device_Adr,uchar Word_Adr,uchar *buffer,uchar n)
{ 
uchar data i; 
Device_Adr=Device_Adr<<1;
IIC_Start() ; 
IIC_Write_Byte(Device_Adr|0xA0);
if(IIC_Check_Acknowledge()) 
	{ 
		IIC_Stop() ; 
		return ;
	} 
IIC_Write_Byte(Word_Adr);
if(IIC_Check_Acknowledge()) 
	{ 
		IIC_Stop() ; 
		return ;
	} 

for(i=0 ;i<n ;i++) 
{ 
	IIC_Write_Byte(*buffer++) ; 
	if(IIC_Check_Acknowledge()) 
	{ 
		IIC_Stop() ; 
		return ;
	} 
} 

IIC_Stop() ; 

} 

/*-------------------------------------------------------
				从I2C总线读n个字节
				Device_Adr:块地址(0~7)
				Word_Adr:内存地址(0~255)
				*buffer:待收数组指针
				n:接收字节数(1~16)
-------------------------------------------------------*/
void Read_N_Bytes(uchar Device_Adr,uchar Word_Adr,uchar *buffer,uchar n) 
{ 
uchar data i ; 
Device_Adr=Device_Adr<<1;
IIC_Start() ; 
IIC_Write_Byte(Device_Adr|0xA0) ; 
if(IIC_Check_Acknowledge()) 
	{ 
		IIC_Stop() ; 
		return ;
	} 
IIC_Write_Byte(Word_Adr);
if(IIC_Check_Acknowledge()) 
	{ 
		IIC_Stop() ; 
		return ;
	} 
IIC_Start();
IIC_Write_Byte(Device_Adr|0xA1) ;  
if(IIC_Check_Acknowledge()) 
	{ 
		IIC_Stop() ; 
		return ;
	} 

for(i=0 ;i<n ;i++) 
{ 
*buffer++=IIC_Read_Byte() ; 
IIC_Acknowledge();
} 
IIC_Stop() ; 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -