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

📄 main.c

📁 24CXX的读写代码,适用于51单片机.
💻 C
字号:

/*
 File:	mian.c
 说明:	IIC总线器件24C01的读写;
 Author:wolfe
 Data:	2008.10 
*/

#include "at89x52.h"
#include "ES51_II.h"
#include "es51_ii_lib.h"


// 操作结束
void I2c_Stop(void);  
// 操作起始
void I2c_Start(void); 
//读一个字节数据
unsigned char I2c_RdByte(void);	
//写一个字节数据
void I2c_WrByte(unsigned char dat);	


//	24CXX写一字节数据函数
//		slave:	从器件地址,对于ES51-II上的24地址是:0xA0
//		addr:	从器件片内地址
//		dat:	数据
void EEPROM_WrOneByte(unsigned char slave,unsigned char addr,unsigned char dat)
{
	I2c_Start();               		//	启动总线
   	I2c_WrByte( slave & 0xfe );	//	写器件从地址,写器件
	I2c_WrByte( addr );				//	写器件片内地址
   	I2c_WrByte( dat );             	//	发送数据
  	I2c_Stop();                 	//	结束总线

}
//	24CXX读一字节数据函数
//		.....
//		.....
unsigned char EEPROM_RdOneByte(unsigned char slave,unsigned char addr)
{
	unsigned char value;

	I2c_Start();               		//	启动总线
   	I2c_WrByte( slave & 0xfe );	//	写器件从地址,写器件
	I2c_WrByte( addr );				//	写器件片内地址
	//I2c_Stop();

	I2c_Start();
   	I2c_WrByte( slave | 0x01 );		//	写器件从地址,读器件
   	value = I2c_RdByte();             	//	发送数据
  	I2c_Stop();                 	//	结束总线

	return value;
}

//	
void main()
{
	unsigned int tmp;
	unsigned char tmp1;

	unsigned char addr,value,i;
	
	SMGDisplayON();
	EA = 1;

	for( value=0,addr=0; addr<128; addr++,value++ )
		{
		EEPROM_WrOneByte(ADDR_24,addr,value);

		i=250;
		while(i--);								//	读写之间稍延时
		tmp =0;
		tmp = (tmp|addr)<<8;					
		tmp1 = EEPROM_RdOneByte(ADDR_24,addr);

		tmp |= tmp1;
		SMGprintf("%x",tmp);					//	数码管显示地址和读出的数据

		DelayS(1);								//	延时1秒后继续下一地址的读写
		}
	while(1);
}

⌨️ 快捷键说明

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