程序存儲器的擴展
㈠ 單片機程序存儲器擴展電路問題
答:在設計片外程序存儲器之前,首先要決定EA引腳的電平。
EA=0,單片機只訪問外部程序存儲器,對於8031單片機此引腳必須接地.EA=1,單片機訪問內部程序存儲器,對於內部有程序存儲器的8XX51單片機,此引腳應接高電平,但若地址值超過4KB范圍,單片機將自動訪問外部程序存儲器。
設定好EA後,單片機自動按程序所設定的次序執行。
在編程中不需要專門的語句指定調用的是外部程序存儲器。比如設定EA接高電平,則程序在執行完片內的程序存儲器指令後自動轉入片外程序存儲器,而無需特殊命令。這就是所謂的程序存儲器是片內外統一編址,而數據存儲器則用Mov和Movx分別對待的。
但樓主要知道程序在讀取片外指令代碼時的過程:先定址,再取數。單片機會根據PC的值先給P2和p0送一個選通地址(PC的值),接下來從片外程序存儲器讀取代碼。因為PC的值一般是連續的,這就要求片外的程序存儲器空間要連續分布,這和數據存儲器不同。如果不連續分布,就要用特殊的行號改變PC的值,使它和片外程序存儲器分布能夠對應。
㈡ 在MCS-51單片機系統中,擴展的程序存儲器和數據存儲器都使用16位地址線和8位數據線,為什麼不發生沖突
擴展片外存儲器,使用的是三匯流排結構,即AB、DB和CB。
樓主僅僅說出了16位地址線和8位數據線,這只是AB和DB。
另外的控制匯流排(CB)如下:
擴展程序存儲器,使用PSEN引線,來控制對其讀出;
擴展數據存儲器,使用RD和WR引線,來控制對其讀寫。
因為控制匯流排不同,所以不發生沖突。
㈢ 單片機系統擴展的主要擴展
單片機的系統擴展主要有程序存儲器(ROM)擴展,數據存儲器(RAM)擴展以及I/O口的擴展。
外擴的程序存儲器與單片機內部的程序存儲器統一編址,採用相同的指令,常用晶元有EPROM和EEPROM,擴展時P0口分時地作為數據線和低位地址線,需要鎖存器晶元,控制線主要有ALE、。
擴展的數據存儲器RAM和單片機內部RAM在邏輯上是分開的,二者分別編址,使用不同的數據傳送指令。常用的晶元有SRAM和DRAM以及鎖存器晶元,控制線主要採用ALE、、。
常用的可編程I/O晶元有8255和8155。用8255擴展並行I/O口時需要鎖存器,8155則不用。對擴展I/O口的定址採用與外部RAM相同的指令,因此在設計電路時要注意合理分配地址。8255和8155的工作方式是通過對命令控制字的編程來實現的,在使用時首先要有初始化程序。
MCS-51單片機有很強的擴展功能,外圍擴展電路、擴展晶元和擴展方法都非常典型、規范。
㈣ 在片外擴展一片2764程序存儲器晶元要多少地址線
2764,它是 8K * 8 的 EPROM 晶元。
8K = 8 * 1024 = 2^3 * 2^10 = 2^13
要13條地址線。