|
EM78X56單片機除了正常工作狀態外,還有一種休眠狀態(或為掉電模式)。通過執行“SLEP”指令,即可進入休眠模式。單片機的休眠模式可被下列情況喚醒: ①由RESET產生的復位信號 ②WDT超時溢出復位(若WDT啟動) ③Port6輸入變化(若使能Port6變化中斷) 前兩種情況會產生單片機復位,狀態寄存器R3的P和T標志可以用來判別是何種復位喚醒。第三種情況要考慮總的中斷開啟與否(執行ENI或DISI指令)決定單片機在喚醒之后是否跳到中斷向量,若在執行“SLEP”指令之前: a.若開中斷(ENI),則喚醒后程序跳到中斷向量OO8H位置 b.若關中斷(DISI)則喚醒后程序從“SLEP”指令的下一條指令執行。 同時進入休眠模式之前,只有②③兩種之一可由軟件使能。如果: (a)Port6輸入變化中斷在“SLEP”指令之前使能,則WDT必須關閉。因此單片機只能在①③情況下喚醒 (b)WDT在“SLEP”指令之前使能,Port6輸入變化中斷必須關閉,因此單片機只能在①或②的情況下喚醒。 在上述a種情況下,用Port6輸入變化中斷來喚醒單片機,則下述指令必須在“SLEP”之前執行: MOV A , XX000110b ;選擇內部TCC時鐘 CONTW CLR R1 ;清除TCC和預分頻器 MOV A, XXXX1110b ;選擇WDT預分頻系數 CONTW WDTC ;清WDT MOV A,OXXXXXXXb ;關WDT IOW RE MOV R6,R6 ;讀取Port6 MOV A,00000X1Xb ;使能Port6輸入中斷 IOW RF ENT (或 DISI) ;使能(或關閉)總中斷 SLEP NOP ; 在使能Port6輸入變化中斷之前,必須先讀取Port6(MOVR6,R6),因為輸入的變化是通過目前的輸入和原來R6中的內容比較而得出(如上例)。Port6除了被設為輸出狀態的引腳外,都有因電平改變而中斷的特性。 特別注意:從休眠模式喚醒后,WDT將被使能,因此,喚醒后的WDT工作情況要重新設定。
圖2.16 port6輸入中斷與喚醒電路圖 EM78X56系列有下列三種下降沿觸發的硬件中斷 ①TCC定時器溢出中斷 ②Port6輸入變化中斷 ③外部中斷(P60/INT引腳) 中斷的控制通過中斷屏蔽寄存器IOC、總中斷開啟指令ENI和關閉指令DISI來控制。當有中斷產生時,程序指針將指向中斷向量地址008H,并將當前PC壓棧,進入中斷服務程序,可由RF寄存器來查詢是何中斷源,在離開中斷服務程序及使能中斷之前,必須清除RF中的中斷標志位以免重復中斷。同時,中斷服務程序中應保護原程序的環境(如:A內容、標志位等),返回中斷時也應恢復原環境的內容,并開啟中斷。 除了RF的ICIF位外,RF中的其它位當有中斷時標志位都置“1”,而不管中斷屏蔽寄存器IOCF中相關的屏蔽位狀態和ENI指令是否執行。注意:讀RF結果是RF與IOCF相與的結果。如圖2.17所示,為中斷產生電路。“RETI”指令是從中斷返回并開中斷(等于執行ENI指令)
圖2.17 中斷產生電路 執行“INT”指令,將產生一個軟中斷,其中斷向量為001H(地址002H~007H預留,必須為NOP)如下: ORG 0OOH JMP RESET ;復位地址(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振蕩形式,振蕩頻率內外按Rext、Cext值所確定,它屬于低成本、但頻率精度要求不高的場合適用,RC振蕩電路和RC對應值如下圖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,單片機工件在低功能下。 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:一個指令的周期數(專指(CALL、RET等) X clocks:一個指令周期的振蕩周期數 EM78X56的結構寄存器,并非一般的程序存貯器,它是不可存取,MASK版EM78X56只能是在掩膜時寫入,對EM78P156 OTP型則可通過燒入器寫入。它用來設定單片機的一些功能。 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):啟動電壓檢測器(注:使能電壓檢測器時將額外產生15μA功耗) 0:使能 1:關閉 Bit3(MS):振蕩器形式選擇 0:RC型 1:XTAL(晶振或陶瓷諧振器) Bit4(HLF):XTAL頻率選擇 0:低頻(32.768KHZ) 1:高頻 只有當MS=1時此位方才有作用,當MS=0,HLF必須為“0” Bit5~7 未使用,須設為0 1結構選擇寄存器 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:關閉WDT Bit10(CLKS):一個指令周期的振蕩時鐘數 0:2個振蕩時鐘 1:4個振蕩時鐘 Bit9(CYES):特殊指令的指令周期數 0:一個指令周期 1:二個指令周期 Bit8(HLP):XTAL頻率選擇 0:低頻(32.768KHZ)1:高頻 只有在MS=1時,此位才有用,當MS=0時HLF必須為“0”。 Bit7(HLP):功耗選擇 0:低功耗 1:高功耗 Bit6~0:未使用,缺省值為000001 以上OTP結構位在OTP燒寫器軟件中設置并燒入 2:OTP型EM78156A/B程序加密位和用戶識別碼寄存器 Bit12(/PT):加密位 0:加密使能 1:不加密 Bit11~0:用戶識別碼 以上內容都在OTP燒入器內程序設定并燒入。
交流電氣特性 (TA=0℃~70℃, TDD=5.0V±5%,TSS=0V) 參數 | 符號 | 條件 | 最小 | 典型 | 最大 | 單位 | 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=預分頻系數
|