|
EM78內(nèi)置8位定時/計數(shù)器TCC和看門狗定時器、如下圖2.5所示:
 圖2.5 TCC和WDT功能框圖 TCC的時鐘可以是內(nèi)部指令周期時鐘CLK(Fosc/2或Fosc/4)或通過TCC腳輸入的外部脈沖,其計數(shù)采用遞增方式,從O0開始計,當(dāng)不使用預(yù)分頻器時,每隔一個指令周期或者有一個外部脈沖時TCC會加1(TCC響應(yīng)延時時間為2個機器周期),當(dāng)TCC計數(shù)至FFH(16進制)時,在下一個計數(shù)發(fā)生時,將自動清零,并置TCC計數(shù)器溢出中斷位TCIF如此往復(fù)。當(dāng)TCC使用預(yù)分頻器時,則外部或內(nèi)部信號經(jīng)過預(yù)分頻器分頻后再輸出給TCC。 Tcc 輸入波形圖(CLKS=”0”)(見圖2.7)
 圖2.6 TCC輸入信號波形圖 TCC和預(yù)分頻器的控制主要由控制寄存器CONT(Bit0~5)來完成,預(yù)分頻器的分頻系數(shù)由PSR0~PSR2決定;預(yù)分頻器是分配給TCC或WDT使用可由PAB位來決定,同一時間預(yù)分頻器只能給TCC或WDT其中之一使用。 注意二點; (1)預(yù)分頻器分配給TCC使用時(PAB=0),所有寫入TCC的指令都將清除預(yù)分頻器 (2)當(dāng)預(yù)分頻器分配給WDT使用時(PAB=1),WDT和預(yù)分頻器可被WDTC和SLEP指令清零。 看門狗定時器WDT是一片內(nèi)自振蕩式RC振蕩器,即使外部振蕩器被關(guān)閉(即工作在休眠模式),WDT也一直在計數(shù)。當(dāng)WDT被使能,無論是在工作模式或休眠模式,若WDT超時,都將導(dǎo)致單片機復(fù)位,因此WDT主要用來防止單片機系統(tǒng)失控,一般WDT基本溢出周期約18ms(PAB=“0”),最大溢出周期約2.3S(PAB=“1”)。在正常情況下,當(dāng)WDT溢出之前,須通過WDTC指令來對WDT清零以防產(chǎn)生復(fù)位。WDT的工作狀態(tài)由寄存器CONT中的PAB、PSR2~PSRO位,IOCE的WDTE位(IOCE.7)、OTP型EM78X56的結(jié)構(gòu)選擇寄存器ENWDTB位來控制(燒寫芯片時設(shè)定)。 EM78把I/O(口5、口6)作為一般工作寄存器R5、R6來操作,它們?yōu)殡p向、三態(tài)輸入/輸出口,可通過控制寄存器來設(shè)置以下功能,如表2.6所示: 功 能 | 控制寄存器 | I/O腳 | I/O輸入輸出方向 | IOC5、IOC6 | P50~P53、P60~P67 | 內(nèi)部上拉電阻 | IOCD | P60~P67 | 內(nèi)部下拉電阻 | IOCB | P50~P52、P60~P63 | 集電極開路 | IOCC | P60~P67 | /INT輸入口 | IOCE(EIS) | P60 | R-option | IOCE(ROC) | P50、P51 | 休眠狀態(tài)喚醒 | IOCF(ICIE) | P60~P67 |
表2.6、I/O控制功能分類表 I/O口Port5、Port6的接口電路圖如下所示:  圖2.7 I/O口電路和I/O控制寄存器 其中圖中:PCRD——口控制讀 PDRD——口數(shù)據(jù)讀 PCWR——口控制寫 PDWR——口數(shù)據(jù)寫 MUX ----多路選通器 R-option功能圖2.8 圖2.8 P60(INT)的I/O和控制寄存器
 圖2.9 P61~P67 I/O控制寄存器和I/O口電路 圖2.10 帶R-Option 功能的I/O口(P70、P71)電路
