| 
 
 
|   AT89C55WD有具有PLCC、PDIP和TQFP三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。  |  
 |  
| 1. 主要功能特性:  |   
| · 兼容MCS51指令系統(tǒng)  | 
· 20k可反復(fù)擦寫(>1000次)Flash ROM  |  
| · 32個雙向I/O口  | 
· 256x8 bit 內(nèi)部RAM  |  
| · 3個16位可編程定時/計數(shù)器中斷  | 
· 時鐘頻率0-33MHz  |  
| · 2個串行中斷  | 
· 硬件看門狗(WDT)  |  
| · 2個外部中斷源  | 
· 可編程串行通道  |  
| · 2個讀寫中斷口線  | 
· 3級加密位  |  
| · 片內(nèi)時鐘電路  | 
· 低功耗睡眠功能  |  
| 
 · 4-5.5V工作電壓范圍   | 
 · 軟件設(shè)置睡眠外中斷喚醒功能   |   
2. 看門狗定時器( WDT): 
  WDTRST的地址為: 0A6H    WDT 在 CPU 落入軟件運行失控的情況下可作為一種恢復(fù)的方法。 WDT 包含一個 13 位計數(shù)器和看門狗 定時器復(fù)位 SFR ( WDTRST )。 WDT 在上電時被禁止。若想使能 WDT , 用戶必須將 01EH 和 0E1H 依次寫入 WDTRST 地址( 0A6H )。 當 WDT 使能后,在振蕩器運行的情況下每過一個機器周期加 1 。 此后無法禁止 WDT , 除非通過復(fù)位(硬件復(fù)位或者 WDT 溢出復(fù)位)。當 WDT 溢出時它會在 RST 腳產(chǎn)生一個復(fù)位脈沖。  
使用 WDT    要使能 WDT , 用戶必須將 01EH 和 0E1H 依次寫入 WDTRST 。 當 WDT 使能后,用戶需要定期將 01EH 和 0E1H 依次寫入 WDTRST 以避免 WDT 。 溢出 13 位計數(shù)器在到達 8191 ( 1FFFH ) 后溢出并將芯片復(fù)位。 當 WDT 使能后,在振蕩器運行的情況下每過一個機器周期加 1 。 這意味著用戶必須在 8191 個機器周期內(nèi) 至少復(fù)位 WDT 一次。要想復(fù)位 WDT , 用戶必須將 01EH 和 0E1H 依次寫入 WDTRST 。 WDTRST 是一個 只寫寄存器。復(fù)位脈沖持續(xù) 98 × Tosc ( 6 時鐘模式)( 12 時鐘模式下為 196 ) 此處 Tosc=1/fosc 。  
下面給出一個例程:    將看門狗定時器放在T1中,每中斷一次,需50ms,當計數(shù)器,計滿1秒給R19加1。當主程序或子程序在10秒之內(nèi)還未對R19清0,說明程序可能“跑飛”,這看門狗使能,將AT89C55WD復(fù)位,從地址0000H處開始執(zhí)行。 
 R19 DATA 13H    ;  R23 DATA 17H    ;ms計數(shù)器  
T1int:                 ;定時(計時)器        MOV TH1, #4CH        MOV TL1, #00H    ;計滿重裝初值(約50ms)        INC R23          ;(20次*50ms)=1000ms=1s        MOV A,R23        CJNE A,#20,T1int_01 ;計滿1s向下        INC R19             ;用于看門狗定時        MOV A,R19        CLR C        SUBB A,#10        JC T1int_01    ;10秒到向下,復(fù)位        CLR EA        MOV WDTRST,#01EH ;WDT使能,13bit        MOV WDTRST,#0E1H ;TOSC=1/FOSC.        JMP $  T1int_01: RETI  
3.輔助功能寄存器 AUXR(08EH): 
  SRF 的地址 8EH  復(fù)位值 XXX00XX0B  
 
| 
 bit   | 
| 
 -   | 
 -   | 
 -   | 
 WDIDLE   | 
 DISRTO   | 
 -   | 
 -   | 
 DISALE   | 
 
| 
 7   | 
 6   | 
 5   | 
 4   | 
 3   | 
 2   | 
 1   | 
 0   |    |   
4.輔助功能寄存器1 AUXR1(0A2H): 
  SFR 的地址A2H  復(fù)位值xxxxxxx0B  
 
| 
 bit   | 
| 
 -   | 
 -   | 
 -   | 
 -   | 
 -   | 
 -   | 
 -   | 
 DPS   | 
 
| 
 7   | 
 6   | 
 5   | 
 4   | 
 3   | 
 2   | 
 1   | 
 0   |    |   
雙數(shù)據(jù)指針 DPTR 結(jié)構(gòu):    雙DPTR數(shù)據(jù)指針,通過對AUXR1 的DPS 位編程可實現(xiàn)兩個DPTR 寄存器的切換。    此處,DPS 為AUXR1 的位0,用于切換指針DPTR0 和DPTR1。 
  選擇數(shù)據(jù)指針:    DPS=0,選取DP0L,DPOH,即選擇DPTR0,如 (MOV AUXR1,#00H);    DPS=1,選取DP1L,DP1H,即選擇DPTR1,如 (MOV AUXR1,#01H)。    當切換DPTR0 和DPTR1 時應(yīng)當通過軟件來保存DPS。  
DPTR 指令      DPTR 指令根據(jù)當前AUXR1 位0的值,可作為數(shù)據(jù)指針,下面是使用DPTR 的6 個指令 :   INC DPTR         ;數(shù)據(jù)指針加1    MOV DPTR,#data16 ;DPTR 裝載16 位常數(shù)     MOV A,@A+DPTR    ;將與DPTR 相關(guān)的代碼字節(jié)送入ACC    MOVX A,@DPTR     ;外部RAM 16 位地址的內(nèi)容裝入ACC    MOVX @DPTR,A     ;把ACC 的內(nèi)容送到外部RAM 16 位地址    JMP @A+DPTR      ;間接跳轉(zhuǎn)到與DPTR 相關(guān)的地址  可以通過尋址SFR 的低字節(jié)或高字節(jié)來尋址數(shù)據(jù)指針。   |