“AVR AT24C02 程序”的版本间的差异

来自丢石头百科
(目 的: 建立AT24C02操作库 目标系统: 基于AVR单片机 应用软件: ICCAVR)
 
(文本替换 - 替换“www.waveshare.net”为“{{SERVERNAME}}”)
第3行: 第3行:
  
 
/*********************************************************************
 
/*********************************************************************
 微 雪 电 子   WaveShare   <a class="Blue_2_12px_" href="http://www.waveshare.net/" style="color: rgb(7, 66, 184);">http://www.waveShare.net
+
 微 雪 电 子   WaveShare   <a class="Blue_2_12px_" href="http://{{SERVERNAME}}/" style="color: rgb(7, 66, 184);">http://www.waveShare.net
 
             
 
             
 
目    的:   建立AT24C02操作库
 
目    的:   建立AT24C02操作库

2019年11月19日 (二) 09:21的版本

<tbody></tbody>

/*********************************************************************  微 雪 电 子   WaveShare   <a class="Blue_2_12px_" href="http://wiki.diustou.com/" style="color: rgb(7, 66, 184);">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*/
  1. include <iom16v.h></iom16v.h>
  2. define RD_DADR 0xA1 //read device-address
  3. define WR_DADR 0xA0 //write device-address
  4. include "D:\ICC_H\AT24CXX.H"
  5. define DISP_DDR DDRA
  6. 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); }