⑴ 微機原理總的存儲器字擴展問題
存儲晶元的擴展包括位擴展、字擴展和字位同時擴展等三種情況。
1、位擴展
位擴展是指存儲晶元的字(單元)數滿足要求而位數不夠,需對每個存儲單元的位數進行擴展。
例: 用 1K × 4 的 2114 晶元構成 lK × 8 的存儲器系統。
分析: 每個晶元的容量為 1K ,滿足存儲器系統的容量要求。但由於每個晶元只能提供 4 位數據,故需用 2 片這樣的晶元,它們分別提供 4 位數據至系統的數據匯流排,以滿足存儲器系統的字長要求。
設計要點 :
(1) 將每個晶元的 10 位(1k=2^10)地址線按引腳名稱一一並聯,按次序逐根接至系統地址匯流排的低 10 位。
(2) 數據線則按晶元編號連接,1 號晶元的 4 位數據線依次接至系統數據匯流排的 D0 -D3 , 2 號晶元的 4 位數據線依次接至系統數據匯流排的 D4 -D7 。
(3) 兩個晶元的 端並在一起後接至系統控制匯流排的存儲器寫信號(如 CPU 為 8086/8088,也可由 和 /M 或 IO / 組合來承擔)
(4) 引腳分別並聯後接至地址解碼器的輸出,而地址解碼器的輸入則由系統地址匯流排的高位來承擔。
當存儲器工作時,系統根據高位地址的解碼同時選中兩個晶元,而地址碼的低位也同時到達每一個晶元,從而選中它們的同一個單元。在讀/寫信號的作用下,兩個晶元的數據同時讀出,送上系統數據匯流排,產生一個位元組的輸出,或者同時將來自數據匯流排上的位元組數據寫入存儲器。
2 、字擴充
字擴展用於存儲晶元的位數滿足要求而字數不夠的情況,是對存儲單元數量的擴展。
例 : 用 2K × 8 的 2716 A存儲器晶元組成 8K × 8 的存儲器系統
分析:
由於每個晶元的字長為 8 位,故滿足存儲器系統的字長要求。但由於每個晶元只能提供 2K 個存儲單元,故需用 4 片這樣的晶元,以滿足存儲器系統的容量要求。
設計要點 : 同位擴充方式相似。
(1) 先將每個晶元的 11(2* 2^10) 位地址線按引腳名稱一一並聯,然後按次序逐根接至系統地址匯流排的低 11 位。
(2) 將每個晶元的 8 位數據線依次接至系統數據匯流排的 D0 -D7 。
(3) 兩個晶元的 端並在一起後接至系統控制匯流排的存儲器讀信號(這樣連接的原因同位擴充方式),
(4) 它們的 引腳分別接至地址解碼器的不同輸出,地址解碼器的輸入則由系統地址匯流排的高位來承擔。
當存儲器工作時,根據高位地址的不同,系統通過解碼器分別選中不同的晶元,低位地址碼則同時到達每一個晶元,選中它們的相應單元。在讀信號的作用下,選中晶元的數據被讀出,送上系統數據匯流排,產生一個位元組的輸出。
3 、同時進行位擴充與字擴充
存儲器晶元的字長和容量均不符合存儲器系統的要求,需要用多片這樣的晶元同時進行位擴充和字擴充,以滿足系統的要求。
例 : 用 1K × 4 的 2114 晶元組成 2K × 8 的存儲器系統
分析: 由於晶元的字長為 4 位,因此首先需用採用位擴充的方法,用兩片晶元組成 1K × 8 的存儲器。再採用字擴充的方法來擴充容量,使用兩組經過上述位擴充的晶元組來完成。
設計要點 : 每個晶元的 10 根地址信號引腳宜接接至系統地址匯流排的低 10 位,每組兩個晶元的 4 位數據線分別接至系統數據匯流排的高 / 低四位。地址碼的 A 10 、 A 11 經解碼後的輸出,分別作為兩組晶元的片選信號,每個晶元的 控制端直接接到 CPU 的讀 / 寫控制端上,以實現對存儲器的讀 / 寫控制。
當存儲器工作時,根據高位地址的不同,系統通過解碼器分別選中不同的晶元組,低位地址碼則同時到達每一個晶元組,選中它們的相應單元。在讀 / 寫信號的作用下,選中晶元組的數據被讀出,送上系統數據匯流排,產生一個位元組的輸出,或者將來自數據匯流排上的位元組數據寫入晶元組。
⑵ 單片機RAM如何擴展
1、我用89s52有256的RAM,但也只能夠用一半。個人猜測可能有點像電腦上的進程那樣,每個進程都有4G的虛擬內存,但只有2G是用戶空間,還有2G是系統空間。可能這個也一樣。因為系統也要幫你做一些事,你都用完了RAM,系統怎麼幫你做事呀?
2、這個沒用過,不懂。
3、這個最後再講。
4、5、像上面講的一樣,把你要顯示的東西定義在ROM上面,
而不是定義在RAM上,定義的時候用個code 關鍵字就得了。
就拿89S52來說ROM有8K 而RAM 才256.就樣的話還有必要擴展嗎?數碼管,點陣的顯示代碼定義在ROM上,用的時候和RAM上的一樣,但要注意一點,定義的時候必須初始化,因為在ROM上定義的,你對他賦值是錯誤的,你可以寫個小程序試下。
最後說下3、強烈建議樓主再好好看看書。
在子程序中定義的變數,可以理解為一種臨時變數吧。
因為出了子程序它的生命周期就結束了,回到主函數是不能
再用了的。子函數裡面的變數,和形參,是函數被調用時才對他們分配內存的。調用結束後它們的空間就被釋放了,到下次調用時再分配。(申明為靜態變數和外部變數除外,他們的生命周期是和主函數一樣的)
你最好搞明白各種變數的在哪分配,生命周期是多長。不然你引用一個被銷毀了的東西當然就會出錯了。
還有個函數形參和實參之間的關系的。以前答的。你可以去看下,希望對你有幫助。
http://..com/question/97142601.html
⑶ 在已有的晶元基礎上,如何進行位擴充、如何進行字擴充
1.位擴充:當使用的存儲器晶元單元數目符合要求,但每單元的位數較少時,需要進行這種擴充。例如,使用4164(64K*1)擴充64KB存儲系統,就需要進行位擴充。
連接示意圖如下所示:
如圖顯示的是將兩片32K*8晶元連接成64K*8的存儲系統。採用字擴充,其連接要點是:兩晶元的低位地址線分別並接在一起,接至系統地址匯流排的低位;兩晶元的數據線分別並接在一起,接至系統數據匯流排;系統高位地址線,進行解碼,解碼的輸出分別接至兩晶元的片選端CS1,CS2。
⑷ 由擴展為2K*8的存儲器晶元生成規格為4K*8的存儲器子系統,採用什麼擴展方式生
回答
由擴展為2K*8的存儲器晶元生成規格為4K*8的存儲器子系統,採用什麼擴展方式生?
晶元(集成電路) 硬體
⑸ 由存儲器晶元擴展成存儲器由哪幾種解碼方式各由什麼特點
容量擴展主要有兩種方式,並位和串位,舉個例子,有個2KB的存儲器,我再擴展個2KB的存儲器,如果是並位擴展方式,地址范圍還是2k的空間,不過每次讀出的是16bit;如果是串位方式,則直接擴展成4KB,有4k的地址范圍,每次讀出8bit,不知道你明白了沒有?這個跟片選信號連接方式,以及地址、數據線連接方式有關. 一般來說是以Byte為讀取單位,通常都是串列擴展,即地址線性擴展,2KB的空間,再增加2KB,一共就4KB的存儲器,也是最常用的方式,地址線的高位通過解碼電路構成片選信號,低位為每片的地址信號.
⑹ 問:什麼是位擴展,什麼是字擴展
存儲晶元的擴展包括位擴展、字擴展和字位同時擴展等三種情況。1、位擴展位擴展是指存儲晶元的字(單元)數滿足要求而位數不夠,需對每個存儲單元的位數進行擴展。例:用1K×4的2114晶元構成lK×8的存儲器系統。分析:每個晶元的容量為1K,滿足存儲器系統的容量要求。但由於每個晶元只能提供4位數據,故需用2片這樣的晶元,它們分別提供4位數據至系統的數據匯流排,以滿足存儲器系統的字長要求。設計要點:(1)將每個晶元的10位(1k=2^10)地址線按引腳名稱一一並聯,按次序逐根接至系統地址匯流排的低10位。(2)數據線則按晶元編號連接,1號晶元的4位數據線依次接至系統數據匯流排的D0-D3,2號晶元的4位數據線依次接至系統數據匯流排的D4-D7。(3)兩個晶元的端並在一起後接至系統控制匯流排的存儲器寫信號(如CPU為8086/8088,也可由和/M或IO/組合來承擔)(4)引腳分別並聯後接至地址解碼器的輸出,而地址解碼器的輸入則由系統地址匯流排的高位來承擔。當存儲器工作時,系統根據高位地址的解碼同時選中兩個晶元,而地址碼的低位也同時到達每一個晶元,從而選中它們的同一個單元。在讀/寫信號的作用下,兩個晶元的數據同時讀出,送上系統數據匯流排,產生一個位元組的輸出,或者同時將來自數據匯流排上的位元組數據寫入存儲器。2、字擴充字擴展用於存儲晶元的位數滿足要求而字數不夠的情況,是對存儲單元數量的擴展。例:用2K×8的2716A存儲器晶元組成8K×8的存儲器系統分析:由於每個晶元的字長為8位,故滿足存儲器系統的字長要求。但由於每個晶元只能提供2K個存儲單元,故需用4片這樣的晶元,以滿足存儲器系統的容量要求。設計要點:同位擴充方式相似。(1)先將每個晶元的11(2*2^10)位地址線按引腳名稱一一並聯,然後按次序逐根接至系統地址匯流排的低11位。(2)將每個晶元的8位數據線依次接至系統數據匯流排的D0-D7。(3)兩個晶元的端並在一起後接至系統控制匯流排的存儲器讀信號(這樣連接的原因同位擴充方式),(4)它們的引腳分別接至地址解碼器的不同輸出,地址解碼器的輸入則由系統地址匯流排的高位來承擔。當存儲器工作時,根據高位地址的不同,系統通過解碼器分別選中不同的晶元,低位地址碼則同時到達每一個晶元,選中它們的相應單元。在讀信號的作用下,選中晶元的數據被讀出,送上系統數據匯流排,產生一個位元組的輸出。3、同時進行位擴充與字擴充存儲器晶元的字長和容量均不符合存儲器系統的要求,需要用多片這樣的晶元同時進行位擴充和字擴充,以滿足系統的要求。例:用1K×4的2114晶元組成2K×8的存儲器系統分析:由於晶元的字長為4位,因此首先需用採用位擴充的方法,用兩片晶元組成1K×8的存儲器。再採用字擴充的方法來擴充容量,使用兩組經過上述位擴充的晶元組來完成。設計要點:每個晶元的10根地址信號引腳宜接接至系統地址匯流排的低10位,每組兩個晶元的4位數據線分別接至系統數據匯流排的高/低四位。地址碼的A10、A11經解碼後的輸出,分別作為兩組晶元的片選信號,每個晶元的控制端直接接到CPU的讀/寫控制端上,以實現對存儲器的讀/寫控制。當存儲器工作時,根據高位地址的不同,系統通過解碼器分別選中不同的晶元組,低位地址碼則同時到達每一個晶元組,選中它們的相應單元。在讀/寫信號的作用下,選中晶元組的數據被讀出,送上系統數據匯流排,產生一個位元組的輸出,或者將來自數據匯流排上的位元組數據寫入晶元組。
⑺ 什麼是儲存晶元連接中的位擴充和地址擴充
存儲器是由晶元組成的,假設如果cpu需要8根數據線從存儲器讀取數據,但是一個存儲器晶元如果只有4根數據線,很顯然是不能交換數據的,這個時候就需要2個晶元來擴充存儲器的位寬度,這種擴充就是位擴充。一個存儲晶元的容量畢竟有限,如果存儲器系統需要更大的存儲容量,這個時候就需要多個存儲晶元在地址方向上進行擴充,這就是地址擴充。
⑻ 為單片機拓展外部程序存儲器時,多片ROM晶元的容量不同如何拓展
拓展外部存儲器,通常都會選擇相同容量的晶元,因為這樣構建解碼電路會比較簡單。如果因一些特殊需要,必須使不同容量的器件,那要看擴展的存儲空間是否要求連接的地址。若必須是連接地址,地址解碼電路比較復雜,適合採用CPLD或FPGA等可編程器件來實現。如果每片擴展存儲器之間,並不要求連續地址,也可考慮按最大容量器件的地址范圍來設計解碼。
⑼ 存儲晶元擴展
內存按位元組編址
--- 就是按byte,1byte=8bit
內存容量為32K*8比特
--- 就是32*8=256K比特(bit) = 32K位元組
地址編號A0000H到DFFFFH
--- DFFFFH-A0000H+1 = 40000H = 262144位元組
所以
--- 262144 / 32K = 262144 / (32*1024) = 8
需要8塊