找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)自帶eeprom為什么寫入了之后讀取的時候數(shù)據(jù)不一樣

[復(fù)制鏈接]
ID:890120 發(fā)表于 2021-4-3 17:07 | 顯示全部樓層 |閱讀模式
(H_%~HF%98[{QLKKKS38[RX.png
void EEPROM_delete(uint addr)
{       
// 打開 IAP 功能(ISP_CONTR.7)=1:允許編程改變Flash, 設(shè)置Flash操作等待時間
// 0x83(晶振<5M)   0x82(晶振<10M)   0x81(晶振<20M)   0x80(晶振<40M)
    ISP_CONTR = 0x81;  
    ISP_CMD   = 0x03;                  // 用戶可以對"Data Flash/EEPROM區(qū)"進(jìn)行扇區(qū)擦除
    ISP_ADDRL = addr;         // ISP/IAP操作時的地址寄存器低八位,
    ISP_ADDRH = addr>>8;      // ISP/IAP操作時的地址寄存器高八位。
        EA =0;   
    ISP_TRIG = 0x46;          // 在ISPEN(ISP_CONTR.7)=1時,對ISP_TRIG先寫入46h,
    ISP_TRIG = 0xB9;          // 再寫入B9h,ISP/IAP命令才會生效。
    _nop_();
        EA =1;
    ISP_off();                                          // 關(guān)閉ISP/IAP
}
/***************************************************************
函數(shù):寫一字節(jié)
入口:addr = 扇區(qū)單元地址 , dat = 待寫入數(shù)據(jù)
***************************************************************/
void EEPROM_write(uint addr,uchar dat)
{
    ISP_CONTR = 0x81;                  
    ISP_CMD   = 0x02;              // 用戶可以對"Data Flash/EEPROM區(qū)"進(jìn)行字節(jié)編程
    ISP_ADDRL = addr;        
    ISP_ADDRH = addr>>8;      
    ISP_DATA  = dat;          // 數(shù)據(jù)進(jìn)ISP_DATA
    EA = 0;
    ISP_TRIG = 0x46;         
    ISP_TRIG = 0xB9;         
    _nop_();
        EA =1;
    ISP_off();                                          // 關(guān)閉ISP/IAP
}
/***************************************************************
函數(shù):讀一字節(jié)
入口:addr = 扇區(qū)單元地址
出口:dat  = 讀出的數(shù)據(jù)
***************************************************************/
uchar EEPROM_read(uint addr)
{   
    uchar dat;
       
        ISP_CONTR = 0x81;                  
    ISP_CMD   = 0x01;         // 用戶可以對"Data Flash/EEPROM區(qū)"進(jìn)行字節(jié)讀
    ISP_ADDRL = addr;         
    ISP_ADDRH = addr>>8;      
    EA = 0;
    ISP_TRIG = 0x46;         
    ISP_TRIG = 0xB9;         
    _nop_();
    dat = ISP_DATA;                          // 取出數(shù)據(jù)
        ISP_off();                                          // 關(guān)閉ISP/IAP
        EA =1;                  
        return dat;
}
/***************************************************************
函數(shù):關(guān)閉ISP/IAP操作
***************************************************************/
void ISP_off()
{
    ISP_CONTR = 0;            // 關(guān)閉IAP功能
    ISP_CMD   = 0;            // 待機(jī)模式,無ISP操作
    ISP_TRIG  = 0;            // 關(guān)閉IAP功能, 清與ISP有關(guān)的特殊功能寄存器
        ISP_ADDRH = 0;
        ISP_ADDRL = 0;         
}
/**********************************************************************************************
STC89C52RC內(nèi)部EEPROM詳細(xì)地址表:
第一扇區(qū)               第二扇區(qū)                第三扇區(qū)                第四扇區(qū)
起始地址  結(jié)束地址     起始地址   結(jié)束地址     起始地址   結(jié)束地址     起始地址    結(jié)束地址
2000h     21FFh        2200h      23FFh        2400h      25FFh        2600h       27FFH

第五扇區(qū)               第六扇區(qū)                第七扇區(qū)                第八扇區(qū)
起始地址  結(jié)束地址     起始地址   結(jié)束地址     起始地址   結(jié)束地址     起始地址    結(jié)束地址
2800h     29FFh        2A00h      2BFFh        2C00h      2DFFh        2E00h        2FFFh
**********************************************************************************************/


回復(fù)

使用道具 舉報

ID:625538 發(fā)表于 2021-4-3 17:20 | 顯示全部樓層
可以檢查一下寫入的地址和讀取的地址是不是一樣
回復(fù)

使用道具 舉報

ID:890120 發(fā)表于 2021-4-3 18:21 | 顯示全部樓層
lml25680 發(fā)表于 2021-4-3 17:20
可以檢查一下寫入的地址和讀取的地址是不是一樣

寫入和讀取的地址是一樣的
回復(fù)

使用道具 舉報

ID:584814 發(fā)表于 2021-4-4 10:57 | 顯示全部樓層
不外乎兩種可能:程序錯或硬件壞
一般程序是抄的錯多在延時
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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