當前位置:首頁 » 服務存儲 » 程序存儲器與數據共用
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

程序存儲器與數據共用

發布時間: 2022-11-18 22:31:09

⑴ 單片機中外接程序存儲器和數據存儲器公用16位地址線和8根數據線為什麼不會起沖突

建議你閱讀一下單片機關於選通地址、傳遞數據方面的敘述。
下面我簡略的說一下大概過程,希望對你有所幫助。
第一,單片機採用三匯流排結構傳遞數據。地址匯流排、數據匯流排、控制匯流排。傳遞數據的過程是先定址,再傳遞數據。即先送一個地址信息(由微處理器向匯流排寫一個地址信息),由寄存器(也可能是程序存儲器,也可能是數據存儲器)根據這個地址,把微處理器要讀取的數據寫到匯流排上,微處理器再讀取這個數據。整個過程由控制匯流排控制。所以每次讀的數據是針對那個地址對應的寄存器操作的,不會發生混亂。寫數據時一樣,先定址,再寫數據,數據就寫入剛才定址時的地址對應的那個寄存器里去了。
第二、程序存儲器、數據存儲器有不同的選通信號,在一個指令周期里,是不同的時間選通的,所以不會混亂。
第三。選通的引腳不同。拿片外數據存儲器來說,是P3的第6和第7引腳做選通信號,程序存儲器是PSEN做選通信號,他們接在各自器件的選通引腳上,所以不會混亂。
第四,指令不同。拿匯編指令來說。MOV是程序存儲器傳遞數據用,MOVX是數據存儲器傳遞數據用(對片外而言)。
總之,記住三匯流排傳遞的方式,先定址,再傳數,由控制匯流排控制,這個模式,你就容易理解這個了。

單片機的p2和p0分別傳遞地址的高八位和低八位。同時p0還傳遞數據。在時序信號的ALE高電平期間,鎖定地址信息。/PSEN是選通程序存儲器的。在/PSEN低電平期間是向程序存儲器傳遞程序代碼,/WR和/RD是選通數據存儲器的,即在/WR和/RD(p3的六腳和七腳)低電平期間把數據傳遞給數據寄存器。而/PSEN和/WR及/RD是在不同時間變為低電平的,沒有重疊的部分。也就是說,當/WR及/RD變成低電平時,/PSEN已經恢復高電平了,由P0口傳出的數據信息當然只會傳到數據存儲器里,因為程序存儲器已經不再處於選通狀態了!!從表面看,都是從p0口傳出的,但因為選通器件的時間不同而不會發生混亂。當然我說的是片外程序存儲器和數據存儲器的的情況,其實對片內也一樣,還是三匯流排的這種控制方式,使它們在不同的時間被選通,而不至於發生沖突。

看看單片機的一個電路圖。你會發現p0既跟74LS373連,又跟8155或8255或鍵盤或數模轉換器等等連。而8155或8255或鍵盤或數模轉換器等等對單片機而言是當做數據存儲器處理的。74LS373連的多半是程序存儲器。那麼p0送出的信號不是兩者都接受了嗎?注意看ALE接74LS373的G介面,鎖存地址用,PSEN有時用有時不用。WR和RD接數據存儲器的選通介面。因為WR和RD跟ALE的信號在時間上沒有重疊部分,所以p0的信號不會被程序存儲器和數據存儲器同時收到。這是一個舉例說明,具體情況要具體分析。

⑵ 在MCS-51單片機擴展系統中,片外程序儲存器和片外數據儲存器共處同一個地址空間,為什麼不會發生匯流排沖突

訪問片外ROM使用MOVC指令,對晶元的控制信號為#PSEN,而訪問片外RAM使用的是MOVX指令,控制信號為#RD和#WR。二者的控制信號不同,就不會存在地址重疊的現象了。

⑶ 單片機片外Rom和片內Ram共用數據線為什麼不沖突

程序存儲器和數據存儲器雖然共用16位地址線和8位數據線,但由於數據存儲器的讀和寫由(/RD)和(/WR)信號控制,而程序存儲器由讀選通信號(/PSEN)控制,這些信號在邏輯上時序上不會產生沖突,因此,兩者雖然共處於同一地址空間,但由於控制信號不同,所以不會發生匯流排沖突。

