EM78F562N/F662N 8位 微控制器 产品规格书 版本 1.1 义隆电子股份有限公司 2012.07 本文内容是由英文规格书翻译而 目的是为了您的阅读更加方便。 它无法跟随原稿的更新,文中可 能存在翻译上的错误,请您参考 英文规格书以获得更准确的信 息。 商标告知: IBM 为一个注册商标,PS/2 是 IBM 的商标之ㄧ.。 Windows 是微软公司的商标。 ELAN 和 ELAN 标志 是义隆电子股份有限公司的商标。 版权所有 © 2010~2012 义隆电子股份有限公司 所有权利保留 台湾印制 本规格书内容如有变动恕不另作通知。关于该规格书的准确性、适当性或者完整性,义隆电子股份有限公 司不承担任何责任。 义隆电子股份有限公司不承诺对本规格书之内容及信息有更新及校正之义务。 本规 格书的内容及信息将为符合确认之指示而变更。 在任何情况下,义隆电子股份有限公司对本规格书中的信息或内容的错误、遗漏,或者其它不准确性不承 担任何责任。由于使用本规格书中的信息或内容而导致的直接,间接,特别附随的或结果的损害, 义隆 电子股份有限公司没有义务负责。 本规格书中提到的软件(如果有),都是依据授权或保密合约所合法提供的,并且只能在这些合约的许可 条件下使用或者复制。 义隆电子股份有限公司的产品不是专门设计来应用于生命维持的用具,装置或者系统。 义隆电子股份有 限公司的产品不支持而且禁止在这些方面的应用。 未经义隆电子股份有限公司书面同意,任何个人或公司不得以任何形式或方式对本规格书的内容之任一部 分进行复制或传输。 义隆电子股份有限公司 总公司: 地址:台湾新竹科学园区创新一 路 12 号 电话:+886 3 563-9977 传真:+886 3 563-9966 [email protected] http://www.emc.com.tw 香港分公司: USA: 义隆电子(香港)有限公司 九龙观塘巧明街 95 号世达中心 19 楼 A 室 电话:+852 2723-3376 传真:+852 2723-7780 Elan Information Technology Group (USA) Korea: 深圳分公司: 上海分公司: Elan Korea Electronics Company, Ltd. 义隆电子(深圳)有限公司 深圳市南山区高新技术产业园 南区高新南六道迈科龙大厦 8A 邮编:518057 电话:+86 755 2601-0565 传真:+86 755 2601-0500 义隆电子(上海)有限公司 地址:上海市浦东新区张江 高科碧波路 5 号 科苑大楼 6 楼 邮编:201203 电话:+86 21 5080-3866 传真:+86 21 5080-0273 [email protected] [email protected] 301 Dong-A Building 632 Kojan-Dong, Namdong-ku Incheon City, KOREA Tel: +82 32 814-7730 Fax:+82 32 813-7730 P.O. Box 601 Cupertino, CA 95015 USA Tel: +1 408 366-8225 Fax:+1 408 366-8225 目录 目录 1 综述 2 产品特性.................................................................................................................... 1 3 引脚配置.................................................................................................................... 2 4 引脚描述.................................................................................................................... 3 4.1 ...................................................................................................................... 1 EM78F562N/F662N 引脚描述........................................................................... 3 5 结构图 ...................................................................................................................... 5 6 功能描述.................................................................................................................... 6 6.1 操作寄存器 ....................................................................................................... 6 6.1.1 R0 (间接寻址寄存器) .......................................................................................... 6 6.1.2 R1 (时钟定时器/计数器) ...................................................................................... 6 6.1.3 R2 (程序计数器)和堆栈 ....................................................................................... 6 6.1.4 R3 (状态寄存器).................................................................................................. 8 6.1.5 R4 (RAM 选择寄存器) ......................................................................................... 9 6.1.6 Bank 0 R5 ~ R8 (端口 5 ~ 端口 8) ...................................................................... 9 6.1.7 Bank 0 R9 TBPTL (表格指针寄存器低字节) ....................................................... 9 6.1.8 Bank 0 RA (唤醒控制寄存器) .............................................................................. 9 6.1.9 Bank 0 RB (EEPROM 控制寄存器)................................................................... 10 6.1.10 Bank 0 RC (128 字节 EEPROM 地址) .............................................................. 10 6.1.11 Bank 0 RD (128 字节 EEPROM 数据) ...............................................................11 6.1.12 Bank 0 RE (CPU 运行控制寄存器) ....................................................................11 6.1.13 Bank 0 RF (中断状态寄存器) ............................................................................ 12 6.1.14 R10 ~ R3F ........................................................................................................ 12 6.1.15 Bank 1 R5 ~R7 ................................................................................................. 12 6.1.16 Bank 1 R8 TC2CR (定时器 2 控制) .................................................................. 12 6.1.17 Bank 1 R9 TC2DH (定时器 2 高字节数据缓冲器)............................................. 16 6.1.18 Bank 1 RA TC2DL (定时器 2 低字节数据缓冲器) ............................................. 16 6.1.19 Bank 1 RB ~RE ................................................................................................ 16 6.1.20 Bank 1 RF (中断状态寄存器) ............................................................................ 16 6.1.21 Bank 2 R5 AISR (ADC 输入选择寄存器) .......................................................... 17 6.1.22 Bank 2 R6 ADCON (A/D 控制寄存器)............................................................... 18 6.1.23 Bank 2 R7 ADOC (A/D 补偿校准寄存器) .......................................................... 18 6.1.24 Bank 2 R8 ADDH (AD 高 8 位数据缓冲器) ....................................................... 19 6.1.25 Bank 2 R9 ADDL (AD 低 2 位数据缓冲器) ........................................................ 19 6.1.26 Bank 2 RA, RC ~RE ......................................................................................... 19 6.1.27 Bank 2 RB CMPCON (比较器控制寄存器) ....................................................... 19 6.1.28 Bank 2 RF (上拉控制寄存器 1) ......................................................................... 20 6.1.29 Bank 3 R5 ......................................................................................................... 21 6.1.30 Bank 3 R6 TBPTH (表格指针寄存器高字节地址) ............................................. 21 6.1.31 Bank 3 R7~RC.................................................................................................. 21 版本号 (V1.1) 07.12.2012 • iii 目录 6.1.32 Bank 3 RD TC3CR (定时器 3 控制寄存器) ....................................................... 21 6.1.33 Bank 3 RE TC3D (定时器 3 数据缓冲器).......................................................... 23 6.1.34 Bank 3 RF (下拉控制寄存器 1) ......................................................................... 23 6.2 特殊功能寄存器 .............................................................................................. 24 6.2.1 A (累加器) ......................................................................................................... 24 6.2.2 CONT (控制寄存器) .......................................................................................... 24 6.2.3 IOC5 ~ IOC8 (I/O 端口控制寄存器) .................................................................. 25 6.2.4 6.2.5 IOC9 ................................................................................................................. 25 IOCA (WDT 控制寄存器)................................................................................... 25 6.2.6 IOCB (下拉控制寄存器 2) ................................................................................. 26 6.2.7 IOCC (漏极开路控制寄存器)............................................................................. 26 6.2.8 IOCD (上拉控制寄存器 2) ................................................................................. 27 6.2.9 IOCE (中断屏蔽寄存器 2) ................................................................................. 27 6.2.10 IOCF (中断屏蔽寄存器 1) ................................................................................. 27 6.3 TCC/WDT and Prescaler ................................................................................ 28 6.4 I/O 端口........................................................................................................... 29 6.5 复位和唤醒 ..................................................................................................... 32 6.5.1 复位................................................................................................................... 32 6.5.2 唤醒................................................................................................................... 35 6.5.3 复位后寄存器初始值概述 .................................................................................. 36 6.5.4 状态寄存器的 RST,T 与 P 的状态................................................................... 40 6.6 中断 ................................................................................................................ 41 6.7 数据 EEPROM (此节只针对 EM78F662N) ...................................................... 42 6.7.1 6.7.2 6.8 数据 EEPROM 控制寄存器 ............................................................................... 43 6.7.1.1 RB (EEPROM 控制寄存器)................................................................ 43 6.7.1.2 RC (128 字节 EEPROM 地址寄存器) ................................................ 43 6.7.1.3 RD (256 字节 EEPROM 数据寄存器) ................................................ 43 编程步骤 / 范例 ................................................................................................. 44 6.7.2.1 编程步骤 ............................................................................................ 44 6.7.2.2 编程范例 ............................................................................................ 44 模数转换器(ADC)............................................................................................ 45 6.8.1 6.8.2 ADC 控制寄存器(AISR/R5, ADCON/R6, ADOC/R7) ........................................ 45 6.8.1.1 Bank 2 R5 AISR (ADC 输入选择寄存器) ........................................... 45 6.8.1.2 Bank 2 R6 ADCON (A/D 控制寄存器)................................................ 46 6.8.1.3 Bank 2 R7 ADOC (A/D 补偿校准寄存器) ........................................... 47 ADC 数据缓冲器(ADDH, ADDL/R8, R9) ........................................................... 47 6.8.3 A/D 采样时间 ...................................................................................................... 48 6.8.4 A/D 转换时间 .................................................................................................... 48 6.8.5 休眠期间 A/D 运行 ............................................................................................ 48 6.8.6 编程步骤/范例 ................................................................................................... 48 6.8.6.1 iv • 编程步骤 ............................................................................................ 48 版本号 (V1.1) 07.12.2012 目录 6.8.6.2 6.9 程序实例 ............................................................................................ 49 定时/计数器 2.................................................................................................. 50 6.10 定时/计数器 3.................................................................................................. 52 6.11 比较器............................................................................................................. 54 6.11.1 比较器输出........................................................................................................ 54 6.11.2 比较器中断........................................................................................................ 55 6.11.3 从休眠模式唤醒................................................................................................. 55 6.12 振荡器............................................................................................................. 55 6.12.1 振荡器模式........................................................................................................ 55 6.12.2 晶体振荡器/陶瓷谐振器 (晶体) .......................................................................... 56 6.12.3 外部 RC 振荡器模式.......................................................................................... 57 6.12.4 内部 RC 振荡模式 ............................................................................................. 58 6.13 代码选项寄存器 .............................................................................................. 58 6.13.1 代码选项寄存器(Word 0)................................................................................... 59 6.13.2 代码选项寄存器(Word 1)................................................................................... 60 6.13.3 用户 ID 寄存器(Word 2) .................................................................................... 61 6.14 上电相关问题 .................................................................................................. 61 6.15 外部上电复位电路........................................................................................... 62 6.16 残留电压保护 .................................................................................................. 62 6.17 指令集............................................................................................................. 63 7 时序图 .................................................................................................................... 66 8 绝对最大值 .............................................................................................................. 67 9 DC 电气特性............................................................................................................ 67 10 9.1 数据 EEPROM 电气特性................................................................................. 68 9.2 Flash 程序存储器电气特性 .............................................................................. 68 9.3 A/D 转换器特性(Vdd=2.5V to 5.5V, Vss=0V, Ta=25°C) ................................... 69 9.4 比较器特性 ..................................................................................................... 70 AC 电气特性............................................................................................................ 70 附录 A 封装类型.................................................................................................................. 71 B 封装形式.................................................................................................................. 72 B.1 EM78F562N/F662ND16 300mil ...................................................................... 72 B.2 EM78F562N/F662NSO16 300mil ................................................................... 73 B.3 EM78F662NQN16A 4x4mm ........................................................................... 74 B.4 EM78F562N/F662ND18 300mil ...................................................................... 75 B.5 EM78F562N/F662NSO18 300mil ................................................................... 76 B.6 EM78F562N/F662ND20 300mil ...................................................................... 77 B.7 EM78F562/F662NSO20 300mil ...................................................................... 78 版本号 (V1.1) 07.12.2012 •v 目录 C 品质保证和可靠性.................................................................................................... 79 C.1 地址缺陷检测 .................................................................................................. 79 规格版本历史 版本号 1.0 修订描述 最初发行版本 日期 2010/04/29 1. 修改 ICC1 及 ICC2 耗电流 1.1 2. 删除 EM78F562N 的 QFN16 封装 3. 修改 EM78F662NQN16 至 EM78F662NQN16A. 2012/07/12 4. 代码选项寄存器 Word 2 第 7 位置 “1” vi • 版本号 (V1.1) 07.12.2012 EM78F562N/F662N 8位微控制器 1 综述 EM78F562N/F662N 是采用低功耗高速 CMOS 工艺开发的 8 位高抗干扰性的微控制器。它们拥有 2K×13 位片 内 Flash 存储器,并且 EM78F662N 还拥有 128×8 位系统可编程 EEPROM。EM78F562N/F662N 提供三个 保护位用以保护用户代码,十二个代码选项位用于满足用户需求。 基于增强的 FLASH-ROM 特性,EM78F662N 提供一种便利的开发和校验客户程序的途径。而且,利用开发 编程工具,FLASH-ROM 器件可以容易且有效地实现程序更新。用户可以使用义隆烧录器烧写程序代码。 2 产品特性 CPU 配置 一个 16 位定时/计数器 • TC2 : 定时器/计数器/窗口 • 2K×13 位 Flash 存储器 • 144×8 位片内寄存器(SRAM) 一个 8 位定时/计数器 • 128 个 字 节 在 系 统 可 编 程 EEPROM ( 仅 限 于 EM78F662N) *擦写寿命:100,000 擦/写次数 • 数据保留超过 10 年 • 8 级堆栈用于子程序嵌套 • 在 5V/4MHz 工作条件下低于 2mA • 在 3V/32KHz 工作条件下典型值为 20 µA • 在休眠模式下典型值为 2µA • TC3 : 定时器/计数器/ PDO(可编程分频器输出)/PWM(脉宽 可调制) 比较器(CMP) 7 个中断源: • 内部中断源:4 • 外部中断源:3 8 通道 10 位精度模数转换器 外设配置 I/O 端口配置 • 8 位可选择时钟源、边沿触发和溢出中断的实时时钟/计数器 (TCC) • 3 组双向 I/O 端口 • 唤醒端口:P6 • 高灌流端口:P6 • 12 个可编程下拉 I/O 引脚 • 省电(休眠)模式 • 4 个可编程低电压复位检测器(LVR) (LVR):4.0V, 3.5V, 2.7V, 与POR • 8 个可编程上拉 I/O 引脚 • 4 个可编程漏极开路 I/O 引脚 • 外部中断端口: P60 • 三个用以防止入侵 FLASH 代码存储器的安全寄存器 • 一个供给用户需求的配置寄存器 • 通过代码选项可选择指令周期为 2/4/8/16 个时钟 工作电压范围: • 工业级:2.4V~5.5V 在 -40°C ~85°C • 高抗 EFT • 商业级:2.2V~5.5V 在 0°C ~70°C • 有两个副频,128kHz 和 16kHz,16kHz 是由 128kHz 分频 产生的。 工作频率范围 (基于 2 个时钟): • 晶体模式: DC ~ 20 MHz @ 5V DC ~ 8 MHz @ 3V DC ~ 4 MHz @ 2.2V • ERC 模式: DC ~ 20 MHz @ 5V DC ~ 8 MHz @ 3V DC ~ 4 MHz @ 2.2V • IRC 偏移率 (Ta=25°C, VDD=5V ± 5%, SS=0V) 内部 RC 频率 制程 总计 1 MHz ±3% ±4% ±2.5% ±9.5% 4 MHz ±3% ±4% ±2.5% ±9.5% 8 MHz ±3% ±5% ±2.5% ±10.5% 16 MHz ±3% ±5% ±2.5% ±10.5% 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) 晶振模式下的四种晶振范围 晶振频率范围 振荡器模式 20 MHz ~ 6 MHz HXT 6 MHz ~ 1 MHz XT 1 MHz ~ 100kHz LXT1 32.768kHz LXT2 独立运行的可编程看门狗定时器 封装类型: 偏移率 温度 电压 (-40°C+85°C) (2.2V~5.5V) 单指令周期 • • • • • • • 16-pin DIP 300mil : EM78F562N/F662ND16 16-pin SOP 300mil : EM78F562N/F662NSO16 16-pin QFN 4x4mm : EM78F662NQN16A 18-pin DIP 300mil : EM78F562N/F662ND18 18-pin SOP 300mil : EM78F562N/F662NSO18 20-pin DIP 300 mil : EM78F562N/F662ND20 20-pin SOP 300mil : EM78F562N/F662NSO20 绿色产品,不含有害物质。 •1 EM78F562N/F662N 8位微控制器 3 2• 引脚配置 图 3-1 EM78F562N/F662ND16/SO16 图 3-2 EM78F562/662ND18/SO18 图 3-3 EM78F562/6622ND20/SO20 图 3-4 EM78F662NQN16A 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 4 引脚描述 4.1 EM78F562N/F662N 引脚描述 注: ST: 施密特触发器输入, CMOS: CMOS 输出, 名称 功能 输入 类型 AN:模拟信号输入 , XTAL: 晶振/振荡器振荡信号输入输出引脚。 输出 类型 CMOS 功能描述 双向输入/输出引脚,通过软件设置可用作带下拉功能的引脚 P50 ST VREF AN P51 P51 ST CMOS 双向输入/输出引脚,通过软件设置可用作带下拉功能的引脚 P52 P52 ST CMOS 双向输入/输出引脚,通过软件设置可用作带下拉功能的引脚 P53 P53 ST CMOS 双向输入/输出引脚,通过软件设置可用作带下拉功能的引脚 P54 ST CMOS 双向输入/输出引脚 OSCI XTAL P50/VREF P54/OSCI/RCOUT − RCOUT P55 P55/OSCO/ERCin P56/TC2/AD6 ST − OSCO CMOS 内部 RC 振荡器时钟输出引脚 外部 RC 振荡器时钟输出引脚(开漏) CMOS 双向输入/输出引脚 XTAL 外部时钟晶体振荡器输出引脚 − 外部 RC 振荡器时钟输入引脚 P56 ST TC2 ST − 定时器 2 时钟输入引脚 AD6 AN − ADC 输入引脚 6 P57 ST TC3 ST CMOS CMOS − − CMOS − 双向输入/输出引脚 双向输入/输出引脚 定时器 3 时钟输入引脚 可编程分频器输出引脚 ADC 输入引脚 7 AD7 AN P60 ST AD0 AN − ADC 输入引脚 0 /INT ST − 外部中断输入引脚 CMOS − CMPOUT P62/AD2/CMP- 外部时钟晶体振荡器输入引脚 AN PDO P61/AD1/CMP+ − ADC 外部参考电压输入端口 ERCin P57/TC3/PDO/AD7 P60/AD0//INT/CMPOUT − 双向输入/输出引脚, 通过软件设置可用作带下拉功能/上拉功能/ 开漏功能/唤醒功能的引脚 CMOS 比较器输出引脚 CMOS 双向输入/输出引脚, 通过软件设置可用作带下拉功能/上拉功能/ 开漏功能/唤醒功能的引脚 P61 ST AD1 AN − ADC 输入引脚 1 CMP+ AN − 比较器同向输入 P62 ST AD2 AN − ADC 输入引脚 2 CMP- AN − 比较器反向输入 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) CMOS 双向输入/输出引脚, 通过软件设置可用作带下拉功能/上拉功能/ 开漏功能/唤醒功能的引脚 •3 EM78F562N/F662N 8位微控制器 CMOS ST AD3 AN P70 ST CMOS 双向输入/输出引脚 (DATA) ST CMOS 烧录器烧录的 DATA 引脚 P71 ST CMOS 双向输入/输出引脚 (CLK) ST P72 ST CMOS 双向输入/输出引脚 P73 ST CMOS 双向输入/输出引脚 AD4 AN P77 ST TCC ST − 实时时钟/计数器时钟输入引脚 AD5 AN − ADC 输入引脚 5 P83 ST /RESET ST − 带内部上拉电路的复位引脚 (/RESET) ST − 烧录器烧录的/RESET 引脚 P63/AD3 P70 (DATA) P71 (CLK) P72 P73/AD4 P77/TCC/AD5 P83//RESET (/RESET) 4• 双向输入/输出引脚, 通过软件设置可用作带下拉功能/上拉功能/ 开漏功能/唤醒功能的引脚 P63 − − − CMOS CMOS ADC 输入引脚 3 烧录器烧录的 CLOCK 引脚 ADC 输入引脚 4 双向输入/输出引脚 双向输入/输出引脚 VDD VDD 电源 − 电源 (VDD) VDD 电源 − 烧录器烧录的 VDD 引脚 VSS VSS 电源 − 地 (VSS) VSS 电源 − 烧录器烧录的 VSS 引脚 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 5 结构图 图 5-1 功能结构图 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) •5 EM78F562N/F662N 8位微控制器 6 功能描述 6.1 操作寄存器 6.1.1 R0 (间接寻址寄存器) R0 并不是实际的物理寄存器。它的主要功能是作为间接寻址指针。任何对 R0 的操作实 际上是对 RAM 选择寄存器(R4)所指向的寄存器进行操作。 6.1.2 R1 (时钟定时器/计数器) R1 对来自 TCC 引脚的外部边沿触发信号或内部指令时钟周期进行加一计数,TCC 引脚 信号的边沿触发类型由 CONT 寄存器的 TE 位设定;R1 和其他寄存器一样可读写,通 过复位 PSTE(CONT-3)设定。 如果 PSTE(CONT-3)置 1,则预分频器分配给 TCC。当 TCC 寄存器写入一个值时,预 分频计数器的内容将清零。 6.1.3 R2 (程序计数器)和堆栈 基于器件的型号,R2 和硬件堆栈都是 10 位宽的。结构描述如图 6-1 所示。 此单元可产生 2Kx13 位片内 FLASH-ROM 地址以获取对应的程序指令编码。一个程序 页是 1024 字长。 当复位产生时,程序计数器 R2 所有位被清 0。 "JMP" 指令可直接装载程序计数器低 10 位。因此,”JMP”可以在同一页(1K)内任意跳转。 "CALL" 指令装载程序计数器的低 10 位。并将 PC+1 值压入堆栈。因此子程序入口地 址可定位在一个程序页的任一位置。 "LJMP"指令可直接装载程序计数器的低 11 位值,因此,"LJMP"指令允许 PC 在 2K 程 序页内跳转。 "LCALL"指令装载 PC 的低 11 位值,并将 PC+1 压入堆栈。因此,子程序入口地址可定 位在 2K 程序页内的任一位置。 "RET" ("RETL k", "RETI")指令将栈顶数据装入 PC。 "ADD R2, A" 允许把 A 寄存器的内容加到当前 PC 上,同时 PC 的第九位及以上各位依 次增加。 "MOV R2, A"允许从 A 寄存器装载一个地址值到 PC 的低 8 位,同时 PC 的第九位及第 十位(A8 ~ A9)保持不变。 执行任何(例如:"MOV R2, A", "BC R2, 6"等)对 R2 进行写入操作的指令(除“ADD R2,A” 外) ,PC 的第九位及第十位(A8 ~ A9)都会保持不变。 除了那些改变 R2 内容的指令需要多于一个指令周期外,所有指令都是单指令周期 (fclk/2,fclk/4,fclk/8 或 fclk/16)。 6• 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 图 6-1 程序存储器结构图 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) •7 EM78F562N/F662N 8位微控制器 图 6-2 数据存储器结构图 6.1.4 R3 (状态寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - - T P Z DC C Bit 7 ~ Bit 5 : 保留位,全置为”0” Bit 4 (T): 时间溢出位 当执行SLEP和WDTC指令或上电复位后该位置1,当WDT溢出时清0。 8• 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Bit 3 (P): 省电标志位 执行WDTC指令或上电复位后该位置1,执行SLEP指令后该位清0。 Bit 2 (Z): 零标志位 算术运算或逻辑运算结果为0时该位置1。 Bit 1 (DC): 辅助进位标志位 Bit 0 (C): 进位标志位 6.1.5 R4 (RAM选择寄存器) Bits 7 ~ 6: 用于选择BANK0 ~ BANK3。 Bits 5~0: 在间接寻址方式中用于选择寄存器(地址: 00~3F)。 参见数据存储器结构图,图 6-2。 6.1.6 Bank 0 R5 ~ R8 (端口 5 ~ 端口 8) R5 ~ R7 是 I/O 寄存器。 6.1.7 Bank 0 R9 TBPTL (表格指针寄存器低字节) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RBit 7 RBit 6 RBit 5 RBit 4 RBit 3 RBit 2 RBit 1 RBit 0 6.1.8 Bank 0 RA (唤醒控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - ICWE ADWE EXWE - - CMPWE - Bit 7 : 保留位,全置为”0” Bit 6 (ICWE): 端口6输入状态改变唤醒使能位 0: 禁止端口6输入状态改变唤醒 1: 使能端口6输入状态改变唤醒 Bit 5 (ADWE): ADC唤醒使能位 0: 禁止ADC唤醒 1: 使能ADC唤醒 在A/D转换器运行情况下,当AD转换完成后要进入中断向量或将 EM78F562N/F662N从休眠模式唤醒时,ADWE位必须先设置为使能。 Bit 4 (EXWE): 外部中断唤醒使能位 0: 禁止外部/INT引脚唤醒 1: 使能外部/INT引脚唤醒 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) •9 EM78F562N/F662N 8位微控制器 Bit 2: 保留位,全置为”0” Bit 1 (CMPWE): 比较器唤醒使能位 0: 禁止比较器唤醒 1: 使能比较器唤醒 Bits 3, 0: 保留位,全置为”0” 6.1.9 Bank 0 RB (EEPROM控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RD WR EEWE EEDF EEPC - - - Bit 7 (RD): 读控制位 0: 执行EEPROM的读操作结束 1: 执行读EEPROM内容操作(RD可由软件置1,读指令完成后由硬件清 0)。 Bit 6 (WR): 写控制位 0: 写EEPROM的周期完成. 1: 开始写EEPROM周期(WR可由软件置1,写周期完成后由硬件清0) Bit 5 (EEWE): EEPROM 写使能位 0: 禁止写EEPROM 1: 允许写EEPROM Bit 4 (EEDF): EEPROM侦测标志位 0: 写周期完成 1: 写周期未完成 Bit 3 (EEPC): EEPROM电源控制位 0: 禁止EEPROM 1: 使能EEPROM Bits 2 ~ 0: 保留位,全置为0 *此寄存器只限于 EM78F662N 6.1.10 Bank 0 RC (128字节EEPROM地址) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - EE_A6 EE_A5 EE_A4 EE_A3 EE_A2 EE_A1 EE_A0 Bits 6 ~ 0: 128 字节EEPROM地址 *此寄存器只限于 EM78F662N 10 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 6.1.11 Bank 0 RD (128字节EEPROM数据) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 EE_D7 EE_D6 EE_D5 EE_D4 EE_D3 EE_D2 EE_D1 EE_D0 Bits 7 ~ 0: 128字节EEPROM数据 *此寄存器只限于 EM78F662N 6.1.12 Bank 0 RE (CPU 运行控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - TIMERSC CPUS IDLE- - - - - Bit 7: 保留位,全置为0 Bit 6 (TIMERSC): TCC, TC2, TC3 时钟源选择 0: Fs. Fs: 副频,WDT内部RC的时基 1: Fm. Fm: 主振荡器时钟 Bit 5 (CPUS): CPU 振荡源选择 0: 副振荡器 (fs) 1: 主振荡器 (fosc) 当CPUS=0,CPU 振荡器选择副振荡器,主振荡器停振 Bit 4 (IDLE): 空闲模式选择位,该位确定在执行SLEP指令后将进入何种模式。 0: IDLE=”0”+SLEP 指令 → 休眠模式 1: IDLE=”1”+SLEP 指令 → 空闲模式 CPU 运行模式 图 6-3 CPU运行模式 Bits 3 ~ 0: 保留位,全置为0 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 11 EM78F562N/F662N 8位微控制器 6.1.13 Bank 0 RF (中断状态寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CMPIF ADIF - - - EXIF ICIF TCIF 注: “ 1 ” 表示中断请求 “ 0 ” 表示没有中断发生 Bit 7 (CMPIF): 比较器中断标志位。当比较器输出发生变化时置位,由软件清0。 Bit 6 (ADIF): 模数转换器中断标志位。当AD转换完成时置位,由软件清0。 Bits 5~3: 保留位,全置为0 Bit 2 (EXIF): 外部中断标志位。/INT引脚有下降沿信号输入时置位,由软件清0。 Bit 1 (ICIF): 端口6输入状态改变中断标志位。当端口6输入状态改变时置位,由软件清0。 Bit 0 (TCIF): TCC溢出中断标志位。当TCC溢出时置位,由软件清0。. Bank 0 RF 可由指令清零但不能置位。 IOCF 为中断屏蔽寄存器。 需注意的是读 Bank 0 RF 的结果是 Bank 0 RF 与 IOCF”逻辑与”的结果。 6.1.14 R10 ~ R3F 所有这些寄存器是 8 位通用寄存器。 6.1.15 Bank 1 R5 ~R7 这些寄存器保留。 6.1.16 Bank 1 R8 TC2CR (定时器 2 控制) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RCM1 RCM0 TC2ES TC2M TC2S TC2CK2 TC2CK1 TC2CK0 Bit 7 and Bit 6 (RCM1, RCM0): IRC 模式选择位 12 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Bank1 R8<7,6> 烧录器校正 IRC 4MHz 16MHz 8MHz 1MHz 频率 工作电压范围 稳定时间 RCM1 RCM0 0 0 4MHz±2.5% 2.2V~5.5V <5 us 0 1 16MHz±10% 4.5V~5.5V <1.5 us 1 0 8MHz±10% 3.0V~5.5V <3 us 1 1 1MHz±10% 2.2V~5.5V <22 us 0 0 4MHz±10% 2.2V~5.5V <6 us 0 1 1 0 8MHz±10% 3.0V~5.5V <3 us 1 1 1MHz±10% 2.2V~5.5V <22 us 0 0 4MHz±10% 2.2V~5.5V <6 us 0 1 16MHz±10% 4.5V~5.5V <1.5 us 1 0 8MHz±2.5% 3.0V~5.5V <2.5 us 1 1 1MHz±10% 2.2V~5.5V <22 us 0 0 4MHz±10% 2.2V~5.5V <6 us 0 1 16MHz±10% 4.5V~5.5V <1.5 us 1 0 8MHz±10% 3.0V~5.5V <3 us 1 1 1MHz±2.5% 2.2V~5.5V <20 us 16MHz±2.5% 4.5V~5.5V <1.25 us 例如: 注意 BANK1 R8<7,6>的初值将保持与WORD0<7,6>的值一致。 当从A频率切换到B频率时,F562N/F662N需保持在B频率稳定一段时间才能工作。这段时 间跟B频率有关 例如:烧录器校正IRC 4MHz → BANK1 R8<7,6>设置为”10” → 保持3 us → F562N/F662N工 作在8MHz ± 10%。 代码选项 WORD1 COBS=0 : R8<7,6>的初值将保持与WORD1<3,2>的值一致。 R8<7,6>不能改变频率。 代码选项 WORD1 COBS=1 : R8<7,6>的初值将保持与WORD1<3,2>的值一致。 当用户想让微控制器工作在其它IRC频率段时,可通过R8<7,6>改变。 Bit 5 (TC2ES): TC2 信号边沿选择位 0: 当TC2引脚由低变高(上升沿)时加1 1: 当TC2引脚由高变低(下降沿)时加1 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 13 EM78F562N/F662N 8位微控制器 Bit 4 (TC2M): 定时器/计数器 2 模式选择 0: 定时器/计数器模式 1: 窗口模式 Bit 3 (TC2S): 定时器/计数器 2 启动控制 0: 停止并清零计数器 1: 启动 Bit 2~Bit 0 (TC2CK2~TC2CK0): 定时器/计数器 2 时钟源选择 TC2CK2 0 0 0 TC2CK1 0 0 1 TC2CK0 0 1 0 时钟源 分辨率 最大时间 正常 Fc=8M Fc=8M 1.05 sec 19.1 hr 1.02 ms 1.1 min 32µs 2.1 sec 1µS 65.5 ms Fc/2 Fc/2 23 13 Fc/2 8 3 0 1 1 Fc/2 1 0 0 Fc 125nS 7.9 ms 1 0 1 − − − 1 1 0 − − − 1 1 1 外部时钟 (TC2 引脚) − − 图 6-4 定时器/计数器 2结构图 14 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 定时器模式下,用内部时钟执行加计数操作,当加计数器内容与 TCR2(TCR2H+TCR2L) 内容相匹配时,中断产生且计数器清零,计数器清零之后计数重新开始。 图 6-5 定时器模式时序图 计数器模式下, 用输入引脚(TC2 引脚)的外部时钟执行加计数操作,通过设置 TC2ES 位 可选择上升沿或是下降沿有效,当加计数器内容与 TCR2(TCR2H+TCR2L)内容相匹 配时,中断产生且计数器清零,计数器清零之后计数重新开始。 图6-6 计数器模式时序图 窗口模式下,内部时钟和 TC2 引脚的脉冲(窗口脉冲)逻辑与后,在脉冲的上升沿执行加计 数操作,当加计数器内容与 TCR2(TCR2H+TCR2L)内容相匹配时,中断产生且定时器 清零。频率(窗口脉冲)需低于所选的内部时钟。 写 TCR2L 时,TCR2H 写完后比对被禁止。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 15 EM78F562N/F662N 8位微控制器 图 6-7 窗口模式时序图 6.1.17 Bank 1 R9 TC2DH (定时器 2 高字节数据缓冲器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC2D15 TC2D14 TC2D13 TC2D12 TC2D11 TC2D10 TC2D9 TC2D8 Bit 7 ~ Bit 0 (TC2D8 ~ TC2D15): 16位定时器/计数器 2 高字节数据缓冲器。 6.1.18 Bank 1 RA TC2DL (定时器 2 低字节数据缓冲器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC2D7 TC2D6 TC2D5 TC2D4 TC2D3 TC2D2 TC2D1 TC2D0 Bit 7 ~ Bit 0 (TC2D7 ~ TC2D0): 16位定时器/计数器 2 低字节数据缓冲器。 6.1.19 Bank 1 RB ~RE 这些是保留寄存器。 6.1.20 Bank 1 RF (中断状态寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - TCIF3 TCIF2 - - - - 注: “ 1 ” 表示有中断请求 “ 0 ” 表示没有中断请求 Bits 7~6: 保留位,全置为0。 Bit 5 (TCIF3): 8位定时器/计数器 3 中断标志位,中断标志由软件清零。 Bit 4 (TCIF2): 16位定时器/计数器 2 中断标志位,中断标志由软件清零。 RF 可由指令清零但不能置位。 IOCE 是中断屏蔽寄存器。 需注意地是读 Bank 1 RF 的结果是 Bank 1 RF 与 IOCE”逻辑与”的结果。 Bits 3~0: 保留位,全置为0。 16 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 6.1.21 Bank 2 R5 AISR (ADC 输入选择寄存器) AISR 寄存器用于定义 ADC 引脚为模拟输入或数字 I/O 引脚。 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 Bit 7 (ADE7): P57引脚AD转换器使能位 0: 禁止 ADC7, P57 作为 I/O 引脚 1: 使能 ADC7 作为模拟输入引脚 Bit 6 (ADE6): P56引脚AD转换器使能位 0: 禁止 ADC6, P56 作为 I/O 引脚 1: 使能 ADC6 作为模拟输入引脚 Bit 5 (ADE5): P77引脚AD转换器使能位 0: 禁止 ADC5, P77 作为 I/O 引脚 1: 使能 ADC5 作为模拟输入引脚 Bit 4 (ADE4): P73引脚AD转换器使能位 0: 禁止 ADC4, P73 作为 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/AD0//INT/CMPOUT 优先级 P60/AD0//INT/CMPOUT 引脚优先级 高 中 中 低 /INT CMPOUT AD0 P60 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 17 EM78F562N/F662N 8位微控制器 6.1.22 Bank 2 R6 ADCON (A/D控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 VREFS CKR1 CKR0 ADRUN ADPD ADIS2 ADIS1 ADIS0 Bit 7 (VREFS): ADC的参考电压输入源 0: ADC 的 Vref 与 Vdd 连接 (默认), 并且 P50/VREF 引脚被用作 P50。 1: ADC 的 Vref 与 P50/VREF 连接。 Bit 6 ~ Bit 5 (CKR1 ~ CKR0): ADC 振荡时钟预分频比 CKR1/CKR0 运作模式 最大运作频率 00 FOSC/4 4 MHz 01 FOSC 1 MHz 10 FOSC/16 16 MHz 11 FOSC/2 2 MHz Bit 4 (ADRUN): ADC开始启动 0: 转换完成时复位,此位不能通过软件复位 1: AD 转换开始,此位能通过软件置位 Bit 3 (ADPD): ADC 省电模式 0: 在 CPU 保持运行的条件下关掉参考电阻以节省功耗 1: ADC 在运行,处于非省电模式。 Bits 2~0 (ADIS2~ADIS0): AD 输入选择位 ADIS2 ADIS1 ADIS0 AD 输入引脚 0 0 0 AD0 0 0 1 AD1 0 1 0 AD2 0 1 1 AD3 1 0 0 AD4 1 0 1 AD5 1 1 0 AD6 1 1 1 AD7 6.1.23 Bank 2 R7 ADOC (A/D补偿校准寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CALI SIGN VOF[2] VOF[1] VOF[0] - - - Bit 7 (CALI): A/D补偿校准使能位 0: 禁止校准 1: 使能校准 18 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Bit 6 (SIGN): 偏移电压的极性选择位 0: 负电压 1: 正电压 Bit 5 ~ 3 (VOF[2] ~ VOF[0]): 补偿电压选择位 VOF[2] VOF[1] VOF[0] 补偿电压 0 0 0 0LSB 0 0 1 1LSB 0 1 0 2LSB 0 1 1 3LSB 1 0 0 4LSB 1 0 1 5LSB 1 1 0 6LSB 1 1 1 7LSB Bits 2 ~0: 保留位,全置为0。 6.1.24 Bank 2 R8 ADDH (AD 高 8 位数据缓冲器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADD9 ADD8 ADD7 ADD6 ADD5 ADD4 ADD3 ADD2 当 A/D 转换完成时,高 8 位结果将装载到 ADDH,ADRUN 位被清 0, ADIF 位被置 1, R8 只读。 6.1.25 Bank 2 R9 ADDL (AD 低2位数据缓冲器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - - - - - ADD1 ADD0 Bits 7 ~ 2: 保留位,全置为0。 6.1.26 Bank 2 RA, RC ~RE 这些是保留寄存器 6.1.27 Bank 2 RB CMPCON (比较器控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - - - - CPOUT CPS1 CPS0 Bits 7 ~ 3: 保留位,全置为0。 Bit 2 (CPOUT): 比较器输出结果 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 19 EM78F562N/F662N 8位微控制器 注意 P60/AD0/INT/CMPOUT引脚优先级如下: 优先级 高 中 低 高 INT CMPOUT AD0 P60 Bit 1 ~ Bit 0 (CPS1 ~ CPS0): 比较器选择位 功能描述 CPS1 CPS0 0 0 比较器没被选用,P60 作为普通 I/O 引脚 0 1 比较器被选用,P60 作为普通 I/O 引脚 1 0 比较器被选用,P60 作为比较器输出引脚(CMPOUT) 1 1 保留 注意 P61/AD1/CMP+ 引脚优先级如下: 优先级 高 中 低 CMP+ AD1 P61 注意 P62/AD2/CMP- 引脚优先级如下: 优先级 高 中 低 CMP- AD2 P62 6.1.28 Bank 2 RF (上拉控制寄存器 1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - - - /PH73 /PH72 /PH71 /PH70 Bits 7 ~ 4: 保留位,全置为0。 Bit 3 (/PH73): 控制位,使能P73引脚上拉功能 0: 使能内部上拉 1: 禁止内部上拉 Bit 2 (/PH72): 控制位,使能P72引脚上拉功能 Bit 1 (/PH71): 控制位,使能P71引脚上拉功能 20 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Bit 0 (/PH70): 控制位,使能P70引脚上拉功能 RF 寄存器可读写。 6.1.29 Bank 3 R5 保留寄存器 6.1.30 Bank 3 R6 TBPTH (表格指针寄存器高字节地址) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 MLB - - - - RBit 10 RBit 9 RBit 8 Bit 7 (MLB): 对机器码的MSB或LSB进行操作 Bit 6 ~ 3: 保留位,全置为0。 Bit 2 ~ 0: 查表指针地址的第10~8位。 6.1.31 Bank 3 R7~RC 这些是保留寄存器 6.1.32 Bank 3 RD TC3CR (定时器 3 控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC3FF1 TC3FF0 TC3S TC3CK2 TC3CK1 TC3CK0 TC3M1 TC3M0 Bit 7 ~ Bit 6 (TC3FF1 ~ TC3FF0): 定时器/计数器 3 触发控制 TC3FF1 TC3FF0 运作模式 0 0 清零 0 1 触发 1 0 置位 1 1 保留 Bit 5 (TC3S): 定时器/计数器 3 启动控制 0: 停止并清零计数器 1: 启动 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 21 EM78F562N/F662N 8位微控制器 Bit 4 ~ Bit 2 (TC3CK2 ~ TC3CK0): 定时器/计数器 3 时钟源选择位 TC3CK2 0 TC3CK1 TC3CK0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 时钟源 分辨率 最大时间 正常 Fc=8M Fc=8M 250 µs 64 ms 16 µs 4 ms 4 µs 1 ms 1 µs 255 µs 500 ns 127.5 µs 250 ns 63.8 µs Fc/2 11 Fc/2 Fc/2 Fc/2 Fc/2 7 5 3 2 1 1 0 1 Fc/2 1 1 0 Fc 125 ns 31.9 µs 1 1 1 外部时钟 (TC3 引脚) - - Bit 1 ~ Bit 0 (TC3M1 ~ TC3M0): 定时器/计数器 3 工作模式选择位 TC3M1 TC3M0 Operating Mode 0 0 定时器/计数器 0 1 保留 1 0 可编程分频器输出 1 1 脉宽调制输出 图 6-8 定时器/计数器 3 结构图 定时器模式下,用内部时钟(上升沿触发)执行加计数操作,当加计数器内容与 TCR3 内容相匹配时,中断产生且计数器清零,计数器清零之后计数重新开始。 计数器模式下, 用输入引脚(TC3 引脚)的外部时钟执行加计数操作,当加计数器内容 与 TCR3 内容相匹配时,中断产生且计数器清零,计数器清零之后计数重新开始。 可编程分频器输出(PDO)模式下, 用内部时钟执行加计数操作,TCR3 内容与加计数 器内容做比较,当它们的内容相匹配时 F/F 输出被触发,计数器被清零,F/F 输出被取 反并输出到/PDO 引脚。该模式可产生占空比为 50%的脉冲输出。F/F 可被程序初始化, 复位时其初始值为”0”, 每次/PDO 输出被触发时 TC3 都产生中断。 22 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 图 6-9 PDO 模式时序图 脉冲宽度调制(PWM)输出模式下,用内部时钟执行加计数操作,TCR3 内容与加计数 器内容作比较,当它们的内容匹配时,F/F 被触发。计数器继续计数,而计数器溢出时 F/F 被再次触发,同时计数器清零。F/F 输出被反向并输出到/PWM 引脚,每次溢出发生 时都会产生 TC3 中断。TCR3 被设置成 2 级移位寄存器,输出期间输出不会改变,直到 完成一个输出周期(即使 TCR3 被重写) 。因此,输出可连续地被改变,在数据载入 TCR3 后,通过置 TC3S 位为”1” 来改变 TCR3。 图 6-10 PWM 模式时序图 6.1.33 Bank 3 RE TC3D (定时器 3 数据缓冲器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC3D7 TC3D6 TC3D5 TC3D4 TC3D3 TC3D2 TC3D1 TC3D0 Bit 7 ~ Bit 0 (TC3D7 ~ TC3D0):计数器/定时器 3 的8位数据缓冲器 6.1.34 Bank 3 RF (下拉控制寄存器 1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - - - /PD73 /PD72 /PD71 /PD70 Bit 7~ Bit 4: 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) 保留位,全置为0。 • 23 EM78F562N/F662N 8位微控制器 Bit 3 (/PD73): P73引脚下拉功能使能控制位 0: 使能内部下拉 1: 禁止内部下拉 Bit 2 (/PD72): P72引脚下拉功能使能控制位 Bit 1 (/PD71): P71引脚下拉功能使能控制位 Bit 0 (/PD70): P70引脚下拉功能使能控制位 RF 寄存器可读写。 6.2 特殊功能寄存器 6.2.1 A (累加器) 累加器 A 具有暂存器的功能,内部数据传输或保持指令操作数通常都是通过累加器 A 来 实现,累加器 A 为不可寻址的寄存器 6.2.2 CONT (控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 INTE /INT TS TE PSTE PST2 PST1 PST0 Bit 7 (INTE): INT 信号触发边沿选择位 0: 在 INT 引脚出现上升沿时产生中断 1: 在 INT 引脚出现下降沿时产生中断 Bit 6 (/INT): 中断使能标记位 0: 由指令 DISI 或硬件屏蔽中断 1: 由 ENI/RETI 指令使能中断 Bit 5 (TS): TCC 信号源选择位 0: 内部指令周期时钟 1: TCC 引脚输入的时钟 Bit 4 (TE): TCC时钟信号触发边沿选择位 0: 当 TCC 引脚由低变高时加 1(上升沿) 1: 当 TCC 引脚由高变低时加 1(下降沿) Bit 3 (PSTE): TCC预分频器使能位 0: 禁止预分频器,TCC 预分频比为 1:1 1: 使能预分频器,TCC 预分频比由第 2~0 位定义 24 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Bit 2 ~ Bit 0 (PST 2 ~ PST0): TCC 预分频比选择位 TCC 预分频比 PST2 PST1 PST0 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 CONT 是可读写寄存器。 6.2.3 IOC5 ~ IOC8 (I/O端口控制寄存器) “1”定义相关引脚为高阻抗输入状态,”0”定义相关引脚为输出状态。 IOC5, IOC6, IOC7 和 IOC8 寄存器可读写。 6.2.4 IOC9 保留寄存器。 6.2.5 IOCA (WDT控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 WDTE EIS - - PSWE PSW2 PSW1 PSW0 Bit 7 (WDTE):看门狗定时器使能控制位 0: 禁止 WDT 1: 使能 WDT WDTE 可读写。 Bit 6 (EIS): 控制位,用于定义P60(/INT)引脚的功能 0: P60, 双向 I/O 引脚 1: /INT, 外部中断引脚。此时,P60 的控制位(IOC6 的第 0 位)必须设为 1。 当EIS为0时,/INT被屏蔽。当EIS为1时,可以通过读PORT6(R6)来判 断/INT引脚的状态。 EIS可读写。 Bits 5~4: 保留位,全置为0。 Bit 3 (PSWE): WDT预分频器使能位 0: 禁止预分频器,WDT 预分频比为 1:1 1: 使能预分频器,WDT 预分频比由 0~2 位定义 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 25 EM78F562N/F662N 8位微控制器 Bit 2 ~ Bit 0 (PSW2 ~ PSW0): WDT 预分频比定义位 WDT 预分频比 PSW2 PSW1 PSW0 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 6.2.6 IOCB (下拉控制寄存器 2) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 /PD7 /PD6 /PD5 /PD4 /PD3 /PD2 /PD1 /PD0 Bit 7 (/PD7): P63引脚下拉功能使能控制位 0: 使能内部下拉 1: 禁止内部下拉 Bit 6 (/PD6): P62引脚下拉功能使能控制位 Bit 5 (/PD5): P61引脚下拉功能使能控制位 Bit 4 (/PD4): P60引脚下拉功能使能控制位 Bit 3 (/PD3): P53引脚下拉功能使能控制位 Bit 2 (/PD2): P52引脚下拉功能使能控制位 Bit 1 (/PD1): P51引脚下拉功能使能控制位 Bit 0 (/PD0): P50引脚下拉功能使能控制位 IOCB 寄存器可读写。 6.2.7 IOCC (漏极开路控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - - - OD3 OD2 OD1 OD0 Bits 7 ~ 4: 保留位,全置为0。 Bit 3 (OD3): P63引脚漏极开路功能使能控制位 0: 禁止漏极开路输出 1: 使能漏极开路输出 Bit 2 (OD2): P62引脚漏极开路功能使能控制位 Bit 1 (OD1): P61引脚漏极开路功能使能控制位 26 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Bit 0 (OD0): P60引脚漏极开路功能使能控制位 IOCC 寄存器可读写。 6.2.8 IOCD (上拉控制寄存器 2) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - - - /PH3 /PH2 /PH1 /PH0 Bits 7~4: 保留位,全置为0。 Bit 3 (/PH3):P63引脚上拉功能使能控制位。 0: 使能内部上拉功能 1: 禁止内部上拉功能 Bit 2 (/PH2): P62引脚上拉功能使能控制位。 Bit 1 (/PH1): P61引脚上拉功能使能控制位。 Bit 0 (/PH0): P60引脚上拉功能使能控制位。 IOCD 寄存器可读写。 6.2.9 IOCE (中断屏蔽寄存器 2) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - TCIE3 TCIE2 - - - - Bits 7~6: 保留位,全置为0。 Bit 5 (TCIE3): 中断使能位 0: 禁止 TCIF3 中断 1: 使能 TCIF3 中断 Bit 4 (TCIE2): 中断使能位 0: 禁止 TCIF2 中断 1: 使能 TCIF2 中断 Bits 3 ~ 0: 保留位,全置为0。 6.2.10 IOCF (中断屏蔽寄存器 1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CMPIE ADIE - - - EXIE ICIE TCIE Bit 7 (CMPIE):中断使能位 0: 禁止 CMPIF 中断 1: 使能 CMPIF 中断 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 27 EM78F562N/F662N 8位微控制器 Bit 6 (ADIE): ADIF中断使能位 0: 禁止 ADIF 中断 1: 使能 ADIF 中断 当ADC完成通常会进入中断向量或进入下一条指令,此时ADIE位必需设 置为”使能”。 Bits 5 ~ 3: 保留位,全置为0。 Bit 2 (EXIE): EXIF中断使能位 0: 禁止 EXIF 中断 1: 使能 EXIF 中断 Bit 1 (ICIE): ICIF中断使能位 0: 禁止 ICIF 中断 1: 使能 ICIF 中断 Bit 0 (TCIE): TCIF中断使能位 0: 禁止 TCIF 中断 1: 使能 TCIF 中断 通过置IOCF中相应的控制位为1,使能各个相关中断。 总中断是由ENI指令使能,由DISI指令禁止。IOCF寄存器可读写。 6.3 TCC/WDT and Prescaler 有两个 8 位的计数器分别可用作 TCC 和 WDT 的预分频器。 CONT 寄存器的 PST0~PST2 位用于定义 TCC 的预分频比。同样的,IOCA 寄存器的 PSW0~PSW2 位用于定义 WDT 的预分频比。每次执行写 TCC 指令,预分频计数器都会被清 0。执行 WDTC 和 SLEP 指令会将 WDT 和其预分频器清 0。图 6-11 描述了 TCC/WDT 的电路结构。 R1(TCC)是一个 8 位定时/计数器。TCC 的时钟源可以是内部时钟或外部信号(由 TCC 引脚输入,触发沿可选择)。如果 TCC 的信号源是来自内部时钟,每一 Fc 时钟 TCC 就 加 1(没有预分频)。如图 6-11 所示,通过 Bank 0 RE.6< TIMERSC >位选择 Fc。如果 TCC 的信号源是外部时钟,在每一个下降沿或上升沿到来时 TCC 加 1。TCC 引脚输入 脉冲宽度(保持在高或低电平)必须大于 1 个 CLK,若 IC 进入休眠状态,TCC 将停止 工作。 看门狗定时器是一个独立运行的片内 RC 振荡器。即使在其它振荡器关闭的情况下(也就 是休眠模式下),WDT 仍保持运行。不管是在正常模式还是在休眠模式,WDT 定时器溢 出(若使能)都将使 MCU 复位。在正常模式下,通过软件设置可任意地禁止和使能 WDT, 具体请参考 IOCA 寄存器的 WDTE 位设置。在没有 WDT 预分频情况下,WDT 溢出时 1 间大约是 18 ms (振荡器的启动时间) 。 1 28 • VDD=5V, WDT 溢出时间 = 16.5ms ± 5% VDD=3V, WDT 溢出时间 = 18ms ± 5%. 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 图 6-11 TCC与WDT结构框图 6.4 I/O端口 I/O 寄存器 Port5, 6, 7 与 8 均为三态双向 I/O 端口。Port6/7 可由软件设置为内部上拉, 此外,Port 6 也可由软件设置为漏极开路输出。Port 6 具有输入状态改变中断(或唤醒) 的功能。P50 ~ P53,P60 ~ P63 与 Port 7 引脚可由软件设置为下拉。每个 I/O 引脚都 可通过其对应的 I/O 控制寄存器(IOC5 ~ IOC8)设置为”输入”或”输出”。 I/O 寄存器和控制寄存器都是可读写的。Port5,Port6,Port7 与 Port8 I/O 接口电路如下 列图所示:图 6-12,6-13(a) ,6-13(b)和图 6-14。 PCRD Q _ Q PORT Q _ Q P R C L P R C L D CLK PCWR IOD D CLK PDWR PDRD 0 1 M U X 注: 下拉电路没在图中显示。 图 6-12 P5, 6, 7的I/O端口与 I/O控制寄存器电路 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 29 EM78F562N/F662N 8位微控制器 PCRD P Q R D _ CLK Q C L PCW R P 6 0 /IN T Q _ Q PORT B it 2 o f IO C F 0 P R Q CLK _ C Q L D 1 P R D CLK C L IO D PDW R M U X T10 PDRD D P R Q CLK _ C Q L IN T 注: 上(下)拉与漏极开路没有在图中显示。 图 6-13 (a) P60(/INT) I/O 端口和I/O控制寄存器电路 30 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 PCRD P61~P63 PORT 0 1 Q _ Q P R D CLK C L PCWR Q _ Q P R D CLK C L PDWR IOD M U X PDRD P R CLK C L D TIN Q _ Q 注: 上(下)拉与漏极开路没有在图中显示。 图 6-13 (b) P61~P63,P83 I/O端口与I/O控制寄存器电路 图 6-14 Port 6 I/O端口输入状态改变中断/唤醒结构图 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 31 EM78F562N/F662N 8位微控制器 表 6-1 Port6输入状态改变中断/唤醒功能的用法 端口 6 输入状态改变中断/唤醒功能的用法 (II) Port 6 输入状态改变中断 (I) 由 Port 6 输入状态改变唤醒 1. 读 Port 6 (MOV R6,R6) (a) 休眠之前 2 2. 执行 "ENI" 1. 禁止 WDT (小心使用) 2. 读 Port 6 (MOV R6,R6) 3. 使能中断 (置 IOCF.1) 3 a. 使能中断 (置 IOCF.1), 唤醒之后, 如 果“ENI” 则跳转到中断矢量地址 (006H), 如果 “DISI” 则执行下一条指 令。 4. 如果 Port 6 状态改变 (中断) → 中断矢量地址 (006H) 3 b. 禁止中断 (清 IOCF.1), 总是执行下一条 指令 4. 使能唤醒使能位 (置 RA.6) 5. 执行 "SLEP"指令 (b) 唤醒之后 1. 如果 "ENI" → 中断矢量地址 (006H) 2. 如果"DISI" → 下一条指令 6.5 复位和唤醒 6.5.1 复位 下面的任何事件之一可以触发复位: (1) 上电复位 (2) /RESET 引脚输入低电平 (3) WDT 溢出(如果使能) 3 在检测到复位信号之后,器件将保持约 18ms (振荡器启动时间)的复位状态。 一旦 发生了复位,下列功能将会执行。 参见图 6-8。 振荡器继续运行,或起振 程序计数器(R2)被清0 所有I/O引脚被设为输入模式(高阻抗状态) 看门狗计数器和预分频器被清0 上电时,R3的高三位清0 RB,RC,RD,RE寄存器的所有位都保持原来的状态 CONT寄存器除第6位(INT标志)外所有位都为0 2 3 32 • 软件禁止 WDT,但是,使用 Port 6 状态改变唤醒功能之前硬件必须使能 WDT(代码配置寄存 器 Word0 的第 6 位(ENWDTB)设为 1) Vdd = 5V, 起振时间 = 16.8ms ± 8% Vdd = 3V,起振时间 = 18ms ± 8% 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 禁止上拉、下拉 Bank 0 RF,IOCF寄存器被清零 执行 SLEP 指令进入休眠模式(省电模式) ,当进入休眠模式时,WDT(如果使能)清 0 但会继续运行。在 RC 模式中,唤醒时间是 34 个时钟。在高频晶体模式中,唤醒时间 是 2ms 加 32 个时钟。在低频晶体模式中,唤醒时间是 500ms。 MCU 可被如下情况唤醒: (1) /RESET 引脚上输入的外部复位信号 (2) WDT 溢出(若使能) (3) Port 6 输入状态改变(若使能) (4) 外部中断引脚(P60, /INT)状态变化(若 EXWE 使能) (5) A/D 转换完成(若 ADWE 使能) (6) 比较器输出状态改变(若 CMPWE 使能) 前两种情况会引起 EM78F562N/F662N 复位。R3 的 T 和 P 标志位可用来判断复位(唤 醒)的来源。第三,四,五种情况唤醒后程序继续执行,全局中断(执行 ENI 或 DISI) 决定唤醒后控制器是否跳到中断向量地址。如果在 SLEP 指令执行之前执行 ENI 指令, 唤醒后程序将从地址 0x3, 0x6, 0xF, 0x15 或 0x30 处执行中断处理。如果在 SLEP 指令 执行之前执行 DISI 指令, 唤醒后从 SLEP 的下一条指令开始执行。 无论是何种振荡模式, 所有休眠模式唤醒时间都为 150us(低频晶体模式除外),低频晶体模式 2 的唤醒时间 是 500ms。 在进入休眠模式之前,第 2~5 种情况仅有一种可被使能,如下: [a] 如果 WDT 在休眠之前使能,RE 的所有位禁止,因此,EM78F562N/F662N 只能被 情况 1,2 唤醒,更多细节请参考“中断”章节。 [b] 如果 Port6 输入状态改变用于唤醒 EM78F562N/F662N 且休眠前使能 RA 寄存器的 ICWE 位,WDT 须禁止,因此,EM78F562N/F662N 只能由情况三唤醒。 [c] 如果外部(P60,/INT)引脚状态改变用于唤醒 EM78F562N/F662N 且在休眠前 RA 寄存器的 EXWE 位使能,WDT 须由软件禁止,因此,EM78F562N/F662N 只能由情况 四唤醒。 [d] 如果 AD 转换完成用于唤醒 EM78F562N/F662N 且在休眠前 RA 寄存器的 ADWE 位 使能,WDT 须由软件禁止,因此,EM78F562N/F662N 只能由情况五唤醒。 [e] 如果比较器输出状态改变用于唤醒 EM78F562N/F662N 且在休眠之前 RA 寄存器的 CMPWE 位使能,WDT 须由软件禁止,因此,EM78F562N/F662N 只能由情况六唤醒。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 33 EM78F562N/F662N 8位微控制器 如果 Port6 输入状态改变中断被用来唤醒 EM78F562N/F662N(就如上面的情况[a]) , 在 SLEP 指令之前必须执行如下指令: MOV IOW WDTC MOV ENI (or DISI) MOV MOV MOV IOW SLEP A, @001110xxb IOCA R6, R6 A, @010xxxxxb RA,A A, @00000x1xb IOCF ; 选择WDT分频比,禁止WDT ; 清WDT和分频比 ; 读Port 6 ; 使能(或禁止) 全局中断 ; 使能 Port 6 输入状态改变唤醒位 ; 使能 Port 6 输入状态改变中断 ; 休眠 同样, 如果使用比较器中断用于唤醒 EM78F662N(如上面的情况[C]) ,在进入休眠之前 必须按如下步骤设置: Bank 3 MOV A, @xxxxxx10b MOV RB,A MOV A, @001110xxb IOW IOCA WDTC ENI (or DISI) MOV A, @xxxxxx1xb MOV RA,A MOV A, @10000000b IOW IOCF SLEP 34 • ; 选择 Bank 3 ; 选择比较器,P60用作CO引脚 ; 设置 WDT分频比并禁止WDT ; 清WDT和分频比 ; 使能(或禁止) 全局中断 ; 使能比较器输出状态改变唤醒位 ; 使能比较器输出状态改变中断 ; 休眠 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 6.5.2 唤醒 唤醒和中断模式概述 所有唤醒和中断模式的描述如下: 控制器可从休眠或空闲模式唤醒,以下列表列出了所有的唤醒信号: 唤醒信号 休眠模式 空闲模式 低速模式 正常模式 如果使能EXWE 如果使能EXWE位 位唤醒 唤醒 中断 (如果中断使 中断 (如果中断使 + 中断 (如果中断使 + 中断 (如果中断 外部中断 能)或下一条指令 能)或下一条指令 使能) 能) + 下一条指令 + 下一条指令 如果使能ICWE位 如果使能ICWE位 唤醒 唤醒 中断 (如果中断使 中断 (如果中断使 Port 6 引脚状 + 中断 (如果中断使 + 中断 (如果中断 能)或下一条指令 能)或下一条指令 态改变 使能) 能) + 下一条指令 + 下一条指令 唤醒 + 中断 (如果中断 中断 (如果中断使 中断 (如果中断使 TCC 溢出 中断 x 使能) 能)或下一条指令 能)或下一条指令 + 下一条指令 如果使能CMPWE 如果使能CMPWE 位 位 唤醒 唤醒 中断 (如果中断使 中断 (如果中断使 比较器中断 + 中断 (如果中断使 + 中断 (如果中断 能)或下一条指令 能)或下一条指令 能) 使能) + 下一条指令 + 下一条指令 如果使能ADWE 如果使能ADWE位 位 唤醒 唤醒 中断 (如果中断使 + 中断 (如果中断使 + 中断 (如果中断 AD 转换 中断 (如果中断使 能)或下一条指令 能) 使能) 能)或下一条指令 Fs 与 Fm 没有停 完成中断 + 下一条指令 + 下一条指令 止 Fs 与 Fm 没有停止 Fs 与 Fm 没有停 止 唤醒 + 中断 (如果中断 中断 (如果中断使 中断 (如果中断使 TC2 中断 x 使能) 能)或下一条指令 能)或下一条指令 + 下一条指令 唤醒 + 中断 (如果中断 中断 (如果中断使 中断 (如果中断使 TC3 中断 x 使能) 能)或下一条指令 能)或下一条指令 + 下一条指令 WDT 溢出 复位 复位 复位 复位 低电压复位 复位 复位 复位 复位 唤醒后: 1. 如果中断使能→ 中断 +下一条指令 2. 如果中断禁止 →下一条指令 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 35 EM78F562N/F662N 8位微控制器 6.5.3 复位后寄存器初始值概述 表 6-2 寄存器初始值概述 说明: “×” = 保留位 “u” = 未知或不用关心 Addr 0x05 0x06 0x07 0x08 Name IOC5 IOC6 IOC7 IOC8 Reset Type CONT 0×00 R0 (IAR) 0×01 R1 (TCC) 0×02 R2 (PC) 0×03 R3 (SR) 0×04 36 • R4 (RSR) “t” = 对照表 6-3 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 位名 C57 C56 C55 C54 C53 C52 C51 C50 上电 1 1 1 1 1 1 1 1 /RESET 和 WDT 1 1 1 1 1 1 1 1 引脚输入状态改变唤醒 P P P P P P P P 位名 × × × × C63 C62 C61 C60 上电 0 0 0 0 1 1 1 1 /RESET 和 WDT 0 0 0 0 1 1 1 1 引脚输入状态改变唤醒 0 0 0 0 P P P P 位名 C77 × × × C73 C72 C71 C70 上电 1 0 0 0 1 1 1 1 /RESET 和 WDT 1 0 0 0 1 1 1 1 引脚输入状态改变唤醒 P 0 0 0 P P P P 位名 × × × × C83 × × × 上电 0 0 0 0 1 0 0 0 /RESET 和 WDT 0 0 0 0 1 0 0 0 引脚输入状态改变唤醒 N/A “P” = 复位前的值 0 0 0 0 P 0 0 0 位名 INTE /INT TS TE PSTE PST2 PST1 PST0 上电 0 0 0 0 0 0 0 0 /RESET 和 WDT 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 P P P P P P P P 位名 IAR7 IAR6 IAR5 IAR4 IAR3 IAR2 IAR1 IAR0 上电 U U U U U U U U /RESET 和 WDT P P P P P P P P 引脚输入状态改变唤醒 P P P P P P P P 位名 TCC7 TCC6 TCC5 TCC4 TCC3 TCC2 TCC1 TCC0 上电 0 0 0 0 0 0 0 0 /RESET 和 WDT 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 P P P P P P P P 位名 A7 A6 A5 A4 A3 A2 A1 A0 上电 0 0 0 0 0 0 0 0 /RESET 和 WDT 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 P P P P P P P P 位名 × × × T P Z DC C 上电 0 0 0 1 1 U U U /RESET 和 WDT 0 0 0 t t P P P 引脚输入状态改变唤醒 0 0 0 t t P P P 位名 RSR7 RSR6 RSR5 RSR4 RSR3 RSR2 RSR1 RSR0 上电 U U U U U U U U /RESET 和 WDT P P P P P P P P 引脚输入状态改变唤醒 P P P P P P P P 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Addr Name Reset Type Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 P57 P56 P55 P54 P53 P52 P51 P50 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 引脚输入状态改变唤醒 P P P P P P P P 位名 x x x x P63 P62 P61 P60 0 0 0 0 1 1 1 1 位名 0×05 0×06 上电 P5 (Bank 0) /RESET 和 WDT 上电 P6 (Bank 0) /RESET 和 WDT 引脚输入状态改变唤醒 0×07 0 0 1 1 1 1 0 0 P P P P P77 x x x P73 P72 P71 P70 上电 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 引脚输入状态改变唤醒 P 0 0 0 P P P P P7 (Bank 0) /RESET 和 WDT 位名 引脚输入状态改变唤醒 位名 上电 R9 (Bank 0) /RESET 和 WDT 引脚输入状态改变唤醒 位名 0×0A 0 0 位名 上电 P8 0×08 (Bank 0) /RESET 和 WDT 0×09 0 0 RA 上电 (Bank 0) /RESET 和 WDT 引脚输入状态改变唤醒 x x x x P83 x x x 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 P 0 0 0 RBit7 RBit6 RBit5 RBit4 RBit3 RBit2 RBit1 RBit0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P P x x CMPW E x x ICWE ADWE EXWE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P 0 P 位名 RD WR RB 上电 0×0B (ECR) (Bank 0) /RESET 和 WDT 引脚输入状态改变唤醒 0 0 0 P P P P P P P 0×0C 0×0E 0 0 0 x x x 0 0 0 0 0 P P 0 0 0 P 0 0 0 位名 x 上电 0 0 P P P P P P P 引脚输入状态改变唤醒 0 P P P P P P P RC (Bank 0) /RESET 和 WDT 位名 0×0D 0 EEPC EEWE EEDF EE_A6 EE_A5 EE_A4 EE_A3 EE_A2 EE_A1 EE_A0 0 0 0 0 0 0 0 EE_D7 EE_D6 EE_D5 EE_D4 EE_D3 EE_D2 EE_D1 EE_D0 上电 0 P P P P P P P P 引脚输入状态改变唤醒 P P P P P P P P 位名 x IDLE x x x x 1 0 0 0 0 RD (Bank 0) /RESET 和 WDT RE 上电 (Bank 0) /RESET 和 WDT 引脚输入状态改变唤醒 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) 0 0 0 TIMER CPUS SC 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 P P P 0 0 0 0 • 37 EM78F562N/F662N 8位微控制器 Addr Name Reset Type 位名 0×0F RF (ISR) 上电 (Bank 0) /RESET 和 WDT 引脚输入状态改变唤醒 0× 8 R8 (Bank 1) Bit 3 Bit 2 Bit 1 Bit 0 CMPIF ADIF x x x EXIF ICIF TCIF 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P 0 0 0 RCM0 TC2ES TC2M TC2S 上电 Option Option RCM1 RCM0 0 0 0 0 0 0 /RESET 和 WDT Option Option RCM1 RCM0 0 0 0 0 0 0 P P P P P P 上电 R9 (Bank 1) /RESET 和 WDT 引脚输入状态改变唤醒 上电 RA (Bank 1) /RESET 和 WDT P P TC2CK2 TC2CK1 TC2CK0 TC2D15 TC2D14 TC2D13 TC2D12 TC2D11 TC2D10 TC2D9 TC2D8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P P TC2D7 TC2D6 TC2D5 TC2D4 TC2D3 TC2D2 TC2D1 TC2D0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 P P P P P P P P 位名 x x TCIF3 TCIF2 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ADE8 ADE7 ADE6 ADE5 ADE4 ADE3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P P 上电 RF (Bank 1) /RESET 和 WDT 引脚输入状态改变唤醒 位名 上电 R5 0×05 (Bank 2) /RESET 和 WDT 引脚输入状态改变唤醒 位名 上电 R6 0×06 (Bank 2) /RESET 和 WDT 引脚输入状态改变唤醒 VREFS CKR1 CKR0 ADRUN ADPD ADE2 ADE1 ADIS2 ADIS1 ADIS0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P P 位名 CALI x x x 上电 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P 0 0 0 ADD9 ADD8 ADD7 ADD6 ADD5 ADD4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P P R7 0×7 (Bank 2) /RESET 和 WDT 引脚输入状态改变唤醒 位名 上电 R8 0×8 (Bank 2) /RESET 和 WDT 引脚输入状态改变唤醒 38 • Bit 4 P 位名 0× F Bit 5 RCM1 位名 0× A Bit 6 位名 引脚输入状态改变唤醒 0× 9 Bit 7 SIGN VOF[2] VOF[1] VOF[0] ADD3 ADD2 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Addr. Name Reset Type Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 x x x x x x ADD1 ADD0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 0 0 0 0 0 0 P P 位名 x x x x x CPOUT CPS1 CPS0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 0 0 0 0 0 P P P 位名 x x x x /PH73 /PH72 /PH71 /PH70 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 P P P P MLB x x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P 0 0 0 0 P P P 位名 0× 9 0×0B 上电 R9 (Bank 2) /RESET 和 WDT 上电 RB (Bank 2) /RESET 和 WDT 上电 RF 0×0F (Bank 2) /RESET 和 WDT 引脚输入状态改变唤醒 位名 0×06 上电 R6 (Bank 3) /RESET 和 WDT 引脚输入状态改变唤醒 位名 0× D 上电 RD (Bank 3) /RESET 和 WDT 引脚输入状态改变唤醒 位名 0× E 0× F 上电 RE (Bank 3) /RESET 和 WDT 0×0C IOCC TC3M0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P P TC3D7 TC3D6 TC3D5 TC3D4 TC3D3 TC3D2 TC3D1 TC3D0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 P P P P P P P P 位名 x x x x /PD73 /PD72 /PD71 /PD70 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 P P P P 位名 WDTE EIS x x PSW1 PSW0 上电 0 0 0 0 0 0 0 0 /RESET 和 WDT 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 P P 0 0 P P P P 位名 /PD7 /PD6 /PD5 /PD4 /PD3 /PD2 /PD1 /PD0 上电 1 1 1 1 1 1 1 1 /RESET 和 WDT 1 1 1 1 1 1 1 1 引脚输入状态改变唤醒 P P P P P P P P 位名 x x x x OD3 OD2 OD1 OD0 上电 0 0 0 0 0 0 0 0 /RESET 和 WDT 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 0×0B IOCB TC3FF1 TC3FF0 TC3S TC3CK2 TC3CK1 TC3CK0 TC3M1 RBit 8 0 上电 RF (Bank 3) /RESET 和 WDT 0×0A IOCA RBit 10 RBit 9 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) PSWE PSW2 • 39 EM78F562N/F662N 8位微控制器 引脚输入状态改变唤醒 Addr 0×0D Name IOCD 0×0E IOCE 0×0F IOCF 0×10 ~ 0×2F R10 ~ R2F 0 Reset Type 0 0 0 P P P P Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 位名 x x x x /PH3 /PH2 /PH1 /PH0 上电 0 0 0 0 1 1 1 1 /RESET 和 WDT 0 0 0 0 1 1 1 1 引脚输入状态改变唤醒 0 0 0 0 P P P P 位名 x x TCIE3 TCIE2 x x x x 上电 0 0 0 0 0 0 0 0 /RESET 和 WDT 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 0 0 P P 0 0 0 0 位名 CMPIE ADIE x x x EXIE ICIE TCIE 上电 0 0 0 0 0 0 0 0 /RESET 和 WDT 0 0 0 0 0 0 0 0 引脚输入状态改变唤醒 P P 0 0 0 P P P 位名 R7 R6 R5 R4 R3 R2 R1 R0 上电 U U U U U U U U /RESET 和 WDT P P P P P P P P 引脚输入状态改变唤醒 P P P P P P P P 6.5.4 状态寄存器的RST,T与P的状态 复位由以下事件引起 1. 上电复位 2. 复位引脚输入高-低-高脉冲 3. 看门狗定时器溢出 表 6-2列出了T,P的值,用来检测是什么类型的唤醒。表 6-3列出了可能 影响T,P位的事件。 表 6-2 复位后RST,T与P的值 复位类型 上电 T P 1 1 *P *P /RESET 在休眠模式下唤醒 1 0 WDT 在运行模式 0 *P WDT 在休眠模式下唤醒 0 0 在休眠模式下引脚变化唤醒 1 0 /RESET 在运行模式 * P: 复位前状态 40 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 表 6-3 T,P被事件影响后的状态 事件 T P 上电 1 1 WDTC 指令 1 1 WDT 溢出 0 *P SLEP 指令 1 0 在休眠模式下引脚变化唤醒 1 0 * P: Previous value before reset 图 6-15 复位控制器结构图 6.6 中断 EM78F562N/F662N 有 7 个中断源(3 个外部,4 个内部)如下表所列: 中断源 使能条件 中断 标志 中断向量 优先级 - - 0000 高0 ENI + EXIE=1 EXIF 0003 1 ENI +ICIE=1 ICIF 0006 2 TCC ENI + TCIE=1 TCIF 0009 3 内部 TC2 ENI + TCIE2=1 TCIF2 0024 4 内部 TC3 ENI + TCIE3=1 TCIF3 0027 5 内部 AD ENI + ADIE=1 ADIF 0030 6 外部 比较器 CMPIF 0033 7 内部 / 外部 复位 外部 INT 外部 Port 6 引脚变化 内部 ENI + CMPIE=1 RF 是中断状态寄存器,其相关的标志/位中记录中断需求。IOCF 是中断屏蔽 寄存器。 全局中断由 ENI 指令使能,由 DISI 指令禁止。当一个中断发生时(使能情况下),下一 条指令将进入它们各自的中断向量地址。在返回中断服务之前必须清中断标志位以避免 循环的进入中断。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 41 EM78F562N/F662N 8位微控制器 中断状态寄存器(RF)标志位(除了 ICIF)的置位,与其屏蔽位和全局中断是否使能无关。 RETI 指令结束中断,使能全局中断(执行 ENI) 。 外部中断带有片内数字噪声抑制电路(输入脉冲(脉宽)小于 8 倍系统时钟周期则被当作 噪声滤除),但在低频晶体振荡模式(LXT)下,噪声滤除电路被禁止。 当外部中断 (下降 沿)(如果使能)发生时,下一条指令将从地址 003H 执行。 在中断子程序执行前,硬件保存 ACC、R3 和 R4 寄存器的值,如果另外一个中断发生, ACC、R3 和 R4 将被新的中断覆盖。中断服务程序结束后 ACC、R3 和 R4 的值被恢复。 VCC /IRQn IRQn D PR Q _ CLK CL Q RF INT RFRD IRQm ENI/DISI Q PR D IOCF _ CLK Q CL IOD IOCFWR /RESET IOCFRD RFWR 图 6-16 中断输入电路 图 6-17 中断备份框图 6.7 数据EEPROM (此节只针对 EM78F662N) 在整个正常工作电压范围内,数据 EEPROM 都是可读写的。对数据 EEPROM 的操作 是基于单字节的。一个字节的写操作包含先擦除后写入的流程。 数据 EEPROM 存储器实现了高速擦写。一个字节的写包括自动擦除存储单元并写入新 值。 42 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 6.7.1 数据EEPROM控制寄存器 6.7.1.1 RB (EEPROM 控制寄存器) EECR (EEPROM 控制寄存器)是用来配置和初始化控制寄存器状态的控制寄存器。 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RD WR EEWE EEDF EEPC - - - Bit 7: 读控制寄存器 0: 禁止读 EEPROM 1: 开始读 EEPROM 内容, (RD 可用软件置位, 在读指令完成后由硬件清 零). Bit 6: 写控制寄存器 0: 完成写 EEPROM 周期。 1: 开始一个写周期, (WR 可用软件置位, 在写指令完成后由硬件清零). Bit 5: EEPROM 写使能位 0: 禁止写 EEPROM 1: 使能写 EEPROM Bit 4: EEPROM 检测标志位 0: 写周期完成 1: 写周期未完成 Bit 3: EEPROM 省电模式控制位 0: 关闭 EEPROM 1: 开启 EEPROM Bits 2 ~ 0: 保留位,全部置零。 6.7.1.2 RC (128 字节 EEPROM 地址寄存器) 当要访问 EEPROM 数据存储器时,RC(128 字节 EEPROM 地址寄存器)存储要访问 的地址。同理,RD(EEPROM 数据寄存器)保存的是在 RC 地址上要写入的或要从中 读出的数据。 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - EE_A6 EE_A5 EE_A4 EE_A3 EE_A2 EE_A1 EE_A0 Bits 7: 保留位,全部置零。 Bits 6 ~ 0: 128 字节EEPROM 地址 6.7.1.3 RD (256 字节 EEPROM 数据寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 EE_D7 EE_D6 EE_D5 EE_D4 EE_D3 EE_D2 EE_D1 EE_D0 Bits 7 ~ 0: 寄存128 字节 EEPROM 数据 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 43 EM78F562N/F662N 8位微控制器 6.7.2 编程步骤 / 范例 6.7.2.1 编程步骤 从 EEPROM 中读写数据须按如下步骤: (1) 置RB.EEPC位为1以使能EEPROM 。 (2) 写地址值到RC (128 字节EEPROM地址寄存器)。 a.1. 置 RB.EEWE 位为 1,如果使用写入功能。 a.2. 写 8 位待写数据值到 RD (256 字节 EEPROM 数据寄存器) a.3. 置 RB.WR 位为 1, 接着执行写功能。 b. 置 RB.RD 位为 1,接着执行读功能。 (3) a. 等待RB.EEDF或RB.WR被清0。 b. 等待RB.EEDF被清0。 (4) 下一操作,跳至步骤二(若需要)。 (5) 如果用户想省电并确定 EEPROM数据不用,可清RB.EEPC位。 6.7.2.2 编程范例 ; 定义控制寄存器 ; 写数据到EEPROM RC == 0x0C RB == 0x0B RD == 0x0D Read == 0x07 WR == 0x06 EEWE == 0x05 EEDF == 0x04 EEPC == 0x03 BS RB, EEPC MOV A,@0x0A MOV RC,A BS RB, EEWE MOV A,@0x55 MOV RD,A BS RB,WR JBC RB,EEDF JMP $-1 44 • ; 使能EEPROM ; 写EEPROM地址值 ; 使能EEPROM的写功能 ; 写数据到EEPROM数据寄存器 ; 写值到EEPROM ; 检查数据是否写完 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 6.8 模数转换器(ADC) A/D 转换电路包括一个 8 位模拟多路复用器,3 个控制寄存器(AISR/R5 (Bank 2), ADCON/R6 (Bank 2), ADOC/R7 (Bank 2)),2 个数据寄存器(ADDH, ADDL/R8, R9)和一 个分辨率为 10 位的 ADC。图 6-18 所示为 ADC 的功能框图。模拟参考电压(Vref)和模 拟地由独立引脚接入。 逐次逼近式 ADC 模块将未知的模拟信号转换为数字值,结果存放在 ADDH 和 ADDL。 可通过 ADCON 寄存器的 ADIS0 至 ADIS2 位控制多路复用器来选择模拟输入通道。 图 6-18 A/D转换功能框图 6.8.1 ADC控制寄存器(AISR/R5, ADCON/R6, ADOC/R7) 6.8.1.1 Bank 2 R5 AISR (ADC 输入选择寄存器) AISR 寄存器定义 ADC 引脚作为模拟输入或数字 I/O。 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 Bit 7 (ADE7): P57引脚作为AD输入使能位 0: 禁止 ADC7,P57 作为 I/O 引脚 1: 使能 ADC7 作为模拟输入引脚 Bit 6 (ADE6): P56引脚作为AD输入使能位 0: 禁止 ADC6,P56 作为 I/O 引脚 1: 使能 ADC6 作为模拟输入引脚 Bit 5 (ADE5): P77引脚作为AD输入使能位 0: 禁止 ADC5,P77 作为 I/O 引脚 1: 使能 ADC5 作为模拟输入引脚 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 45 EM78F562N/F662N 8位微控制器 Bit 4 (ADE4): P73引脚作为AD输入使能位 0: 禁止 ADC4,P73 作为 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/AD0//INT 的优先级。 P60/AD0//Int 引脚优先级 高 中 低 /INT AD0 P60 Bank 2 R6 ADCON (A/D 控制寄存器) 6.8.1.2 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 VREFS CKR1 CKR0 ADRUN ADPD ADIS2 ADIS1 ADIS0 Bit 7 (VREFS): ADC参考电压输入源选择 0: ADC 的参考电压接到 Vdd(默认值) ,P50/VREF 引脚用作 P50 功能。 1: ADC 的参考电压接到 P50/VREF 引脚 Bit 6 ~ Bit 5 (CKR1 ~ CKR0): ADC 时钟频率预分频比 CKR1/CKR0 工作模式 最大工作频率 00 FOSC/4 4 MHz 01 FOSC 1 MHz 10 FOSC/16 16 MHz 11 FOSC/2 2 MHz Bit 4 (ADRUN): ADC启动控制位 0: AD 转换结束清零。该位不可由软件清零。 1: AD 转换开始。该位可由软件置 1。 46 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Bit 3 (ADPD): ADC 省电模式选择位 0: 关闭参考电阻以节省用电 1: ADC 正常运行 Bits 2~0 (ADIS2~ADIS0): 输入选择位 ADIS2 ADIS1 ADIS0 AD 输入引脚 0 0 0 AD0 0 0 1 AD1 0 1 0 AD2 0 1 1 AD3 1 0 0 AD4 1 0 1 AD5 1 1 0 AD6 1 1 1 AD7 6.8.1.3 Bank 2 R7 ADOC (A/D 补偿校准寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CALI SIGN VOF[2] VOF[1] VOF[0] - - - Bit 7 (CALI): A/D 补偿校准使能位 0: 校准禁止 1: 校准使能 Bit 6 (SIGN): 补偿电压极性选择位 0: 负电压 1: 正电压 Bit 5 ~ Bit 3 (VOF[2] ~ VOF[0]): 补偿电压位 VOF[2] VOF[1] VOF[0] 补偿值 0 0 0 0 LSB 0 0 1 1 LSB 0 1 0 2 LSB 0 1 1 3 LSB 1 0 0 4 LSB 1 0 1 5 LSB 1 1 0 6 LSB 1 1 1 7 LSB Bits 2 ~ Bit 0 : 保留位, 全置为 0。 6.8.2 ADC数据缓冲器(ADDH, ADDL/R8, R9) A/D 转换结束后,转换结果存放到 ADDH, ADDL。ADRUN 位清零,ADIF 位置 1。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 47 EM78F562N/F662N 8位微控制器 6.8.3 A/D采样时间 逐次逼近式 AD 转换器的精确性、线性、速度由 AD 转换器和比较器的特性决定。阻抗 源和内部采样阻抗直接影响采样电路中电容的充电时间。通过应用程序可控制采样时间 长短以满足特定精度需要。一般来说,对于每千欧姆模拟输入阻抗,程序应等待 2µs, 对于低阻抗源应至少等待 2µs, 建议外部 AD 电路在 Vdd=5V 时的输入最大阻抗为 10KΩ。 模拟输入通道选定后,在转换开始之前应先满足这个采样时间。 6.8.4 A/D 转换时间 CKR0 和 CKR1 依照指令周期来选择转换时间(Tct)。在不影响 A/D 转换精度的条件下, 允许 MCU 运行在最高频率。对于 EM78F562N/F662N,每位转换时间约为 1µs。表 6-5 列出了 Tct 与最高频率的关系。 表 6-5 Tct和最大工作频率 CKR0: CKR1 工作模式 最大工作频率 最大转换速率/位 最大转换速率/ (10 位) 00 Fosc/4 4 MHz 4 MHz (1µs) (10+9)*1µs=19µs(52.6kHz) 01 Fosc 1 MHz 1 MHz (1µs) (10+9)*1µs=19µs(52.6kHz) 10 Fosc/16 16 MHz 16 MHz (1µs) (10+9)*1µs=19µs(52.6kHz) 11 Fosc/2 2 MHz 2 MHz (1µs) (10+9)*1µs=19µs(52.6kHz) AD 转换时间 (10 位): 3 fsys (DGD) + 1.5 A/D (DGD) + 4A/D (AMD) + 10A/D (AMD) 注意 没有被用作模拟输入的引脚可以被用作普通输入输出引脚。 转换期间,不要执行输出指令以保持所有引脚的稳定。 6.8.5 休眠期间A/D运行 为了得到更精确的 ADC 值并降低功耗,AD 转换可以在休眠模式下进行。当执行 SLEP 指令后,MCU 停止工作,但振荡器,TCC, TC2, TC3 和 AD 转换继续工作。 当下列情况发生时说明 AD 转换结束: 1.R6 寄存器的 ADRUN 位清零 2.在休眠模式下保持运行,由 A/D 转换唤醒 ADOC 转换结束后,结果送入 ADDATA。如果 ADWE 使能,则单片机将被唤醒。否则, 不论 ADPD 位是什么状态,A/D 转换器将关闭。 6.8.6 编程步骤/范例 6.8.6.1 编程步骤 按照以下步骤获取 ADC 数据: 1. 设置 R5(AISR)寄存器的 8 个位(ADE8 ~ ADE1)以定义 R6 的特性:数字 I/O,模拟通 道和参考电压引脚。 2. 写 R6/ADCON 寄存器以配置 AD 模块: 48 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 a. 选择 A/D 输入通道(ADIS2 ~ ADIS0) b. 定义 A/D 转换时钟比率(CKR1 ~ CKR0) c.选择 ADC 的参考电压输入源 VREFS d.把 ADPD 位置 1,ADC 开始采样 3. 如果使用唤醒功能,请设置 ADWE 位 4. 如果使用中断功能,请设置 ADIE 位 5. 如果使用中断功能,请执行“ENI”指令 6.ADRUN 位置 1 7.等待唤醒或 ADRUN 位被清零 8. 读转换数据寄存器 ADDATA 里的转换数据 9. 当 A/D 中断功能发生,清除中断标志位(ADIF) 10. 若需要下一次转换,则跳至步骤 1 或步骤 2,下一次采样开始之前需至少等待 2Tct 时间。 注意 为了获得准确的结果,在AD转换期间需避免有任何数据在I/O引脚上传输。 6.8.6.2 程序实例 ; 定义通用寄存器 R_0 == 0 ; 间接地址寄存器 PSW == 3 ; 状态寄存器 PORT5 == 5 PORT6 == 6 RE== 0XE ; 唤醒控制寄存器 RF== 0XF ; 中断状态寄存器 ; 定义控制寄存器 IOC50 == 0X5 ; Port 5 控制寄存器 IOC60 == 0X6 ; Port6 控制寄存器 C_INT== 0XF ; 中断控制寄存器 ;ADC 控制寄存器 ADDATA == 0x8 AISR == 0x08 ADCON == 0x6 ;位定义 ;ADCON ADRUN == 0x4 ADPD == 0x3 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) ; 内容为 ADC 结果 ; ADC 输出选择寄存器 ; 7 6 5 4 3 2 1 0 VREFS CKR1 CKR0 ADRUN ADPD (ADIS2~ ADIS0) ; 该位置 1 则 ADC 执行 ; ADC 电源模式 • 49 EM78F562N/F662N 8位微控制器 ; 初始地址 ORG 0 JMP INITIAL ORG 0x30 (用户代码) CLR RF BS ADCON , ADRUN RETI INITIAL: MOV A MOV AISR MOV A MOV ADCON En_ADC: MOV A IOW PORT6 MOV A MOV RE MOV A , , , , ; 中断向量 ; 清除 ADIF ; 如果需要,执行下一次 AD 转换 @0B00000001 A @0B00001000 A , @0BXXXXXXX1 , @0BXXXX1XXX , A , @0BXXXX1XXX ; 定义 P60 为模拟输入 ; 选择 P60 为一个模拟输入通道,AD 电源打开 ; 定义 P60 为输入引脚,选择时钟比率为 fosc/16 ; 定义 P60 为输入引脚,其他引脚根据实际应用 ; 定义 ; 使能 ADC 唤醒功能 ADWE 位, “X“根据实际应 ;用定义 “X“根据实际应 ; 使能 ADC 中断功能 ADIE 位, ;用定义 IOW C_INT ENI BS ADCON POLLING: JBC ADCON JMP POLLING (用户代码) , ADRUN ; 使能中断功能 ; 开始运行 ADC ; 如果使用中断功能,接下来的三行可不用 , ADRUN ; 不断检测 ADRUN 位 ; 当 AD 转换完成后 ADRUN 位将被复位 6.9 定时/计数器2 图 6-19 定时/计数器2结构图 50 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 定时器模式下,用内部时钟执行加计数操作,当加计数器内容与 TCR2(TCR2H+TCR2L) 内容相匹配时,中断产生且计数器清零,计数器清零后计数重新开始。 图 6-20 定时器模式时序图 计数器模式下,用从输入引脚(TC2 引脚)输入的外部时钟执行加计数操作,通过设置 TC2ES 位可选择上升沿或是下降沿有效,当加计数器内容与 TCR2(TCR2H+TCR2L) 内容相匹配时,中断产生且计数器清零,计数器清零后计数重新开始。 图 6-21 计数器模式时序图(INT2ES = 1) 窗口模式下,内部时钟和 TC2 引脚的脉冲(窗口脉冲)逻辑与后,在脉冲的上升沿来临时执 行加计数操作,当加计数器内容与 TCR2(TCR2H+TCR2L)内容相匹配时,中断产生且 计时器清零。频率(窗口脉冲)需低于所选的内部时钟。 写 TCR2L 时,比对被禁止直到 TCR2H 写完。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 51 EM78F562N/F662N 8位微控制器 图 6-22 窗口模式时序图 6.10 定时/计数器3 图 6-23 定时器/计数器 3 结构图 定时器模式下,用内部时钟(上升沿触发)执行加计数操作,当加计数器内容与 TCR3 内容相匹配时,中断产生且计数器清零,计数器清零后计数重新开始。 计数器模式下, 用输入引脚(TC3 引脚)的外部时钟执行加计数操作,当加计数器内容 与 TCR3 内容相匹配时,中断产生且计数器清零,计数器清零之后计数重新开始。 可编程分频器输出(PDO)模式下, 用内部时钟执行加计数操作,TCR3 内容与加计数 器内容做比较,当它们的内容相匹配时,F/F 输出被触发且计数器被清零,F/F 输出被取 反并输出到/PDO 引脚。 该模式可产生 50%占空比的脉冲输出。F/F 可被程序初始化, 复位时其初始值为”0”, 每次/PDO 输出被触发时 TC3 都产生中断。 52 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 图 6-24 PDO模式时序图 脉宽调制(PWM)输出模式下,用内部时钟执行加计数操作,TCR3 内容与加计数器内 容作比较,当它们内容相匹配时 F/F 被触发。计数器继续计数,计数器溢出时 F/F 再次 被触发,同时计数器清零。F/F 输出被反向并输出到/PWM 引脚,每次溢出发生时即产 生 TC3 中断。TCR3 被设置成 2 级移位寄存器,输出期间输出不会改变直到一个输出周 期完成,即使 TCR3 被重写。因此,输出可连续地被改变,在数据载入 TCR3 后通过置 TC3S 位为”1”,TRC3 第一次被移位。 图 6-25 PWM模式时序图 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 53 EM78F562N/F662N 8位微控制器 6.11 比较器 EM78F562N/F662N 有一个包含 2 个模拟输入端和 1 个输出端的比较器,它可用于将 EM78F562N/F662N 从休眠模式唤醒,比较器电路如下图所示。 图 6-26 比较器方框图 注意 参考信号幅度须在Vss与Vdd之间。 参考电压可取比较器两个引脚中一个引脚。 阈值检测器应用可与参考的一致。 比较器可通过相同或不同的参考源工作。 6.11.1 比较器输出 比较器输出结果存储在Bank 2 RB的CPOUT里。 通过编程Bank 2 RB寄存器的Bit 1, Bit 0<CPS1, CPS0>值为<1, 0>设置比较器的输 出端为CMPOUT (P60)。参见6.1.27章节Bank2 RB(CMPCON:比较器控制寄存 器)比较器选择位的功能描述。 下图为比较器的输出模块图 图 6-27 比较器输出框图 54 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 6.11.2 比较器中断 CMPIE3 (IOCF.7) 须使能,以使“ENI”指令有效。 比较器输出状态改变时产生中断。 输出引脚的实际变化可通过读寄存器Bank 2 RB<2> CPOUT位确定。 CMPIF (RF.7 Bank 0)为比较器中断标志位,只能由软件清零。 6.11.3 从休眠模式唤醒 如果使能比较器,即使进入休眠模式,比较器仍然保持激活状态和中断功能。 如果错误匹配发生,中断将使器件从休眠模式中唤醒。 电源损耗也应该考虑。 在休眠模式下如果不使用比较器功能,则须在进入休眠模式前将比较器关闭。 6.12 振荡器 6.12.1 振荡器模式 IC 可运行在四种不同的振荡模式下,即:内部 RC 振荡模式(IRC)、外部 RC 振荡模式 (ERC)、高频晶体振荡模式(HXT)和低频晶体振荡模式(LXT)。用户可通过编程设置代码 选项寄存器的 OSC2, OCS1,和 OSC0 位来选择其中一种振荡模式。 表 6-6 描述了如何 定义这四种振荡模式。 不同 VDD 下晶体/谐振模式的上限工作频率如表 6-7 所示: 表 6-6 OSC2 ~ OSC0与振荡模式的对应关系: 模式 OSC2 OSC1 OSC0 XT (晶体振荡器模式) 0 0 0 HXT (高频晶体振荡器模式) 0 0 1 LXT1 (低频晶体振荡器模式 1) 0 1 0 LXT2 (低频晶体振荡器模式 2) 0 1 1 IRC 模式, OSCO (P54) 作为 I/O 引脚 1 0 0 IRC 模式, OSCO (P54) 作为 RCOUT 引脚 1 0 1 ERC 模式, OSCO (P54) 作为 I/O 引脚 1 1 0 ERC 模式, OSCO (P54) 作为 RCOUT 引脚 1 1 1 注 1. HXT模式的频率范围是16 MHz ~ 6 MHz. 2. XT模式的频率范围是6 MHz ~ 1 MHz. 3. LXT1模式的频率范围是1 MHz ~ 100kHz. 4. LXT2模式的频率范围是32kHz. 在 LXT, XT, HXT 和 ERC 模式下,OSCI 和 OSCO 引脚被使用,它们不能用做普通 I/O 引脚。 在 IRC 模式下,P55 用做普通 I/O 引脚。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 55 EM78F562N/F662N 8位微控制器 表6-7 最大工作频率概述 条件 VDD 最大频率(MHz) 2.5 4.0 一个指令周期 2 个时钟 3.0 8.0 5.0 20.0 6.12.2 晶体振荡器/陶瓷谐振器 (晶体) EM78F562N/F662N 可由 OSCI 引脚输入的外部时钟信号驱动,如下图 6-28 所示。 外部时钟 OSCI OSCO 图 6-28 外部时钟输入电路 在大多数应用中, OSCI 和 OSCO 引脚连接一个晶体或陶瓷谐振器以产生振荡, 如图 6-29 所示,HXT 模式和 LXT 模式都是以此种方式产生振荡。表 6-8 提供 C1 和 C2 的推荐值。 由于每个谐振器都有其各自的属性,用户应参考规格书选择合适的 C1 和 C2。对于切片 型晶体或低频模式,可能需要串接电阻 RS。 C1 OSCI 晶振 OSCO RS C2 图6-29 晶体/陶瓷谐振器电路 56 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 表6-8 晶体振荡器或陶瓷谐振器匹配电容选择指南: 振荡器类型 频率模式 LXT1 (100K~1 MHz) 陶瓷谐振器 HXT2 (1 M~6 MHz) LXT2 (32.768kHz) LXT1 (100K~1 MHz) 晶体振荡器 XT (1~6 MHz) HXT (6~20MHz) 频率 C1 (pF) C2 (pF) 100kHz 200kHz 455kHz 1.0 MHz 1.0 MHz 2.0 MHz 4.0 MHz 32.768kHz 100kHz 200kHz 455kHz 1.0 MHz 455kHz 1.0 MHz 2.0 MHz 4.0 MHz 6.0 MHz 6.0 MHz 8.0 MHz 10.0 MHz 16.0 MHz 20.0 MHz 45pF 20pF 20pF 20pF 25pF 20pF 20pF 40pF 45pF 20pF 20pF 20pF 30pF 20pF 20pF 20pF 20pF 25pF 20pF 20pF 20pF 15pF 45pF 20pF 20pF 20pF 25pF 20pF 20pF 40pF 45pF 20pF 20pF 20pF 30pF 20pF 20pF 20pF 20pF 25pF 20pF 20pF 20pF 15pF 6.12.3 外部RC振荡器模式 对于一些不需要精确计时的应用中,RC 振荡器(图 6-30)提供了一种节省成本的振荡方 案。然而,应注意的是 RC 振荡器的频率会受供电电压、电阻(Rext)、电容(Cext)甚至工 作温度的影响。另外,因为生产过程的差异,一个器件与另外一个器件的频率也会存在 细微的差别。 为了维持在稳定的系统频率,Cext 值应不低于 20 pF,Rext 值不高于 1 MΩ。如果它们 不在此范围内,系统频率则很容易受噪声、湿度和漏电流的影响。 在 RC 振荡模式中,Rext 值越小,其振荡频率越快。相反,对一个非常小的 Rext 值, 例如 1 KΩ,振荡器将变得不稳定,因为 NMOS 不能及时地释放电容电荷。 基于以上原因,在使用 ERC 时必须时刻牢记供电电压、工作温度、RC 振荡器的元件特 性、封装类型、PCB 制板等因素都会对系统频率产生影响。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 57 EM78F562N/F662N 8位微控制器 Vcc Rext ERCin Cext EM78F662N 图 6-30 ERC振荡模式电路 表6-9 RC振荡器频率 Cext 20 pF 100 pF 300 pF 注: Rext 平均频率 5V, 25°C 平均频率 3V, 25°C 3.3k 3.5 MHz 3.2 MHz 5.1k 2.5 MHz 2.3 MHz 10k 1.30 MHz 1.25 MHz 100k 140kHz 140kHz 3.3k 1.27 MHz 1.21 MHz 5.1k 850kHz 820kHz 10k 450kHz 450kHz 100k 48kHz 50kHz 3.3k 560kHz 540kHz 5.1k 370kHz 360kHz 10k 196kHz 192kHz 100k 20kHz 20kHz 1 : 在DIP封装类型下量测 : 仅作为设计参考。实际值可能随实际过程不同而变化。 2 6.12.4 内部 RC振荡模式 表6-10 内部频率偏移率(Ta=25°C, VDD=5 V± 5%, VSS=0V) 偏移率 内部 RC 温度 (-40°C~85°C) 电压 (2.2V~5.5V) 制程 总计 1 MHz ± 3% ± 4% ± 2.5% ± 9.5% 4 MHz ± 3% ± 4% ± 2.5% ± 9.5% 8 MHz ± 3% ± 5% ± 2.5% ± 10.5% 16 MHz ± 3% ± 5% ± 2.5% ± 10.5% 6.13 代码选项寄存器 EM78F562N/F662N 拥有 3 个代码选项字,它不属于普通程序存储,程序执行时不能被 存取。 代码选项寄存器与客户 ID 寄存器分配: 58 • Word 0 Word 1 Word 2 Bit 12~Bit 0 Bit 12~Bit 0 Bit 12~Bit 0 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 6.13.1 代码选项寄存器(Word 0) Word 0 Bit 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 助记符 - 1 - 8/fc 禁止 使能 高 高 使能 高 高 高 高 高 高 0 - 32/fc 使能 禁止 低 低 禁止 低 低 低 低 低 低 NRHL NRE RESETENB CLKS1 CLKS0 ENWDTB OSC2 OSC1 OSC0 PR2 PR1 PR0 Bit 12: 保留位, 置为0 Bit 11 (NRHL): 高低脉冲噪声抑制位,INT引脚下降沿触发 1: 脉冲宽度≧8/fc [s]时认为是信号 0: 脉冲宽度≧32/fc [s]时认为是信号(默认) 注意 在LXT2和休眠模式下噪声抑制功能被关闭 Bit 10 (NRE): 噪声抑制使能位(取决于 EM78F562N/F662N). INT 引脚下降沿触发 1: 禁止噪声抑制 0: 使能噪声抑制 (默认),但在低晶体振荡模式下(LXT),噪声抑制电路禁 止。 Bit 9 (RESETENB): 复位引脚使能位 0: 禁止, P83//RESET → P83 (default) 1: 使能, P83//RESET → RESET 引脚 Bit 8 ~ Bit 7 (CLKS1 ~ CLKS0): 指令周期选项位 指令周期 CLKS1 CLKS0 4 clocks 0 0 2 clocks 0 1 8 clocks 1 0 16 clocks 1 1 参见指令集章节 Bit 6 (ENWDTB): 看门狗定时器使能位 0: 禁止 1: 使能 Bit 5 ~ Bit 3 (OSC2 ~ OSC0): 振荡器模式选择位 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 59 EM78F562N/F662N 8位微控制器 振荡模式由 OSC2 ~ OSC0 定义 模式 OSC2 OSC1 OSC0 XT (晶体振荡器模式) 0 0 0 HXT (高频晶体振荡器模式) 0 0 1 LXT1 (低频晶体振荡器模式 1) 0 1 0 LXT2 (低频晶体振荡器模式 2) 0 1 1 IRC 模式, OSCO (P54) 作为 I/O 引脚 1 0 0 IRC 模式, OSCO (P54) 作为 RCOUT 引脚 1 0 1 ERC 模式, OSCO (P54) 作为 I/O 引脚 1 1 0 ERC 模式, OSCO (P54) 作为 RCOUT 引脚 1 1 1 注 1. HXT模式的频率范围是16 MHz ~ 6 MHz. 2. XT模式的频率范围是6 MHz ~ 1 MHz. 3. LXT1模式的频率范围是1 MHz ~ 100kHz. 4. LXT2模式的频率范围是32kHz. Bit 2 ~ Bit 0 (PR2 ~ PR0): 保护位,保护类型如下: PR2 PR1 PR0 保护 1 1 1 使能 0 0 0 禁止 6.13.2 代码选项寄存器(Word 1) Word 1 Bit 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 助记符 COBS TCEN - - C4 C3 C2 C1 C0 1 高 TCC - - 高 高 高 高 高 高 高 高 高 0 低 P77 - - 低 低 低 低 低 低 低 低 低 RCM1 RCM0 LVR1 LVR0 Bits 12 (COBS): 代码选项位选择 0: IRC 频率由代码选项选择(默认) 1: IRC 频率由内部寄存器 Bank 1 R8 (7, 6)选择 Bit 11 (TCEN): TCC使能位 0: P77/TCC 设为 P77 1: P77/TCC 设为 TCC Bit 10 ~ Bit 9: 固定为 “1” Bit 8 ~ Bit 4 (C4 ~ C0): 内部RC模式校准位,C4 ~ C0 只能设置为“0” (自动校准) 60 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Bit 3 ~ Bit 2 (RCM1 ~ RCM0): RC 模式选择位 *频率(MHz) RCM 1 RCM 0 0 0 4 0 1 16 1 0 8 1 1 1 Bit 1 ~ Bit 0 (LVR1 ~ LVR0): 低电压复位使能位 LVR1 LVR0 复位电压 释放电压 0 0 NA NA 0 1 2.7V 2.9V 1 0 3.5V 3.7V 1 1 4.0V 4.2V LVR1, LVR0=“0, 0” : LVR 禁止, EM78F562N/F662N 上电复位点为 2.0V LVR1, LVR0=“0, 1” : 如果 Vdd < 2.7V,EM78F562N/F662N 将复位 LVR1, LVR0=“1, 0” : 如果 Vdd < 3.5V,EM78F562N/F662N 将复位 LVR1, LVR0=“1, 1” : 如果 Vdd < 4.0V,EM78F562N/F662N 将复位 6.13.3 用户 ID 寄存器(Word 2) Word 2 Bit 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 助记符 SC3 SC2 SC1 SC0 - - - - SFS X X X X 1 高 高 高 高 - - - - 128kHz 高 高 高 高 0 低 低 低 低 - - - - 16kHz 低 低 低 低 Bits 12 ~ 9 (SC3 ~ SC0): 副频校准 (WDT 频率自动校准) Bit 8: 固定为“0” Bit 7: 固定为“0” Bits 6~5: 固定为“0” Bit 4 (SFS): 副频选择位 0: 16kHz (WDT 频率) 1: 128kHz Bits 3~0: 用户 ID 代码 6.14 上电相关问题 在供电电压未达到稳定状态下,任何微控制器都不能保证正常工作。EM78F562N/F662N 内置有一个上电电压检测器(POVD) ,其检测电压 2.0V。如果 Vdd 上升时间足够快(50 ms 或更少) ,它将正常的工作。然而,在要求严格的应用中,需要增加额外器件以辅助 解决上电问题。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 61 EM78F562N/F662N 8位微控制器 6.15 外部上电复位电路 图 6-31 所示电路是利用外部 RC 电路产生复位脉冲的电路。脉冲宽度(时间常数)应该足 够长以使 Vdd 达到最低工作电压。此电路用在供电电压上升很慢的情况。由于/RESET 引脚的漏电流大约为±5µA,因此建议 R 值不要大于 40 KΩ。此时,/RESET 引脚电压 保持在 0.2V 以下。二极管(D)在掉电时作为短路回路。 电容 C 将快速充分放电。限流电阻 Rin 可防止高电流或 ESD(静电放电)灌入/RESET 引脚。 Vdd R /RESET D Rin C 图 6-31 外部上电复位电路 6.16 残留电压保护 当更换电池时,单片机的电源 VDD 断开,但仍然存在残留电压。残留电压可能小于最 低工作电压,但不为零。这种情况下可能导致不良复位。 图 6-32 和 图 6-33 给出了如 何防止残留电压的保护电路。 Vdd Vdd 33K Q1 10K /RESET 40K 1N4684 图 6-32残留电压保护电路1 62 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 Vdd Vdd R1 Q1 /RESET 40K R2 图 6-33 残留电压保护电路2 6.17 指令集 指令集里的每条指令均是 13 位字节,一条指令分为一个操作码和一个或多个操作数。 一般情况下,除指令的执行改变了程序计数器的值("MOV R2,A", "ADD R2,A")或对 R2 进行算术或逻辑操作 (例如: "SUB R2,A", "BS (C) R2,6", "CLR R2", ⋅⋅⋅⋅)需要 2 个指令 周期外,其它所有指令的执行周期都是一个指令周期(一个指令周期含 2 个振荡周期)。 如果由于某些因素,规格里设定指令周期(一个指令周期含 2 个振荡周期)不适合实际 应用,试对指令作如下修改: (A) 将指令改成由 4 个,8 个或者 16 个振荡周期组成. (B) "JMP", "CALL", "RET", "RETL", "RETI"指令执行一个指令周期,条件跳转指令 ("JBS", "JBC", "JZ", "JZA", "DJZ", "DJZA") 条件为真时执行 2 个指令周期。对程序 计数器进行写操作的指令也执行 2 个指令周期。 选项 (A)由代码选项寄存器的 CLKS1,CLKS0 位选择。 此外,指令集还具有如下特性: (1) 任何寄存器的每个位都可被置 1、清零或直接测试。 (2) I/O 寄存器可被当作通用寄存器。也就是说,相同的指令可对 I/O 寄存器操作。 惯例: R =表示一个寄存器指示符,用来指定指令操作哪个寄存器(包括操作寄存器和通用寄存器)。 b =表示一个位指示符,指定位于R寄存器中并会影响操作的位。 k =代表一个8位或10位常数或立即数。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 63 EM78F562N/F662N 8位微控制器 二进制指令 64 • 十六进制 助记符 操作 受影响标志位 0 0000 0000 0000 0000 NOP 空操作 无 0 0000 0000 0001 0001 DAA A 累加器十进制调整 C 0 0000 0000 0010 0002 CONTW A → CONT 0 0000 0000 0011 0003 SLEP 0 → WDT, 停止振荡 T, P 0 0000 0000 0100 0004 WDTC 0 → WDT T, P 0 0000 0000 rrrr 000r IOW R A → IOCR 无 0 0000 0001 0000 0010 ENI 使能中断 无 0 0000 0001 0001 0011 DISI 禁止中断 无 0 0000 0001 0010 0012 RET [栈顶] → PC 无 0 0000 0001 0011 0013 RETI [栈顶] → PC, 使能中断 无 0 0000 0001 0100 0014 CONTR CONT → A 无 0 0000 0001 rrrr 001r IOR R IOCR → A 0 0000 01rr rrrr 00rr MOV R,A A→R 无 0 0000 1000 0000 0080 CLRA 0→A Z 0 0000 11rr rrrr 00rr CLR R 0→R Z 0 0001 00rr rrrr 01rr SUB A,R R-A → A Z, C, DC 0 0001 01rr rrrr 01rr SUB R,A R-A → R Z, C, DC 0 0001 10rr rrrr 01rr DECA R R-1 → A Z 0 0001 11rr rrrr 01rr DEC R R-1 → R Z 无 无 1 1 0 0010 00rr rrrr 02rr OR A,R A∨R→A Z 0 0010 01rr rrrr 02rr OR R,A A∨R→R Z 0 0010 10rr rrrr 02rr AND A,R A&R→A Z 0 0010 11rr rrrr 02rr AND R,A A&R→R Z 0 0011 00rr rrrr 03rr XOR A,R A⊕R→A Z 0 0011 01rr rrrr 03rr XOR R,A A⊕R→R Z 0 0011 10rr rrrr 03rr ADD A,R A+R→A Z, C, DC Z, C, DC 0 0011 11rr rrrr 03rr ADD R,A A+R→R 0 0100 00rr rrrr 04rr MOV A,R R→A Z 0 0100 01rr rrrr 04rr MOV R,R R→R Z 0 0100 10rr rrrr 04rr COMA R /R → A Z 0 0100 11rr rrrr 04rr COM R /R → R Z 0 0101 00rr rrrr 05rr INCA R R+1 → A Z 0 0101 01rr rrrr 05rr INC R R+1 → R Z 0 0101 10rr rrrr 05rr DJZA R R-1 → A, 0 跳转 无 0 0101 11rr rrrr 05rr DJZ R R-1 → R, 0 跳转 无 C 0 0110 00rr rrrr 06rr RRCA R R(n) → A(n-1), R(0) → C, C → A(7) 0 0110 01rr rrrr 06rr RRC R R(n) → R(n-1), R(0) → C, C → R(7) C 0 0110 10rr rrrr 06rr RLCA R R(n) → A(n+1), R(7) → C, C → A(0) C 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 二进制指令 十六进制 助记符 操作 受影响标志位 0 0110 11rr rrrr 06rr RLC R R(n) → R(n+1), R(7) → C, C → R(0) 0 0111 00rr rrrr 07rr SWAPA R R(0-3) → A(4-7), R(4-7) → A(0-3) 无 0 0111 01rr rrrr 07rr SWAP R R(0-3) ↔ R(4-7) 无 0 0111 10rr rrrr 07rr JZA R R+1 → A, 0 跳转 无 0 0111 11rr rrrr 07rr JZ R R+1 → R, 0 跳转 无 0 100b bbrr rrrr 0xxx BC R,b 0 → R(b) 无 2 0 101b bbrr rrrr 0xxx BS R,b 1 → R(b) 无 3 0 110b bbrr rrrr 0xxx JBC R,b if R(b)=0, 跳转 无 0 111b bbrr rrrr 0xxx JBS R,b if R(b)=1, 跳转 无 1 00kk kkkk kkkk 1kkk CALL k PC+1 → [SP], (Page, k) → PC 无 1 01kk kkkk kkkk 1kkk JMP k (Page, k) → PC 无 1 1000 kkkk kkkk 18kk MOV A,k k→A 无 1 1001 kkkk kkkk 19kk OR A,k A∨k→A Z 1 1010 kkkk kkkk 1Akk AND A,k A&k→A Z 1 1011 kkkk kkkk 1Bkk XOR A,k A⊕k→A Z 1 1100 kkkk kkkk 1Ckk RETL k k → A, [栈顶] → PC 无 1 1101 kkkk kkkk 1Dkk SUB A,k k-A → A Z, C, DC 1 1111 kkkk kkkk 1Fkk ADD A,k k+A → A Z, C, DC 1 1110 1001 kkkk 1E9k BANK k K → R4(7:6) 无 无 C 1 1110 1010 kkkk 1EAK LCALL k 下一指令: k kkkk kkkk kkkk PC+1→[SP], k→PC4 1 1110 1011 kkkk 1EBK LJMP k 下一指令: k kkkk kkkk kkkk k→PC4 无 TBRD R 如果 Bank 3 R6.7=0, 机器码 (7:0) → R 否则 机器码(12:8) → R(4:0), R(7:5)=(0,0,0) 无 1 1110 11rr rrrr 注: 1Err 2 该指令不建议用于对中断状态寄存器的操作。 3 该指令不能操作中断状态寄存器。 4 该指令不能改变R3(5)位。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 65 EM78F562N/F662N 8位微控制器 7 时序图 AC 测试输入/输出波形 AC 测试:输入电压在 2.4 为逻辑“1”,0.4 为逻辑“0”.时序测量时 2.0V 为逻辑“1”,0.8V 为逻辑“0” 图 7-1a AC 测试输入/输出波形图 复位时序(CLK=“0”) 图 7-1b 复位时序图 TCC 输入时序(CLK=“0”) 图 7-1c TCC 输入时序图 66 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 8 绝对最大值 EM78F562N/F662N 项目 范围 工作温度 -40°C 至 85°C 存储温度 -65°C 至 150°C 工作电压 2.2 至 5.5V 工作频率 DC 至 20MHz 输入电压 Vss-0.3V 至 Vdd+0.5V 输出电压 Vss-0.3V 至 Vdd+0.5V 注: 这些参数是理论值,未经过测试。 9 DC电气特性 (Ta=25°C, VDD=5.0V±5%, VSS=0V) 参数 符号 晶振: VDD 到 3V Fxt IIL 晶振: VDD 到 5V ERC: VDD 到 5V 指令周期为 2 个时钟周期 R: 5.1KΩ, C: 100 pF 最小值 典型值 最大值 单位 DC - DC - F±30% 830 8 MHz 20 MHz F±30% kHz IRC: VDD 到 5 V 4MHz, 16MHz, 8MHz, 1MHz F±30% F F±30% Hz 输入引脚输入漏电流 VIN = VDD, VSS - - ±1 µA OSCI 在 RC 模式 3.9 4 4.1 V VI 从低到高, VI=5V 21 22 23 mA OSCI 在 RC 模式 1.7 1.8 1.9 V VI 从高到低, VI=2V 16 17 18 mA 输入高临界电压 VIHRC (施密特触发) IERC1 条件 灌电流 输入低临界电压 VILRC (施密特触发) IERC2 灌电流 IIL 输入引脚输入漏电流 VIN = VDD, VSS -1 0 1 µA VIH1 输入高电压 (施密特触发) 端口 5, 6, 7, 8 - 0.7VDD - V VIL1 输入低电压 (施密特触发) 端口 5, 6, 7, 8 - 0.3VDD - V VIHT1 输入高临界电压 (施密特触发) /RESET - 0.7VDD - V VILT1 输入低临界电压 (施密特触发) /RESET - 0.3VDD - V VIHT2 输入高临界电压 (施密特触发) TCC,INT - 0.7VDD - V VILT2 输入低临界电压 (施密特触发) TCC,INT - 0.3VDD - V VIHX1 时钟输入高电压 OSCI 在晶振模式 2.9 3.0 3.1 V VILX1 时钟输入低电压 OSCI 在晶振模式 1.7 1.8 1.9 V IOH1 输出高电压 (端口 5, 6, 7, 8) VOH = 0.9VDD -3 - - mA IOL1 输出低电压 (端口 5, 7, 8) VOL = 0.1VDD 14 - - mA 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 67 EM78F562N/F662N 8位微控制器 符号 参数 条件 输出低电压(端口 6) VOL = 0.1VDD IPH 上拉电流 上拉激活, IPL IOL2 最小值 典型值 最大值 单位 - 18 - mA 输入引脚接 VSS - - -80 µA 下拉电流 下拉激活, 输入引脚接 Vdd - - 30 µA ISB1 掉电电流 所有的输入引脚和 I/O 引脚 接 VDD, 输出引脚悬空 WDT 禁止 - 1.5 - µA ISB2 掉电电流 所有的输入引脚和 I/O 引脚 接 VDD, 输出引脚悬空 WDT 使能 - 11 - µA 2 个时钟周期下的工作供电电流 /RESET= '高', Fosc=32kHz (晶体类型), 输出引脚悬空, WDT 禁止 - 43 - µA 2 个时钟周期下的工作供电电流 /RESET= '高', Fosc=32kHz (晶体类型), 输出引脚悬空, WDT 使能 - 43 - µA ICC3 2 个时钟周期下的工作供电电流 /RESET= '高', Fosc=4MHz (晶体类型), 输出引脚悬空, WDT 使能 - - 1 mA ICC4 2 个时钟周期下的工作供电电流 /RESET= '高', Fosc=10MHz (晶体类型), 输出引脚悬空, WDT 使能 - - 2.8 mA ICC5 2 个时钟周期下的工作供电电流 /RESET= '高', Fosc=1MHz (IRC 类型), 电压 3V,输出引脚悬空, WDT 使能 - 180 - A ICC1 ICC2 * 这些参数是理论值,没有经过验证。 * 最小值、典型值、最大值栏里的数据基于 25°C条件下的结果,这些数据只用于指导设计,未经测试。 9.1 数据EEPROM 电气特性 符号 参数 Tprog 擦/写时间 Treten 数据保留时间 Tendu 擦/写次数 条件 Vdd = 2.4~ 5.5V 温度 = -40 ~ 85°C 最小值 典型值 最大值 单位 - 4.5 - ms - 10 - 年 - 100K - 次 9.2 Flash程序存储器电气特性 符号 Tprog 68 • 参数 条件 擦/写时间 Treten 数据保留时间 Tendu 擦/写次数 Vdd = 5.0V 温度 = -40 ~ 85°C 最小值 典型值 最大值 单位 - 4 - ms - 10 - 年 - 100K - 次 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 9.3 A/D 转换器特性(Vdd=2.5V to 5.5V, Vss=0V, Ta=25°C) Symbol Parameter Condition Min. Typ. Max. Unit VAREF-VASS= 2.5V 之 5.5V 2.5 Vss Vdd V VASS - VAREF V 1150 1300 1450 µA -10 0 10 µA 700 800 900 µA 450 500 550 µA VAREF 模拟参考电压 VASS VAI 模拟输入电压 IAI1 Ivdd VAREF = Vdd Ivref IAI2 Ivdd VAREF = VREF Ivref RN 分辨率 VAREF=Vdd 8 9 - Bits LN 线性误差 VAREF=Vdd 0 +/-2 +/-4 LSB DNL 差分非线性误差 VAREF=Vdd 0 +/-0.5 +/-0.9 LSB FSE 满标度误差 VAREF=Vdd +/-0 +/-1 +/-2 LSB OE 补偿误差 VAREF=Vdd +/-0 +/-1 +/-2 LSB ZAI 模拟电压源推荐电阻值 VAREF=Vdd 0 8 10 KΩ TAD1 A/D 时钟周期 4 - - µs TAD2 A/D 时钟周期 1 - - µs TCN A/D 转换时间 VAREF=Vdd 14 - 14 TAD PSR 电源抑制比 Vdd=Vdd-10% 之 Vdd+10% +/-0 - +/-2 LSB 注: VAREF=Vdd=2.5~5.5V Ta= -40~85°C VAREF=Vdd=3~5.5V Ta= -40~85°C 1. 这些参数为理论值,未经测试。 2. 这些参数仅做设计引导,未经测试。 3. 当A/D关闭时,不消耗电流除了少量漏电流。 4. A/D转换结果不会因为输入电压升高而减小,没有丢失码。 5. 规格书如有改动不另行通知。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 69 EM78F562N/F662N 8位微控制器 9.4 比较器特性 比较器电气特性 符号 参数 条件 最小值 典型值 最大值 单位 1 输入补偿电压 VOS − − 5 mV (无 ) GND − VDD V − − 200 − uA RL = 5.1K (注 ) 2 Vcm 输入普通模式电压范围 ICO 比较器供电流 TRS 响应时间 Vin(-)=2.5V, Vdd=5V, CL=15p (比较器输出负载), 3 超载=30mV (注 ) − 0.7 − us TLRS 大信号响应时间 Vin(-)=2.5V, Vdd=5V, CL=15p (比较器输出负载), − 300 − ns VS 工作电压范围 − 2.5 − 5.5 V 注: 1 . 单位增益电路输出电压,超出满输入的普通模式范围。 2 . 普通模式输入电压或输入信号电压需低于0.3V。普通模式上限电压是VDD。 3 . 响应时间规定为100 mV 输入,每一阶为30 mV 的超驱动. 10 AC电气特性 EM78F562N/F662N, 0 ≤ Ta ≤ 70°C, VDD=5V, VSS=0V -40 ≤ Ta ≤ 85°C, VDD=5V, VSS=0V 符号 参数 Dclk 输入时钟的占空比 Tins 指令周期 (CLKS="0") 条件 最小值 典型值 最大值 单位 − 45 50 55 % 晶振类型 100 − DC ns RC 类型 500 − DC ns Ttcc TCC 输入时间周期 − (Tins+20)/N* − − ns Tdrh 单片机复位持续时间 − 11.8 16.8 21.8 ms Trst /RESET 脉冲宽度 Ta = 25°C 2000 − − ns Twdt 看门狗定时器周期 Ta = 25°C 11.8 16.8 21.8 ms Tset 输入引脚建立时间 − − 0 − ns Thold 输入引脚保持时间 − − 20 − ns Tdelay 输出引脚延迟时间 Cload=20pF − 50 − ns 注: 这些参数为理论值,没有经过测试,仅供参考。 最小值、典型值、最大值栏里的数据是基于 25°C条件下的结果。 * N = 选择预分频比 70 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 附录 A 封装类型 封装类型 引脚数 封装尺寸 EM78F562N/F662ND20 PDIP 20 300 mil EM78F562N/F662NSO20 SOP 20 300 mil EM78F562N/F662ND18 PDIP 18 300 mil EM78F562N/F662NSO18 SOP 18 300 mil EM78F562N/F662ND16 PDIP 16 300 mil EM78F562N/F662NSO16 SOP 16 300 mil EM78F662NQN16A QFN 16 4x4mm Flash MCU 绿色产品不包含有害物质 符合 Sony SS-00259 第三版本标准 Pb 含量小于 100ppm Pb 含量符合 Sony 规格说明 项目 EM78F562N/F662NS/J 电镀类型 纯锡 成份(%) Sn:100% 熔点(°C) 232°C 电阻率(µΩ cm) 11.4 硬度(hv) 8~10 伸长 (%) >50% 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 71 EM78F562N/F662N 8位微控制器 B 封装形式 B.1 EM78F562N/F662ND16 300mil 图B-1 EM78F562N/F662N 16-pin PDIP封装类型 72 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 B.2 EM78F562N/F662NSO16 300mil 图 B-2 EM78F562N/F662N 16-pin SOP 封装类型 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 73 EM78F562N/F662N 8位微控制器 B.3 EM78F662NQN16A 4x4mm 图 B-3 EM78F662N 16-pin QFN 封装类型 74 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 B.4 EM78F562N/F662ND18 300mil 图 B-4 EM78F562N/F6622N 18-pin PDIP封装类型 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 75 EM78F562N/F662N 8位微控制器 B.5 EM78F562N/F662NSO18 300mil 图 B-5 EM78F562N/F6622N 18-pin SOP 封装类型 76 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 B.6 EM78F562N/F662ND20 300mil 图 B-6 EM78F562N/F662N 20-pin PDIP封装类型 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 77 EM78F562N/F662N 8位微控制器 B.7 EM78F562/F662NSO20 300mil 图 B-7 EM78F562N/F662N 20-pin SOP 封装类型 78 • 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) EM78F562N/F662N 8位微控制器 C 品质保证和可靠性 测试类别 测试条件 备注 焊接温度=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 适合 SMD IC (例如 SOP, QFP, SOJ, 等) 步骤 4: IR 变化 3 次 前提条件 (Pkg 厚度 ≥ 2.5mm 或 3 Pkg 体积 ≥ 350mm ----225±5°C) 3 (Pkg 厚度 ≤ 2.5mm 或 Pkg 体积 ≤ 350mm ----240±5°C) 温度周期测试 -65°C (15mins)~150°C (15mins), 200 次 – 高压锅测试 TA =121°C, RH=100%, 压强=2 atm, TD (持续时间)= 96 小时 – 高温/高湿度测试 TA=85°C , RH=85%, TD (持久性) = 168 , 500 小时 – 高温保存期 TA=150°C, TD (持续时间) = 500, 1000 小时 – 高温工作寿命 TA=125°C, VCC = 最大工作电压 TD (持续时间) = 168, 500, 1000 小时 – Latch-up TA=25°C, VCC = 最大工作电压, 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, IP_PS,OP_PS,IO_PS, TA=25°C, ≥ ∣± 300V∣ ESD (MM) VDD-VSS(+),VDD_VSS (-) 模式 C.1 地址缺陷检测 地址缺陷检测是 MCU 嵌入式自动防止故障危害功能的一种,检测 MCU 由噪声或类似 造成的功能故障。无论何时 MCU 试图从 ROM 区获取一条指令,内部恢复电路将自动 开始。如果检测到噪声引起地址错误,MCU 重复执行程序直到噪声消除。 MCU 将继续 执行下一条指令。 版本号 (V1.1) 07.12.2012 (产品更新后规格书不保证同步更新) • 79