<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機存儲器擴展問(wèn)題

51單片機存儲器擴展問(wèn)題

作者: 時(shí)間:2013-01-30 來(lái)源:網(wǎng)絡(luò ) 收藏

一.51的從功能上來(lái)說(shuō)可以分為程序和數據,至于到底能擴展多少存儲空間,要看你擴展的是哪一類(lèi)存儲器。

訪(fǎng)問(wèn)存儲空間時(shí),需要用到兩個(gè)指針變量,為DPTR和PC。其中pc為程序計數器,指向下一條需要執行的指令的地址,DPTR為數據指針寄存器,這兩個(gè)變量的長(cháng)度都為16位,這是內部結構決定的,無(wú)法改變。所以這兩個(gè)指針的尋址能力都為64K。這樣看來(lái),兩類(lèi)存儲器的擴展能力都為64K 。但是,如果你實(shí)際擴展過(guò)存儲器,你就可以發(fā)現程序存儲器的擴展能力并沒(méi)有64K!!!

這是為什么呢?

這得從的存儲空間的編址說(shuō)起。這里僅作簡(jiǎn)單說(shuō)明,具體可以看教科書(shū)。簡(jiǎn)單地說(shuō),內部程序存儲器和外部程序存儲器是一起編址的,它們分別占用64K地址的一部分,所以外部擴展時(shí)要減去內部的地址空間,當然小于64K啦。而數據存儲器是內外部分別編址,內外部數據存儲器用不同的指令進(jìn)行訪(fǎng)問(wèn),所以不用擔心單片機會(huì )混淆內外部數據存儲器,所以外部數據存儲器擴展能力有64K

擴展閱讀:?jiǎn)纹瑱C存儲器的配置

二.MCS-擴展系統中,片外程序存儲器和片外數據存儲器共處同一個(gè)地址空間,為什么不會(huì )發(fā)生總線(xiàn)沖突?

硬件上,控制信號不一樣:片外程序存儲器工作,要PSEN信號有效;片外數據存儲器工作,要RD或WR信號有效;

軟件上,尋址不一樣,片外程序存儲器工作,要用MOVC,

片外數據存儲器工作,要用MOVX;

雖然說(shuō)他們的地址都是0000H~FFFFH,不會(huì )發(fā)生沖突的

因為控制信號線(xiàn)的不同:

外擴的RAM芯片既能讀出又能寫(xiě)入,所以通常都有讀寫(xiě)控制引腳,記為OE和WE。外擴RAM的讀、寫(xiě)控制引腳分別與MCS-51的RD和WR引腳相連。

外擴的EPROM在正常使用中只能讀出,不能寫(xiě)入,故EPROM芯片沒(méi)有寫(xiě)入控制引腳,只有讀出引腳,記為OE,該引腳與MCS-51單片機的PSEN相連

三.單片機中外接程序存儲器和數據存儲器公用16位地址線(xiàn)和8根數據線(xiàn)為什么不會(huì )起沖突

建議你閱讀一下單片機關(guān)于選通地址、傳遞數據方面的敘述。

下面我簡(jiǎn)略的說(shuō)一下大概過(guò)程,希望對你有所幫助。

第一,單片機采用三總線(xiàn)結構傳遞數據。地址總線(xiàn)、數據總線(xiàn)、控制總線(xiàn)。傳遞數據的過(guò)程是先尋址,再傳遞數據。即先送一個(gè)地址信息(由微處理器向總線(xiàn)寫(xiě)一個(gè)地址信息),由寄存器(也可能是程序存儲器,也可能是數據存儲器)根據這個(gè)地址,把微處理器要讀取的數據寫(xiě)到總線(xiàn)上,微處理器再讀取這個(gè)數據。整個(gè)過(guò)程由控制總線(xiàn)控制。所以每次讀的數據是針對那個(gè)地址對應的寄存器操作的,不會(huì )發(fā)生混亂。寫(xiě)數據時(shí)一樣,先尋址,再寫(xiě)數據,數據就寫(xiě)入剛才尋址時(shí)的地址對應的那個(gè)寄存器里去了。

第二、程序存儲器、數據存儲器有不同的選通信號,在一個(gè)指令周期里,是不同的時(shí)間選通的,所以不會(huì )混亂。

第三。選通的引腳不同。拿片外數據存儲器來(lái)說(shuō),是P3的第6和第7引腳做選通信號,程序存儲器是PSEN做選通信號,他們接在各自器件的選通引腳上,所以不會(huì )混亂。

第四,指令不同。拿匯編指令來(lái)說(shuō)。MOV是程序存儲器傳遞數據用,MOVX是數據存儲器傳遞數據用(對片外而言)。

51單片機相關(guān)文章:51單片機教程


存儲器相關(guān)文章:存儲器原理



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>