① 當。單片機外部擴展RAM和ROM時,P0口和P2口個起什麼作用
當單片機外部擴展RAM和ROM時,P0口做數據匯流排及地址匯流排的低八位。P2作地址匯流排的高八位。
② 當單片機外部擴展RAM和ROM是時,P0口,P1口,P2口,P3口各起什麼作用
不知道你說的是哪種單片機,如果是常用的51單片機的話,其P1口僅作為I/O,無第二功能;P3口作為I/O的同時,其第二功能是一些特殊功能,非擴展存儲.P0口用於外部擴展存儲時,用作地址匯流排或數據匯流排;P2口作為擴展存儲時,作為地址匯流排.
③ 簡述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
④ 單片機片內RAM和片外擴展RAM的存儲空間有什麼關系
典型的51單片機內部RAM是256B,8根地址線(8位),這256B共分為高128位和低128位,用戶使用的區域是低128位(即00H~7FH),通過程序計數器PC定址。
51單片機的外部RAM可擴展到64KB,16根地址線(16位),使用DPTR作為外部RAM的定址指針。
程序存儲器:也就是ROM,是存放用戶程序(如匯編程序或C程序)的地方,典型的51單片機內部ROM為4KB,若是使用外部ROM可以擴展到64KB。
數據存儲器:是存放用戶程序運行過程中的中間結果或者運算結果,也就是內部RAM或外部RAM。
MOV: 單片機內部RAM的數據傳送指令。
MOVX: 單片機外部RAM的數據傳送指令。
⑤ 當單片機外部擴展RAM和ROM是時,P0口,P1口,P2口,P3口各起什麼作用
P0口和P2口組成16位地址線,P0口同時復用為8位數據線,通過373來鎖存地址值,ALE來控制373鎖存。
P3口中的
WE
和
RD
用作讀寫的使能選擇控制線。
PSEN
用來作RAM和ROM的選擇線。
P1口和P3口除P37
P36外的6個口在讀寫時是無用的(地址只有64K的話)
⑥ 關於51單片機外擴RAM的問題。請大俠們幫忙解答,先謝過。
現在的rom和ram都很豐富,rom有好幾k的,你寫程序肯定夠了,除非你要用大量的數據,才會使用大量的程序空間,比如幾十k,才會考慮去擴充。
擴充是用p0口和p2口擴充,p0口是數據,p2口是地址,用373鎖存就可以擴展了。地址如果不是很大,可以用138解碼,這樣可以擴展多片晶元,如果很大,就採用線選咯。
⑦ 如何用單片機(89C51)C語言訪問片外ROM當ram和rom同時外擴時該如何區別
EA/VPP(引腳):當EA端保持高電平時,訪問內部程序存儲器,反之訪問外部程序存儲器,
與之相關的三根引腳psen,rd,wr你都很清楚了,就不多說了,
使用外部存儲器,需要使用編程器將你的程序寫到外部rom中。
psen是rom的選通線,因此,外部rom及外部ram是不會干擾的,你根本不用考慮這個問題,按教材連線就可以了,當然,stc的單片機需要注意,它內部有擴展ram,在使用外部ram時需要屏蔽內部ram。
總之,內部還是外部,你的代碼完全一樣,只是EA/VPP腳接高低電平不同。
望採納!謝謝.