資料介紹
一.51的存儲器從功能上來說可以分為程序存儲器和數據存儲器,至于到底能擴展多少存儲空間,要看你擴展的是哪一類存儲器。
訪問存儲空間時,需要用到兩個指針變量,為DPTR和PC。其中pc為程序計數器,指向下一條需要執行的指令的地址,DPTR為數據指針寄存器,這兩個變量的長度都為16位,這是51單片機內部結構決定的,無法改變。所以這兩個指針的尋址能力都為64K。這樣看來,兩類存儲器的擴展能力都為64K 。但是,如果你實際擴展過存儲器,你就可以發現程序存儲器的擴展能力并沒有64K!!!
這是為什么呢?
這得從51單片機的存儲空間的編址說起。這里僅作簡單說明,具體可以看教科書。簡單地說,內部程序存儲器和外部程序存儲器是一起編址的,它們分別占用64K地址的一部分,所以外部擴展時要減去內部的地址空間,當然小于64K啦。而數據存儲器是內外部分別編址,內外部數據存儲器用不同的指令進行訪問,所以不用擔心單片機會混淆內外部數據存儲器,所以外部數據存儲器擴展能力有64K
擴展閱讀:
二.MCS-51單片機擴展系統中,片外程序存儲器和片外數據存儲器共處同一個地址空間,為什么不會發生總線沖突?
硬件上,控制信號不一樣:片外程序存儲器工作,要PSEN信號有效;片外數據存儲器工作,要RD或WR信號有效;
軟件上,尋址不一樣,片外程序存儲器工作,要用MOVC,
片外數據存儲器工作,要用MOVX;
雖然說他們的地址都是0000H~FFFFH,不會發生沖突的
因為控制信號線的不同:
外擴的RAM芯片既能讀出又能寫入,所以通常都有讀寫控制引腳,記為OE和WE。外擴RAM的讀、寫控制引腳分別與MCS-51的RD和WR引腳相連。
外擴的EPROM在正常使用中只能讀出,不能寫入,故EPROM芯片沒有寫入控制引腳,只有讀出引腳,記為OE,該引腳與MCS-51單片機的PSEN相連
三.單片機中外接程序存儲器和數據存儲器公用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的信號不會被程序存儲器和數據存儲器同時收到。這是一個舉例說明,具體情況要具體分析。
四,51單片機,存儲器分為數據存儲器和程序儲存器,其地址空間、存取指令、和控制信號各有一套,
51是馮-諾依曼結構
哈弗結構說的是將程序存儲器和數據存儲器地址編碼分開,因而有兩種程序指令總線和數據指令總線。請注意這里說的是:地址編碼分開。取指令和取數據可以同時進行。
因為馮-諾依曼結構的數據線和指令線是分時復用的,在同一根線上,有時傳送的是數據有時是指令,所以它取指令和取數據不能同時進行。你看mov,movx,movc,的功能,它告訴cpu什么時候取數據什么時候取指令。注意:數據和指令的區別!
又一種說法 哈佛結構和馮.諾依曼結構都是一種存儲器結構。哈佛結構是將指令存儲器和數據存儲器分開的一種存儲器結構;而馮.諾依曼結構將指令存儲器和數據存儲器合在一起的存儲器結構。
哈佛結構是為了高速數據處理而采用的,因為可以同時讀取指令和數據(分開存儲的)。大大提高了數據吞吐率。缺點是結構復雜。
通用微機指令和數據是混合存儲的,結構上簡單,成本低。假設是哈佛結構:你就得在電腦安裝兩塊硬盤,一塊裝程序,一塊裝數據,內存裝兩根,一根儲存指令,一根存儲數據……
是什么結構要看總線結構的。51單片機雖然數據指令存儲區是分開的,但總線是分時復用得,所以頂多算改進型的哈佛結構,呵呵。ARM9雖然是哈佛德,但是之前的版本也還是馮諾結構。早期的X86能迅速占有市場,一條很重要的原因,正是靠了馮 諾依曼這種實現簡單,成本低的總線結構。樓上的兄弟有一點說的不確切,現在的處理器雖然外部總線上看是諾依曼結構的,但是由于內部CACHE的存在,因此實際上內部來看已經算是改進型哈佛結構的了。
這個問題21ic上討論翻了無數個帖子,沒有什么定論,見仁見智。
至于優缺點,呵呵,樓上的兄弟說的就比較的明白了。哈佛結構就是復雜,對外圍設備的連接與處理要求高,十分不適合外圍存儲器的擴展。所以早期通用CPU難以采用這種結構。而單片機,由于內部集成了所需的存儲器,所以采用哈佛結構也未嘗不可?,F在的處理器,依托CACHE的存在,已經很好的將二者統一起來了。
很多入門的書上基本上都說:由運算器、控制器、存儲器、輸入設備、輸出設備組成的系統
都叫馮氏結構。
也有的說:“程序存儲器的數據線地址線”與“數據存儲器的數據線地址線”共用的話,就
是馮氏結構,所以51是該結構。(我認為說得太絕對了)
我認為馮氏結構與哈佛結構的區別應該在存儲器的空間分別上,哈佛結構的數據區和代碼區是分開的,它們即使地址相同,但空間也是不同的,主要表現在數據不能夠當作代碼來運行。
口線復用,就將它認為成馮氏結構,我認為這樣不足取,應該是按照空間是否完全重合來辨別。比如PC機的代碼空間和數據空間是同一空間,所以是馮氏結構;51由于IO口不夠,但代碼空間和數據空間是分開的,所以還是哈佛結構。
另外,還有的把CISC RISC 和 地址是否復用,是哪種結構 這3這都混到一起。我認為這三者都沒有必然的關系。只不過 RISC因為精簡了指令集,沒有了執行復雜功能的指令,為了提高性能,常采用哈佛結構,并且不復用地址線。
(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 8位、16位、32位單片機中的“XX位”指什么?
- 8/16/32/64位單片機區別
- 8位、16位、32位單片機的xx位含義 2次下載
- 8位、16位、32位單片機各有啥區別?主要是CPU?資料下載
- AVR單片機的并口ISP下載線原理圖資料下載
- 單片機為什么會有8位、16位、32位之分呢?資料下載
- 關于時鐘線/數據線/地址線上串聯電阻及其作用資料下載
- PIC單片機下載線原理圖 22次下載
- 使用單片機實現非零地址讀寫AT24C02的仿真設計實例文件免費下載 17次下載
- 使用單片機進行地址擴展的資料說明
- 51單片機容易忽略那些東西詳細資料說明
- 18引腳8位閃存單片機PIC16F182X的詳細中文資料概述免費下載
- AVR單片機下載線制作與應用
- PIC16CXXX 8位單片機中文資料
- 單片機I/O口擴展及應用,下載 0次下載
- 如何自制一個AVR單片機ISP下載線 3894次閱讀
- PIC單片機相比其他單片機的四大優勢介紹 2407次閱讀
- 單片機外部結構的引腳功能的簡介和使用資料概述 8779次閱讀
- PIC16F877A單片機對24X24點點陣屏的驅動設計 794次閱讀
- 如何使用8位單片機對16位INT型數據進行操作 7129次閱讀
- MCS-51單片機地址指針的應用 2035次閱讀
- 如何采用51單片機設計出總線編址電路 2026次閱讀
- 如何對51單片機進行ROM擴展 6576次閱讀
- OTG數據線diy制作 7.1w次閱讀
- 一文看懂8位,16位和32位單片機的區別 12.3w次閱讀
- 線編程技術 STC單片機的下載線設計 3959次閱讀
- 單片機8位和16位是怎么區分的 2.6w次閱讀
- type c數據線選購技巧分享 7158次閱讀
- 基于FPGA的多單片機通信網絡 2075次閱讀
- 8位單片機中的經典之作,51單片機使用心得分享 3395次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多