51單片機(jī)存儲(chǔ)空間2_第1頁(yè)
51單片機(jī)存儲(chǔ)空間2_第2頁(yè)
51單片機(jī)存儲(chǔ)空間2_第3頁(yè)
51單片機(jī)存儲(chǔ)空間2_第4頁(yè)
51單片機(jī)存儲(chǔ)空間2_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

深層次分析8051單片機(jī)存儲(chǔ)空間結(jié)構(gòu)/來(lái)源:元器件交易網(wǎng)日期:2011年09月01日引言單片機(jī)以它的廉價(jià)、體積小、可塑性強(qiáng)、穩(wěn)定性高的特性,有著廣闊的市場(chǎng)前景。在用開(kāi)關(guān)電源模塊單片機(jī)開(kāi)發(fā)產(chǎn)品時(shí),雖然許多廠家設(shè)計(jì)了可編程ISP單片機(jī),但是從安全與便捷方面考慮,單片機(jī)仿真器仍然是開(kāi)發(fā)人員不可或缺的工具。單片機(jī)仿真器在產(chǎn)品開(kāi)發(fā)階段可用來(lái)替代MTD2002單片機(jī)進(jìn)行軟硬件調(diào)試,從而迅速發(fā)現(xiàn)、糾正程序中的錯(cuò)誤,大大縮短開(kāi)關(guān)電源模塊單片機(jī)開(kāi)發(fā)的周期。但實(shí)際中仿真器過(guò)于昂貴,因此,設(shè)計(jì)制作出一款廉價(jià)且實(shí)用的MTD2002仿真器有著廣泛的市場(chǎng)。傳統(tǒng)的開(kāi)關(guān)電源模塊單片機(jī)仿真器硬件系統(tǒng)一般有三種實(shí)現(xiàn)方法。一、采用專(zhuān)用仿真的單片機(jī)。二、采用兩套單片機(jī),一個(gè)單片機(jī)用于仿真,并完成諸如通訊,中斷等功能;另一個(gè)單片機(jī)則用于目標(biāo)單片機(jī),這樣其資源不會(huì)被占用。三、用目標(biāo)單片機(jī)作為仿真器,單片機(jī)即仿真器也作目標(biāo)機(jī)的單片機(jī)用,其實(shí)質(zhì)是一種ROM監(jiān)控器。第三種方法會(huì)占用單片機(jī)的部分資源,但結(jié)構(gòu)簡(jiǎn)單,對(duì)于特定的開(kāi)發(fā)者來(lái)說(shuō),實(shí)用性強(qiáng),性?xún)r(jià)比高,且易于自行制作。本文開(kāi)發(fā)設(shè)計(jì)的仿真器正是基于第三種原理,巧妙實(shí)現(xiàn)了數(shù)據(jù)空間與程序空間的互換,設(shè)計(jì)出一款實(shí)用廉價(jià)的仿真器,工程實(shí)踐性強(qiáng)。原理及系統(tǒng)結(jié)構(gòu)仿真器工作時(shí),要把程序從開(kāi)關(guān)電源模塊PC機(jī)下載到仿真器的存儲(chǔ)器中。在此先詳細(xì)分析51單片的存儲(chǔ)器結(jié)構(gòu)和尋址方法,再分析片外存儲(chǔ)器的擴(kuò)展,最后給出設(shè)計(jì)原理并分析系統(tǒng)結(jié)構(gòu)。圖1存儲(chǔ)空間分布51單片機(jī)存儲(chǔ)器結(jié)構(gòu)分析開(kāi)關(guān)電源模塊8051單片機(jī)的存儲(chǔ)器在物理結(jié)構(gòu)上分為程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間,共有4個(gè)存儲(chǔ)空間:MTD2002片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器以及片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器空間。這種程序存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開(kāi)的結(jié)構(gòu)形式被稱(chēng)為哈佛結(jié)構(gòu)。但從用戶(hù)的角度,8051存儲(chǔ)器地址空間可分為3類(lèi):片內(nèi)、片外統(tǒng)一編址0000H~FFFFH的64KB程序存儲(chǔ)器地址空間(用16位地址);64KB片外數(shù)據(jù)存儲(chǔ)器地址空間,地址也從0000H~FFFFH(用16位地址)編址;256B片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間(用8位地址)。上述4個(gè)存儲(chǔ)空間地址是重疊的,如圖1所示。8051的指令系統(tǒng)設(shè)計(jì)了不同的數(shù)據(jù)傳送指令以區(qū)別這4個(gè)不同的邏輯空間:CPU訪問(wèn)片內(nèi)、片外ROM指令用MOVC,訪問(wèn)片外RAM指令用MOVX,訪問(wèn)片內(nèi)RAM指令用MOV。程序存儲(chǔ)器用于存放編好的程序和表格常數(shù)。程序通過(guò)16位程序計(jì)數(shù)器尋址,尋址能力為64KB。這使得指令能在64KB的地址空間內(nèi)任意跳轉(zhuǎn),但不能使程序從程序存儲(chǔ)器空間轉(zhuǎn)移到數(shù)據(jù)存儲(chǔ)器空間。實(shí)際上,當(dāng)引腳EA接高電平時(shí),開(kāi)關(guān)電源模塊8051的程序計(jì)數(shù)器PC執(zhí)行片內(nèi)ROM中的程序,當(dāng)指令地址超過(guò)片內(nèi)ROM地址時(shí),就自動(dòng)轉(zhuǎn)向片外ROM中去取指令。當(dāng)引腳EA接低電平(接地)時(shí),8051片內(nèi)ROM不起作用,CPU只能從片外ROM中取指令,地址可以從0000H開(kāi)始編址。8051從片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器取指時(shí)的執(zhí)行速度相同。存儲(chǔ)器外擴(kuò)用P0口作地址/數(shù)據(jù)復(fù)用總線,用P2口的口線作高位地址線,最多可以擴(kuò)展開(kāi)關(guān)電源模塊64KB的存儲(chǔ)器??刂菩盘?hào)線包括:使用ALE作為地址鎖存的選通信號(hào),以實(shí)現(xiàn)低8位地址的鎖存;以PSEN信號(hào)作為擴(kuò)展程序存儲(chǔ)器的讀選通信號(hào);以EA信號(hào)作為內(nèi)、外程序存儲(chǔ)器的選擇信號(hào);以EA和作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器和I/O端口的讀、寫(xiě)選通信號(hào)。執(zhí)行MOVX指令時(shí),RD和WR信號(hào)分別自動(dòng)有效。片外數(shù)據(jù)存儲(chǔ)器RAM的讀和寫(xiě)由8051的RD(P3.7)和WR(P3.6)信號(hào)控制,而片外程序存儲(chǔ)器的輸出允許(OE)由讀選通PSEN信號(hào)控制。盡管片外數(shù)據(jù)存儲(chǔ)器和片外程序存儲(chǔ)器共處同一地址空間,但由于控制信號(hào)及使用的數(shù)據(jù)傳送指令不同,故不會(huì)發(fā)生總線沖突。圖2仿真器原理圖仿真器原理與結(jié)構(gòu)由于現(xiàn)在以8051為內(nèi)核的單片機(jī)幾乎都帶有內(nèi)部的FLASH程序存儲(chǔ)器。如本設(shè)計(jì)中要用到的開(kāi)關(guān)電源模塊AT89C51或AT89S51均自帶4KB的FLASH程序存儲(chǔ)器,有的單片機(jī)帶有20KB甚至更大容量的程序存儲(chǔ)器。因此在單片機(jī)開(kāi)發(fā)中,很少用專(zhuān)門(mén)的程序存儲(chǔ)器芯片來(lái)擴(kuò)展外部程序存儲(chǔ)器,通常也沒(méi)有必要?;谝陨线@些因素,下面分析本文中的MTD2002仿真器實(shí)現(xiàn)的原理。下載程序時(shí),EA接高電平,單片機(jī)執(zhí)行內(nèi)部ROM中的程序,把PC機(jī)的程序數(shù)據(jù)下載到片外的RAM62256中;當(dāng)程序數(shù)據(jù)下載完后,在保持RAM62256不掉電的情況下,將單片機(jī)的EA接低電平,并把單片機(jī)復(fù)位。這樣單片機(jī)就只能從片外存儲(chǔ)器中讀數(shù)據(jù)。然后利用RD與PSEN相“與”來(lái)選通RAM62256的讀允許片選端OE,使得單片機(jī)能夠從RAM62256中讀出程序。這樣就實(shí)現(xiàn)了仿真功能。因?yàn)閱纹瑱C(jī)從片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器取指時(shí)的執(zhí)行速度相同,所以這個(gè)設(shè)計(jì)方案下的仿真器性能比起傳統(tǒng)仿真器毫不遜色??傁到y(tǒng)電路原理如圖2所示,系統(tǒng)由單片機(jī)AT89C51、地址鎖存器74LS373、片外存儲(chǔ)器62256、接口電平轉(zhuǎn)換芯片MAX232和相關(guān)控制電路組成。其中AT89C51就是仿真器的核心部件,晶體振蕩電路和復(fù)位電路與普通單片機(jī)系統(tǒng)相同。不同的是:開(kāi)關(guān)電源模塊EA接一個(gè)單刀雙投開(kāi)關(guān),表面上沒(méi)有擴(kuò)展ROM。RAM62256的與OE普通單片機(jī)系統(tǒng)的接法有所不同,系統(tǒng)中把RD與PSEN相“與”,令其選通RAM62256的讀允許片選端OE,就能促成RAM(注意:整個(gè)過(guò)程中RAM不掉電)由數(shù)據(jù)空間的角色向程序空間的角色轉(zhuǎn)換。在執(zhí)行MOVX指令時(shí),產(chǎn)生RD,WR信號(hào),寫(xiě)入程序信息。在執(zhí)行RAM中的程序時(shí),由PSEN信號(hào)與RD信號(hào)選通RAM62256的OE端,實(shí)現(xiàn)從RAM62256中程序的讀入。軟件設(shè)計(jì)PC機(jī)(上位機(jī))軟件可以參考Windows驅(qū)動(dòng)程序開(kāi)發(fā)、串口調(diào)試MTD2002助手等相關(guān)書(shū)籍;也可以利用現(xiàn)成的開(kāi)關(guān)電源模塊KEILC51的Windows集成開(kāi)發(fā)環(huán)境~VISION51和軟件仿真器DSCOPE51完成。下位機(jī)軟件的主要任務(wù)就是設(shè)置串口和接收上位機(jī)串口發(fā)送來(lái)的數(shù)據(jù),并將數(shù)據(jù)存入外部“數(shù)據(jù)”存儲(chǔ)器中。單片機(jī)主程序如下:MOVSCON,#50H;串口方式1MOVTMOD,#20H;T1方式1MOVTL1,#0FDH;波特率9600的常數(shù)MOVTH1,#0FDHSETBTR1;開(kāi)中斷SETBET1SETBESSETBEA系統(tǒng)“寫(xiě)”時(shí)用如下指令:MOVX@DPTR,AMOVX@Ri,A在中斷服務(wù)子程序中,為區(qū)別所接收的信號(hào)是聯(lián)絡(luò)信號(hào)還是字節(jié)數(shù)、是數(shù)據(jù)還是校驗(yàn)和,需要設(shè)立不同的標(biāo)志位如下:FLAG0BIT00H;接收聯(lián)絡(luò)信號(hào)標(biāo)志位FLAG1BIT01H;接收字節(jié)數(shù)標(biāo)志位FLAG2BIT02H;接收數(shù)據(jù)標(biāo)志位FLAG3BIT03H;接收文件結(jié)束標(biāo)志位程序流程如圖3所示,其中R7為接收到的字節(jié)數(shù),接收的數(shù)據(jù)一定要存入開(kāi)關(guān)電源模塊片外RAM從0000H開(kāi)始的單元中。當(dāng)MTD2002單片機(jī)復(fù)位后,把RAM當(dāng)作程序存儲(chǔ)器時(shí),PC是從0000H開(kāi)始的。圖3單片機(jī)接收中斷服務(wù)子程序流程圖幾點(diǎn)討論(1)系統(tǒng)中不需要單獨(dú)的仿真器電源,也不需要晶振電路。(2)下位機(jī)的開(kāi)關(guān)電源模塊片外存儲(chǔ)器在重復(fù)寫(xiě)數(shù)時(shí)不用擦除,每次重新下載程序時(shí),總是用覆蓋的方式。新下載的程序都有END為結(jié)束,就算新下載的程序比原來(lái)的短,也不會(huì)執(zhí)行多余的代碼。(3)在實(shí)際中,可以進(jìn)一步改進(jìn)電路,當(dāng)文件下載完之后,通過(guò)串口備用的信號(hào)線產(chǎn)生控制信號(hào)來(lái)控制和復(fù)位,從而使得全過(guò)程均由上位機(jī)控制。(4)由于內(nèi)部結(jié)構(gòu)的限制,被仿真的產(chǎn)品不能擴(kuò)展片外的程序存儲(chǔ)器,但由于片外可以擴(kuò)展64KB的數(shù)據(jù)存儲(chǔ)器,文中只用了32KB,因此還可以擴(kuò)展一定的外設(shè)。(5)被仿真產(chǎn)品的E(--)A(--)的接法有一定的限制,不能直接接地或接電源正極,實(shí)際中只要加上一個(gè)合適的MTD2002限流電阻(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論