第三章AT89s52存儲器結(jié)構(gòu)_第1頁
第三章AT89s52存儲器結(jié)構(gòu)_第2頁
第三章AT89s52存儲器結(jié)構(gòu)_第3頁
第三章AT89s52存儲器結(jié)構(gòu)_第4頁
第三章AT89s52存儲器結(jié)構(gòu)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章AT89S52存儲器結(jié)構(gòu)3.1存儲器概述3.2AT89S52單片機的存儲器結(jié)構(gòu)3.3外部存儲器及其訪問3.4片內(nèi)FLASH存儲器操作重點單片機內(nèi)部存儲器的結(jié)構(gòu):程序存儲器、數(shù)據(jù)存儲器和特殊功能寄存器SFR。外部存儲器及其訪問:外部程序存儲器的訪問和外部數(shù)據(jù)存儲器的訪問3.1存儲器概述1、各種存儲器的特點2、AT89S52的閃速存儲器Flash2、AT89S52的閃速存儲器Flash結(jié)合了EPROM和EEPROM兩種存儲器的技術(shù)優(yōu)點。編程速度快,幾秒鐘就可以完成對全片的擦除支持在線編程不易揮發(fā)性、訪問速度快3.2AT89S52單片機的存儲器結(jié)構(gòu)3.2.1程序存儲器

3.2.2數(shù)據(jù)存儲器

3.2.3特殊功能寄存器SFR3.2.1程序存儲器1.程序存儲器的結(jié)構(gòu)

2.程序存儲器中的中斷矢量區(qū)AT89S52單片機共有8個中斷源,6個中斷矢量,當中斷源發(fā)出中斷請求且CPU響應(yīng)中斷后便轉(zhuǎn)移到中斷服務(wù)程序執(zhí)行。在程序存儲器中為中斷服務(wù)程序保留了一段特殊的區(qū)域,即0003H~0032H存儲單元被特殊保留,專門留給中斷服務(wù)程序使用,被稱為中斷矢量區(qū)

返回在編程時,通常在這些入口地址開始的二三個地址單元中,放入一條轉(zhuǎn)移類指令,以使相應(yīng)的程序在指定的程序存儲器區(qū)域中生成。例如,從000BH地址單元開始,放入一條轉(zhuǎn)移到3000H地址單元的轉(zhuǎn)移類指令,定時器0的中斷服務(wù)程序就可從3000H地址單元開始安排。程序存儲器用來存放固化了的用戶程序,取指地址由程序計數(shù)器PC給出,PC具有自動加l的功能,從而在無轉(zhuǎn)移類指令的條件下,指令被逐一執(zhí)行。轉(zhuǎn)移類指令可改變PC值,使程序得以轉(zhuǎn)移。程序存儲器中也可固化一片數(shù)據(jù)區(qū),存放被查閱的表格和參數(shù)等。3.2.2數(shù)據(jù)存儲器

AT89S52單片機的數(shù)據(jù)存儲器地址空間分為芯片內(nèi)部和外部兩個部分,使用MOV類指令訪問內(nèi)部數(shù)據(jù)存儲器,使用MOVX類指令訪問外部數(shù)據(jù)存儲器。外部數(shù)據(jù)存儲器最大地址空間為64KB,地址范圍為0000H~FFFFH。

返回3.2.3特殊功能寄存器SFRAT89S52芯片內(nèi)設(shè)有128B的特殊功能寄存器區(qū),其特殊功能寄存器增加到了32個,與AT89C51相比增加了11個,與AT89S51相比也增加了6個。AT89S52的片內(nèi)特殊功能寄存器占用256B的高128B字節(jié)(80H~FFH)地址

返回3.3外部存儲器及其訪問

3.3.1外部程序存儲器與訪問

3.3.2外部數(shù)據(jù)存儲器與訪問3.3.1外部程序存儲器與訪問

