新編單片機(jī)原理與應(yīng)用(潘永雄)第5章80C51內(nèi)核增強(qiáng)型單片機(jī)芯片_第1頁
新編單片機(jī)原理與應(yīng)用(潘永雄)第5章80C51內(nèi)核增強(qiáng)型單片機(jī)芯片_第2頁
新編單片機(jī)原理與應(yīng)用(潘永雄)第5章80C51內(nèi)核增強(qiáng)型單片機(jī)芯片_第3頁
新編單片機(jī)原理與應(yīng)用(潘永雄)第5章80C51內(nèi)核增強(qiáng)型單片機(jī)芯片_第4頁
新編單片機(jī)原理與應(yīng)用(潘永雄)第5章80C51內(nèi)核增強(qiáng)型單片機(jī)芯片_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第5章 80C51內(nèi)核增強(qiáng)型單片機(jī)芯片 5.1 89C51RX系列單片機(jī)概述5.2 P89C51RX引腳功能5.3 P89C51RX系列片內(nèi)存儲器結(jié)構(gòu)5.4 可編程計數(shù)器陣列PCA及應(yīng)用5.5 89C51RX系列中斷控制系統(tǒng)5.6 硬件看門狗5.7 P89C6XX2 系列*5.8 P89C66X系列簡介 5.1 89C51RX系列單片機(jī)概述 1. Philips公司第一代P89C51RXXH系列芯片 1999年3月,Philips 公司先后推出了以增強(qiáng)型MCS-51 CPU作為內(nèi)核的新一代8位單片機(jī)芯片P89C51RC+H、P89C51RD+H、P89C51RA+H、P89C51RB+H、P8

2、9C51RA2H、P89C51RB2H、P89C51RC2H、P89C51RD2H等(統(tǒng)稱為第一代P89C51RX系列芯片,彼此之間只是片內(nèi)存儲器種類、容量以及編程電壓不同)。P89C51RX系列具有如下特點: (1) 采用增強(qiáng)型MCS-51內(nèi)核,硬件資源、封裝形式及引腳排列、指令系統(tǒng)與增強(qiáng)型80C51芯片保持100%兼容,即P89C51RX系列完全可以替換具有相同封裝形式的8XC5X、8XC5XX2系列芯片。 (2) 擴(kuò)充了片內(nèi)RAM存儲器容量,在89C51RX內(nèi)部,除了256字節(jié)的內(nèi)部RAM外,還集成了256768字節(jié)的內(nèi)部擴(kuò)展RAM(簡稱ERAM)。 (3) 集成了與Intel 8XC5

3、1FX系列完全兼容的5模塊可編程計數(shù)器陣列PCA。 (4) 可以使用與 MCS-51相同的每機(jī)器周期12個時鐘模式(在標(biāo)準(zhǔn)時鐘模式下,晶振頻率為033 MHz),也可以采用每機(jī)器周期6時鐘模式(晶振頻率為020 MHz,指令執(zhí)行時間快一倍)。 (5) 提供了硬件看門狗計數(shù)器WDT。 (6) 具有7個中斷源(4個中斷優(yōu)先級)。 2. Philips公司第二代P89C51RX系列芯片 2002年5月,Philips公司推出了第二代P89C51RX系列芯片,主要特征是器件型號中沒有字母“H”,與第一代P89C51RX系列芯片相比,做了如下改進(jìn): (1) 第一代P89C51RX芯片時鐘模式配置位FX2

4、的記錄載體為OTP ROM,缺省時為6時鐘模式,可編程為12時鐘模式,但編程后不能再使用6時鐘模式;而第二代P89C51RX系列芯片時鐘模式配置位FX2的記錄載體為Flash ROM,缺省時為12時鐘模式,可編程為6時鐘模式,可通過并行編程方式擦除,恢復(fù)為12時鐘模式。 (2) 增加了時鐘模式選擇特殊功能寄存器CKCON。即當(dāng)FX2位處于擦除或未編程狀態(tài)(即FX2位為1)時,可通過軟件修改CKCON的X2位選擇系統(tǒng)時鐘模式(但值得注意的是,位于Flash ROM保密字節(jié)內(nèi)的系統(tǒng)時鐘配置位FX2比CKCON寄存器內(nèi)的X2位優(yōu)先,即當(dāng)FX2位被編程后,X2位無效)。 (3) 當(dāng)CPU運行在“6時鐘

