AT89C55WD 是一個低電壓,高性能CMOS 8 位單片機,片內(nèi)含有20KB的可重寫快速閃存存儲器和只讀程序和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),引腳兼容工業(yè)標準89C51和89C52芯片,采用通用編程方式,片內(nèi)置通用8位中央處理器和Flash存儲單元,內(nèi)置功能強大的微處理器的AT89C52可為您提供許多高性價比的解決方案,適用于多數(shù)嵌入式應用系統(tǒng)。 AT89C55WD有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,片內(nèi)時鐘電路,AT89C55WD采用兩種軟件控制其進入省電睡眠模式的靜態(tài)邏輯工作閑置方式設計,可以用RAM、定時/計數(shù)器、串行口和外部中斷喚醒睡眠狀態(tài)而繼續(xù)工作,在睡眠模式下,RAM被凍結(jié),其他功能全部停止,直至下個外中斷觸發(fā)或硬件復位方可開始運行。特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。 AT89C55WD有具有PLCC、PDIP和TQFP三種封裝形式,以適應不同產(chǎn)品的需求。 1. 主要功能特性: · 兼容MCS51指令系統(tǒng) · 20k可反復擦寫(>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工作電壓范圍 · 軟件設置睡眠外中斷喚醒功能 2. 看門狗定時器( WDT): WDTRST的地址為: 0A6H WDT 在 CPU 落入軟件運行失控的情況下可作為一種恢復的方法。 WDT 包含一個 13 位計數(shù)器和看門狗 定時器復位 SFR ( WDTRST )。 WDT 在上電時被禁止。若想使能 WDT , 用戶必須將 01EH 和 0E1H 依次寫入 WDTRST 地址( 0A6H )。 當 WDT 使能后,在振蕩器運行的情況下每過一個機器周期加 1 。 此后無法禁止 WDT , 除非通過復位(硬件復位或者 WDT 溢出復位)。當 WDT 溢出時它會在 RST 腳產(chǎn)生一個復位脈沖。 使用 WDT 要使能 WDT , 用戶必須將 01EH 和 0E1H 依次寫入 WDTRST 。 當 WDT 使能后,用戶需要定期將 01EH 和 0E1H 依次寫入 WDTRST 以避免 WDT 。 溢出 13 位計數(shù)器在到達 8191 ( 1FFFH ) 后溢出并將芯片復位。 當 WDT 使能后,在振蕩器運行的情況下每過一個機器周期加 1 。 這意味著用戶必須在 8191 個機器周期內(nèi) 至少復位 WDT 一次。要想復位 WDT , 用戶必須將 01EH 和 0E1H 依次寫入 WDTRST 。 WDTRST 是一個 只寫寄存器。復位脈沖持續(xù) 98 × Tosc ( 6 時鐘模式)( 12 時鐘模式下為 196 ) 此處 Tosc=1/fosc 。 下面給出一個例程: 將看門狗定時器放在T1中,每中斷一次,需50ms,當計數(shù)器,計滿1秒給R19加1。當主程序或子程序在10秒之內(nèi)還未對R19清0,說明程序可能“跑飛”,這看門狗使能,將AT89C55WD復位,從地址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秒到向下,復位 CLR EA MOV WDTRST,#01EH ;WDT使能,13bit MOV WDTRST,#0E1H ;TOSC=1/FOSC. JMP $ T1int_01: RETI 3.輔助功能寄存器 AUXR(08EH): SRF 的地址 8EH 復位值 XXX00XX0B bit WDIDLE DISRTO DISALE 7 6 5 4 3 2 1 0 4.輔助功能寄存器1 AUXR1(0A2H): SFR 的地址A2H 復位值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 時應當通過軟件來保存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ù)指針。 AT89C55WD其它寄存器功能與設置和AT89C52相同。 |