at24c256.c
来自「这是利用AVR的ATmega162单片机」· C语言 代码 · 共 65 行
C
65 行
//**********************************
//*版本: Test 1.0
//*作者: XUGUOHONG
//*E-MAIL: KK20Y@YAHOO.COM.CN
//*WEBSITE:microdesign.000webhost.com
//**********************************
// eeprom读写,写之后必须加足够的delay
// iic_wrom(52,0xAB);
// delay_20ms();
// uart0_send(iic_rrom(52)) ;
// at24c256接法
#define EEPROM_WADD 0XA6
#define EEPROM_RADD 0XA7
//**********************************
//* eeprom写数据
//* 16BIT地址,8位数据
//**********************************
void iic_wrom(unsigned int address,unsigned char data)
{
siic_start();
siic_wbyte(EEPROM_WADD); // 器件地址,写命令
siic_test();
siic_wbyte(address>>8); // 寄存器地址高8位
siic_test();
siic_wbyte(address); // 寄存器地址低8位
siic_test();
siic_wbyte(data); // 数据写入
siic_test();
siic_stop();
delay_20ms();
}
//**********************************
//* eeprom读数据
//**********************************
unsigned char iic_rrom(unsigned int address)
{
unsigned char data;
siic_start();
siic_wbyte(EEPROM_WADD); // 器件地址,写命令
siic_test();
siic_wbyte(address>>8); // 寄存器地址高8位
siic_test();
siic_wbyte(address); // 寄存器地址低8位
siic_test();
siic_start();
siic_wbyte(EEPROM_RADD);
siic_test();
data=siic_rbyte();
siic_wone();
siic_stop();
return data;
}
void delay_20ms(void)
{
unsigned int temp;
unsigned char count;
for(temp=0X0FFF;temp>0;temp--) //延时约5ms
{
for(count=1;count>0;count--)
;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?