8051外擴記憶體以及程式中的宣告Xdata位址之問題 |
答題得分者是:DavidLo
|
jerichowang
一般會員 ![]() ![]() 發表:17 回覆:27 積分:8 註冊:2005-07-25 發送簡訊給我 |
如題.小弟我是用89C51ED2的chip.並且是使用.Keil C的C語言編譯器.
最近需要做外擴記憶體的應用..我的記憶體是 ISSL61256的32K*8bit的sram
參考以下的接線圖
|
DavidLo
高階會員 ![]() ![]() ![]() ![]() 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
1. xdata C指令會轉成MOVX指令.KEIL中可以將C轉ASM,你可以驗證看看.
2. 請參考CPU規格中,Expanded RAM(XRAM)有詳細說明.AUXR bit1 EXTRAM決定.
http://www.atmel.com/dyn/resources/prod_documents/doc4235.pdf
|
jerichowang
一般會員 ![]() ![]() 發表:17 回覆:27 積分:8 註冊:2005-07-25 發送簡訊給我 |
那麼我的記憶體其實是要用來先儲存外部裝置所丟出的資料.當外部裝置丟完後會產生一個訊號接到8051,通知8051說"你可以開始接收ram的資料了",如此循環.
而總共從記憶體位址0000H 開始會有19200 BYTE要接收..所以我在8051端
是否要像這樣宣告一個指標
xdata unsigned char* pointer _at_0x0000
用這指標的位址開始讀取sram的值然後透過RS232給電腦.讀完一次後
pointer ;讀取下一個位址...直到pointer加到19200次
請問是這樣做嗎...但是89C51ED2有1792byte的記憶體也是被宣告成外部記憶體
xdata的形式...所以說我是否必須跳過這1792byte才能做上述的接收呢
|
DavidLo
高階會員 ![]() ![]() ![]() ![]() 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |