问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

“24C16”芯片读写程序有那些应用的实例?

发布网友 发布时间:2022-05-19 00:08

我来回答

2个回答

热心网友 时间:2023-11-24 01:20

// ************************************************************
// I2存储器函数区
//
// ============================================================
// SPROM脉冲延时
//
void Sdelay(void)
{
unsigned char n;
for(n=4;n>0;n--);
return;
}
// ============================================================
// SPROM开始位
//
void s24XX(void)
{
SDA24XX=1;SCK24XX=1;
Sdelay();
SDA24XX=0; // Tsu:start=4.7uS
Sdelay();
SCK24XX=0; // Thd:start=4uS
return;
}

// ============================================================
// SPROM停止位
//
void p24XX(void)
{
SDA24XX=0;
Sdelay();SCK24XX=1;
Sdelay();SDA24XX=1; // Tsu:stop=4uS
return;
}

// ============================================================
// 写数据到SPROM数据线
// 返回:ACK状态
bit w24XX(unsigned char c)
{
ACC=c;
for(c=8;c>0;c--)
{
SDA24XX=0x80 & ACC; // 数据高位送SDA针并左移一位
SCK24XX=1;_nop_(); // Clock high time
SCK24XX=0;
_nop_();
}
SDA24XX=1;
_nop_();
SCK24XX=1;CY=SDA24XX;
_nop_();
SCK24XX=0;
Sdelay();
return(CY);
}

// ============================================================
// SPROM字节读
// 参数:地址a
unsigned char rb24XX(unsigned char a)
{
s24XX();
w24XX(0xa0); w24XX(a);
s24XX(); w24XX(0xa1);

SDA24XX=1;
ACC=0; // 利用ACC返回数据
for(a=0;a<8;a++) // 使用a变量兼作循环变量
{
SCK24XX=1;
ACC+=ACC; if(SDA24XX)ACC++; // 读相应位
SCK24XX=0;
Sdelay();
}
p24XX();
return(ACC);
}

// ============================================================
// SPROM字节写
// 参数: 地址a, 数据d
// 返回: 1表示写失败
bit wb24XX(unsigned char a, unsigned char d)
{
s24XX();
w24XX(0xa0); // 控制字
w24XX(a); // 地址
w24XX(d);p24XX(); // 数据

for(a=255;a>0;a--)
{
s24XX();
if(w24XX(0xa0)==0)break;
WDT();
}
p24XX();
return(CY);
}
// SPROM¿ªÊ¼Î»
//
void s24XX(void)
{
SDA24XX=1;SCK24XX=1;
Sdelay();
SDA24XX=0; // Tsu:start=4.7uS
Sdelay();
SCK24XX=0; // Thd:start=4uS
return;
}

热心网友 时间:2023-11-24 01:20

//
************************************************************
//
I2存储器函数区
//
//
============================================================
//
SPROM脉冲延时
//
void
Sdelay(void)
{
unsigned
char
n;
for(n=4;n>0;n--);
return;
}
//
============================================================
//
SPROM开始位
//
void
s24XX(void)
{
SDA24XX=1;SCK24XX=1;
Sdelay();
SDA24XX=0;
//
Tsu:start=4.7uS
Sdelay();
SCK24XX=0;
//
Thd:start=4uS
return;
}
//
============================================================
//
SPROM停止位
//
void
p24XX(void)
{
SDA24XX=0;
Sdelay();SCK24XX=1;
Sdelay();SDA24XX=1;
//
Tsu:stop=4uS
return;
}
//
============================================================
//
写数据到SPROM数据线
//
返回:ACK状态
bit
w24XX(unsigned
char
c)
{
ACC=c;
for(c=8;c>0;c--)
{
SDA24XX=0x80
&
ACC;
//
数据高位送SDA针并左移一位
SCK24XX=1;_nop_();
//
Clock
high
time
SCK24XX=0;
_nop_();
}
SDA24XX=1;
_nop_();
SCK24XX=1;CY=SDA24XX;
_nop_();
SCK24XX=0;
Sdelay();
return(CY);
}
//
============================================================
//
SPROM字节读
//
参数:地址a
unsigned
char
rb24XX(unsigned
char
a)
{
s24XX();
w24XX(0xa0);
w24XX(a);
s24XX();
w24XX(0xa1);
SDA24XX=1;
ACC=0;
//
利用ACC返回数据
for(a=0;a<8;a++)
//
使用a变量兼作循环变量
{
SCK24XX=1;
ACC+=ACC;
if(SDA24XX)ACC++;
//
读相应位
SCK24XX=0;
Sdelay();
}
p24XX();
return(ACC);
}
//
============================================================
//
SPROM字节写
//
参数:
地址a,
数据d
//
返回:
1表示写失败
bit
wb24XX(unsigned
char
a,
unsigned
char
d)
{
s24XX();
w24XX(0xa0);
//
控制字
w24XX(a);
//
地址
w24XX(d);p24XX();
//
数据
for(a=255;a>0;a--)
{
s24XX();
if(w24XX(0xa0)==0)break;
WDT();
}
p24XX();
return(CY);
}
//
SPROM¿ªÊ¼Î»
//
void
s24XX(void)
{
SDA24XX=1;SCK24XX=1;
Sdelay();
SDA24XX=0;
//
Tsu:start=4.7uS
Sdelay();
SCK24XX=0;
//
Thd:start=4uS
return;
}