只有讀操作。除由PC直接尋址,以執(zhí)行各條指令外,還可用FC或DPTR作變址尋址。例如,若DPTR=2000H,A=20H,則指令MOVCA,@A十DPTR完成了把程序存儲器2020H單元中的內(nèi)容送入A中的操作。這種數(shù)據(jù)操作方式通常用來查閱程序存儲器中的數(shù)據(jù)表格。1.AT89S52單片機訪問外部程序存儲器所使用的控制信號ALE:低8位地址鎖存控制;PSEN:外部程序存儲器“讀取”控制。EA:片內(nèi)、片外程序存儲器訪問的控制信號。=1時,訪問片內(nèi)程序存儲器;當=0時,訪問片外程序存儲器。

2.訪問外部程序存儲器的過程首先通過地址總線給出地址信號,選中程序存儲器該地址的存儲單元,然后由控制總線發(fā)出讀選通信號,在讀選通信號的控制作用下,將存儲在被選中存儲單元中的指令代碼讀出并送至數(shù)據(jù)總線,單片機通過對數(shù)據(jù)總線的訪問讀取已送至數(shù)據(jù)總線的指令代碼,完成一次對外部程序存儲器的訪問過程。

3.擴展外部程序存儲器的連接方法74LS373圖3.3.1外部程序存儲器擴展4.地址鎖存器的作用5.訪問外部程序存儲器的時序

數(shù)據(jù)輸入3.3.2外部數(shù)據(jù)存儲器與訪問1.擴展外部數(shù)據(jù)存儲器的連接方法74LS273圖3.3..3外部數(shù)據(jù)存儲器擴展雖然外部數(shù)據(jù)存儲器和和外部程序存儲器共用0000H~FFFFH的64KB地址空間,但兩者的讀寫控制信號不同,外部數(shù)據(jù)存儲器的讀和寫分別由和信號控制,外部程序存儲器的讀選通由信號控制,因此不會發(fā)生地址重疊的現(xiàn)象??蛇M行讀寫操作。用DPTR或工作寄存器組中的Ro或R1作寄存器間接尋址。當用RO或R1作寄存器間接尋址時,由P2端口提供高8位地址,R0或R1提供低8位地址。訪問外部數(shù)據(jù)存儲器使用MOVX類指令,如MOVXA,@Ri,MOVX@Ri,A,MOVXA,@DPTR,MOVX@DPTR,A例1MOVXA,@DPTR;外部數(shù)據(jù)RAM中以DPTR為地址中的內(nèi)容----A

例2MOVP2,#20H;數(shù)20H----P2

MOVR0,#30H;數(shù)30H----R0

MOVX@R0,A;A----外部數(shù)據(jù)RAM中2030H單元2.訪問外部數(shù)據(jù)存儲器的時序圖3.3.4外部數(shù)據(jù)存儲器讀時序3.3.5外部數(shù)據(jù)存儲器寫操作時序3.4片內(nèi)FLASH存儲器操作3.4.1

簽名字節(jié)及讀出

3.4.2

程序存儲器的加密

3.4.3

Flash存儲器的并行編程

3.4.4

Flash存儲器的串行編程3.4.1

簽名字節(jié)及讀出1.簽名字節(jié)所謂簽名字節(jié)是Flash存儲器的生產(chǎn)廠商在生產(chǎn)AT89S系列單片機時,寫入到Flash存儲器中的一組用以說明單片機的生產(chǎn)廠商、型號和編程電壓等的特征信息。AT89S52的簽名字節(jié)共有3B字節(jié),具體在存儲器中的地址和含義如表3.4.2所示。地址內(nèi)容代表的含義000H1EH表示產(chǎn)生廠商為ATMEL公司100H51H表示為AT89S51型單片機52H表示為AT89S52型單片機200H06H2.簽名字節(jié)的讀出簽名字節(jié)內(nèi)容被讀出時的電路邏輯結(jié)構(gòu)如圖3.4.1所示。圖3.4.1簽名字節(jié)被讀出時的電路邏輯結(jié)構(gòu)3.4.2

