寵物定時喂食器設(shè)計資料
寵物定時喂食器設(shè)計資料,寵物,定時,喂食,設(shè)計,資料
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 掉電標(biāo)識符 功能特性描述 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具有以下標(biāo)準(zhǔn)功能: 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ù)工 作。掉電保護(hù)方式下,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”時,引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(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默認(rèn)狀態(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使 能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。 PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。 當(dāng)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 溢出標(biāo)志位。必須軟件清“0”。RCLK=1 或 TCLK=1 時,TF2不用置位。 EXF2 定時器2外部標(biāo)志位。EXEN2=1時,T2EX上的負(fù)跳變而出現(xiàn)捕捉或重 載時,EXF2 會被硬件置位。定時器 2 打開,EXF2=1 時,將引導(dǎo) CPU 執(zhí)行定時器 2 中斷程序。EXF2 必須如見清“0”。在向下/向上技術(shù)模式 (DCEN=1)下EXF2不能引起中斷。 RCLK 串行口接收數(shù)據(jù)時鐘標(biāo)志位。若 RCLK=1,串行口將使用定時器 2 溢出 脈沖作為串行口工作模式1和3的串口接收時鐘;RCLK=0,將使用定 時器1計數(shù)溢出作為串口接收時鐘。 TCLK 串行口發(fā)送數(shù)據(jù)時鐘標(biāo)志位。若 TCLK=1,串行口將使用定時器 2 溢出 脈沖作為串行口工作模式1和3的串口發(fā)送時鐘;TCLK=0,將使用定 時器1計數(shù)溢出作為串口發(fā)送時鐘。 EXEN2 定時器2外部允許標(biāo)志位。當(dāng)EXEN2=1時,如果定時器2沒有用作串行 時鐘,T2EX(P1.1)的負(fù)跳變見引起定時器 2 捕捉和重載。若 EXEN2 =0,定時器2將視T2EX端的信號無效 TR2 開始/停止控制定時器2。TR2=1,定時器2開始工作 定時器 2 定時/計數(shù)選擇標(biāo)志位。 =0,定時; =1,外部事 件計數(shù)(下降沿觸發(fā)) 捕捉/重載選擇標(biāo)志位。當(dāng)EXEN2=1時, =1,T2EX出現(xiàn)負(fù)脈沖, 會引起捕捉操作;當(dāng)定時器2溢出或EXEN2=1時T2EX出現(xiàn)負(fù)跳變,都 會出現(xiàn)自動重載操作。 =0 將引起 T2EX 的負(fù)脈沖。當(dāng) RCKL=1 或TCKL=1時,此標(biāo)志位無效,定時器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ù)留擴(kuò)展用 DISALE ALE使能標(biāo)志位 DISALE 操作方式 0 ALE以1/6晶振頻率輸出信號 1 ALE只有在執(zhí)行MOVX 或MOVC指令時激活 DISRTO 復(fù)位輸出標(biāo)志位 DISRTO 0 看門狗(WDT)定時結(jié)束,Reset輸出高電平 1 Reset只有輸入 WDIDLE 空閑模式下WDT使能標(biāo)志位 WDIDLE 0 空閑模式下,WDT繼續(xù)計數(shù) 1 空閑模式下,WDT停止計數(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 存儲器結(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é)與特殊功能寄存器有相同的地址,而物理上是分開的。 當(dāng)一條指令訪問高于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 在默認(rèn)情況下無法工作;為了激活 WDT,戶用必須往 WDTRST 寄存器(地址:0A6H)中依次寫入 01EH 和 0E1H。當(dāng) WDT激活后,晶振工作,WDT在每個機器周期都會增加。WDT計時周期依賴于外部 時鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒有辦法停止WDT工作。當(dāng)WDT 溢出,它將驅(qū)動RSR引腳一個高個電平輸出。 WDT的使用 為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫入0E1H 和0E1H。當(dāng)WDT激活后,用戶必須向WDTRST寫入01EH和0E1H喂狗來避免WDT 溢出。當(dāng)計數(shù)達(dá)到 8191(1FFFH)時,13 位計數(shù)器將會溢出,這將會復(fù)位器件。晶振正 常工作、WDT激活后,每一個機器周期WDT都會增加。為了復(fù)位WDT,用戶必須向 WDTRST寫入01EH和0E1H(WDTRST是只讀寄存器)。WDT計數(shù)器不能讀或?qū)憽?當(dāng)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)定。當(dāng)中斷拉高后,執(zhí)行中斷服務(wù)程序。為了防止WDT在中斷保持低電平的時候復(fù) 位器件,WDT 直到中斷拉低后才開始工作。這就意味著 WDT 應(yīng)該在中斷服務(wù)程序中 復(fù)位。 為了確保在離開掉電模式最初的幾個狀態(tài)WDT不被溢出,最好在進(jìn)入掉電模式前就復(fù) 位WDT。 在進(jìn)入待機模式前,特殊寄存器AUXR的WDIDLE位用來決定WDT是否繼續(xù)計數(shù)。 默認(rèn)狀態(tài)下,在待機模式下,WDIDLE=0,WDT繼續(xù)計數(shù)。為了防止WDT在待機模 式下復(fù)位 AT89S52,用戶應(yīng)該建立一個定時器,定時離開待機模式,喂狗,再重新進(jìn) 入待機模式。 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標(biāo)志置位,TF2引起中斷。如果 EXEN2=1,定時器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P1.1)1至 0的下跳變也會使得TH2和TL2中的值分別捕捉到RCAP2H和RCAP2L中。除此之外, T2EX的跳變會引起T2CON中的EXF2 置位。像TF2 一樣,T2EX也會引起中斷。捕 捉模式如圖5所示。 圖5 定時器的捕捉模式 自動重載 當(dāng)定時器2工作于16位自動重載模式,可對其編程實現(xiàn)向上計數(shù)或向下計數(shù)。這一功 能可以通過特殊寄存器T2MOD(見表4)中的DCEN(向下計數(shù)允許位)來實現(xiàn)。通 過復(fù)位,DCEN被置為0,因此,定時器2默認(rèn)為向上計數(shù)。DCEN設(shè)置后,定時器2 就可以取決于T2EX向上、向下計數(shù)。 如圖6所示,DCEN=0時,定時器2自動計數(shù)。通過T2CON中的EXEN2位可以選擇 兩種方式。如果EXEN2=0,定時器2計數(shù),計到0FFFFH后置位TF2溢出標(biāo)志。計數(shù) 溢出也使得定時器寄存器重新從 RCAP2H 和 RCAP2L中加載 16 位值。定時器工作于 捕捉模式,RCAP2H和RCAP2L的值可以由軟件預(yù)設(shè)。如果EXEN2=1,計數(shù)溢出或在 外部T2EX(P1.1)引腳上的1到0的下跳變都會觸發(fā)16位重載。這個跳變也置位EXF2 中斷標(biāo)志位。 如圖6所示,置位DCEN,允許定時器2向上或向下計數(shù)。在這種模式下,T2EX引腳 控制著計數(shù)的方向。T2EX上的一個邏輯1使得定時器2向上計數(shù)。定時器計到0FFFFH AT89S52 12 溢出,并置位TF2。定時器的溢出也使得RCAP2H和RCAP2L中的16位值分別加載到 定時器存儲器TH2和TL2中。 T2EX 上的一個邏輯 0 使得定時器 2 向下計數(shù)。當(dāng) TH2 和 TL2 分別等于 RCAP2H 和 RCAP2L中的值的時候,計數(shù)器下溢。計數(shù)器下溢,置位TF2,并將0FFFFH加載到定 時器存儲器中。 定時器2上溢或下溢,外部中斷標(biāo)志位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ù)留擴(kuò)展 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ū)懢筒粫?zhǔn)確。寄存器RCAP2可以 讀,但不能寫,因為寫可能和重載交迭,造成寫和重載錯誤。在讀寫定時器2或RCAP2 寄存器時,應(yīng)該關(guān)閉定時器(TR2清0)。 可編程時鐘輸出 如圖9所示,可以通過編程在P1.0引腳輸出一個占空比為50%的時鐘信號。這個引腳 除了常規(guī)的 I/O 角外,還有兩種可選擇功能。它可以通過編程作為定時器/計數(shù)器 2 的 外部時鐘輸入或占空比為50%的時鐘輸出。當(dāng)工作頻率為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ā)。程序進(jìn)入中斷服務(wù)后, 這些標(biāo)志位都可以由硬件清0。實際上,中斷服務(wù)程序必須判定是否是TF2或EXF2激 活中斷,標(biāo)志位也必須由軟件清0。 定時器0和定時器1標(biāo)志位TF0和TF1在計數(shù)溢出的那個周期的S5P2被置位。它們的 值一直到下一個周期被電路捕捉下來。然而,定時器 2 的標(biāo)志位 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 加密位保護(hù)模式 加密位 1(LB1)編程后,EA 引腳的邏輯值被采樣,并在復(fù)位期間鎖存。如果器件復(fù) 位,而沒有復(fù)位,將鎖存一個隨機值,直到復(fù)位為止。為了器件功能正常,鎖存到的 EA值必須和這個引腳的當(dāng)前邏輯電平一致。 Flash編程―并行模式 AT89S52帶有用作編程的片上Flash存儲器陣列。編程接口需要一個高電壓(12V)編 程使能信號,并且兼容常規(guī)的第三方*(原文:third-party,不知道對不對)Flash或EPROM 編程器。 AT89S52程序存儲陣列采用字節(jié)式編程。 編程方法 對AT89S52編程之前,需根據(jù)Flash編程模式表和圖13、圖14對地址、數(shù)據(jù)和控制信 號設(shè)置??刹捎孟铝胁襟E對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é)束的標(biāo)志特征。 譯者注: 后面全是編程的時序問題,實在譯不下去了。感興趣的接著翻啊。 參考資料: 1.ATMEL公司 AT89S52的技術(shù)手冊 2.深圳市中源單片機發(fā)展有限公司 AT89C52 Datasheets 3.復(fù)旦大學(xué)出版社 單片微型機原理、應(yīng)用和實驗 張友德等
收藏
編號:2689705
類型:共享資源
大小:1.46MB
格式:ZIP
上傳時間:2019-11-28
5
積分
- 關(guān) 鍵 詞:
-
寵物
定時
喂食
設(shè)計
資料
- 資源描述:
-
寵物定時喂食器設(shè)計資料,寵物,定時,喂食,設(shè)計,資料
展開閱讀全文
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。