⑷ MCS-51外擴的程序存儲器和數據存儲器可以有相同的地址空間,但不會發生數據沖突,為什麼

51的指令系統設計了不同的數據傳送指令以區別這4個不同的邏輯空間:CPU訪問內、片外ROM指令用MOVC,訪問片外RAM指令用MOVX,訪問片內RAM指令用MOV。 程序存儲器用於存放編好的程序和表格常數。程序通過16位程序計數器定址,定址能力為64KB。這使得指令能在64KB的地址空間內任意跳轉,但不能使程序從程序存儲器空間轉移到數據存儲器空間。 實際上,當引腳EA接高電平時,8051的程序計數器PC執行片內ROM中的程序,當指令地址超過片內ROM地址時,就自動轉向片外ROM中去取指令。當引腳EA接低電平(接地)時,8051片內ROM不起作用,CPU只能從片外ROM中取指令,地址可以從0000H開始編址。8051從片內程序存儲器和片外程序存儲器取指時的執行速度相同。 用P0口作地址/數據復用匯流排,用P2口的口線作高位地址線,最多可以擴展64KB的存儲器。控制信號線包括:使用ALE作為地址鎖存的選通信號,以實現低8位地址的鎖存;以PSEN信號作為擴展程序存儲器的讀選通信號;以EA信號作為內、外程序存儲器的選擇信號;以EA和作為擴展數據存儲器和I/O埠的讀、寫選通信號。執行MOVX指令時,RD和WR信號分別自動有效。片外數據存儲器RAM的讀和寫由8051的RD (P3.7)和WR(P3.6)信號控制,而片外程序存儲器的輸出允許(OE)由讀選通PSEN信號控制。盡管片外數據存儲器和片外程序存儲器共處同一地址空間,但由於控制信號及使用的數據傳送指令不同,故不會發生匯流排沖突。

⑸ MCS-51單片機擴展系統中,片外程序存儲器和片外數據存儲器共處同一個地址空間,為什麼不會發生匯流排沖突

因為控制信號線的不同:外擴的RAM晶元既能讀出又能寫入,所以通常都有讀寫控制引腳,記為OE和WE。外擴RAM的讀、寫控制引腳分別與MCS-51的RD和WR引腳相連。

外擴的EPROM在正常使用中只能讀出,不能寫入,故EPROM晶元沒有寫入控制引腳,只有讀出引腳,記為OE,該引腳與MCS-51單片機的PSEN相連

訪問片外程序存儲器和訪問數據存儲器使用不同的指令用來區分同一地址空間硬體上,控制信號不一樣:片外程序存儲器工作,要PSEN信號有效。

片外數據存儲器工作,要RD或WR信號有效;軟體上,定址不一樣,片外程序存儲器工作,要用MOVC,片外數據存儲器工作,要用MOVX;雖然地址都是0000H~FFFFH,不會發生沖突的。

(5)程序存儲器與數據共用擴展閱讀:

訪問存儲空間時,需要用到兩個指針變數,為DPTR和PC。其中pc為程序計數器,指向下一條需要執行的指令的地址,DPTR為數據指針寄存器,這兩個變數的長度都為16位。

這是51單片機內部結構決定的,無法改變。所以這兩個指針的定址能力都為64K。這樣看來,兩類存儲器的擴展能力都為64K 。

⑹ 在80C51擴展系統中,程序存儲器和數據存儲器共用16位地址線和8位數據線,為什麼兩個存儲空間不會發生沖突

不會發生沖突,因為兩者的控制匯流排並沒有共用。

⑺ 為什麼MCS-51單片機的程序存儲器和數據存儲器共處同一地址空間而不會發生匯流排沖突

編寫代碼後,不管是匯編還是C代碼都會被編譯器,編譯為機器代碼,機器代碼中包括操作碼和操作數。
而在讀取程序存儲器和讀寫數據存儲器的內容
可以簡單的說成是操作數.
如果在操作
程序存儲器

