|
EM78X56單片機(jī)除了正常工作狀態(tài)外,還有一種休眠狀態(tài)(或為掉電模式)。通過執(zhí)行“SLEP”指令,即可進(jìn)入休眠模式。單片機(jī)的休眠模式可被下列情況喚醒: ①由RESET產(chǎn)生的復(fù)位信號 ②WDT超時溢出復(fù)位(若WDT啟動) ③Port6輸入變化(若使能Port6變化中斷) 前兩種情況會產(chǎn)生單片機(jī)復(fù)位,狀態(tài)寄存器R3的P和T標(biāo)志可以用來判別是何種復(fù)位喚醒。第三種情況要考慮總的中斷開啟與否(執(zhí)行ENI或DISI指令)決定單片機(jī)在喚醒之后是否跳到中斷向量,若在執(zhí)行“SLEP”指令之前: a.若開中斷(ENI),則喚醒后程序跳到中斷向量OO8H位置 b.若關(guān)中斷(DISI)則喚醒后程序從“SLEP”指令的下一條指令執(zhí)行。 同時進(jìn)入休眠模式之前,只有②③兩種之一可由軟件使能。如果: (a)Port6輸入變化中斷在“SLEP”指令之前使能,則WDT必須關(guān)閉。因此單片機(jī)只能在①③情況下喚醒 (b)WDT在“SLEP”指令之前使能,Port6輸入變化中斷必須關(guān)閉,因此單片機(jī)只能在①或②的情況下喚醒。 在上述a種情況下,用Port6輸入變化中斷來喚醒單片機(jī),則下述指令必須在“SLEP”之前執(zhí)行: MOV A , XX000110b ;選擇內(nèi)部TCC時鐘 CONTW CLR R1 ;清除TCC和預(yù)分頻器 MOV A, XXXX1110b ;選擇WDT預(yù)分頻系數(shù) CONTW WDTC ;清WDT MOV A,OXXXXXXXb ;關(guān)WDT IOW RE MOV R6,R6 ;讀取Port6 MOV A,00000X1Xb ;使能Port6輸入中斷 IOW RF ENT (或 DISI) ;使能(或關(guān)閉)總中斷 SLEP NOP ; 在使能Port6輸入變化中斷之前,必須先讀取Port6(MOVR6,R6),因為輸入的變化是通過目前的輸入和原來R6中的內(nèi)容比較而得出(如上例)。Port6除了被設(shè)為輸出狀態(tài)的引腳外,都有因電平改變而中斷的特性。 特別注意:從休眠模式喚醒后,WDT將被使能,因此,喚醒后的WDT工作情況要重新設(shè)定。
圖2.16 port6輸入中斷與喚醒電路圖 EM78X56系列有下列三種下降沿觸發(fā)的硬件中斷 ①TCC定時器溢出中斷 ②Port6輸入變化中斷 ③外部中斷(P60/INT引腳) 中斷的控制通過中斷屏蔽寄存器IOC、總中斷開啟指令ENI和關(guān)閉指令DISI來控制。當(dāng)有中斷產(chǎn)生時,程序指針將指向中斷向量地址008H,并將當(dāng)前PC壓棧,進(jìn)入中斷服務(wù)程序,可由RF寄存器來查詢是何中斷源,在離開中斷服務(wù)程序及使能中斷之前,必須清除RF中的中斷標(biāo)志位以免重復(fù)中斷。同時,中斷服務(wù)程序中應(yīng)保護(hù)原程序的環(huán)境(如:A內(nèi)容、標(biāo)志位等),返回中斷時也應(yīng)恢復(fù)原環(huán)境的內(nèi)容,并開啟中斷。 除了RF的ICIF位外,RF中的其它位當(dāng)有中斷時標(biāo)志位都置“1”,而不管中斷屏蔽寄存器IOCF中相關(guān)的屏蔽位狀態(tài)和ENI指令是否執(zhí)行。注意:讀RF結(jié)果是RF與IOCF相與的結(jié)果。如圖2.17所示,為中斷產(chǎn)生電路!癛ETI”指令是從中斷返回并開中斷(等于執(zhí)行ENI指令)
圖2.17 中斷產(chǎn)生電路 執(zhí)行“INT”指令,將產(chǎn)生一個軟中斷,其中斷向量為001H(地址002H~007H預(yù)留,必須為NOP)如下: ORG 0OOH JMP RESET ;復(fù)位地址(000H) JMP INT1 ;軟中斷入口地址(001H) NOP NOP NOP NOP NOP NOP JMP INT2硬件中斷入口地址(008H) EM78X56可以工作在RC振蕩、晶振低頻、晶振高頻下,通過寄存器CODE OPTION中的(MS、HLF、HLP)來選擇: 1.MS=0、HLF=0為RC振蕩形式,振蕩頻率內(nèi)外按Rext、Cext值所確定,它屬于低成本、但頻率精度要求不高的場合適用,RC振蕩電路和RC對應(yīng)值如下圖2.18所示。 圖2.18 RC振蕩電路
Cext | Rext | AverageFosc@5V,25℃ | Average Fosc@3V,25℃ | 20pF | 3.3k 5.1k 10k 100k | 3.20MHz 2.22MHz 1.28MHz 150KHz | 2.47MHz 1.83MHz 1.14MHz 143KHz | 100pF | 3.3k 5.1k 10k 100k | 1.13MHz 758KHz 409KHz 51KHz | 974KHz 675KHz 376KHz 43.7KHz | 300pF | 3.3k 5.1k 10k 100k | 472KHz 310KHz 165KHz 17.5KHz | 420KHz 283KHz 153KHz 17.0KHz |
表2.8 RC振蕩電路中R、選值參考表 2.MS=1、HLF=0、HLP=0為低頻晶振方式,這種方式振蕩器處于低頻,低電壓工作條件下,最大頻率不超過4MHZ,單片機(jī)工件在低功能下。 3.MS=1,HLF=1,HLP=1為高頻晶振方式,振蕩器處在高速工作條件下,所以最小振蕩頻率不小于1MHZ,在這種模式下,功耗將大于低頻振蕩方式。 圖2.19 為晶振振蕩電路.

