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