標(biāo)題:
常用的EEPROM器件AT24C02的驅(qū)動(dòng)程序以及IIC協(xié)議驅(qū)動(dòng)
[打印本頁]
作者:
iCekrY
時(shí)間:
2018-10-25 17:36
標(biāo)題:
常用的EEPROM器件AT24C02的驅(qū)動(dòng)程序以及IIC協(xié)議驅(qū)動(dòng)
AT24C02的驅(qū)動(dòng)可以作為模塊化的程序直接使用非常方便,但需要配合著IIC協(xié)議共同使用,在這里分享給大家。
單片機(jī)源程序:
#include "AT24C02.H"
#include "IIC.H"
void At24c02_write_add(unsigned char address, unsigned char dat)
{
IIC_start();
IIC_write_byte(0xa0);
IIC_respons();
IIC_write_byte(address);
IIC_respons();
IIC_write_byte(dat);
IIC_respons();
IIC_stop();
}
//由地址讀取
unsigned char At24c02_read_add(unsigned char address)
{
unsigned char dat;
IIC_start();
IIC_write_byte(0xa0);
IIC_respons();
IIC_write_byte(address);
IIC_respons();
IIC_start();
IIC_write_byte(0xa1);
IIC_respons();
dat=IIC_read_byte();
IIC_stop();
return dat;
}
void At24c02_write_page(unsigned char address,unsigned char dat[],unsigned char Cnt)
{
unsigned char i;
IIC_start();
IIC_write_byte(0xa0);
IIC_respons();
IIC_write_byte(address);
IIC_respons();
for(i=0;i<Cnt;i++)
{
IIC_write_byte(dat[i]);
IIC_respons();
}
IIC_stop();
}
void At24c02_read_page(unsigned char address,unsigned char dat[],unsigned char Cnt)
{
unsigned char i,j;
IIC_start();
IIC_write_byte(0xa0);
IIC_respons();
IIC_write_byte(address);
IIC_respons();
IIC_start();
IIC_write_byte(0xa1);
IIC_respons();
for(i=0;i<Cnt;i++)
{
dat[i]=IIC_read_byte();
IIC_SDA=0; //這里必須有,是MCU向EEPROM發(fā)送
IIC_SCL=1; //應(yīng)答脈沖
for(j=20;j>0;j--);
IIC_SCL=0;
}
IIC_stop();
}
復(fù)制代碼
0.png
(41.48 KB, 下載次數(shù): 31)
下載附件
2018-10-25 23:37 上傳
更多詳細(xì)代碼和頭文件申明都在壓縮文件里 親測。
全部資料51hei下載地址:
AT24C02驅(qū)動(dòng)和IIC協(xié)議.rar
(1.62 KB, 下載次數(shù): 41)
2018-10-25 17:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
KB1996
時(shí)間:
2018-12-9 09:07
n你這樣不就全寫到一個(gè)地址了么,不會(huì)覆蓋嗎
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1