热心网友 时间:2023-11-24 01:20

// ************************************************************
// I2存储器函数区
//
// ============================================================
// SPROM脉冲延时
//
void Sdelay(void)
{
unsigned char n;
for(n=4;n>0;n--);
return;
}
// ============================================================
// SPROM开始位
//
void s24XX(void)
{
SDA24XX=1;SCK24XX=1;
Sdelay();
SDA24XX=0; // Tsu:start=4.7uS
Sdelay();
SCK24XX=0; // Thd:start=4uS
return;
}

// ============================================================
// SPROM停止位
//
void p24XX(void)
{
SDA24XX=0;
Sdelay();SCK24XX=1;
Sdelay();SDA24XX=1; // Tsu:stop=4uS
return;
}

// ============================================================
// 写数据到SPROM数据线
// 返回:ACK状态
bit w24XX(unsigned char c)
{
ACC=c;
for(c=8;c>0;c--)
{
SDA24XX=0x80 & ACC; // 数据高位送SDA针并左移一位
SCK24XX=1;_nop_(); // Clock high time
SCK24XX=0;
_nop_();
}
SDA24XX=1;
_nop_();
SCK24XX=1;CY=SDA24XX;
_nop_();
SCK24XX=0;
Sdelay();
return(CY);
}

// ============================================================
// SPROM字节读
// 参数:地址a
unsigned char rb24XX(unsigned char a)
{
s24XX();
w24XX(0xa0); w24XX(a);
s24XX(); w24XX(0xa1);

SDA24XX=1;
ACC=0; // 利用ACC返回数据
for(a=0;a<8;a++) // 使用a变量兼作循环变量
{
SCK24XX=1;
ACC+=ACC; if(SDA24XX)ACC++; // 读相应位
SCK24XX=0;
Sdelay();
}
p24XX();
return(ACC);
}

// ============================================================
// SPROM字节写
// 参数: 地址a, 数据d
// 返回: 1表示写失败
bit wb24XX(unsigned char a, unsigned char d)
{
s24XX();
w24XX(0xa0); // 控制字
w24XX(a); // 地址
w24XX(d);p24XX(); // 数据

for(a=255;a>0;a--)
{
s24XX();
if(w24XX(0xa0)==0)break;
WDT();
}
p24XX();
return(CY);
}
// SPROM¿ªÊ¼Î»
//
void s24XX(void)
{
SDA24XX=1;SCK24XX=1;
Sdelay();
SDA24XX=0; // Tsu:start=4.7uS
Sdelay();
SCK24XX=0; // Thd:start=4uS
return;
}

热心网友 时间:2023-11-24 01:20

