當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 存儲配置 » 單片機存儲器擴展實驗

單片機存儲器擴展實驗-九游会j9娱乐平台

發布時間: 2024-06-27 17:27:16

① 51單片機擴展外部數據存儲器6264,怎麼用c語言實現對其操作

2.擴展ram編程基礎
(1)弄清擴展器件的地址
在圖7.2.5中,u3的abc接單片機a13,a14,a15,所以片選信號對應地址最高位,即:「cbaxxxxx xxxxxxxx」(x為任意)。u4片選接cs1,即y1,cba=001,可得u4的地址范圍是0x2000~0x3fff。u5接cs3,即y3,cba=011,地址為0x6000~0x7fff。u6接cs4,即y4,cba=100,地址為0x8000~0x9fff。知道了器件地址,可以利用直接地址、外部數據指針來訪問存儲器。通過設置,也可以讓編譯器在擴展ram中自動分配存儲單元。
(2)直接地址訪問
①向u4寫數據:
xbyte[0x2000 addr]=dat; //addr為u4內部地址,取值為0~0x1fff;dat為數據。
②讀出u4數據:
dat=xbyte[0x2000 addr];
也可以用頁訪問方式。頁訪問方式,實際就是先把16位地址高8位送p2口,通過低8位地址讀寫。
③按頁讀寫u4:
p2=0x20 page; // page為頁,取值為0x00~0x1f。
pbyte[addr]=dat; // addr為頁內地址,取值為0x00~0xff。
dat=pbyte[addr];
④讀u6
dat=xbyte[0x8000];//讀u6,地址取0x8000~0x9fff任何值,都一樣。
⑤寫u5
xbyte[0x6000]=dat; //寫u5,地址取0x6000~0x7fff任何值,都一樣。
(3)數據指針
如,讀寫u4,可以這樣寫:
unsigned char xdata *p=0x3000; //聲明指針p,並初始指向0x3000單元
x=*p; //讀指針所指向的位置
p=p 1; //指針指向下一單元
*p=0x16; //向指針所指向的位置寫入數據
(4)讓編譯器自動分配存儲空間
①為了能讓編譯器自動分配存儲空間,並使用擴展ram,必須設置擴展ram地址。在keil編程軟體中,點擊工具欄快捷圖標「 」,彈出目標選項對話框。按圖7.2.6所示,設置ram起始地址和長度。
②變數聲明時使用xdata關鍵詞。如:
unsigned char xdata a;//變數a使用擴展ram空間。
特別注意,擴展ram直接地址訪問方式與自動分配存儲空間方式最好不要混用,否則可能產生沖突。
摘自《單片機控制裝置安裝與調試》下冊,雷林均主編

② 51單片機的外部存儲器擴展

是的。

主流的單片機(不包括51)都已經不支持外部存儲器擴展了,單片機自帶128k的rom也很常見。

而且51類中,也有不少是不支持外部存儲器擴展的。

最後,做為學習,這部分看看就行,了解一下就好了。

對於trousers所說的。

51的外部存儲器擴展是把單片機內部的匯流排外引化,i/o使用不少於8根線。對於一個你說的要完成不同工作的單片機系統,相對是很復雜的,剩下的io還夠用嗎?

按你的意思,一個功能復雜到內部128k都裝不下的程序,那還用單片機就太費勁了吧,應該用arm了,但arm的程序空間就又是一個量級的了,不過,arm到還是有不少是保留了外部存儲器擴展i/o的。
盡管目的是一樣的,都是為了擴展外部存儲器但你要知道,51剛出現時rom貴的和金子似的,英特爾不敢在51結構里放rom,所以才想出外部擴展的主意,現在flash rom都白菜價了,51也不再是單片機的主力,單片機的外部擴展越來越多的變成了內部自帶,就51的外部擴展而言早已是雞肋了,知道有怎麼個東西就行。
而arm擴展只是以防萬一,128m(不是128k)的rom還不夠用嗎?
萬一(豈止是萬一,我想是千萬分之一)用到了,不陌生,臉熟就行了。

對kxjs。

大哥,你知道51的外部存儲器擴展具體是指什麼嗎?24c02是i2c通訊,51這個直接就是結內部是匯流排,不是一會事。

以上!

③ 為單片機拓展外部程序存儲器時,多片rom晶元的容量不同如何拓展

拓展外部存儲器,通常都會選擇相同容量的晶元,因為這樣構建解碼電路會比較簡單。如果因一些特殊需要,必須使不同容量的器件,那要看擴展的存儲空間是否要求連接的地址。若必須是連接地址,地址解碼電路比較復雜,適合採用cpld或fpga等可編程器件來實現。如果每片擴展存儲器之間,並不要求連續地址,也可考慮按最大容量器件的地址范圍來設計解碼。

④ 在8051單片機片外擴展16k*8bit數據存儲器,選用6264(8k*8bit)晶元,74ls138為解碼器,

需要2片6264,電路圖如下:

⑤ 單片機及存儲器擴展的設計

電路如圖所示,u3地址范圍:0000h~7fffh,u5地址范圍:8000h~ffffh;cpu用89c52,內有8krom

⑥ 單片機程序存儲器擴展電路問題

答:在設計片外程序存儲器之前,首先要決定ea引腳的電平。
ea=0,單片機只訪問外部程序存儲器,對於8031單片機此引腳必須接地.ea=1,單片機訪問內部程序存儲器,對於內部有程序存儲器的8xx51單片機,此引腳應接高電平,但若地址值超過4kb范圍,單片機將自動訪問外部程序存儲器。
設定好ea後,單片機自動按程序所設定的次序執行。
在編程中不需要專門的語句指定調用的是外部程序存儲器。比如設定ea接高電平,則程序在執行完片內的程序存儲器指令後自動轉入片外程序存儲器,而無需特殊命令。這就是所謂的程序存儲器是片內外統一編址,而數據存儲器則用mov和movx分別對待的。
但樓主要知道程序在讀取片外指令代碼時的過程:先定址,再取數。單片機會根據pc的值先給p2和p0送一個選通地址(pc的值),接下來從片外程序存儲器讀取代碼。因為pc的值一般是連續的,這就要求片外的程序存儲器空間要連續分布,這和數據存儲器不同。如果不連續分布,就要用特殊的行號改變pc的值,使它和片外程序存儲器分布能夠對應。

熱點內容
resin下jsp不能正常編譯 發布:2024-07-17 16:34:44 瀏覽:229
sqlserver如何切換主備伺服器 發布:2024-07-17 16:23:02 瀏覽:299
mc18伺服器ip 發布:2024-07-17 16:23:02 瀏覽:379
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:691
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:375
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:955
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:130
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:388
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
androidapk結構 發布:2024-07-17 15:10:43 瀏覽:945
网站地图