【正文】
eripherals remain active. The mode is invoked by software. The content of the onchip RAM and all the special function registers remain unchanged during this mode. The idle mode can be terminated by any enabled interrupt or by a hardware reset. Note that when idle mode is terminated by a hardware reset, the device normally resumes program execution from where it left off, up to two machine cycles before the internal reset algorithm takes control. Onchip hardware inhibits access to internal RAM in this event, but access to the port pins is not inhibited. To eliminate the possibility of an unexpected write to a port pin when idle mode is terminated by a reset, the instruction following the one that invokes idle mode should not write to a port pin or to external memory. Mode In the Powerdown mode, the oscillator is stopped, and the instruction that invokes Powerdown is the last instruction executed. The onchip RAM and Special Function Registers retain their values until the Powerdown mode is terminated. Exit from Powerdown mode can be initiated either by a hardware reset or by activation of an enabled external interrupt (INT0 or INT1). Reset redefines the SFRs but does not change the onchip RAM. The reset should not be activated before VCC is restored to its normal operating level and must be held active long enough to allow the oscillator to restart and stabilize. 中文譯文AT89S51概述 一般概述 該AT89S51是一個低功耗,高性能CMOS 8位微控制器,可在4K字節(jié)的系統(tǒng)內編程的閃存存儲器。該設備是采用Atmel的高密度、非易失性存儲器技術和符合工業(yè)標準的80C51指令集和引腳。芯片上的Flash程序存儲器在系統(tǒng)中可重新編程或常規(guī)非易失性內存編程 。通過結合通用8位中央處理器的系統(tǒng)內可編程閃存的單芯片, AT89S51是一個功能強大的微控制器提供了高度靈活的和具有成本效益的解決辦法,可在許多嵌入式控制中應用。 在AT89S51提供以下標準功能: 4K字節(jié)的Flash閃存 , 128字節(jié)的RAM , 32個 I / O線,看門狗定時器,兩個數(shù)據(jù)指針,兩個16位定時器/計數(shù)器, 5向量兩級中斷結構,全雙工串行端口,片上振蕩器和時鐘電路。此外, AT89S51設計了可降至零頻率的靜態(tài)邏輯操作和支持兩種軟件可選的節(jié)電工作模式。在空閑模式下停止CPU的工作,但允許RAM 、定時器/計數(shù)器、串行接口和中斷系統(tǒng)繼續(xù)運行。掉電模式保存RAM中的內容,停止振蕩器工作并禁止其它所有部件工作,直到下一個外部中斷或硬件復位。 端口P0端口是一個8位漏極開路雙向I / O端口。作為一個輸出端口,每個引腳可驅動8個TTL輸入。對端口寫“1”可作為高阻抗輸入端用。在訪問外部程序和數(shù)據(jù)存儲器時,P0端口也可以配置為復低階地址/數(shù)據(jù)總線。在訪問期間激活內部上拉電阻。在Flash編程時,PO端口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),同時要求外接上拉電阻。 P1端口是一個帶內部上拉電阻的8位雙向I /O端口。P1端口的輸出緩沖級可以驅動四個TTL輸入。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作為輸入口。作為輸入口時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL),F(xiàn)lash編程和程序校驗期間,P1接收低8位地址。P2端口是一個帶有內部上拉電阻的8位雙向I/O端口。P2端口的輸出緩沖級可驅動(吸收或輸出電流)4個TTL輸入。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。當作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVX @ DPTR指令 )時,P2端口送出高8位地址數(shù)據(jù)。 在訪問8位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@Ri指令)時,P2端口上的內容(即特殊功能寄存器(SFR)區(qū)中P2寄存器的內容),在整個訪問期間不變。Flash編程或校驗時,P2也可接收高位地址和其它控制信號。P3端口是一組帶有內部上拉電阻的8位雙向I/O端口。P3端口輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3端口寫入“1”時,他們被內部上拉電阻拉高并作為輸入端口。當作輸入端時,被外部拉低的P2端口將用上拉電阻輸出電流(IIL).P3端口還接收一些用于Flash閃存編程和程序校驗的控制信號。P3端口可以采用AT89S51的 值得注意的是,這些地址并沒有全部占用,沒有占用的地址也不可使用,讀這些地址將得到一個隨意的數(shù)值。而寫這些地址單元不能得到預期的結果。不要用軟件訪問這些未定義的單元,這些單元是留作以后產品擴展用途的,復位后這些新的位將為0。 中斷寄存器:各個中斷控制位于IE寄存器,5個中斷源的中斷優(yōu)先級控制位于IP寄存器。 雙數(shù)據(jù)指針寄存器:為了便于訪問內部和外部數(shù)據(jù)存儲器,提供兩個16位數(shù)據(jù)指針寄存器: DP0位于SFR(特殊功能寄存器)區(qū)塊中的地址82H 83H和DP1位于84H 85H 。當SFR中的位DPS = 0選擇DP0,而DPS=1則選擇DP1 。用戶應在訪問相應的數(shù)據(jù)指針寄存器前初始化DPS位。電源空閑標志:電源空閑標志(POF)在特殊功能寄存器SFR中PCON的第四位(),電源打開時POF置“1”,它可由軟件設置睡眠轉臺并不為復位所影響。MCS51單片機內核采用程序存儲器和數(shù)據(jù)存儲器空間分開的結構,均具有64KB外部程序和數(shù)據(jù)的尋址空間。程序存儲器 如果的EA引腳接地(GND),全部程序都可以執(zhí)行外部存儲器。在AT89S51 ,如果EA連接到電源+(VCC) ,程序首先執(zhí)行地址從0000H到FFFH內部存儲器,在執(zhí)行地址從1000H到FFFFH的外部程序存儲器。 AT89S51具有128字節(jié)的內部RAM 。 這128字節(jié)都可以通過直接和間接尋址方式訪問,堆棧操作可利用間接尋址方式進行,因此, 128字節(jié)都可以可作為堆??臻g。 (WDT)看門狗定時器(WDT)是為了解決CPU程序運行時可能進入混亂或死循環(huán)而設置,它由一個14bit計數(shù)器和看門狗定時器復位SFR(WDTRST)構成。外部復位時,看門狗定時器(WDT)默認為關閉狀態(tài),要打開WDT,用戶必須按順序將01EH和0E1H寫到WDTRST寄存器(SFR地址為0A6H),當啟動了WDT,它會隨警惕振蕩器在每個機器周期計數(shù),除了硬件復位或WDT溢出復位外沒有其它方法關閉WDT,當WDT溢出,將使RST引腳輸出高電平的復位脈沖。1使用看門狗定時器(WDT)用戶在打開WDT時,需要按次序將01EH和0E1H寫到WDTRST寄存器(SFR的地址為0A6H),當WDT打開后,需要在一定的時候將01EH和0E1H寫道WDTRST寄存器以避免WDT計數(shù)溢出。14位WDT計數(shù)器達到16383(3FFFH),WDT將溢出并使用器件復位。WDT打開時,它會隨著晶體振蕩器在每個機器周期計數(shù),這意味著用戶必須在小于每個16383機器周期內復位WDT,也即寫01EH和0E1H到WDTRST寄存器,WDTRST為只寫寄存器。WDT計數(shù)器既不可讀也不可寫,當WDT溢出時,通常將使RST引腳輸出高電平的復位脈沖。復位脈沖持續(xù)時間為98xTosc,而Tosc=1/Fosc(晶體振蕩頻率)。為使WDT工作最優(yōu)化,必須在合適的程序代碼時間段周期地復位WDT防止WDT溢出。掉電和空閑模式下的WDT掉電時期,晶體振蕩停止,看門狗定時器也停止。掉電模式下,用戶不嗯那個在復位看門狗定時器。有兩種方法可以推出掉電模式:硬件復位或通過激活外部中斷,當硬件復位退出掉電模式時,處理看門狗定時器可像通常的上電復位一樣。當由中斷退出掉電模式時則有所不同,中斷低電平狀態(tài)持續(xù)到晶體振蕩穩(wěn)定,當中斷電平變?yōu)楦唠娖绞录纯上鄳袛喾铡R苑乐怪袛嗾`復位,當器件復位,中斷引腳持續(xù)為低時,看門狗定時器并未開始計數(shù),知道中斷引腳被拉高時為止。這為在掉電模式下的中斷執(zhí)行中斷服務程序而設置。為保證看門狗定時器在退出掉電模式時極端情況下不溢出,最好在進入掉電模式前復位看門狗定時器。在進入空閑模式前,看門狗定時器打開時,WDT是否繼續(xù)計數(shù)由SFR中的AUXR的WDIDLE位決定,在IDLE期間(位WDIDLE=0)默認狀態(tài)是繼續(xù)計數(shù)。為防止AT89S51從空閑模式中復位,用戶應該周期性地設置定時器,重新進入空閑模式。當WDIDLE位被置位,在空閑模式中看門狗定時器將停止計數(shù),直到從空閑(IDLE)模式中退出重新開始計數(shù)。 中斷 AT89S51共有五個中斷向量:兩個外部中斷( INT0和INT1 ) ,兩個定時器中斷(Timer0和Timer1)和一個串行中斷。這些中斷都如圖61 。這些中斷源各自的禁止和使能位參見特殊功能寄存器的IE。IE也包含總中斷控制位EA,EA清0,將關閉所有中斷。,用戶不要訪問這些位,它是保留為以后的AT89產品擴展用途。定時器0和定時器1的中斷標志TF0和TF1,它是定時器溢出時的S5P2時序周期被置位,該標志保留至下個時序周期。 振蕩器特性 AT89S51中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。如圖71所示。外接石英晶體或陶瓷諧振器都可以使用于反饋元件。用戶也可以采用外部時鐘,在這種情況下,外部時鐘接到XTAL1端,即內部時鐘發(fā)生器的輸入端,XTAL2則懸空,如圖72所示。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但是最小高電平持續(xù)時間和最大的低電平時序時間應符合產品技術條件的要求。注意:石英晶體時, 陶瓷濾波器,36