新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AT24C02EEPROM芯片《實現(xiàn)對其讀和寫》

AT24C02EEPROM芯片《實現(xiàn)對其讀和寫》

作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
程序功能: 驅(qū)動 AT24C02EEPROM芯片,實現(xiàn)對其的讀和寫。讓其保存計時器的輸出sec值。

并可以保證在系統(tǒng)掉電后,重新加電時,可以讀出上次掉電瞬間所保存的值。

本文引用地址:http://m.butianyuan.cn/article/201612/324253.htm

演示方法: 下載程序后,數(shù)碼管開始顯示自加數(shù)值。片刻后,關閉學習板

電源,然后打開,會發(fā)現(xiàn)數(shù)碼管上顯示的數(shù)值是斷電瞬間所顯

示的數(shù)值。(也即由AT24C02EEPROM芯片所記憶的數(shù)值。)

//試驗AT24C02EEPROM芯片程序

#include

#include

#define uint unsigned int

#define uchar unsigned char

unsigned char sec,num; //定義計數(shù)值,每過1秒,sec加1

unsigned int times; //定時中斷次數(shù)

bit write=0; //寫24C02的標志;

sbit sda=P2^0; //IO口定義

sbit scl=P2^1;

sbit dula=P2^6;

sbit wela=P2^7;

unsigned char j,k;

void delay(unsigned char i) //延時程序

{

for(j=i;j>0;j--)

for(k=125;k>0;k--);

}

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //數(shù)碼管編碼

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void nop()

{

_nop_();

_nop_();

}

void display(uchar a,uchar b) //顯示程序

{

dula=0;

P0=table[a]; //顯示百位

dula=1;

dula=0;

wela=0;

P0=0x7e;

wela=1;

wela=0;

delay(5);

dula=0;

P0=table[b]; //顯示十位

dula=1;

dula=0;

wela=0;

P0=0x7d;

wela=1;

wela=0;

delay(5);

}

/////////24C02讀寫驅(qū)動程序////////////////////

void delay1(unsigned char m)

{ unsigned int n;

for(n=0;n

}

void init() //24c02初始化子程序

{

scl=1;

nop();

sda=1;

nop();

}

void start() //啟動I2C總線

{

sda=1;

nop();

scl=1;

nop();

sda=0;

nop();

scl=0;

nop();

}

void stop() //停止I2C總線

{

sda=0;

nop();

scl=1;

nop();

sda=1;

nop();

}

void writebyte(unsigned char j) //寫一個字節(jié)

{

unsigned char i,temp;

temp=j;

for (i=0;i<8;i++)

{

temp=temp<<1;

scl=0;

nop();

sda=CY; //temp左移時,移出的值放入了CY中

nop();

scl=1; //待sda線上的數(shù)據(jù)穩(wěn)定后,將scl拉高

nop();

}

scl=0;

nop();

sda=1;

nop();

}


上一頁 1 2 下一頁

關鍵詞: AT24C02EEPROM讀和

評論


技術(shù)專區(qū)

關閉