新聞中心

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

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

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

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

本文引用地址:http://2s4d.com/article/201612/324253.htm

演示方法: 下載程序后,數(shù)碼管開(kāi)始顯示自加數(shù)值。片刻后,關(guān)閉學(xué)習(xí)板

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

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

//試驗(yàn)AT24C02EEPROM芯片程序

#include

#include

#define uint unsigned int

#define uchar unsigned char

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

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

bit write=0; //寫24C02的標(biāo)志;

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) //延時(shí)程序

{

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ū)動(dòng)程序////////////////////

void delay1(unsigned char m)

{ unsigned int n;

for(n=0;n

}

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

{

scl=1;

nop();

sda=1;

nop();

}

void start() //啟動(dòng)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) //寫一個(gè)字節(jié)

{

unsigned char i,temp;

temp=j;

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

{

temp=temp<<1;

scl=0;

nop();

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

nop();

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

nop();

}

scl=0;

nop();

sda=1;

nop();

}


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: AT24C02EEPROM讀和

評(píng)論


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

關(guān)閉