5、/機(jī)器周期”狀態(tài)時,可通過CKCON寄存器選擇外設(shè)時鐘模式,如圖5-1所示。 圖5-1 CKCON寄存器各位含義 表5-1 第二代P89C51RX系列芯片CPU和外設(shè)時鐘選擇關(guān)系 FX2位狀態(tài)(位于Flash ROM保密字節(jié)內(nèi))X2位狀態(tài)(CKCON.0)外設(shè)時鐘控制位(CKCON.6CKCON.1)CPU時鐘外設(shè)時鐘擦除(未編程)0(默認(rèn))X12時鐘12時鐘擦除(未編程)106時鐘6時鐘擦除(未編程)116時鐘12時鐘編程X(無效)06時鐘6時鐘編程X(無效)16時鐘12時鐘表5-2 P89C51RX系列常見型號 型號片內(nèi)程序存儲器(Flash ROM)片內(nèi)RAM容量缺省時鐘模式可選時鐘最高

6、工作頻率內(nèi)部RAM內(nèi)部擴(kuò)展RAM6時鐘12時鐘P89C51RD2XX64K256B768B12620MHz33MHzP89C51RC2XX32K256B256B12620MHz33MHzP89C51RB2XX16K256B256B12620MHz33MHzP89C51RA2XX8K256B256B12620MHz33MHz 3. Atmel公司T89C51RX系統(tǒng)芯片 Atmel公司也于2000年前后推出以Flash ROM作為片內(nèi)程序存儲器的T89C51RX系列芯片、以O(shè)TP ROM作為片內(nèi)程序存儲器的TS87C51RX系列芯片。 T89C51RX芯片硬件資源、引腳排列與P89C51RX系列

7、保持100%,但資源比P89C51RX系列多,主要體現(xiàn)在: (1) 片內(nèi)集成了2 KB、可擦寫10萬次的E2PROM存儲器,方便了系統(tǒng)運行參數(shù)的保存。 (2) 在PLCC68封裝、VQFP64封裝的T89C51RX芯片品種中,增加了P4、P5兩個8位I/O口,即I/O引腳數(shù)目為48根(6口8位)。 (3) 工作電壓范圍寬。P89C51RXV10%,而T89C51RX系列電源電壓為3.05.5 V;對低電壓版本,電源電壓為2.73.6 V。 (4) 改進(jìn)了X2時鐘模式,即在6時鐘/機(jī)器周期狀態(tài)下,可以選擇每一外設(shè)的時鐘頻率。即T89C51RX系列芯片內(nèi)CKCON寄存器各位含義與Philips第二

8、代P89C51RX系列芯片相同。 (5) 可以改變外部RAM讀選通 、寫選通 脈沖寬度。缺省狀態(tài)下,讀選通、寫選通 脈沖寬度為6時鐘周期,但在T89C51RX中,可以選擇30時鐘周期,以便讀寫存取速度慢的RAM存儲器。 5.2 P89C51RX引腳功能 圖5-2 P89C51RX系列芯片封裝形式及引腳排列(a) DIP封裝;(b) LQFP封裝;(c) LCC封裝 圖5-2 P89C51RX系列芯片封裝形式及引腳排列(a) DIP封裝;(b) LQFP封裝;(c) LCC封裝 5.3 P89C51RX系列片內(nèi)存儲器結(jié)構(gòu) 表5-3 89C51RX系列特殊功能寄存器 表5-3 89C51RX系列特

