2.9. 休眠状态和唤醒
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输入中断与唤醒电路图
2.10 中断功能
2.10.1. 硬件中断
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 中断产生电路
2.10.2. 软件中断
执行“INT”指令,将产生一个软中断,其中断向量为001H(地址002H~007H预留,必须为NOP)如下:
ORG 0OOH
JMP RESET ;复位地址(000H)
JMP INT1 ;软中断入口地址(001H)
NOP
NOP
NOP
NOP
NOP
NOP
JMP INT2硬件中断入口地址(008H)
2.11. 振荡器
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:一个指令周期的振荡周期数
2.12. 结构选择寄存器(CODE OPTION)
EM78X56的结构寄存器,并非一般的程序存贮器,它是不可存取,MASK版EM78X56只能是在掩膜时写入,对EM78P156 OTP型则可通过烧入器写入。它用来设定单片机的一些功能。
2.12.1. EM78156/256/456(MASK版)结构寄存器
|
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
2.12.2. EM78P156A/B(OTP型)结构选择寄存器
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程序加密位和用户识别码寄存器
|
12 |
11~0 |
|
/PT |
— — — |
Bit12(/PT):加密位
0:加密使能 1:不加密
Bit11~0:用户识别码
以上内容都在OTP烧入器内程序设定并烧入。
2.13. EM78X56单片机电气特性
交流电气特性 (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=预分频系数