程序存儲器的加密1.程序存儲器加密的概念為了保護所存儲程序的安全性,防止被非法讀出,保護開發(fā)者的合法利益,需要對寫入Flash存儲器中的程序進行加密。

AT89S系列單片機提供了3位加密位LB1、LB2和LB3,對每位加密位可維持原來的非編程狀態(tài)(U),也可進行編程(P),每位加密位是否進行了編程便可組合形成幾種不同的保護模式,如表3.4.3所示。表3.4.3程序加密位的保護模式模式加密位組合加密功能LB1LB2LB31UUU沒有程序加密功能2PUU禁止在外部程序存儲器中執(zhí)行MOVC類指令讀取內(nèi)部程序存儲器中的指令代碼;被采樣并在復(fù)位時被鎖存;禁止對Flash存儲器再編程3PPU同模式2,并禁止內(nèi)部存儲器校驗。4PPP同模式3,并禁止外部存儲器的執(zhí)行。2.程序存儲器加密的方法對程序存儲器加密需要根據(jù)所希望采取的加密保護模式對3位加密位LB1、LB2和LB3進行編程。編程按照LB1→LB2→LB3的順序按位進行。注意,在對各位加密位進行編程時,其控制信號是不同的。圖3.4.2為對加密位編程的邏輯電路圖。圖3.4.2加密位編程邏輯電路3.4.3

Flash存儲器的并行編程1.Flash編程器的并行編程方式AT89S52單片機的內(nèi)部Flash存儲器在出廠時處于可編程狀態(tài),除簽名字節(jié)已經(jīng)有存儲數(shù)據(jù)外其它存儲單元的內(nèi)容均為FFH。編程時須接12V編程電壓,與通用的Flash編程器或EPROM編程器兼容,因此可使用常規(guī)的Flash編程器或EPROM編程器對此進行編程。AT89S52單片機的編程以字節(jié)為單位,逐位編程。圖3.4.3為并行編程的接口電路圖。圖3.4.3AT89S52Flash存儲器并行編程的接口電路2.并行編程的算法:從編程接口電路可以看出,AT89S52單片機編程時除地址線和數(shù)據(jù)線外還需要一些控制信號,表3.4.4為編程時這些控制信號的狀態(tài)情況。AT89S52單片機內(nèi)部Flash為8KB,地址范圍0000H~1FFFFH,因此編程時需要13位的地址線。編程時,被編程存儲單元的地址由P1口和P2口的P2.0~P2.4輸入(13位地址),編程代碼從P0口輸入,P2.6、P2.7、P3.3、P3.6和P3.7引腳的電平依據(jù)表3.4.4設(shè)置。編程時RST引腳接高電平,引腳接低電平(接地),引腳接編程負脈沖,每次寫入代碼的脈沖寬度200~500ns,是編程電壓的輸入引腳,按規(guī)定要求接12V編程電壓,編程時的振蕩頻率為3~33MHz。3.4.4

Flash存儲器的串行編程1.Flash存儲器的串行編程方式圖3.4.5AT89S52Flash存儲器串行編程/下載接口電路2.Flash存儲器的串行編程算法按照下列步驟對Flash實現(xiàn)串行編程:(1)對RST、VCC和GND引腳加電;加電次序如下:在VCC和GND引腳之間加電源電壓;將RST設(shè)置為高電平(若采用外部時鐘信號,則必須延時10ms后方可)。⑵在P1.5/MOSI引腳輸入編程允許指令;⑶在P1.5/MOSI引腳輸入寫程序存儲器指令;AT89S52的串行編程指令中包含了編程單元地址和代碼數(shù)據(jù),向P1.5/MOSI引腳輸入寫程序存儲器指令時,便確定了可編程的字節(jié)地址和指令數(shù)據(jù)。寫入周期采用內(nèi)部自動定時的方式,在VCC=5V時其典型值不大于1ms。編程

溫馨提示

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

評論

0/150

提交評論