9、殊功能寄存器 表5-3 89C51RX系列特殊功能寄存器 表5-3 89C51RX系列特殊功能寄存器 5.3.1 片內(nèi)程序存儲器 89C51RX系列采用Flash ROM作為片內(nèi)程序存儲器,容量從864 KB,無須通過EPROM、Flash ROM芯片擴(kuò)展外部程序存儲器,因此引腳一般通過2.0 k電阻接高電平。 可以在通用編程器上對89C51RX系列芯片編程,也可以用ISP、IAP方式進(jìn)行編程。 5.3.2 片內(nèi)數(shù)據(jù)存儲器圖5-3 89C51RX/87C51RX存儲器結(jié)構(gòu) 256字節(jié)內(nèi)部RAM、外部RAM讀寫方法與增強(qiáng)型MCS-51相同;內(nèi)部擴(kuò)展RAM地址空間與外部RAM地址空間重疊,也是通過

10、MOVX指令讀寫。為了區(qū)別MOVX指令的讀寫對象內(nèi)部擴(kuò)展RAM或外部RAM,89C51RX系列輔助功能寄存器AUXR中增加了EXTRAM選擇位。EXTRAM為0,MOVX指令讀寫對象為內(nèi)部擴(kuò)展RAM;EXTRAM為1,MOVX指令讀寫對象為外部RAM。由于復(fù)位時,AUXR寄存器內(nèi)容為xxxxxx00B,因此復(fù)位后,MOVX指令讀寫對象為內(nèi)部擴(kuò)展RAM。當(dāng)需要讀寫外部RAM時,須通過如下指令,將EXTRAM位置1。 OR AUXR, #00000010B; 由于AUXR寄存器不具有位尋址功能,只能通過或指令將指; 定位置1MOV DPTR, #XXXX; 外部RAM地址送DPTR MOVX A,

11、 DPTR; 讀外部RAM單元內(nèi)容 【例5.1】 編寫一段程序,將外部RAM中2000H200FH單元內(nèi)容送內(nèi)部擴(kuò)展RAM的0000000FH單元。 參考程序如下: MOV DPTR, #2000H; 外部RAM單元首地址送DPTRMOV R7, #10H; 傳送字節(jié)數(shù)送R7INC AUXR1; 切換數(shù)據(jù)指針MOV DPTR, #0000H; 將內(nèi)部擴(kuò)展RAM首地址送另一數(shù)據(jù)指針NEXT: INC AUXR1; 切換數(shù)據(jù)指針,使DPTR指向外部單元 OR AUXR, #00000010BMOVX A, DPTR; 讀外部RAM單元內(nèi)容到AccINC DPTR; 指向外部RAM下一單元INC A

12、UXR1; 切換數(shù)據(jù)指針,使DPTR指向內(nèi)部擴(kuò)展RAMANL AUXR, #11111101B; 將EXTRAM位為0,使MOVX指令讀寫對象 為ERAMMOVX DPTR, A; 數(shù)據(jù)送內(nèi)部擴(kuò)展RAMINC DPTR; 指向內(nèi)部擴(kuò)展RAM下一單元DJNZ R7, NEXT; R7不為0時循環(huán) 5.4 可編程計數(shù)器陣列PCA及應(yīng)用 圖5-4 可編程計數(shù)器陣列PCA 5.4.1 PCA結(jié)構(gòu)及控制 圖5-5 PCA計數(shù)器及控制 圖5-6 PCA中斷控制邏輯 1. PCA模式寄存器CMOD PCA模式寄存器CMOD各位含義如下: CIDLWDTE_CPS1CPS0ECFCMOD(OD9H) B7 b

13、6 b5 b4 b3 b2 b1 b0 (1) CPS1、CPS0用于選擇PCA計數(shù)器計數(shù)脈沖來源。PCA內(nèi)五個模塊共用一個16位加法計數(shù)器(CH和CL),計數(shù)脈沖來源由CMOD寄存器的CPS1、CPS0位決定:CPS1、CPS0計數(shù)脈沖源00內(nèi)部時鐘信號fosc/6(6時鐘模式)或fosc/12(12時鐘模式)01內(nèi)部時鐘信號fosc/2(6時鐘模式)或fosc/4(12時鐘模式)10定時器T0的溢出脈沖11來自引腳的外部脈沖(在6時鐘模式下,外部脈沖最 高頻率為fosc/4;在12時鐘模式下,外部脈沖最高頻率為fosc/8) (2) ECFPCA計數(shù)器CH/CL溢出中斷允許。當(dāng)PCA計數(shù)器

