單片機外部存儲器擴展
㈠ 為什麼要對單片機系統進行存儲器擴展
如果單片機系統原有的資源不夠充足、不能滿足應用所需的要求,那麼就需要進行存儲器的擴展。
可能需要擴展片外的程序存儲器,也可能需要擴展片外的數據存儲器,某些情況下還需要結合軟體進行更復雜的存儲器介面擴展(例如大容量的SPI Flash或者走SPI子協議的SD卡等等)。
㈡ 單片機外部擴展存儲器的四個I/O介面各起什麼作用
當單片機外部擴展存儲器 一般要採用匯流排擴展:
1 P0口將作為匯流排的低8位地址線和8位數據線使用
2 P2口將作為匯流排的高8位地址線使用 沒有使用的高位地址線 將作為存儲器的片選信號
3 P3口的P3.6和P3.7將作為片外數據存儲器的寫信號、讀信號 即做控制匯流排使用
單片機的29引腳 PSEN將作為片外程序存儲器的讀信號。
P3口其它引腳 可作為專用線使用 如定時計數器的輸入、外部中斷0和1的輸入、串列口的
數據輸入、輸出線。
4 P1口可以做I/O口使用 連接輸入/輸出設備
㈢ 單片機程序存儲器擴展電路問題
答:在設計片外程序存儲器之前,首先要決定EA引腳的電平。
EA=0,單片機只訪問外部程序存儲器,對於8031單片機此引腳必須接地.EA=1,單片機訪問內部程序存儲器,對於內部有程序存儲器的8XX51單片機,此引腳應接高電平,但若地址值超過4KB范圍,單片機將自動訪問外部程序存儲器。
設定好EA後,單片機自動按程序所設定的次序執行。
在編程中不需要專門的語句指定調用的是外部程序存儲器。比如設定EA接高電平,則程序在執行完片內的程序存儲器指令後自動轉入片外程序存儲器,而無需特殊命令。這就是所謂的程序存儲器是片內外統一編址,而數據存儲器則用Mov和Movx分別對待的。
但樓主要知道程序在讀取片外指令代碼時的過程:先定址,再取數。單片機會根據PC的值先給P2和p0送一個選通地址(PC的值),接下來從片外程序存儲器讀取代碼。因為PC的值一般是連續的,這就要求片外的程序存儲器空間要連續分布,這和數據存儲器不同。如果不連續分布,就要用特殊的行號改變PC的值,使它和片外程序存儲器分布能夠對應。
㈣ 單片機擴展外部存儲器
24C08是有壽命的,如果快速的循環寫是會壞的,如果只是暫態的數據,你隨便用一個外部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等可編程器件來實現。如果每片擴展存儲器之間,並不要求連續地址,也可考慮按最大容量器件的地址范圍來設計解碼。
㈧ 單片機外部存儲器擴展 SPI
SPI匯流排不需要FSMC……而且用I/O口很容易仿的出來……只要你有3到4個I/O口以及足夠的程序空間就肯定可以擴展……
㈨ 單片機存儲器擴展
不應該這樣問。。
首先51肯定是可以接flash存儲器的。
容易最大是不是64K ,,看你問的具體意思
如果說指的是擴展的是程序存儲器或者數據存儲器呢。
那麼確實是64K。
如果你那些所謂存儲器。。想存的不是 代碼而是一下 圖片什麼的資源
那麼擴展到1M那也是可以的。
因為51是16位地址線 。所以程序數據存儲器只能擴展到64K
c8051這種。他做了內部擴展。。屬於非標準的51了
如果是單單是存儲器。那些指用來存資源用的。。像電腦的硬碟一樣。
什麼時候用什麼時候去讀取的這種。
那麼你擴個1M的 flash也沒人說你。。只要你能買到1m的串口flash就可以了。
呵呵 o(∩_∩)o...哈哈
如果是程序存儲器。。要1M 那麼你也是n人了。
1024*1024/2 = 大約500,000行代碼。。
㈩ 簡述8031單片機外部擴展ROM與擴展RAM在硬體連線和軟體訪問方式上有何不同
硬體不同:
ROM 晶元,必須連接到 8031 的 /PSEN 引腳。
RAM 晶元,必須連接到 8031 的 /RD、/WR 引腳。
軟體不同:
針對 ROM (不分片內片外),只有兩條指令:
MOVCA,@A + DPTR;引腳 /PSEN = 0
MOVCA,@A + PC。 /PSEN = 0
針對片外 RAM,只有四條指令:
MOVXA,@DPTR;引腳 /RD = 0
MOVXA,@Ri; /RD = 0
MOVX@DPTR,A;/WR = 0
MOVX@Ri,A。 /WR = 0