logo

AVR AT24C02 程序

以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!

/*********************************************************************
 微 雪 电 子   WaveShare   http://www.waveShare.net             
目    的:   建立AT24C02操作库
目标系统:   基于AVR单片机                                                
应用软件:   ICCAVR                                                     
版    本:   Version 1.0                                                      
圆版时间:   2005-06-25
开发人员:   SEE
说    明:   若用于商业用途,请保留此段文字或注明代码来源
  深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权    
*********************************************************************/

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
版本更新记录:

----------------------------------------------------------------------
实验内容:
写入一些测试数据进EEPROM,再读出,使用PA口的LED做指示,观测是否与写入一致。
----------------------------------------------------------------------
硬件连接:
将PA口的LED指示灯开关切换到"ON"状态。
将AT24CXX的硬件地址A0、A1、A2使用短路帽短接至“-”。
AT24CXX:VCC、GND、SDA、SCL
| | | |
SMK1632:VCC、GND、SDA、SCL
----------------------------------------------------------------------
注意事项:
(1)若有加载库函数,请将光盘根目录下的“库函数”下的“ICC_H”文件夹拷到D盘
(2)请详细阅读“使用必读”及相关资料。
----------------------------------------------------------------------10101010101010101010101010101010101010101010101010101010101010101010*/

#include <iom16v.h>

#define RD_DADR 0xA1 //read device-address
#define WR_DADR 0xA0 //write device-address
#include "D:\ICC_H\AT24CXX.H"

#define DISP_DDR DDRA
#define DISP_PORT PORTA

/*--------------------------------------------------------------------
函数名称:AT24C02
函数功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void errDisp()
{
DISP_PORT = 0X55;
delay50ms(4);
DISP_PORT = 0X00;
delay50ms(4);
DISP_PORT = 0XAA;
delay50ms(4);
DISP_PORT = 0X00;
delay50ms(4);
}
/*--------------------------------------------------------------------
函数全称:AT24C02
函数功能:
注意事项:
提示说明:假设系统时钟为16M,则TWI波特率=CLK/(16+2*(TWBR)*4)=400K
输 入:
返 回:
--------------------------------------------------------------------*/
void twi_init() //TWI(I2C)初始化
{
TWBR = 0X03; //设置TWI波特率
TWSR &= 0XFC; //设置TWI预分频 为 1
}
/*--------------------------------------------------------------------
函数名称:AT24C02
函数功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void main(void)
{
uint8 adr,WrDat,t;
uint8 *pRdDat=&t; //随便给"*pRdDat"一个具体地址,以免内存发生错误

DISP_DDR = 0XFF;
twi_init();

adr=0x20;
WrDat=0x33;
if( AT24CXX_Write(adr,WrDat)!=AT24CXX_ERR ) //AT24CXX写成功?
{
delay50ms(1); //等待EERPOM写完
if( AT24CXX_Read(adr,pRdDat)!=AT24CXX_ERR ) //AT24CXX读成功?
DISP_PORT=*pRdDat;
else
errDisp();
}
else
errDisp();
while(1);
}


 相关AVR资料说明

可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535

 相关AVR型号资料

ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny26 ATtiny2313
ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32
ATmega64 ATmega128 ATmega162 ATmega169 ATmega8515 ATmega8535

AVR AT24C02 程序

——