14、溢出時,PCA控制寄存器CCON的溢出標(biāo)志CF有效。如果ECF=1,且中斷允許寄存器IE的EC、EA位為1,則CPU將響應(yīng)PCA計數(shù)器溢出中斷。 (3) CIDL節(jié)電狀態(tài)下PCA運行控制。當(dāng)CIDL=0時,在節(jié)電狀態(tài)下,PCA計數(shù)器繼續(xù)計數(shù)(圖5-5中的與非門輸出恒為1,與PCON寄存器節(jié)電運行控制位IDL內(nèi)容無關(guān));反之,當(dāng)CIDL=1時,在節(jié)電狀態(tài)下,PCA計數(shù)器停止計數(shù)(由于CIDL位為1,圖5-5中與非門輸出狀態(tài)由PCON寄存器節(jié)電運行控制位IDL決定,當(dāng)IDL位為1時,與非門輸出為0,PCA計數(shù)器停止計數(shù))。 (4) WDTE禁止/允許模塊4看門狗工作。 2. PCA計數(shù)器(CH和C

15、L) 16位加法計數(shù)器,計數(shù)脈沖由CMOD寄存器的CPS1、CPS0位定義,每來一個脈沖,計數(shù)器加1,當(dāng)CH溢出時,CCON寄存器內(nèi)的溢出標(biāo)志CF置位。 3. PCA控制寄存器CCON CFCR_CCF4CCF3CCF2CCF1CCF0CCOD(OD8H) B7 b6 b5 b4 b3 b2 b1 b0 (1) CCF4CCF0分別是模塊4模塊0的中斷標(biāo)志位。當(dāng)產(chǎn)生匹配(比較)或捕捉時由硬件置1。但CPU響應(yīng)PCA中斷請求后,不能自動清除,需要軟件清零。 (2) CRPCA計數(shù)器啟動控制位。在正常狀態(tài)下,CR=1時,計數(shù)脈沖開關(guān)閉合,每來一個計數(shù)脈沖,計數(shù)器加1;當(dāng)CR=0時,PCA計數(shù)器停止

16、計數(shù)。 (3) CFPCA計數(shù)器溢出標(biāo)志。當(dāng)PCA計數(shù)器溢出時,CF自動置1(不自動清除,需要軟件清零)。 4. 模塊比較/捕捉寄存器(CCAPnH和CCAPnL)和模塊模式寄存器CCAPMn 每一模塊對應(yīng)一個16位比較/捕捉寄存器(即高8位CCAPnH和低8位CCAPnL)、模塊工作方式寄存器CCAPMn。 每一模塊的工作方式由對應(yīng)模塊的工作方式寄存器CCAPMn決定,如模塊0的工作方式由模塊0的工作方式寄存器CCAPM0決定、模塊1的工作方式由模塊1的工作方式寄存器CCAPM1決定,依此類推,模塊4的工作方式由模塊4的工作方式寄存器CCAPM4決定。模塊工作方式寄存器CCAPM0CCAPM

17、4結(jié)構(gòu)、各位含義相同,如下所示: _ECOMnCAPPnCAPNnMATnTCGnPWMnECCFnB7 b6 b5 b4 b3 b2 b1 b0 CCAPM0 (0DAH)CCAPM1 (0DBH)CCAPM2 (0DCH)CCAPM3 (0DDH)CCAPM4 (0DEH)其中:ECOMn比較器允許/禁止位。CAPPn 上升沿捕捉允許/禁止位。CAPNn 下降沿捕捉允許/禁止位。MATn匹配允許/禁止位。如果MATn=1,則當(dāng)PCA計數(shù)器當(dāng)前值與對應(yīng)模塊的比較/捕捉寄存器相同時,將CCON寄存器中對應(yīng)中斷標(biāo)志位置1。TOGn觸發(fā)輸出允許/禁止位。如果TOGn=1,則當(dāng)PCA計數(shù)器當(dāng)前值與對

