標(biāo)題: 如何利用STC-ISP的軟件第2個(gè)步驟“打開eeprom文件”,燒寫進(jìn)入單片機(jī)呢? [打印本頁(yè)]

作者: PEB188    時(shí)間: 2021-10-3 12:03
標(biāo)題: 如何利用STC-ISP的軟件第2個(gè)步驟“打開eeprom文件”,燒寫進(jìn)入單片機(jī)呢?
為了縮小燒入單片機(jī)的程序大小,很多時(shí)候都會(huì)選擇在程序初始化的時(shí)候把數(shù)據(jù)定義在eeprom里,如何直接生成eeprom文件燒入單片機(jī)?

我該如何編寫生成這個(gè)eeprom文件,
利用STC-ISP的軟件第2個(gè)步驟“打開eeprom文件”,燒寫進(jìn)入單片機(jī)呢?
不知道eeprom的文件是怎樣的,是直接把EEPROM的擦除寫入程序拎出來(lái)嗎?




作者: npn    時(shí)間: 2021-10-3 13:19
PC指針不能指向EEPROM執(zhí)行程序,只有數(shù)組數(shù)據(jù)才可以寫進(jìn)EEPROM。
作者: 188610329    時(shí)間: 2021-10-3 19:59
方法一:  直接在STC - ISP軟件的 Eeprom 頁(yè),輸入內(nèi)容,然后另存為 bin文件,可下載到單片機(jī)的Eeprom。
方法二: 用任意一個(gè) 16進(jìn)制編輯器,如 UltarEdit , WinHex 等,編輯一個(gè) bin文件,然后在 STC - ISP 中打開該文件件,下載到單片機(jī)的Eeprom
作者: paladina    時(shí)間: 2021-10-3 21:56
keil寫個(gè)數(shù)組,hex文件燒錄 ,stc-isp選打開eeprom文件燒錄
作者: PEB188    時(shí)間: 2021-10-4 10:33
paladina 發(fā)表于 2021-10-3 21:56
keil寫個(gè)數(shù)組,hex文件燒錄 ,stc-isp選打開eeprom文件燒錄

這個(gè)數(shù)組是要包含哪些信息,像頭文件需不需要。我定義的LED[3];那我直接寫LED[]={0x01,0x02,0x03}; 就這樣可以了嗎。然后下載的時(shí)候 填寫第二片區(qū)0x0200,這樣就可以下載了?
作者: PEB188    時(shí)間: 2021-10-4 10:35
188610329 發(fā)表于 2021-10-3 19:59
方法一:  直接在STC - ISP軟件的 Eeprom 頁(yè),輸入內(nèi)容,然后另存為 bin文件,可下載到單片機(jī)的Eeprom。
方 ...

就是不知道你說(shuō)的bin文件是怎樣的,沒見過(guò)。編寫該文件需要包含哪些信息,要不要頭文件,還是直接led[]={0x0,0x02,0x03}?
作者: 188610329    時(shí)間: 2021-10-4 18:50
PEB188 發(fā)表于 2021-10-4 10:35
就是不知道你說(shuō)的bin文件是怎樣的,沒見過(guò)。編寫該文件需要包含哪些信息,要不要頭文件,還是直接led[]={ ...

ISP 工具里面 Eeprom 文件 頁(yè)  另存為  就是 bin 文件。
bin 文件,直接就是 16進(jìn)制數(shù),他的 縱橫坐標(biāo)就是他的地址, 所以第一個(gè)字節(jié) 就是對(duì)應(yīng)地址 0x0000 第二個(gè)就對(duì)應(yīng)地址 0x0001
假定,你是要把數(shù)組  led[]={0x0,0x02,0x03}  存在 Eeprom 你可以在 Eeprom 編輯器里面直接 輸入  00 02 03   占用3個(gè)字節(jié), 起始字節(jié)地址 為 0x0000 ,
然后C 語(yǔ)言程序中 添加子函數(shù):
char  Led(char addr)
{
        IAP_ADDRH = 00;
        IAP_ADDRL = addr;
        IAP_CMD    =  0x01;
        IAP_TRIG   = 0x5A;
        IAP_TRIG   = 0xA5;
        return  IAP_DATA;
}
然后,主程序調(diào)用的時(shí)候,
       P1 = Led(0x02);     // 注意,這里是() 不是[]
就可以了。
其他的數(shù)組添加,類似。當(dāng)然,如果你的Eeprom 支持Movc 訪問(wèn)的話,子函數(shù)用Movc 方式效果更好。
作者: 冰火風(fēng)輪    時(shí)間: 2021-10-4 21:33
暫時(shí)當(dāng)內(nèi)置 24CXX 理解吧,用不上就空著,勉強(qiáng)寫進(jìn)去不會(huì)讀白搭
作者: PEB188    時(shí)間: 2021-10-12 20:45
188610329 發(fā)表于 2021-10-4 18:50
ISP 工具里面 Eeprom 文件 頁(yè)  另存為  就是 bin 文件。
bin 文件,直接就是 16進(jìn)制數(shù),他的 縱橫坐標(biāo)就 ...

下載進(jìn)去的數(shù)據(jù)讀取跟擦寫進(jìn)去的讀取方式不一樣的嗎?
作者: 188610329    時(shí)間: 2021-10-12 22:12
PEB188 發(fā)表于 2021-10-12 20:45
下載進(jìn)去的數(shù)據(jù)讀取跟擦寫進(jìn)去的讀取方式不一樣的嗎?

一樣的, 只是大批量的數(shù)據(jù)的話,這樣寫起來(lái)方便, 否則還要專門為了寫這些東西專門寫一個(gè)程序燒錄一次,不是么?
作者: hi等你    時(shí)間: 2023-7-11 13:10
可以的,我正在寫tef6686收音機(jī)程序,把6686初始化數(shù)據(jù)放在89c52的模擬eeprom里面,這樣

就能給收音機(jī)本身程序騰出更大空間




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1