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

📄 24c02.txt

📁 eeprom24c02程序代码
💻 TXT
字号:
#include <stdio.h>
#include <absacc.h>
sbit   led=P1^0;
sbit   led2=P1^1;
sbit scl=P3^5;   //24c02 SCL
sbit sda=P3^4;   //24c02 SDA
sbit DOG=P1^7;   //狗
uchar x24c02_read(uchar address);   //从24c02的地址address中读取一个字节数据
void x24c02_write(uchar address,uchar info);
   //向24c02的address地址中写入一字节数据info
void x24c02_init();    //24c02初始化子程序
void delay1(uchar x);
void flash();
void x24c01_init();
void start();
void stop();
void writex(uchar j);
uchar readx();
void clock();
void delay1(uchar x)
{
    uint i;
    for(i=0;i<x;i++);
    DOG=~DOG;
}
void flash()
{
    uchar u;
    DOG=~DOG;
}
void x24c02_init()
{
    scl=1; flash(); sda=1; flash();
}
void start()
{
    sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();
}
void stop()
{
    sda=0; flash(); scl=1; flash(); sda=1; flash();
}
void writex(uchar j)
{
    uchar i,temp;
    temp=j;
    for (i=0;i<8;i++){
       temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash();
    }
    scl=0; flash(); sda=1; flash();
}
uchar readx()
{
    uchar i,j,k=0;
    scl=0; flash(); sda=1;
    for (i=0;i<8;i++){
       flash(); scl=1; flash();
       if (sda==1) j=1;
       else j=0;
       k=(k<<1)|j; scl=0;
    }
    flash(); return(k);
}
void clock()
{
    uchar i=0;
    scl=1; flash();
    while ((sda==1)&&(i<255))i++;
    scl=0; flash();
}
uchar x24c02_read(uchar address)
{
    uchar i;
    start(); writex(0xa0);
    clock(); writex(address);
    clock(); start();
    writex(0xa1); clock();
    i=readx(); stop();
    delay1(10);
    return(i);
}
void x24c02_write(uchar address,uchar info)
{
    EA=0;
    start(); writex(0xa0);
    clock(); writex(address);
    clock(); writex(info);
    clock(); stop();
    EA=1;
    delay1(50);
}


//====================================================================//
                             main   (){
                           uchar data a=2,b=10,c=0;
                              x24c02_init();
                              x24c02_write(a,b);
                              delay1(200);
                              c=x24c02_read(a);

                              if(c==b)led=0;
                              led2=0;
                              
                              }
//===================================================================//

⌨️ 快捷键说明

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