18、應(yīng)模塊的比較/捕捉寄存器相同時,觸發(fā)相應(yīng)模塊的CEX引腳翻轉(zhuǎn)。PWMn脈沖寬度調(diào)制允許/禁止位。ECCFn允許/禁止CCF中斷。 表5-4 PCA模塊工作方式 CCAPMn(n=04) 寄存器位模塊工作方式-ECOMnCAPPnCAPNnMATnTOGnPWMnECCFn0000000無1000016位捕捉(CEXn引腳上升沿觸發(fā))0100016位捕捉(CEXn引腳下降沿觸發(fā))110016位捕捉(CEXn引腳上、下沿觸發(fā))10010016位軟件定時器10011016位高速輸出10000108位PWM輸出10010看門狗定時器(模塊4) 5.4.2 PCA模塊初始化步驟 PCA模塊初始化步驟包括

19、: (1) 初始化PCA的模式寄存器CMOD,選擇PCA計數(shù)脈沖源、允許/禁止節(jié)電模式下PCA計數(shù)器計數(shù)、禁止/允許PCA計數(shù)器溢出中斷。 (2) 計數(shù)初值送CH/CL,完成PCA計數(shù)器CH/CL的初始化。 (3) 初始化相應(yīng)模塊工作方式寄存器CCAPMn,選擇所需的工作模式。 (4) 初始化相應(yīng)模塊的比較/捕捉寄存器(CCAPnL、CCAPnH)。 (5) 啟動PCA計數(shù)器(即執(zhí)行“SETB CR”命令,將CCON寄存器的CR位置1,使PCA計數(shù)器計數(shù))。 5.4.3 PCA模塊工作模式 圖5-7 捕捉模式 對于下降沿捕捉來說,當(dāng)CEXn引腳出現(xiàn)高電平到低電平變化時,將就PCA計數(shù)器(CH、

20、CL)的當(dāng)前值分別寫入(即捕捉)模塊的比較/捕捉寄存器(CCAPnH、CCAPnL)中;對于上升沿捕捉來說,當(dāng)CEXn引腳出現(xiàn)低電平到高電平變化時,將PCA計數(shù)器(CH、CL)的當(dāng)前值捕捉到相應(yīng)模塊的比較/捕捉寄存器(CCAPnH、CCAPnL)中。在發(fā)生捕捉時,CCON寄存器對應(yīng)的中斷標(biāo)志位CCF自動置1,如果相應(yīng)的CCAPMn寄存器的ECCF位為1,將產(chǎn)生PCA中斷請求。 對于捕捉方式來說,可以使用CEXn引腳的下沿觸發(fā),也可以使用上沿觸發(fā),或上沿、下沿均觸發(fā)(雙觸發(fā))。 捕捉模式常用于測量CEXn引腳上的脈沖周期、兩信號相位差等。 2. 軟件定時器 當(dāng)PCA模式寄存器CMOD的WDTE位

21、為0;而模塊模式CCAPMn寄存器的MAT位為1(否則匹配時相應(yīng)CCFn位不置1,無法通過查詢或中斷方式確定定時時間到),其他位為0時,相應(yīng)PCA模塊工作于定時器狀態(tài),定時時間由CH/CL初值、模塊比較/捕捉寄存器CCAPnH、CCAPnL決定,如圖5-8所示。完成比較/捕捉寄存器高8位CCAPnH裝入后,ECOM位為1,比較處于允許狀態(tài)。當(dāng)PCA計數(shù)器等于模塊比較/捕捉寄存器(即發(fā)生匹配)時,CCON寄存器相應(yīng)標(biāo)志位CCFn有效,如果ECCFn位為1,將產(chǎn)生PCA中斷請求。 圖5-8 PCA軟件定時器模式 3. 高速輸出模式 圖5-9 高速輸出模式 4. 8位PWM輸出 圖5-10 8位PW