圖2.19 晶振振蕩電路圖 晶振和陶瓷諧振器匹配的電容選值表如下: Oscillator Type | Frequecy Mode | Frequency | C1(pF) | C2(pF) | Ceramic Resonators | HXT | 455kHz | 10~150 | 100~150 | 2.0MHz | 20~40 | 20~40 | 4.0MHz | 10~30 | 10~30 | Crystal Oscillator | LXT | 32.768kHz | 25 | 15 | 100KHz | 25 | 25 | 200KHz | 25 | 25 | 455KHz | 20~40 | 20~150 | HXT | 1.0MHz | 15~30 | 15~30 | 2.0MHz | 15 | 15 | 4.0MHz | 15 | 15 |
表2.9 晶振容電路電容選值參考表 晶振典型工作速度列表如下: Conditions | VDD(V) | Fxt max.(M) | One cycles with two clocks | 2.5 | 3.58 | 3 | 4 | 5 | 12 | 6.5 | 17 | Two cycles with two clocks | 2.5 | 3.84 | 3 | 5 | 5 | 15 | 6 | 17 | One cycles with four clocks | 2.5 | 8 | 3 | 10 | 5 | 28 | 6 | 33 | Two cycles with four clocks | 2.5 | 9 | 3 | 11 | 5 | 31 | 6 | 36 |
注:X cycles:一個指令的周期數(shù)(專指(CALL、RET等) X clocks:一個指令周期的振蕩周期數(shù) EM78X56的結(jié)構(gòu)寄存器,并非一般的程序存貯器,它是不可存取,MASK版EM78X56只能是在掩膜時寫入,對EM78P156 OTP型則可通過燒入器寫入。它用來設(shè)定單片機(jī)的一些功能。 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | — | — | — | HLF | MS | /POVD | CLKS | CYES |
Bit0(0(CYES):特殊指令(如:JMP、CALL、RET、RETL等,參看指令部分)的指令周期選擇 0:一個指令周期 1:二個指令周期 Bit1(CLKS):指令周期時鐘選擇 0:二個振蕩時鐘為一個指令周期 1:四個振蕩時鐘為一個指令周期 Bit2(POVD):啟動電壓檢測器(注:使能電壓檢測器時將額外產(chǎn)生15μA功耗) 0:使能 1:關(guān)閉 Bit3(MS):振蕩器形式選擇 0:RC型 1:XTAL(晶振或陶瓷諧振器) Bit4(HLF):XTAL頻率選擇 0:低頻(32.768KHZ) 1:高頻 只有當(dāng)MS=1時此位方才有作用,當(dāng)MS=0,HLF必須為“0” Bit5~7 未使用,須設(shè)為0 1結(jié)構(gòu)選擇寄存器 12 | 11 | 10 | 9 | 8 | 7 | 6~0 | MS | ENWDTB | CLKS | CYES | HLF | HLP | —— |
Bit12(MS):振蕩器形式選擇 0:RC型 1:XTAL型 Bit11(ENWDTB):看門狗使能 0:使能 WDT 1:關(guān)閉WDT Bit10(CLKS):一個指令周期的振蕩時鐘數(shù) 0:2個振蕩時鐘 1:4個振蕩時鐘 Bit9(CYES):特殊指令的指令周期數(shù) 0:一個指令周期 1:二個指令周期 Bit8(HLP):XTAL頻率選擇 0:低頻(32.768KHZ)1:高頻 只有在MS=1時,此位才有用,當(dāng)MS=0時HLF必須為“0”。 Bit7(HLP):功耗選擇 0:低功耗 1:高功耗 Bit6~0:未使用,缺省值為000001 以上OTP結(jié)構(gòu)位在OTP燒寫器軟件中設(shè)置并燒入 2:OTP型EM78156A/B程序加密位和用戶識別碼寄存器 Bit12(/PT):加密位 0:加密使能 1:不加密 Bit11~0:用戶識別碼 以上內(nèi)容都在OTP燒入器內(nèi)程序設(shè)定并燒入。
交流電氣特性 (TA=0℃~70℃, TDD=5.0V±5%,TSS=0V) 參數(shù) | 符號 | 條件 | 最小 | 典型 | 最大 | 單位 | InputCLK duty cycle | Dclk | | 45 | 50 | 55 | % | Instruction cycle time (CLKS=“0”) | Tins | XTAL Type | 125 | | DC | ns | RC Type | 500 | | DC | ns | TCC input period | Ttcc | Note 1 | (Tins+20)/N | | | ns | Device reset hold time | Tdr | | | 18 | | ns | Watchdog timer period | Twdt | | | 18 | | ns | Input pin setup time | Tset | | | 0 | | ns | Input pin hold time | Thold | | | 20 | | ns | Output pin delay time | Tdelay | | | 50 | | ns |
注意:N=預(yù)分頻系數(shù)
|