<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è) > 模擬技術(shù) > 設計應用 > 單片機P0口的片外數據存儲器擴展設計技巧

單片機P0口的片外數據存儲器擴展設計技巧

作者: 時(shí)間:2013-12-04 來(lái)源:網(wǎng)絡(luò ) 收藏
其軟件設計的主要思路是如何在MCS-805l與要訪(fǎng)問(wèn)的片外存儲單元之間建立聯(lián)系,實(shí)現兩者的信息傳遞。MOVX指令執行時(shí),將地址信息同時(shí)進(jìn)行鎖存,然后開(kāi)始傳送數據,其讀、寫(xiě)周期很短,但占用端口較多。為了節約端口資源,可將地址信息分時(shí)傳送,圖2是讀、寫(xiě)的過(guò)程。與MOVX指令不同,在訪(fǎng)問(wèn)片外存儲單元時(shí),首先是分時(shí)將片外存儲單元的地址信息送入鎖存器并鎖存起來(lái),然后再對存儲單元進(jìn)行讀、寫(xiě)操作,這是2個(gè)完全獨立的過(guò)程,這一特點(diǎn)大大節約了端口資源,但讀、寫(xiě)周期較長(cháng)。

  單片機讀

  隨著(zhù)單片機運算速度和處理能力的不斷提高,其在各個(gè)領(lǐng)域得到更廣泛的應用。然而。隨著(zhù)其應用領(lǐng)域的不斷擴大及集成化的不斷提高,其內部資源已不能滿(mǎn)足實(shí)際需求,往往需要對其內部資源進(jìn)行擴展。經(jīng)典的擴展方法主要是通過(guò)地址總線(xiàn)、數據總線(xiàn)即P0、P2口,以及控制線(xiàn)ALE、*****等來(lái)進(jìn)行數據或程序的擴展,最大尋址空間可達64KB,但這種方法占用端口較多,在有些情況下不能滿(mǎn)足需求。這里以MCS-8051系列單片機為例,介紹一種新的擴展方法,僅用單片機的、P1.6及P1.7共10個(gè)端口便可實(shí)現256 KB數據存儲器的擴展。

  3.2 數據存儲器擴展的軟件實(shí)例分析

  分析對數據存儲器擴展軟件設計可知,單片機通過(guò)P1口讀、寫(xiě)片外數據存儲單元時(shí),軟件設計具有重要作用。下面通過(guò)一實(shí)例介紹單片機訪(fǎng)問(wèn)片外數據存儲單元的過(guò)程。

  以下程序段首先是將片外存儲器000000H單元中的內容讀到片內存儲器30H單元中,然后再將片內存儲器30H單元中的內容寫(xiě)到片外存儲器 077FFFH單元中。在程序中,首先將片內存儲單元20H、21H和22H定義為地址信息存儲單元,20H是高8位地址信息存儲單元,僅低3位有效;21H是中8位地址信息存儲單元,低7位有效;22H是低8位地址信息存儲單元,8位全有效。所以,其尋址空間為000000H~007FFFH、 010000H~017FFFH、020000H~027FFFH、030000H~037FFFH、040000H~047FFFH、 050000H~057FFFH、060OOOH~067FFFH和070000H~077FFFH,共256 KB。MOVR和MOVW分別讀、寫(xiě)子程序。

  程序

  程序

  從程序中分析可知,能夠僅用及其他幾個(gè)很少的控制端口便可實(shí)現片外大容量數據存儲器的擴展,主要是因為PO口具備地址線(xiàn)、數據線(xiàn)及片選擇控制線(xiàn)的功能,而這一功能是通過(guò)軟件方式實(shí)現的,即分時(shí)傳送地址信息,數據信息和控制信息。從MOVR和MOVW 2個(gè)子程序可以看出數據的具體傳送過(guò)程。此外,在編程過(guò)程中,每次讀、寫(xiě)外部存儲器內容時(shí),只要將地址信息寫(xiě)到DPHH、DPTRH和DPTRL3個(gè)單元中,然后調用子程序MOVR和MOVW便可實(shí)現對片外數據存儲器的讀、寫(xiě)操作。

  4 結論

  介紹MCS-8051單片機片外256 KB數據存儲器的擴展方法,其特點(diǎn)主要是擴展的存儲空間大,占用的端口少,數據傳送采用并行傳送方式。在外圍設備較多的情況下,有限的端口無(wú)法滿(mǎn)足要求,或是存儲空間難以滿(mǎn)足要求時(shí),完全可采用該擴展方法。此外,如果將單片機與數據存儲器件的硬件連接部分稍作改動(dòng),便可直接訪(fǎng)問(wèn)片外256 KB,2種訪(fǎng)問(wèn)方式可完全獨立。如果256 KB的存儲空間還不能滿(mǎn)足實(shí)際需求,不妨將高位地址存儲單元的8位全部進(jìn)行譯碼??傻玫?56個(gè)片選擇控制端口,那么原來(lái)的8片數據存儲器便可增加到 256片。這樣,片外存儲空間就可以達到8 MB。完全滿(mǎn)足需求。而且,按此原理,還可以將原來(lái)的3個(gè)地址存儲單元改為4個(gè)地址存儲單元或更多,以增加其存儲空間。但這樣其讀、寫(xiě)周期也將更長(cháng)。因此需根據實(shí)際情況,綜合考慮,最終使單片機的硬件與軟件達到最優(yōu)化。

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


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


單片機相關(guān)文章:單片機工作原理



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

關(guān)鍵詞: 單片機 P0口 片外數據 存儲器

評論


相關(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>