當(dāng)使用R-option功能時,往往地P0~51定義為輸出腳使用,這樣在讀取R-option功能時 先把P50、P51設(shè)為輸入并使能R-option功能,讀取后,再關(guān)閉R-option功能,并把P50、P51設(shè)回輸出,并不影響P50、P51的I/O使用。若外部電阻連接到P50(P51)作為R-option功能,將消耗一些電流,請?zhí)貏e注意。 EM78X56的復(fù)位由以下情況產(chǎn)生: ·電源上電復(fù)位或電壓檢測器復(fù)位(若有電壓檢測器) ·RESET腳輸入低電平 ·WDT溢出(當(dāng)WDT使用時) 當(dāng)單片機檢測到復(fù)位信號后會持續(xù)18ms的復(fù)位狀態(tài)。一旦復(fù)位產(chǎn)生,芯片將處于下列狀態(tài): ·振蕩器繼續(xù)動作或起動 ·程序計數(shù)器PC(R2)被清零,轉(zhuǎn)向復(fù)位地址000H ·所有I/O口腳均被設(shè)置為輸入模式(高阻態(tài)) ·看門狗定時器和預(yù)置分頻器被清零 ·當(dāng)上電時,狀態(tài)寄存器的高三位被清零(RAM選BANKO) ·除Bit6(INT中斷使能標(biāo)志位)外,CONT寄存器全設(shè)為“1” ·下拉控制寄存器IOCB全設(shè)為“1”(下拉功能禁止) ·集電極開路控寄存器IOCC全設(shè)為“0”(開路功能禁止) ·上拉控制寄存器IOCD全設(shè)為“1”(上拉功能禁止) ·WDT控制寄存器IOCE Bit7設(shè)為“1”,Bit1和Bit4設(shè)為“0”,即開WDT,置P60為I/O口,取消R-option功能 ·中斷標(biāo)志寄存器RF中的標(biāo)志位全部清零(Bit0~2) ·中斷屏幕寄存器IOCF的中斷屏幕位清零(Bit0~2) 寄存器初始化值匯總表如下: Address | Name | Reset Type | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | N/A | IOC5 | Bit Name | X | X | X | X | C53 | C52 | C51 | C50 | Power-On | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | /RESET and WDT | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | Wake-Up from Pin Change | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | N/A | IOC6 | Bit Name | C67 | C66 | C65 | C64 | C63 | C62 | C61 | C60 | Power-On | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | /PESET and WDT | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Wake-Up from pin Change | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0x05 | P5 | Bit Name | X | X | X | X | P53 | P52 | P51 | P50 | Power-On | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | /RESET and WDT | P | P | P | P | P | P | P | P | Wake-Up from Pin Change | P | P | P | P | P | P | P | P | 0x06 | P6 | Bit Name | P67 | P66 | P65 | P64 | P63 | P62 | P61 | P60 | Power-On | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | /RESET and WDT | P | P | P | P | P | P | P | P | Wake-Up from Pin Change | P | P | P | P | P | P | P | P | N/A | CONT | Bit Name | X | INT | TS | TE | PAB | PSR2 | PSR1 | PSR0 | Power-On | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | /RESET and WDT | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | Wake-Up from Pin Change | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0x00 | R0(IAR) | Bit Name | - | - | - | - | - | - | - | - | Power-On | U | U | U | U | U | U | U | U | /RESET and WDT | P | P | P | P | P | P | P | P | Wake-Up from Pin Change | P | P | P | P | P | P | P | P | 0x01 | R1(TCC) | Bit Name | - | - | - | - | - | - | - | - | Power~On | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | /RESET and WDT | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Wake-Up from Pin Change | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0x02 | R2(PC) | Bit Name | - | - | - | - | - | - | - | - | Power-On | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | /RESET and WDT | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Wake-Up from Pin Change | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0x03 | R3(SR) | Bit Name | GP | PS1 | PS0 | T | P | Z | DC | C | Power-On | 0 | 0 | 0 | 1 | 1 | U | U | U | /RESET and WDT | P | P | P | t | t | P | P | P | Wake-Up from Pin Change | P | P | P | t | t | P | P | P | 0x04 | R4(RSR) | Bit Name | X | X | - | - | - | - | - | - | Power-On | 0 | 0 | U | U | U | U | U | U | /RESET and WDT | 0 | 0 | P | P | P | P | P | P | Wake-Up from Pin Change | 0 | 0 | P | P | P | P | P | P | 0x05 | R5(P5) | Bit Name | X | X | X | X | P53 | P52 | P51 | P50 | Power-On | 0 | 0 | 0 | 0 | U | U | U | U | /RESET and WDT | 0 | 0 | 0 | 0 | P | P | P | P | Wake-Up from Pin Change | 0 | 0 | 0 | 0 | P | P | P | P | 0x0F | RF(ISR) | Bit Name | X | X | X | X | X | EXIF | ICIF | TCIF | Power-On | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | /RESET and WDT | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Wake-Up from Pin Change | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0x0B | IOCB | Bit Name | /PD7 | /PD6 | /PD5 | /PD4 | X | /PD2 | /PD1 | /PD0 | Power-On | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | /RESET and WDT | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Wake-Up from Pin Change | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0x0C | IOCC | Bit Name | OD7 | OD6 | OD5 | OD4 | OD3 | OD2 | OD1 | OD0 | Power-On | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | /RESET and WDT | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Wake-Up from Pin Change | P | P | P | P | P | P | P | P | 0x0D | IOCD | Bit Name | /PH7 | /PH6 | /PH4 | /PH3 | /PH3 | /PH2 | /PH1 | /PH0 | Power-On | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | /RESET and WDT | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Wake-Up from Pin Change | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0x0E | IOCE | Bit Name | WDTC | EIS | X | ROC | X | X | X | X | Power-On | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | /RESET and WDT | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | Wake-Up from Pin Change | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0x0F | IOCF | Bit Name | X | X | X | X | X | EXIE | ICEI | TCIE | Power-On | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | /RESET and WDT | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | Wake-Up from Pin Change | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0x10~0x3F | R10~R3F | Bit Name | - | - | - | - | - | - | - | - | Power-On | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | /RESET and WDT | P | P | P | P | P | P | P | P | Wake-Up from Pin Change | P | P | P | P | P | P | P | P |
X:未使用 U:未知 P:復(fù)位之前值 t:參見表2.4、2.5 表2.7 寄存器初始化值表 1.內(nèi)部上電復(fù)位電路 EM78X56系列內(nèi)置一上電復(fù)位電路POR(POWUER RESET)如圖2.11所示,上電后自動產(chǎn)生復(fù)位。 圖2.11 復(fù)位控制方框圖 所以一般情況下可不用在RESET端接復(fù)位電路,僅將Reset端接VDD即可
2.電壓檢測器 對EM78X56系列MASK版和EM78P156A型均內(nèi)置-2.2V電壓檢測器,分別為可選用式和固定式兩種,即對MASK版,可通過CODE OPTION的位/POVD來選擇使能或關(guān)閉,而OTP型EM78P156A型,則不能通過CODE OPTION來選擇,電壓檢測器功能已固化在內(nèi)(電壓檢測器有15μA電流消耗),EM78P156B型則沒有電壓檢測器功能。 電壓檢測器電氣特性如下表(TA=25℃) Parameter | Symbol | Condition | Min. | Typ. | Max. | Unit | Detect voltage | Vdet | VDD =5V | 2.0 | 2.2 | 2.4 | V | Release voltage | Vrel | VDD =5V | Vdet x1.05 | | | V | Current consumption | Iss | VDD =5V | | | 20 | μA | Operating voltage | Vop | | 0.7* | | 5.5 | V | Temperature Characteristic of Vdet | ΔVdet/ ΔTA | 0℃≤T≤70℃ | | | -2 | mv/℃ |
*當(dāng)VDD=0.7V~Vdet之間時,電壓檢測器輸出為低。 通常有下列幾種情況需要加外部復(fù)位中路。 1. 當(dāng)電源上升時間比較長時,通過RC電路來保證VDD達到最小工作電壓時RESET腳保持復(fù)位狀態(tài) 
圖2.12 外電源上電復(fù)位電位 其中器件功能及值選擇原則: ①R<40K(由于RESET吸入電流約50μA,為保證RESET端電壓不大于0.2V) ②二極管D將使電容C在VDD掉電時能快速徹底放電 ③R1取100~1K,為限流電阻,用來限制大的放電電流或靜電ESD對RESET的沖擊 2.殘存電壓保護電路(二種) 有些應(yīng)用中,例如供電電池在幾秒鐘內(nèi)松動后又恢復(fù),此時將可能會在復(fù)位腳出現(xiàn)一個小于Vdd最小值又不為0的殘存電壓,因而便復(fù)位不正常,以下兩種電路將解決此問題,

當(dāng)VDD掉至VZ+0.7V時單片機復(fù)位(VZ為穩(wěn)壓管穩(wěn)壓值) 圖2.13殘余電壓保護電路1 
當(dāng)VDD掉至下述值時三級管Q1 截止、單片機復(fù)位 VDD·  =0.7V , (R3為限流電阻,可選100K) 圖2.14殘余電壓保護電路2 單片機復(fù)位時序圖如圖2.15所示: 圖2.15 單片機復(fù)位時序圖 , (R3為限流電阻,可選100K) 圖2.14殘余電壓保護電路2 單片機復(fù)位時序圖如圖2.15所示: 圖2.15 單片機復(fù)位時序圖 |