22、M輸出方式 圖5-11 各模塊輸出的PWM脈沖波形 【例5.2】 假設(shè)時鐘頻率為16 MHz,在6時鐘/機(jī)器周期模式下,利用PCA的PWM輸出模式產(chǎn)生如圖5-12所示半橋式脈沖寬度調(diào)制變換器開關(guān)電源所需激勵信號。 圖5-12 半橋式開關(guān)電源激勵信號 圖5-13 利用89C51RX脈寬調(diào)制獲得的半橋式開關(guān)電源激勵信號 參考程序如下: ; PCA初始化MOV CMOD, #00000010B; CIDL=0,節(jié)電狀態(tài)下停止PCA計數(shù);計數(shù)脈沖頻率fOSC/2,; 即8 MHz;禁止PCA溢出中斷。PWM周期為256*0.125 s,; 即32 s,頻率為31.25 kHzMOV CH, #00HM

23、OV CL, #00HMOV CCAP0L, #50H; 假設(shè)正常情況下,T2=10 s,即初值為80 MOV CCAP0H, #50HMOV CCAP1L, #30H; 假設(shè)正常情況下,T1=6 s,即初值為48MOV CCAP1H, #30HMOV CCAP2L, #80H; 模塊2輸出方波,初值固定為128MOV CCAP2H, #80HMOV CCAPM0, #42H; PCA模塊0工作于PWM模式MOV CCAPM1, #42H; PCA模塊1工作于PWM模式MOV CCAPM2, #42H; PCA模塊2工作于PWM模式 SETB CR; 啟動PCA計數(shù)器 5. 看門狗模式 圖5-

24、14 PCA看門狗方式 通過如下指令初始化PCA模塊4,使其工作于看門狗模式:MOV CCAPM4, #00001000B; 模塊4模式寄存器CCAPM4的MAT位為1MOV CCAP4L, #0FFH; 先初始化模塊4比較寄存器低8位MOV CCAP4H, #0FFH; 初始化模塊4比較寄存器高8位,同時自動將CCAPM4的; ECOM位置1,允許比較 ORL CMOD, #40H; 將CMOD的WDTE位置1,允許看門狗工作 下面是在主程序中重寫模塊4捕捉/比較寄存器CCAP4H、CCAP4L以防止PCA看門狗復(fù)位的子程序。 PCAWDT:CLR EA; 先禁止中斷,防止重寫模塊4捕捉/比

25、較寄存器時產(chǎn)生中斷MOV CCAP4L, #00H; 把00H寫入CCPA4LMOV CCAP4H, CH; 把PCA計數(shù)器當(dāng)前值高位CH寫入 CCAP4HSETB EA; 開中斷 RET; 返回 由于PCA計數(shù)器不停,主程序調(diào)用該子程序后,PCA計數(shù)器一定略大于模塊4的捕捉/比較寄存器,因此只要主程序以略小于PCA溢出周期調(diào)用該子程序就能防止PCA看門狗觸發(fā)CPU復(fù)位。 但必須注意的是:不能在定時器中斷服務(wù)程序內(nèi)調(diào)用上面的子程序,因為即使由于熱沖擊、干擾等原因引起PC“走飛”,造成系統(tǒng)癱瘓后,仍可能響應(yīng)定時中斷,使PCA看門狗不能觸發(fā)復(fù)位操作,恢復(fù)系統(tǒng)運行。 5.5 89C51RX系列中斷控

26、制系統(tǒng) 在同優(yōu)先級中斷中,硬件查詢順序如下:中斷源 入口地址外中斷0003H定時器T0溢出中斷000BH外中斷0013H定時器T1溢出中斷001BHPCA計數(shù)器中斷0033H 串行口中斷0023H 定時器T2中斷002BH 圖5-15 89C51RX中斷控制寄存器IE及優(yōu)先級IPH、IP(a) 89C51RX中斷控制寄存器IE;(b) 89C51RX中斷優(yōu)先級IP;(c) 89C51RX中斷優(yōu)先級高位IPH 圖5-15 89C51RX中斷控制寄存器IE及優(yōu)先級IPH、IP(a) 89C51RX中斷控制寄存器IE;(b) 89C51RX中斷優(yōu)先級IP;(c) 89C51RX中斷優(yōu)先級高位IPH

