《电子DIY》之使用arduino驱动EEPROM器件AT24C02、IIC通信、实物制作

IIC协议和24C02介绍:
见此链接
IIC协议和24C02介绍

adruino实物图:
在这里插入图片描述

整体实物图:
在这里插入图片描述
程序源码:

#include <EEPROM.h>      //EEPROM的类库
int Addr24C02=0;
int led=13;
void setup()
{
    Serial.begin(9600);
}
void clearData(void)
{
    for(int i=0;i<256;i++)
    {
        EEPROM.write(i,0xff);
    }
    digitalWrite(led,HIGH);
    Serial.println("clear data finished"); 
}
void handler(int state)
{
    if(state==1)
    {
        Serial.println("read data is: ");
        readData(0);
        
    }
    else if(state==2)
    {
        Serial.println("write data ing");
        int val = 255;
        int i=0;
        for(i=0;i<256;i++)
        {
            writeData(val--);
        }
        
    }  
    else
      clearData();
}
void loop()
{
   delay(1000);
   handler(0);
   delay(1000);
   handler(2);
   delay(1000);
   handler(1); 
}
void writeData(int value)
{
    EEPROM.write(Addr24C02,value);
    Serial.print(Addr24C02);
    Serial.print(" : \t");
    Serial.print(value,DEC);
    Serial.print("\n");  
    Addr24C02 = Addr24C02 + 1;
    if(Addr24C02 == 512)
    {
        Addr24C02 = 0;
        delay(200);
    }  
}
void readData(int addr)
{
    int value = 0;
    int i=0;
    for(i=0;i<200;i++)
    {
        value = EEPROM.read(addr++);
        Serial.print("Addr24C02: ");
        Serial.print(addr-1);
        Serial.print(" = ");    
        Serial.println(value,DEC);
        Serial.println("");   
    }
    
}

Effect Drawing:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/liuxianfei0810/article/details/105991442