//
************************************************************
//
I2存储器函数区
//
//
============================================================
//
SPROM脉冲延时
//
void
Sdelay(void)
{
unsigned
char
n;
for(n=4;n>0;n--);
return;
}
//
============================================================
//
SPROM开始位
//
void
s24XX(void)
{
SDA24XX=1;SCK24XX=1;
Sdelay();
SDA24XX=0;
//
Tsu:start=4.7uS
Sdelay();
SCK24XX=0;
//
Thd:start=4uS
return;
}
//
============================================================
//
SPROM停止位
//
void
p24XX(void)
{
SDA24XX=0;
Sdelay();SCK24XX=1;
Sdelay();SDA24XX=1;
//
Tsu:stop=4uS
return;
}
//
============================================================
//
写数据到SPROM数据线
//
返回:ACK状态
bit
w24XX(unsigned
char
c)
{
ACC=c;
for(c=8;c>0;c--)
{
SDA24XX=0x80
&
ACC;
//
数据高位送SDA针并左移一位
SCK24XX=1;_nop_();
//
Clock
high
time
SCK24XX=0;
_nop_();
}
SDA24XX=1;
_nop_();
SCK24XX=1;CY=SDA24XX;
_nop_();
SCK24XX=0;
Sdelay();
return(CY);
}
//
============================================================
//
SPROM字节读
//
参数:地址a
unsigned
char
rb24XX(unsigned
char
a)
{
s24XX();
w24XX(0xa0);
w24XX(a);
s24XX();
w24XX(0xa1);
SDA24XX=1;
ACC=0;
//
利用ACC返回数据
for(a=0;a<8;a++)
//
使用a变量兼作循环变量
{
SCK24XX=1;
ACC+=ACC;
if(SDA24XX)ACC++;
//
读相应位
SCK24XX=0;
Sdelay();
}
p24XX();
return(ACC);
}
//
============================================================
//
SPROM字节写
//
参数:
地址a,
数据d
//
返回:
1表示写失败
bit
wb24XX(unsigned
char
a,
unsigned
char
d)
{
s24XX();
w24XX(0xa0);
//
控制字
w24XX(a);
//
地址
w24XX(d);p24XX();
//
数据
for(a=255;a>0;a--)
{
s24XX();
if(w24XX(0xa0)==0)break;
WDT();
}
p24XX();
return(CY);
}
//
SPROM¿ªÊ¼Î»
//
void
s24XX(void)
{
SDA24XX=1;SCK24XX=1;
Sdelay();
SDA24XX=0;
//
Tsu:start=4.7uS
Sdelay();
SCK24XX=0;
//
Thd:start=4uS
return;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 有I2C接口的EEPROM,它的A0-A2还用吗?(GT24C08) GT24c256A-2CLI-TR BGA芯片资料的用途 手机充电的插孔很松怎么办 lol智勋解说的哪个比赛? 斗鱼玩英雄联盟的智勋身高到得是多少啊? 志勋微博名字叫什么LOL? pdd,志勋,大司马现在英雄联盟技术怎么样? 为什么有的上在苹果手机上有红包功能,有的没有 12306网上购票的时间刷新是几点?急急急。。。在线等 高铁票是不是8点刷新 求一个唱歌发出颤音的方法,复制粘贴的别来,谢谢。 通俗易懂的方法即可,太专业的术语也听不懂 适合搞促销时候放的音乐? 谁能给10个DJ慢摇舞曲?做促销活动的背景音乐。 鲜牛奶可以直接加热喝,而不用加水煮 建行哪张白金信用卡好 牛奶能不能加热水喝 一般商场什么的 做活动时会放什么歌曲 推荐一下 鲜牛奶加热可以加水吗? 男生爆炸头剪什么发型 牛奶怎样加热才是最科学的? 月华剑士2技白虎的问题 利用24c02配合定时器存储数据为什么,存储到256时,就存不进去乱了呢,请高手帮帮忙 单片机读写24c02的问题 人笨51 单片机 怎样操作 24c16 读写UINT型的数? 哪里可以免费下载GB 707-1988标准 C语言,24C02读写16位数据不正常! 为完成母亲遗愿男子坚持几年免费提供茶水? 德州一女子替去世2年母亲送感谢信,你如何看待此女子的行为? 单片机扩展存储24C08时序图那里有,数据存储的原理是怎样的 高考状元为何要带妈妈遗照上清华呢? 有一个女孩为了完成母亲的遗愿伪装成男的跳舞这部动漫叫什么? 为完成母亲的遗愿,建造的房子,对联该怎么写 gbt10781.1是什么标准 海瑞穷的连肉都买不起,为何却娶了三个妻子? 你知道为什么电视剧《将夜》中李渔不自己登基为皇? 19岁女大学生捐献脑死亡母亲器官,这是不是母亲的遗愿? 陈炳炎的草原英雄、慈善事业的先行者陈炳炎 女主叫叶落的古言, 女主是水云宫的宫主,有着倾城之貌,为完成母亲遗愿,并受皇帝嘱托, 下嫁太子, 求一本小说是说女主角是一个明星,她是男主角的妻子,但是为了完成母亲的遗愿——导演父亲的电影! 山东德州女子替去世2年母亲送感谢信,她为何会送感谢信?