寵物定時(shí)喂食器設(shè)計(jì)資料
寵物定時(shí)喂食器設(shè)計(jì)資料,寵物,定時(shí),喂食,設(shè)計(jì),資料
1Rectifier Device Data C0065C0120C0105C0097C0108 C0076C0101C0097C0100 C0083C0116C0097C0110C0100C0097C0114C0100 C0082C0101C0099C0111C0118C0101C0114C0121 C0082C0101C0099C0116C0105C0102C0105C0101C0114C0115 This data sheet provides information on subminiature size, axial lead mounted rectifiers for general–purpose low–power applications. Mechanical Characteristics ? Case: Epoxy, Molded ? Weight: 0.4 gram (approximately) ? Finish: All External Surfaces Corrosion Resistant and Terminal Leads are Readily Solderable ? Lead and Mounting Surface Temperature for Soldering Purposes: 220°C Max. for 10 Seconds, 1/16″ from case ? Shipped in plastic bags, 1000 per bag. ? Available Tape and Reeled, 5000 per reel, by adding a “RL” suffix to the part number ? Polarity: Cathode Indicated by Polarity Band ? Marking: 1N4001, 1N4002, 1N4003, 1N4004, 1N4005, 1N4006, 1N4007 MAXIMUM RATINGS Rating Symbol 1N4001 1N4002 1N4003 1N4004 1N4005 1N4006 1N4007 Unit *Peak Repetitive Reverse Voltage Working Peak Reverse Voltage DC Blocking Voltage V RRM V RWM V R 50 100 200 400 600 800 1000 Volts *Non–Repetitive Peak Reverse Voltage (halfwave, single phase, 60 Hz) V RSM 60 120 240 480 720 1000 1200 Volts *RMS Reverse Voltage V R(RMS) 35 70 140 280 420 560 700 Volts *Average Rectified Forward Current (single phase, resistive load, 60 Hz, see Figure 8, T A = 75°C) I O 1.0 Amp *Non–Repetitive Peak Surge Current (surge applied at rated load conditions, see Figure 2) I FSM 30 (for 1 cycle) Amp Operating and Storage Junction Temperature Range T J T stg – 65 to +175 °C ELECTRICAL CHARACTERISTICS* Rating Symbol Typ Max Unit Maximum Instantaneous Forward Voltage Drop (i F = 1.0 Amp, T J = 25°C) Figure 1 v F 0.93 1.1 Volts Maximum Full–Cycle Average Forward Voltage Drop (I O = 1.0 Amp, T L = 75°C, 1 inch leads) V F(AV) — 0.8 Volts Maximum Reverse Current (rated dc voltage) (T J = 25°C) (T J = 100°C) I R 0.05 1.0 10 50 μA Maximum Full–Cycle Average Reverse Current (I O = 1.0 Amp, T L = 75°C, 1 inch leads) I R(AV) — 30 μA *Indicates JEDEC Registered Data Preferred devices are Motorola recommended choices for future use and best overall value. ? Motorola, Inc. 1996 Order this document by 1N4001/D C0077C0079C0084C0079C0082C0079C0076C0065 SEMICONDUCTOR TECHNICAL DATA C0049C0078C0052C0048C0048C0049 C0116C0104C0114C0117 C0049C0078C0052C0048C0048C0055 LEAD MOUNTED RECTIFIERS 50–1000 VOLTS DIFFUSED JUNCTION CASE 59–03 DO–41 1N4004 and 1N4007 are Motorola Preferred Devices Rev 5 C0049C0078C0052C0048C0048C0049 C0116C0104C0114C0117 C0049C0078C0052C0048C0048C0055 2 Rectifier Device Data PACKAGE DIMENSIONS CASE 59–03 (DO–41) ISSUE M B D K K F F A DIM MIN MAX MIN MAX INCHESMILLIMETERS A 4.07 5.20 0.160 0.205 B 2.04 2.71 0.080 0.107 D 0.71 0.86 0.028 0.034 F ––– 1.27 ––– 0.050 K 27.94 ––– 1.100 ––– NOTES: 1. ALL RULES AND NOTES ASSOCIATED WITH JEDEC DO–41 OUTLINE SHALL APPLY. 2. POLARITY DENOTED BY CATHODE BAND. 3. LEAD DIAMETER NOT CONTROLLED WITHIN F DIMENSION. Motorola reserves the right to make changes without further notice to any products herein. Motorola makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Motorola assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. “Typical” parameters which may be provided in Motorola data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All operating parameters, including “Typicals” must be validated for each customer application by customer’s technical experts. Motorola does not convey any license under its patent rights nor the rights of others. Motorola products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Motorola product could create a situation where personal injury or death may occur. Should Buyer purchase or use Motorola products for any such unintended or unauthorized application, Buyer shall indemnify and hold Motorola and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that Motorola was negligent regarding the design or manufacture of the part. Motorola and are registered trademarks of Motorola, Inc. Motorola, Inc. is an Equal Opportunity/Affirmative Action Employer. Mfax is a trademark of Motorola, Inc. How to reach us: USA/EUROPE/Locations Not Listed: Motorola Literature Distribution; JAPAN: Nippon Motorola Ltd.: SPD, Strategic Planning Office, 4–32–1, P.O. Box 5405, Denver, Colorado 80217. 303–675–2140 or 1–800–441–2447 Nishi–Gotanda, Shinagawa–ku, Tokyo 141, Japan. 81–3–5487–8488 Mfax?: RMFAX0@ – TOUCHTONE 602–244–6609 ASIA/PACIFIC: Motorola Semiconductors H.K. Ltd.; 8B Tai Ping Industrial Park, – US & Canada ONLY 1–800–774–1848 51 Ting Kok Road, Tai Po, N.T., Hong Kong. 852–26629298 INTERNET: 1N4001/D ? 主要性能
l 與MCS-51單片機(jī)產(chǎn)品兼容
l 8K字節(jié)在線系統(tǒng)可編程Flash存儲(chǔ)器
l 1000次擦寫(xiě)周期
l 4.0V-5.5V工作電壓
l 全靜態(tài)操作:0Hz~33Hz
l 三級(jí)加密程序存儲(chǔ)器
l 256*8字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)器
l 32個(gè)可編程I/O口線
l 三個(gè)16位定時(shí)器/計(jì)數(shù)器
l 八個(gè)中斷源
l 全雙工UART串行通道
l 低功耗空閑和掉電模式
l 掉電后中斷可喚醒
l 看門(mén)狗定時(shí)器
l 雙數(shù)據(jù)指針
l 掉電標(biāo)識(shí)符
l 快速編程周期
l 靈活I(lǐng)SP編程(字節(jié)和 模式)
l 綠色(-免費(fèi))工作包操作
1功能特性描述
AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在線系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。
AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。
2. 引腳結(jié)構(gòu)
3. 引腳描述
3.1 VCC : 電源
3.2 GND: 地
3.3 P0 口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。
3.4P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口。P1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX)。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。
引腳號(hào)
第二功能
P1.0
T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出
P1.1
T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)
P1.2
MOSI(在系統(tǒng)編程用)
P1.6
MISO(在系統(tǒng)編程用)
P1.7
SCK(在系統(tǒng)編程用)
3.5 P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。
3.6 P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。
P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。
Port Pin
Alternate Functions
P3.0
RXD (serial input port)
P3.1
TXD (serial output port)
P3.2
INT0 (external interrupt 0)
P3.3
INT1 (external interrupt 1)
P3.4
T0 (timer 0 external input)
P3.5
T1 (timer 1 external input)
P3.6
WR (external data memory write strobe)
P3.7
RD (external data memory read strobe)
3.7 RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T(mén)狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。
3.8 ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置 “1”,ALE操作將無(wú)效。這一位置 “1”,
ALE 僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。
3.9 PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而
在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。
3.10 EA/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。
在flash編程期間,EA也接收12伏VPP電壓。
3.11 XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。
3.12 XTAL2:振蕩器反相放大器的輸出端。
4 特殊功能寄存器
特殊功能寄存器(SFR)的地址空間映象如表1所示。并不是所有的地址都被定義了。片上沒(méi)有定義的地址是不能用的。讀這些地址,一般將得到一個(gè)隨機(jī)數(shù)據(jù);寫(xiě)入的數(shù)據(jù)將會(huì)無(wú)效。用戶不應(yīng)該給這些未定義的地址寫(xiě)入數(shù)據(jù)“1”。由于這些寄存器在將來(lái)可能被賦予新的功能,復(fù)位后,這些位都為“0”。
定時(shí)器2 寄存器:寄存器T2CON 和T2MOD 包含定時(shí)器2 的控制位和狀態(tài)位(如表2和表3所示),寄存器對(duì)RCAP2H和RCAP2L是定時(shí)器2的捕捉/自動(dòng)重載寄存器。
中斷寄存器:各中斷允許位在IE寄存器中,六個(gè)中斷源的兩個(gè)優(yōu)先級(jí)也可在IE中設(shè)置。
雙數(shù)據(jù)指針寄存器:為了更有利于訪問(wèn)內(nèi)部和外部數(shù)據(jù)存儲(chǔ)器,系統(tǒng)提供了兩路16位數(shù)據(jù)指針寄存器:位于SFR中82H~83H的DP0和位于84H~85。特殊寄存器AUXR1
中DPS=0 選擇DP0;DPS=1 選擇DP1。用戶應(yīng)該在訪問(wèn)數(shù)據(jù)指針寄存器前先初始化DPS至合理的值。
掉電標(biāo)志位:掉電標(biāo)志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上電期間POF置“1”。POF可以軟件控制使用與否,但不受復(fù)位影響。
5 存儲(chǔ)器結(jié)構(gòu)
MCS-51器件有單獨(dú)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器都可以64K尋址。
5.1 程序存儲(chǔ)器:如果EA引腳接地,程序讀取只從外部存儲(chǔ)器開(kāi)始。對(duì)于89S52,如果EA 接VCC,程序讀寫(xiě)先從內(nèi)部存儲(chǔ)器(地址為0000H~1FFFH)開(kāi)始,接著從外部尋址,尋址地址為:2000H~FFFFH。
5.2 數(shù)據(jù)存儲(chǔ)器:AT89S52 有256 字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。高128 字節(jié)與特殊功能寄存器重疊。也就是說(shuō)高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開(kāi)的。
當(dāng)一條指令訪問(wèn)高于7FH 的地址時(shí),尋址方式?jīng)Q定CPU 訪問(wèn)高128 字節(jié)RAM 還是特殊功能寄存器空間。直接尋址方式訪問(wèn)特殊功能寄存器(SFR)。例如,下面的直接尋址指令訪問(wèn)0A0H(P2口)存儲(chǔ)單元MOV 0A0H , #data使用間接尋址方式訪問(wèn)高128 字節(jié)RAM。例如,下面的間接尋址方式中,R0 內(nèi)容為0A0H,訪問(wèn)的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV @R0 , #data堆棧操作也是簡(jiǎn)介尋址方式。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆??臻g。
6 看門(mén)狗定時(shí)器
WDT是一種需要軟件控制的復(fù)位方式。WDT 由13位計(jì)數(shù)器和特殊功能寄存器中的看門(mén)狗定時(shí)器復(fù)位存儲(chǔ)器(WDTRST)構(gòu)成。WDT 在默認(rèn)情況下無(wú)法工作;為了激活WDT,戶用必須往WDTRST 寄存器(地址:0A6H)中依次寫(xiě)入01EH 和0E1H。當(dāng)WDT激活后,晶振工作,WDT在每個(gè)機(jī)器周期都會(huì)增加。WDT計(jì)時(shí)周期依賴于外部時(shí)鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒(méi)有辦法停止WDT工作。當(dāng)WDT溢出,它將驅(qū)動(dòng)RSR引腳一個(gè)高個(gè)電平輸出。
6.1 NWDT的使用
為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫(xiě)入0E1H
和0E1H。當(dāng)WDT激活后,用戶必須向WDTRST寫(xiě)入01EH和0E1H喂狗來(lái)避免WDT
溢出。當(dāng)計(jì)數(shù)達(dá)到8191(1FFFH)時(shí),13 位計(jì)數(shù)器將會(huì)溢出,這將會(huì)復(fù)位器件。晶振正常工作、WDT激活后,每一個(gè)機(jī)器周期WDT 都會(huì)增加。為了復(fù)位WDT,用戶必須向WDTRST 寫(xiě)入01EH 和0E1H(WDTRST 是只讀寄存器)。WDT 計(jì)數(shù)器不能讀或?qū)?。?dāng)WDT 計(jì)數(shù)器溢出時(shí),將給RST 引腳產(chǎn)生一個(gè)復(fù)位脈沖輸出,這個(gè)復(fù)位脈沖持續(xù)96個(gè)晶振周期(TOSC),其中TOSC=1/FOSC。為了很好地使用WDT,應(yīng)該在一定時(shí)間內(nèi)周期性寫(xiě)入那部分代碼,以避免WDT復(fù)位。
6.2 掉電和空閑方式下的WDT
在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶不必喂狗。有兩種方式可以離開(kāi)掉電模式:硬件復(fù)位或通過(guò)一個(gè)激活的外部中斷。通過(guò)硬件復(fù)位退出掉電模式后,用戶就應(yīng)該給WDT 喂狗,就如同通常AT89S52 復(fù)位一樣。通過(guò)中斷退出掉電模式的情形有很大的不同。中斷應(yīng)持續(xù)拉低很長(zhǎng)一段時(shí)間,使得晶振穩(wěn)定。當(dāng)中斷拉高后,執(zhí)行中斷服務(wù)程序。為了防止WDT在中斷保持低電平的時(shí)候復(fù)位器件,WDT 直到中斷拉低后才開(kāi)始工作。這就意味著WDT 應(yīng)該在中斷服務(wù)程序中復(fù)位。為了確保在離開(kāi)掉電模式最初的幾個(gè)狀態(tài)WDT不被溢出,最好在進(jìn)入掉電模式前就復(fù)位WDT。在進(jìn)入待機(jī)模式前,特殊寄存器AUXR的WDIDLE位用來(lái)決定WDT是否繼續(xù)計(jì)數(shù)。默認(rèn)狀態(tài)下,在待機(jī)模式下,WDIDLE=0,WDT繼續(xù)計(jì)數(shù)。為了防止WDT在待機(jī)模式下復(fù)位AT89S52,用戶應(yīng)該建立一個(gè)定時(shí)器,定時(shí)離開(kāi)待機(jī)模式,喂狗,再重新進(jìn)入待機(jī)模式。
7 UART
在AT89S52 中,UART 的操作與AT89C51 和AT89C52 一樣。為了獲得更深入的關(guān)于UART 的信息,可參考ATMEL 網(wǎng)站(http://www.atmel.com)。從這個(gè)主頁(yè),選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“Product
Overview”即可。
8 定時(shí)器0 和定時(shí)器1
在AT89S52 中,定時(shí)器0 和定時(shí)器1 的操作與AT89C51 和AT89C52 一樣。為了獲得更深入的關(guān)于UART 的信息,可參考ATMEL 網(wǎng)站(http://www.atmel.com)。從這個(gè)主頁(yè),選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“ProductOverview”即可。
9 定時(shí)器2
定時(shí)器2是一個(gè)16位定時(shí)/計(jì)數(shù)器,它既可以做定時(shí)器,又可以做事件計(jì)數(shù)器。其工作方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時(shí)器2有三種工作模式:捕捉方式、自動(dòng)重載(向下或向上計(jì)數(shù))和波特率發(fā)生器。如表3 所示,工作模式由T2CON中的相關(guān)位選擇。定時(shí)器2 有2 個(gè)8位寄存器:TH2和TL2。在定時(shí)工作方式中,每個(gè)機(jī)器周期,TL2 寄存器都會(huì)加1。由于一個(gè)機(jī)器周期由12 個(gè)晶振周期構(gòu)成,因此,計(jì)數(shù)頻率就是晶振頻率的1/12。
在計(jì)數(shù)工作方式下,寄存器在相關(guān)外部輸入角T2 發(fā)生1 至0 的下降沿時(shí)增加1。在這種方式下,每個(gè)機(jī)器周期的S5P2期間采樣外部輸入。一個(gè)機(jī)器周期采樣到高電平,而下一個(gè)周期采樣到低電平,計(jì)數(shù)器將加1。在檢測(cè)到跳變的這個(gè)周期的S3P1 期間,新的計(jì)數(shù)值出現(xiàn)在寄存器中。因?yàn)樽R(shí)別1-0的跳變需要2個(gè)機(jī)器周期(24個(gè)晶振周期),所以,最大的計(jì)數(shù)頻率不高于晶振頻率的1/24。為了確保給定的電平在改變前采樣到一次,電平應(yīng)該至少在一個(gè)完整的機(jī)器周期內(nèi)保持不變。
9.1捕捉方式
在捕捉模式下,通過(guò)T2CON中的EXEN2來(lái)選擇兩種方式。如果EXEN2=0,定時(shí)器2
時(shí)一個(gè)16位定時(shí)/計(jì)數(shù)器,溢出時(shí),對(duì)T2CON 的TF2標(biāo)志置位,TF2引起中斷。如果
EXEN2=1,定時(shí)器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P1.1)1至0的下跳變也會(huì)使得TH2和TL2中的值分別捕捉到RCAP2H和RCAP2L中。除此之外,T2EX 的跳變會(huì)引起T2CON 中的EXF2 置位。像TF2 一樣,T2EX 也會(huì)引起中斷。
9.2 自動(dòng)重載
當(dāng)定時(shí)器2 工作于16 位自動(dòng)重載模式,可對(duì)其編程實(shí)現(xiàn)向上計(jì)數(shù)或向下計(jì)數(shù)。這一功能可以通過(guò)特殊寄存器T2MOD(見(jiàn)表4)中的DCEN(向下計(jì)數(shù)允許位)來(lái)實(shí)現(xiàn)。通過(guò)復(fù)位,DCEN 被置為0,因此,定時(shí)器2 默認(rèn)為向上計(jì)數(shù)。DCEN 設(shè)置后,定時(shí)器2就可以取決于T2EX向上、向下計(jì)數(shù)。DCEN=0 時(shí),定時(shí)器2 自動(dòng)計(jì)數(shù)。通過(guò)T2CON 中的EXEN2 位可以選擇兩種方式。如果EXEN2=0,定時(shí)器2計(jì)數(shù),計(jì)到0FFFFH后置位TF2溢出標(biāo)志。計(jì)數(shù)溢出也使得定時(shí)器寄存器重新從RCAP2H 和RCAP2L 中加載16 位值。定時(shí)器工作于捕捉模式,RCAP2H和RCAP2L的值可以由軟件預(yù)設(shè)。如果EXEN2=1,計(jì)數(shù)溢出或在外部T2EX(P1.1)引腳上的1到0的下跳變都會(huì)觸發(fā)16位重載。這個(gè)跳變也置位EXF2中斷標(biāo)志位。如圖6所示,置位DCEN,允許定時(shí)器2向上或向下計(jì)數(shù)。在這種模式下,T2EX引腳控制著計(jì)數(shù)的方向。T2EX上的一個(gè)邏輯1使得定時(shí)器2向上計(jì)數(shù)。定時(shí)器計(jì)到0FFFFH溢出,并置位TF2。定時(shí)器的溢出也使得RCAP2H和RCAP2L中的16位值分別加載到定時(shí)器存儲(chǔ)器TH2和TL2中。T2EX 上的一個(gè)邏輯0 使得定時(shí)器2 向下計(jì)數(shù)。當(dāng)TH2 和TL2 分別等于RCAP2H 和RCAP2L中的值的時(shí)候,計(jì)數(shù)器下溢。計(jì)數(shù)器下溢,置位TF2,并將0FFFFH加載到定時(shí)器存儲(chǔ)器中。定時(shí)器2上溢或下溢,外部中斷標(biāo)志位EXF2 被鎖死。在這種工作模式下,EXF2不能觸發(fā)中斷。
10 波特率發(fā)生器
通過(guò)設(shè)置T2CON(見(jiàn)表2)中的TCLK或RCLK可選擇定時(shí)器2 作為波特率發(fā)生器。
如果定時(shí)器2作為發(fā)送或接收波特率發(fā)生器,定時(shí)器1可用作它用,發(fā)送和接收的波特率可以不同。如圖8 所示,設(shè)置RCLK 和(或)TCLK 可以使定時(shí)器2 工作于波特率產(chǎn)生模式。波特率產(chǎn)生工作模式與自動(dòng)重載模式相似,因此,TH2 的翻轉(zhuǎn)使得定時(shí)器2 寄存器重載被軟件預(yù)置16位值的RCAP2H和RCAP2L中的值。模式1和模式3的波特率由定時(shí)器2溢出速率決定,具體如下公式:模式1和模式3波特率=晶振頻率32 x [65536-(RCAP2H,RCAP2L)],其中(RCAP2H,RCAP2L)是RCAP2H和RCAP2L組成的16位無(wú)符號(hào)整數(shù)。
16定時(shí)器2溢出率定時(shí)器可設(shè)置成定時(shí)器,也可為計(jì)數(shù)器。在多數(shù)應(yīng)用情況下,一般配置成定時(shí)方式(CP/T2=0)。定時(shí)器2 用于定時(shí)器操作與波特率發(fā)生器有所不同,它在每一機(jī)器周期(1/12晶振周期)都會(huì)增加;然而,作為波特率發(fā)生器,它在每一機(jī)器狀態(tài)(1/2晶振周期)都會(huì)增加。
定時(shí)器2 作為波特率發(fā)生器,如圖8 所示。圖中僅僅在T2CON 中RCLK 或TCLK=1才有效。特別強(qiáng)調(diào),TH2的翻轉(zhuǎn)并不置位TF2,也不產(chǎn)生中斷; EXEN2置位后,T2EX引腳上1~0的下跳變不會(huì)使(RCAP2H,RCAP2L)重載到(TH2,TL2)中。因此,定時(shí)器2作為波特率發(fā)生器,T2EX也還可以作為一個(gè)額外的外部中斷。定時(shí)器2處于波特率產(chǎn)生模式,TR2=1,定時(shí)器2正常工作。TH2或TL2不應(yīng)該讀寫(xiě)。在這種模式下,定時(shí)器在每一狀態(tài)都會(huì)增加,讀或?qū)懢筒粫?huì)準(zhǔn)確。寄存器RCAP2可以讀,但不能寫(xiě),因?yàn)閷?xiě)可能和重載交迭,造成寫(xiě)和重載錯(cuò)誤。在讀寫(xiě)定時(shí)器2 或RCAP2寄存器時(shí),應(yīng)該關(guān)閉定時(shí)器(TR2清0)。
11 可編程時(shí)鐘輸出
如圖9 所示,可以通過(guò)編程在P1.0 引腳輸出一個(gè)占空比為50%的時(shí)鐘信號(hào)。這個(gè)引腳除了常規(guī)的I/O 角外,還有兩種可選擇功能。它可以通過(guò)編程作為定時(shí)器/計(jì)數(shù)器2 的外部時(shí)鐘輸入或占空比為50%的時(shí)鐘輸出。當(dāng)工作頻率為16MHZ時(shí),時(shí)鐘輸出頻率范圍為61HZ到4HZ。為了把定時(shí)器2配置成時(shí)鐘發(fā)生器,位C/T2(T2CON.1)必須清0,位T2OE(T2MOD.1)必須置1。位TR2(T2CON.2)啟動(dòng)、停止定時(shí)器。時(shí)鐘輸出頻率取決于晶振頻率和定時(shí)器2捕捉寄存器(RCAP2H,RCAP2L)的重載值,如公式所示:時(shí)鐘輸出頻率=4 [65536-( 2 , 2 )]晶振頻率′ RCAP H RCAP L
在時(shí)鐘輸出模式下,定時(shí)器2不會(huì)產(chǎn)生中斷,這和定時(shí)器2用作波特率發(fā)生器一樣。定時(shí)器2也可以同時(shí)用作波特率發(fā)生器和時(shí)鐘產(chǎn)生。不過(guò),波特率和輸出時(shí)鐘頻率相互并不獨(dú)立,它們都依賴于RCAP2H和RCAP2L
12 中斷
AT89S52 有6個(gè)中斷源:兩個(gè)外部中斷(INT0 和INT1),三個(gè)定時(shí)中斷(定時(shí)器0、1、2)和一個(gè)串行中斷。每個(gè)中斷源都可以通過(guò)置位或清除特殊寄存器IE 中的相關(guān)中斷允許控制位分別使得中斷源有效或無(wú)效。IE還包括一個(gè)中斷允許總控制位EA,它能一次禁止所有中斷。IE.6位是不可用的。對(duì)于AT89S52,IE.5位也是不能用的。用戶軟件不應(yīng)給這些位寫(xiě)1。它們?yōu)锳T89系列新產(chǎn)品預(yù)留。定時(shí)器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進(jìn)入中斷服務(wù)后,這些標(biāo)志位都可以由硬件清0。實(shí)際上,中斷服務(wù)程序必須判定是否是TF2 或EXF2激活中斷,標(biāo)志位也必須由軟件清0。定時(shí)器0和定時(shí)器1標(biāo)志位TF0 和TF1在計(jì)數(shù)溢出的那個(gè)周期的S5P2被置位。它們的值一直到下一個(gè)周期被電路捕捉下來(lái)。然而,定時(shí)器2 的標(biāo)志位TF2 在計(jì)數(shù)溢出的那個(gè)周期的S2P2被置位,在同一個(gè)周期被電路捕捉下來(lái)。
13 晶振特性
AT89S52 單片機(jī)有一個(gè)用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1 和XTAL2 分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來(lái)一起構(gòu)成自激振蕩器。從外部時(shí)鐘源驅(qū)動(dòng)器件的話,XTAL2 可以不接,而從XTAL1 接入。由于外部時(shí)鐘信號(hào)經(jīng)過(guò)二分頻觸發(fā)后作為外部時(shí)鐘電路輸入的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒(méi)有其它要求,最長(zhǎng)低電平持續(xù)時(shí)間和最少高電平持續(xù)時(shí)間等還是要符合要求的。
14 空閑模式
在空閑工作模式下,CPU 處于睡眠狀態(tài),而所有片上外部設(shè)備保持激活狀態(tài)。這種狀態(tài)可以通過(guò)軟件產(chǎn)生。在這種狀態(tài)下,片上RAM和特殊功能寄存器的內(nèi)容保持不變??臻e模式可以被任一個(gè)中斷或硬件復(fù)位終止。由硬件復(fù)位終止空閑模式只需兩個(gè)機(jī)器周期有效復(fù)位信號(hào),在這種情況下,片上硬件禁止訪問(wèn)內(nèi)部RAM,而可以訪問(wèn)端口引腳??臻e模式被硬件復(fù)位終止后,為了防止預(yù)想不到的寫(xiě)端口,激活空閑模式的那一條指令的下一條指令不應(yīng)該是寫(xiě)端口或外部存儲(chǔ)器。
15 掉電模式
在掉電模式下,晶振停止工作,激活掉電模式的指令是最后一條執(zhí)行指令。片上RAM
和特殊功能寄存器保持原值,直到掉電模式終止。掉電模式可以通過(guò)硬件復(fù)位和外部中斷退出。復(fù)位重新定義了SFR 的值,但不改變片上RAM 的值。在VCC未恢復(fù)到正常工作電壓時(shí),硬件復(fù)位不能無(wú)效,并且應(yīng)保持足夠長(zhǎng)的時(shí)間以使晶振重新工作和初始化。
16 程序存儲(chǔ)器的加密位
AT89S52有三個(gè)加密位不可編程(U)和可編程獲得下表所示的功能。
加密位1(LB1)編程后,EA 引腳的邏輯值被采樣,并在復(fù)位期間
加密位1(LB1)編程后,EA 引腳的邏輯值被采樣,并在復(fù)位期間鎖存。如果器件復(fù)位,而沒(méi)有復(fù)位,將鎖存一個(gè)隨機(jī)值,直到復(fù)位為止。為了器件功能正常,鎖存到的EA值必須和這個(gè)引腳的當(dāng)前邏輯電平一致。
17 Flash編程―并行模式
AT89S52 帶有用作編程的片上Flash 存儲(chǔ)器陣列。編程接口需要一個(gè)高電壓(12V)編程使能信號(hào),并且兼容常規(guī)的第三方*(原文:third-party,不知道對(duì)不對(duì))Flash或EPROM編程器。AT89S52程序存儲(chǔ)陣列采用字節(jié)式編程。
AT89S52 1 主要性能 l 與MCS-51單片機(jī)產(chǎn)品兼容 l 8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器 l 1000次擦寫(xiě)周期 l 全靜態(tài)操作:0Hz~33Hz l 三級(jí)加密程序存儲(chǔ)器 l 32個(gè)可編程I/O口線 l 三個(gè)16位定時(shí)器/計(jì)數(shù)器 l 八個(gè)中斷源 l 全雙工UART 串行通道 l 低功耗空閑和掉電模式 l 掉電后中斷可喚醒 l 看門(mén)狗定時(shí)器 l 雙數(shù)據(jù)指針 l 掉電標(biāo)識(shí)符 功能特性描述 AT89S52是一種低功耗、高性能CMOS8位微控制器,具有 8K在系統(tǒng)可編程 Flash存儲(chǔ)器。使用 Atmel公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完 全兼容。片上 Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng) 可編程Flash,使得 AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32位I/O口線,看門(mén)狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至 0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 R 8位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash AT89S52 Rev. 1919-07/01 AT89S52 2 引腳結(jié)構(gòu) AT89S52 3 方框圖 引腳功能描述 AT89S52 4 VCC : 電源 GND: 地 P0口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏 輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0具有內(nèi)部上拉電阻。 在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn) 時(shí),需要外部上拉電阻。 P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,p1 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯電平。對(duì) P1 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(I IL)。 此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。 在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。 引腳號(hào) 第二功能 P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出 P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制) P1.5 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1.7 SCK(在系統(tǒng)編程用) P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯電平。對(duì) P2 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(I IL)。 在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR) 時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。 P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,p2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯電平。對(duì) P3 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(I IL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。 AT89S52 5 引腳號(hào) 第二功能 P3.0 RXD(串行輸入) P3.1 TXD(串行輸出) P3.2 INT0(外部中斷0) P3.3 INT0(外部中斷0) P3.4 T0(定時(shí)器0外部輸入) P3.5 T1(定時(shí)器1外部輸入) P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T(mén) 狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上 的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。 ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低 8 位地址 的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。 在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或 時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。 如果需要,通過(guò)將地址為8EH的SFR的第0位置 “1”,ALE操作將無(wú)效。這一位置 “1”, ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE將被微弱拉高。這個(gè)ALE使 能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。 PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。 當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而 在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。 EA/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器 讀取指令,EA必須接GND。 為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。 在flash編程期間,EA也接收12伏VPP電壓。 XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 AT89S52 6 表1 AT89S52特殊寄存器映象及復(fù)位值 特殊功能寄存器 特殊功能寄存器(SFR)的地址空間映象如表1所示。 并不是所有的地址都被定義了。片上沒(méi)有定義的地址是不能用的。讀這些地址,一般將 得到一個(gè)隨機(jī)數(shù)據(jù);寫(xiě)入的數(shù)據(jù)將會(huì)無(wú)效。 用戶不應(yīng)該給這些未定義的地址寫(xiě)入數(shù)據(jù)“1”。由于這些寄存器在將來(lái)可能被賦予新的 功能,復(fù)位后,這些位都為“0”。 定時(shí)器2寄存器:寄存器T2CON和T2MOD包含定時(shí)器2的控制位和狀態(tài)位(如表2 和表3所示),寄存器對(duì)RCAP2H和RCAP2L是定時(shí)器2的捕捉/自動(dòng)重載寄存器。 中斷寄存器:各中斷允許位在IE寄存器中,六個(gè)中斷源的兩個(gè)優(yōu)先級(jí)也可在IE中設(shè)置。 AT89S52 7 表2 T2CON:定時(shí)器/計(jì)數(shù)器2控制寄存器 T2CON 地址為0C8H 復(fù)位值:0000 0000B 位可尋址 TF2 EXF2 RLCLK TCLK EXEN2 TR2 7 6 5 4 3 2 1 0 符號(hào) 功能 TF2 定時(shí)器 2 溢出標(biāo)志位。必須軟件清“0”。RCLK=1 或 TCLK=1 時(shí),TF2不用置位。 EXF2 定時(shí)器2外部標(biāo)志位。EXEN2=1時(shí),T2EX上的負(fù)跳變而出現(xiàn)捕捉或重 載時(shí),EXF2 會(huì)被硬件置位。定時(shí)器 2 打開(kāi),EXF2=1 時(shí),將引導(dǎo) CPU 執(zhí)行定時(shí)器 2 中斷程序。EXF2 必須如見(jiàn)清“0”。在向下/向上技術(shù)模式 (DCEN=1)下EXF2不能引起中斷。 RCLK 串行口接收數(shù)據(jù)時(shí)鐘標(biāo)志位。若 RCLK=1,串行口將使用定時(shí)器 2 溢出 脈沖作為串行口工作模式1和3的串口接收時(shí)鐘;RCLK=0,將使用定 時(shí)器1計(jì)數(shù)溢出作為串口接收時(shí)鐘。 TCLK 串行口發(fā)送數(shù)據(jù)時(shí)鐘標(biāo)志位。若 TCLK=1,串行口將使用定時(shí)器 2 溢出 脈沖作為串行口工作模式1和3的串口發(fā)送時(shí)鐘;TCLK=0,將使用定 時(shí)器1計(jì)數(shù)溢出作為串口發(fā)送時(shí)鐘。 EXEN2 定時(shí)器2外部允許標(biāo)志位。當(dāng)EXEN2=1時(shí),如果定時(shí)器2沒(méi)有用作串行 時(shí)鐘,T2EX(P1.1)的負(fù)跳變見(jiàn)引起定時(shí)器 2 捕捉和重載。若 EXEN2 =0,定時(shí)器2將視T2EX端的信號(hào)無(wú)效 TR2 開(kāi)始/停止控制定時(shí)器2。TR2=1,定時(shí)器2開(kāi)始工作 定時(shí)器 2 定時(shí)/計(jì)數(shù)選擇標(biāo)志位。 =0,定時(shí); =1,外部事 件計(jì)數(shù)(下降沿觸發(fā)) 捕捉/重載選擇標(biāo)志位。當(dāng)EXEN2=1時(shí), =1,T2EX出現(xiàn)負(fù)脈沖, 會(huì)引起捕捉操作;當(dāng)定時(shí)器2溢出或EXEN2=1時(shí)T2EX出現(xiàn)負(fù)跳變,都 會(huì)出現(xiàn)自動(dòng)重載操作。 =0 將引起 T2EX 的負(fù)脈沖。當(dāng) RCKL=1 或TCKL=1時(shí),此標(biāo)志位無(wú)效,定時(shí)器2溢出時(shí),強(qiáng)制做自動(dòng)重載操作。 雙數(shù)據(jù)指針寄存器:為了更有利于訪問(wèn)內(nèi)部和外部數(shù)據(jù)存儲(chǔ)器,系統(tǒng)提供了兩路16位 數(shù)據(jù)指針寄存器:位于SFR中82H~83H的DP0和位于84H~85。特殊寄存器AUXR1 中 DPS=0 選擇 DP0;DPS=1 選擇 DP1。用戶應(yīng)該在訪問(wèn)數(shù)據(jù)指針寄存器前先初始化 AT89S52 8 DPS至合理的值。 表3a AUXR:輔助寄存器 AUXR 地址:8EH 復(fù)位值:XXX00XX0B 不可位尋址 - - - WDIDLE DISRTO - - DISALE 7 6 5 4 3 2 1 0 - 預(yù)留擴(kuò)展用 DISALE ALE使能標(biāo)志位 DISALE 操作方式 0 ALE以1/6晶振頻率輸出信號(hào) 1 ALE只有在執(zhí)行MOVX 或MOVC指令時(shí)激活 DISRTO 復(fù)位輸出標(biāo)志位 DISRTO 0 看門(mén)狗(WDT)定時(shí)結(jié)束,Reset輸出高電平 1 Reset只有輸入 WDIDLE 空閑模式下WDT使能標(biāo)志位 WDIDLE 0 空閑模式下,WDT繼續(xù)計(jì)數(shù) 1 空閑模式下,WDT停止計(jì)數(shù) 掉電標(biāo)志位:掉電標(biāo)志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上電期 間POF置“1”。POF可以軟件控制使用與否,但不受復(fù)位影響。 表3b AUXR1:輔助寄存器1 AUXR1 地址:A2H 復(fù)位值:XXXXXXX0B 不可位尋址 - - - - - - - DPS 7 6 5 4 3 2 1 0 - 預(yù)留擴(kuò)展用 DPS 數(shù)據(jù)指針選擇位 DPS 0 選擇DPTR寄存器DP0L和DP0H 1 選擇DPTR寄存器DP1L和DP1H AT89S52 9 存儲(chǔ)器結(jié)構(gòu) MCS-51器件有單獨(dú)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器都可以 64K尋址。 程序存儲(chǔ)器:如果EA引腳接地,程序讀取只從外部存儲(chǔ)器開(kāi)始。 對(duì)于89S52,如果EA接VCC,程序讀寫(xiě)先從內(nèi)部存儲(chǔ)器(地址為0000H~1FFFH)開(kāi) 始,接著從外部尋址,尋址地址為:2000H~FFFFH。 數(shù)據(jù)存儲(chǔ)器:AT89S52 有 256 字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。高 128 字節(jié)與特殊功能寄存器重 疊。也就是說(shuō)高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開(kāi)的。 當(dāng)一條指令訪問(wèn)高于7FH的地址時(shí),尋址方式?jīng)Q定CPU訪問(wèn)高128字節(jié)RAM還是特 殊功能寄存器空間。直接尋址方式訪問(wèn)特殊功能寄存器(SFR)。 例如,下面的直接尋址指令訪問(wèn)0A0H(P2口)存儲(chǔ)單元 MOV 0A0H , #data 使用間接尋址方式訪問(wèn)高 128 字節(jié) RAM。例如,下面的間接尋址方式中,R0 內(nèi)容為 0A0H,訪問(wèn)的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。 MOV @R0 , #data 堆棧操作也是簡(jiǎn)介尋址方式。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆??臻g。 看門(mén)狗定時(shí)器 WDT是一種需要軟件控制的復(fù)位方式。WDT由13位計(jì)數(shù)器和特殊功能寄存器中的看 門(mén)狗定時(shí)器復(fù)位存儲(chǔ)器(WDTRST)構(gòu)成。WDT 在默認(rèn)情況下無(wú)法工作;為了激活 WDT,戶用必須往 WDTRST 寄存器(地址:0A6H)中依次寫(xiě)入 01EH 和 0E1H。當(dāng) WDT激活后,晶振工作,WDT在每個(gè)機(jī)器周期都會(huì)增加。WDT計(jì)時(shí)周期依賴于外部 時(shí)鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒(méi)有辦法停止WDT工作。當(dāng)WDT 溢出,它將驅(qū)動(dòng)RSR引腳一個(gè)高個(gè)電平輸出。 WDT的使用 為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫(xiě)入0E1H 和0E1H。當(dāng)WDT激活后,用戶必須向WDTRST寫(xiě)入01EH和0E1H喂狗來(lái)避免WDT 溢出。當(dāng)計(jì)數(shù)達(dá)到 8191(1FFFH)時(shí),13 位計(jì)數(shù)器將會(huì)溢出,這將會(huì)復(fù)位器件。晶振正 常工作、WDT激活后,每一個(gè)機(jī)器周期WDT都會(huì)增加。為了復(fù)位WDT,用戶必須向 WDTRST寫(xiě)入01EH和0E1H(WDTRST是只讀寄存器)。WDT計(jì)數(shù)器不能讀或?qū)憽?當(dāng)WDT計(jì)數(shù)器溢出時(shí),將給RST引腳產(chǎn)生一個(gè)復(fù)位脈沖輸出,這個(gè)復(fù)位脈沖持續(xù)96 個(gè)晶振周期(TOSC),其中 TOSC=1/FOSC。為了很好地使用 WDT,應(yīng)該在一定時(shí)間 內(nèi)周期性寫(xiě)入那部分代碼,以避免WDT復(fù)位。 掉電和空閑方式下的WDT 在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶不 必喂狗。有兩種方式可以離開(kāi)掉電模式:硬件復(fù)位或通過(guò)一個(gè)激活的外部中斷。通過(guò)硬 件復(fù)位退出掉電模式后,用戶就應(yīng)該給 WDT 喂狗,就如同通常 AT89S52 復(fù)位一樣。 通過(guò)中斷退出掉電模式的情形有很大的不同。中斷應(yīng)持續(xù)拉低很長(zhǎng)一段時(shí)間,使得晶振 AT89S52 10 穩(wěn)定。當(dāng)中斷拉高后,執(zhí)行中斷服務(wù)程序。為了防止WDT在中斷保持低電平的時(shí)候復(fù) 位器件,WDT 直到中斷拉低后才開(kāi)始工作。這就意味著 WDT 應(yīng)該在中斷服務(wù)程序中 復(fù)位。 為了確保在離開(kāi)掉電模式最初的幾個(gè)狀態(tài)WDT不被溢出,最好在進(jìn)入掉電模式前就復(fù) 位WDT。 在進(jìn)入待機(jī)模式前,特殊寄存器AUXR的WDIDLE位用來(lái)決定WDT是否繼續(xù)計(jì)數(shù)。 默認(rèn)狀態(tài)下,在待機(jī)模式下,WDIDLE=0,WDT繼續(xù)計(jì)數(shù)。為了防止WDT在待機(jī)模 式下復(fù)位 AT89S52,用戶應(yīng)該建立一個(gè)定時(shí)器,定時(shí)離開(kāi)待機(jī)模式,喂狗,再重新進(jìn) 入待機(jī)模式。 UART 在 AT89S52 中,UART 的操作與 AT89C51 和 AT89C52一樣。為了獲得更深入的關(guān)于 UART 的信息,可參考 ATMEL 網(wǎng)站()。從這個(gè)主頁(yè),選擇 “Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“Product Overview”即可。 定時(shí)器0和定時(shí)器1 在AT89S52中,定時(shí)器0和定時(shí)器1的操作與 AT89C51和 AT89C52一樣。為了獲得 更深入的關(guān)于UART 的信息,可參考ATMEL網(wǎng)站()。從這個(gè)主 頁(yè),選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“Product Overview”即可。 定時(shí)器2 定時(shí)器2是一個(gè)16位定時(shí)/計(jì)數(shù)器,它既可以做定時(shí)器,又可以做事件計(jì)數(shù)器。其工作 方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時(shí)器2有三種工作模式: 捕捉方式、自動(dòng)重載(向下或向上計(jì)數(shù))和波特率發(fā)生器。如表 3 所示,工作模式由 T2CON中的相關(guān)位選擇。定時(shí)器2有2個(gè)8位寄存器:TH2和TL2。在定時(shí)工作方式 中,每個(gè)機(jī)器周期,TL2 寄存器都會(huì)加 1。由于一個(gè)機(jī)器周期由 12 個(gè)晶振周期構(gòu)成, 因此,計(jì)數(shù)頻率就是晶振頻率的1/12。 表3 定時(shí)器2工作模式 RCLK+TCLK CP/RL2 TR2 MODE 0 0 1 16位自動(dòng)重載 0 1 1 16位捕捉 1 × 1 波特率發(fā)生器 × × 0 (不用) 在計(jì)數(shù)工作方式下,寄存器在相關(guān)外部輸入角T2發(fā)生1至0的下降沿時(shí)增加1。在這 AT89S52 11 種方式下,每個(gè)機(jī)器周期的S5P2期間采樣外部輸入。一個(gè)機(jī)器周期采樣到高電平,而 下一個(gè)周期采樣到低電平,計(jì)數(shù)器將加1。在檢測(cè)到跳變的這個(gè)周期的S3P1期間,新 的計(jì)數(shù)值出現(xiàn)在寄存器中。因?yàn)樽R(shí)別1-0的跳變需要2個(gè)機(jī)器周期(24個(gè)晶振周期), 所以,最大的計(jì)數(shù)頻率不高于晶振頻率的 1/24。為了確保給定的電平在改變前采樣到 一次,電平應(yīng)該至少在一個(gè)完整的機(jī)器周期內(nèi)保持不變。 捕捉方式 在捕捉模式下,通過(guò)T2CON中的EXEN2來(lái)選擇兩種方式。如果EXEN2=0,定時(shí)器2 時(shí)一個(gè)16位定時(shí)/計(jì)數(shù)器,溢出時(shí),對(duì)T2CON的TF2標(biāo)志置位,TF2引起中斷。如果 EXEN2=1,定時(shí)器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P1.1)1至 0的下跳變也會(huì)使得TH2和TL2中的值分別捕捉到RCAP2H和RCAP2L中。除此之外, T2EX的跳變會(huì)引起T2CON中的EXF2 置位。像TF2 一樣,T2EX也會(huì)引起中斷。捕 捉模式如圖5所示。 圖5 定時(shí)器的捕捉模式 自動(dòng)重載 當(dāng)定時(shí)器2工作于16位自動(dòng)重載模式,可對(duì)其編程實(shí)現(xiàn)向上計(jì)數(shù)或向下計(jì)數(shù)。這一功 能可以通過(guò)特殊寄存器T2MOD(見(jiàn)表4)中的DCEN(向下計(jì)數(shù)允許位)來(lái)實(shí)現(xiàn)。通 過(guò)復(fù)位,DCEN被置為0,因此,定時(shí)器2默認(rèn)為向上計(jì)數(shù)。DCEN設(shè)置后,定時(shí)器2 就可以取決于T2EX向上、向下計(jì)數(shù)。 如圖6所示,DCEN=0時(shí),定時(shí)器2自動(dòng)計(jì)數(shù)。通過(guò)T2CON中的EXEN2位可以選擇 兩種方式。如果EXEN2=0,定時(shí)器2計(jì)數(shù),計(jì)到0FFFFH后置位TF2溢出標(biāo)志。計(jì)數(shù) 溢出也使得定時(shí)器寄存器重新從 RCAP2H 和 RCAP2L中加載 16 位值。定時(shí)器工作于 捕捉模式,RCAP2H和RCAP2L的值可以由軟件預(yù)設(shè)。如果EXEN2=1,計(jì)數(shù)溢出或在 外部T2EX(P1.1)引腳上的1到0的下跳變都會(huì)觸發(fā)16位重載。這個(gè)跳變也置位EXF2 中斷標(biāo)志位。 如圖6所示,置位DCEN,允許定時(shí)器2向上或向下計(jì)數(shù)。在這種模式下,T2EX引腳 控制著計(jì)數(shù)的方向。T2EX上的一個(gè)邏輯1使得定時(shí)器2向上計(jì)數(shù)。定時(shí)器計(jì)到0FFFFH AT89S52 12 溢出,并置位TF2。定時(shí)器的溢出也使得RCAP2H和RCAP2L中的16位值分別加載到 定時(shí)器存儲(chǔ)器TH2和TL2中。 T2EX 上的一個(gè)邏輯 0 使得定時(shí)器 2 向下計(jì)數(shù)。當(dāng) TH2 和 TL2 分別等于 RCAP2H 和 RCAP2L中的值的時(shí)候,計(jì)數(shù)器下溢。計(jì)數(shù)器下溢,置位TF2,并將0FFFFH加載到定 時(shí)器存儲(chǔ)器中。 定時(shí)器2上溢或下溢,外部中斷標(biāo)志位EXF2被鎖死。在這種工作模式下,EXF2不能 觸發(fā)中斷。 圖6 定時(shí)器2重載模式(DCEN=0) 表4 T2MOD-定時(shí)器2控制寄存器 T2MOD 地址:0C9H 復(fù)位值:XXXXXX00B 不可位尋址 - - - - - - T2OE DCEN 7 6 5 4 3 2 1 0 符號(hào) 功能 - 無(wú)定義,預(yù)留擴(kuò)展 T2OE 定時(shí)器2輸出允許位 DCEN 置1后,定時(shí)器2可配置成向上/向下計(jì)數(shù) AT89S52 13 圖7 定時(shí)器2自動(dòng)重載(DCEN=1) 圖8 定時(shí)器2波特率發(fā)生器模式 AT89S52 14 波特率發(fā)生器 通過(guò)設(shè)置T2CON(見(jiàn)表2)中的TCLK或RCLK可選擇定時(shí)器2作為波特率發(fā)生器。 如果定時(shí)器2作為發(fā)送或接收波特率發(fā)生器,定時(shí)器1可用作它用,發(fā)送和接收的波特 率可以不同。如圖 8 所示,設(shè)置 RCLK和(或)TCLK可以使定時(shí)器 2 工作于波特率 產(chǎn)生模式。 波特率產(chǎn)生工作模式與自動(dòng)重載模式相似,因此,TH2 的翻轉(zhuǎn)使得定時(shí)器 2 寄存器重 載被軟件預(yù)置16位值的RCAP2H和RCAP2L中的值。 模式1和模式3的波特率由定時(shí)器2溢出速率決定,具體如下公式: 模式1和模式3波特率= 162溢出率定時(shí)器 定時(shí)器可設(shè)置成定時(shí)器,也可為計(jì)數(shù)器。在多數(shù)應(yīng)用情況下,一般配置成定時(shí)方式 (CP/T2=0)。定時(shí)器 2 用于定時(shí)器操作與波特率發(fā)生器有所不同,它在每一機(jī)器周期 (1/12晶振周期)都會(huì)增加;然而,作為波特率發(fā)生器,它在每一機(jī)器狀態(tài)(1/2晶振 周期)都會(huì)增加。波特率計(jì)算公式如下: 模式1和模式3的波特率= )]2,2(65536[32 LRCAPHRCAP?× 晶振頻率 *原文少半個(gè)括號(hào)“(” 其中,(RCAP2H,RCAP2L)是RCAP2H和RCAP2L組成的16位無(wú)符號(hào)整數(shù)。 定時(shí)器2作為波特率發(fā)生器,如圖8所示。圖中僅僅在T2CON中RCLK或TCLK=1 才有效。特別強(qiáng)調(diào),TH2的翻轉(zhuǎn)并不置位TF2,也不產(chǎn)生中斷; EXEN2置位后,T2EX 引腳上1~0的下跳變不會(huì)使(RCAP2H,RCAP2L)重載到(TH2,TL2)中。因此, 定時(shí)器2作為波特率發(fā)生器,T2EX也還可以作為一個(gè)額外的外部中斷。 定時(shí)器2處于波特率產(chǎn)生模式,TR2=1,定時(shí)器2正常工作。TH2或TL2不應(yīng)該讀寫(xiě)。 在這種模式下,定時(shí)器在每一狀態(tài)都會(huì)增加,讀或?qū)懢筒粫?huì)準(zhǔn)確。寄存器RCAP2可以 讀,但不能寫(xiě),因?yàn)閷?xiě)可能和重載交迭,造成寫(xiě)和重載錯(cuò)誤。在讀寫(xiě)定時(shí)器2或RCAP2 寄存器時(shí),應(yīng)該關(guān)閉定時(shí)器(TR2清0)。 可編程時(shí)鐘輸出 如圖9所示,可以通過(guò)編程在P1.0引腳輸出一個(gè)占空比為50%的時(shí)鐘信號(hào)。這個(gè)引腳 除了常規(guī)的 I/O 角外,還有兩種可選擇功能。它可以通過(guò)編程作為定時(shí)器/計(jì)數(shù)器 2 的 外部時(shí)鐘輸入或占空比為50%的時(shí)鐘輸出。當(dāng)工作頻率為16MHZ時(shí),時(shí)鐘輸出頻率范 圍為61HZ到4HZ。 為了把定時(shí)器2配置成時(shí)鐘發(fā)生器,位 C/T2(T2CON.1)必須清0,位 T2OE(T2MOD.1) 必須置1。位TR2(T2CON.2)啟動(dòng)、停止定時(shí)器。時(shí)鐘輸出頻率取決于晶振頻率和定 時(shí)器2捕捉寄存器(RCAP2H,RCAP2L)的重載值,如公式所示: 時(shí)鐘輸出頻率= ]2,265536[4 )-(晶振頻率 LRCAPHRCAP× 在時(shí)鐘輸出模式下,定時(shí)器2不會(huì)產(chǎn)生中斷,這和定時(shí)器2用作波特率發(fā)生器一樣。定 AT89S52 15 時(shí)器2也可以同時(shí)用作波特率發(fā)生器和時(shí)鐘產(chǎn)生。不過(guò),波特率和輸出時(shí)鐘頻率相互并 不獨(dú)立,它們都依賴于RCAP2H和RCAP2L。 圖9 定時(shí)器2時(shí)鐘輸出模式 中斷 AT89S52有6個(gè)中斷源:兩個(gè)外部中斷(INT0和INT1),三個(gè)定時(shí)中斷(定時(shí)器0、1、 2)和一個(gè)串行中斷。這些中斷如圖10所示 每個(gè)中斷源都可以通過(guò)置位或清除特殊寄存器IE中的相關(guān)中斷允許控制位分別使得中 斷源有效或無(wú)效。IE還包括一個(gè)中斷允許總控制位EA,它能一次禁止所有中斷。 如表5所示,IE.6位是不可用的。對(duì)于AT89S52,IE.5位也是不能用的。用戶軟件不應(yīng) 給這些位寫(xiě)1。它們?yōu)锳T89系列新產(chǎn)品預(yù)留。 定時(shí)器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進(jìn)入中斷服務(wù)后, 這些標(biāo)志位都可以由硬件清0。實(shí)際上,中斷服務(wù)程序必須判定是否是TF2或EXF2激 活中斷,標(biāo)志位也必須由軟件清0。 定時(shí)器0和定時(shí)器1標(biāo)志位TF0和TF1在計(jì)數(shù)溢出的那個(gè)周期的S5P2被置位。它們的 值一直到下一個(gè)周期被電路捕捉下來(lái)。然而,定時(shí)器 2 的標(biāo)志位 TF2 在計(jì)數(shù)溢出的那 個(gè)周期的S2P2被置位,在同一個(gè)周期被電路捕捉下來(lái)。 AT89S52 16 表4 中斷允許控制寄存器(IE) (MSB) (LSB) EA - ET2 ES ET1 EX1 ET0 EX0 中斷允許控制位=1,允許中斷 中斷允許控制位=0,禁止中斷 符號(hào) 位地址 功能 EA IE.7 中斷總允許控制位。EA=0,中斷總禁止;EA=1,各中斷由各自的控制位設(shè)定 - IE.6 預(yù)留 ET2 IE.5 定時(shí)器2中斷允許控制位 ES IE.4 串行口中斷允許控制位 ET1 IE.3 定時(shí)器1中斷允許控制位 EX1 IE.2 外部中斷1允許控制位 ET0 IE.1 定時(shí)器0中斷允許控制位 EX0 IE.0 外部中斷1允許控制位 圖10 中斷源 AT89S52 17 晶振特性 如圖 10 所示,AT89S52 單片機(jī)有一個(gè)用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1 和 XTAL2 分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來(lái)一起構(gòu)成自 激振蕩器。從外部時(shí)鐘源驅(qū)動(dòng)器件的話,XTAL2 可以不接,而從 XTAL1 接入,如圖 12 所示。由于外部時(shí)鐘信號(hào)經(jīng)過(guò)二分頻觸發(fā)后作為外部時(shí)鐘電路輸入的,所以對(duì)外部 時(shí)鐘信號(hào)的占空比沒(méi)有其它要求,最長(zhǎng)低電平持續(xù)時(shí)間和最少高電平持續(xù)時(shí)間等還是要 符合要求的。 圖11 內(nèi)部振蕩電路連接圖 圖12 外部振蕩電路連接圖 石英晶振 C1,C2=30PF±10PF 陶瓷諧振器 C1,C2=40PF±10PF 空閑模式 在空閑工作模式下,CPU 處于睡眠狀態(tài),而所有片上外部設(shè)備保持激活狀態(tài)。這種狀 態(tài)可以通過(guò)軟件產(chǎn)生。在這種狀態(tài)下,片上RAM和特殊功能寄存器的內(nèi)容保持不變。 空閑模式可以被任一個(gè)中斷或硬件復(fù)位終止。 由硬件復(fù)位終止空閑模式只需兩個(gè)機(jī)器周期有效復(fù)位信號(hào),在這種情況下,片上硬件禁 止訪問(wèn)內(nèi)部RAM,而可以訪問(wèn)端口引腳??臻e模式被硬件復(fù)位終止后,為了防止預(yù)想 不到的寫(xiě)端口,激活空閑模式的那一條指令的下一條指令不應(yīng)該是寫(xiě)端口或外部存儲(chǔ) 器。 掉電模式 在掉電模式下,晶振停止工作,激活掉電模式的指令是最后一條執(zhí)行指令。片上RAM AT89S52 18 和特殊功能寄存器保持原值,直到掉電模式終止。掉電模式可以通過(guò)硬件復(fù)位和外部中 斷退出。復(fù)位重新定義了 SFR 的值,但不改變片上 RAM 的值。在 VCC未恢復(fù)到正常 工作電壓時(shí),硬件復(fù)位不能無(wú)效,并且應(yīng)保持足夠長(zhǎng)的時(shí)間以使晶振重新工作和初始化。 表6 空閑模式和掉電模式下的外部引腳狀態(tài) 模式 程序存儲(chǔ)器 ALE PSEN PORT0 PORT1 PORT2 PORT3 空閑 內(nèi)部 1 1 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 空閑 外部 1 1 浮空 數(shù)據(jù) 地址 數(shù)據(jù) 掉電 內(nèi)部 0 0 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 掉電 外部 0 0 浮空 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 程序存儲(chǔ)器的加密位 AT89S52有三個(gè)加密位不可編程(U)和可編程獲得下表所示的功能。 表7 加密位保護(hù)模式 加密位 1(LB1)編程后,EA 引腳的邏輯值被采樣,并在復(fù)位期間鎖存。如果器件復(fù) 位,而沒(méi)有復(fù)位,將鎖存一個(gè)隨機(jī)值,直到復(fù)位為止。為了器件功能正常,鎖存到的 EA值必須和這個(gè)引腳的當(dāng)前邏輯電平一致。 Flash編程―并行模式 AT89S52帶有用作編程的片上Flash存儲(chǔ)器陣列。編程接口需要一個(gè)高電壓(12V)編 程使能信號(hào),并且兼容常規(guī)的第三方*(原文:third-party,不知道對(duì)不對(duì))Flash或EPROM 編程器。 AT89S52程序存儲(chǔ)陣列采用字節(jié)式編程。 編程方法 對(duì)AT89S52編程之前,需根據(jù)Flash編程模式表和圖13、圖14對(duì)地址、數(shù)據(jù)和控制信 號(hào)設(shè)置??刹捎孟铝胁襟E對(duì)AT89S52編程: AT89S52 19 1.在地址線上輸入編程單元地址信號(hào) 2.在數(shù)據(jù)線上輸入正確的數(shù)據(jù) 3.激活相應(yīng)的控制信號(hào) 4.把EA/Vpp升至12V 5.每給Flash寫(xiě)入一個(gè)字節(jié)或程序加密位時(shí),都要給ALE/PROG一次脈沖。字節(jié)寫(xiě)周 期時(shí)自身定制的,典型值僅僅50us。改變地址、數(shù)據(jù)重復(fù)第1步到第5步,知道全 部文件結(jié)束。 Data Polling AT89S52用Data Polling作為一個(gè)字節(jié)寫(xiě)周期結(jié)束的標(biāo)志特征。 譯者注: 后面全是編程的時(shí)序問(wèn)題,實(shí)在譯不下去了。感興趣的接著翻啊。 參考資料: 1.ATMEL公司 AT89S52的技術(shù)手冊(cè) 2.深圳市中源單片機(jī)發(fā)展有限公司 AT89C52 Datasheets 3.復(fù)旦大學(xué)出版社 單片微型機(jī)原理、應(yīng)用和實(shí)驗(yàn) 張友德等
收藏