emc.com.tw

EM78P345/6/7N
8-BIT
Microcontroller
Product
Specification
DOC. VERSION 1.0
ELAN MCCROELECTRONICS CORP.
August 2007
Trademark Acknowledgments:
IBM is a registered trademark and PS/2 is a trademark of IBM.
Windows is a trademark of Microsoft Corporation.
ELAN and ELAN logo
are trademarks of ELAN Microelectronics Corporation.
Copyright © 2005 by ELAN Microelectronics Corporation
All Rights Reserved
Printed in Taiwan
The contents of this specification are subject to change without further notice. ELAN Microelectronics assumes
no responsibility concerning the accuracy, adequacy, or completeness of this specification. ELAN
Microelectronics makes no commitment to update, or to keep current the information and material contained in
this specification. Such information and material may change to conform to each confirmed order.
In no event shall ELAN Microelectronics be made responsible for any claims attributed to errors, omissions, or
other inaccuracies in the information or material contained in this specification. ELAN Microelectronics shall not
be liable for direct, indirect, special incidental, or consequential damages arising from the use of such information
or material.
The software (if any) described in this specification is furnished under a license or nondisclosure agreement, and
may be used or copied only in accordance with the terms of such agreement.
ELAN Microelectronics products are not intended for use in life support appliances, devices, or systems. Use of
ELAN Microelectronics product in such applications is not supported and is prohibited.
NO PART OF THIS SPECIFICATION MAY BE REPRODUCED OR TRANSMITTED IN ANY FORM OR BY
ANY MEANS WITHOUT THE EXPRESSED WRITTEN PERMISSION OF ELAN MICROELECTRONICS.
ELAN MICROELECTRONICS CORPORATION
Headquarters:
Hong Kong:
USA:
No. 12, Innovation Road 1
Hsinchu Science Park
Hsinchu, Taiwan 30077
Tel: +886 3 563-9977
Fax: +886 3 563-9966
http://www.emc.com.tw
Elan (HK) Microelectronics
Corporation, Ltd.
Elan Information
Technology Group
Rm. 1005B, 10/F Empire Centre
68 Mody Road, Tsimshatsui
Kowloon , HONG KONG
Tel: +852 2723-3376
Fax: +852 2723-7780
[email protected]
1821 Saratoga Ave., Suite 250
Saratoga, CA 95070
USA
Tel: +1 408 366-8223
Fax: +1 408 366-8220
Shenzhen:
Shanghai:
Elan Microelectronics
Shenzhen, Ltd.
Elan Microelectronics
Shanghai Corporation, Ltd.
SSMEC Bldg., 3F, Gaoxin S. Ave.
Shenzhen Hi-Tech Industrial Park
Shenzhen, Guandong, CHINA
Tel: +86 755 2601-0565
Fax: +86 755 2601-0500
23/Bldg. #115 Lane 572, Bibo Road
Zhangjiang Hi-Tech Park
Shanghai, CHINA
Tel: +86 021 5080-3866
Fax: +86 021 5080-4600
Contents
Contents
1
2
3
4
5
6
概 述..............................................................................................................................1
功能特点........................................................................................................................1
2.1
CPU .................................................................................................................................................... 1
2.2
应 用 .................................................................................................................................................. 2
引脚分配........................................................................................................................2
功能框图........................................................................................................................3
引脚说明 .......................................................................................................................3
5.1
EM78P345NP/M ................................................................................................................................ 3
5.2
EM78P346NP/M/KM......................................................................................................................... 5
5.3
EM78P347NP/M/KM......................................................................................................................... 6
功能描述........................................................................................................................6
6.1
操作寄存器 ........................................................................................................................................ 6
6.1.1
R0(间接寻址寄存器) ...............................................................................................................................6
6.1.2
R1(时钟/记数器) .................................................................................................................................7
6.1.3
R2(程序计数器)和堆栈........................................................................................................................7
6.1.4
R3 (Status Register)....................................................................................................................................8
6.1.5
R4(RAM 存贮器选器存器)..................................................................................................................9
6.1.6
BANK0
6.1.7
BANK 0 R8(AOSR:ADC 输出选择寄存器).....................................................................................9
6.1.8
BANK0 R9(ADCON:A/D 控制寄存器)..........................................................................................10
6.1.9
BANK 0 A(ADOC: A/D 偏移量寄存器).................................................................................................11
6.1.10
BANK 0 RB(ADDATA:ADC 转换值)............................................................................................12
6.1.11
BANK 0 RC(ADDATA1H:ADC 转换值).......................................................................................12
6.1.12
BANK 0 RD(ADDATA1L:ADC 转换值) .......................................................................................12
6.1.13
BANK 0 RE(WUCR:唤醒控制寄存器) ..........................................................................................12
6.1.14
BANK 0 RF(中断状态寄存器) ..........................................................................................................13
6.1.15
Bank 1 R5 (PRDxH: PWM 1, 2, 3 高位寄存器)......................................................................................14
6.1.16
Bank 1 R6 (LVD 控制寄存器).................................................................................................................14
6.1.17
Bank 1 R7 (高灌电流控制寄存器)..........................................................................................................15
6.1.18
Bank 1 R8 (下拉控制寄存器) .................................................................................................................16
6.1.19
Bank 1 R9 (下拉控制寄存器) .................................................................................................................16
6.1.20
Bank 1 RA (漏极开路控制寄存器) .........................................................................................................16
6.1.21
Bank 1 RB (漏极开路控制寄存器) ........................................................................................................17
6.1.22
Bank 1 RC (上拉控制寄存器).................................................................................................................17
6.1.23
Bank 1 RD (Pull-high Control Register) ..................................................................................................18
6.1.24
Bank 1 RE (选择控制位, 只用于 ROMLESS) .....................................................................................18
R5~R7(Port5~Port7).........................................................................................................9
Product Specification (V1.0) 08.30.2007
• iii
Contents
6.1.25
6.2
R10 ~ R3F ................................................................................................................................................18
特殊功能寄存器 .............................................................................................................................. 19
6.2.1
A (累加器)................................................................................................................................................19
6.2.2
CONT (Control Register) .........................................................................................................................19
6.2.3
IOC50 ~ IOC70 (I/O 端口控制寄存器)...................................................................................................19
6.2.4
IOC80 (PWMCON: PWM 控制寄存器) ................................................................................................20
6.2.5
IOC90(TMRCON:定时器控制寄存器)...........................................................................................20
6.2.6
IOCA0 (CMPCON:比较器控制寄存器) .................................................................................................21
6.2.7
IOCB0 (下拉控制寄存器) .......................................................................................................................22
6.2.8
IOCC0 (漏极开路控制寄存器) ...............................................................................................................22
6.2.9
IOCD0 (上拉控制寄存器).......................................................................................................................22
6.2.10
IOCE0 (看门狗控制寄存器) ...................................................................................................................23
6.2.11
IOCF0 (中断屏蔽寄存器) .......................................................................................................................23
6.2.12
IOC51 (PRD1L: PWM1 周期的 (Bit 7 ~ Bit 0)低 8 位) ..........................................................................24
6.2.13
IOC61 (PRD2L: PWM2 周期的( Bit7~Bit0)低 8 位)..............................................................................24
6.2.14
IOC71 (PRD3L: PWM3 Time Period) .....................................................................................................25
6.2.15
IOC81 (DT1L: PWM1 占空比的低 8 位)................................................................................................25
6.2.16
IOC91 (DT2L: PWM2 占空比的低 8 位)................................................................................................25
6.2.17
IOCA1 (DT3L:PWM3 占空比的低 8 位)................................................................................................25
6.2.18
IOCB1 (DTH: PWM 占空比的高两位)...................................................................................................25
Bit 1 & Bit 0 (PWM1 [9], PWM1 [8]):
6.2.19
IOCC1 (TMR1L: PWM1 定时的低 8 位)................................................................................................25
6.2.20
IOCD1 (TMR2L: PWM2 定时的低 8 位)................................................................................................25
6.2.21
IOCE1 (TMR3L: PWM3 定时的低 8 位)................................................................................................25
6.2.22
IOCF1 (TMRH: PWM 定时的高两位)....................................................................................................25
6.3
TCC/WDT 和预分频器 ................................................................................................................... 26
6.4
I/O 端口 ............................................................................................................................................ 27
6.4.1
6.5
iv •
PWM1 占空比的 8,9 位.....................................................................25
Port6 输入变化唤醒/中断功能用法.......................................................................................................29
复位和唤醒 ...................................................................................................................................... 29
6.5.1
复位和唤醒功能 ......................................................................................................................................29
6.5.2
状态寄存器的 T、P 标志 ........................................................................................................................41
6.6
中断 .................................................................................................................................................. 42
6.7
A/D 转换器(ADC) ...................................................................................................................... 44
6.7.1
ADC 控制寄存器(AOSR/R8,ADCON/R9,ADOC/RA) ...............................................................44
6.7.2
ADC 资料寄存器(ADDATA/RB,ADDATA1H/RC, ADDATA1L/RD) ........................................47
6.7.3
A/D 采样时间 ..........................................................................................................................................47
6.7.4
A/D 转换时间 ..........................................................................................................................................47
6.7.5
休眠模式时的 AD 转换...........................................................................................................................48
6.7.6
编程步骤/事项 ........................................................................................................................................48
Product Specification (V1.0) 08.30.2007
Contents
6.8
双 PWM (脉宽调制) ......................................................................................................................... 50
6.8.1
概述..........................................................................................................................................................50
6.8.2
增量定时器/计数器(TMRX:RMR1H/TWR1L,TMR2H/TWR2L 或者 TMR3H/TWR3L) ........51
6.8.3
PWM 周期(PRDX:PRD1 或者 PRD2) ............................................................................................51
6.8.4
PWM 占空比( DTX: DT1H/ DT1L, DT2H/ DT2L 和 DT3H/ DT3L; DLX: DL1H/DL1L, DL2H/DL2L 和
DL3H/DL3L ) ..........................................................................................................................................................51
6.8.5
比较器 X..................................................................................................................................................52
6.8.6
PWM 编程步骤........................................................................................................................................52
6.9
定时器 .............................................................................................................................................. 52
6.9.1
概述..........................................................................................................................................................52
6.9.2
功能描述..................................................................................................................................................52
6.9.3
相关寄存器编程 ......................................................................................................................................53
6.9.4
定时器编程步骤 ......................................................................................................................................54
6.10 比较器 .............................................................................................................................................. 54
6.10.1
外部参考信号 ..........................................................................................................................................54
6.10.2
比较器输出..............................................................................................................................................55
6.10.3 作为运算放大器使用 ...................................................................................................................................55
6.10.4
比较器中断..............................................................................................................................................55
6.10.5
从睡眠模式下唤醒 ..................................................................................................................................55
6.11 振荡器 .............................................................................................................................................. 56
6.11.1
振荡模式..................................................................................................................................................56
6.11.2
晶体振荡器/陶瓷谐振器(XTAL) ......................................................................................................56
6.11.3
外部 RC 振荡模式 ...................................................................................................................................57
6.11.4
外部 RC 振荡模式 .....................................................................................................................................58
6.12 上电事项 .......................................................................................................................................... 59
6.12.1 外部上电复位电路 .......................................................................................................................................59
6.12.2
残存电压保护 ..........................................................................................................................................59
6.13 代码选项 .......................................................................................................................................... 60
6.13.1
代码选项寄存器 (Word 0).......................................................................................................................60
6.13.2
代码选项寄存器 (Word 1).......................................................................................................................61
6.13.3
代码选项和客户 ID 寄存器 (Word 2).......................................................................................................62
6.14 低电压检测 ...................................................................................................................................... 63
6.14.1
低电压复位..............................................................................................................................................63
6.14.2
低电压检测..............................................................................................................................................63
6.14.3
编程步骤..................................................................................................................................................64
6.15 指令系统 .......................................................................................................................................... 65
7
8
最大绝对偏移量..........................................................................................................67
直流电气特性..............................................................................................................67
8.1
AD 转换器特性 ............................................................................................................................... 69
Product Specification (V1.0) 08.30.2007
v
Contents
8.2
9
10
A
B
C
交流电气特性..............................................................................................................70
时序图..........................................................................................................................71
封装形式......................................................................................................................72
封装结构......................................................................................................................73
B.1
18-Lead Plastic Dual in line (PDIP) — 300 mil ............................................................................... 73
B.2
18-Lead Plastic Small Outline (SOP) — 300 mil ............................................................................. 74
B.3
20-Lead Plastic Dual in line (PDIP) — 300 mil ............................................................................... 75
B.4
20-Lead Plastic Small Outline (SOP) — 300 mil ............................................................................. 76
B.5
20-Lead Plastic Shrink Small Outline (SSOP) — 209 mil ............................................................... 77
B.6
24-Lead Plastic Dual in line (PDIP) — 300 mil ............................................................................... 78
B.7
24-Lead Plastic Small Outline (SOP) — 300 mil ............................................................................. 79
质量确保和可靠性......................................................................................................80
C.1
vi •
比较器(OP) 特性 ............................................................................................................................. 70
地址误差侦测 ................................................................................................................................. 80
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
1
概述
EM78P345N,EM78P346N,EM78P347N 是采用低功耗,高速 CMOS 工艺,强抗噪声的 8 位单片机。其
内部包含 4K*13 位一次性可编程只读存储器(OTP-ROM)
。它提供多个加密位来防止程序被读出,3 个
代码选择字来满足用户需求。
由于它具有一次性可编程只读存储器的特性,EM78P345N,EM78P346N,EM78P347N 能够提供一种方
便的途径来开发和检验你的程序。并且,你可利用义隆专用编程器很容易地将你的开发代码写入
EM78P345N,EM78P346N,EM78P347N。
2
功能特点
2.1 CPU
„
工作电压范围:2.1V~5.5V 基于0°C ~ 70°C (商规)
2.3V~5.5V 基于–40°C ~ 85°C (工规)
„
„
工作频率范围(基于两个时钟周期)
:
z
晶振模式:DC ~ 16MHz,4.5V ; DC~8MHz ,3V;DC ~ 4MHz, 2.1V
z
RC 模 式:DC ~ 16MHz,4.5V ; DC~12MHz ,3V;DC ~ 4MHz, 2.1V
低功耗: 5V/4MHz 工作条件下电流小于1.5mA
3V/32KHz 条件下电流典型值为15µA
休眠模式下电流典型值为2µA
„
4K×13 位片内ROM
„
144×8位片内寄存器(SRAM)
„
3个双向I/O 口
„
4个可编程低电压检测
„
3个可编程低电压复位
„
8级堆栈供子程序嵌套
„
8位实时定时/计数器(TCC),其信号源、触发沿可编程选择,溢出产生中断
„
12位8路A/D转换器,
„
3个脉冲宽度调制器(PWM)
,
„
1对比较器(可作为OP使用)
„
省电(SLEEP)模式
„
7个中断源:TCC溢出中断
输入状态变化中断(可从SLEEP模式唤醒)
外部中断
ADC转换结束中断
PWM周期匹配结束中断
比较器输出高/低电平中断
低电压检测中断
„
可编程自由运行看门狗定时器(WDT)
„
21个I/O引脚可编程设置为下拉
Product Specification (V1.0) 08.30.2007
•1
EM78P345/6/7N
8-Bit Microcontroller
„
21个I/O引脚可编程设置为上拉
„
22个I/O引脚可编程设置为漏极开路
„
4个I/0引脚可编程设置为灌大电流
„
每个指令周期为2个时钟周期
„
封装类型:18 pin DIP 300mil :
EM78P345NPSXJ
18 pin SOP 300mil :
EM78P345NMS/J
20 pin DIP 300mil :
EM78P346NPSJ
20 pin SOP 300mil :
EM78P346NMS/J
24 pin SSOP 209mil:
EM78P346NKMS/J
24 pin skinny DIP 300mil :
EM78P347NPS/J
24 pin SOP 300mil:
EM78P347NMS/J
24 pin SSOP 150mil:
EM78P347NKMS/J
2.2 应 用
„
3
通用
引脚分配
1
18
P56/TCC
P61/ADC1
2
17
P55/OSCI
P62/ADC2
3
16
P54/OSCO
Vss
4
15
VDD
P63/ADC3
5
14
P53/PWM3/VREF
P64/ADC4
6
P65/ADC5
7
12
P51/PWM1
P66/ADC6
8
11
/RESET/P75
P67/ADC7
9
10
P50/INT
EM78P345N
P60/ADC0
13
P52/PWM2
图. 3-1 EM78P345N, EM78P346N and EM78P347N 引脚分配
2•
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
4
功能框图
ROM
PC
Instruction
Register
8-level stack
(13 bit)
Crystal
Int.
RC
Ext.
RC
Oscillation
Generation
P7
Reset
Instruction
Decoder
P70
P71
P72
P73
P74
P75
WDT
PWM 1
(Timer 1)
PWM 2
(Timer 2)
Mux
ALU
PWM 3
(Timer 3)
P6
P60
P61
P62
P63
P64
P65
P66
P67
RAM
R3 (Status
Reg.)
PWM2
PWM3
TCC
TCC
R4
ACC
PWM1
LVD
Interrupt
control
register
LVR
P5
P50
P51
P52
P53
P54
P55
P56
P57
Interrupt
circuit
ADC
Comparator
(CO) or OP
Ext INT
Ain0~7
Cin+ Cin- CO
图 4-1 EM78P345/6/7N 功能框图
5
引脚说明
5.1 EM78P345NP/M
Product Specification (V1.0) 08.30.2007
•3
EM78P345/6/7N
8-Bit Microcontroller
Symbol
P50~P56
Pin No.
10, 12~14
16~18
Type
I/O
P60~P67
1~3
5~9
I/O
P75
11
I/O
Function
通用 I/O 引脚
上电复位后设置为默认值
通用 I/O 引脚
上电复位后设置为默认值
通用 I/O 引脚
上电复位后设置为默认值
漏极开路端口
INT
10
I
下降沿触发的外部中断引脚
ADC0~ADC7
1~3
5~9
I
AD 转换器
由 ADCON (R9)<0:2>定义
PWM1
PWM2
PWM3
12
13
14
O
脉宽调制输出
由 PWMCON (IOC80)<5 : 7>设置
VREF
14
I
ADC 外部参考电压
由 ADCON (R9)<7>设置
/RESET
11
I
若持续在逻辑低,系统复位
当引脚的状态改变时系统可以从休眠模式中唤醒
通常情况下 /RESET 引脚的电压必须不高于 Vdd
TCC
18
I
斯密特触发的时钟/计数器输入,如果不用必须接 VDD 或
VSS
XTAL 模式: 晶体或外部时钟输入 RC 模式: RC 振荡器
OSCI
输入
XTAL 模式: 晶振输出或外部时钟输入
OSCO
4•
RC 模式: 周期为 1 个指令周期的时钟输出外部时钟信号输入
VDD
15
–
电源正极
VSS
4
–
电源地
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
5.2 EM78P346NP/M/KM
Symbol
P50~P57
P60~P67
Pin No.
11, 13~15
17~20
2~4
6~10
Type
I/O
I/O
Function
通用 I/O 口
上电复位后设置为默认值
通用 I/O 口
上电复位后设置为默认值
通用 I/O 口
P70, P75
1, 12
I/O
上电复位后设置为默认值
P75 作为输出是漏极开路
INT
11
I
下降沿触发的外部中断引脚
2~4
6~10
I
AD 转换器
由 ADCON (R9)<0:2>设置
PWM1
PWM2
PWM3
13
14
15
O
VREF
15
I
CIN-,
20
I
CIN+,
1
I
CO
2
O
/RESET
12
I
TCC
19
I
OSCI
18
I
OSCO
17
O
VDD
16
–
电源正极
VSS
5
–
电源地
ADC0~ADC7
Product Specification (V1.0) 08.30.2007
脉宽调制输出
由 PWMCON (IOC80)<5 : 7>设置
AD 外部参考电压
由 ADCON (R9) <7>设置
“-” →比较器的输入引脚 Vin“+”→ 比较器的输入引脚 Vin+
比较器的输出引脚 CO
由 CMPCON (IOCA0) <0:1>设置
通常只用于输入
若持续在逻辑低,系统复位
当引脚的状态改变时系统可以从休眠模式中唤醒
通常情况下 /RESET 引脚的电压必须不高于 Vdd
斯密特触发的时钟/计数器输入,如果不用必须接 VDD 或
VSS
XTAL 模式: 晶体或外部时钟输入
RC 模式: RC 振荡器输入
XTAL 模式: 晶振输出或外部时钟输入
RC 模式: 周期为 1 个指令周期的时钟输出
外部时钟信号输入
•5
EM78P345/6/7N
8-Bit Microcontroller
5.3 EM78P347NP/M/KM
Symbol
Pin No.
13, 15~17
P50~P57
19~22
I/O
Function
通用 I/O 口
上电复位后设置为默认值
通用 I/O 口
P60~P67
4~6
8~12
I/O
P70~P75
3, 2, 1, 24
23, 14
I/O
13
I
下降沿触发的外部中断引脚
4~6
8~12
I
AD 转换器
由 ADCON (R9)<0:2>设置
PWM1
PWM2
PWM3
15
16
17
O
VREF
17
I
CIN-
22
I
CIN+
3
I
CO
4
O
/RESET
14
I
TCC
21
I
OSCI
20
I
OSCO
19
O
VDD
18
–
电源正极
VSS
7
–
电源地
INT
ADC0~ADC7
6
Type
上电复位后设置为默认值
通用 I/O 口
上电复位后设置为默认值
P75 作为输出是漏极开路
脉宽调制输出
由 PWMCON (IOC80)<5 : 7>设置
AD 外部参考电压
由 ADCON (R9) <7>设置
“-”→比较器的输入引脚 Vin“+”→ 比较器的输入引脚 Vin+
比较器的输出引脚 CO
由 CMPCON (IOCA0) <0:1>设置
通常只用于输入
若持续在逻辑低,系统复位
当引脚的状态改变时系统可以从休眠模式中唤醒
通常情况下 /RESET 引脚的电压必须不高于 Vdd
斯密特触发的时钟/计数器输入,如果不用必须接 VDD 或
VSS
XTAL 模式: 晶体或外部时钟输入
RC 模式: RC 振荡器输入
XTAL 模式: 晶振输出或外部时钟输入
RC 模式: 周期为 1 个指令周期的时钟输出
外部时钟信号输入
功能描述
6.1 操作寄存器
6.1.1
6•
R0(间接寻址寄存器)
„
R0不是一个实际存在的寄存器,它的主要功能是做为一个间接寻址的指标。
„
任何使用R0作为指针的指令实际上操作的是由RAM选择寄存器(R4)所指向数据。
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
6.1.2
R1(时钟/记数器)
„
对来自TCC引脚的外部信号边沿或对内部指令周期时钟进行加计数。
„
TCC触发脉冲宽度的外部信号必须多于一个指令。
„
加计数信号由CONT寄存器的第4位和第5位决定。
„
和其它寄存器一样是可读可写的。
6.1.3
R2(程序计数器)和堆栈
R3
A 11 A10
A9
~
R e s e t V e c to r
In te rru p t V e c to r
A0
000H
008H
01 P AG E 1 0400~07FF
10 P A G E 2 0800~ 0B FF
11 P A G E3 0C 00~0FFF
S ta c k
S ta c k
S ta c k
S ta c k
S ta c k
S ta c k
S ta c k
S ta c k
Level
Level
Level
Level
Level
Level
Level
Level
1
2
3
4
5
6
7
8
Space
00 P AG E 0 0000~03FF
O n -c h ip P r o g r a m
M em o ry
FFFH
图6-1 程序计数器结构
„
R2与硬件堆栈为12位宽,结构如图4所示。
„
产生4×13位片内ROM地址以获取对应程序指令代码。一个程序页为1024字长。
„
复位后R2所有位均清0。
„
“JMP”指令直接装载R2低10位值,因此,JMP指令跳转范围为一个程序页面内。
„
“CALL”指令先装载PC低10位值,而后PC+1入栈,因此,子程序入口地址可以在一
页的任何地方。
„
“RET”(“RETLk”,“RETI”)指令将程序计数器的值加载到堆栈的栈顶。
„
“ADD R2,A”允许相对地址被装入当前PC,同时PC的第9及其以上位日益增多。
„
“MOV R2,A”允许将寄存器“A”中的地址加载到PC的低8位,同时PC的第9和第10
位(A8~A9)将不会被改变。
„
任何指令除了“ADD R2,A”(例如:“MOV R2,A”,“BC R2,6”,……)都将导
致PC的第9位和第10位(A8~A9)不被改变。
„
对于EM78P417/8/9N,在执行指令“JMP”、“CALL”或者任何改变R2值的指令时,最
高两位(A10~A11)将由状态寄存器(R3)的PS0~PS1的内容装入。
„
除了改变R2内容指令需要一个以上指令周期外(fclk/2或fclk/4),其余指令只要一个
指令周期。这些指令需要由代码寄存器的CYES位决定的一个或两个指令周期。
Product Specification (V1.0) 08.30.2007
•7
User Memory
C ALL
RET
RETL
RETI
EM78P345/6/7N
8-Bit Microcontroller
6.1.3.1 数据存储器配置
Address
Bank 0 Registers
Bank 1 Registers
IOC Page 0 Registers IOC Page 1 Registers
00
R0 (间接寻址寄存器)
保留
保留
保留
01
R1 (时间计数器)
保留
保留
保留
02
R2 (程序计数器)
保留
保留
保留
03
R3 (状态寄存器)
保留
保留
保留
04
R4 (RAM 选择寄存器)
保留
保留
保留
05
R5 (Port5)
R5 (PRDxH: PWM1, 2, 3
高脉冲时间)
IOC50 (I/O 端口控制
寄存器)
IOC51 (PRD1: PWM1
周期)
06
R6 (Port6)
R6 (LVD 控制寄存器)
IOC60 (I/O 端口控制
寄存器)
IOC61 (PRD2: PWM2
周期)
07
R7 (Port7)
R7 (高灌电流)
IOC70 (I/O 端口控制
寄存器)
IOC71 (PRD3: PWM3
周期)
08
R8 (ADC 输入选择寄存
器)
R8 (下拉控制寄存器)
IOC80 (PWM 控制寄
存器)
IOC81 (DT1L: 低脉冲
PWM1)
09
R9 (ADC Control
Register)
R9 (下拉控制寄存器)
IOC90 (定时控制寄
存器)
IOC91 (DT2L: 低脉冲
PWM2)
0A
RA (ADC Offset
Calibration Register)
RA (漏极开路控制寄存器)
IOCA0 (比较器控制
寄存器)
IOCA1 (DT3L:低脉冲
PWM3)
0B
RB (ADC Output Select
Register)
RB(漏极开路控制寄存器)
IOCB0 (下拉控制寄
存器)
IOCB1 (DTH: 低脉冲
PWM)
0C
RC (ADDATA1H: A/D
data Bit 11~Bit 8)
RC (上拉控制寄存器)
IOCC0 ((漏极开路控
制寄存器)
IOCC1 (TIMER1L:
PWM1 时间)
0D
RD (ADDATA1L: A/D
data Bit 7~Bit 0)
RD(上拉控制寄存器)
IOCD0 (上拉控制寄
存器)
IOCD1 (TIMER2L:
PWM2 时间)
0E
RE (Wake-up Control
Register)
保留
IOCE0 (看门狗控制
寄存器)
IOCE1 (TIMER3L:
PWM3 时间)
0F
RF (Interrupt Status
Register)
保留
IOCF0 (中断使能寄
存器)
IOCF1 (TMRH: PWM
时间)
10
︰
General Registers
1F
20
︰
Bank 0
Bank 1
Bank 2
Bank 3
3F
6.1.4 R3 (Status Register)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
IOCS
-
-
T
P
Z
DC
C
Bit7(IOCS):控制寄存器段选择位。
1=选择1段(IOC51~IOCF1)
0=选择0段(IOC50~IOCF0)
Bit 6 ~ Bit 5: 固定给 “0”
8•
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Bit4(T):
时间溢出位。
当执行“SLEP”或“WDTC”指令时置1,当WDT溢出时上电复位或清0。
Bit3(P):
低功耗标志位。
当上电或执行一个“WDTC”指令后设置为1,当执行“SLEP”指令时清0。
注意
Bit 4 和Bit 3 (T & P) 为只读
Bit2(Z):
零标志。
当一个算术或逻辑运算的结果为零设置为1。
Bit1(DC):
辅助进位标志。
Bit0(C):
进位标志
6.1.5
R4(RAM存贮器选器存器)
Bit7,6 :
用于选择存储区0~3。
Bits5~0 :
用于在直接地址模式下选择寄存器(地址:00~3F)。
6.1.6 BANK0 R5~R7(Port5~Port7)
R5和R6是I/O寄存器。
R7是I/O寄存器。R7以上的3位被置为0。
6.1.7
BANK 0 R8(AOSR:ADC输出选择寄存器)
AOSR寄存器定义Ports6的引脚,分别作为模拟输入或者作为数字I/O。
7
6
5
4
3
2
1
0
ADC7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
Bit7(ADE7) :
AD转换器作用于P67引脚。
0 = ADC7不起作用,P67作为 I/O引脚。
1 = ADC7作为模拟输入引脚起作用。
Bit6(ADE6):AD转换器作用于P66引脚。
0 = ADC6不起作用,P66作为 I/O引脚。
1 = ADC6作为模拟输入引脚起作用。
Bit5(ADE5):AD转换器作用于P65引脚。
0 = ADC5不起作用,P65作为 I/O引脚。
1 = ADC5作为模拟输入引脚起作用。
Bit4(ADE4):AD转换器作用于P64引脚。
0 = ADC4不起作用,P64作为 I/O引脚。
1 = ADC4作为模拟输入引脚起作用。
Bit3(ADE3):AD转换器作用于P63引脚。
Product Specification (V1.0) 08.30.2007
•9
EM78P345/6/7N
8-Bit Microcontroller
0 = ADC3不起作用,P63作为 I/O引脚。
1 = ADC3作为模拟输入引脚起作用。
Bit2(ADE2):AD转换器作用于P62引脚。
0 = ADC2不起作用,P62作为 I/O引脚。
1 = ADC2作为模拟输入引脚起作用。
Bit1(ADE1):AD转换器作用于P61引脚。
0 = ADC1不起作用,P61作为 I/O引脚。
1 = ADC1作为模拟输入引脚起作用。
Bit0(ADE0):AD转换器作用于P60引脚。
0 = ADC0不起作用,P60作为 I/O引脚。
1 = ADC0作为模拟输入引脚起作用。
当P60/ADE0作为模拟输入或数字I/O起作用时,请注意IOCA0控制寄存
器的COS1和COS0位。
比较器/OP选择位如图3所示。
P60/ADE0/CO引脚优先级:
6.1.8
优先
高
中
低
P60/ADE0/CO
CO
ADE0
P60
BANK0 R9(ADCON:A/D控制寄存器)
7
6
5
4
3
2
1
0
VREFS
CKR1
CKR0
ADRUN
ADPD
ADIS2
ADIS1
ADIS0
Bit 7(VREFS): ADC中VREF的输入源。
0 = ADC中VREF与VDD(缺省值)相连,P53/VREF完成P53的功能。
1 = ADC中VREF与P53/VREF相连。
请注意P53/PWM3/VREF引脚。它不能同时被用作PWM3HE和VREF。
如果P53/PWM3/VREF作为VRDF模拟输入引脚,那么PWM3E必须为
“0“
P53/PWM3/VREF的优先级:
优先
高
中
低
P53/PWM3/VREF
VREF
PWM3
P53
Bit 6: Bit 5 (CKR1: CKR0):ADC振荡时钟频率的预分频器
00 = 1:16(缺省值)
01 = 1:4
10 = 1:64
11 = 1:WDT环型振荡电路频率
10 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
CKR0:CKR1
Operation Mode
Max.operation frequency
00
Fsco/16
4MHz
01
Fsco/4
1MHz
10
Fsco/64
16MHz
11
Internal RC
—
Bit 4(ADRUN):ADC开始运行位。
1 = 一个A/D转换开始。这个位可以由软件来设置
0 = 转换的复位完成。这个位不可以通过软件来复位。
Bit3(ADPD):
ADC低功耗模式。
1 = ADC处于工作状态。
0 = 关闭ADC参考电阻,使其进入低功耗状态尽管此时CPU可能仍在工
作。
Bit 2:Bit 0 (ADIS2:ADIS0):模拟输入选择。
000 = ADIN0/P60;
001 = ADIN1/P61;
010 = ADIN2/P62;
011 = ADIN3/P63;
100 = ADIN4/P64;
101 = ADIN5/P65;
110 = ADIN6/P66;
111 = ADIN7/P67;
只有当ADIF位和ADRUN位都处于低状态时,才能被改变。
6.1.9
BANK 0 A(ADOC: A/D 偏移量寄存器)
7
6
5
4
3
2
1
0
CALI
SIGN
VOF[2]
VOF[1]
VOF[0]
“0”
“0”
“0”
Bit7(CALI):A/D偏移校准使能位
0 = 校准禁止;
1 = 校准使能.
Bit6 (SIGN):
偏移电压的极性位
0 = 负极电压
1 = 正极电压
Bit5:Bit3 (VOF[2]:VOF[0]): 偏移电压位
Bit2:Bit0:
未使用,作“0”。
Product Specification (V1.0) 08.30.2007
• 11
EM78P345/6/7N
8-Bit Microcontroller
6.1.10 BANK 0 RB(ADDATA:ADC转换值)
7
6
5
4
3
2
1
0
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
当A/D转换结束,结果装载入ADDATA。ADRUN位被清0,ADIF置1。RB只读。
6.1.11 BANK 0 RC(ADDATA1H:ADC转换值)
7
6
5
4
3
2
1
0
“0”
“0”
“0”
“0”
AD11
AD10
AD9
AD8
当A/D转换结束,结果装载入ADDATA1H。ADRUN位被清0,ADIF置1。RC只读。
6.1.12 BANK 0 RD(ADDATA1L:ADC转换值)
7
6
5
4
3
2
1
0
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
当A/D转换结束,结果装载入ADDATA1L。ADRUN位被清0,ADIF置1。RD只读。
6.1.13 BANK 0 RE(WUCR:唤醒控制寄存器)
7
6
5
4
3
2
1
0
EM78P345/6/7/NXS/XJ
“0”
“0”
“0”
“0”
ADWE
CMPWE
ICWE
“0”
ICE345N Simulator
C3
C2
C1
C0
ADWE
CMPWE
ICWE
“0”
Bit7—Bit4:
[With EM78P345/6/7NXS/XJ]: 未使用,作“0”。
[With Simulator (C3~C0)]: 在IRC晶振模式的标准位,在ICE345N仿真器的
IRC晶振模式下r, 这些是IRC晶振模式的IRC标准位。
C3
C2
C1
C0
频率(MHz)
0
0
0
0
(1-36%) x F
0
0
0
1
(1-31.5%) x F
0
0
1
0
(1-27%) x F
0
0
1
1
(1-22.5%) x F
0
1
0
0
(1-18%) x F
0
1
0
1
(1-13.5%) x F
0
1
1
0
(1-9%) x F
0
1
1
1
(1-4.5%) x F
1
1
1
1
F (default)
1
1
1
0
(1+4.5%) x F
1
1
0
1
(1+9%) x F
1
1
0
0
(1+135%) x F
1
0
1
1
(1+18%) x F
1
0
1
0
(1+22.5%) x F
1
0
0
1
(1+27%) x F
1
0
0
0
(1+31.5%) x F
1. 列出的频率估值是理论上的,是取自在高频率模式下的有一个实例。
因此,仅供参考用。数据将按照实际的情况发生改变。
12 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
2. 低频下也可以参考类似的计算方法。
Bit 3 (ADWE): ADC唤醒允许位
0 = 不允许ADC唤醒。
1 = 允许ADC唤醒。
当带有AD转换完成被用作进入中断向量或者将EM78P345/6/7N从睡眠
状态唤醒,ADWE位必须置为“允许”。
Bit2(CMPWE):比较器唤醒允许位。
0 = 不允许比较器唤醒。
1 = 允许比较器唤醒。
当比较器输出状态改变被用作进入中断向量将EM78P345/6/7N从睡眠状
态唤醒,CMPWE位必须置为“允许”。
Bit1(ICWE):Port6输入状态改变唤醒允许位。
0 = 不允许Port6输入状态改变唤醒。
1 = 允许Port6输入状态改变唤醒。
当Port6输入状态改变被用作进入中断向量将EM78P345/6/7N从睡眠状
态唤醒,ICWE位必须置为“允许”。
Bit0:
未使用,作“0”。
6.1.14 BANK 0 RF(中断状态寄存器)
7
6
5
4
3
2
1
0
CMPIF
PWM3IF
PWM2IF
PWM1IF
ADIF
EXIF
ICIF
TCIF
注意
1表示有中断请求,0表示没有中断请求,RF可以被清零,但是不可以被设置,IOCF0
是掩模寄存器,读取RF将会导致RF和IOCF0的逻辑与。
Bit7(CMPIF):比较器中断标志。比较器输出发生变化则置“1”,软件清0。
Bit6(PWM3IF):PWM3(脉冲宽度调制器)中断标志。达到设定周期则置“1”,软
件清0。
Bit5(PWM2IF):PWM2(脉冲宽度调制器)中断标志。达到设定周期则置“1”,软
件清0。
Bit1(PWM1IF):PWM2(脉冲宽度调制器)中断标志。达到设定周期则置“1”,软
件清0。
Bit3 (ADIF):
模拟到数字转换的中断标志。AD转换完成则置“1”,软件清0。
Bit2(EXIF): 外部中断标志。当/INT引脚发生下降沿时置“1”,软件清0。
Bit1(ICIF): Port6口输入变化中断标志。Port6口输入变化时置“1”,软件清0。
Bit0(TCIF): TCC溢出中断标志。TCC溢出时置“1”,软件清0。
RF可软件清0,但不能软件置1。
IOCF0位中断屏蔽寄存器。
Product Specification (V1.0) 08.30.2007
• 13
EM78P345/6/7N
8-Bit Microcontroller
注意读RF的结果为RF和IOCFO“相与”的结果。
6.1.15 Bank 1 R5 (PRDxH: PWM 1, 2, 3 高位寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
-
PRD3[9]
PRD3[8]
PRD2[9]
PRD2[8]
PRD1[9]
PRD1[8]
Bit 5 & Bit 4:
PWM3 周期的8,9位
Bit 3 & Bit 2:
PWM2 周期的8,9位
Bit 1 & Bit 0:
PWM1 周期的8,9位
6.1.16 Bank 1 R6 (LVD控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
LVDIF
/LVD
LVDWE
LVDIE
LVDEN
LVD1
LVD0
注意
■ Bank 1 R6 <4> 可擦写
■ 可以通过设置 Bank 1 R6 <4> t为"1."使能检测到低电压唤醒IC
■ 通过ENI指令开全局中断和,DISI指令禁止全局中断. 有关图 Fig. 6-8 (中断输入 电路)
Bit 6 (LVDIF):
低电压检测中断标志位
LVDIF位可被软件或硬件清零.
Bit 5 (/LVD):
低电压检测状态位,是一个只读位.当VDD引脚电压低于低电压检测
电压时这个位被清零
0 = 电压低于检测电压
1 = 电压高于检测电压或低电压检测功能被禁止.
Bit 4 (LVDWE): 低电压唤醒使能位
0 = 禁止低电压唤醒
1 = 使能低电压唤醒.
当检测到低电压时,进入中断向量把IC从睡眠中唤醒,必须使低电压
检测功能使能
Bit 3 (LVDIE):
低电压检测中断使能位
0 = 禁止低电压检测中断
1 = 使能低电压检测中断
当检测到电压低于设定值时进入中断或执行下一条指令,LVDIE必须设
置为1.
Bit 2 (LVDEN):
低电压检测使能位
0 = 禁止低电压检测
1 = 使能低电压检测
Bits 1~0 (LVD1:0): 低电压检测等级选择位
14 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
LVDEN
Bank 0 <R8, 7>
LVD1, LVD0
<RA, 1, 0>
1
11
1
10
1
01
1
00
0
XX
LVD Voltage Interrupt Level
/LVD
Vdd ≤ 2.3V
0
Vdd > 2.3V
1
Vdd ≤ 3.3V
0
Vdd > 3.3V
1
Vdd ≤ 4.0V
0
Vdd > 4.0V
1
Vdd ≤ 4.5V
0
Vdd > 4.5V
1
NA
1
6.1.17 Bank 1 R7 (高灌电流控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
TIMERSC
CPUS
IDLE-
OSS3
OSS2
OSS1
OSS0
Bit 6 (TIMERSC): TCC, TMR1, TMR2, TMR3 时钟源选择
0 : Fs. Fs: 副频作为看门狗内部RC基准
1 : Fm. Fm: 主频时钟
Bit 5 (CPUS):
CPU 时钟源选择
0 = 副频
1 = 主频
当CPUS=0, CPU 以副频振荡并且主频停止振荡
Bit 4 (IDLE):
Idle 模式选择位. 这个位决定下SLEP指令后进入哪个模式.
0 : IDLE=”0”+SLEP 指令 → 睡眠模式
1 : IDLE=”1”+SLEP 指令 → 空闲模式
CPU 运行模式:
RESET
NormalMode
fosc:oscillation
fs: oscillation
external
interrupt
CPU: using fosc
w akeup
IDLE="0"
SLEP
external
interrupt
SLEEPMode
fosc:stop
fs: stop
CPUS="1"
CPUS="0"
GreenMode
IDLE="1"
SLEP
IDLE="1"
SLEP
fosc:stop
fs: oscillation
IDLE="0"
SLEP
CPU: stop
CPU: using fs
IDLE Mode
fosc:stop
fs: oscillation
w akeup
CPU: stop
图 6-2 CPU Operation Mode
Bit 3 (OSS3):
选择 P67作为高灌电流引脚
Product Specification (V1.0) 08.30.2007
• 15
EM78P345/6/7N
8-Bit Microcontroller
Bit 2 (OSS2):
选择 P66作为高灌电流引脚
Bit 1 (OSS1):
选择P51作为高灌电流引脚
Bit 0 (OSS0):
选择 P50作为高灌电流引脚.
OSSx
VDD = 5V, 输入电流
0
20mA (in GND+0.5V)
1
80mA (in GND+1.5V)
6.1.18 Bank 1 R8 (下拉控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PD57
/PD56
/PD55
/PD54
/PD53
/PD52
/PD51
/PD50
Bank 1 R8 寄存器可读写
Bit 7 (/PD57):
P57下拉控制位
0 = 使能下拉
1 = 禁止下拉 (默认)
Bit 6 (/PD56):
P56引脚下拉控制位
Bit 5 (/PD55):
P55引脚下拉控制位
Bit 4 (/PD54):
P54引脚下拉控制位
Bit 3 (/PD53):
P53引脚下拉控制位
Bit 2 (/PD52):
P52引脚下拉控制位
Bit 1 (/PD51):
P51引脚下拉控制位
Bit 0 (/PD50):
P50引脚下拉控制位
6.1.19 Bank 1 R9 (下拉控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
-
-
/PD74
/PD73
/PD72
/PD71
/PD70
Bank 1 R9寄存器可读写
Bit 4 (/PD74):
P74引脚下拉控制位
0 =使能下拉
1 = 禁止下拉(默认)
Bit 3 (/PD73):
P73引脚下拉控制位
Bit 2 (/PD72):
P72引脚下拉控制位
Bit 1 (/PD71):
P71引脚下拉控制位
Bit 0 (/PD70):
P70引脚下拉控制位
6.1.20 Bank 1 RA (漏极开路控制寄存器)
16 •
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/OD67
/OD66
/OD65
/OD64
/OD63
/OD62
/OD61
/OD60
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Bank 1 RA可读写
Bit 7 (/OD67):
P67 引脚漏极开路控制位
0 = 使能漏极开路
1 = 禁止漏极开路
Bit 6 (/OD66):
P66引脚漏极开路控制位
Bit 5 (/OD65):
P65引脚漏极开路控制位
Bit 4 (/OD64):
P64引脚漏极开路控制位
Bit 3 (/OD63):
P63引脚漏极开路控制位
Bit 2 (/OD62):
P62引脚漏极开路控制位
Bit 1 (/OD61):
P61引脚漏极开路控制位
Bit 0 (/OD60):
P60引脚漏极开路控制
6.1.21 Bank 1 RB (漏极开路控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
-
-
/OD74
/OD73
/OD72
/OD71
/OD70
Bank 1 RB 寄存器可读写
Bit 4 (/OD74):
P74引脚漏极开路使能位
0 = 使能漏极开路
1 = 禁止漏极开路
Bit 3 (/OD73):
P73引脚漏极开路控制位
Bit 2 (/OD72):
P72引脚漏极开路控制位
Bit 1 (/OD71):
P71引脚漏极开路控制位
Bit 0 (/OD70):
P70引脚漏极开路控制位
6.1.22 Bank 1 RC (上拉控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PH57
/PH56
/PH55
/PH54
/PH63
/PH62
/PH61
/PH60
Bank 1 RC 寄存器可读写
Bit 7 (/PH57):
P57引脚上拉使能位
0 = 使能上拉
1 = 禁止上拉
Bit 6 (/PH56):
P56 引脚上拉使能位
Bit 5 (/PH55):
P55引脚上拉使能位
Bit 4 (/PH54):
P54引脚上拉使能位
Bit 3 (/PH63):
P63引脚上拉使能位
Bit 2 (/PH62):
P62引脚上拉使能位
Product Specification (V1.0) 08.30.2007
• 17
EM78P345/6/7N
8-Bit Microcontroller
Bit 1 (/PH61):
P61引脚上拉使能位
Bit 0 (/PH60):
P60引脚上拉使能位
6.1.23 Bank 1 RD (Pull-high Control Register)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
−
−
−
/PH74
/PH73
/PH72
/PH71
/PH70
Bank 1 RD 寄存器可读写
Bit 4(/PH74):
P74引脚上拉控制位
0 = 使能上拉
1 = 禁止上拉
Bit 3 (/PH73):
P73 引脚上拉使能位.
Bit 2 (/PH72):
P72引脚上拉使能位.
Bit 1 (/PH71):
P71引脚上拉使能位.
Bit 0 (/PH70):
P70引脚上拉使能位.
6.1.24 Bank 1 RE (选择控制位, 只用于 ROMLESS)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TYPE1
TYPE0
LVR1
LVR0
RCM1
RCM0
-
-
Bank 1 RE 寄存器可读写
Bits 7~6 (TYPE1 ~ TYPE0): 型号选择 EM78P345N 或EM78P346N或EM78P347N.
TYPE1, TYPE0
VDD Reset Level
11
10
01
00
EM78P347N (Default)
EM78P346N
EM78P345N
EM78P347N
Bits 5~4 (LVR1 ~ LVR0):低电压使能位
LVR1,L VR0
VDD Reset Level
VDD Release Level
11
10
01
NA (Power-on Reset)
2.4V
2.6V
3.7V
3.9V
00
4.1V
Bit 3 & Bit 2 (RCM1, RCM0):
4.3V
IRC 模式选择位
RCM 1
RCM 0
Frequency (MHz)
1
1
4 (默认)
1
0
16
0
1
1
0
0
455kHz
6.1.25 R10 ~ R3F
18 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
通用寄存器。
6.2 特殊功能寄存器
6.2.1 A (累加器)
内部数据传输,或指令操作数保持。不可寻址。
6.2.2 CONT (Control Register)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
INTE
INT
TS
TE
PSTE
PST2
PST1
PST0
Bit7(INTE):INT信号边沿选择位
0 = 由INT引脚信号上升沿引起中断
1 = 由INT引脚信号下降沿引起中断
Bit6(INT): 中断允许标志
0 = 已由DISI指令或硬件中断屏蔽中断
1 = 已由ENI指令或RETI指令允许中断
Bit6(INT)
只读
Bit5(TS):
TCC信号源选择位
0 = 内部指令周期时钟,如果P56当I/O口用时,TS必须为0
1 = TCC引脚转换
Bit4(TE):
TCC信号边沿选择位
0 = TCC引脚信号发生由低到高变化时TCC加1
1 = TCC引脚信号发生由高到低变化时TCC加1
Bit3(PSTE):TCC预分频器允许位
0 = 预分频器不允许位,TCC比率为1:1
1 = 预分频器允许位,TCC比率设置为Bit 2~Bit 0.
Bit2(PST2)~Bit0(PST0):TCC预分频位
PST2
PST1
PST0
TCC比率
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256
6.2.3 IOC50 ~ IOC70 (I/O端口控制寄存器)
1定义对I/O引脚高电阻状态,0定义其输出。
IOC50,IOC60和IOC70寄存器可擦写。
Product Specification (V1.0) 08.30.2007
• 19
EM78P345/6/7N
8-Bit Microcontroller
注意
在用EM78P345N 和EM78P346N时,编码选项寄存器(word0)的BIT9必须设置为“1”在用
EM78P346N时,必须再把IOC50的BIT7和IOC70的BIT0设置为“0”,引脚状态设置为
“0”,按照这样的规则,将不会有额外的消耗。
6.2.4 IOC80 (PWMCON: PWM 控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PWM3E
PWM2E
PWM1E
“0”
T1EN
T1P2
T1P1
T1P0
0 = PWM3关闭(默认值),其相关端口完成P53功能。
1 = PWM3开启,其相关端口将被设置成自动输出。
请注意意P53/PWM3/VREF端口,它不能同时被用作PWM3和VREF。如
果P53/PWM3/VREF作为VREF的模拟输入端口,那么PEM3D必须置“0”。
P53/PWM3/VREF端口优先级:
优先
高
中
低
P53/PWM3/VREF
VREF
PWM3
P53
Bit6(PWM2E):PWM2允许位
0 = PWM2关闭(缺省值),其相关端口完成P52功能
1 = PWM2开启,其相关端口将被设置成自动输出
Bit5(PWM1E):PWM1允许位
0 = PWM1关闭(缺省值),其相关端口完成P51功能
1 = PWM1开启,其相关IO将被设置成自动输出
Bit4:
未使用,作“0”。
Bit3(TIEN):
TMR1允许位
0 = TMR1关闭(缺省值)
1 = TMR1开启
Bit 2: Bit 0 ( T1P2:T1P0 ):TMR1时钟预分频器选项位
T1P2
T1P1
T1P0
Prescale
ICE345 Prescale
0
0
0
0
0
1
0
1
0
1:1 (default)
1:2
1:4
1:1 (default)
1:2
1:4
0
1
1
1:8
1:8
1
0
0
1:16
1:16
1
0
1
1:64
1:32
1
1
0
1:128
1:64
1
1
1
1:256
1:128
6.2.5
IOC90(TMRCON:定时器控制寄存器)
7
6
5
4
3
2
1
0
T3EN
T2EN
T3P2
T3P1
T3P0
T2P2
T2P1
T2P0
Bit7(T3EN):TMR3允许位
0 = TMR3关闭(默认值)
20 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
1 = TMR3开启
Bit6(T2EN):TMR2允许位
0 = TMR2关闭(默认值)
1 = TMR2开启
Bit5: Bit3 ( T3P2:T3P0 ):TMR3时钟预分频选项位
T3P2
T3P1
T3P0
Prescale
ICE345 Prescale
0
0
0
0
0
1
1:1 (default)
1:2
1:1 (default)
1:2
0
1
0
1:4
1:4
0
1
1
1:8
1:8
1
0
0
1:16
1:16
1
0
1
1:64
1:32
1
1
0
1:128
1:64
1
1
1
1:256
1:128
Bit 2: Bit 0 ( T2P2:T2P0 ):TMR2时钟预分频选项位
T2P2
T2P1
T2P0
Prescale
ICE345 Prescale
0
0
0
0
0
1
1:1 (default)
1:2
1:1 (default)
1:2
0
1
0
1:4
1:4
0
1
1
1:8
1:8
1
0
0
1:16
1:16
1
0
1
1:64
1:32
1
1
0
1:128
1:64
1
1
1
1:256
1:128
6.2.6 IOCA0 (CMPCON:比较器控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
“0”
“0”
“0”
“0”
“0”
CPOUT
COS1
COS0
Bit 7 ~ Bit 3:
未生效,读作 ‘0’
Bit 2 (CPOUT): 比较器输出结果
Bit 1 ~ Bit 0 (COS1 ~ COS0): 比较器/OP选择位
COS1
COS0
0
0
1
1
0
1
0
1
Function Description
比较器和OP没有使用,P60作为常规I/O端口
作为比较器,P60作为常规I/O端口
作为比较器,P60作为比较器输出端口(CO)
作为OP,P60作为OP输出端口(CO)
注意
P60/ADE0/CO可以同时作为CO和ADEO优先级如下:
P53/PWM3/VREF Pin Priority
Product Specification (V1.0) 08.30.2007
高
中
低
CO
ADE0
P60
• 21
EM78P345/6/7N
8-Bit Microcontroller
6.2.7 IOCB0 (下拉控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PD7
/PD6
/PD5
/PD4
/PD3
/PD2
/PD1
/PD0
IOCB0 寄存器可擦写
Bit 7 (/PD7):
P67引脚下拉控制位
0 = 使能下拉
1 = 禁止下拉
Bit 6 (/PD6):
P66 引脚下拉控制位
Bit 5 (/PD5):
P65引脚下拉控制位
Bit 4 (/PD4):
P64引脚下拉控制位
Bit 3 (/PD3):
P63引脚下拉控制位
Bit 2 (/PD2):
P62引脚下拉控制位
Bit 1 (/PD1):
P61引脚下拉控制位
Bit 0 (/PD0):
P60引脚下拉控制位
6.2.8 IOCC0 (漏极开路控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/OD7
/OD6
/OD5
/OD4
/OD3
/OD2
/OD1
/OD0
IOCC0 寄存器可擦写
Bit 7 (OD7):
P57引脚漏极开路控制位.
0 = 使能漏极开路
1 = 禁止漏极开路
Bit 6 (OD6):
P56引脚漏极开路控制位
Bit 5 (OD5):
P55引脚漏极开路控制位
Bit 4 (OD4):
P54引脚漏极开路控制位.
Bit 3 (OD3):
P53引脚漏极开路控制位
Bit 2 (OD2):
P52引脚漏极开路控制位.
Bit 1 (OD1):
P51引脚漏极开路控制位
Bit 0 (OD0):
P50引脚漏极开路控制位
6.2.9 IOCD0 (上拉控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PH7
/PH6
/PH5
/PH4
/PH3
/PH2
/PH1
/PH0
IOCD0 寄存器可擦写
22 •
Bit 7 (/PH7):
P67 引脚上拉控制位
0 = 使能上拉
1 = 禁止上拉
Bit 6 (/PH6):
P66 引脚上拉控制位.
Bit 5 (/PH5):
P65 引脚上拉控制位
Bit 4 (/PH4):
P64 引脚上拉控制位
Bit 3 (/PH3):
P53 引脚上拉控制位.
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Bit 2 (/PH2):
P52 引脚上拉控制位.
Bit 1 (/PH1):
P51 引脚上拉控制位.
Bit 0 (/PH0):
P50 引脚上拉控制位.
6.2.10 IOCE0 (看门狗控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
WDTE
EIS
PSWE
PSW2
PSW1
PSW0
“0”
“0”
Bit 7 (WDTE): 看门狗控制位
0 = 禁止看门狗
1 = 使能看门狗
WDTE 可以读写
Bit 6 (EIS):
P50 (/INT) 引脚控制位
0 = P50, 普通IO口
1 = /INT, 外部中断引脚. 在这种情况下, P50必须设置为输入
注意
当EIS为0时,/INT 是伪装的,当EIS为1时,INT引脚的状态也可以读,例如图6-5(P50 IO端
口和控制电路)
EIS位可以读写
Bit 5 (PSWE): 看门狗分频比控制位
0 = 分频比禁止. WDT 分频比为 1:1
1 = 分频比使能位t. WDT 分频比由 Bit4~Bit2设置
Bit 4 ~ Bit 2 (PSW2 ~ PSW0): 看门狗分频比选择位.
PSW2
PSW1
PSW0
WDT Rate
0
0
0
1:2
0
0
1
1:4
0
1
0
1:8
0
1
1
1:16
1
0
0
1:32
1
0
1
1:64
1
1
0
1:128
1
1
1
1:256
Bit 1 ~ Bit 0:
未生效,读为0
6.2.11 IOCF0 (中断屏蔽寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CMPIE
PWM3IE
PWM2IE
PWM1IE
ADIE
EXIE
ICIE
TCIE
Product Specification (V1.0) 08.30.2007
• 23
EM78P345/6/7N
8-Bit Microcontroller
注意
■ IOCF0 寄存器可擦写
■ 个别中断通过在IOCF0中将与之相关的控制位设置成“1”来允许
■ 开总中断由ENI 指令完成,关总中断由DISI指令完成
Bit 7 (CMPIE):
比较器中断使能位
0 = 禁止比较器中断
1 = 使能比较器中断
当比较器输出状态改变用来进入中断向量或者进入下一条指令,
CMPIE位必须置为“允许”
Bit 6 (PWM3IE): PWM3IF 中断使能位
0 = 禁止 PWM3 中断
1 = 使能 PWM3 中断
Bit 5 (PWM2IE): PWM2IF 中断使能位
0 = 禁止 PWM2 中断
1 = 使能 PWM2 中断
Bit 4 (PWM1IE): PWM1IF 中断使能位
0 = 禁止PWM1 中断
1 = 使能 PWM1 中断
Bit 3 (ADIE):
ADIF 中断使能位
0 = 禁止ADIF 中断
1 = 使能 ADIF 中断
当ADC完成被用作进入中断向量或者进入下一条指令,ADIE位必须
设置为“允许”
Bit 2 (EXIE):
EXIF 中断使能位
0 = 禁止EXIF 中断
1 = 使能 EXIF 中断
Bit 1 (ICIE):
ICIF中断使能位
0 = 禁止ICIF 中断
1 = 使能 ICIF 中断
如果Port6端口状态改变中断用于进入中断向量或者进入下一条指令,
ICIE位必须设置为“允许”。
Bit 0 (TCIE):
TCIF中断使能位
0 = 禁止TCIF 中断
1 = 使能 TCIF 中断
6.2.12 IOC51 (PRD1L: PWM1周期的 (Bit 7 ~ Bit 0)低8位)
其内容为PWM1周期的低八位,. PWM1的频率为此周期的倒数
PWM1周期的8,9位在BANK 1 R5的bit0,bit1
6.2.13 IOC61 (PRD2L: PWM2 周期的( Bit7~Bit0)低8位)
24 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
其内容为PWM2周期的低八位,. PWM2的频率为此周期的倒数
PWM2周期的8,9位在BANK 1 R5的bit2,bit3
6.2.14 IOC71 (PRD3L: PWM3 Time Period)
其内容为PWM3周期的低八位,. PWM3的频率为此周期的倒数
PWM3周期的8,9位在BANK 1 R5的bit4,bit5
6.2.15 IOC81 (DT1L: PWM1 占空比的低8位)
保持PWM1输出为高电平的一特殊值,当TMR1的值与其相等时输出才变为低
6.2.16 IOC91 (DT2L: PWM2 占空比的低8位)
保持PWM2输出为高电平的一特殊值,当TMR2的值与其相等时输出才变为低.
6.2.17 IOCA1 (DT3L:PWM3 占空比的低8位)
保持PWM3输出为高电平的一特殊值,当TMR3的值与其相等时输出才变为低
6.2.18 IOCB1 (DTH: PWM占空比的高两位)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
“0”
“0”
PWM3[9]
PWM3[8]
PWM2[9]
PWM2[8]
PWM1[9]
PWM1[8]
Bit 7 & Bit 6: 未生效,读为0.
Bit 5 & Bit 4 (PWM3 [9], PWM3 [8]): PWM3 占空比的8,9位
Bit 3 & Bit 2 (PWM2 [9], PWM2 [8]): PWM2 占空比的8,9位
Bit 1 & Bit 0 (PWM1 [9], PWM1 [8]): PWM1占空比的8,9位
6.2.19 IOCC1 (TMR1L: PWM1 定时的低8位)
IOCC1 内容只读 ,
6.2.20 IOCD1 (TMR2L: PWM2 定时的低8位)
IOCD1的内容只读
6.2.21 IOCE1 (TMR3L: PWM3 定时的低8位)
IOCE1 的内容只读.
6.2.22 IOCF1 (TMRH: PWM定时的高两位)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
“0”
“0”
TMR3[9]
TMR3[8]
TMR2[9]
TMR2[8]
TMR1[9]
TMR1[8]
IOCF1 只读
Bit 7 & Bit 6: 未生效,读作0
Bit 5 & Bit 4 (TMR3 [9], TMR3 [8]): PWM3 定时的高两位
Product Specification (V1.0) 08.30.2007
• 25
EM78P345/6/7N
8-Bit Microcontroller
Bit 3 & Bit 2 (TMR2 [9], TMR2 [8]): PWM2定时的高两位
Bit 1 & Bit 0 (TMR1 [9], TMR1 [8]): PWM1定时的高两位
6.3 TCC/WDT和预分频器
对于TCC或WDT分别有一个8位寄存器做预分频器。TCC的预分频系数由CONT寄存器的
PST0~PST2位决定。WDT的预分频系数由IOCE0寄存器的PWR0~PWR2位决定。若分
配给TCC,则每次写TCC操作均将预分频器清0。若分配给WDT和预分频器均在执行
“WDTC”和“SLEP”指令时清0。TCC/WDT电路框图如图6所示。
„
R1(TCC)为8位定时器/计数器。TCC时钟源可为内部时钟或外部时钟(由TCC引
脚输入,触发沿可选择)。由图5可知,CLK=Fosc/2或者CLK=Fosc/4是由CODE选项
位<CLKS>决定。若CLKS=0则CLK=Fosc/2,CLKS=1则CLK=Fosc/4。如果是外部时
钟,每当TCC引脚下降边沿或上升边沿,TCC将加1。TCC引脚输入时间长度(保持
高或低标准)必须大于1CLK。当休眠模式时,内部TCC将停止运行,但是在A/D转
换期间设置“SLEP”指令,如果RE寄存器的ADWE位时使能,TCC将继续运行。
„
看门狗定时器是一个自由运行片内振荡器。即使振荡器驱动程序关闭(例如:在休
眠模式下)
,WDT也会保持运行。在普通操作或者休眠模式下,WDT时间溢出(如
果使能)将引起复位。WDT溢出将引起复位(若WDT使能)。在正常工作时,WDT
可由软件设置IOCE0的WDTE位来使能或禁止。在没有预分频情况下,WDT溢出时
间约为18ms。
CLK (Fosc/2 or Fosc/4)
Data Bus
0
TCC Pin
1
8-Bit Counter (IOCC1)
MUX
8 to 1 MUX
TE (CONT)
TS (CONT)
WDT
WDTE
(IOCE0)
SYNC
2 cycles
8-Bit counter
8 to 1 MUX
WDT Time out
TCC (R1)
TCC overflow
interrupt
Prescaler
PSR2~0
(CONT)
Prescaler
PSW2~0
(IOCE0)
图6-2 TCC和WDT的结构图
26 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
注意
VDD=5V,设置时间周期= 16.5ms ± 5%.
VDD=3V, 设置时间周期= 18ms ± 5%.
6.4 I/O端口
PORT5、PORT6、PORT7为双向三态I/O端口。可IOCB0、IOCC0和IOCD0单独设置各引
脚的上拉、下拉、漏极开路功能。PORT6具有输入状态改变中断(或唤醒)功能。每个
I/O引脚均可由I/O控制寄存器(IOC50~IOC70)设置为“输入”或“输出”,除了P50端口,
P50端口只能定义为“输入”引脚。I/O寄存器和I/O控制寄存器均可擦写。PORT5、PORT6
和PORT7的I/O接口电路如图6、7、8所示
PCRD
Q
_
Q
PORT
Q
_
Q
P
R
D
C LK
PCW R
C
L
P
R
IO D
D
C LK
PDW R
C
L
PDRD
M
U
X
0
1
Note: 上拉和漏极开路没有 画在图中.
图. 6-4 PORT5,PORT7端口和控制寄存器电路
PCRD
Q
_
Q
P
R
D
C LK
PCW R
C
L
P 50 , /IN T
PORT
Q
_
Q
P
R
D
C LK
IO D
PDW R
C
L
B it 6 of IO C E 0
D
P
R
C LK
C
L
0
Q
1
_
M
U
X
Q
PDRD
TI 0
IN T
Note:上拉和漏极开路没有画在土中.
图 6-5 P50 (/INT)引脚和控制寄存器电路
Product Specification (V1.0) 08.30.2007
• 27
EM78P345/6/7N
8-Bit Microcontroller
PCRD
Q
_
Q
P
R
D
CLK
PCWR
C
L
P60 ~ P67
Q
PORT
_
Q
0
P
R
IOD
D
CLK
PDWR
C
L
M
U
X
1
PDRD
TI n
D
P
R
CLK
C
L
Q
_
Q
Note: 上拉和漏极开路没有画在图中
图6-6 Port 6口和控制寄存器电路
IOCE.1
D
P
R
Q
Interrupt
CLK
_
C Q
L
RE.1
ENI Instruction
P
D R Q
T10
T11
CLK
_
C Q
L
P
Q R
D
CLK
_
Q C
L
T17
DISI Instruction
Interrupt
(Wake-up from SLEEP)
/SLEP
Next Instruction
(Wake-up from SLEEP)
图 6-7 Port 6输入状态变化唤醒的电路
28 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
6.4.1
Port6 输入变化唤醒/中断功能用法
(1) 唤醒
(a) 睡眠之前
1. 禁止WDT
2. 读I/O Port 6 (MOV R6,R6)
3. 执行 "ENI" or "DISI"
4. 使能 唤醒t (Set RE ICWE =1)
5. 执行"SLEP" 指令
(b) 唤醒后
→ 下一条指令
(2) 唤醒和中断
(a) 睡眠前
1. 禁止看门狗 WDT
2. 读 I/O Port 6 (MOV R6,R6)
3. 执行 "ENI" or "DISI"
4. 使能唤醒 (Set RE ICWE =1)
5.使能中断 (Set IOCF0 ICIE =1)
6. 执行"SLEP" 指令
(b) 唤醒后
1.如果 "ENI" →中断向量 (008H)
2. 如果 "DISI" → 下一条指令
(3) 中断
(a) 在PORT6改变之前
1. 读I/O Port 6 (MOV R6,R6)
2. 执行 "ENI" or "DISI"
3. 使能中断 (Set IOCF0 ICIE =1)
(b) Port 6 改变后 (中断)
1如果 "ENI" → 中断向量 (008H)
2. 如果 "DISI" → 下一条指令
6.5 复位和唤醒
6.5.1
复位和唤醒功能
复位由下面情况引起:
(1)上电复位
(2)/RESET引脚输入为“低”
(3)WDT溢出(若使能)
检测到复位后,系统将保持复位状态18ms(振荡器起振时间)。当/RESET引脚为“低”
或者WDT溢出时,复位就发生了。在RC模式下,复位时间为34clocks。在高XTAL模式
下,复位时间为2ms和32clocks。在低XTAL模式下,复位时间为500ms。一旦发生复位,
单片机系统处于如下状态:
„
振荡器运行,或者起振。
„
程序计数器(R2)清为“0”。
„
所有I/O引脚定义为输入模式(高阻状态)
。
„
WDT和预分频器清0。
„
上电时,R3高3位清0。
„
上电时,R4高2位清0。
„
CONT寄存器除第6位(INT标志)外,全置为1。
„
IOCB0寄存器全置为1。
„
IOCC0寄存器全置为1。
Product Specification (V1.0) 08.30.2007
• 29
EM78P345/6/7N
8-Bit Microcontroller
„
IOCD0寄存器全置为1。
„
IOCE0寄存器第7位置1,第0~6位清0。
„
RF、IOCF0寄存器第0~6位清0。
执行“SLEP”指令可进入休眠模式(低功耗模式)。进入休眠模式时,振荡器、TCC、
TIMER1、TIMER2和TIMER3停止工作。WDT(若使能)清0但继续运行。单片机可被
如下情况唤醒:
(1)引脚上输入的外部复位信号。
(2)WDT溢出(若使能)。
(3)PORT 6端口输入引脚状态变化(若ICWE使能)。
(4)比较器输出状态变化(若MCPWE使能)。
(5)A/D转换完成(若ADWE使能)。
前两种情况将引起EM78P345/346/347N复位。R3的T、P标志可用于确定复位源(唤醒)。
第3、4、5种情况下唤醒后程序继续执行,由中断状态来决定程序是否转入中断处理程
序。如果在SLEP指令执行前执行ENI执行,程序将从地址0X08处执行中断处理。如果在
执行SLEP指令前执行DISI指令,程序将从SLEP指令后继续执行。无论哪种振荡模式,
所有休眠模式的唤醒时间为150us(除了低XTAL模式)。在低XTAL模式下,唤醒时间
为500ms。
在进入休眠模式之前,第2-5种情况中只有一种可能被使能,那就是说:
[a] 如果休眠前WDT使能,则所有RE位被禁止。因此,EM78P345/346/347N只有在1或2
情况下才能被唤醒。需要了解更多细节,请查阅中断的相关部分内容。
[b] 如果通过PORT6输入变化中断被用于唤醒EM78P345/346/347N,并且在休眠前RE寄
存器的ICWE位使能,那么WDT必须被禁止。因此,EM78P345/346/347N只有在第3
种情况下才能被唤醒。
[c] 如果通过比较器输出状态变化被用于唤醒EM78P345/346/347NN,并且在休眠前RE寄
存器的CMPWE位使能,那么WDT必须由软件禁止。因此,EM78P345/346/347N只有
在第4种情况下才能被唤醒。
[d] 如果通过AD转换完成被用于唤醒EM78P345/346/347N,并且在休眠前RE寄存器的
ADWE位使能,那么WDT必须由软件禁止。因此,EM78P345/346/347N只有在第5种
情况下才能被唤醒。
如果PORT6输入变化中断被用于唤醒EM78P345/346/347N(例如以上的[b]),那么如下
的指令
必须在SLEP指令前执行:
BC R3, 7 ;
选择0段
MOV A, @001110xxb ;
设定WDT预分频器和禁止WDT
IOW IOCE0
WDTC ;
MOV R6, R6 ;
ENI (or DISI) ;
30 •
清除WDT和预分频器
读取Port 6
中断总使能(或禁止)
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
MOV A, @00000x1xb ;
Port 6输入变化唤醒位使能
MOV RE
MOV A, @00000x1xb ;
Port 6输入变化中断使能
IOW IOCF0
SLEP ;
休眠
类似的,如果比较器中断被用于唤醒EM78P418/9N(例如以上的[c]),那么如下的指
令必须在SLEP指令前执行:
BC R3, 7 ;
选择0段
MOV A, @xxxxxx10b ;
选择一个比较器,P60作为CO引脚
IOW RA
MOV A, @001110xxb ;
设定WDT预分频器,WDT禁止
IOW RE
WDTC ;
ENI (or DISI) ;
清除WDT和预分频器
中断总使能(或禁止)
MOV A, @000001xxb ;
比较器输出变化唤醒位使能
MOV RE
MOV A, @000001xxb ;
比较器输出变化中断使能
IOW IOCF0
SLEP ;
休眠
6.5.1.1 唤醒和中断模式操作摘要
所有类型的唤醒模式和中断模式如下所示:控制器能被从睡眠模式和空闲模式下唤醒。
唤醒类型如下:
Product Specification (V1.0) 08.30.2007
• 31
EM78P345/6/7N
8-Bit Microcontroller
唤醒后
1.如果中断使能→中断+ 下一条指令
2. 如果禁止中断 → 下一条指令
Wakeup signal
外部中断
Port 6 状态改变
TCC 溢出中断
AD 转换完成进中断
比较器中断
PWMX
(PWM1,PWM2,PWM3)
(When TimerX matches
PRDX)
低电压中断
看门狗溢出中断
低电压复位
32 •
Sleep mode
Idle mode
Green mode
Normal mode
中断(如果使能中断)
+下一条指令
中断(如果使能中断)
+下一条指令
中断(如果使能中断)
+下一条指令
中断(如果使能中断)
+下一条指令
中断(如果使能中断)
+下一条指令
中断(如果使能中断)
+下一条指令
X
Fs 和 Fm 不停止
中断(如果使能中断)
+下一条指令
中断(如果使能中断)
+下一条指令
中断(如果使能中断)
+下一条指令
如果使能比 PWMX 唤醒
中断(如果使能中断)
+ 中断(如果使能中断)
+下一条指令
+ 下一条指令
中断(如果使能中断)
+下一条指令
唤醒
+ 中断(如果中断使能)
+ 下一条指令
如果使能 ICWE 为唤醒 如果置 ICWE 为唤醒
+中断(如果使能中断)
+中断(如果使能中断)
+下一条指令
+下一条指令
如果使能 TCC 唤醒
+ 中断(如果中断使能)
x
+ 下一条指令
如果使能 ADWE 唤醒
如果使能 AD 唤醒
+ 中断(如果使能中断)
+ 中断(如果使能中断)
+ 下一条指令
+下一条指令
Fs 和 Fm 停止
Fs 和 Fm 不停
如果使能比较器唤醒
如果使能比较器唤醒
+ 中断(如果使能中断)
+ 中断(如果使能中断)
+ 下一条指令
+ 下一条指令
x
x
如果使能 LVDWE 唤醒
+中断(如果使能中断)
+ 下一条指令
复位
复位
如果使能 LVDWE 唤醒
+中断(如果使能中断)
+ 下一条指令
复位
复位
中断(如果使能中断)
+下一条指令
中断(如果使能中断)
+下一条指令
复位
复位
复位
复位
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Signal
TCC Over Flow
Sleep Mode
N/A
Normal Mode
DISI + IOCF0 (TCIE) Bit 0 = 1
Next Instruction+ Set RF (TCIF) = 1
ENI + IOCF0 (TCIE) Bit 0 = 1
Interrupt Vector (0x09 )+ Set RF (TCIF) = 1
RE (ICWE) Bit 1 = 0, IOCF0 (ICIE) Bit 1 = 0
IOCF0 (ICIE) Bit 1 = 0
Oscillator, TCC and TIMERX are stopped.
Port 6 input status change wake up is invalid.
Port 6 input status change interrupt is invalid
RE (ICWE) Bit 1 = 0, IOCF0 (ICIE) Bit 1 = 1
Set RF (ICIF) = 1,
Oscillator, TCC and TIMERX are stopped.
Port 6 input status change wake up is invalid.
RE (ICWE) Bit 1 = 1, IOCF0 (ICIE) Bit 1 = 0
Port 6 Input Status
Wake-up+ Next Instruction
Change
Oscillator, TCC and TIMERX are stopped.
RE (ICWE) Bit 1 = 1, DISI + IOCF0 (ICIE) Bit 1 = 1
DISI + IOCF0 (ICIE) Bit 1 = 1
Wake-up+ Next Instruction+ Set RF (ICIF) = 1
Oscillator, TCC and TIMERX are stopped.
Next Instruction+ Set RF (ICIF) = 1
RE (ICWE) Bit 1=1, ENI + IOCF0 (ICIE) Bit 1 = 1
ENI + IOCF0 (ICIE) Bit 1 = 1
Wake-up+ Interrupt Vector (0x06 )+ Set RF
(ICIF) = 1
Oscillator, TCC and TIMERX are stopped.
Interrupt Vector (0x06 )+ Set RF (ICIF)=1
DISI + IOCF0 (EXIE) Bit 2 = 1
INT Pin
N/A
Next Instruction+ Set RF (EXIF) = 1
ENI + IOCF0 (EXIE) Bit 2 = 1
Interrupt Vector (0x03 )+ Set RF (EXIF)=1
RE (ADWE) bit3=0, IOCF0 (ADIE) Bit 3 = 0
IOCF0 (ADIE) Bit 1 = 0
Clear R9 (ADRUN) = 0, ADC is stopped,
AD conversion wake up is invalid.
Oscillator, TCC and TIMERX are stopped.
AD conversion interrupt is invalid.
RE (ADWE) Bit 3 = 0, IOCF0 (ADIE) Bit 3 = 1
Set RF (ADIF) = 1, R9 (ADRUN) = 0,
ADC is stopped,
AD conversion wake up is invalid.
Oscillator, TCC and TIMERX are stopped.
RE (ADWE) Bit 3 = 1, IOCF0 (ADIE) Bit 3 = 0
AD Conversion
Wake-up+ Next Instruction,
Oscillator, TCC and TIMERX keep on running.
Wake up when AD conversion is completed.
RE (ADWE) Bit 3 = 1, DISI + IOCF0 (ADIE) Bit 3 = 1 DISI + IOCF0 (ADIE) Bit 3 = 1
Wake-up+ Next Instruction+ RF (ADIF) = 1,
Oscillator, TCC and TIMERX keep on running. Next Instruction+ RF (ADIF) = 1
Wake up when AD conversion is completed.
RE (ADWE) Bit 3 = 1, ENI + IOCF0 (ADIE) Bit 3 = 1 ENI + IOCF0 (ADIE) Bit 3 = 1
Wake-up+ Interrupt Vector (0x0C )+ RF
(ADIF) = 1,
Oscillator, TCC and TIMERX keep on running. Interrupt Vector (0x0C )+ Set RF (ADIF) = 1
Wake up when AD conversion is completed.
PWMX (PWM1,
PWM2, PWM3)
(When TimerX
matches PRDX)
DISI + IOCF0 (PWMXIE)=1
N/A
Product Specification (V1.0) 08.30.2007
Next Instruction+ Set RF (PWMXIF) = 1
ENI + IOCF0 (PWMXIE)=1
Interrupt Vector (0x012 or 0x15 or 0x18 )+
Set RF (PWMXIF) = 1
• 33
EM78P345/6/7N
8-Bit Microcontroller
Signal
Sleep Mode
Normal Mode
RE (CMPWE) Bit 2 = 0, IOCF0 (CMPIE) Bit 7 = 0
IOCF0 (CMPIE) Bit 7 = 0
Comparator output status chang wake-up is
invalid.
Oscillator, TCC and TIMERX are stopped.
Comparator output status change interrupt
is invalid.
RE (CMPWE) Bit 2 = 0, IOCF0 (CMPIE) Bit 7 = 1
Comparator
(Comparator
Output Status
Change)
Set RF (CMPIF) = 1,
Comparator output status change wake up is
invalid.
Oscillator, TCC and TIMERX are stopped.
RE (CMPWE) Bit 2 = 1, IOCF0 (CMPIE) Bit 7 = 0
Wake-up+ Next Instruction,
Oscillator, TCC and TIMERX are stopped.
RE (CMPWE) bit2=1, DISI + IOCF0 (CMPIE) bit 7 = 1 DISI + IOCF0 (CMPIE) bit 7 = 1
Wake-up+ Next Instruction+ Set RF (CMPIF) = 1,
Next Instruction+ Set RF (CMPIF) = 1
Oscillator, TCC and TIMERX are stopped.
RE (CMPWE) Bit 2 = 1, ENI + IOCF0 (CMPIE) Bit 7 = 1
ENI + IOCF0 (CMPIE) Bit 7 = 1
Wake-up+ Interrupt Vector (0x012 or 0x15 or
0x18)+ Set RF (CMPIF) = 1,
Oscillator, TCC and TIMERX are stopped.
Interrupt Vector (0x012 or 0x15 or 0x18)+
Set RF (CMPIF) = 1
BANK1-R6 (LVDWE) Bit 3 = 0, BANK1-R6 (LVDIE)
Bit 4 = 0
BANK1-R6 (LVDIE) Bit 3 = 0
Low voltage detector is invalid.
Oscillator, TCC and TIMERX are stopped.
Low voltage detector is invalid.
BANK1-R6 (LVDWE) Bit 3 = 0, BANK1-R6 (LVDIE)
Bit 4 = 1
BANK1-R6 (LVDIE) Bit 4 = 0
Set BANK0-RE (LVDIF) Bit 6 =1,
Low voltage detector is invalid.
Oscillator, TCC and TIMERX are stopped.
Low Voltage
Detector
BANK1-R6 (LVDWE) Bit 3 = 1, BANK1-R6 (LVDIE)
Bit 4 = 0
Wake-up+ Next Instruction,
Oscillator, TCC and TIMERX are stopped.
BANK1-R6 (LVDWE) Bit 3 = 1, DISI+ BANK1-R6
(LVDIE) Bit 4 = 1
WDT Time Out
IOCE (WDTE)
Bit 7 = 1
34 •
DISI + BANK1-R6 (LVDIE) Bit 4 = 1
Wake-up+ Next Instruction+ Set BANK 1- R6
(LVDIF) Bit 3 = 1,
Oscillator, TCC and TIMERX are stopped.
Next Instruction+ Set BANK1-R6 (LVDIF)
Bit 3 = 1
BANK1-R6 (LVDWE) Bit 3 = 1,ENI+ BANK 1-R6
(LVDIE) Bit 4 = 1
ENI + BANK1-R6 (LVDIE) Bit 4 =1
Wake-up+ Interrupt Vector (0x1B)+ Set
BANK1-R6 (LVDIF) Bit 3 = 1,
Oscillator, TCC and TIMERX are stopped.
Interrupt Vector (0x1B)+ Set BANK 1-R6
(LVDIF) Bit 3 = 1
Wake-up+ Reset (address 0x00)
Reset (Address 0x00)
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
6.5.1.2 Register Initial Values after Reset
下面概述了寄存器的初始化值.
Address
Name
Reset Type
Bit Name
Type
N/A
N/A
N/A
IOC50
IOC60
IOC70
Power-on
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
C57
C56
C55
C54
C53
C52
C51
C50
−
−
−
−
−
−
−
345
N/A
1
1
1
1
1
1
/RESET & WDT 0
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
0
Bit Name
C67
C66
C65
C64
C63
C62
C61
C60
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
−
−
C75
C74
C73
C72
C71
C70
Type
−
−
−
Power-on
0
0
1
0
1
0
1
0
1
0
1
0
1
/RESET & WDT
0
0
1
0
1
0
1
0
1
0
1
0
1
Wake-up from
Pin Change
P
P
P
0
P
0
P
0
P
0
P
0
P
PWM3E PWM2E PWM1E
Power-on
IOC80
(PWMCON) /RESET &WDT
Wake-up from
Pin Change
345
346
347
345
346
347
345
346
347
345
346
347 345
346
347
−
T1EN
T1P2
T1P1
T1P0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
T3EN
T2EN
T3P2
T3P1
T3P0
T2P2
T2P1
T2P0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
−
−
−
−
−
CPOUT
COS1
COS0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
Bit Name
/PD67
/PD66
/PD65
/PD64
/PD63
/PD62
/PD61
/PD60
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Power-on
IOC90
(TMRCON) /RESET & WDT
Wake-up from
Pin Change
Power-on
IOCA0
(CMPCON) /RESET & WDT
Wake-up from
Pin Change
IOCB0
347
1
Bit Name
N/A
346
1
Bit Name
N/A
Bit 6
0
Bit Name
N/A
Bit 7
Product Specification (V1.0) 08.30.2007
• 35
EM78P345/6/7N
8-Bit Microcontroller
Address
N/A
Name
IOCC0
Reset Type
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bit Name
/OD57
/OD56
/OD55
/OD54
/OD53
/OD52
/OD51
/OD50
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
/PH67
/PH66
/PH65
/PH64
/PH53
/PH52
/PH51
/PH50
Bit Name
N/A
N/A
IOCD0
IOCE0
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
WDTE
EIS
PSWE
PSW2
PSW1
PSW0
−
−
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
ADIE
EXIE
ICIE
TCIE
Bit Name
N/A
IOCF0
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
N/A
IOC51
(PRD1)
Power-on
/RESET & WDT
Wake-up from
Pin Change
Bit Name
N/A
IOC61
(PRD2)
N/A
N/A
36 •
IOC71
(PRD3)
IOC81
(DT1L)
IOC91
(DT2L)
PRD1[9] PRD1[8] PRD1[7] PRD1[6] PRD1[5] PRD1[4] PRD1[3] PRD1[2]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
PRD2[9] PRD2[8] PRD2[7] PRD2[6] PRD2[5] PRD2[4] PRD2[3] PRD2[2]
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
N/A
CMPIE PMW3IE PMW2IE PWM1IE
PRD3[9] PRD3[8] PRD3[7] PRD3[6] PRD3[5] PRD3[4] PRD3[3] PRD3[2]
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
DT1[7]
0
DT1[6]
0
DT1[5]
0
DT1[4]
0
DT1[3]
0
DT1[2]
0
DT1[1]
0
DT1[0]
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
Bit Name
DT2[7]
DT2[6]
DT2[5]
DT2[4]
DT2[3]
DT2[2]
DT2[1]
DT2[0]
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
Power-on
/RESET & WDT
Wake-up from
Pin Change
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Address
N/A
N/A
Name
IOCA1
(DT3L)
IOCB1
(DT1H,
2H, 3H)
Reset Type
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bit Name
DT3[7]
DT3[6]
DT3[5]
DT3[4]
DT3[3]
DT3[2]
DT3[1]
DT3[0]
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
0
P
P
Bit Name
−
−
DT3[9]
DT3[8]
DT2[9]
DT2[8]
DT1[9]
DT1[8]
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
N/A
IOCC1
(TMR1L)
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
N/A
IOCD1
(TMR2L)
N/A
N/A
0x00
IOCE1
(TMR3L)
IOCF1
(TMR1H,
2H, 3H)
CONT
R0 (IAR)
TMR2[7] TMR2[6] TMR2[5] TMR2[4] TMR2[3] TMR2[2] TMR2[1] TMR2[0]
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
N/A
TMR1[7] TMR1[6] TMR1[5] TMR1[4] TMR1[3] TMR1[2] TMR1[1] TMR1[0]
TMR3[7] TMR3[6] TMR3[5] TMR3[4] TMR3[3] TMR3[2] TMR3[1] TMR3[0]
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
−
−
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
INTE
INT
TS
TE
PSTE
PST2
PST1
PST0
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
-
-
-
-
-
-
-
-
Power-on
U
U
U
U
U
U
U
U
/RESET & WDT
P
P
P
P
P
P
P
P
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Product Specification (V1.0) 08.30.2007
TMR3[9] TMR3[8] TMR2[9] TMR2[8] TMR1[9] TMR1[8]
• 37
EM78P345/6/7N
8-Bit Microcontroller
Address
0x01
0x02
Name
R1 (TCC)
R2 (PC)
Reset Type
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bit Name
-
-
-
-
-
-
-
-
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
-
-
-
-
-
-
-
-
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from P
Change
0x03
R3 (SR)
Bit Name
IOCS
PS1
PS0
T
P
Z
DC
C
Power-on
0
0
0
1
1
U
U
U
/RESET & WDT
0
0
0
t
t
P
P
P
Wake-up from
Pin Change
P
P
P
t
t
P
P
P
BS7
BS6
−
−
−
−
−
−
0
0
U
U
U
U
U
U
0
0
P
P
P
P
P
P
P
P
P
P
P
P
P
P
Bit Name
P57
P56
P55
P54
P53
P52
P51
P50
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
P67
P66
P65
P64
P63
P62
P61
P60
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
-
-
P75
P74
P73
P72
P71
P70
Power-on
0
0
1
1
1
1
1
1
/RESET & WDT
0
0
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
Power-on
0
0
0
0
0
0
0
0
/RESET & WDT
0
0
0
0
0
0
0
0
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
0x04
Power-on
R4 (RSR) /RESET & WDT
Wake-up from
Pin Change
0x05
0x06
0x7
0x8
38 •
Bank 0
R5
Bank 0
R6
Bank 0
R7
Bank 0
R8
(AISR)
Jump to Address 0x08 or continue to execute next instruction
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Address
0x9
0xA
0xB
0xC
0xD
0xE
0XF
0x5
0x6
0x7
Name
Reset Type
Bit 7
Bit 6
Bit 5
Bit 4
Bit Name
VREFS CKR1 CKR0 ADRUN
Bank 0
Power-on
0
0
0
0
R9
/RESET and WD
0
0
0
0
(ADCON)
Wake-up from
P
P
P
P
Pin Change
Bit Name
CALI
SIGN VOF[2] VOF[1]
Power-on
0
0
0
0
Bank 0
RA
/RESET and WD
0
0
0
0
(ADOC)
Wake-up from
P
P
P
P
Pin Change
Bit Name
AD11
AD10
AD9
AD8
Power-on
U
U
U
U
Bank 0
RB
/RESET and WD
U
U
U
U
(ADDDATA)
Wake-up from
P
P
P
P
Pin Change
−
−
−
−
Bit Name
Power-on
0
0
0
0
Bank 0
RC
/RESET and WD
0
0
0
0
(ADDATA1H)
Wake-up from
P
P
P
P
Pin Change
Bit Name
AD7
AD6
AD5
AD4
Power-on
U
U
U
U
Bank 0
RD
/RESET and WD
U
U
U
U
(ADDATA1L)
Wake-up from
P
P
P
P
Pin Change
−
−
−
−
Bit Name
Power-on
0
0
0
0
Bank 0
RE
/RESET and WD
0
0
0
0
(WUCR)
Wake-up from
P
P
P
P
Pin Change
Bit Name
CMPIF PWM3IF PWM2IF PWM1IF
Power-on
0
0
0
0
Bank 0
RF
/RESET & WDT
0
0
0
0
(ISR)
Wake-up from
P
P
P
P
Pin Change
−
−
Bit Name
PRD3[1] PRD3[0]
Power-on
0
0
0
0
Bank 1
R5
/RESET & WDT
0
0
0
0
(PRDxL)
Wake-up from
P
P
P
P
Pin Change
−
Bit Name
LVDIF
/LVD
LVDIE
Power-on
0
0
0
0
Bank 1
R6
/RESET & WDT
0
0
0
0
(LVDCR)
Wake-up from
P
P
P
P
Pin Change
−
−
−
Bit Name
Power-on
0
0
0
0
Bank 1
R7
/RESET & WDT
0
0
0
0
(OSSCR)
Wake-up from
P
P
P
P
Pin Change
Product Specification (V1.0) 08.30.2007
Bit 3
Bit 2
Bit 1
Bit 0
ADPD
0
0
ADIS2
0
0
ADIS1
0
0
ADIS0
0
0
P
P
P
P
VOF[0]
0
0
−
−
−
0
0
0
0
0
0
P
P
P
P
AD7
U
U
AD6
U
U
AD5
U
U
AD4
U
U
P
P
P
P
AD11
U
U
AD10
U
U
AD9
U
U
AD8
U
U
P
P
P
P
AD3
U
U
AD2
U
U
AD1
U
U
AD0
U
U
P
P
P
P
ADWE CMPWE ICWE
0
0
0
0
0
0
0
0
P
P
P
P
ADIF
0
0
EXIF
0
0
ICIF
0
0
TCIF
0
0
P
P
P
P
PRD2[1] PRD2[0] PRD1[1] PRD1[0]
0
0
0
0
0
0
0
0
P
P
LVDWE LVDEN
0
0
0
0
P
P
LVD1
1
1
LVD0
1
1
P
P
P
P
HS3
0
P
HS2
0
P
HS1
0
P
HS0
0
P
P
P
P
P
• 39
EM78P345/6/7N
8-Bit Microcontroller
Address
0x8
0x9
0xA
0xB
0xC
0xD
0xE
Name
Bank 1
R8
Bank 1
R9
Bank 1
RA
Bank 1
RB
Bank 1
RC
Bank 1
RD
Bank 1
RE
Reset Type
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bit Name
/PD57
/PD56
/PD55
/PD54
/PD53
/PD52
/PD51
/PD50
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
−
−
−
/PD74
/PD73
/PD72
/PD71
/PD70
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
/OD67
/OD66
/OD65
/OD64
/OD63
/OD62
/OD61
/OD60
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
−
−
−
/OD74
/OD73
/OD72
/OD71
/OD70
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
/PH57
/PH56
/PH55
/PH54
/PH63
/PH62
/PH61
/PH60
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
−
−
−
/PH74
/PH73
/PH72
/PH71
/PH70
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
TYPE1
TYPE0
LVR1
LVR0
RCM1
RCM0
Power-on
1
1
1
1
1
1
1
1
/RESET & WDT
1
1
1
1
1
1
1
1
Wake-up from
Pin Change
P
P
P
P
P
P
P
P
Bit Name
−
−
−
−
−
−
−
−
U
U
U
U
U
U
U
U
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
Power-on
0x10~
R10 ~ R3F /RESET & WDT
0x3F
Wake-up from
Pin Change
Legend: “–” = 未使用
“u” = 未知
40 •
“P” =复位前的值
“t” = 请参阅复位类型表 6.5.2
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
6.5.1.3 控制器复位框图
VDD
D
Oscillator
Q
CLK
CLK
CLR
Power-on Reset
Voltage
Detector
WTE
WDT Timeout
Reset
Setup time
WDT
/RESET
图. 6-8 控制复位框图
6.5.2
状态寄存器的T、P标志
复位初始化的触发时间:
(1)单片机上电
(2)RESET引脚有高-低-高的脉冲
(3)看门狗溢出
P、T标志值,如表5所示,可用于判断单片机由什么唤醒或复位。表6列出了可改变T、P
值的事件。
表5 复位后的T、P值
复位类型
T
P
1
1
运行模式下的/RESET引脚复位
*P
*P
休眠模式下的/RESET引脚唤醒
1
0
运行模式下WDT溢出
0
*P
休眠模式下WDT溢出唤醒
0
0
休眠模式下引脚状态改变唤醒
1
0
上电
*P:复位前状态
Product Specification (V1.0) 08.30.2007
• 41
EM78P345/6/7N
8-Bit Microcontroller
表6 事件对T和P状态的影响
事件
T
P
上电
1
1
WDTC指令
1
1
WDT溢出
0
*P
SLEP指令
1
0
休眠模式下引脚状态改变唤醒
1
0
* P:复位前状态
6.6 中断
EM78P417/8/9N有如下6种情况可引起中断:
(1)TCC溢出中断
(2)PORT 6端口输入状态变化中断
(3)外部中断 [(P50, /INT) pin].
(4)AD转换结束
(5)PWM中TMR1/TMR2/TMR3与PRD1/PRD2/PDR3分别相等
(6)比较器输出变化
(7)低电压检测
在PORT 6输入变化中断使能前,必须先读入R6寄存器(例如“MOV R6,R6”)。如果它
的状态改变,PORT6的每一个引脚均可具有这个功能,处于输出状态的引脚或者P50引
脚处于/INT状态除外。如果优先进入休眠模式执行SLEP使能,PORT 6输入状态变化中
断将把EM78P45N/346N/347N从休眠模式唤醒。如果总的中断被禁止,当控制器被唤醒
后它将继续执行随后的程序,如果总的中断使能,程序将分支到中断向量地址006H。
外部中断带有数字噪声抑制电路(输入脉冲小于8系统时钟时间消除了噪声)。边沿选
择可能带有/INT引脚。请查阅代码选项字1数字噪音防止的bit7~8详细说明
RF,中断标志寄存器,在相应位记录了中断请求情况。IOCF0位中断屏蔽寄存器。整体
的中断使能或者禁止由ENI或DISI指令完成。当中断发生时(如果使能),下一指令由
地址0X03取出。一旦进入中断处理程序,可轮流检测RF寄存器来确定中断源。推出中
断处理子程序前,必须清中断标志并使能中断以免重复中断。
不管其屏蔽位的状态或者ENI的执行,RF寄存器的相应标志位(ICIF位除外)会由中断
设置。注意读RF的结果使RF和IOCF0的逻辑与(参见图11)。RET1指令结束中断子程
序并使能整体中断。
在电源不适合的情况下,例如外部电源杂波干扰或 EMS测试,将导致电源猛烈波动.折射
这时VDD未作处理,提供的电压可能小于工作电压.当VDD上提供的电压小于工作电压
时,IC内核一定自动保存所有寄存器的状态,,
当定时发生中断时(使能中断),下一条指令将从0X09,0X12,0X15,和0X18H中提取
出,(TCC,Timer1,Timer2,Timer3各中断入口地址)当低电压检测到进中断时(使能中断)下
一条指令将 地址0X01取出.
42 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
在进入中断只程序之前,A,R3,R4,寄存器的值由硬件保存,如果另有一个中断发生
时,A,R3,R4,将被新的中断前的值取代,执行完中断程序,A,R3,R4,自动恢复.
Interrupt sources
ACC
Interrupt
occurs
STACKACC
ENI/DISI
R3
RETI
R4
STACKR3
STACKR4
图 6.9 中断支援图
在 EM78P345/6/7N, 每个中断有中断入口向量如下
中断向量
中断类型
优先级*
003H
外部中断
2
006H
Port 6 状态改变
3
009H
TCC 溢出中断
4
00CH
AD 转换完成进中断
5
00FH
比较器中断
6
012H
Timer 1 (PWM1) 溢出中断
7
015H
Timer 2 (PWM2) 溢出中断
8
018H
Timer 3 (PWM3) 溢出中断
9
01BH
低电压检测中断
1
*Priority: 1 = 优先级最高 ; 9 =优先级最低
图6-8 中断输入电路
Product Specification (V1.0) 08.30.2007
• 43
EM78P345/6/7N
8-Bit Microcontroller
6.7 A/D转换器(ADC)
AD转换电路包括一个8位模拟转换器,3个控制寄存器(AOSR/R8,ADCON/R9,
ADOC/RA),3个资料寄存器(ADDATA1/RB,ADDATAH/RC,ADDATA1L/RD)和
12位分辨率的AD转换器。其功能框图入图12所示。模拟参考电压(Vref)和模拟地由不
同引脚接入。
AD转换器是逐次逼近的。结果存入ADDATA,ADDATA1H和ADDATA1L。经ADCON
寄存器的ADIS0、ADIS1、ADIS2设置后,输入通道由仿真输入转换器选择。选择外部
参考电源比选择内部参考电源采出的值更准确.
ADC7
Vref
ADC6
h
c
t
i
w
S
g
o
l
a
n
A
1
8
ADC5
ADC4
ADC3
ADC2
ADC1
ADC0
Power-Down
ADC
( successive approximation )
Start to Convert
Fsco
4-1
MUX
Internal RC
7 ~ 0
AISR
2
1
0
ADCON
6
3
5
ADCON
RF
11 10
9
8
7
6
ADDATA1H
5
4
3
2
1
4
0
3
ADCON
ADDATA1L
DATA BUS
图 6-11AD转换功能框图
6.7.1
ADC控制寄存器(AOSR/R8,ADCON/R9,ADOC/RA)
6.7.1.1 R8(AOSR:ADC 输出选择寄存器)
AOSR寄存器定义PORT 6引脚分别作为模拟输入或者作为数字I/O。
BIT
7
6
5
4
3
2
1
0
SYMBOL
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
*Init_Value
0
0
0
0
0
0
0
0
Bit 7 (ADE7 ): P67引脚AD转换器使能位。
0 = ADC7禁止,P67作为I/O引脚。
1 = ADC7使能作为模拟输入引脚。
Bit 6 (ADE6 ): P66引脚AD转换器使能位。
0 = ADC6禁止,P66作为I/O引脚。
1 = ADC6使能作为模拟输入引脚。
Bit 5 (ADE5 ): P65引脚AD转换器使能位。
0 = ADC5禁止,P65作为I/O引脚。
1 = ADC5使能作为模拟输入引脚。
Bit 4 (ADE4 ): P64引脚AD转换器使能位。
44 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
0 = ADC4禁止,P64作为I/O引脚。
1 = ADC4使能作为模拟输入引脚。
Bit 3 (ADE3 ): P63引脚AD转换器使能位。
0 = ADC3禁止,P63作为I/O引脚。
1 = ADC3使能作为模拟输入引脚。
Bit 2 (ADE2 ): P62引脚AD转换器使能位。
0 = ADC2禁止,P62作为I/O引脚。
1 = ADC2使能作为模拟输入引脚。
Bit 1 (ADE1 ): P61引脚AD转换器使能位。
0 = ADC1禁止,P61作为I/O引脚。
1 = ADC1使能作为模拟输入引脚。
Bit 0 (ADE0 ): P60引脚AD转换器使能位。
0 = ADC0禁止,P60作为I/O引脚。
1 = ADC0使能作为模拟输入引脚。
当P60/ADE0作为模拟输入或者数字I/O的时候,请注意IOCA0控制寄存器
的COS1和COS0位。比较器/OP选择位如图3所示。
P60/ADE0/CO引脚优先级:
优先
高
中
低
P60/ADE0/CO
CO
ADE0
P60
6.7.1.2 R9(ADCON:A/D 控制寄存器)
ADCON寄存器控制ADC操作,确定当前哪一引脚有效。
BIT
7
6
5
4
3
2
1
0
SYMBOL
VREFS
CKR1
CKR0
ADRUN
ADPD
ADIS2
ADIS1
ADIS0
*Init_Value
0
0
0
0
0
0
0
0
Init_Value:上电复位后的初始值
Bit 7 (VREFS ): ADC的Vref的输入源。
0 = ADC的Vref与Vdd连接(缺省值),P53/VREF引脚的功能为P53。
1 = ADC的Vref与P53/VREF连接。
请注意P53/PWM3/VREF引脚。它不能同时被用作PWM3和VREF。
如果P53/PWM3/VREF作为VREF模拟输入引脚,那么PWM3E必须为“0”。
P53/PWM3/VREF引脚优先级:
Product Specification (V1.0) 08.30.2007
优先
高
中
低
P53/PWM3/VREF
VREF
PWM3
P53
• 45
EM78P345/6/7N
8-Bit Microcontroller
Bit 6:Bit 5 (CKR1:CKR0 ): ADC的振荡时钟预分频器的比率。
00 = 1:4(缺省值)
01 = 1:16
10 = 1:64
11 = 1:WDT环形电路振荡器频率
CKR0:CKR1 工作模式最大工作频率
00 Fsco/16 4 MHz
01 Fsco/4 1 MHz
10 Fsco/64 16MHz
11 内部 RC 1 MHz
Bit 4 (ADRUN ): ADC开始运行。
1 = 一个A/D转换开始。此位可以由软件设定;
0 = 转换完成复位。此位不可以由软件设定;
ADC低功耗模式。
Bit 3 (ADPD ):
1 = ADC工作状态;
0 = 在CPU工作时关闭参考电阻以省电;
Bit 2:Bit 0 (ADIS2:ADIS0 ): 模拟输入选择
000 = AN0/P60;
001 = AN1/P61;
010 = AN2/P62;
011 = AN3/P63;
100 = AN4/P64;
101 = AN5/P65;
110 = AN6/P66;
111 = AN7/P67;
只有在ADIF位和ADRUN位都为低电平的时候,这几位才能改变。
6.7.1.3 RA(ADOC:A/D 偏移量寄存器)
7
6
5
4
3
2
1
0
CALL
SIGN
VOF[2]
VOF[1]
VOF[0]
“0”
“0”
“0”
Bit 7 (CALI ): A/D偏移校准使能位
0 = 校准禁止;
1 = 校准使能。
46 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Bit 6 (SIGN ): 偏移电压极性位
0 = 负极电压;
1 = 正极电压。
Bit 5~Bit 3 (VOF[2]:VOF[0]): 偏移电压位
VOF[2]
VOF[1]
VOF[0]
EM78P417/8/9N
ICE418N
0
0
0
0LSB
0LSB
0
0
1
2LSB
1LSB
0
1
0
4LSB
2LSB
0
1
1
6LSB
3LSB
1
0
0
8LSB
4LSB
1
0
1
10LSB
5LSB
1
1
0
12LSB
6LSB
1
1
1
14LSB
7LSB
Bit 2~Bit 0:
未使用,读作“0”。
ADC资料寄存器(ADDATA/RB,ADDATA1H/RC,
ADDATA1L/RD)
6.7.2
AD转换结束,结果送入ADDATA,ADDATA1H和ADDATA1L。ADRUN位清0,ADIF
被置1。
A/D采样时间
6.7.3
逐次逼近式AD转换的准确性、线性、速度跟ADC和比较器特性相关。源电阻和内部采
样电阻直接影响采样保持电容充电所需时间。应用程控采样时间长短以满足特定精度需
要。总的来说,对于每千奥姆源电阻,程序应等待2µS。对于低阻源至少等待2µS。模拟
源的最高推荐电阻是10KΩ at Vdd=5V。模拟通道选定后,在转换开始前,所需等待时间
应先满足。
A/D转换时间
6.7.4
CKR0、CKR1根据指令周期选择转换时间(Tct),这允许主控制器以最高频率运行但不
影响AD转换精度。对于EM78P345/346/347N,每位转换时间为4µS。表7给出了Tct与最
高工作频率的关系。
表7 Tct与最大工作频率
CKR1:CKR0
工作模式
最大工作频率
每位最大转换频率
最大转换频率
00
01
Fosc/16
Fosc/4
4MHz
1MHz
250kHz (4µs)
250kHz (4µs)
15×4µs=60µs (16.7kHz)
15×4µs=60µs (16.7kHz)
10
Fosc/64
16MHz
250kHz ( 4µs)
11
Fosc/8
2MHz
250kHz ( 4µs)
15×4µs=60µs (16.7kHz)
15×4µs=60µs (16.7kHz)
Product Specification (V1.0) 08.30.2007
• 47
EM78P345/6/7N
8-Bit Microcontroller
注意
没有被用作模拟输入引脚的引脚可以被用作常规输入或输出引脚。
在转换的时候,请不要执行输出指令以保证所有引脚的精确度。
6.7.5
休眠模式时的AD转换
为了得到更精确的ADC值和降低功耗,AD转换可以在休眠模式下进行。当执行SLEP指
令时,主控制器停止工作,但振荡器,TCC,TIMER1,TIMER2,TIMER3和A/D转换
继续工作。
决定AD转换结束:
1.
R9寄存器的ADRUN位清“0”。
2.
在休眠模式下从A/D转换唤醒保持工作。
转换结束后,结果送入ADDATA,ADDATA1H,和ADDATA1L,若ADWE使能,系统
将被唤醒。否则,A/D转换器将关闭,不论ADPD位是什么状态
6.7.6 编程步骤/事项
6.7.6.1 编程步骤
遵循以下步骤完成AD转换:
1.
在R8(AISR)寄存器写入8位(ADE7:ADE0)以定义R6的特性:数字I/O、模拟
信道和参考电压引脚;
2. 通过R9/ADCON寄存器设置AD模块:
a) 选择AD输入通道( ADIS2 : ADIS0 )
b) 定义AD转换时钟频率( CKR1 : CKR0 )
c) 选择AD参考电压源
d) 置ADPD 位为 1
3. 如果启动唤醒功能,置ADWE为1
4. 如果启动中断功能,置 ADIE位为1
5. 如果启动中断功能,写 “ENI” 指令
6. 置 ADRUN 位为 1
7. 如果需要写 “SLEP” 指令
8. 等待AD转换完成唤醒或ADRUN位为0
9. 从转换数据寄存器读取ADDATA或者ADDATA1H和ADDATA1L.
10. 清中断标志位
11. 下一次转换,跳到步骤1或步骤2,下一次采样时间至少等待 2 Tct
. 注意:为了获得准确的结果,在转换过程中需要避免在I/O端口上传输数据。
48 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
6.7.6.2 程序范例
A. 定义通用寄存器
R_0 == 0
PSW == 3
PORT5 == 5
PORT6 == 6
RE== 0XE
RF== 0XF
; 间接寻址寄存器
; 状态寄存器
; 唤醒控制寄存器
; 中断状态寄存器
B. 定义控制寄存器
IOC50 == 0X5
IOC60 == 0X6
CINT == 0XF
; Port 5控制寄存器
; Port 6控制寄存器
;中断控制寄存器
C. ADC 控制寄存器
ADDATA == 0xB
AISR == 0x08
ADCON == 0x9
; ADC转换的数据
; ADC 输入通道选择寄存器
; 7
6
5
4
3
2
1
0
; VREFS CKR1 CKR0 ADRUN ADPD ADIS2 ADIS1 ADIS0
D. Define Bits in ADCON
ADRUN == 0x4
ADPD == 0x3
; ADC 开始转换设置位
; ADC电源开关设置位
E. 程序开始
ORG 0
JMP INITIAL
; 起始地址
;
ORG 0x08
; 中断向量
;
;
;(用户程序片段)
;
;
CLR RF
; 清中断标志位
BS ADCON, ADRUN
; AD开始转换如果
RETI
INITIAL:
MOV A,@0B00000001
MOV AISR,A
MOV A,@0B00001000
MOV ADCON,A
En_ADC:
MOV A, @0BXXXXXXX1
IOW PORT6
MOV A, @0BXXXX1XXX
MOV RE,A
MOV A, @0BXXXX1XXX
; 设置P60为AD输入口
; 设置P60为AD模拟量输入口,打开AD电源
; 选择AD转换时钟频率
; P60 设置为输入,其它口根据需要设置
;
; 如果需要唤醒功能,使能AD唤醒
; 如果需要进入中断,使能AD中断,
IOW C_INT
ENI
; 开总中断
BS ADCON, ADRUN
; AD开始转换
;如果开启 了中断功能,下面的三条指令可以省略。
Product Specification (V1.0) 08.30.2007
• 49
EM78P345/6/7N
8-Bit Microcontroller
POLLING:
JBC ADCON, ADRUN
JMP POLLING
;
;(程序片段)
;
;AD是否转换完成
; AD转换完成,ADRUN被清零
6.8 双 PWM (脉宽调制)
6.8.1 概述
在PMW模式,PWM1、PWM2和PWM3引脚产生最高10位精度的脉宽调制输出。(功能
框图如图)PWM输出有一个周期和占空比,它保持高输出。波特率为周期的倒数。图12
描绘了周期与占空比的关系。
Fosc
DT1H
+
DT1L
1:1
1:2
1:4
1:8
1:16
1:64
1:128
1:256
DL1H + DL1L
latch
To PW M 1IF
Duty C ycle
M atch
Com parator
M UX
PW M 1
R
TM R1H + TM R 1L
reset
Q
S
IOC 80, 5
Com parator
T1P2 T1P1 T1P0 T1EN
Period
M atch
PRD1
Data Bus
Data Bus
D L2H + D L2L
T2P2 T2P1 T2P0 T2EN
DT2H
+
DT2L
Com parator
latch
To PW M 2IF
Duty C ycle
M atch
PW M 2
Fosc
TM R2H + TM R 2L
1:1
1:2
1:4
1:8
1:16
1:64
1:128
1:256
M UX
R
reset
Q
S
IOC 80, 6
Com parator
Period
M atch
PRD2
Fosc
DT3H
+
DT3L
1:1
1:2
1:4
1:8
1:16
1:64
1:128
1:256
DL3H + DL3L
latch
Com parator
M UX
To PW M 3IF
Duty Cycle
M atch
PW M 3
R
TM R3H + TM R 3L
reset
Com parator
T3P2 T3P1 T3P0 T3EN
Q
S
IOC 80, 7
Period
M atch
PRD3
Data Bus
Data Bus
图 6-12 3 PWMs 功能框图
50 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Period
Duty Cycle
DT1 = TMR1
PRD1 = TMR1
图. 6-13 PWM 输出定时器
6.8.2 增量定时器/计数器(TMRX:RMR1H/TWR1L,TMR2H/TWR2L
或者TMR3H/TWR3L)
TMRX为10位时钟计数器,预分频系数可编程。它们是作为PWM模式的波特率发生器。
TMRX只可读。将T1EN位([IOC80<3>]),T2EN 位 [IOC90<6>]或者T3EN 位[IOC90<7>]
清0可把TMRX关闭以降低功耗。
6.8.3
PWM周期(PRDX:PRD1或者PRD2)
写PRDX寄存器可确定PWM周期。当TMRX等于PRDX时,下一增量周期将有如下事件
发生:
„
TMRX清0;
„
PWMX引脚设置为1;
„
PWM占空比由DT1/DT2/DT3锁存至DL1/DL2/DL3 。 注意:若占空比为0,则PWM
输出不能设置。
„
PWMXIF引脚设置为1。
以下的公式描述了如何计算PWM周期:
周期 = (PRDX + 1) * (1/Fosc) * CLKS/2 * (TMRX 预分频系数 )
例:PRDX = 49;Fosc = 4MHz;编码选择寄存器CLKS位 = 0(2个振荡器周期);
TMRX(0,0,0) = 1:1
那么:周期 = (49+1) *(1/4M)* 2/2 * 1 = 12.5µS
6.8.4
PWM占空比( DTX: DT1H/ DT1L, DT2H/ DT2L 和DT3H/ DT3L;
DLX: DL1H/DL1L, DL2H/DL2L 和DL3H/DL3L )
设置DTX寄存器来设置PWM占空比,当TMRX清零时占空比由DTX载入DLX锁存当DLX
等于TMRX,PWMX引脚清0。DTX寄存器的值可随时写入,但只有在DLX值等于TMRX
之后才可锁存进DLX。
PWM占空比计算公式如下:
占空比 = (DTX) * (1/Fosc) * CLKS/2 * (TMRX 预分频系数)
例如:
Product Specification (V1.0) 08.30.2007
• 51
EM78P345/6/7N
8-Bit Microcontroller
DTX=10; Fosc=4MHz; 代码选项寄存器CLKS位 =0 (2 oscillator periods);
TMRX (0, 0, 0) = 1:1,
占空比=10 * (1/4M) * 2/2 * 1 = 2.5us
6.8.5 比较器 X
匹配发生时,改变输出状态,同时TMRRXIF标志置1.
6.8.6 PWM编程步骤
将PWM周期装入PRDX.
1. 将PWM占空比载入 DTX.
2. 如果需要,通过IOCF0使能中断功能
3. 通过设置IOC80使能 PWMX 引脚作为输出口.
4. 写IOC51,选择预分频系数,使能PWMX和TMRX
6.9 定时器
6.9.1 概述
定时器1(TMR1),定时器2(TMR2)和定时器3(TMR3)(TMRX)是10位时钟计数
器,预分频系数可分别编程。它们是设计给PWM模式做波特率发生器的。TMRX只读。
在休眠模式下A/D转换不运行,定时器1,定时器2和定时器3会停止运行。在休眠模式下
同时运行A/D转换,定时器1,定时器2和定时器3将继续运行。
6.9.2
功能描述
以下为功能框图。各信号和方框描述如下:
52 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Fosc
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256
To PWM1IF
MUX
TMR1X
reset
Period
Match
Comparator
T1P2 T1P1 T1P0 T1EN
PRD1
Data Bus
Data Bus
PRD2
T2P2 T2P1 T2P0 T2EN
Comparator
TMR2X
Fosc
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256
reset
Period
Match
MUX
To PWM2IF
*TMR1X = TMR1H + TMR1L;
*TMR2X = TMR2H + TMR2L;
*TMR3X = TMR3H + TMR3L
Fosc
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256
To PWM13F
MUX
TMR3X
reset
Period
Match
Comparator
T3P2 T3P1 T3P0 T3EN
PRD3
Data Bus
Data Bus
图6-12 TMRX结构框图
Fosc: 输入时钟.
预分频 (T1P2, T1P1 and T1P0 / T2P2, T2P1 and T2P0 / T3P2, T3P1 and T3P0): 1:1,
1:2, 1:4, 1:8, 1:16, 1:64, 1:128, 和1:256由TMRX设置. 任何形式复位发生后都
会清零。
TMR1X, TMR2X and TMR3X (TMR1H/TWR1L, TMR2H/TMR2L, & TMR3H/TMR3L):
Timer X 寄存器; TMRX自动加1直到与PRDX相同后变为1,(默认为1)
PRDX (PRD1, PRD2 and PRD3):
PWM 周期寄存器
比较器X (比较器1和比较器 2):
相匹配后TMRX复位,同时 TMRXIF标志置1.
6.9.3 相关寄存器编程
Product Specification (V1.0) 08.30.2007
• 53
EM78P345/6/7N
8-Bit Microcontroller
相关寄存器操作如下表所示。必须注意的是,如果TMRX被使用,对应的PWMX要禁止。
即PWMCON的Bit7:Bit5应清0
6.9.3.1 TMR1, TMR2, TMR3 的相关控制寄存器
Address
Name
Bit 7
Bit 6
Bit 5
IOC80
PWMCON/IOC80 PWM3E PWM2E PWM1E
IOC90
TMRCON/IOC90
T3EN
T2EN
T3P2
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
“0”
T1EN
T1P2
T1P1
T1P0
T3P1
T3P0
T2P2
T2P1
T2P0
6.9.4 定时器编程步骤
(1)将定时器周期加载PRDX;
(2)如果需要,写IOCF0使能中断;
(3)将带有TMRX预分频系数的期望值载入PWMCON和TMRCON,使能TMRX,禁止
PWMX。
6.10 比较器
EM78P346/7N 有一个比较器,是由两个模拟输入,一个输出组成。比较器可以在睡眠
模式下唤醒。比较器电路图如下:
Cin -
CMP
Cin+
CO
+
5m V
CinCin+
5m V
Output
图. 6-15 比较器电路图和工作模式
6.10.1 外部参考信号
Cin+与Cin-的模拟信号相比较,比较器的数字输出(CO)信号相应变化。
54 •
„
参考信号应在Vss和Vdd之间;
„
参考电压可加在比较器任一引脚上;
„
极值检测应用可为同一个参考;
„
相同或不同参考,比较器均可工作。
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
注意
1.参考信号必须在VSS与VDD之间
2.参考电压可加在比较器任一引脚上
3.极值检测应用可为同一参考
4.相同或不同,比较器均可工作。
6.10.2 比较器输出
„ 比较结果存储在 IOCA0的CMPOUT 位
„
通过设置IOCAO寄存器的BIT1和BIT0<COS1和COS0>值为<1,0>使得比较器的输
出到CO(P60脚)比较器/OP选择位如表3所示。
请注意P60/ADE0/CO引脚。它不能同时被用作CO和ADEO。
P60/ADE0/CO引脚优先级:
P60/ADE0/CO引脚优先级:
„
优先
高
中
低
P60/ADE0/CO
CO
ADE0
P60
下图显示了比较器输出框图.
To C0
F ro m O P I/O
CMRD
EN
Q
EN
Q
D
D
To CMPO UT
RESET
T o C P IF
CMRD
F r o m o th e r
c o m p a r a to r
图6-16 比较器输出配置
6.10.3 作为运算放大器使用
如果在输出输入直间接一个回馈电阻可作放大使用,在这种情况下,为了降低功耗设置
IOCA0寄存器的bit1,bit0<COS1,COS0>为<1,1>。比较器或者OP选择位如6.2.6所示。
6.10.4 比较器中断
„ CMPIE (IOCF0.7)和 “ENI” 指令必须使能
„ 比较器输出 无论什么时候发生变化都会产生中断.
„ 引脚的变化可由 CMPOUT, IOCA0<2>.位读出
„ CMPIF (RF.7), 中断标志位, 只能通过软件清零
6.10.5 从睡眠模式下唤醒
Product Specification (V1.0) 08.30.2007
• 55
EM78P345/6/7N
8-Bit Microcontroller
„ 如果使能比较器功能和中断功能即使在睡眠模式仍然有效.
„
如果失去匹配,中断将单片机从休眠模式唤醒;
„
如有需要,功耗问题应考虑在内;
„ 如果休眠模式时不需要该项功能,应在进入休眠模式前关闭比较器
6.11 振荡器
6.11.1 振荡模式
EM78P345/6/7N可工作在4种振荡器模式:高频晶振模式(HXT),低频晶振模式(LXT),
外部RC振荡器模式(ERC),带有内部电容内部RC振荡器模式(IRC)。用户可通过对
代码寄存器编程来选择.可以通过在CODE选择寄存器内对SOC2,OCS1和OSC0的编程来
选择其中之一。
由OSC2, OCS1, 和 OSC0定义的振荡模式描述如下:
OSC2
OSC1
OSC0
1
Oscillator Modes
0
0
0
1
ERC (External RC oscillator mode); P54/OSCO funcions as P54
ERC (External RC oscillator mode); P54/OSCO functions as OSCO
0
0
1
2
0
1
0
2
IRC (Internal RC oscillator mode); P54/OSCO funtions as OSCO
0
1
1
LXT1 (Frequency range of LXT1 mode is 1MHz ~ 100kHz)
1
0
0
HXT1 (Frequency range of HXT mode is 12MHz ~ 6MHz)
1
0
1
LXT2 (Frequency range of XT mode is 32kHz)
1
1
0
HXT2 (Frequency range of XT mode is 6MHz ~ 1MHz.) (default)
1
1
1
IRC (Internal RC oscillator mode); P54/OSCO functions as P54
1
In ERC mode, OSCI is 作振荡引脚. OSCO/P54 is可通过code option Word 0 Bit 6 ~ Bit 4设置.
2
In IRC mode, P55普通IO. OSCO/P54可通过 code option Word 0 Bit 6 ~ Bit 4设置.
在不同电压下的最大频率如下:
Conditions
VDD
Max. Freq. (MHz)
2.1
4
4.5
16
Two clocks
6.11.2 晶体振荡器/陶瓷谐振器(XTAL)
EM78P345/6/7N可被OSCI引脚上的外部时钟驱动 如下图:
Ext.
Clock
OSCO
OSCO
图 6-17 外部时钟电路
56 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
在大多数应用中,引脚OSCI和OSCO上可接晶体或陶瓷谐振器来产生振荡。图6—17为
电路。不论是HXT还是LXT模式都适用。
C1
OSCI
Crystal
OSCO
C2
RS
图. 6-18 Crystal/Resonator Circuit
下表为C1、C2的推荐值。由于各个谐振器特性不同,用户应参照其规格选择C1、C2的
合适值。串联电阻RS对于低频模式和AT strip cut晶体是需要的。
晶体振荡器/陶瓷谐振器的电容选择指南
Oscillator Type
陶瓷振荡器
Frequency Mode
HXT
LXT
晶体振荡器
HXT
:
Frequency
C1 (pF)
C2 (pF)
455kHz
100~150
100~150
2.0 MHz
20~40
20~40
4.0 MHz
10~30
10~30
32.768kHz
25
15
100kHz
25
25
200kHz
25
25
455kHz
20~40
20~150
1.0MHz
15~30
15~30
2.0MHz
15
15
4.0MHz
15
15
6.11.3 外部 RC振荡模式
在一些不需要精确计时应用中,使用RC振
Vcc
荡器节省成本(图6-19.然而RC的频率与提
供的电压电阻,电容以及温度有关,而且
Rext
由于每个IC的制成差别,振荡频率也略有
不同
OSCI
Cext
图 6-19 外部 RC 震荡模式电路图
为了获得稳定的系统频率,电容值不能小于20pF,电阻值不能大于1MΩ。如果它们不在
范围之内,频率将很容易受噪声、湿度、漏电的影响。
Product Specification (V1.0) 08.30.2007
• 57
EM78P345/6/7N
8-Bit Microcontroller
RC振荡器的电阻R越小频率越高。另一方面,对于很小的电阻值,如1KΩ,由于NMOS
不能正确将电容放电,振荡器将变得不稳定。
基于上述原因,必须牢记电源电压、工作温度、RC振荡器部件、封装形式及PCB布线方
式均会影响系统频率。
RC 振荡频率:
Cext
20 Pf
100 Pf
300 Pf
Rext
Average Fosc 5V, 25°C
Average Fosc 3V, 25°C
3.3k
3.5 MHz
3.0 MHz
5.1k
2.4 MHz
2.2 MHz
10k
1.27 MHz
1.24 MHz
100k
140 KHz
143 kHz
3.3k
1.21 MHz
1.18 MHz
5.1k
805 kHz
790 kHz
10k
420 kHz
418 kHz
100k
45 KHz
46 kHz
3.3k
550 kHz
526 kHz
5.1k
364 kHz
350 kHz
10k
188 kHz
185 kHz
100k
20 kHz
20 kHz
1
注意: : 以 DIP封装形式为量测标准.
2
: 这些值仅供参考.
: 频率偏差 ± 30%
3
6.11.4外部 RC振荡模式
The EM78P345/6/7N 提供一个通用的内部RC模式,频率的默认值在4MHz,内部RC晶
振也可以有其它的频率(1MHz, 16MHz, and 455KHz),频率是可以通过编码选择
(WORD1), RCM1, 和 RCM0来设置的。下表描述了EM78P345/6/7N在不同电压、温度、
和进程工作下产生的不同的内部RC频率.
内部 RC 偏差 (Ta=25°C, VDD=5V±5%, VSS=0V)
Internal
RC Frequency
Drift Rate
Temperature
(-40°C ~+85°C)
Voltage
(2.3V~3.9V~5.5V)
Process
Total
4MHz
±5%
±5%
±4%
±14%
16MHz
±5%
±5%
±4%
±14%
1MHz
±5%
±5%
±4%
±14%
455MHz
±5%
±5%
±4%
±14%
理论值仅供参考,实际值也许有变化
Table 1 内部RC校正选择
58 •
C3
C2
C1
C0
*Cycle Time (ns)
*Frequency (MHz)
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
390.6
365.0
342.5
322.6
2.56
2.74
2.92
3.1
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
C3
C2
C1
C0
*Cycle Time (ns)
*Frequency (MHz)
0
1
0
0
304.9
3.28
0
1
0
1
289.0
3.46
0
1
1
0
274.7
3.64
0
1
1
1
261.8
3.82
1
1
1
1
250.0
4.00
1
1
1
0
239.2
4.18
1
1
0
1
229.4
4.36
1
1
0
0
220.3
4.54
1
0
1
1
211.9
4.72
1
0
1
0
204.1
4.9
1
0
0
1
196.7
5.08
1
0
0
0
190.1
5.26
* 理论值仅供参考.实际值也许会因情况不同变化
6.12 上电事项
在电源稳定之前,任何单片机均不能保证开始正常工作。EM78P345/6/7N具有检测电压
1.7V~ 1.9V的电压检测器(POVD)。这就免去了附加的外部复位电路。如果VDD上升
的足够快(50ms或更快),它将正常工作。然而,在许多要求严格的应用中,还是需要
附加的外部电路来帮助解决问题。
6.12.1外部上电复位电路
图6-20所示的电路使用了外部RC产生复位脉冲。脉冲宽度(时间常数)应足够长,直至
V dd达到最低工作电压。当电源上升慢时,可使用该电路。由于/RESET引脚的漏电流约
为±5µA,建议R要大于40K。这样,引脚/RESET上电压将保持在0.2V以下。二极管D作
用是在掉电时充当短路回路。电容C将快速充分放电。限流电阻Rin用来避免过大的放电
电流或静电放电ESD流入引脚/RESET。
VDD
/RESET
R
Rin
D
C
图 6-20 外部上电复位电路
6.12.2 残存电压保护
有些应用中,如更换电池,Vdd断开后几秒钟内便恢复。这将有一个小于Vdd最小值但又
不为0的残存电压。这样将引起不正常复位。图6-21,6-22为残存电压保护电路。
Product Specification (V1.0) 08.30.2007
• 59
EM78P345/6/7N
8-Bit Microcontroller
VDD
VDD
33K
Q1
10K
/RESET
100K
1N4684
图. 6-21 残存电压保护电路1
VDD
VDD
R1
Q1
/RESET
R2
R3
图. 6-22 残存电压保护电路2
6.13 代码选项
EM78P345/6/7N有两个代码选项字和一个客户ID字它并非一般程序的一部分
Word 0
Word1
Word 2
Bit 12 ~ Bit 0
Bit 12 ~ Bit 0
Bit 12 ~ Bit 0
6.13.1 代码选项寄存器 (Word 0)
Word 0
Bit 12 Bit 11 Bit 10 Bit 9
Bit 8
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
LVR1 LVR0 TYPE1 TYPE0 CLKS ENWDTB OSC2 OSC1 OSC0 HLP
PR2
PR1
PR0
Bits 12~11 (LVR1 ~ LVR0): 低电压复位使能位
60 •
LVR1, LVR0
VDD Reset Level
11
10
01
00
2.4V
3.7V
4.1V
VDD Release Level
NA (Power-on Reset)
2.6V
3.9V
4.3V
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Bits 10~9 (TYPE1 ~ TYPE0): EM78P347N ,EM78P346N , EM78P345N.类型选择
TYPE1, TYPE0
SELECTION NO.
11
10
01
00
EM78P347N (默认)
EM78P346N
EM78P345N
EM78P347N
Bit 8 (CLKS):
指令周期选择位
0 = 两个时钟周期
1 = 四个时钟周期 (默认)
参考指令表部分
Bit 7 (ENWDTB):
看门狗使能位
0 = 使能
1 = 禁止 (默认)
Bits 6, 5 & 4 (OSC2, OSC1 & OSC0): 振荡模式选择位
OSC2
OSC1
OSC0
1
Oscillator Modes
0
0
0
1
0
0
1
0
1
0
ERC (外部 RC 振荡模式); P54/OSCO 作为 P54 引脚
ERC (外部 RC 振荡模式); P54/OSCO 作为 OSCO
2
IRC (内部 RC 震荡模式); P54/OSCO 作为 P54
2
IRC (内部 RC 震荡模式); P54/OSCO 作为 OSCO
0
1
1
LXT1 ( LXT1 频率范围是 1MHz ~ 100kHz)
1
0
0
HXT1 ( HXT1 频率范围是 16MHz ~ 6MHz)
1
0
1
LXT2 (L XT2 频率范围是 32kHz)
1
1
0
HXT2 (H XT2 频率范围是 6MHz ~ 1MHz) (默认)
1
1
1
1
In ERC 模式, OSCI 用作 oscillator引脚. OSCO/P54由 code option Word 0 Bit 6 ~ Bit 4.选择设置
2
In IRC 模式, P54作为IO引脚. OSCO/P54 由 option Word 0 Bit 6 ~ Bit 4选择设置
Bit 3 (HLP): 功耗选项
0:低功耗
1:高功耗
Bit 2 ~ 0 (PR2 ~ PR0): 保护位
PR2 ~ PR0 保护位. 保护类型如下:
PR2
PR1
PR0
Protect
0
0
0
Enable
1
1
1
Disable
6.13.2 代码选项寄存器 (Word 1)
Word 1
Bit 12 Bit 11 Bit 10 Bit 9
–
–
–
Bits 12:
Bit 8
Bit 7
RCOUT NRHL NRE
Bit 6
-
Bit 5 Bit 4 Bit 3 Bit 2 Bit 1
C3
C2
C1
C0
Bit 0
RCM1 RCM0
固定为 “0”
Bits 11~10:
未用, 一直置为 “1”
Bit 9 (RCOUT):
系统时钟输出选择使能位
Product Specification (V1.0) 08.30.2007
• 61
EM78P345/6/7N
8-Bit Microcontroller
0 = OSCO 引脚漏极开路
1 = OSCO 输出系统时钟(默认)
Bit 8 (NRHL): 燥声抑制高低使能位. INT 是下降沿触发
0 =脉冲等于8/fc [s]被视作为信号
1 =脉冲等于32/fc [s]被视作为信号
注意
噪音抑制功能在睡眠模式下失效
Bit 7(NRE):
噪音抑制使能
0 = 禁止噪音抑制
1 = 使能噪音抑制(默认). 但是在低晶振模式下噪音抑制功能是 禁
止的
Bit 6 (CYES): 未使用
Bits 5, 4, 3 & Bit2 (C3, C2, C1, & C0):IRC 校正 这些 位必须为1
C3
C2
C1
C0
*Cycle Time (ns)
*Frequency (MHz)
0
0
0
0
390.6
2.56
0
0
0
1
365.0
2.74
0
0
1
0
342.5
2.92
0
0
1
1
322.6
3.1
0
1
0
0
304.9
3.28
0
1
0
1
289.0
3.46
0
1
1
0
274.7
3.64
0
1
1
1
261.8
3.82
1
1
1
1
250.0
4.00
1
1
1
0
239.2
4.18
1
1
0
1
229.4
4.36
1
1
0
0
220.3
4.54
1
0
1
1
211.9
4.72
1
0
1
0
204.1
4.9
1
0
0
1
196.7
5.08
1
0
0
0
190.1
5.26
* 理论值仅供参考. 实际值因情况而有所变化.
Bit 1 & Bit 0 (RCM1 & RCM0): RC 模式选择位
RCM 1
RCM 0
Frequency (MHz)
1
1
4
1
0
16
0
1
1
0
0
455kHz
6.13.3代码选项和客户ID寄存器 (Word 2)
62 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Word 2
Bit 12 Bit 11 Bit 10 Bit 9
–
–
–
Bit 8
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
NRM RESETENB
×
–
×
×
×
×
×
×
Bits 12 ~ 11, 7: 固定为“1”
Bit 10: 固定为 “0”
Bit 9 (NRM): 噪音抑制模式
0 = .噪音抑制模式 2, 应用广泛, 列如按键扫描和 LED 输出
1 = 噪音抑制模式 1. 一般用于输入和输出. (默认)
Bit 8 (RESETENB): 复位使能位
0 : P75/RESET作为复位引脚
1 : P75/RESET 作为 P75(默认)
Bits 6 ~ 0:
客户ID代码
6.14 低电压检测
在电源不稳定的情况下,例如外部电源干扰或EMS测试下,导致电压波动,VDD未作处
理,系统电压有可能小于工作电压,当系统提供的电压小于工作电压将自动保持寄存器
的状态。
6.14.1 低电压复位
低电压复位在代码选项 Word 0, Bits 10, 9选择,详细选项如下
Word 0
Bit 12 Bit 11 Bit 10 Bit 9
Bit 8
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
LVR1 LVR0 Type1 Type0 CLKS ENWDTBOSC2 OSC1 OSC0 HLP
PR2
PR1
PR0
Bits 12~11 (LVR1 ~ LVR0): 低电压复位使能位
LVR1, LVR0
VDD Reset Level
11
10
01
00
2.4V
3.7V
4.1V
VDD Release Level
NA (Power-on Reset)
2.6V
3.9V
4.3V
6.14.2 低电压检测
LVD 通过RA,RE寄存器设置, 详细选项如下::
6.14.2.1 Bank 1 R6 (LVD 控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
LVDIF
/LVD
LVDIE
LVDWE
LVDEN
LVD1
LVD0
Product Specification (V1.0) 08.30.2007
• 63
EM78P345/6/7N
8-Bit Microcontroller
注意
■ Bank 1 R6<4> 可擦写
■ Bank 1 R6<4> 为 "1."设置不分中断
■ 总中断通过ENI使能和DISI禁止. 如图. 6-8 (中断输入电路)
Bit 6 (LVDIF):
低电压检测中断标志
LVDIF 由软件或硬件清零.
Bit 5 (/LVD):
低电压检测状态.这是一个只读,当VDD上的电压小于检测电压时这
个位被清零.
0 = 电压小于检测电压
1 = 没有检测到低电压或低电压检测功能禁止.
Bit 4 of Bank 1 R6: “1” 意思有中断, “0” 没有中断.
Bit 4 (LVDIE): 低电压检测使能中断位.
0 = 禁止检测低电压中断.
1 = 使能检测低电压中断.
当检测到电压小于设置的检测电压时进中断或执行下条指令LVDIE必
须使能。
Bit 3 (LVDWE): 低电压唤醒使能位
0 =禁止低电压检测唤醒
1 = 使能低电压检测唤醒
当检测到低电压时进入中断或从睡眠模式下唤醒,LVDWE必须使能
Bit 2 (LVDEN): 低电压检测使能位
0 = 禁止低电压检测
1 =使能低电压检测
Bit 1~0 (LVD1:0): 低电压选择
LVDEN
LVD1, LVD0
1
11
1
10
1
01
1
00
0
XX
LVD Voltage Interrupt Level
/LVD
Vdd ≤ 2.3V
Vdd > 2.3V
Vdd ≤ 3.3V
Vdd > 3.3V
Vdd ≤ 4.0V
Vdd > 4.0V
Vdd ≤ 4.5V
Vdd > 4.5V
NA
0
1
0
1
0
1
0
1
0
6.14.3 编程步骤
低电压实现按以下步骤设置:
1. 设置Bank 1-R6 (LVDCR)的 (LVD1: LVD0) 位设置低电压检测的 电压等级
2. 如果需要唤醒,设置 LVDWE位 为1
64 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
3. 如果需要中断功能,设置 LVDIE为1
4. 如过需要 中断功能,开总中断
5. 置 LVDEN 位为 1
6. 如果 需要进入睡眠模式
7. 进入中断向量时,清中断标志位。
内部LVD模块使用内部电路,当选择低电压检测时电流大约增加5µA.在睡眠模式下LVD
仍然在运行,如果IC电压慢慢降至或低于检测电压,LVDIF将被置1,从睡眠模式下唤醒,
置LVD中断标志位优先,当复位时中断标志清零。检测外部电压模块如图 6-23所示。
当VDD电压降到不小于VLVD时,LVDIF保持为0,当VDD电压降到小于VLVD时,LVDIF
置为1。如果开总中断,下一条指令进入中断向量,LVDIF标志由软件清零。
当VDD降到小于VRESER并且小于80µs,IC将所有寄存器保持以前状态,停止工作但振
荡器振荡。当VDD降到小于VRESER并且大于80µs,IC将复位,有关复位详细描述如表
6.5.1
LVDIF is cleared by software
Vdd
VLVD
VRESET
LVDIF
Internal
Reset
18ms
<LVR Voltage drop
>LVR Voltage drop
Vdd < Vreset not longer than 80us, the system still keeps on operating
System occur reset
图 6-23 LVD 波形状态
6.15 指令系统
每条指令为13位,包括一个操作码和一个或多个操作数。大多数指令只需一个指令周期
(一个指令周期为两个振荡周期)。但改变程序计数器R2的指令(如MOV R2,A;ADD
R2,A)和对R2进行算术和逻辑运算的指令(如SUB R2,A;BS(C)R2,6;CLR R2;…)
则需要一个或两个指令周期,这个由代码寄存器的CYES位决定。此外,指令集还有以
下特点:
(1)任何寄存器的每一位均可直接置1,清0或测试。
(2)I/O口寄存器可视为一般的寄存器。即操作通用寄存器的指令同样可以用来操作I/O
寄存器。
以下用符号“R”表示某个寄存器(包括工作寄存器和通用寄存器),符号“b”表示寄存器
中的某一位,符号“k”表示一个8/10位的常数或立即数。
Product Specification (V1.0) 08.30.2007
• 65
EM78P345/6/7N
8-Bit Microcontroller
指令系统 表如下:
范例:
R = 寄存器
R4 寄存器的 6 ,7 位选择BANK
b = 寄存器的位
Binary Instruction
0
0
0
0
0
0
0
0
0
66 •
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0001
0001
0001
0000
0001
0010
0011
0100
rrrr
0000
0001
0010
k = 8 or 10-bit常数或变数
Hex
0000
0001
0002
0003
0004
000r
0010
0011
0012
Mnemonic
NOP
DAA
CONTW
SLEP
WDTC
IOW R
ENI
DISI
RET
0 0000 0001 0011 0013
RETI
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0014
001r
00rr
0080
00rr
01rr
01rr
01rr
01rr
02rr
02rr
02rr
02rr
03rr
03rr
03rr
03rr
04rr
04rr
04rr
04rr
05rr
05rr
05rr
05rr
CONTR
IOR R
MOV R,A
CLRA
CLR R
SUB A,R
SUB R,A
DECA R
DEC R
OR A,R
OR R,A
AND A,R
AND R,A
XOR A,R
XOR R,A
ADD A,R
ADD R,A
MOV A,R
MOV R,R
COMA R
COM R
INCA R
INC R
DJZA R
DJZ R
0 0110 00rr rrrr
06rr
RRCA R
0 0110 01rr rrrr
06rr
RRC R
0 0110 10rr rrrr
06rr
RLCA R
0 0110 11rr rrrr
06rr
RLC R
0 0111 00rr rrrr
07rr
SWAPA R
0000
0000
0000
0000
0000
0001
0001
0001
0001
0010
0010
0010
0010
0011
0011
0011
0011
0100
0100
0100
0100
0101
0101
0101
0101
0001
0001
01rr
1000
11rr
00rr
01rr
10rr
11rr
00rr
01rr
10rr
11rr
00rr
01rr
10rr
11rr
00rr
01rr
10rr
11rr
00rr
01rr
10rr
11rr
0100
rrrr
rrrr
0000
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
Operation
Status Affected
No Operation
Decimal Adjust A
A → CONT
0 → WDT, Stop oscillator
0 → WDT
A → IOCR
Enable Interrupt
Disable Interrupt
[Top of Stack] → PC
[Top of Stack] → PC, Enable
Interrupt
CONT → A
IOCR → A
A→R
0→A
0→R
R-A → A
R-A → R
R-1 → A
R-1 → R
A ∨ VR → A
A ∨ VR → R
A&R→A
A&R→R
A⊕R→A
A⊕R→R
A+R→A
A+R→R
R→A
R→R
/R → A
/R → R
R+1 → A
R+1 → R
R-1 → A, skip if zero
R-1 → R, skip if zero
R(n) → A(n-1), R(0) → C, C
→ A(7)
R(n) → R(n-1), R(0) → C,
C → R(7)
R(n) → A(n+1), R(7) → C,
C → A(0)
R(n) → R(n+1), R(7) → C,
C → R(0)
R(0-3) → A(4-7),
R(4-7) → A(0-3)
None
C
None
T, P
T, P
1
None
None
None
None
None
None
1
None
None
Z
Z
Z, C, DC
Z, C, DC
Z
Z
Z
Z
Z
Z
Z
Z
Z, C, DC
Z, C, DC
Z
Z
Z
Z
Z
Z
None
None
C
C
C
C
None
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
Binary Instruction
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0111
0111
0111
100b
101b
110b
111b
00kk
01kk
1000
1001
1010
1011
1100
1101
1110
Mnemonic
07rr
07rr
07rr
0xxx
0xxx
0xxx
0xxx
1kkk
1kkk
18kk
19kk
1Akk
1Bkk
1Ckk
1Dkk
1E9K
SWAP R
JZA R
JZ R
BC R,b
BS R,b
JBC R,b
JBS R,b
CALL k
JMP k
MOV A,k
OR A,k
AND A,k
XOR A,k
RETL k
SUB A,k
BANK k
1 1110 1000 kkkk 1EAK
LCALL k
1 1110 1000 kkkk 1EBK
LJMP k
1 1111 kkkk kkkk
ADD A,k
注意:
1
01rr rrrr
10rr rrrr
11rr rrrr
bbrr rrrr
bbrr rrrr
bbrr rrrr
bbrr rrrr
kkkk kkkk
kkkk kkkk
kkkk kkkk
kkkk kkkk
kkkk kkkk
kkkk kkkk
kkkk kkkk
kkkk kkkk
1000 kkkk
Hex
1Fkk
Operation
Status Affected
R(0-3) ↔ R(4-7)
R+1 → A, skip if zero
R+1 → R, skip if zero
0 → R(b)
1 → R(b)
if R(b)=0, skip
if R(b)=1, skip
PC+1 → [SP], (Page, k) → PC
(Page, k) → PC
k→A
A∨k→A
A&k→A
A⊕k→A
k → A, [Top of Stack] → PC
k-A → A
K→R4(7:6)
Next instruction : k kkkk kkkk
kkkk
PC+1→[SP], k→PC
Next instruction : k kkkk kkkk
kkkk
k→PC
k+A → A
None
None
None
2
None
3
None
None
None
None
None
None
Z
Z
Z
None
Z, C, DC
None
None
None
Z, C, DC
这条指令仅用与 IOC50~IOCF0, IOC51 ~ IOCF1 .
2
这条指令建议不要使用于对 RF操作.
3
这条指令不能对 RF进行操作.
7
最大绝对偏移量
Items
Rating
偏移下温度
-40°C
to
85°C
储存温度
-65°C
to
150°C
输入电压
Vss-0.3V
to
Vdd+0.5V
输出电压
Vss-0.3V
to
Vdd+0.5V
2.5V
to
5.5V
DC
to
20MHz
电压
工作频率
8
直流电气特性
Ta= 25 °C, VDD= 5.0V, VSS= 0V
Symbol
FXT
ERC
VIHRC
IERC1
VILRC
Parameter
Crystal: VDD to 5V
ERC: VDD to 5V
Input High Threshold
Voltage (Schmitt Trigger)
Sink current
Input Low Threshold
Condition
Two cycle with two clocks
R: 5.1KΩ, C: 100 pF
Min.
32.768k
760
Typ.
4
950
Max.
16
1140
Unit
MHz
kHz
OSCI in RC mode
3.9
4
4.1
V
VI from low to high, VI=5V
OSCI in RC mode
21
1.7
22
1.8
23
1.9
mA
V
Product Specification (V1.0) 08.30.2007
• 67
EM78P345/6/7N
8-Bit Microcontroller
Symbol
IPH
IPL
Parameter
Voltage (Schmitt Trigger)
Sink current
Input Leakage Current for
input pins
Input High Voltage
(Schmitt Trigger)
Input Low Voltage
(Schmitt Trigger )
Input High Threshold
Voltage (Schmitt Trigger)
Input Low Threshold
Voltage (Schmitt trigger)
Input High Threshold
Voltage (Schmitt Trigger)
Input Low Threshold
Voltage (Schmitt Trigger)
Clock Input High Voltage
Clock Input Low Voltage
Output High Voltage
(Ports 5, 6, 7)
Output Low Voltage
(Ports 5, 6,7)
Output Low Voltage
(Ports 50, 51,66, 67)
Pull-high current
Pull-low current
ISB1
Power down current
ISB2
Power down current
ICC1
Operating supply current
at two clocks
ICC2
Operating supply current
at two clocks
ICC3
Operating supply current
at two clocks
ICC4
Operating supply current
at two clocks
IERC2
IIL
VIH1
VIL1
VIHT1
VILT1
VIHT2
VILT2
VIHX1
VILX1
IOH1
IOL1
IOL2
Condition
Min.
Typ.
Max.
Unit
VI from high to low, VI=2V
16
17
18
mA
VIN = VDD, VSS
-1
0
1
µA
Ports 5, 6, 7
0.7Vdd
−
Vdd+0.3V
V
Ports 5, 6, 7
-0.3V
−
0.3Vdd
V
/RESET
0.7Vdd
−
Vdd+0.3V
V
/RESET
-0.3V
−
0.3Vdd
V
TCC,INT
0.7Vdd
−
Vdd+0.3V
V
TCC,INT
-0.3V
−
0.3Vdd
V
2.9
1.7
3.0
1.8
3.1
1.9
V
V
OSCI in crystal mode
OSCI in crystal mode
VOH = 0.9VDD
-10
mA
VOL = 0.1VDD
20
mA
VOL = 1.5V
70
mA
Pull-high active, input pin at VSS
Pull-low active, input pin at Vdd
All input and I/O pins at VDD,
output pin floating, WDT disabled
All input and I/O pins at VDD,
output pin floating, WDT enabled
/RESET= 'High', Fosc=32kHz
(Crystal type, CLKS="0"),
Output pin floating, WDT disabled
/RESET= 'High', Fosc=32kHz
(Crystal type,CLKS="0"), output
pin floating, WDT enabled
/RESET= 'High', Fosc=4MHz
(Crystal type, CLKS="0"), output
pin floating, WDT enabled
/RESET= 'High', Fosc=10MHz
(Crystal type, CLKS="0"),
Output pin floating, WDT enabled
-50
25
-75
40
-240
210
µA
µA
2.0
µA
8
µA
28
µA
30
µA
1.7
mA
3.5
mA
Internal RC Electrical Characteristics (Ta=25°C, VDD=5 V, VSS=0V)
Internal RC
Drift Rate
Temperature
Voltage
Min.
Typ.
Max.
4MHz
25°
5V
3.84MHZ
4MHz
4.16MHz
16MHz
25°
5V
15.36MHz
16MHz
16.64MHz
1MHz
25°
5V
0.96MHz
1MHz
1.04MHz
455kHz
25°
5V
436.8kHz
455kHz
473.2kHz
Internal RC Electrical Characteristics (Ta=-40 ~85°C, VDD=2.2~5.5 V, VSS=0V)
Internal RC
4MHz
68 •
Drift Rate
Temperature
Voltage
Min.
Typ.
Max.
-40 ~85°
2.2~5.5 V
3.44MHZ
4MHz
4.56MHz
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
16MHz
-40 ~85°
2.2~5.5 V
13.76MHz
16MHz
18.24MHz
1MHz
-40 ~85°
2.2~5.5 V
0.86MHz
1MHz
1.14MHz
455kHz
-40 ~85°
2.2~5.5 V
391.3kHz
455kHz
518.7kHz
8.1 AD 转换器特性
Vdd=2.5V to 5.5V, Vss=0V, Ta=-40 to 85°C
Symbol
VAREF
Parameter
Analog reference voltage
Condition
VAREF - VASS ≥ 2.5V
Min.
Typ.
Max.
Unit
2.5
−
Vdd
V
Vss
−
Vss
V
Analog input voltage
−
VASS
−
VAREF
V
Analog supply current
VDD=VAREF=5.0V, VASS = 0.0V
(V reference from Vdd)
750
850
1000
µA
-10
0
+10
µA
Analog supply current
VDD=VAREF=5.0V, VASS = 0.0V
(V reference from VREF)
500
600
820
µA
200
250
300
µA
IOP
OP current
VDD=5.0V, OP used
Output voltage swing from
0.2V to 4.8V
450
550
650
µA
RN1
Resolution
ADREF=0, Internal VDD
VDD=5.0V, VSS = 0.0V
9
−10
Bits
RN2
Resolution
VDD=VREF=5.0V, VSS =
0.0V
−
11
12
Bits
LN1
Linearity error
VDD = 2.5 to 5.5V Ta=25°C
0
±4
±8
LSB
VASS
VAI
IAI1
IAI2
Ivdd
Ivref
Ivdd
IVref
ADREF=1, External VREF
LN2
Linearity error
VDD= 2.5 to 5.5V Ta=25℃
0
±2
±4
LSB
DNL
Differential nonlinear error
VDD = 2.5 to 5.5V Ta=25°C
0
±0.5
±0.9
LSB
FSE1
Full scale error
VDD=VAREF=5.0V, VASS = 0.0V
±0
±4
±8
LSB
FSE2
Full scale error
VDD=VREF=5.0V, VSS =
0.0V
±0
±2
±4
LSB
OE
Offset error
VDD=VAREF=5.0V, VASS = 0.0V
±0
±2
±4
LSB
ZAI
Recommended impedance of
analog voltage source
−
0
8
10
KΩ
TAD
ADC clock duration
VDD=VAREF=5.0V, VASS = 0.0V
4
−
−
µs
TCN
AD conversion time
VDD=VAREF=5.0V, VASS = 0.0V
15
−
15
TAD
ADIV
ADC OP input voltage range
VDD=VAREF=5.0V, VASS = 0.0V
0
−
VAREF
V
ADOV
ADC OP output voltage swing
VDD=VAREF=5.0V, VASS
=0.0V, RL=10KΩ
0
0.2
0.3
4.7
4.8
5
ADSR
ADC OP slew rate
VDD=VAREF=5.0V, VASS = 0.0V
0.1
0.3
−
V/µs
Power Supply Rejection
VDD=5.0V±0.5V
±0
−
±2
LSB
PSR
V
注意: 1. 这些参数是特性而不是测试结果,这些参数仅供设计参考
2. 与漏电电流不同,当A/D关闭,它不会消耗任何电流
3. A/D转换结果不会减少输入电压,没有遗漏码.
4. 规格书可能随时改变
Product Specification (V1.0) 08.30.2007
• 69
EM78P345/6/7N
8-Bit Microcontroller
8.2 比较器(OP) 特性
Vdd = 5.0V,Vss=0V, Ta=-40 to 85°C
Symbol
Parameter
SR
Slew rate
Vos
Input offset voltage
IVR
Input voltage range
OVS
Output voltage swing
Iop
Ico
Supply current of OP
Supply current of Comparator
Power-supply Rejection Ratio
for OP
Operating range
PSRR
Vs
Condition
–
RL=5.1K,
(Note 1)
Vdd =5.0V,
VSS = 0.0V
Vd =5.0V,
VSS = 0.0V,
RL=10KΩ
–
–
Vdd= 5.0V,
VSS = 0.0V
–
Min.
0.1
Typ.
0.2
Max.
–
Unit
V/us
1
5
10
mV
5
V
0
0
0.2
0.3
4.7
4.8
5
250
–
350
300
500
–
µA
µA
50
60
70
dB
5.5
V
2.5
V
注意: 1. 这些参数是特性而不是测试结果,这些参数仅供设计参考.
2. 规格书可能随时改变
9
交流电气特性
Ta=-40 to 85 °C, VDD=5V±5%, VSS=0V
Symbol
Parameter
Conditions
Type
Max
Unit
45
50
55
%
Crystal type
100
–
DC
ns
RC type
500
–
DC
ns
(Tins+20)/N*
–
–
ns
–
Min
Dclk
Input CLK duty cycle
Tins
Instruction cycle time
(CLKS="0")
Ttcc
TCC input time period
Tdrh
Device reset hold time
Ta = 25°C
11.3
16.2
21.6
ms
Trst
/RESET pulse width
Ta = 25°C
2000
–
–
ns
Twdt
Watchdog timer duration
Ta = 25°C
11.3
16.2
21.6
ms
Tset
Input pin setup time
–
0
–
ns
Thold
Input pin hold time
–
15
20
25
ns
Tdelay
Output pin delay time
Cload=20pF
45
50
55
ns
Tdrc
ERC delay time
Ta = 25°C
1
3
5
ns
–
–
注意: *选择的预分频比率
70 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
10 时序图
AC Test Input/Output Waveform
VDD-0.5V
0.75VDD
0.75VDD
0.25VDD
0.25VDD
TEST POINTS
GND+0.5V
AC Testing : Input is driven at VDD-0.5V for logic "1",and GND+0.5V for logic "0".Timing
measurements are made at 0.75VDD for logic "1",and 0.25VDD for logic "0".
RESET Timing (CLK="0")
NOP
Instruction 1
Executed
CLK
/RESET
Tdrh
TCC Input Timing (CLKS="0")
Tins
CLK
TCC
Ttcc
Product Specification (V1.0) 08.30.2007
• 71
EM78P345/6/7N
8-Bit Microcontroller
附件
A 封装形式
OTP MCU
Package Type
Pin Count
Package Size
EM78P345NP
DIP
18 pin
300mil
EM78P345NPS/NPJ
DIP
18 pin
300mil
EM78P345NM
SOP
18 pin
300mil
EM78P345NMS/NMJ
SOP
18 pin
300mil
EM78P346NP
DIP
20 pin
300mil
EM78P346NPS/NPJ
DIP
20 pin
300mil
EM78P346NM
SOP
20 pin
300mil
EM78P346NMS/NMJ
SOP
20 pin
300mil
EM78P346NKM
SSOP
20 pin
209mil
EM78P346NKMS/NKMJ
SSOP
20 pin
209mil
EM78P347NP
Skinny DIP
24 pin
300mil
EM78P347NPS/NPJ
Skinny DIP
24 pin
300mil
EM78P347NM
SOP
24 pin
300mil
EM78P347NMS/NMJ
SOP
24 pin
300mil
EM78P347NKM
SSOP
24 pin
150mil
EM78P347NKMS/NKMJ
SSOP
24 pin
150mil
安全产品不含有危险物质.
SS-00259 有三个标准
Pb 必须小于 100ppm
Part No.
Electroplate type
Pure Tin
Ingredient (%)
Sn: 100%
Melting point(°C)
72 •
EM78P345/6/7NS/J
232°C
Electrical resistivity
(µΩ-cm)
11.4
Hardness (hv)
8~10
Elongation (%)
>50%
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
B 封装结构
B.1 18-Lead Plastic Dual in line (PDIP) — 300 mil
Product Specification (V1.0) 08.30.2007
• 73
EM78P345/6/7N
8-Bit Microcontroller
B.2 18-Lead Plastic Small Outline (SOP) — 300 mil
74 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
B.3 20-Lead Plastic Dual in line (PDIP) — 300 mil
Product Specification (V1.0) 08.30.2007
• 75
EM78P345/6/7N
8-Bit Microcontroller
B.4 20-Lead Plastic Small Outline (SOP) — 300 mil
76 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
B.5 20-Lead Plastic Shrink Small Outline (SSOP) — 209 mil
Product Specification (V1.0) 08.30.2007
• 77
EM78P345/6/7N
8-Bit Microcontroller
B.6 24-Lead Plastic Dual in line (PDIP) — 300 mil
78 •
Product Specification (V1.0) 08.30.2007
EM78P345/6/7N
8-Bit Microcontroller
B.7 24-Lead Plastic Small Outline (SOP) — 300 mil
Product Specification (V1.0) 08.30.2007
• 79
EM78P345/6/7N
8-Bit Microcontroller
C 质量确保和可靠性
Test Category
可焊性
Test Conditions
Remarks
焊接温度=245±5°C, 用助焊剂松香 5 秒钟可焊上
–
步骤 1: TCT, 65°C (15mins)~150°C (15mins), 10 cycles
步骤 2: 125°C 烤, TD (耐久性)=24 hrs
步骤 3: 浸泡在 30°C/60%,TD (耐久性)=192 hrs
情形
Step 4: IR 循环三个周期
(Pkg thickness ≥ 2.5mm or
Pkg volume ≥ 350mm3 ----225±5°C)
For SMD IC (such as
SOP, QFP, SOJ, etc)
(Pkg thickness ≤ 2.5mm or
Pkg volume ≤ 350mm3 ----240±5°C)
温度测试
-65°C (15mins)~150°C (15mins), 200 cycles
–
耐压测试
TA =121°C, RH=100%, pressure=2 atm,
TD (endurance)= 96 hrs
–
高温高湿测试
TA=85°C , RH=85%,TD (endurance) = 168 , 500 hrs
–
高温保持期限
TA=150°C, TD (endurance) = 500, 1000 hrs
–
高湿保持期限
TA=125°C, VCC = Max. operating voltage,
TD (endurance) = 168, 500, 1000 hrs
–
锁存
TA=25°C, VCC = Max. operating voltage, 150mA/20V
–
ESD (HBM)
TA=25°C, ≥∣± 3KV∣
IP_ND,OP_ND,IO_ND
IP_NS,OP_NS,IO_NS
IP_PD,OP_PD,IO_PD,
ESD (MM)
C.1
TA=25°C, ≥ ∣± 300V∣
IP_PS,OP_PS,IO_PS,
VDD-VSS(+),VDD_VSS
(-) mode
地址误差侦测
地址误差检测是一种内在的安全检测功能,此功能是用来侦测MCU被噪音或者类似干扰
引起的MCU故障,无论MCU何时在ROM的一部份取得一条指令,内部恢复电路都会自
动触发。如果噪音引起的地址错误被侦测到,MCU将会重复执行进程直到噪音被清楚。
然后MCU再继续执行下一个程序。
80 •
Product Specification (V1.0) 08.30.2007