27、圖5-15 89C51RX中斷控制寄存器IE及優(yōu)先級IPH、IP(a) 89C51RX中斷控制寄存器IE;(b) 89C51RX中斷優(yōu)先級IP;(c) 89C51RX中斷優(yōu)先級高位IPH 5.6 硬件看門狗 89C51RX具有“一次使能帶有復(fù)位輸出”的硬件看門狗定時器(簡稱WDT)電路,它主要由一個14位的看門狗計數(shù)器WDT和看門狗定時器復(fù)位寄存器WDTRST 組成。其中WDT計數(shù)器既不能讀,也不能寫,啟動后每個機(jī)器周期WDT加1(WDT啟動后,除復(fù)位外,沒有其他方法使WDT停止計數(shù))。當(dāng)WDT計數(shù)器溢出時,強(qiáng)迫CPU進(jìn)入復(fù)位狀態(tài),同時在RST引腳上輸出一個高電平的復(fù)位脈沖,使系統(tǒng)內(nèi)與CPU復(fù)

28、位引腳RST相連的其他外圍芯片,如8255、8155等復(fù)位。在“6時鐘/機(jī)器周期”模式下,RST引腳上的高電平復(fù)位脈沖持續(xù)時間為98個時鐘周期;而在12時鐘模式下,高電平復(fù)位脈沖持續(xù)時間為298,即196個時鐘周期,以保證外圍電路芯片可靠復(fù)位。 為防止正常操作時,WDT計數(shù)器溢出,造成系統(tǒng)復(fù)位,必須在小于214(16 384)個機(jī)器周期內(nèi)(如果系統(tǒng)時鐘頻率為12 MHz,對于12時鐘/機(jī)器周期模式來說,機(jī)器周期為1 s,16 384個機(jī)器周期就是16.386 ms)對看門狗復(fù)位寄存器WDTRST(字節(jié)地址為0A6H)順序?qū)懭?EH 和0E1H,強(qiáng)迫看門狗計數(shù)器WDT復(fù)位(這是防止看門狗計數(shù)器W

29、DT溢出的惟一方法)。 可通過如下方法啟動和強(qiáng)迫看門狗計數(shù)器復(fù)位并重新計數(shù):MOV WDTRST, #1EH; 寫入立即數(shù)1EH MOV WDTRST, #0E1H; 寫入立即數(shù)0E1H,啟動WDT功能 然后,在程序中適當(dāng)位置插入這兩條指令,強(qiáng)迫WDT復(fù)位并重新計數(shù),防止溢出。 當(dāng)PC走飛時,將不能按時執(zhí)行上述兩條指令,經(jīng)過16 384個機(jī)器周期后,WDT計數(shù)器溢出,強(qiáng)迫CPU及其他可編程芯片復(fù)位,重新執(zhí)行程序,恢復(fù)系統(tǒng)的運行。盡管在走飛到WDT溢出前、復(fù)位操作期間以及復(fù)位后執(zhí)行系統(tǒng)初始化命令時,系統(tǒng)處于非正常工作狀態(tài),但時間不長,在許多應(yīng)用系統(tǒng),如各種監(jiān)控設(shè)備中是允許的。 由于在掉電模式下,

30、系統(tǒng)時鐘停止輸出,因此WDT計數(shù)器也停止計數(shù),不會產(chǎn)生匹配。對于采用增強(qiáng)型MCS-51內(nèi)核芯片來說,硬件復(fù)位或外中斷均能使CPU退出掉電狀態(tài)。當(dāng)通過復(fù)位方式退出掉電狀態(tài)時,無須考慮WDT溢出,原因是復(fù)位后WDT也被復(fù)位。但對于通過外中斷退出掉電狀態(tài)來說,必須保證退出掉電狀態(tài)后的幾個機(jī)器周期內(nèi)WDT不會溢出,而觸發(fā)CPU復(fù)位。為此,可在進(jìn)入掉電狀態(tài)前和掉電中斷服務(wù)程序中執(zhí)行上述兩條指令,強(qiáng)迫WDT復(fù)位并重新計數(shù),這樣至少要經(jīng)過16 384個機(jī)器周期后,WDT才溢出,以便CPU有足夠時間執(zhí)行掉電中斷服務(wù)程序。 如:MOV WDTRST, #1EH; 寫入立即數(shù)1EHMOV WDTRST, #0E1