讀寫數據存儲器
的操作數相同.
而操作碼不相同。這樣就不會發生匯流排沖突了!

⑻ 單片機的程序存儲器和數據存儲器共處同一地址空間為什麼不會發生匯流排沖突

組8個單元,復位後的寄存器是第0組。能被8整除的都可以進行位定址。EA:片內外程序存儲器片選端,ALE:地址鎖存使用,PSEN:片外程序存儲器讀允許信號,1個機器周期是12個時鍾周期,1個指令周期是1、2、4個機器周期。1/10US,P0-P3,口的不同之處在與:P0口沒有上拉電阻,其餘的都有上拉電阻,外電路不用加上拉電阻。在作為輸入口時要向埠寫1,防止讀入的數據錯誤。
2、地址相同,但是,使用的指令不同,MOVC,MOVX。P3口的第二功能很豐富:串列口RX,TX、外部中斷INT0,INT1、定時記數器T0,T1、讀寫WR,RD。一個是位地址,一個是位元組地址,採用訪問的指令不同,7C在位地址定址區的2F中,PSW記錄累加器A的狀態,CY,AC,OV等,具體是第7位進位或者借位時,CY=1,反之為0,第3位進位或者借位時,AC=1反之為0,當運算結果不對時,OV=1。
3、那是程序的總入口地址,中斷地址入口。說白了,就是即可以輸入又可以輸出的口叫雙向口,P0-P3:復位時,為FFH。定址方式:直接、間接、立即、寄存器、變址、位定址。內部低128位定址,和整個256位元組定址。
4、DA A的作用是緊跟著加法後面的指令,用與十進制調整。MOV A,80H,XCH A,90H,MOV 80H,A。算術運算利用CY,OV判斷結果是否正確。如果CY=1,說明減數小,與此同時OV=1,說明正數減去負數得負數的情況。依次類推。

以上是部分內容回答。
由於時間關系先到此吧,後續再補上!

⑼ 單片機內程序存儲器和數據存儲器共處同意地址空間為什麼不會發生匯流排沖突

錯了,他們並非在同一地址空間上,它們只是各自單獨的在單片機內部
ROM是程序存儲器,用來存放程序文件的,在單片機運行過程中並沒有數據的變化,無需經過匯流排。
RAM是數據存儲器,用來存放數據的,這些存儲單元的數據在硬體和軟體的結合下是可以不斷變化的,有時也會經過匯流排(數據傳輸過程中)。
所以他們並不會發生沖突

⑽ 51單片機的程序存儲器(ROM)與數據存儲器(RAM)是相互分工的,請問一般PC計算機程序與數據共用嗎

這個問題我知道!呵呵你的問題好多呀還是俺來回答你吧1概念要明確ROM和RAM是計算機的半導體存儲器,速度與CPU相匹配,CPU只能直接訪問和執行半導體存儲器中的程序和數據。叫內存。而硬碟不是半導體存儲器,速度與CPU不匹配,CPU不能直接訪問和執行半導體存儲器中的程序和數據,只有先把硬碟的內容傳遞給內存,CPU間接通過內存訪問和硬碟的程序和數據,因此硬碟叫外存。2ROM為只讀存儲器,寫入的程序和數據不可再更改,存放的程序斷電也不丟失。RAM是讀寫存儲器,可讀可寫,用起來方便,價格低,被PC計算機廣泛使用,即做內存條。缺點:斷電程序、信息不能保留。ROM在PC計算機中,用來存放開機的引導程序和基本的驅動程序,叫做BIOS.3PC計算機的ROM和RAM的地址是統一編址的。訪問是採用相同的指令去訪問。單片機由於地址線的引腳數目少,分配的地址空間有限,故ROM和RAM的地址是分開編址的。為兩個不同的邏輯空間,如一個程序存儲器空間地址為0000H~FFFFH.一個片外數據存儲器空間地址為0000H~FFFFH.訪問時為了加以區分,採用不同的執行訪問不同的存儲器。呵呵給你介紹了半天該給加分了吧