欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7206|回復(fù): 7
收起左側(cè)

求指導(dǎo) STC15F204EA的 EEPROM 讀寫(xiě)問(wèn)題

[復(fù)制鏈接]
ID:23515 發(fā)表于 2013-6-6 21:03 | 顯示全部樓層 |閱讀模式
本帖最后由 LQMEI 于 2013-6-6 21:31 編輯

程序如下,不能正確保存數(shù)據(jù),求幫助、指點(diǎn)迷津
我的思路是三個(gè)無(wú)符號(hào)long型數(shù)據(jù) dqs,sds,ljs 先分解成12個(gè)無(wú)符號(hào)char型數(shù)據(jù)存到數(shù)組XSM[1]~~XSM[12]里,然后把數(shù)組XSM[1]~~XSM[13]這13個(gè)數(shù)存進(jìn) EEPROM 里,以備下次開(kāi)機(jī)時(shí)候讀取



//stc15f204ea 震蕩頻率 設(shè)為6MHz
#include <intrins.h>
#include <stc15.h>      //stc15系列單片機(jī)頭文件
#define uchar unsigned char
#define uint unsigned int
#define ulog unsigned long
#define addcu 0x0000
uchar xsm[14]; // xsbl 顯示變量
ulog dqs,sds,ljs; //dqs當(dāng)前數(shù),sds設(shè)定數(shù),ljs累計(jì)數(shù)
//===============================================
void delayms(uint xms);  //延時(shí)子函數(shù); xms毫秒數(shù)
uchar read(uint adr);  //字節(jié)讀
void write(uint adr,uchar dat);  //字節(jié)寫(xiě)
void clear(uint adr);    //清除一片扇區(qū)
void disable();   // 關(guān)閉iap編程
void  cshhs();  //初始化
void vint(); //寫(xiě)入要保存的數(shù)據(jù)
void goon(uint adr);
//===============================================
void delayms(uint xms)  //延時(shí)子函數(shù)
{uint i,j;
for(i=xms;i>0;i--)        //i=xms即延時(shí)約xms毫秒
for(j=110;j>0;j--);
}
//=======================================
void goon(uint adr)
{
IAP_CONTR=0X84;
IAP_ADDRH=adr>>8;  //獲取指針高八位
IAP_ADDRL=adr;  //獲取指針低八位
IAP_TRIG=IAP_TRIG0;  //兩條觸發(fā)命令,使命令執(zhí)行
IAP_TRIG=IAP_TRIG1;
_nop_(); _nop_(); _nop_();
}
//====================================
uchar read(uint adr)  //字節(jié)讀
{EA=0;
IAP_CMD=0X01;  //;01h為讀取命令
goon(adr);
return(IAP_DATA);
}
//=========================
void write(uint adr,uchar dat)  //字節(jié)寫(xiě)
{ EA=0;
IAP_CMD=0X02;  //;02h為寫(xiě)入命令
IAP_DATA=dat;   //把數(shù)據(jù)放入數(shù)據(jù)寄存器中,用于寫(xiě)
goon(adr);
}
//==============================
void clear(uint adr)    //清除一片扇區(qū)
{ EA=0;
IAP_CMD=0X03;  //;03h為擦除命令
goon(adr);
}
//=================================
void cloiap()   // 關(guān)閉iap編程
{EA=1;
IAP_CONTR=0X00;  //關(guān)閉rom控制器命令
IAP_CMD=0X00;  //清除 讀寫(xiě)擦 命令
}
//===========================
void  cshhs()  //初始化
{
uchar i;
for (i=13;i>0;i--){xsm
=read(addcu+i);}//讀取上次存入的數(shù)據(jù)
clear(addcu);cloiap(); //關(guān)閉IAP
for (i=1;i<=4;i++){ljs<<=8;ljs+=xsm
;}  //恢復(fù)ljs的值
for (i=5;i<=8;i++){sds<<=8;sds+=xsm
;}  //恢復(fù)sds的值
for (i=9;i<=12;i++){dqs<<=8;dqs+=xsm
;} //恢復(fù)dqs的值
xsm[1]=xsm[13];
}
//=================
void vint() //寫(xiě)入要保存的數(shù)據(jù)
{ uchar i;
jdq1=jdq2=led=0; //關(guān)閉指示燈以及繼電器
P1=0xff;  //關(guān)閉所有數(shù)碼顯示
wela=1;  
wela=0;
EA=0;
for (i=12;i>=9;i--){ xsm
=dqs;dqs>>=8;} //分解dqs的值
for (i=8;i>=5;i--) { xsm
=sds;sds>>=8;} //分解sds的值
for (i=4;i>=1;i--) { xsm
=ljs;ljs>>=8;} //分解ljs的值
//clear(addcu);
for (i=1;i<13;i++) {write(addcu+i,xsm
);}//寫(xiě)入要保存的數(shù)據(jù)
cloiap(); //關(guān)閉IAP
}
//===============================================
void main()
{
cshhs();  //初始化
xsm[13]=xsm[1]=3;
ljs=98712346;
sds=4000;
dqs=346;
vint();
while(1);
}

qqq.jpg
回復(fù)

使用道具 舉報(bào)

ID:23515 發(fā)表于 2013-6-6 21:35 | 顯示全部樓層
void  cshhs()         //初始化
void vint()        //寫(xiě)入要保存的數(shù)據(jù)
函數(shù)里的數(shù)組下標(biāo)居然不能顯示,所以又截圖貼出來(lái)
回復(fù)

使用道具 舉報(bào)

ID:23515 發(fā)表于 2013-6-6 21:42 | 顯示全部樓層
qqq.rar (6.99 KB, 下載次數(shù): 12)
這是頭文件及C文件,
求高手幫我看看,指點(diǎn)迷津
回復(fù)

使用道具 舉報(bào)

ID:57506 發(fā)表于 2013-12-2 10:37 | 顯示全部樓層
請(qǐng)問(wèn)一下  怎么對(duì)EEPROM的數(shù)組讀?
回復(fù)

使用道具 舉報(bào)

ID:23303 發(fā)表于 2017-4-14 16:23 | 顯示全部樓層
向各位高手學(xué)習(xí)!謝謝!
回復(fù)

使用道具 舉報(bào)

ID:23303 發(fā)表于 2017-4-14 16:24 | 顯示全部樓層
向各位高手學(xué)習(xí),謝謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表