89C52的內部結構分析-中文翻譯
《89C52的內部結構分析-中文翻譯》由會員分享,可在線閱讀,更多相關《89C52的內部結構分析-中文翻譯(5頁珍藏版)》請在裝配圖網上搜索。
89C52的內部結構分析功能特性描述AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數據指針,三個16 位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。VCC : 電源GND: 地P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有內部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1 口:P1 口是一個具有內部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅動4 個TTL 邏輯電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。P2 口:P2 口是一個具有內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動4 個TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執(zhí)行MOVX @DPTR)時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3 口:P3 口是一個具有內部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅動4 個TTL 邏輯電平。對P3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗時,P3口也接收一些控制信號。RST: 復位輸入。晶振工作時,RST腳持續(xù)2 個機器周期高電平將使單片機復位??撮T狗計時完成后,RST 腳輸出96 個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執(zhí)行模式下無效。PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數據存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內部程序指令,EA應該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。特殊功能寄存器特殊功能寄存器(SFR)的地址空間映象如表1所示。并不是所有的地址都被定義了。片上沒有定義的地址是不能用的。讀這些地址,一般將得到一個隨機數據;寫入的數據將會無效。用戶不應該給這些未定義的地址寫入數據“1”。由于這些寄存器在將來可能被賦予新的功能,復位后,這些位都為“0”。定時器2 寄存器:寄存器T2CON 和T2MOD 包含定時器2 的控制位和狀態(tài)位,寄存器對RCAP2H和RCAP2L是定時器2的捕捉/自動重載寄存器。中斷寄存器:各中斷允許位在IE寄存器中,六個中斷源的兩個優(yōu)先級也可在IE中設置。存儲器結構MCS-51器件有單獨的程序存儲器和數據存儲器。外部程序存儲器和數據存儲器都可以64K尋址。程序存儲器:如果EA引腳接地,程序讀取只從外部存儲器開始。對于89S52,如果EA 接VCC,程序讀寫先從內部存儲器(地址為0000H~1FFFH)開始,接著從外部尋址,尋址地址為:2000H~FFFFH。數據存儲器:AT89S52 有256 字節(jié)片內數據存儲器。高128 字節(jié)與特殊功能寄存器重疊。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。當一條指令訪問高于7FH 的地址時,尋址方式決定CPU 訪問高128 字節(jié)RAM 還特殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(SFR)。例如,下面的直接尋址指令訪問0A0H(P2口)存儲單元MOV 0A0H , #data使用間接尋址方式訪問高128 字節(jié)RAM。例如,下面的間接尋址方式中,R0 內容為0A0H,訪問的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV @R0 , #data堆棧操作也是簡介尋址方式。因此,高128字節(jié)數據RAM也可用于堆??臻g??撮T狗定時器WDT是一種需要軟件控制的復位方式。WDT 由13位計數器和特殊功能寄存器中的看門狗定時器復位存儲器(WDTRST)構成。WDT 在默認情況下無法工作;為了激活WDT,戶用必須往WDTRST 寄存器(地址:0A6H)中依次寫入01EH 和0E1H。當WDT激活后,晶振工作,WDT在每個機器周期都會增加。WDT計時周期依賴于外部時鐘頻率。除了復位(硬件復位或WDT溢出復位),沒有辦法停止WDT工作。當WDT溢出,它將驅動RSR引腳一個高個電平輸出。WDT的使用為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫入0E1H和0E1H。當WDT激活后,用戶必須向WDTRST寫入01EH和0E1H喂狗來避免WDT溢出。當計數達到8191(1FFFH)時,13 位計數器將會溢出,這將會復位器件。晶振正常工作、WDT激活后,每一個機器周期WDT 都會增加。為了復位WDT,用戶必須向WDTRST 寫入01EH 和0E1H(WDTRST 是只讀寄存器)。WDT 計數器不能讀或寫。當WDT 計數器溢出時,將給RST 引腳產生一個復位脈沖輸出,這個復位脈沖持續(xù)96個晶振周期(TOSC),其中TOSC=1/FOSC。為了很好地使用WDT,應該在一定時間內周期性寫入那部分代碼,以避免WDT復位。掉電和空閑方式下的WDT在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶不必喂狗。有兩種方式可以離開掉電模式:硬件復位或通過一個激活的外部中斷。通過硬件復位退出掉電模式后,用戶就應該給WDT 喂狗,就如同通常AT89S52 復位一樣。通過中斷退出掉電模式的情形有很大的不同。中斷應持續(xù)拉低很長一段時間,使得晶振穩(wěn)定。當中斷拉高后,執(zhí)行中斷服務程序。為了防止WDT在中斷保持低電平的時候復位器件,WDT 直到中斷拉低后才開始工作。這就意味著WDT 應該在中斷服務程序中復位。為了確保在離開掉電模式最初的幾個狀態(tài)WDT不被溢出,最好在進入掉電模式前就復位WDT。在進入待機模式前,特殊寄存器AUXR的WDIDLE位用來決定WDT是否繼續(xù)計數。默認狀態(tài)下,在待機模式下,WDIDLE=0,WDT繼續(xù)計數。為了防止WDT在待機模式下復位AT89S52,用戶應該建立一個定時器,定時離開待機模式,喂狗,再重新進入待機模式。UART在AT89S52 中,UART 的操作與AT89C51 和AT89C52 一樣。為了獲得更深入的關于UART 的信息,可參考ATMEL 網站(http://www.atmel.com)。從這個主頁,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“ProductOverview”即可。定時器0 和定時器1在AT89S52 中,定時器0 和定時器1 的操作與AT89C51 和AT89C52 一樣。為了獲得更深入的關于UART 的信息,可參考ATMEL 網站(http://www.atmel.com)。從這個主頁,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“Product Overview”即可。定時器2定時器2是一個16位定時/計數器,它既可以做定時器,又可以做事件計數器。其工作方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時器2有三種工作模式:捕捉方式、自動重載(向下或向上計數)和波特率發(fā)生器。如表3 所示,工作模式由T2CON中的相關位選擇。定時器2 有2 個8位寄存器:TH2和TL2。在定時工作方式中,每個機器周期,TL2 寄存器都會加1。由于一個機器周期由12 個晶振周期構成,因此,計數頻率就是晶振頻率的1/12。種方式下,每個機器周期的S5P2期間采樣外部輸入。一個機器周期采樣到高電平,而下一個周期采樣到低電平,計數器將加1。在檢測到跳變的這個周期的S3P1 期間,新的計數值出現在寄存器中。因為識別1-0的跳變需要2個機器周期(24個晶振周期),所以,最大的計數頻率不高于晶振頻率的1/24。為了確保給定的電平在改變前采樣到一次,電平應該至少在一個完整的機器周期內保持不變。捕捉方式在捕捉模式下,通過T2CON中的EXEN2來選擇兩種方式。如果EXEN2=0,定時器2時一個16位定時/計數器,溢出時,對T2CON 的TF2標志置位,TF2引起中斷。如果EXEN2=1,定時器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P1.1)1至0的下跳變也會使得TH2和TL2中的值分別捕捉到RCAP2H和RCAP2L中。除此之外,T2EX 的跳變會引起T2CON 中的EXF2 置位。像TF2 一樣,T2EX 也會引起中斷。捕捉模式如圖5所示。自動重載當定時器2 工作于16 位自動重載模式,可對其編程實現向上計數或向下計數。這一功能可以通過特殊寄存器T2MOD(見表4)中的DCEN(向下計數允許位)來實現。通過復位,DCEN 被置為0,因此,定時器2 默認為向上計數。DCEN 設置后,定時器2就可以取決于T2EX向上、向下計數。如圖6 所示,DCEN=0 時,定時器2 自動計數。通過T2CON 中的EXEN2 位可以選擇兩種方式。如果EXEN2=0,定時器2計數,計到0FFFFH后置位TF2溢出標志。計數溢出也使得定時器寄存器重新從RCAP2H 和RCAP2L 中加載16 位值。定時器工作于捕捉模式,RCAP2H和RCAP2L的值可以由軟件預設。如果EXEN2=1,計數溢出或在外部T2EX(P1.1)引腳上的1到0的下跳變都會觸發(fā)16位重載。這個跳變也置位EXF2中斷標志位。置位DCEN,允許定時器2向上或向下計數。在這種模式下,T2EX引腳控制著計數的方向。T2EX上的一個邏輯1使得定時器2向上計數。定時器計到0FFFFH溢出,并置位TF2。定時器的溢出也使得RCAP2H和RCAP2L中的16位值分別加載到定時器存儲器TH2和TL2中。T2EX 上的一個邏輯0 使得定時器2 向下計數。當TH2 和TL2 分別等于RCAP2H 和RCAP2L中的值的時候,計數器下溢。計數器下溢,置位TF2,并將0FFFFH加載到定時器存儲器中。定時器2上溢或下溢,外部中斷標志位EXF2 被鎖死。在這種工作模式下,EXF2不能觸發(fā)中斷。- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 89 C52 內部結構 分析 中文翻譯
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://zhongcaozhi.com.cn/p-172632.html