擴展存儲器的地址分配
A. MCS-51單片機可擴展的程序存儲器和數據存儲器的地址空間各為多少
51的存儲器從功能上來說可以分為程序存儲器和數據存儲器,至於到底能擴展多少存儲空間,要看你擴展的是哪一類存儲器。
訪問存儲空間時,需要用到兩個指針變數,為DPTR何PC。其中pc為程序計數器,指向下一條需要執行的指令的地址,DPTR為數據指針寄存器,這兩個變數的長度都為16位,這是51單片機內部結構決定的,無法改變。所以這兩個指針的定址能力都為64K。這樣看來,兩類存儲器的擴展能力都為64K
。但是,如果你實際擴展過存儲器,你就可以發現程序存儲器的擴展能力並沒有64K!!!
這是為什麼呢????
這得從51單片機的存儲空間的編址說起。這里僅作簡單說明,具體可以看教科書。簡單地說,內部程序存儲器和外部程序存儲器是一起編址的,它們分別佔用64K地址的一部分,所以外部擴展時要減去內部的地址空間,當然小於64K啦。而數據存儲器是內外部分別編址,內外部數據存儲器用不同的指令進行訪問,所以不用擔心單片機會混淆內外部數據存儲器,所以外部數據存儲器擴展能力有64K
B. 當89C51單片機外部的程序存儲器和數據儲存器同時擴展時的地址分配
外部程序存儲器和數據存儲器擴展,地址可以重疊,互不幹擾,因為控制信號不一樣,讀寫指令也不一樣。
C. 存儲器的容量擴展的連接方式和擴展後的地址范圍
容量擴展主要有兩種方式,並位和串位,舉個例子,有個2KB的存儲器,我再擴展個2KB的存儲器,如果是並位擴展方式,地址范圍還是2k的空間,不過每次讀出的是16bit;如果是串位方式,則直接擴展成4KB,有4k的地址范圍,每次讀出8bit,不知道你明白了沒有?這個跟片選信號連接方式,以及地址、數據線連接方式有關.
一般來說是以Byte為讀取單位,通常都是串列擴展,即地址線性擴展,2KB的空間,再增加2KB,一共就4KB的存儲器,也是最常用的方式,地址線的高位通過解碼電路構成片選信號,低位為每片的地址信號.
至於地址范圍,跟你擴展的總空間容量有關,如果4KB的空間,需要地址線就是12條(0~11),關系是2的12次方為4K,同理,擴展後總空間為8KB的話,地址線就是13條(0~12)。
D. 51單片機在外擴存儲器時如何確定每塊存儲器的首地址
每塊存儲器的首地址是由存儲器的片選信號決定的,而片選信號有兩種形式,一種是線選,即用單片機P2口某條高位地址線做片選,這種方式地址有重疊。另一種是全地址解碼方式,用解碼器選片。其實,教材上凡是講擴展存儲器時都會講這些的,也講地址是怎麼計算的,那計算出來的地址就是首地址。而末地址是首地址+存儲器容量。
E. 51單片機外擴存儲器時如何確定存儲器的地址范圍
51單片機外擴存儲器時,用地址線確定存儲器的地址范圍。
用一個IO口的口涎作為數據存儲器的片選信號。比如8051單片機,P2:P0口提供的地址A15~A0(實際是A12~A0)用來訪問8K的數據存儲器。
用單片機的P1口作為存儲器的片選信號:P1.0接一個存儲器的CS,P1.1接另一個存儲器的CS,這樣8個存儲器正好用完P1口,當要訪問其中一個時,只把相應的P1.x=0而其他為1,這樣就可以了。
工作原理
存儲器是用來存儲程序和各種數據信息的記憶部件。存儲器可分為主存儲器(簡稱主存或內存)和輔助存儲器(簡稱輔存或外存)兩大類。和CPU直接交換信息的是主存。
主存的工作方式是按存儲單元的地址存放或讀取各類信息,統稱訪問存儲器。主存中匯集存儲單元的載體稱為存儲體,存儲體中每個單元能夠存放一串二進制碼表示的信息,該信息的總位數稱為一個存儲單元的字長。