基于MCS-8051單片機(jī)的片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展設(shè)計(jì)研究
出處:電子發(fā)燒友網(wǎng) 發(fā)布于:2013-10-21 12:32:09
摘要:本文介紹MCS-8051單片機(jī)片外256 KB數(shù)據(jù)存儲(chǔ)器的擴(kuò)展方法,主要以MCS-8051系列單片機(jī)為例,介紹一種新的片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展方法,僅用單片機(jī)的P0口、P1.6及P1.7共10個(gè)端口便可實(shí)現(xiàn)256 KB數(shù)據(jù)存儲(chǔ)器的擴(kuò)展方法。
0 引言
隨著單片機(jī)運(yùn)算速度和處理能力的不斷提高,其在各個(gè)領(lǐng)域得到更廣泛的應(yīng)用。然而。隨著其應(yīng)用領(lǐng)域的不斷擴(kuò)大及集成化的不斷提高,其內(nèi)部資源已不能滿足實(shí)際需求,往往需要對(duì)其內(nèi)部資源進(jìn)行擴(kuò)展。
經(jīng)典的擴(kuò)展方法主要是通過地址總線、數(shù)據(jù)總線即P0、P2口,以及控制線ALE等來進(jìn)行數(shù)據(jù)或程序存儲(chǔ)器的擴(kuò)展,尋址空間可達(dá)64KB,但這種方法占用端口較多,在有些情況下不能滿足需求。這里以MCS-8051系列單片機(jī)為例,介紹一種新的片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展方法,僅用單片機(jī)的P0口、P1.6及P1.7共10個(gè)端口便可實(shí)現(xiàn)256 KB數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。

1 總體設(shè)計(jì)思路
MCS-8051單片機(jī)片內(nèi)部存儲(chǔ)空間為256 B,有P0、P1、P2、P3 4個(gè)I/O端口。實(shí)際應(yīng)用中,其內(nèi)部存儲(chǔ)空間往往不能滿足需求,常常會(huì)在片外進(jìn)行擴(kuò)展。有別于經(jīng)典的擴(kuò)展方法,這里并沒有用到P2口,僅用P0口和各個(gè)存儲(chǔ)器的地址線、數(shù)據(jù)線連接,組成地址總線和數(shù)據(jù)總線。同時(shí)將PO口的P0.0、P0.1和P0.2這3個(gè)端口引到譯碼器件的輸入端,譯碼后作為數(shù)據(jù)存儲(chǔ)器件的片選擇控制線,與單片機(jī)的其他控制端口一起形成控制總線。從而通過數(shù)據(jù)總線、地址總線和控制總線這3個(gè)總線實(shí)現(xiàn)單片機(jī)片外256 KB數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。
單片機(jī)的PO口具備地址總線、數(shù)據(jù)總線及控制線的功能。由軟件來分時(shí)傳送地址信號(hào)、數(shù)據(jù)信號(hào)和片選擇控制信號(hào)。
2 硬件接口電路設(shè)計(jì)
MCS-805l單片機(jī)與多片62256數(shù)據(jù)存儲(chǔ)器的擴(kuò)展電路主要由8片62256型數(shù)據(jù)存儲(chǔ)器、3片74IS373鎖存器和1片74LS138譯碼器件組成。62 256數(shù)據(jù)存儲(chǔ)器為32 KB靜態(tài)隨機(jī)存取存儲(chǔ)器,
為片選信號(hào)輸入線,
為寫選通信號(hào)輸入線,
為讀選通信號(hào)輸人線,A0~A14為地址輸入線,D0~D7為雙向三態(tài)數(shù)據(jù)線。該存儲(chǔ)器件在不同操作方式下控制引腳電平的狀態(tài)如表1所示。74LS373是帶三態(tài)緩沖輸出的8D觸發(fā)器,OE為使能端,G為控制端。其功能如表2所示。


圖l是MCS-8051單片機(jī)與多片62256數(shù)據(jù)存儲(chǔ)器的硬件連接電路。單片機(jī)的P0口與譯碼器741S138、鎖存器74LS373-0和 74LS373-l的輸入端口相連,用來傳輸?shù)刂沸畔⒑涂刂菩畔ⅰM瑫r(shí),P0口還與數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)線相連接,用來傳輸數(shù)據(jù)信息。P1.6接到鎖存器 74LS373-2的控制端G,P1.7接到鎖存器74LS373-1的控制端G,ALE接到鎖存器74LS373-0的控制端上。由此,在P1.6、 P1.7和ALE 3個(gè)端口共同作用下,使可實(shí)現(xiàn)地址信息和數(shù)據(jù)信息的分時(shí)傳送。T0~T7是8片62256數(shù)據(jù)存儲(chǔ)器,組成片外256 KB存儲(chǔ)空間。

3 軟件設(shè)計(jì)
3.1數(shù)據(jù)存儲(chǔ)器擴(kuò)展的軟件設(shè)計(jì)
MCS-8051單片機(jī)片外256 KB數(shù)據(jù)存儲(chǔ)器擴(kuò)展,其軟件設(shè)計(jì)的主要思路是如何在MCS-805l單片機(jī)與要訪問的片外存儲(chǔ)單元之間建立聯(lián)系,實(shí)現(xiàn)兩者的信息傳遞。MOVX指令執(zhí)行時(shí),將地址信息同時(shí)進(jìn)行鎖存,然后開始傳送數(shù)據(jù),其讀、寫周期很短,但占用端口較多。為了節(jié)約端口資源,可將地址信息分時(shí)傳送,圖2是單片機(jī)讀、寫片外數(shù)據(jù)存儲(chǔ)器的過程。與MOVX指令不同,單片機(jī)在訪問片外存儲(chǔ)單元時(shí),首先是分時(shí)將片外存儲(chǔ)單元的地址信息送入鎖存器并鎖存起來,然后再對(duì)片外數(shù)據(jù)存儲(chǔ)單元進(jìn)行讀、寫操作,這是2個(gè)完全獨(dú)立的過程,這一特點(diǎn)大大節(jié)約了端口資源,但讀、寫周期較長(zhǎng)。

