寵物定時喂食器設(shè)計資料
寵物定時喂食器設(shè)計資料,寵物,定時,喂食,設(shè)計,資料
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單片機產(chǎn)品兼容
l 8K字節(jié)在線系統(tǒng)可編程Flash存儲器
l 1000次擦寫周期
l 4.0V-5.5V工作電壓
l 全靜態(tài)操作:0Hz~33Hz
l 三級加密程序存儲器
l 256*8字節(jié)的內(nèi)部數(shù)據(jù)存儲器
l 32個可編程I/O口線
l 三個16位定時器/計數(shù)器
l 八個中斷源
l 全雙工UART串行通道
l 低功耗空閑和掉電模式
l 掉電后中斷可喚醒
l 看門狗定時器
l 雙數(shù)據(jù)指針
l 掉電標識符
l 快速編程周期
l 靈活I(lǐng)SP編程(字節(jié)和 模式)
l 綠色(-免費)工作包操作
1功能特性描述
AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在線系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。
AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。
2. 引腳結(jié)構(gòu)
3. 引腳描述
3.1 VCC : 電源
3.2 GND: 地
3.3 P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。
3.4P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口。P1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX)。在flash編程和校驗時,P1口接收低8位地址字節(jié)。
引腳號
第二功能
P1.0
T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出
P1.1
T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)
P1.2
MOSI(在系統(tǒng)編程用)
P1.6
MISO(在系統(tǒng)編程用)
P1.7
SCK(在系統(tǒng)編程用)
3.5 P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。
3.6 P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在flash編程和校驗時,P3口也接收一些控制信號。
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ù)位輸入。晶振工作時,RST腳持續(xù)2 個機器周期高電平將使單片機復(fù)位??撮T狗計時完成后,RST 腳輸出96 個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復(fù)位高電平有效。
3.8 ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,
ALE 僅在執(zhí)行MOVX 或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。
3.9 PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而
在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。
3.10 EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。
在flash編程期間,EA也接收12伏VPP電壓。
3.11 XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。
3.12 XTAL2:振蕩器反相放大器的輸出端。
4 特殊功能寄存器
特殊功能寄存器(SFR)的地址空間映象如表1所示。并不是所有的地址都被定義了。片上沒有定義的地址是不能用的。讀這些地址,一般將得到一個隨機數(shù)據(jù);寫入的數(shù)據(jù)將會無效。用戶不應(yīng)該給這些未定義的地址寫入數(shù)據(jù)“1”。由于這些寄存器在將來可能被賦予新的功能,復(fù)位后,這些位都為“0”。
定時器2 寄存器:寄存器T2CON 和T2MOD 包含定時器2 的控制位和狀態(tài)位(如表2和表3所示),寄存器對RCAP2H和RCAP2L是定時器2的捕捉/自動重載寄存器。
中斷寄存器:各中斷允許位在IE寄存器中,六個中斷源的兩個優(yōu)先級也可在IE中設(shè)置。
雙數(shù)據(jù)指針寄存器:為了更有利于訪問內(nèi)部和外部數(shù)據(jù)存儲器,系統(tǒng)提供了兩路16位數(shù)據(jù)指針寄存器:位于SFR中82H~83H的DP0和位于84H~85。特殊寄存器AUXR1
中DPS=0 選擇DP0;DPS=1 選擇DP1。用戶應(yīng)該在訪問數(shù)據(jù)指針寄存器前先初始化DPS至合理的值。
掉電標志位:掉電標志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上電期間POF置“1”。POF可以軟件控制使用與否,但不受復(fù)位影響。
5 存儲器結(jié)構(gòu)
MCS-51器件有單獨的程序存儲器和數(shù)據(jù)存儲器。外部程序存儲器和數(shù)據(jù)存儲器都可以64K尋址。
5.1 程序存儲器:如果EA引腳接地,程序讀取只從外部存儲器開始。對于89S52,如果EA 接VCC,程序讀寫先從內(nèi)部存儲器(地址為0000H~1FFFH)開始,接著從外部尋址,尋址地址為:2000H~FFFFH。
5.2 數(shù)據(jù)存儲器:AT89S52 有256 字節(jié)片內(nèi)數(shù)據(jù)存儲器。高128 字節(jié)與特殊功能寄存器重疊。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。
當一條指令訪問高于7FH 的地址時,尋址方式?jīng)Q定CPU 訪問高128 字節(jié)RAM 還是特殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(SFR)。例如,下面的直接尋址指令訪問0A0H(P2口)存儲單元MOV 0A0H , #data使用間接尋址方式訪問高128 字節(jié)RAM。例如,下面的間接尋址方式中,R0 內(nèi)容為0A0H,訪問的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV @R0 , #data堆棧操作也是簡介尋址方式。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆棧空間。
6 看門狗定時器
WDT是一種需要軟件控制的復(fù)位方式。WDT 由13位計數(shù)器和特殊功能寄存器中的看門狗定時器復(fù)位存儲器(WDTRST)構(gòu)成。WDT 在默認情況下無法工作;為了激活WDT,戶用必須往WDTRST 寄存器(地址:0A6H)中依次寫入01EH 和0E1H。當WDT激活后,晶振工作,WDT在每個機器周期都會增加。WDT計時周期依賴于外部時鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒有辦法停止WDT工作。當WDT溢出,它將驅(qū)動RSR引腳一個高個電平輸出。
6.1 NWDT的使用
為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫入0E1H
和0E1H。當WDT激活后,用戶必須向WDTRST寫入01EH和0E1H喂狗來避免WDT
溢出。當計數(shù)達到8191(1FFFH)時,13 位計數(shù)器將會溢出,這將會復(fù)位器件。晶振正常工作、WDT激活后,每一個機器周期WDT 都會增加。為了復(fù)位WDT,用戶必須向WDTRST 寫入01EH 和0E1H(WDTRST 是只讀寄存器)。WDT 計數(shù)器不能讀或?qū)?。當WDT 計數(shù)器溢出時,將給RST 引腳產(chǎn)生一個復(fù)位脈沖輸出,這個復(fù)位脈沖持續(xù)96個晶振周期(TOSC),其中TOSC=1/FOSC。為了很好地使用WDT,應(yīng)該在一定時間內(nèi)周期性寫入那部分代碼,以避免WDT復(fù)位。
6.2 掉電和空閑方式下的WDT
在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶不必喂狗。有兩種方式可以離開掉電模式:硬件復(fù)位或通過一個激活的外部中斷。通過硬件復(fù)位退出掉電模式后,用戶就應(yīng)該給WDT 喂狗,就如同通常AT89S52 復(fù)位一樣。通過中斷退出掉電模式的情形有很大的不同。中斷應(yīng)持續(xù)拉低很長一段時間,使得晶振穩(wěn)定。當中斷拉高后,執(zhí)行中斷服務(wù)程序。為了防止WDT在中斷保持低電平的時候復(fù)位器件,WDT 直到中斷拉低后才開始工作。這就意味著WDT 應(yīng)該在中斷服務(wù)程序中復(fù)位。為了確保在離開掉電模式最初的幾個狀態(tài)WDT不被溢出,最好在進入掉電模式前就復(fù)位WDT。在進入待機模式前,特殊寄存器AUXR的WDIDLE位用來決定WDT是否繼續(xù)計數(shù)。默認狀態(tài)下,在待機模式下,WDIDLE=0,WDT繼續(xù)計數(shù)。為了防止WDT在待機模式下復(fù)位AT89S52,用戶應(yīng)該建立一個定時器,定時離開待機模式,喂狗,再重新進入待機模式。
7 UART
在AT89S52 中,UART 的操作與AT89C51 和AT89C52 一樣。為了獲得更深入的關(guān)于UART 的信息,可參考ATMEL 網(wǎng)站(http://www.atmel.com)。從這個主頁,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“Product
Overview”即可。
8 定時器0 和定時器1
在AT89S52 中,定時器0 和定時器1 的操作與AT89C51 和AT89C52 一樣。為了獲得更深入的關(guān)于UART 的信息,可參考ATMEL 網(wǎng)站(http://www.atmel.com)。從這個主頁,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“ProductOverview”即可。
9 定時器2
定時器2是一個16位定時/計數(shù)器,它既可以做定時器,又可以做事件計數(shù)器。其工作方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時器2有三種工作模式:捕捉方式、自動重載(向下或向上計數(shù))和波特率發(fā)生器。如表3 所示,工作模式由T2CON中的相關(guān)位選擇。定時器2 有2 個8位寄存器:TH2和TL2。在定時工作方式中,每個機器周期,TL2 寄存器都會加1。由于一個機器周期由12 個晶振周期構(gòu)成,因此,計數(shù)頻率就是晶振頻率的1/12。
在計數(shù)工作方式下,寄存器在相關(guān)外部輸入角T2 發(fā)生1 至0 的下降沿時增加1。在這種方式下,每個機器周期的S5P2期間采樣外部輸入。一個機器周期采樣到高電平,而下一個周期采樣到低電平,計數(shù)器將加1。在檢測到跳變的這個周期的S3P1 期間,新的計數(shù)值出現(xiàn)在寄存器中。因為識別1-0的跳變需要2個機器周期(24個晶振周期),所以,最大的計數(shù)頻率不高于晶振頻率的1/24。為了確保給定的電平在改變前采樣到一次,電平應(yīng)該至少在一個完整的機器周期內(nèi)保持不變。
9.1捕捉方式
在捕捉模式下,通過T2CON中的EXEN2來選擇兩種方式。如果EXEN2=0,定時器2
時一個16位定時/計數(shù)器,溢出時,對T2CON 的TF2標志置位,TF2引起中斷。如果
EXEN2=1,定時器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P1.1)1至0的下跳變也會使得TH2和TL2中的值分別捕捉到RCAP2H和RCAP2L中。除此之外,T2EX 的跳變會引起T2CON 中的EXF2 置位。像TF2 一樣,T2EX 也會引起中斷。
9.2 自動重載
當定時器2 工作于16 位自動重載模式,可對其編程實現(xiàn)向上計數(shù)或向下計數(shù)。這一功能可以通過特殊寄存器T2MOD(見表4)中的DCEN(向下計數(shù)允許位)來實現(xiàn)。通過復(fù)位,DCEN 被置為0,因此,定時器2 默認為向上計數(shù)。DCEN 設(shè)置后,定時器2就可以取決于T2EX向上、向下計數(shù)。DCEN=0 時,定時器2 自動計數(shù)。通過T2CON 中的EXEN2 位可以選擇兩種方式。如果EXEN2=0,定時器2計數(shù),計到0FFFFH后置位TF2溢出標志。計數(shù)溢出也使得定時器寄存器重新從RCAP2H 和RCAP2L 中加載16 位值。定時器工作于捕捉模式,RCAP2H和RCAP2L的值可以由軟件預(yù)設(shè)。如果EXEN2=1,計數(shù)溢出或在外部T2EX(P1.1)引腳上的1到0的下跳變都會觸發(fā)16位重載。這個跳變也置位EXF2中斷標志位。如圖6所示,置位DCEN,允許定時器2向上或向下計數(shù)。在這種模式下,T2EX引腳控制著計數(shù)的方向。T2EX上的一個邏輯1使得定時器2向上計數(shù)。定時器計到0FFFFH溢出,并置位TF2。定時器的溢出也使得RCAP2H和RCAP2L中的16位值分別加載到定時器存儲器TH2和TL2中。T2EX 上的一個邏輯0 使得定時器2 向下計數(shù)。當TH2 和TL2 分別等于RCAP2H 和RCAP2L中的值的時候,計數(shù)器下溢。計數(shù)器下溢,置位TF2,并將0FFFFH加載到定時器存儲器中。定時器2上溢或下溢,外部中斷標志位EXF2 被鎖死。在這種工作模式下,EXF2不能觸發(fā)中斷。
10 波特率發(fā)生器
通過設(shè)置T2CON(見表2)中的TCLK或RCLK可選擇定時器2 作為波特率發(fā)生器。
如果定時器2作為發(fā)送或接收波特率發(fā)生器,定時器1可用作它用,發(fā)送和接收的波特率可以不同。如圖8 所示,設(shè)置RCLK 和(或)TCLK 可以使定時器2 工作于波特率產(chǎn)生模式。波特率產(chǎn)生工作模式與自動重載模式相似,因此,TH2 的翻轉(zhuǎn)使得定時器2 寄存器重載被軟件預(yù)置16位值的RCAP2H和RCAP2L中的值。模式1和模式3的波特率由定時器2溢出速率決定,具體如下公式:模式1和模式3波特率=晶振頻率32 x [65536-(RCAP2H,RCAP2L)],其中(RCAP2H,RCAP2L)是RCAP2H和RCAP2L組成的16位無符號整數(shù)。
16定時器2溢出率定時器可設(shè)置成定時器,也可為計數(shù)器。在多數(shù)應(yīng)用情況下,一般配置成定時方式(CP/T2=0)。定時器2 用于定時器操作與波特率發(fā)生器有所不同,它在每一機器周期(1/12晶振周期)都會增加;然而,作為波特率發(fā)生器,它在每一機器狀態(tài)(1/2晶振周期)都會增加。
定時器2 作為波特率發(fā)生器,如圖8 所示。圖中僅僅在T2CON 中RCLK 或TCLK=1才有效。特別強調(diào),TH2的翻轉(zhuǎn)并不置位TF2,也不產(chǎn)生中斷; EXEN2置位后,T2EX引腳上1~0的下跳變不會使(RCAP2H,RCAP2L)重載到(TH2,TL2)中。因此,定時器2作為波特率發(fā)生器,T2EX也還可以作為一個額外的外部中斷。定時器2處于波特率產(chǎn)生模式,TR2=1,定時器2正常工作。TH2或TL2不應(yīng)該讀寫。在這種模式下,定時器在每一狀態(tài)都會增加,讀或?qū)懢筒粫蚀_。寄存器RCAP2可以讀,但不能寫,因為寫可能和重載交迭,造成寫和重載錯誤。在讀寫定時器2 或RCAP2寄存器時,應(yīng)該關(guān)閉定時器(TR2清0)。
11 可編程時鐘輸出
如圖9 所示,可以通過編程在P1.0 引腳輸出一個占空比為50%的時鐘信號。這個引腳除了常規(guī)的I/O 角外,還有兩種可選擇功能。它可以通過編程作為定時器/計數(shù)器2 的外部時鐘輸入或占空比為50%的時鐘輸出。當工作頻率為16MHZ時,時鐘輸出頻率范圍為61HZ到4HZ。為了把定時器2配置成時鐘發(fā)生器,位C/T2(T2CON.1)必須清0,位T2OE(T2MOD.1)必須置1。位TR2(T2CON.2)啟動、停止定時器。時鐘輸出頻率取決于晶振頻率和定時器2捕捉寄存器(RCAP2H,RCAP2L)的重載值,如公式所示:時鐘輸出頻率=4 [65536-( 2 , 2 )]晶振頻率′ RCAP H RCAP L
在時鐘輸出模式下,定時器2不會產(chǎn)生中斷,這和定時器2用作波特率發(fā)生器一樣。定時器2也可以同時用作波特率發(fā)生器和時鐘產(chǎn)生。不過,波特率和輸出時鐘頻率相互并不獨立,它們都依賴于RCAP2H和RCAP2L
12 中斷
AT89S52 有6個中斷源:兩個外部中斷(INT0 和INT1),三個定時中斷(定時器0、1、2)和一個串行中斷。每個中斷源都可以通過置位或清除特殊寄存器IE 中的相關(guān)中斷允許控制位分別使得中斷源有效或無效。IE還包括一個中斷允許總控制位EA,它能一次禁止所有中斷。IE.6位是不可用的。對于AT89S52,IE.5位也是不能用的。用戶軟件不應(yīng)給這些位寫1。它們?yōu)锳T89系列新產(chǎn)品預(yù)留。定時器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進入中斷服務(wù)后,這些標志位都可以由硬件清0。實際上,中斷服務(wù)程序必須判定是否是TF2 或EXF2激活中斷,標志位也必須由軟件清0。定時器0和定時器1標志位TF0 和TF1在計數(shù)溢出的那個周期的S5P2被置位。它們的值一直到下一個周期被電路捕捉下來。然而,定時器2 的標志位TF2 在計數(shù)溢出的那個周期的S2P2被置位,在同一個周期被電路捕捉下來。
13 晶振特性
AT89S52 單片機有一個用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1 和XTAL2 分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來一起構(gòu)成自激振蕩器。從外部時鐘源驅(qū)動器件的話,XTAL2 可以不接,而從XTAL1 接入。由于外部時鐘信號經(jīng)過二分頻觸發(fā)后作為外部時鐘電路輸入的,所以對外部時鐘信號的占空比沒有其它要求,最長低電平持續(xù)時間和最少高電平持續(xù)時間等還是要符合要求的。
14 空閑模式
在空閑工作模式下,CPU 處于睡眠狀態(tài),而所有片上外部設(shè)備保持激活狀態(tài)。這種狀態(tài)可以通過軟件產(chǎn)生。在這種狀態(tài)下,片上RAM和特殊功能寄存器的內(nèi)容保持不變??臻e模式可以被任一個中斷或硬件復(fù)位終止。由硬件復(fù)位終止空閑模式只需兩個機器周期有效復(fù)位信號,在這種情況下,片上硬件禁止訪問內(nèi)部RAM,而可以訪問端口引腳??臻e模式被硬件復(fù)位終止后,為了防止預(yù)想不到的寫端口,激活空閑模式的那一條指令的下一條指令不應(yīng)該是寫端口或外部存儲器。
15 掉電模式
在掉電模式下,晶振停止工作,激活掉電模式的指令是最后一條執(zhí)行指令。片上RAM
和特殊功能寄存器保持原值,直到掉電模式終止。掉電模式可以通過硬件復(fù)位和外部中斷退出。復(fù)位重新定義了SFR 的值,但不改變片上RAM 的值。在VCC未恢復(fù)到正常工作電壓時,硬件復(fù)位不能無效,并且應(yīng)保持足夠長的時間以使晶振重新工作和初始化。
16 程序存儲器的加密位
AT89S52有三個加密位不可編程(U)和可編程獲得下表所示的功能。
加密位1(LB1)編程后,EA 引腳的邏輯值被采樣,并在復(fù)位期間
加密位1(LB1)編程后,EA 引腳的邏輯值被采樣,并在復(fù)位期間鎖存。如果器件復(fù)位,而沒有復(fù)位,將鎖存一個隨機值,直到復(fù)位為止。為了器件功能正常,鎖存到的EA值必須和這個引腳的當前邏輯電平一致。
17 Flash編程―并行模式
AT89S52 帶有用作編程的片上Flash 存儲器陣列。編程接口需要一個高電壓(12V)編程使能信號,并且兼容常規(guī)的第三方*(原文:third-party,不知道對不對)Flash或EPROM編程器。AT89S52程序存儲陣列采用字節(jié)式編程。
AT89S52 1 主要性能 l 與MCS-51單片機產(chǎn)品兼容 l 8K字節(jié)在系統(tǒng)可編程Flash存儲器 l 1000次擦寫周期 l 全靜態(tài)操作:0Hz~33Hz l 三級加密程序存儲器 l 32個可編程I/O口線 l 三個16位定時器/計數(shù)器 l 八個中斷源 l 全雙工UART 串行通道 l 低功耗空閑和掉電模式 l 掉電后中斷可喚醒 l 看門狗定時器 l 雙數(shù)據(jù)指針 l 掉電標識符 功能特性描述 AT89S52是一種低功耗、高性能CMOS8位微控制器,具有 8K在系統(tǒng)可編程 Flash存儲器。使用 Atmel公司高密度非 易失性存儲器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完 全兼容。片上 Flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng) 可編程Flash,使得 AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至 0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復(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口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0具有內(nèi)部上拉電阻。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗 時,需要外部上拉電阻。 P1 口:P1 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,p1 輸出緩沖器能驅(qū)動 4 個 TTL 邏輯電平。對 P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(I IL)。 此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。 引腳號 第二功能 P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P1.5 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1.7 SCK(在系統(tǒng)編程用) P2 口:P2 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 輸出緩沖器能驅(qū)動 4 個 TTL 邏輯電平。對 P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(I IL)。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR) 時,P2口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,p2 輸出緩沖器能驅(qū)動 4 個 TTL 邏輯電平。對 P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(I IL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗時,P3口也接收一些控制信號。 AT89S52 5 引腳號 第二功能 P3.0 RXD(串行輸入) P3.1 TXD(串行輸出) P3.2 INT0(外部中斷0) P3.3 INT0(外部中斷0) P3.4 T0(定時器0外部輸入) P3.5 T1(定時器1外部輸入) P3.6 WR(外部數(shù)據(jù)存儲器寫選通) P3.7 RD(外部數(shù)據(jù)存儲器寫選通) RST: 復(fù)位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復(fù)位??撮T 狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上 的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復(fù)位高電平有效。 ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低 8 位地址 的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。 在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或 時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。 如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”, ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE將被微弱拉高。這個ALE使 能標志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。 PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。 當AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而 在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。 EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器 讀取指令,EA必須接GND。 為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。 在flash編程期間,EA也接收12伏VPP電壓。 XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 AT89S52 6 表1 AT89S52特殊寄存器映象及復(fù)位值 特殊功能寄存器 特殊功能寄存器(SFR)的地址空間映象如表1所示。 并不是所有的地址都被定義了。片上沒有定義的地址是不能用的。讀這些地址,一般將 得到一個隨機數(shù)據(jù);寫入的數(shù)據(jù)將會無效。 用戶不應(yīng)該給這些未定義的地址寫入數(shù)據(jù)“1”。由于這些寄存器在將來可能被賦予新的 功能,復(fù)位后,這些位都為“0”。 定時器2寄存器:寄存器T2CON和T2MOD包含定時器2的控制位和狀態(tài)位(如表2 和表3所示),寄存器對RCAP2H和RCAP2L是定時器2的捕捉/自動重載寄存器。 中斷寄存器:各中斷允許位在IE寄存器中,六個中斷源的兩個優(yōu)先級也可在IE中設(shè)置。 AT89S52 7 表2 T2CON:定時器/計數(shù)器2控制寄存器 T2CON 地址為0C8H 復(fù)位值:0000 0000B 位可尋址 TF2 EXF2 RLCLK TCLK EXEN2 TR2 7 6 5 4 3 2 1 0 符號 功能 TF2 定時器 2 溢出標志位。必須軟件清“0”。RCLK=1 或 TCLK=1 時,TF2不用置位。 EXF2 定時器2外部標志位。EXEN2=1時,T2EX上的負跳變而出現(xiàn)捕捉或重 載時,EXF2 會被硬件置位。定時器 2 打開,EXF2=1 時,將引導(dǎo) CPU 執(zhí)行定時器 2 中斷程序。EXF2 必須如見清“0”。在向下/向上技術(shù)模式 (DCEN=1)下EXF2不能引起中斷。 RCLK 串行口接收數(shù)據(jù)時鐘標志位。若 RCLK=1,串行口將使用定時器 2 溢出 脈沖作為串行口工作模式1和3的串口接收時鐘;RCLK=0,將使用定 時器1計數(shù)溢出作為串口接收時鐘。 TCLK 串行口發(fā)送數(shù)據(jù)時鐘標志位。若 TCLK=1,串行口將使用定時器 2 溢出 脈沖作為串行口工作模式1和3的串口發(fā)送時鐘;TCLK=0,將使用定 時器1計數(shù)溢出作為串口發(fā)送時鐘。 EXEN2 定時器2外部允許標志位。當EXEN2=1時,如果定時器2沒有用作串行 時鐘,T2EX(P1.1)的負跳變見引起定時器 2 捕捉和重載。若 EXEN2 =0,定時器2將視T2EX端的信號無效 TR2 開始/停止控制定時器2。TR2=1,定時器2開始工作 定時器 2 定時/計數(shù)選擇標志位。 =0,定時; =1,外部事 件計數(shù)(下降沿觸發(fā)) 捕捉/重載選擇標志位。當EXEN2=1時, =1,T2EX出現(xiàn)負脈沖, 會引起捕捉操作;當定時器2溢出或EXEN2=1時T2EX出現(xiàn)負跳變,都 會出現(xiàn)自動重載操作。 =0 將引起 T2EX 的負脈沖。當 RCKL=1 或TCKL=1時,此標志位無效,定時器2溢出時,強制做自動重載操作。 雙數(shù)據(jù)指針寄存器:為了更有利于訪問內(nèi)部和外部數(shù)據(jù)存儲器,系統(tǒng)提供了兩路16位 數(shù)據(jù)指針寄存器:位于SFR中82H~83H的DP0和位于84H~85。特殊寄存器AUXR1 中 DPS=0 選擇 DP0;DPS=1 選擇 DP1。用戶應(yīng)該在訪問數(shù)據(jù)指針寄存器前先初始化 AT89S52 8 DPS至合理的值。 表3a AUXR:輔助寄存器 AUXR 地址:8EH 復(fù)位值:XXX00XX0B 不可位尋址 - - - WDIDLE DISRTO - - DISALE 7 6 5 4 3 2 1 0 - 預(yù)留擴展用 DISALE ALE使能標志位 DISALE 操作方式 0 ALE以1/6晶振頻率輸出信號 1 ALE只有在執(zhí)行MOVX 或MOVC指令時激活 DISRTO 復(fù)位輸出標志位 DISRTO 0 看門狗(WDT)定時結(jié)束,Reset輸出高電平 1 Reset只有輸入 WDIDLE 空閑模式下WDT使能標志位 WDIDLE 0 空閑模式下,WDT繼續(xù)計數(shù) 1 空閑模式下,WDT停止計數(shù) 掉電標志位:掉電標志位(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ù)留擴展用 DPS 數(shù)據(jù)指針選擇位 DPS 0 選擇DPTR寄存器DP0L和DP0H 1 選擇DPTR寄存器DP1L和DP1H AT89S52 9 存儲器結(jié)構(gòu) MCS-51器件有單獨的程序存儲器和數(shù)據(jù)存儲器。外部程序存儲器和數(shù)據(jù)存儲器都可以 64K尋址。 程序存儲器:如果EA引腳接地,程序讀取只從外部存儲器開始。 對于89S52,如果EA接VCC,程序讀寫先從內(nèi)部存儲器(地址為0000H~1FFFH)開 始,接著從外部尋址,尋址地址為:2000H~FFFFH。 數(shù)據(jù)存儲器:AT89S52 有 256 字節(jié)片內(nèi)數(shù)據(jù)存儲器。高 128 字節(jié)與特殊功能寄存器重 疊。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。 當一條指令訪問高于7FH的地址時,尋址方式?jīng)Q定CPU訪問高128字節(jié)RAM還是特 殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(SFR)。 例如,下面的直接尋址指令訪問0A0H(P2口)存儲單元 MOV 0A0H , #data 使用間接尋址方式訪問高 128 字節(jié) RAM。例如,下面的間接尋址方式中,R0 內(nèi)容為 0A0H,訪問的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。 MOV @R0 , #data 堆棧操作也是簡介尋址方式。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆??臻g。 看門狗定時器 WDT是一種需要軟件控制的復(fù)位方式。WDT由13位計數(shù)器和特殊功能寄存器中的看 門狗定時器復(fù)位存儲器(WDTRST)構(gòu)成。WDT 在默認情況下無法工作;為了激活 WDT,戶用必須往 WDTRST 寄存器(地址:0A6H)中依次寫入 01EH 和 0E1H。當 WDT激活后,晶振工作,WDT在每個機器周期都會增加。WDT計時周期依賴于外部 時鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒有辦法停止WDT工作。當WDT 溢出,它將驅(qū)動RSR引腳一個高個電平輸出。 WDT的使用 為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫入0E1H 和0E1H。當WDT激活后,用戶必須向WDTRST寫入01EH和0E1H喂狗來避免WDT 溢出。當計數(shù)達到 8191(1FFFH)時,13 位計數(shù)器將會溢出,這將會復(fù)位器件。晶振正 常工作、WDT激活后,每一個機器周期WDT都會增加。為了復(fù)位WDT,用戶必須向 WDTRST寫入01EH和0E1H(WDTRST是只讀寄存器)。WDT計數(shù)器不能讀或?qū)憽?當WDT計數(shù)器溢出時,將給RST引腳產(chǎn)生一個復(fù)位脈沖輸出,這個復(fù)位脈沖持續(xù)96 個晶振周期(TOSC),其中 TOSC=1/FOSC。為了很好地使用 WDT,應(yīng)該在一定時間 內(nèi)周期性寫入那部分代碼,以避免WDT復(fù)位。 掉電和空閑方式下的WDT 在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶不 必喂狗。有兩種方式可以離開掉電模式:硬件復(fù)位或通過一個激活的外部中斷。通過硬 件復(fù)位退出掉電模式后,用戶就應(yīng)該給 WDT 喂狗,就如同通常 AT89S52 復(fù)位一樣。 通過中斷退出掉電模式的情形有很大的不同。中斷應(yīng)持續(xù)拉低很長一段時間,使得晶振 AT89S52 10 穩(wěn)定。當中斷拉高后,執(zhí)行中斷服務(wù)程序。為了防止WDT在中斷保持低電平的時候復(fù) 位器件,WDT 直到中斷拉低后才開始工作。這就意味著 WDT 應(yīng)該在中斷服務(wù)程序中 復(fù)位。 為了確保在離開掉電模式最初的幾個狀態(tài)WDT不被溢出,最好在進入掉電模式前就復(fù) 位WDT。 在進入待機模式前,特殊寄存器AUXR的WDIDLE位用來決定WDT是否繼續(xù)計數(shù)。 默認狀態(tài)下,在待機模式下,WDIDLE=0,WDT繼續(xù)計數(shù)。為了防止WDT在待機模 式下復(fù)位 AT89S52,用戶應(yīng)該建立一個定時器,定時離開待機模式,喂狗,再重新進 入待機模式。 UART 在 AT89S52 中,UART 的操作與 AT89C51 和 AT89C52一樣。為了獲得更深入的關(guān)于 UART 的信息,可參考 ATMEL 網(wǎng)站()。從這個主頁,選擇 “Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“Product Overview”即可。 定時器0和定時器1 在AT89S52中,定時器0和定時器1的操作與 AT89C51和 AT89C52一樣。為了獲得 更深入的關(guān)于UART 的信息,可參考ATMEL網(wǎng)站()。從這個主 頁,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“Product Overview”即可。 定時器2 定時器2是一個16位定時/計數(shù)器,它既可以做定時器,又可以做事件計數(shù)器。其工作 方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時器2有三種工作模式: 捕捉方式、自動重載(向下或向上計數(shù))和波特率發(fā)生器。如表 3 所示,工作模式由 T2CON中的相關(guān)位選擇。定時器2有2個8位寄存器:TH2和TL2。在定時工作方式 中,每個機器周期,TL2 寄存器都會加 1。由于一個機器周期由 12 個晶振周期構(gòu)成, 因此,計數(shù)頻率就是晶振頻率的1/12。 表3 定時器2工作模式 RCLK+TCLK CP/RL2 TR2 MODE 0 0 1 16位自動重載 0 1 1 16位捕捉 1 × 1 波特率發(fā)生器 × × 0 (不用) 在計數(shù)工作方式下,寄存器在相關(guān)外部輸入角T2發(fā)生1至0的下降沿時增加1。在這 AT89S52 11 種方式下,每個機器周期的S5P2期間采樣外部輸入。一個機器周期采樣到高電平,而 下一個周期采樣到低電平,計數(shù)器將加1。在檢測到跳變的這個周期的S3P1期間,新 的計數(shù)值出現(xiàn)在寄存器中。因為識別1-0的跳變需要2個機器周期(24個晶振周期), 所以,最大的計數(shù)頻率不高于晶振頻率的 1/24。為了確保給定的電平在改變前采樣到 一次,電平應(yīng)該至少在一個完整的機器周期內(nèi)保持不變。 捕捉方式 在捕捉模式下,通過T2CON中的EXEN2來選擇兩種方式。如果EXEN2=0,定時器2 時一個16位定時/計數(shù)器,溢出時,對T2CON的TF2標志置位,TF2引起中斷。如果 EXEN2=1,定時器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P1.1)1至 0的下跳變也會使得TH2和TL2中的值分別捕捉到RCAP2H和RCAP2L中。除此之外, T2EX的跳變會引起T2CON中的EXF2 置位。像TF2 一樣,T2EX也會引起中斷。捕 捉模式如圖5所示。 圖5 定時器的捕捉模式 自動重載 當定時器2工作于16位自動重載模式,可對其編程實現(xiàn)向上計數(shù)或向下計數(shù)。這一功 能可以通過特殊寄存器T2MOD(見表4)中的DCEN(向下計數(shù)允許位)來實現(xiàn)。通 過復(fù)位,DCEN被置為0,因此,定時器2默認為向上計數(shù)。DCEN設(shè)置后,定時器2 就可以取決于T2EX向上、向下計數(shù)。 如圖6所示,DCEN=0時,定時器2自動計數(shù)。通過T2CON中的EXEN2位可以選擇 兩種方式。如果EXEN2=0,定時器2計數(shù),計到0FFFFH后置位TF2溢出標志。計數(shù) 溢出也使得定時器寄存器重新從 RCAP2H 和 RCAP2L中加載 16 位值。定時器工作于 捕捉模式,RCAP2H和RCAP2L的值可以由軟件預(yù)設(shè)。如果EXEN2=1,計數(shù)溢出或在 外部T2EX(P1.1)引腳上的1到0的下跳變都會觸發(fā)16位重載。這個跳變也置位EXF2 中斷標志位。 如圖6所示,置位DCEN,允許定時器2向上或向下計數(shù)。在這種模式下,T2EX引腳 控制著計數(shù)的方向。T2EX上的一個邏輯1使得定時器2向上計數(shù)。定時器計到0FFFFH AT89S52 12 溢出,并置位TF2。定時器的溢出也使得RCAP2H和RCAP2L中的16位值分別加載到 定時器存儲器TH2和TL2中。 T2EX 上的一個邏輯 0 使得定時器 2 向下計數(shù)。當 TH2 和 TL2 分別等于 RCAP2H 和 RCAP2L中的值的時候,計數(shù)器下溢。計數(shù)器下溢,置位TF2,并將0FFFFH加載到定 時器存儲器中。 定時器2上溢或下溢,外部中斷標志位EXF2被鎖死。在這種工作模式下,EXF2不能 觸發(fā)中斷。 圖6 定時器2重載模式(DCEN=0) 表4 T2MOD-定時器2控制寄存器 T2MOD 地址:0C9H 復(fù)位值:XXXXXX00B 不可位尋址 - - - - - - T2OE DCEN 7 6 5 4 3 2 1 0 符號 功能 - 無定義,預(yù)留擴展 T2OE 定時器2輸出允許位 DCEN 置1后,定時器2可配置成向上/向下計數(shù) AT89S52 13 圖7 定時器2自動重載(DCEN=1) 圖8 定時器2波特率發(fā)生器模式 AT89S52 14 波特率發(fā)生器 通過設(shè)置T2CON(見表2)中的TCLK或RCLK可選擇定時器2作為波特率發(fā)生器。 如果定時器2作為發(fā)送或接收波特率發(fā)生器,定時器1可用作它用,發(fā)送和接收的波特 率可以不同。如圖 8 所示,設(shè)置 RCLK和(或)TCLK可以使定時器 2 工作于波特率 產(chǎn)生模式。 波特率產(chǎn)生工作模式與自動重載模式相似,因此,TH2 的翻轉(zhuǎn)使得定時器 2 寄存器重 載被軟件預(yù)置16位值的RCAP2H和RCAP2L中的值。 模式1和模式3的波特率由定時器2溢出速率決定,具體如下公式: 模式1和模式3波特率= 162溢出率定時器 定時器可設(shè)置成定時器,也可為計數(shù)器。在多數(shù)應(yīng)用情況下,一般配置成定時方式 (CP/T2=0)。定時器 2 用于定時器操作與波特率發(fā)生器有所不同,它在每一機器周期 (1/12晶振周期)都會增加;然而,作為波特率發(fā)生器,它在每一機器狀態(tài)(1/2晶振 周期)都會增加。波特率計算公式如下: 模式1和模式3的波特率= )]2,2(65536[32 LRCAPHRCAP?× 晶振頻率 *原文少半個括號“(” 其中,(RCAP2H,RCAP2L)是RCAP2H和RCAP2L組成的16位無符號整數(shù)。 定時器2作為波特率發(fā)生器,如圖8所示。圖中僅僅在T2CON中RCLK或TCLK=1 才有效。特別強調(diào),TH2的翻轉(zhuǎn)并不置位TF2,也不產(chǎn)生中斷; EXEN2置位后,T2EX 引腳上1~0的下跳變不會使(RCAP2H,RCAP2L)重載到(TH2,TL2)中。因此, 定時器2作為波特率發(fā)生器,T2EX也還可以作為一個額外的外部中斷。 定時器2處于波特率產(chǎn)生模式,TR2=1,定時器2正常工作。TH2或TL2不應(yīng)該讀寫。 在這種模式下,定時器在每一狀態(tài)都會增加,讀或?qū)懢筒粫蚀_。寄存器RCAP2可以 讀,但不能寫,因為寫可能和重載交迭,造成寫和重載錯誤。在讀寫定時器2或RCAP2 寄存器時,應(yīng)該關(guān)閉定時器(TR2清0)。 可編程時鐘輸出 如圖9所示,可以通過編程在P1.0引腳輸出一個占空比為50%的時鐘信號。這個引腳 除了常規(guī)的 I/O 角外,還有兩種可選擇功能。它可以通過編程作為定時器/計數(shù)器 2 的 外部時鐘輸入或占空比為50%的時鐘輸出。當工作頻率為16MHZ時,時鐘輸出頻率范 圍為61HZ到4HZ。 為了把定時器2配置成時鐘發(fā)生器,位 C/T2(T2CON.1)必須清0,位 T2OE(T2MOD.1) 必須置1。位TR2(T2CON.2)啟動、停止定時器。時鐘輸出頻率取決于晶振頻率和定 時器2捕捉寄存器(RCAP2H,RCAP2L)的重載值,如公式所示: 時鐘輸出頻率= ]2,265536[4 )-(晶振頻率 LRCAPHRCAP× 在時鐘輸出模式下,定時器2不會產(chǎn)生中斷,這和定時器2用作波特率發(fā)生器一樣。定 AT89S52 15 時器2也可以同時用作波特率發(fā)生器和時鐘產(chǎn)生。不過,波特率和輸出時鐘頻率相互并 不獨立,它們都依賴于RCAP2H和RCAP2L。 圖9 定時器2時鐘輸出模式 中斷 AT89S52有6個中斷源:兩個外部中斷(INT0和INT1),三個定時中斷(定時器0、1、 2)和一個串行中斷。這些中斷如圖10所示 每個中斷源都可以通過置位或清除特殊寄存器IE中的相關(guān)中斷允許控制位分別使得中 斷源有效或無效。IE還包括一個中斷允許總控制位EA,它能一次禁止所有中斷。 如表5所示,IE.6位是不可用的。對于AT89S52,IE.5位也是不能用的。用戶軟件不應(yīng) 給這些位寫1。它們?yōu)锳T89系列新產(chǎn)品預(yù)留。 定時器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進入中斷服務(wù)后, 這些標志位都可以由硬件清0。實際上,中斷服務(wù)程序必須判定是否是TF2或EXF2激 活中斷,標志位也必須由軟件清0。 定時器0和定時器1標志位TF0和TF1在計數(shù)溢出的那個周期的S5P2被置位。它們的 值一直到下一個周期被電路捕捉下來。然而,定時器 2 的標志位 TF2 在計數(shù)溢出的那 個周期的S2P2被置位,在同一個周期被電路捕捉下來。 AT89S52 16 表4 中斷允許控制寄存器(IE) (MSB) (LSB) EA - ET2 ES ET1 EX1 ET0 EX0 中斷允許控制位=1,允許中斷 中斷允許控制位=0,禁止中斷 符號 位地址 功能 EA IE.7 中斷總允許控制位。EA=0,中斷總禁止;EA=1,各中斷由各自的控制位設(shè)定 - IE.6 預(yù)留 ET2 IE.5 定時器2中斷允許控制位 ES IE.4 串行口中斷允許控制位 ET1 IE.3 定時器1中斷允許控制位 EX1 IE.2 外部中斷1允許控制位 ET0 IE.1 定時器0中斷允許控制位 EX0 IE.0 外部中斷1允許控制位 圖10 中斷源 AT89S52 17 晶振特性 如圖 10 所示,AT89S52 單片機有一個用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1 和 XTAL2 分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來一起構(gòu)成自 激振蕩器。從外部時鐘源驅(qū)動器件的話,XTAL2 可以不接,而從 XTAL1 接入,如圖 12 所示。由于外部時鐘信號經(jīng)過二分頻觸發(fā)后作為外部時鐘電路輸入的,所以對外部 時鐘信號的占空比沒有其它要求,最長低電平持續(xù)時間和最少高電平持續(xù)時間等還是要 符合要求的。 圖11 內(nèi)部振蕩電路連接圖 圖12 外部振蕩電路連接圖 石英晶振 C1,C2=30PF±10PF 陶瓷諧振器 C1,C2=40PF±10PF 空閑模式 在空閑工作模式下,CPU 處于睡眠狀態(tài),而所有片上外部設(shè)備保持激活狀態(tài)。這種狀 態(tài)可以通過軟件產(chǎn)生。在這種狀態(tài)下,片上RAM和特殊功能寄存器的內(nèi)容保持不變。 空閑模式可以被任一個中斷或硬件復(fù)位終止。 由硬件復(fù)位終止空閑模式只需兩個機器周期有效復(fù)位信號,在這種情況下,片上硬件禁 止訪問內(nèi)部RAM,而可以訪問端口引腳??臻e模式被硬件復(fù)位終止后,為了防止預(yù)想 不到的寫端口,激活空閑模式的那一條指令的下一條指令不應(yīng)該是寫端口或外部存儲 器。 掉電模式 在掉電模式下,晶振停止工作,激活掉電模式的指令是最后一條執(zhí)行指令。片上RAM AT89S52 18 和特殊功能寄存器保持原值,直到掉電模式終止。掉電模式可以通過硬件復(fù)位和外部中 斷退出。復(fù)位重新定義了 SFR 的值,但不改變片上 RAM 的值。在 VCC未恢復(fù)到正常 工作電壓時,硬件復(fù)位不能無效,并且應(yīng)保持足夠長的時間以使晶振重新工作和初始化。 表6 空閑模式和掉電模式下的外部引腳狀態(tài) 模式 程序存儲器 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ù) 程序存儲器的加密位 AT89S52有三個加密位不可編程(U)和可編程獲得下表所示的功能。 表7 加密位保護模式 加密位 1(LB1)編程后,EA 引腳的邏輯值被采樣,并在復(fù)位期間鎖存。如果器件復(fù) 位,而沒有復(fù)位,將鎖存一個隨機值,直到復(fù)位為止。為了器件功能正常,鎖存到的 EA值必須和這個引腳的當前邏輯電平一致。 Flash編程―并行模式 AT89S52帶有用作編程的片上Flash存儲器陣列。編程接口需要一個高電壓(12V)編 程使能信號,并且兼容常規(guī)的第三方*(原文:third-party,不知道對不對)Flash或EPROM 編程器。 AT89S52程序存儲陣列采用字節(jié)式編程。 編程方法 對AT89S52編程之前,需根據(jù)Flash編程模式表和圖13、圖14對地址、數(shù)據(jù)和控制信 號設(shè)置。可采用下列步驟對AT89S52編程: AT89S52 19 1.在地址線上輸入編程單元地址信號 2.在數(shù)據(jù)線上輸入正確的數(shù)據(jù) 3.激活相應(yīng)的控制信號 4.把EA/Vpp升至12V 5.每給Flash寫入一個字節(jié)或程序加密位時,都要給ALE/PROG一次脈沖。字節(jié)寫周 期時自身定制的,典型值僅僅50us。改變地址、數(shù)據(jù)重復(fù)第1步到第5步,知道全 部文件結(jié)束。 Data Polling AT89S52用Data Polling作為一個字節(jié)寫周期結(jié)束的標志特征。 譯者注: 后面全是編程的時序問題,實在譯不下去了。感興趣的接著翻啊。 參考資料: 1.ATMEL公司 AT89S52的技術(shù)手冊 2.深圳市中源單片機發(fā)展有限公司 AT89C52 Datasheets 3.復(fù)旦大學(xué)出版社 單片微型機原理、應(yīng)用和實驗 張友德等
收藏