久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6566|回復: 7
打印 上一主題 下一主題
收起左側

求指導 STC15F204EA的 EEPROM 讀寫問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:23515 發表于 2013-6-6 21:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 LQMEI 于 2013-6-6 21:31 編輯

程序如下,不能正確保存數據,求幫助、指點迷津
我的思路是三個無符號long型數據 dqs,sds,ljs 先分解成12個無符號char型數據存到數組XSM[1]~~XSM[12]里,然后把數組XSM[1]~~XSM[13]這13個數存進 EEPROM 里,以備下次開機時候讀取



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

qqq.jpg (156.87 KB, 下載次數: 131)

qqq.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:23515 發表于 2013-6-6 21:35 | 只看該作者
void  cshhs()         //初始化
void vint()        //寫入要保存的數據
函數里的數組下標居然不能顯示,所以又截圖貼出來
回復

使用道具 舉報

板凳
ID:23515 發表于 2013-6-6 21:42 | 只看該作者
qqq.rar (6.99 KB, 下載次數: 12)
這是頭文件及C文件,
求高手幫我看看,指點迷津
回復

使用道具 舉報

地板
ID:57506 發表于 2013-12-2 10:37 | 只看該作者
請問一下  怎么對EEPROM的數組讀?
回復

使用道具 舉報

5#
ID:23303 發表于 2017-4-14 16:23 | 只看該作者
向各位高手學習!謝謝!
回復

使用道具 舉報

6#
ID:23303 發表于 2017-4-14 16:24 | 只看該作者
向各位高手學習,謝謝!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 综合伊人 | 国产精品69久久久久水密桃 | 精品国产乱码一区二区三 | 久久国产亚洲 | 欧美一级小视频 | 久久99精品久久久久蜜桃tv | 香蕉婷婷| 亚洲电影专区 | 精品国产鲁一鲁一区二区张丽 | h片免费看 | 精品欧美一区二区精品久久久 | 欧美一级二级视频 | 亚洲精品9999| 欧美aⅴ | 欧美激情精品久久久久久变态 | 91在线视频在线观看 | 精品国产91乱码一区二区三区 | 在线视频一区二区三区 | 欧美国产一区二区 | 成人免费看黄网站在线观看 | 大象视频一区二区 | 免费观看成人av | 亚洲国产精品一区二区三区 | 国产成人免费视频 | 国产成人精品亚洲日本在线观看 | 久久er精品| 日韩欧美在线观看一区 | 亚洲一区二区三区四区五区中文 | 欧美一区二区大片 | 欧美在线a| 精品亚洲一区二区三区 | 99成人| 性欧美精品一区二区三区在线播放 | 久久国产一区 | 特级黄一级播放 | 精品国产不卡一区二区三区 | 国产精品久久久久久久久久久久 | 国产亚洲一区二区三区在线观看 | 免费中文字幕 | 亚洲成人播放器 | 日韩欧美一区二区三区 |