31、H; 寫入立即數(shù)0E1H,強(qiáng)迫WDT重新計數(shù) ORL PCON, #02H; 使PCON寄存器的PD位為1,強(qiáng)迫機(jī)器進(jìn)入掉電狀態(tài) 由于在節(jié)電狀態(tài)下,系統(tǒng)時鐘電路仍在工作,即WDT計數(shù)器仍在計數(shù),為防止WDT溢出復(fù)位CPU,在進(jìn)入節(jié)電模式前除了執(zhí)行寫WDTRST寄存器外,還需啟動一個定時器(定時時間小于16 384個機(jī)器周期),在定時器中斷服務(wù)程序中執(zhí)行寫WDTRST寄存器命令,使WDT計數(shù)器復(fù)位,然后再進(jìn)入節(jié)電狀態(tài),例如: MOV WDTRST, #1EH; 寫入立即數(shù)1EHMOV WDTRST, #0E1H; 寫入立即數(shù)0E1H,強(qiáng)迫WDT重新計數(shù)MOV A,TMODORL A, #01H;

32、 這里用定時器T0作為節(jié)電狀態(tài)下重寫WDTRST寄存器的定時器,; 工作在方式1,軟件啟動 MOV TLO, #80HMOV THO, #0C1H; 假設(shè)晶振頻率為12 MHz,在12時鐘模式下,為保險起見將定時器; T0溢出時間設(shè)為16.0 ms,因此對應(yīng)的初值為0C180HSETB ET0; 允許定時器T0中斷SETB EA; 開中斷SETB TR0; 啟動定時器T0ORL PCON, #01H; 將PCON寄存器IDL位置1,使CPU進(jìn)入節(jié)電狀態(tài)定時器T0中斷服務(wù)程序: TIME0:PUSH PSWMOV TLO, #80HMOV THO, #0C1H; 重裝初值MOV WDTRST,

33、#1EH; 寫入立即數(shù)1EHMOV WDTRST, #0E1H; 寫入立即數(shù)0E1H,強(qiáng)迫WDT復(fù)位并重新計數(shù)ORL PCON, #01H; 將PCON寄存器IDL位置1,使CPU再進(jìn)入節(jié)電狀態(tài)POP PSW RETI 但必須在其他中斷服務(wù)程序中關(guān)閉節(jié)電重寫WDTRST寄存器的定時器T0,避免正常運行狀態(tài)下響應(yīng)T0中斷造成WDT失效。 有時16 384個機(jī)器周期顯得太短,為此Atmel公司的T89C51RX系列、TS87C51RX系列芯片硬件看門狗電路增加了看門狗計數(shù)長度選擇寄存器WDTPRG,使WDT計數(shù)器長度最大為21位,經(jīng)過221,即2097152個機(jī)器周期后才溢出。 表5-5 WDTP

34、RG寄存器各位含義(字節(jié)地址為0A7H ,復(fù)位后初 值為XXXXX000B) -S2S1S0WDT計數(shù)器長度為14位,溢出時間為16384機(jī)器周期000WDT計數(shù)器長度為15位,溢出時間為32768機(jī)器周期001WDT計數(shù)器長度為16位,溢出時間為65536機(jī)器周期010WDT計數(shù)器長度為17位,溢出時間為131072機(jī)器周期011WDT計數(shù)器長度為18位,溢出時間為262144機(jī)器周期100WDT計數(shù)器長度為19位,溢出時間為524288機(jī)器周期101WDT計數(shù)器長度為20位,溢出時間為1048576機(jī)器周期110WDT計數(shù)器長度為21位,溢出時間為2097152機(jī)器周期1115.7 P89C6XX2 系列 2002年4月,Philips公司推出了P89C6XX2系列芯片,該系列芯片實際上是P89C51RX芯片的簡化版,功能介于P89C5XX2系列和P89C51RX系列之間。與P89C51RX系列相比,最大特征是去掉了PCA模塊和硬件看門狗(

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論