隨著單片機(jī)運(yùn)算速度和處理能力的不斷提高,其在各個(gè)領(lǐng)域得到更廣泛的應(yīng)用。然而。隨著其應(yīng)用領(lǐng)域的不斷擴(kuò)大及集成化的不斷提高,其內(nèi)部資源已不能滿足實(shí)際需求,往往需要對(duì)其內(nèi)部資源進(jìn)行擴(kuò)展。經(jīng)典的擴(kuò)展方法主要是通過地址總線、數(shù)據(jù)總線即P0、P2口,以及控制線ALE、*****等來進(jìn)行數(shù)據(jù)或程序存儲(chǔ)器的擴(kuò)展,尋址空間可達(dá)64KB,但這種方法占用端口較多,在有些情況下不能滿足需求。這里以MCS-8051系列單片機(jī)為例,介紹一種新的片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展方法,僅用單片機(jī)的P0口、P1.6及P1.7共10個(gè)端口便可實(shí)現(xiàn)256 KB數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。
3.2數(shù)據(jù)存儲(chǔ)器擴(kuò)展的軟件實(shí)例分析
分析對(duì)數(shù)據(jù)存儲(chǔ)器擴(kuò)展軟件設(shè)計(jì)可知,單片機(jī)通過P1口讀、寫片外數(shù)據(jù)存儲(chǔ)單元時(shí),軟件設(shè)計(jì)具有重要作用。下面通過一實(shí)例介紹單片機(jī)訪問片外數(shù)據(jù)存儲(chǔ)單元的過程。
以下程序段首先是將片外存儲(chǔ)器000000H單元中的內(nèi)容讀到片內(nèi)存儲(chǔ)器30H單元中,然后再將片內(nèi)存儲(chǔ)器30H單元中的內(nèi)容寫到片外存儲(chǔ)器 077FFFH單元中。在程序中,首先將片內(nèi)存儲(chǔ)單元20H、21H和22H定義為地址信息存儲(chǔ)單元,20H是高8位地址信息存儲(chǔ)單元,僅低3位有效;21H是中8位地址信息存儲(chǔ)單元,低7位有效;22H是低8位地址信息存儲(chǔ)單元,8位全有效。所以,其尋址空間為000000H~007FFFH、 010000H~017FFFH、020000H~027FFFH、030000H~037FFFH、040000H~047FFFH、 050000H~057FFFH、060OOOH~067FFFH和070000H~077FFFH,共256 KB.MOVR和MOVW分別讀、寫子程序。


從程序中分析可知,能夠僅用P0口及其他幾個(gè)很少的控制端口便可實(shí)現(xiàn)片外大容量數(shù)據(jù)存儲(chǔ)器的擴(kuò)展,主要是因?yàn)镻O口具備地址線、數(shù)據(jù)線及片選擇控制線的功能,而這一功能是通過軟件方式實(shí)現(xiàn)的,即分時(shí)傳送地址信息,數(shù)據(jù)信息和控制信息。從MOVR和MOVW 2個(gè)子程序可以看出數(shù)據(jù)的具體傳送過程。此外,在編程過程中,每次讀、寫外部存儲(chǔ)器內(nèi)容時(shí),只要將地址信息寫到DPHH、DPTRH和DPTRL3個(gè)單元中,然后調(diào)用子程序MOVR和MOVW便可實(shí)現(xiàn)對(duì)片外數(shù)據(jù)存儲(chǔ)器的讀、寫操作。
4 結(jié)論
本文所介紹的的MCS-8051單片機(jī)片外256 KB數(shù)據(jù)存儲(chǔ)器的擴(kuò)展方法,其特點(diǎn)主要是擴(kuò)展的存儲(chǔ)空間大,占用的端口少,數(shù)據(jù)傳送采用并行傳送方式。在外圍設(shè)備較多的情況下,有限的端口無法滿足要求,或是存儲(chǔ)空間難以滿足要求時(shí),完全可采用該擴(kuò)展方法。此外,如果將單片機(jī)與數(shù)據(jù)存儲(chǔ)器件的硬件連接部分稍作改動(dòng),便可直接訪問片外256 KB,2種訪問方式可完全獨(dú)立。
如果256 KB的存儲(chǔ)空間還不能滿足實(shí)際需求,不妨將高位地址存儲(chǔ)單元的8位全部進(jìn)行譯碼。可得到256個(gè)片選擇控制端口,那么原來的8片數(shù)據(jù)存儲(chǔ)器便可增加到 256片。這樣,片外存儲(chǔ)空間就可以達(dá)到8 MB.完全滿足需求。而且,按此原理,還可以將原來的3個(gè)地址存儲(chǔ)單元改為4個(gè)地址存儲(chǔ)單元或更多,以增加其存儲(chǔ)空間。但這樣其讀、寫周期也將更長(zhǎng)。因此需根據(jù)實(shí)際情況,綜合考慮,終使單片機(jī)的硬件與軟件達(dá)到化。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號(hào)處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級(jí)DSP信號(hào)處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴(kuò)充定義2025/10/27 13:59:22









