⑴ 8051單片機訪問片外ROM與片外RAM的讀寫信號各是什麼。
51單片機訪問片外ROM(取指令代碼、執行MOVC指令)時,/PSEN出現短暫的低電平;
51單片機訪問片外RAM(執行MOVX指令)時,/WR或/RD出現短暫的低電平。
它們三條線,就是樓主問的讀寫控制信號。雖然訪問片外存儲器時,/EA 和 ALE 也起了作用,但是它們都不在回答本題的范圍之內。
當ALE是高電平時,允許地址鎖存信號,當訪問外部存儲器時,ALE信號負跳變(即由正變負)將P0口上低8位地址信號送入鎖存器。當ALE是低電平時,P0口上的內容和鎖存器輸出一致。
(1)51單片機程序怎麼訪問ram擴展閱讀:
PSEN 外部程序存儲器讀選通信號:在讀外部ROM時PSEN低電平有效,以實現外部ROM單元的讀操作。
1、內部ROM讀取時,PSEN不動作;
2、外部ROM讀取時,在每個機器周期會動作兩次;
3、外部RAM讀取時,兩個PSEN脈沖被跳過不會輸出;
4、外接ROM時,與ROM的OE腳相接。
⑵ 傳統51單片機是通過什麼口訪問內部擴展ram的
使用51單片機擴展RAM時,入股同時存在外部和內部擴展RAM,地址是重疊的。
也就是說如果我們假設:
單片機內部有1K的擴展RAM,同時外部IO口上接有2K的RAM,那麼實際上外部的2K中前1K是不會被使用的,因為訪問前1K的語句被執行到訪問內部擴展RAM里了。(當然前提是初始化部分按照實際資源設置,而不是強制設定內部擴展RAM為0,設置部分參考一下keil里的startup文件),這中情況下單片機擴展RAM資源一共是2K而不是3K
這樣就不難理解書上說的訪問內部RAM和外部RAM用同一個方法了。
可以訪問外部RAM的IO口就不說了,看看介面定義就知道了。
在匯編語言里使用MOVX來表示訪問擴展RAM部分,C語言在定義的時候使用xdata關鍵字,其實是一回事。
51的外部訪問地址空間是連續的,也就是說即使在IO口上掛接其他設備,這個設備也可以作為外部地址空間的一部分從而通過訪問特定的地址來獲取數據