永发信息网

怎样在STC89c52单片机的EEPROM里写入和读出一个unsigned int型的数据啊?

答案:1  悬赏:20  手机版
解决时间 2021-11-08 03:15
怎样在STC89c52单片机的EEPROM里写入和读出一个unsigned int型的数据啊?
最佳答案
下面是我之前写的stc的程序,你可以参考下,都是差不多的。
#include
unsigned char data TSET1,TSET2;
void eeprom_write(void); //eeprom写
unsigned char eeprom_read(void); //eeprom读
void eeprom_erase(void); //eeprom擦出
void delay(unsigned char t); //延时
void timerset(void); //延时时间的设定
sfr ISP_DATA = 0xe2;
sfr ISP_ADDRH = 0xe3;
sfr ISP_ADDRL = 0xe4;
sfr ISP_CMD = 0xe5;
sfr ISP_TRIG = 0xe6;
sfr ISP_CONTR = 0xe7;

main()
{
unsigned char flag2=0;
TSET1=10;
eeprom_erase();//擦出
eeprom_write();//写
TSET2=eeprom_read();//读
P1_0=1;//开启振动
while(1)
{
while(flag2==0)
{
timerset();
while(P3_2==1);
if(P3_2==0)
{ delay(TSET2);
P1_0=0;
flag2=1;
}
}

while(flag2==1)
{
timerset();
while(P3_2==0);//等待
if(P3_2==1)
{
delay(TSET2);
P1_0=1;
flag2=0;
}
}

}

}

void timerset(void)
{
unsigned char flag3=0,a=0;
if(P3_3==0)//增加
{
for(a=0;a<10;a++);
if(P3_3==0)
{
while(P3_3==0);
if(TSET1<20) TSET1++;
flag3=1;
}
}

if(P3_4==0)//减小
{
for(a=0;a<10;a++);
if(P3_4==0)
{
while(P3_4==0);
if(TSET1>1) TSET1--;
flag3=1;
}
}

if(flag3) //设定完毕后更新EEPROM
{
eeprom_erase();//擦出
eeprom_write();//写
TSET2=eeprom_read();//读
flag3=0;
}
}

void eeprom_write(void)
{
unsigned char j;

ISP_ADDRH=0x22;//选择存放数据的高八位地址寄存器
ISP_ADDRL=0x22;//选择存放数据的低八位地址寄存器

ISP_CMD=0x02;//命令模式触发对flash写 ,0x01读,0x02写,0x03擦除

ISP_DATA=TSET1;//存放数据

ISP_CONTR=0x9a;//使能ISP、IAP,,ISPEN=1允许改变FLASH,SWBS=0程序从主程序启动,等待时间为010

ISP_TRIG=0x46;//对ISP_TRIG先写0x46
ISP_TRIG=0xB9;//对ISP_TRIG先写0xB9,使ISP/IAP命令生效

for(j=0;j<2;j++);

}

unsigned char eeprom_read(void)
{
unsigned char j;

ISP_ADDRH=0x22;
ISP_ADDRL=0x22;

ISP_CMD=0x01;

ISP_CONTR=0x9a;

ISP_TRIG=0x46;
ISP_TRIG=0xB9;

for(j=0;j<2;j++);
return(ISP_DATA);

}


void eeprom_erase(void)
{
unsigned char j;

ISP_ADDRH=0x22;
ISP_ADDRL=0x22;

ISP_CMD=0x03;

ISP_CONTR=0x9a;

ISP_TRIG=0x46;
ISP_TRIG=0xB9;

for(j=0;j<2;j++);

}

void delay(unsigned char t)
{
unsigned int i,j;
while(t--)
{
for(i=0;i<600;i++)
for(j=0;j<600;j++);
}
}参考资料:百度一下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
德宏金顺科目一考试中心地址在什么地方,想过
我原来是非农人口,没有地,现在户口统一为居
家中供香火在那个位置最好
1. 请问下面的关于股票的词语是什么意思:2
山东省青州市云驼景区园觉寺是否真的在收弃婴
王丽华的简介
白菜,蒜黄,粉条,冻豆腐馅的饺子怎做
fgo托尼克莉丝几宝好, 清素材技能升到多少好
阿瓦提县丰收一场供电营业厅地址好找么,我有
临县谁的吹打最好啊
druid.io使用什么语言开发
温州仰义到火车站乘坐几路公交车?
思埠集团将在1月2号有个震惊世界的好消息、已
中赢投资,中赢财富,中赢金融是同一个公司吗
这是什么化花
推荐资讯
plenty of和 a plenty of 的区别
大理民族医院办公地址在什么地方,我要处理点
国家电网(老虎台营业厅电费缴费点)地址在什么
去日本在天津港走经过那些国家
峡谷中,座落着一座低矮简陋的小草房。门上刻
信用卡只刷过六千多为什么己还为什么会有二万
在T+2交收制度下,投资者的可交易股票数量如何
佳能10-18 4.5-5.6和佳能EF-S 10-22mm哪个好
陇县人民医院-急诊科怎么去啊,有知道地址的
我前天送人无意说了“您走好”这个词,我过后
VN的屠龙勇士和猎天使魔女哪个手感好
实证分析的论文结果怎么修改查重啊,好多结果
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?