SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 描述 ...................................................................................................................................................................................................... 3 特征 ...................................................................................................................................................................................................... 3 各封装引脚配置 .................................................................................................................................................................................. 4 系统方框图 ........................................................................................................................................................................................ 10 管脚描述 .............................................................................................................................................................................................11 特殊功能寄存器(SFR) ...................................................................................................................................................................... 13 功能描述: ........................................................................................................................................................................................ 16 1. 总特征 ...................................................................................................................................................................................... 16 1.1. 嵌入式程序内存 ........................................................................................................................................................ 16 1.2. IO 口 ........................................................................................................................................................................... 16 1.3. 2T/1T 的选择 ............................................................................................................................................................. 16 1.4. 复位 ............................................................................................................................................................................ 17 1.4.1. 硬件复位功能 .............................................................................................................................................. 17 1.4.2. 软件复位功能 .............................................................................................................................................. 17 1.4.3. Time Access Key register (TAKEY) ............................................................................................................ 17 1.4.4. 软件复位寄存器 (SWRES) ........................................................................................................................ 17 1.4.5. 复位状态旗标寄存器 (RSTS) .................................................................................................................... 18 1.4.6. 软件复位范例 .............................................................................................................................................. 18 1.5. 时钟源 ........................................................................................................................................................................ 18 2. 指令设置 .................................................................................................................................................................................. 19 3. 内存结构 .................................................................................................................................................................................. 23 3.1. 程序内存 .................................................................................................................................................................... 23 3.2. 数据存储器 ................................................................................................................................................................ 24 3.2.1. 数据存储器-低 128 字节(00h to 7Fh) ......................................................................................................... 24 3.2.2. 数据存储器-高 128 字节 (80h to FFh) ...................................................................................................... 24 4. CPU 结构 ................................................................................................................................................................................ 25 4.1. 累加器 ........................................................................................................................................................................ 25 4.2. B 寄存器 .................................................................................................................................................................... 25 4.3. 程序状态字 ................................................................................................................................................................ 26 4.4. 堆栈指针 .................................................................................................................................................................... 26 4.5. 数据指针 .................................................................................................................................................................... 26 4.6. 数据指针 1 ................................................................................................................................................................. 27 4.7. 接口控制寄存器 ........................................................................................................................................................ 27 5. GPIO ......................................................................................................................................................................................... 28 6. 定时器 0 和定时器 1 .............................................................................................................................................................. 30 6.1. 定时器/计数器模式控制寄存器(TMOD) ................................................................................................................. 30 6.2. 定时/计数控制寄存器(TCON).................................................................................................................................. 31 6.3. 外设频率控制寄存器(PFCON) ................................................................................................................................. 31 6.4. 模式 0 (13 位计数器/定时器) .................................................................................................................................. 32 6.5. 模式 1 (16 位计数器/定时器) .................................................................................................................................. 32 6.6. 模式 2 (8 位自动装载计数器/定时器)..................................................................................................................... 33 6.7. 模式 3 (定时器 0 作为两个独立的 8 位定时器/计数器) ...................................................................................... 33 7. 定时器 2 以及捕捉/比较单元 ................................................................................................................................................ 34 7.1. 定时器 2 功能 ........................................................................................................................................................... 36 7.1.1. 定时器模式 .................................................................................................................................................. 36 7.1.2. 事件计数模式 .............................................................................................................................................. 36 7.1.3. 门控定时器模式 .......................................................................................................................................... 36 7.1.4. 定时器 2 的重载 .......................................................................................................................................... 36 7.2. 比较功能 .................................................................................................................................................................... 37 7.2.1. 比较模式 0 ................................................................................................................................................... 37 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 1 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 7.2.2. 比较模式 1 ................................................................................................................................................... 37 捕获功能 .................................................................................................................................................................... 38 7.3.1. 捕捉模式 0 ................................................................................................................................................... 38 7.3.2. 捕捉模式 1 ................................................................................................................................................... 38 8. 串行接口 0 ............................................................................................................................................................................... 39 8.1. 串行接口 0 ................................................................................................................................................................. 40 8.1.1. 模式 0 ........................................................................................................................................................... 40 8.1.2. 模式 1 ........................................................................................................................................................... 41 8.1.3. 模式 2........................................................................................................................................................... 41 8.1.4. 模式 3.......................................................................................................................................................... 41 8.2. 串行接口 0 的多重机通讯 ....................................................................................................................................... 42 8.3. 波特率发生器 ............................................................................................................................................................ 42 8.3.1. 串行接口 0 的模式 1 和 3 ........................................................................................................................... 42 9. 看门狗定时器 .......................................................................................................................................................................... 43 10. 中断 ................................................................................................................................................................................. 46 10.1. 优先权配置 ........................................................................................................................................................... 48 11. 电源管理单元 ................................................................................................................................................................. 50 11.1. 待机模式(空闲模式) ................................................................................................................................................. 50 11.2. 停止模式 .................................................................................................................................................................... 50 12. LVR–低压复位 ............................................................................................................................................................... 51 13. 在系统程序设计(Internal ISP) ....................................................................................................................................... 52 13.1. ISP 服务程序 ........................................................................................................................................................ 52 13.2. 锁定位(N) .............................................................................................................................................................. 52 13.3. 对 ISP 服务程序程序设计 .................................................................................................................................... 52 13.4. 启动 ISP 服务程序................................................................................................................................................ 52 13.5. ISP 寄存器 – TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC ............................................................... 53 工作环境 ............................................................................................................................................................................................ 56 DC 电气特性 ..................................................................................................................................................................................... 56 7.3. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 2 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 产品目录 特征 SM59R02G1W28KP, SM59R02G1W28SP, SM59R02G1W40PP, SM59R02G1W44JP, SM59R02G1W44QP, SM59R02G1W44UP, SM59R02G1W48VP 描述 SM59R02G1 是 1T(1 时钟周期)的 8-bit 的单片机. 它 有专为程序而内嵌的 8k 字节的闪存(flash),并可执行 完全兼容 MCS-51 的所有 ASM51 指令。 SM59R02G1 有 256K 的片上 SRAM,多达 42 个 GPIOs (PLCC 44/PQFP 44/LQFP 48), 多串行接口以及如以下所 描述的多种外部资源, 它可通过程序设计器进行程序设计. SM59R02G1 的高性能能在短时间内完成复杂的动作, 大 约有 1/3 的指令是 1T, 其平均速度是传统 8051 的 8 倍, 是所有 1T 8051 系列中最快的,其良好的 EMI 和 ESD 性 能对在许多应用中都有很好的帮助。 订货信息 SM59R02G1ihhkL YWW i: 工艺标志 { W=2.7V ~ 5.5V} hh: 管脚数 k: 封装形式后缀{as table below } L: 无铅标志 {无文字即含铅,”P” 即无铅 } Y: 年 WW: 週 (01-52) Postfix K S P J Q V Package 28L PDIP 28L SOP 40L PDIP 44L PLCC 44L PQFP 48L LQFP 工作电压: 2.7V ~ 5.5V 高速 1T 架构,最高可达 25MHZ 1T/2T 模式可实时选择 指令设置兼容 MCS-51 8K 字节的片上程序内存 外扩 RAM 地址最大可达 64K 字节, 为外扩 RAM 存 取用的标准 12T 接口 256 字节的标准的 8052 RAM 双 16-bit 数据指针 (DPTR0&DPTR1) 全双工通信的串行接口(UART0 ) 串行接口 0 附加鲍率产生器 三个 16-bit 的定时器/计数器(定时器 0,1,2) 38 GPIOs(PDIP 40),42 GPIOs(PLCC 44/PQFP 44/ LQFP 48),GPIOs 可选择四种型态(准双向口、推挽、 开漏、只输入),默认准双向口(上拉) 具有四级优先权的外部中断 0,1 可程序设计的看门狗定时器(WDT) 4 路 16bit 比较/抓捕/装载功能 内置 22.1184MHz RC 振荡器,及可程序设计时钟分 频器 可配置外部晶体振荡器引脚 ISP/IAP 功能. ISP 服务程序存储空间设置为 N*256 byte (N=0 to 4). EEPROM 功能 ALE 输出选择 低电压复位(LVR ) 增强用户代码保护 电源管理单元空闲及掉电模式 Pin / Pad Configuration Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 3 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 各封装引脚配置 28 VDD CC1/T2EX/P1.1 2 27 P0.0/AD0 RXD0/P1.2 3 26 P0.1/AD1 CC2/TXD0/P1.3 P4.7/RESET(default) 4 25 P0.2/AD2 24 P0.3/AD3 23 P0.4/AD4 22 P0.5/AD5 21 P0.6/AD6 20 P0.7/AD7 19 P2.4/A12 18 P2.3/A11/CC3 17 P2.2/A10/CC2 5 SyncMOS 1 SM59R02G1ihhKP YWW (28L PDIP Top View) CC0/T2/P1.0 RXD0/P3.0 6 TXD0/P3.1 7 INT0/P3.2 8 INT1/P3.3 T0/P3.4 9 10 T1/P3.5 11 XTAL2/P5.4 12 OSC/XTAL1/P5.5 13 16 P2.1/A9/CC1 VSS 14 15 P2.0/A8/CC0 附注: 管脚 Reset/P4.7 于出厂时设置为 RESET 脚,使用者需于上电时将此管脚置低。使用者可于刻录时将此管脚定义为一般 I/O(P4.7)。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 4 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 28 VDD CC1/T2EX/P1.1 2 27 P0.0/AD0 RXD0/P1.2 3 26 P0.1/AD1 CC2/TXD0/P1.3 P4.7/RESET(default) 4 25 P0.2/AD2 24 P0.3/AD3 23 P0.4/AD4 22 P0.5/AD5 21 P0.6/AD6 20 P0.7/AD7 19 P2.4/A12 18 P2.3/A11/CC3 17 P2.2/A10/CC2 5 SyncMOS 1 SM59R02G1ihhSP YWW (28L SOP Top View) CC0/T2/P1.0 RXD0/P3.0 6 TXD0/P3.1 7 INT0/P3.2 8 INT1/P3.3 T0/P3.4 9 10 T1/P3.5 11 XTAL2/P5.4 12 OSC/XTAL1/P5.5 13 16 P2.1/A9/CC1 VSS 14 15 P2.0/A8/CC0 附注: 管脚 Reset/P4.7 于出厂时设置为 RESET 脚,使用者需于上电时将此管脚置低。使用者可于刻录时将此管脚定义为一般 I/O(P4.7)。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 5 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 40 VDD CC1/T2EX/P1.1 2 39 P0.0/AD0 RXD0/P1.2 3 38 P0.1/AD1 CC2/TXD0/P1.3 4 37 P0.2/AD2 CC3/P1.4 5 36 P0.3/AD3 P1.5 6 35 P0.4/AD4 P1.6 7 34 P0.5/AD5 P1.7 8 33 P0.6/AD6 P4.7/RESET(default) 9 32 P0.7/AD7 RXD0/P3.0 10 31 P4.6 TXD0/P3.1 11 30 ALE/P4.5 INT0/P3.2 12 29 P4.4 INT1/P3.3 13 28 P2.7/A15 T0/P3.4 14 27 P2.6/A14 T1/P3.5 15 26 P2.5/A13 WR/P3.6 16 25 P2.4/A12 RD/P3.7 17 24 P2.3/A11/CC3 XTAL2/P5.4 18 23 P2.2/A10/CC2 OSC/XTAL1/P5.5 19 22 P2.1/A9/CC1 VSS 20 21 P2.0/A8/CC0 SyncMOS 1 SM59R02G1ihhPP YWW (40L PDIP Top View) CC0/T2/P1.0 附注: 1. 管脚 Reset/P4.7 于出厂时设置为 RESET 脚,使用者需于上电时将此管脚置低。使用者可于刻录时将此管脚定义为一 般 I/O(P4.7)。 2. 为避免偶然的情况下进入 ISP 刻录状态(参考第 13.4 单元),在上电时必须确保没有连续的脉冲信号在管脚 P3.0 及管脚 P2.6、P2.7、P4.3 必须置高。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 6 Ver.G SM59R02G1 09/2015 18 19 20 21 22 23 24 25 26 27 28 CC1/KBI1/A9/P2.1 CC2/A10/P2.2 CC3/A11/P2.3 A12/P2.4 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 7 39 16 T1/P3.5 CC0/A8/P2.0 15 T0/P3.4 CC0/P4.0 14 INT1/P3.3 VSS 13 INT0/P3.2 XTAL1/OSC/P5.5 12 TXD0/P3.1 XTAL2/P5.4 11 CC3/P4.3 SM59R02G1 ihhJP YWW (44L PLCC Top View) RD/P3.7 10 RXD0/P3.0 WR/P3.6 9 P4.7/RESET(default) 38 SyncMOS P0.4/AD4 P0.5/AD5 37 P0.3/AD3 40 P0.6/AD6 36 P0.2/AD2 41 P0.7/AD7 35 P0.1/AD1 42 P4.6 34 P0.0/AD0 43 P4.1 33 VDD 44 1 ALE/P4.5 32 P1.0/T2/CC0 P4.2/CC2 2 P4.4 31 P1.1/T2EX/CC1 3 P2.7/A15 30 P1.2/RXD0 4 P2.6/A14 29 P1.3//CC2/TXD0 5 7 P1.7 17 P1.6 6 8 P1.5 P1.4/CC3 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 P2.5/A13 Ver.G SM59R02G1 09/2015 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P4.6 P4.1/CC1 ALE/P4.5 P4.4 P2.7/A15 P2.6/A14 P2.5/A13 32 31 30 29 28 27 26 25 24 23 11 44 T1/P3.5 CC3/P1.4 10 43 T0/P3.4 TXD0/CC2/P1.3 9 42 INT1/P3.3 RXD0/P1.2 8 41 INT0/P3.2 CC1/T2EX/P1.1 7 40 TXD0/P3.1 CC0/T2/P1.0 6 39 CC3/P4.3 CC2/P4.2 SM59R02G1 ihhQ(U)P YWW (44L PQFP/LQFP Top View) 5 38 RXD0/P3.0 VDD 4 37 P4.7/RESET(default) AD0/P0.0 SyncMOS 3 36 P1.7 AD1/P0.1 2 35 P1.6 AD2/P0.2 1 34 P1.5 AD3/P0.3 33 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 8 22 P2.4/A12 21 P2.3/A11/CC3 20 P2.2/A10/CC2 19 P2.1/A9/CC1 18 P2.0/A8/CC0 17 P4.0/CC0 16 VSS 15 OSC/XTAL1/P5.5 14 XTAL2/P5.4 13 P3.7/RD 12 P3.6/WR Ver.G SM59R02G1 09/2015 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P4.6 P4.1/CC1 ALE/P4.5 P4.4 P2.7/A15 P2.6/A14 P2.5/A13 N.C. 35 34 33 32 31 30 29 28 27 26 25 12 48 T1/P3.5 N.C. 11 47 T0/P3.4 CC3/P1.4 10 46 INT1/P3.3 TXD0/CC2/P1.3 9 45 INT0/P3.2 RXD0/P1.2 8 44 TXD0/P3.1 CC1/T2EX/P1.1 7 43 CC3/P4.3 CC0/T2/P1.0 SM59R02G1 IhhVP YWW (48L LQFP Top View) 6 42 RXD0/P3.0 CC2/P4.2 5 41 P4.7/RESET(default) VDD 4 40 P1.7 AD0/P0.0 SyncMOS 3 39 P1.6 AD1/P0.1 2 38 P1.5 AD2/P0.2 1 37 N.C. AD3/P0.3 36 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 9 24 N.C. 23 P2.4/A12 22 P2.3/A11/CC3 21 P2.2/A10/CC2 20 P2.1/A9/CC1 19 P2.0/A8/CC0 18 P4.0/CC0 17 VSS 16 OSC/XTAL1/P5.5 15 XTAL2/P5.4 14 P3.7/RD 13 P3.6/WR Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 RXD0 TXD0 系统方框图 RESET MAX810 UART 0 SRAM 256Bytes XTAL2 XTAL1 Flash 8KBytes CPU Port 0 Port 0 Port 1 Port 1 Port 2 Port 2 Port 3 Port 3 Port 4 Port 4 Port 5 Port 5 Timer 0/1 T0 T1 Watchdog Interrupt ALE WR RD Timer2 & CCU 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 10 Ver.G SM59R02G1 CC0~CC3 T2 T2EX 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 管脚描述 28L 40L PDIP 44L PLCC 1 44L QFP 39 48L LQFP 42 Symbol I/O Description P4.2/CC2 I/O 1 1 2 40 43 P1.0/T2/CC0 I/O 2 2 3 41 44 P1.1/T2EX/CC1 I/O 3 3 4 42 45 P1.2/RXD0 I/O 4 4 5 43 46 P1.3/TXD0/CC2 I/O 5 6 44 7 8 9 1 2 3 I/O I/O I/O P1 口的位 5 P1 口的位 6 P1 口的位 7 5 9 10 4 5 I/O 复位(初始设定)& P4 口的位 7 6 10 7 8 9 10 11 12 13 14 11 12 13 14 15 16 17 18 19 20 11 12 13 14 15 16 17 18 19 20 21 22 23 5 6 7 8 9 10 11 12 13 14 15 16 17 6 7 8 9 10 11 12 13 14 15 16 17 18 P1.4/CC3 NC NC P1.5 P1.6 P1.7 RESET(default)/P 4.7 P3.0/RXD0 P4.3/CC3 P3.1/TXD0 P3.2/#INT0 P3.3/#INT1 P3.4/T0 P3.5/T1 P3.6/#WR P3.7/#RD XTAL2/P5.4 XTAL1/OSC/P5.5 VSS P4.0/CC0 I/O 6 7 8 47 48 1 2 3 4 P4 口的位 2 &定时器 2 及抓捕/比较单元信道 2 P1 口的位 0 & 定时器 2 外部输入时钟& 定时器 2 及抓捕/比 较单元信道 0 P1 口的位 1 & 定时器 2 捕捉触发及捕获触发器&定时器 2 及 抓捕/比较单元信道 1 P1 口的位 2 &串行接口通道 0 接收/发送数据 P1 口的位 3 &串行接口信道 0 数据传输或接收模式 0 时钟& 定时器 2 及抓捕/比较单元信道 2 P1 口的位 4 &定时器 2 及抓捕/比较单元信道 3 I/O I/O I/O I/O I/O I/O I/O I/O I/O O I I I/O 15 21 24 18 19 P2.0 /A8/CC0 I/O 16 22 25 19 20 P2.1 /A9/CC1 I/O 17 23 26 20 21 P2.2 /A10/CC2 I/O 18 24 27 21 22 P2.3 /A11/CC3 I/O 19 25 28 22 29 30 31 32 23 24 25 26 P2.4 /A12 NC NC P2.5 /A13 P2.6 /A14 P2.7 /A15 P4.4 I/O 26 27 28 29 23 24 25 26 27 28 29 P3 口的位 0 &串行接口通道 0 接收/发送数据 P4 口的位 3 &定时器 2 及抓捕/比较单元信道 3 P3 口的位 1 &串行接口信道 0 数据传输或接收模式 0 时钟 P3 口的位 2 &外部中断 0 P3 口的位 3 &外部中断 1 P3 口的位 4 &定时器 0 外部输入 P3 口的位 5 &定时器 1 外部输出 P3 口的位 6 &外部内存写入信号 P3 口的位 7 &外部内存读取信号 晶振输出& P5 口的位 4 晶振输入& P5 口的位 5 &外部振荡器输入 供电电源地 P4 口的位 0 &定时器 2 及抓捕/比较单元信道 0 P2 口的位 0 &外部内存地址的位 8 &定时器 2 抓捕/比较单元 信道 0 P2 口的位 1 &外部内存地址的位 9 &定时器 2 抓捕/比较单元 信道 1 P2 口的位 2 &外部内存地址的位 10 &定时器 2 抓捕/比较单 元信道 2 P2 口的位 3 &外部内存地址的位 11 &定时器 2 抓捕/比较单元 信道 3 P2 口的位 4 &外部内存地址的位 12 &宽脉调制通道 0 I/O I/O I/O I/O P2 口的位 5 &外部内存地址的位 13 P2 口的位 6 &外部内存地址的位 14 P2 口的位 7 &外部内存地址的位 15 P4 口的位 4 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 11 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 28L 20 21 22 23 24 25 26 27 28 40L PDIP 30 31 32 33 34 35 36 37 38 39 40 44L PLCC 33 34 35 36 37 38 39 40 41 42 43 44 44L QFP 27 28 29 30 31 32 33 34 35 36 37 38 48L LQFP 30 31 32 33 34 35 36 37 38 39 40 41 Symbol ALE/P4.5 P4.1/CC1 P4.6 P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 VDD I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I Description 地址锁存使能& P4 口的位 5 P4 口的位 1 &定时器 2 及抓捕/比较单元信道 1 P4 口的位 6 P0 口的位 7 &外部内存地址/数据的位 7 P0 口的位 6 &外部内存地址/数据的位 6 P0 口的位 5 &外部内存地址/数据的位 5 P0 口的位 4 &外部内存地址/数据的位 4 P0 口的位 3 &外部内存地址/数据的位 3 P0 口的位 2 &外部内存地址/数据的位 2 P0 口的位 1 &外部内存地址/数据的位 1 P0 口的位 0 &外部内存地址/数据的位 0 数字电源电压 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 12 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 特殊功能寄存器(SFR) 特殊功能寄存器分布图如下所示: Hex\Bin X000 X001 X010 X011 X100 X101 X110 X111 Bin/Hex F8 - - - - - - - - FF F0 B - - - - - - TAKEY F7 E8 E0 P4 ACC ISPFAH ISPFAL ISPFD ISPFC - LVC SWRES EF E7 D8 P5 PFCON P3M0 P3M1 P4M0 P4M1 P5M0 P5M1 DF D0 PSW CCEN2 P0M0 P0M1 P1M0 P1M1 P2M0 P2M1 D7 C8 C0 T2CON IRCON CCCON CCEN CRCL CCL1 CRCH CCH1 TL2 CCL2 TH2 CCH2 CCL3 CCH3 CF C7 B8 IEN1 IP1 S0RELH - - - - - BF B0 P3 - - - - - WDTC WDTK B7 A8 A0 IEN0 P2 IP0 RSTS S0RELL - - - - - - AF A7 98 S0CON S0BUF IEN2 - - - - - 9F 90 P1 AUX AUX2 - - - - IRCON2 97 88 80 Hex\Bin TCON P0 X000 TMOD SP X001 TL0 DPL X010 TL1 DPH X011 TH0 DPL1 X100 TH1 DPH1 X101 X110 IFCON PCON X111 8F 87 Bin/Hex 注:特殊功能寄存器的重置值在 SM59R02G1 中有所描述。 Register Location Reset value Description P0 SP 80H 81H FFH 07H Port 0 Stack Pointer DPL DPH DPL1 DPH1 PCON TCON TMOD 82H 83H 84H 85H 87H 88H 89H 00H 00H 00H 00H 40H 00H 00H Data Pointer 0 low byte Data Pointer 0 high byte Data Pointer 1 low byte Data Pointer 1 high byte Power Control Timer/Counter Control Timer Mode Control TL0 TL1 TH0 TH1 IFCON 8AH 8BH 8CH 8DH 8FH 00H 00H 00H 00H 00H Timer 0, low byte Timer 1, low byte Timer 0, high byte Timer 1, high byte Interface control register P1 90H FFH Port 1 AUX 91H 00H Auxiliary register AUX2 92H 00H Auxiliary register 2 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 13 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Register Location Reset value IRCON2 97H 00h Interrupt Request Control Register Description S0CON 98h 00h Serial Port 0, Control Register S0BUF 99h 00h Serial Port 0, Data Buffer IEN2 9Ah 00h Interrupt Enable Register 2 P2 A0h FFh Port 2 RSTS A1h 00h Reset Status Flag Register IEN0 A8h 00h Interrupt Enable Register 0 IP0 A9h 00h Interrupt Priority Register 0 S0RELL AAh 00h Serial Port 0, Reload Register, low byte P3 B0h FFh Port 3 WDTC B6h 04h Watchdog timer control register WDTK B7h 00h Watchdog timer refresh key. IEN1 B8h 00h Interrupt Enable Register 1 IP1 B9h 00h Interrupt Priority Register 1 S0RELH BAh 00h Serial Port 0, Reload Register, high byte IRCON C0h 00h Interrupt Request Control Register CCEN C1h 00h Compare/Capture Enable Register CCL1 C2h 00h Compare/Capture Register 1, low byte CCH1 C3h 00h Compare/Capture Register 1, high byte CCL2 C4h 00h Compare/Capture Register 2, low byte CCH2 C5h 00h Compare/Capture Register 2, high byte CCL3 C6h 00h Compare/Capture Register 3, low byte CCH3 C7h 00h Compare/Capture Register 3, high byte T2CON C8h 00h Timer 2 Control CCCON C9h 00h Compare/Capture Control CRCL CAh 00h Compare/Reload/Capture Register, low byte CRCH CBh 00h Compare/Reload/Capture Register, high byte TL2 CCh 00h Timer 2, low byte TH2 CDh 00h Timer 2, high byte PSW D0h 00h Program Status Word CCEN2 D1h 00h Compare/Capture Enable 2 register P0M0 D2h 00h Port 0 output mode 0 P0M1 D3h 00h Port 0 output mode 1 P1M0 D4h 00h Port 1 output mode 0 P1M1 D5h 00h Port 1 output mode 1 P2M0 D6h 00h Port 2 output mode 0 P2M1 D7h 00h Port 2 output mode 1 P5 D8h FFh Port 5 PFCON P3M0 P3M1 D9h DAh DBh 00h 00h 00h Peripheral Frequency control register Port 3 output mode 0 Port 3 output mode 1 P4M0 DCh 00h Port 4 output mode 0 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 14 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Register Location Reset value P4M1 DDh 00h Port 4 output mode 1 Description P5M0 DEh 00h Port 5 output mode 0 P5M1 DFh 00h Port 5 output mode 1 ACC E0h 00h Accumulator ISPFAH E1h FFh ISP Flash Address-High register ISPFAL E2h FFh ISP Flash Address-Low register ISPFD E3h FFh ISP Flash Data register ISPFC E4h 00h ISP Flash control register LVC E6h 20h Low voltage control register SWRES E7h 00h Software Reset register P4 E8h FFh Port 4 B F0h 00h B Register TAKEY F7H 00H Time Access Key register 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 15 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 功能描述: 1. 总特征 SM59R02G1是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详细定义将在以下章节给出. 1.1. 嵌入式程序内存 可通过程序设计器或在线程序设计(ISP)将程序加载到8KB的嵌入式闪存体中。 1.2. IO 口 The SM59R02G1有6个I/O ports: Port 0, Port 1, Port 2, Port 3, Port 4及Port 5. Ports 0, 1, 2, 3是8位口,Port 4是7位口及 Port 5是2位口(仅位4及位5). 四种型态: 准双向口(标准 8051输出口), 推挽, 开漏, 与仅为输入. 在章节5中有详细说明。 当用户使用内部晶振作为系统时钟时,XTAL2 与 XTAL1可在烧写或用ISP时定义成IO管脚P5.4、P5.5;当用户使用外部 振荡器由XTAL1输入作为系统时钟时,只有XTAL2可定义成IO管脚P5.4. 所有的P0~P5口都可通过转化速率来降低EMI。另一种降低EMI的方式是在禁止ALE输出,可通过特殊功能寄存器(SFR) 来进行选择控制,在高静电环境且在人体接触模式中,其I/O口的ESD可达4KV,可以保证 SM59R02G1在高静电环境下的 质量. 1.3. 2T/1T 的选择 传统的52 系列单片机时钟周期是12T, 即12 个振荡器时钟为1 个机器周期. SM59R02G1为2T/1T的微控制器,即机器周期 为2个时钟周期或1个时钟周期。换句话说,执行一条指令可是2个时钟或一个时钟。2T模式与1T模式的差异,请参考以下图 表1-1. Fig. 1-1(a): 在2T模式内部指令信号波形 Fig. 1-1(b): 在1T模式内部指令信号波形 缺省值为2T模式,在任何时候,如IFCON [7](地址为8Fh)被置位时,就可改变为1T的模式。在一个机器周期内,并不是每 条指令都能被执行的。所有指令的确切机器周期将在下一章节中给出. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 16 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 1.4. 1.4.1. 复位 硬件复位功能 SM59R02G1提供了内部复位电路.内部复位的时间长度可以通过程序设计器或ISP设置. Internal Reset time 25ms (default) 200ms 100ms 50ms 16ms 8ms 4ms 1.4.2. 软件复位功能 SM59R02G1提供一种软件复位机制来实现整个芯片的复位.要实现软件复位,硬件把3个特殊值 55h,AAh 和5Ah按顺序写 到TAKEY寄存器来使能软件复位寄存器(SWRES)可写.在软件复位寄存器获得可写权后,硬件可以对SWRES寄存器写入 FFh.硬件会用其他的硬件复位对复位讯号’OR’进行译码,软件复位寄存器在软件复位过程的最后会进行自复位. Mnemonic TAKEY SWRES RSTS 1.4.3. Description Time Access Key register Software Reset register Reset Status Flag register Direct Bit 7 Bit 6 Bit 5 Bit 4 Software Reset function Bit 3 Bit 2 Bit 1 Bit 0 RESET F7h TAKEY [7:0] 00H E7h SWRES [7:0] 00H A1h - - - PDRF WDTF SWRF LVRF 2 1 Address: F7H 0 Reset 00H PORF 00H Time Access Key register (TAKEY) Mnemonic: TAKEY 7 6 5 4 3 TAKEY [7:0] 软件复位寄存器(SWRES) 默认为只读; 软件把 3 个特殊值按顺序写到 TAKEY 寄存器来使能软件复位 寄存器(SWRES)可写. 它们是 MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah 1.4.4. 软件复位寄存器 (SWRES) Mnemonic: SWRES 7 6 5 4 3 SWRES [7:0] 2 1 Address: E7H 0 Reset 00H SWRES [7:0]: 软件复位寄存器. SWRES [7:0] = FFh, MCU 产生软件复位. SWRES [7:0] = 00h ~ FEh, MCU 不产生复位动作. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 17 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 1.4.5. 复位状态旗标寄存器 (RSTS) Mnemonic: RSTS 7 6 - 5 - 4 PDRF 3 WDTF 2 SWRF 1 LVRF Address: A1H 0 Reset PORF 00H PDRF: 复位脚复位旗标. 当 MCU 复位信号由复位脚产生时, PDRF 旗标将由硬件置高.此旗标需由软件清零. WDTF: 看门狗定时器复位旗标. 当 MCU 复位信号由看门狗产生时, WDTF 旗标将由硬件置高.此旗标需由软件清零. SWRF: 软件复位旗标. 当 MCU 复位信号由软件复位产生时, SWRF 旗标将由硬件置高.此旗标需由软件清零. LVRF: 低电压复位旗标. 当 MCU 复位信号由低电压复位产生时, LVRF 旗标将由硬件置高.此旗标需由软件清零. PORF: 上电复位旗标. 当 MCU 复位信号由上电复位产生时, PORF 旗标将由硬件置高.此旗标需由软件清零. 1.4.6. 软件复位范例 MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah ; enable SWRES write attribute MOV SWRES, #FFh ; software reset MCU 1.5. 时钟源 默认时钟来自于内部22.1184MhzOSC时钟信号,其时钟应用于初始化阶段,其主要的工作是确定时钟源使用的正常运行。 内部时钟源来源于不同分频的内部OSC如表1-1所示,时钟源可在程序设计器或ISP中设置. Table 1-1: Selection of clock source Clock source external crystal External OSC into Xtal1 22.1184 MHz from internal OSC(初始设定) 11.0592MHz from internal OSC 5.5296MHz from internal OSC 2.7648MHz from internal OSC 1.3824MHz from internal OSC 对于来源于内部OSC的频率,于室温只有±2%误差. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 18 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 2. 指令设置 所有SM59R02G1的指令都是兼容的二进制代码,且具有标准的8051一样的功能,以下表格列出了以SM59R02G1微控器为核 心的指令集的周期的总结,这里的周期表示为机器周期。 Mnemonic ADD A,Rn Table 2-1: Arithmetic operations Description Add register to accumulator Code 28-2F ADD A,direct Add direct byte to accumulator ADD A,@Ri Bytes 1 Cycles 1 25 2 2 Add indirect RAM to accumulator 26-27 1 2 ADD A,#data ADDC A,Rn Add immediate data to accumulator Add register to accumulator with carry flag 24 38-3F 2 1 2 1 ADDC A,direct Add direct byte to A with carry flag 35 2 2 ADDC A,@Ri Add indirect RAM to A with carry flag 36-37 1 2 ADDC A,#data SUBB A,Rn Add immediate data to A with carry flag Subtract register from A with borrow 34 98-9F 2 1 2 1 SUBB A,direct Subtract direct byte from A with borrow 95 2 2 SUBB A,@Ri Subtract indirect RAM from A with borrow 96-97 1 2 SUBB A,#data INC A INC Rn Subtract immediate data from A with borrow Increment accumulator Increment register 94 04 08-0F 2 1 1 2 1 2 INC direct Increment direct byte 05 2 3 INC @Ri Increment indirect RAM 06-07 1 3 INC DPTR DEC A Increment data pointer Decrement accumulator A3 14 1 1 1 1 DEC Rn Decrement register 18-1F 1 2 DEC direct Decrement direct byte 15 2 3 DEC @Ri MUL AB Decrement indirect RAM Multiply A and B 16-17 A4 1 1 3 5 DIV Divide A by B 84 1 5 DA A Decimal adjust accumulator D4 1 1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 19 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Mnemonic ANL A,Rn Table 2-2: Logic operations Description AND register to accumulator Code 58-5F ANL A,direct AND direct byte to accumulator 55 Bytes 1 Cycles 1 2 2 ANL A,@Ri AND indirect RAM to accumulator 56-57 1 2 ANL A,#data ANL direct,A AND immediate data to accumulator AND accumulator to direct byte 54 52 2 2 2 3 ANL direct,#data AND immediate data to direct byte 53 3 4 ORL A,Rn OR register to accumulator 48-4F 1 1 ORL A,direct ORL A,@Ri OR direct byte to accumulator OR indirect RAM to accumulator 45 46-47 2 1 2 2 ORL A,#data OR immediate data to accumulator 44 2 2 ORL direct,A OR accumulator to direct byte 42 2 3 ORL direct,#data XRL A,Rn OR immediate data to direct byte Exclusive OR register to accumulator 43 68-6F 3 1 4 1 XRL A,direct Exclusive OR direct byte to accumulator 65 2 2 XRL A,@Ri Exclusive OR indirect RAM to accumulator 66-67 1 2 XRL A,#data Exclusive OR immediate data to accumulator 64 2 2 XRL direct,A XRL direct,#data Exclusive OR accumulator to direct byte Exclusive OR immediate data to direct byte 62 63 2 3 3 4 CLR A Clear accumulator E4 1 1 CPL A Complement accumulator F4 1 1 RL A RLC A Rotate accumulator left Rotate accumulator left through carry 23 33 1 1 1 1 RR A Rotate accumulator right 03 1 1 RRC A Rotate accumulator right through carry 13 1 1 SWAP A Swap nibbles within the accumulator C4 1 1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 20 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Mnemonic MOV A,Rn MOV A,direct Table 2-3: Data transfer Description Move register to accumulator Move direct byte to accumulator Code E8-EF E5 Bytes 1 2 Cycles 1 2 MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct Move indirect RAM to accumulator Move immediate data to accumulator Move accumulator to register Move direct byte to register E6-E7 74 F8-FF A8-AF 1 2 1 2 2 2 2 4 MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct1,direct2 Move immediate data to register Move accumulator to direct byte Move register to direct byte Move direct byte to direct byte 78-7F F5 88-8F 85 2 2 2 3 2 3 3 4 MOV direct,@Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct Move indirect RAM to direct byte Move immediate data to direct byte Move accumulator to indirect RAM Move direct byte to indirect RAM 86-87 75 F6-F7 A6-A7 2 3 1 2 4 3 3 5 MOV @Ri,#data Move immediate data to indirect RAM 76-77 2 3 MOV DPTR,#data16 Load data pointer with a 16-bit constant 90 3 3 MOVC A,@A+DPTR Move code byte relative to DPTR to accumulator 93 1 3 MOVC A,@A+PC MOVX A,@Ri Move code byte relative to PC to accumulator Move external RAM (8-bit addr.) to A 83 E2-E3 1 1 3 3 MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A PUSH direct Move external RAM (16-bit addr.) to A Move A to external RAM (8-bit addr.) Move A to external RAM (16-bit addr.) Push direct byte onto stack E0 F2-F3 F0 C0 1 1 1 2 3 4 4 4 POP direct XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri Pop direct byte from stack Exchange register with accumulator Exchange direct byte with accumulator Exchange indirect RAM with accumulator Exchange low-order nibble indir. RAM with A D0 C8-CF C5 C6-C7 D6-D7 2 1 2 1 1 3 2 3 3 3 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 21 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Mnemonic ACALL addr11 Table 2-4: Program branches Description Absolute subroutine call Code xxx11 LCALL addr16 Long subroutine call Bytes 2 Cycles 6 12 3 6 RET from subroutine 22 1 4 RETI AJMP addr11 from interrupt Absolute jump 32 xxx01 1 2 4 3 LJMP addr16 Long iump 02 3 4 SJMP rel Short jump (relative addr.) 80 2 3 JMP @A+DPTR JZ rel Jump indirect relative to the DPTR Jump if accumulator is zero 73 60 1 2 2 3 JNZ rel Jump if accumulator is not zero 70 2 3 JC rel Jump if carry flag is set 40 2 3 JNC JB bit,rel Jump if carry flag is not set Jump if direct bit is set 50 20 2 3 3 4 JNB bit,rel Jump if direct bit is not set 30 3 4 JBC bit,direct rel Jump if direct bit is set and clear bit 10 3 4 CJNE A,direct rel Compare direct byte to A and jump if not equal B5 3 4 CJNE A,#data rel CJNE Rn,#data rel Compare immediate to A and jump if not equal Compare immed. to reg. and jump if not equal B4 B8-BF 3 3 4 4 CJNE @Ri,#data rel Compare immed. to ind. and jump if not equal B6-B7 3 4 DJNZ Rn,rel Decrement register and jump if not zero D8-DF 2 3 DJNZ direct,rel NOP Decrement direct byte and jump if not zero No operation D5 00 3 1 4 1 Mnemonic CLR C Table 2-5: Boolean manipulation Description Clear carry flag Code C3 CLR bit Clear direct bit SETB C SETB bit CPL C Bytes 1 Cycles 1 C2 2 3 Set carry flag D3 1 1 Set direct bit Complement carry flag D2 B3 2 1 3 1 CPL bit Complement direct bit B2 2 3 ANL C,bit AND direct bit to carry flag 82 2 2 ANL C,/bit ORL C,bit AND complement of direct bit to carry OR direct bit to carry flag B0 72 2 2 2 2 ORL C,/bit OR complement of direct bit to carry A0 2 2 MOV C,bit Move direct bit to carry flag A2 2 2 MOV bit,C Move carry flag to direct bit 92 2 3 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 22 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 3. 内存结构 SM59R02G1内存结构和通用的8051结构相同,也在两个存储空间内操作运算对象,它们是:作为程序内存的8K的嵌入式 Flash. 3.1. 程序内存 SM59R02G1有8K的嵌入式flash,可做为通用的程序存储或EEPROM.其他还包括最大为1K的特定ISP服务程序存储空间.这 8K的地址从0000到$1FFF.ISP服务程序的地址从$1C00到$1FFF.ISP服务程序空间可以被分割N块256字节(N=0至4).当 N=0时,意味着没有ISP复位程序空间可用.全部的8K字节空间都被用来做程序存储.当N=1时,意味着地址$1F00到$1FFF保 留为ISP服务程序空间.当N=2意味着内存地址$1E00至$1FFF保留为ISP服务程序空间等等...数值N可以通过程序设计器.它 可象EEPROM那样用来记录任何数据.EEPROM的应用功能在第13章节的内部ISP部分有描述. 1FFF N=0 N=1 1F00 ISP service Program space, Up to 1K 1E00 N=2 1D00 1C00 N=3 N=4 8K Program Memory space 0000 Fig. 3-1: SM59R02G1 programmable Flash 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 23 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 3.2. 数据存储器 SM59R02G1具有256 Bytes的片上SRAM, 其中256 Bytes和通用的8052内部存储器结构一样。 Fig 3-2 (a):External memory access as read Fig 3-2 (b):External memory access as write FF FF Higher 128 Bytes (Accessed by indirect addressing mode only) SFR (Accessed by direct addressing mode only) 80 80 7F Lower 128 Bytes (Accessed by direct & indirect addressing mode ) 00 Fig. 3-3: RAM architecture 3.2.1. 数据存储器-低 128 字节(00h to 7Fh) 数据存储器从 00h 到 FFh 的地址和在 8052 中的定义是一样的. 0h 到 7Fh 的地址可通过直接或者间接寻址方式访问. 00h到1Fh是寄存器的空间, 20h到2Fh是位寻址空间, 30h 到 7Fh 是通用的数据存储区. 3.2.2. 数据存储器-高 128 字节 (80h to FFh) 80h 到 FFh 的地址仅仅能从间接寻址的方式访问,它是一个资料区. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 24 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 4. CPU 结构 SM59R02G1引擎由以下四部分组成: a. 控制单元 b. 算法-逻辑单元 c. 内存控制单元 d. RAM和SFR控制单元 SM59R02G1结构允许接受来自程序内存的指令并与RAM或SFR做数据处理,以下各段详细叙述了主要功能寄存器。 Mnemonic Description Direct Bit 7 ACC B Accumulator B register Program status word Stack Pointer Data pointer low 0 Data pointer high 0 Data pointer low 1 Data pointer high 1 Auxiliary register Interface control register E0h F0h ACC.7 B.7 D0h CY PSW SP DPL DPH DPL1 DPH1 AUX IFCON 4.1. Bit 6 Bit 5 8051 Core ACC.6 ACC.5 B.6 B.5 AC Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET ACC.4 B.4 ACC.3 B.3 ACC.2 B.2 ACC.1 B.1 ACC.0 B.0 00H 00H OV PSW.1 P 00H F0 RS[1:0] 81h 82h SP[7:0] DPL[7:0] 07H 00H 83h DPH[7:0] 00H 84h DPL1[7:0] 00H 85h DPH1[7:0] 00H 91h BRGS - - P1UR 8Fh ITS CDPR - - - - - DPS 00H ALEC[1:0] - ISPE 00H 累加器 ACC 是一个累加器,大部分单操作指令的一个操作数取自累加器. Mnemonic: ACC 7 6 ACC.7 ACC.6 5 ACC05 4 ACC.4 3 ACC.3 2 ACC.2 1 ACC.1 Address: E0h 0 Reset ACC.0 00h ACC[7:0]: The A (or ACC) register is the standard 8052 accumulator. 4.2. B 寄存器 B寄存器被用于乘法或除法指令,也可作为一般寄存器以存储临时数据. Mnemonic: B 7 6 B.7 B.6 5 B.5 4 B.4 3 B.3 2 B.2 1 B.1 Address: F0h 0 Reset B.0 00h B[7:0]: The B register is the standard 8052 register that serves as a second accumulator. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 25 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 4.3. 程序状态字 Mnemonic: PSW 7 6 CY AC 5 F0 4 3 RS [1:0] 2 OV Address: D0h 0 Reset P 00h 1 F1 CY: 进位标志位. AC: 为 BCD 辅助进位标志位 F0: 用户设置标志位 0 RS[1:0]: 寄存器组选择位,用来选择工作寄存器区域. RS[1:0] Bank Selected Location 00 Bank 0 00h – 07h 01 Bank 1 08h – 0Fh 10 Bank 2 10h – 17h 11 Bank 3 18h – 1Fh OV: 溢出标志位 F1: 用户设置标志位 1 P: 奇偶校验位, 受硬件影响, 显示累加器中的奇偶的 1 位,即同位 4.4. 堆栈指针 堆栈指针是一个1字节的寄存器,在复位后初始化值为07h.此寄存器在执行PUSH和CALL指令之前增值,使得堆栈指针在08h 开始执行 Mnemonic: SP 7 6 5 4 3 2 1 SP [7:0] Address: 81h 0 Reset 07h SP[7:0]: 堆栈指针储存了暂时寄存器的地址,该地址是堆栈指针的起始位置.换言之,它总是指 向堆栈指针的顶端。 4.5. 数据指针 数据指针为2字节.低位为DPL.高位为DPH.它可以作为一个2字节的寄存器(MOV DPTR,#data16)来使用,或者作为两个寄存 器(例如,MOV DPL,#data8),它通常被用作是运行外部程序或者是数据空间(如,MOVC A,@ A+DPTR 或者各自的MOV A, @ DPTR). Mnemonic: DPL 7 6 5 3 DPL [7:0] 2 1 Address: 82h 0 Reset 00h 4 3 DPH [7:0] 2 1 Address: 83h 0 Reset 00h 4 DPL[7:0]: Data pointer Low 0 Mnemonic: DPH 7 6 5 DPH [7:0]: Data pointer High 0 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 26 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 4.6. 数据指针 1 双数据指针加速了块状数据的运行速度.标准的DPTR 是一个16位的寄存器,是用来寻址外部空间或者外部内存. 在 SM59R02G1中,标准的数据指针称为DPTR,第二个数据指针称为DPTR1.选择位用来选择使用的数据指针.数据指针的选择 位位于AUX寄存器的LSB(DPS). 用户通过触发AUX寄存器中的LSB位进行切换. 所有有关的DPTR指令都将为当前选用的DPTR所操作。 Mnemonic: DPL1 7 6 5 4 3 DPL1 [7:0] 2 1 Address: 84h 0 Reset 00h 4 3 DPH1 [7:0] 2 1 Address: 85h 0 Reset 00h 2 - 1 - Address: 91h 0 Reset DPS 00H 1 EMEN Address: 8Fh 0 Reset ISPE 00h DPL1[7:0]: Data pointer Low 1 Mnemonic: DPH1 7 6 5 DPH1[7:0]: Data pointer High 1 Mnemonic: AUX 7 6 BRGS - 5 - 4 P1UR 3 - DPS: 数据指针选择位. DPS = 1 选择数据指针 1. 4.7. 接口控制寄存器 Mnemonic: IFCON 7 6 ITS CDPR 5 - 4 - 3 2 ALEC[1:0] ITS: 指令执行机械周期选择位. (默认为 2T) ITS = 0,指令执行机械周期为 2T. ITS = 1,指令执行机械周期为 1T. CDPR: 程序代码已加密指示位(仅读) ALEC[1:0]: ALE 输出控制寄存器. ALEC[1:0] ALE Output 00 永远输出 01 不输出 10 仅于读写外部内存时输出 11 保留 ISPE: ISP 功能使能位 ISPE = 1, 允许使用 ISP 功能 ISPE = 0, 禁止使用 ISP 功能 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 27 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 5. GPIO SM59R02G1有6个I/O口: Port 0, Port 1, Port 2, Port 3, Port 4及Port 5. Ports 0, 1, 2, 3, 4 是8位口,Port 4是7位口及Port 5 是2位口(仅位4及位5). 它们是: 准双向口 (标准的8051端口输出),推挽电路,开漏, 与只输入. 两种寄存器的配置为每个端 口的每个位选择输出方式.SM59R02G1的所有端口可以通过软件配置四种型号的一种.如下表显示: Mnemonic P0M0 P0M1 P1M0 P1M1 P2M0 P2M1 P3M0 P3M1 P4M0 P4M1 P5M0 P5M1 Description Direct Port 0 output mode 0 Port 0 output mode 1 Port 1 output mode 0 Port 1 output mode 1 Port 2 output mode 0 Port 2 output mode 1 Port 3 output mode 0 Port 3 output mode 1 Port 4 output mode 0 Port 4 output mode 1 Port 5 output mode 0 Port 5 output mode 1 PxM1.y 0 0 1 1 PxM0.y 0 1 0 1 D2h D3h D4h D5h D6h D7h DAh DBh DCh DDh DEh DFh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 I/O port function register P0M0 [7:0] P0M1[7:0] P1M0[7:0] P1M1[7:0] P2M0[7:0] P2M1[7:0] P3M0[7:0] P3M1[7:0] P4M0[6:0] P4M1[6:0] P5M0[5:4] P5M1[5:4] - Bit 1 Bit 0 - RESET 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H - Port output mode Quasi-bidirectional (standard 8051 port outputs) (pull-up) Push-pull Input only (high-impedance) Open drain PSEN、ALE、EA及RESET可在烧写或用ISP时定义在P4.4、P4.5、P4.6及P4.7. 当用户使用内部 OSC作为系统时钟,XTAL2及XTAL1可在烧写或用ISP时定义在P5.4、P5.5;当用户使用外部振荡器由 XTAL1输入作为系统时钟时,只有XTAL2可定义成IO管脚P5.4. 一般的应用,每个管脚都可独立的置高或置低.如下表显示: Mnemonic Port 5 Port 4 Port 3 Port 2 Port 1 Port 0 Description Port 5 Port 4 Port 3 Port 2 Port 1 Port 0 Direct Bit 7 Bit 6 D8h E8h B0h A0h 90h 80h P3.7 P2.7 P1.7 P0.7 P4.6 P3.6 P2.6 P1.6 P0.6 Mnemonic: P0 7 6 P0.7 P0.6 5 P0.5 4 P0.4 Bit 5 Ports P5.5 P4.5 P3.5 P2.5 P1.5 P0.5 3 P0.3 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET P5.4 P4.4 P3.4 P2.4 P1.4 P0.4 P4.3 P3.3 P2.3 P1.3 P0.3 P4.2 P3.2 P2.2 P1.2 P0.2 P4.1 P3.1 P2.1 P1.1 P0.1 P4.0 P3.0 P2.0 P1.0 P0.0 FFh FFh FFh FFh FFh FFh 2 P0.2 1 P0.1 Address: 80h 0 Reset P0.0 FFh P0.7~ 0: Port0 [7] ~ Port0 [0] 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 28 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Mnemonic: P1 7 6 P1.7 P1.6 5 P1.5 4 P1.4 3 P1.3 2 P1.2 1 P1.1 Address: 90h 0 Reset P1.0 FFh 4 P2.4 3 P2.3 2 P2.2 1 P2.1 Address: A0h 0 Reset P2.0 FFh 4 P3.4 3 P3.3 2 P3.2 1 P3.1 Address: B0h 0 Reset P3.0 FFh 4 P4.4 3 P4.3 2 P4.2 1 P4.1 Address: E8h 0 Reset P4.0 FFh 4 P5.4 3 - 2 - 1 - Address: D8h 0 Reset FFh P1.7~ 0: Port1 [7] ~ Port1 [0] Mnemonic: P2 7 6 P2.7 P2.6 5 P2.5 P2.7~ 0: Port2 [7] ~ Port2 [0] Mnemonic: P3 7 6 P3.7 P3.6 5 P3.5 P3.7~ 0: Port3 [7] ~ Port3 [0] Mnemonic: P4 7 6 P4.6 5 P4.5 P4.6~ 0: Port4 [6] ~ Port4 [0] Mnemonic: P5 7 6 - 5 P5.5 P5.5~ 4: Port5 [5] ~ Port5 [4] 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 29 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 6. 定时器0 和定时器1 SM59R02G1有三个16bit的定时/计数寄存器: 定时器0, 定时器1和定时器2,所有这些都可以被设置为定时或计数操作. 在计时的模式中,定时器0和定时器1寄存器的递增频率,可由寄存器PFCON中选择为与振荡器频率相同或为振荡器频率的 1/12或为振荡器频率的1/96. 在计数的模式中,当检测到相应的输入脚T0/T1有下降沿产生时,寄存器便得到递增,由于它需要2个机器周期来识别由1到0 的跳变,其最大输入的计数频率为振荡器频率的1/2,从而使得这里没有限制的占空比,以确定适当的识别为0或1的状态, 因此,一个输入信号至少要稳定在1个机器周期. 定时器0和定时器1都有四种操作模式选择,在选择操作模式中,两个特殊功能寄存器(TMOD 与 TCON)被应用其中. Mnemonic Description Direct TL0 Timer 0 , low byte Timer 0 , high byte Timer 1 , low byte Timer 1 , high byte Timer Mode Control Timer/Counter Control Peripheral Frequency control register 8Ah TL0[7:0] 00h 8Ch TH0[7:0] 00h 8Bh TL1[7:0] 00h 8Dh TH1[7:0] 00h TH0 TL1 TH1 TMOD TCON PFCON 6.1. Bit 7 Bit 6 Bit 5 Timer 0 and 1 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET 89h GATE C/T M1 M0 GATE C/T M1 M0 00h 88h TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 00h D9H - - S0RELPS[1:0] T1PS[1:0] T0PS[1:0] 定时器/计数器模式控制寄存器(TMOD) Mnemonic: TMOD 7 6 5 GATE C/T M1 Timer 1 4 M0 3 GATE 2 1 C/T M1 Timer 0 Address: 89h 0 Reset M0 00h GATE: 该位被置位时为门控时,仅当‘INT0 或者INT1’脚为高时,且‘TRx’控制位被置位 (参考TCON 寄存器)时使能,计数器在每个T0 或T1 输入脚处于下减沿触发 时得到加强。 C/T: 门控定时器或计数器选择器。该位被置位时用作计数器功能,该位被清零时用作定 时器功能. M[1:0]: S 定时/计数器 0 或定时/计数器 1 的选择模式 M1 M0 Mode Function 0 0 Mode0 13位计数器/定时器, 包含TL0/TL1寄存器的低5 位及TH0/TL1寄存器的全部8位,其TL0/TL1寄存 器的高 3 位可设置为 0. 0 1 Mode1 16 位计数器/定时器. 1 0 Mode2 8 位自动装载的计数器/定时器,自动装载的值保 留在TH0 和TH1.同时TL0 或者TL1 在每个机 器周期内都会递增. 当溢出时,将THx 存放的值 装入 TLx. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 30 Ver.G SM59R02G1 09/2015 00H SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 1 6.2. 1 Mode3 如定时器1 的M1 和M2 位被设置为1,定时器1 停止计数。如定时器0 的M1 和M0 位被设置为 1,定时器0 作为两个独立的8 位定时器/计数器. 定时/计数控制寄存器(TCON) Mnemonic: TCON 7 6 5 TF1 TR1 TF0 4 TR0 3 IE1 2 IT1 1 IE0 Address: 88h 0 Reset IT0 00h TF1: 定时器1 溢出标志。定时器/计数器溢出时由硬件置位。中断执行时硬件清零, 或由软件清零。. TR1: 定时器 1 运行控制位。如置位/清零, 关闭定时器/计数器 1. TF0: 定时器0 溢出标志。定时器/计数器溢出时由硬件置位。中断执行时硬件自动清 零,或由软件清零 TR0: 定时器 0 运行控制位。如置位/清零,关闭定时器/计数器 0. IE1: 中断1 边沿标志。当检测到外部中断1 边沿/低电平时由硬件置位该标志。中 断处理时由硬件清零,或通过软件清零. IT1: 中断1 类型控制位,通过软件置位/清零该位来选择外部中断1 以下降沿/低电 平方式触发 IE0: 中断0 边沿标志。当检测到外部中断0 边沿/低电平时由硬件置位该标志。中 断处理时由硬件清零,或通过软件清零. IT0: 中断0 类型控制位。通过软件置位/清零该位来选择外部中断0 以下降沿/低电 平方式触发. 6.3. 外设频率控制寄存器(PFCON) Mnemonic: PFCON 7 6 5 4 S0RELPS[1:0] 3 2 T1PS[1:0] Address: D9h 1 0 Reset T0PS[1:0] 00h T0PS[1:0]: 定时器 0 预分频选择 T0PS[1:0] 预分频 00 频率/12 01 频率 10 频率/96 11 保留 T1PS[1:0]: 定时器 1 预分频选择 T1PS[1:0] 预分频 00 频率/12 01 频率 10 频率/96 11 保留 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 31 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 6.4. 模式 0 (13 位计数器/定时器) ÷12 00 OSC 01 ÷96 10 C/T = 1 T1PS[1:0] T1腳 TR1 GATE1 ET1 C/T = 0 TL1 TH1 (5位元) (8位元) EA 0 1 1 控制 目前沒有更高層次 的中斷程式在執行 AND NOT TF1 0 跳到001BH OR INT1腳 D0D1D2D3D4 D5D6D7 TH1 TL1 6.5. TF1 D0D1D2D3D4D5D6D7 模式 1 (16 位计数器/定时器) ÷12 OSC 00 01 ÷96 10 C/T = 1 T1PS[1:0] T1腳 TR1 GATE1 ET1 C/T = 0 TL1 TH1 (8位元) (8位元) EA 0 1 1 控制 目前沒有更高層次 的中斷程式在執行 AND NOT TF1 0 跳到001BH OR INT1腳 D0D1D2D3D4D5D6D7 D0D1D2D3D4D5D6D7 TL1 TH1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 32 TF1 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 6.6. 模式 2 (8 位自动装载计数器/定时器) ÷12 OSC 00 01 ÷96 10 C/T = 1 T1PS[1:0] T1腳 TR1 GATE1 ET1 C/T = 0 TL1 (8位元) 1 1 目前沒有更高層次 的中斷程式在執行 自動重 新載入 OR TH1 (8位元) INT1腳 6.7. EA 0 控制 AND NOT TF1 0 跳到001BH 模式 3 (定时器 0 作为两个独立的 8 位定时器/计数器) ÷12 00 TH0 (8位元) TF1 中斷要求 (001BH) TL0 (8位元) TF0 中斷要求 (000BH) TR1 OSC 01 ÷96 C/T = 0 10 C/T = 1 T0PS[1:0] T1腳 TR1 GATE1 控制 AND NOT OR INT1腳 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 33 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 7. 定时器2 以及捕捉/比较单元 定时器2不仅仅是一个16位的定时器,也是一个带有4个通道比较,捕获及重载功能,这是非常相似在其他一些微控制器的可 程序设计计数器数组(PCA),除脉冲宽度调制(PWM). Mnemonic Description Direct AUX2 T2CON Auxiliary register2 Timer 2 control Compare/Capture Control Compare/Capture Enable register Compare/Capture Enable 2 register Timer 2, low byte Timer 2, high byte Compare/Reload/ Capture register, low byte Compare/Reload/ Capture register, high byte Compare/Capture register 1, low byte Compare/Capture register 1, high byte Compare/Capture register 2, low byte Compare/Capture register 2, high byte Compare/Capture register 3, low byte Compare/Capture register 3, high byte CCCON CCEN CCEN2 TL2 TH2 CRCL CRCH CCL1 CCH1 CCL2 CCH2 CCL3 CCH3 Bit 2 92h C8h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Timer 2 and Capture Compare Unit T2PS[2:0] T2R[1:0] C9h CCI3 CCF2 C1h - COCAM1[2:0] - COCAM0[2:0] 00h D1h - COCAM3[2:0] - COCAM2[2:0] 00h CCI1 CCI0 CCF3 Bit 0 P42CC[1:0] T2I[1:0] CCF1 CCF0 RESET 00h 00h 00H CCh CDh TL2[7:0] TH2[7:0] 00h 00h CAh CRCL[7:0] 00h CBh CRCH[7:0] 00h C2h CCL1[7:0] 00h C3h CCH1[7:0] 00h C4h CCL2[7:0] 00h C5h CCH2[7:0] 00h C6h CCL3[7:0] 00h C7h CCH3[7:0] 00h Mnemonic: AUX2 7 6 P42CC[1: 0] 00: 01: 10: 11: CCI2 - Bit 1 5 - 4 - 3 - 2 - Address: 92h 1 0 Reset P42CC[1: 0] 00H 捕捉/比较功能使用 Port1. 捕捉/比较功能使用 Port2. 捕捉/比较功能使用 Port4. 保留 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 34 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Mnemonic: T2CON 7 6 5 T2PS[2:0] 4 3 T2R[1:0] 2 - 1 Address: C8h 0 Reset T2I[1:0] 00H T2PS[2:0]: 分频器选择位: T2PS = 000 –定时器 2 的时钟为振荡频率. T2PS = 001 –定时器 2 的时钟为振荡频率的 1/2. T2PS = 010 –定时器 2 的时钟为振荡频率的 1/4. T2PS = 011 –定时器 2 的时钟为振荡频率的 1/6. T2PS = 100 –定时器 2 的时钟为振荡频率的 1/8. T2PS = 101 –定时器 2 的时钟为振荡频率的 1/12. T2PS = 110 –定时器 2 的时钟为振荡频率的 1/24. T2R[1:0]: 定时器 2 重载模式选择位 T2R[1:0] = 0X –重载无效 T2R[1:0] = 10 –模式 0:自动重载 T2R[1:0] = 11 –模式 1:依 T2EX 脚下降缘重载 T2I[1:0]: 定时器 2 输入选择位 T2I[1:0] = 00 –定时器 2 计数停止 T2I[1:0] = 01 –输入频率依 T2PS[2:0]分频器选择 T2I[1:0] = 10 –定时器 2 在 T2 脚的外部信号递增 T2I[1:0] = 11 –门控定时器 2 可为内部时钟输入 Mnemonic: CCCON 7 6 5 CCI3 CCI2 CCI1 4 CCI0 3 CCF3 2 CCF2 1 CCF1 Address: C9h 0 Reset CCF0 00H CCI3: 捕捉/比较信道 3 中断功能控制位. “1” 中断功能使能. CCI2: 捕捉/比较信道 2 中断功能控制位. “1” 中断功能使能. CCI1: 捕捉/比较信道 1 中断功能控制位. “1” 中断功能使能. CCI0: 捕捉/比较信道 0 中断功能控制位. “1” 中断功能使能. CCF3: 捕捉/比较通道 3 中断旗标位.可由软件清零. CCF2: 捕捉/比较通道 2 中断旗标位.可由软件清零. CCF1: 捕捉/比较通道 1 中断旗标位.可由软件清零. CCF0: 捕捉/比较通道 0 中断旗标位.可由软件清零. 捕捉/比较中断与定时器 2 中断共享同一个中断向量. Mnemonic: CCEN 7 6 5 4 COCAM1[2:0] COCAM1[2:0] 000: 001: 010: 011: 100: 101: 110: 3 - 2 Address: C1h 1 0 Reset COCAM0[2:0] 00H 禁止比较/捕获功能 比较功能启动但无输出 比较功能模式 0 比较功能模式 1 捕获在 CC1 脚的上升沿 捕获在 CC1 脚的下降沿 捕获在 CC1 脚的上升沿及下降沿 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 35 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 111: COCAM0[2:0] 000: 001: 010: 011: 100: 101: 110: 111: 在寄存器 CC1 中捕获写入操作 禁止比较/捕获功能 比较功能启动但无输出 比较功能模式 0 比较功能模式 1 捕获在 CC0 脚的上升沿 捕获在 CC0 脚的下降沿 捕获在 CC0 脚的上升沿及下降沿 在寄存器 CC0 中捕获写入操作 Mnemonic: CCEN2 7 6 5 4 COCAM3[2:0] COCAM3[2:0] 000: 001: 010: 011: 100: 101: 110: 111: COCAM2[2:0] 000: 001: 010: 011: 100: 101: 110: 111: 7.1. 3 - 2 Address: D1h 1 0 Reset COCAM2[2:0] 00H 禁止比较/捕获功能 比较功能启动但无输出 比较功能模式 0 比较功能模式 1 捕获在 CC3 脚的上升沿 捕获在 CC3 脚的下降沿 捕获在 CC3 脚的上升沿及下降沿 在寄存器 CC3 中捕获写入操作 禁止比较/捕获功能 比较功能启动但无输出 比较功能模式 0 比较功能模式 1 捕获在 CC2 脚的上升沿 捕获在 CC2 脚的下降沿 捕获在 CC2 脚的上升沿及下降沿 在寄存器 CC2 中捕获写入操作 定时器 2 功能 定时器2既可做为定时器,又可做为计数器,或解释为门控定时器(如下解释). 7.1.1. 定时器模式 在此模式中,定时器2递增频率依分频器选择决定,而分频器则由特殊寄存器T2CON中的T2PS[2:0]位选择. 7.1.2. 事件计数模式 在此模式中,当然外部信号T2由1到0的跳变时,定时器得到递增,T2输入在每个周期中得以采样,定时器2在跳变检测的 一个周期中得到递增. 7.1.3. 门控定时器模式 在此模式中,定时器2递增的内部时钟是由外部信号T2来控制的. 7.1.4. 定时器 2 的重载 重载(来自CRC寄存器的16位重载)可在以下两种模式中执行: 模式0:重载信号由定时器2溢出产生,即自动重载。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 36 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 模式1:重载信号由相应的输入脚T2EX负跳变产生. 7.2. 比较功能 在四个独立的比较器中,任何比较/捕捉寄存器中的值都和定时器寄存器的内容比较,其比较模式0或1由位C0CAMx来选择. 在这两种比较模式中,其比较结果在同样的机器周期的Port 1口的得出使得其内部比较信号被启动. 7.2.1. 比较模式 0 在模式0中,当定时器2的值等同与比较寄存器上的值时,其输出信号由低到高的跳变,并在定时器溢出时返回低电位。在 此模式中,对端口写入无效,因为无法对来自内部总线及缓存器进行操作。 下表数字阐述了比较模式0的功能. Fig. 7-1: 比较模式0 Contents of Timer 2 CRC or CCx Reload value CCx Output Timer 2 = CCx value 7.2.2. Timer 2 overflow 比较模式 1 在比较模式1中,其输出信号的跳变是由软件来决定的。定时器2的溢出不会导致输出的改变。在此模式中,两种信号的跳 变都是可以控制的,图表7-2显示了在比较模式1中的寄存器/端口结构菜单。 在比较模式1中,其值将首先被写入到“阴影寄存器”中,当比较信号被启动时,其值被传递到输出寄存 器. Fig. 7-2: 比较模式1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 37 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Contents of Timer 2 CRC or CCx Reload value CCx Output Output register Shadow register CCx Output Timer 2 = CCx value 7.3. 捕获功能 在一个外部事件(模式0)或一个软件写操作(模式1)上,实际的定时器/计数器的值可以被保存在寄存器CCx或CRC中. 7.3.1. 捕捉模式 0 在模式0中,定时器2的值的捕捉在以下情况进行: (a) 上升沿输入 CC0-CC3。 (b) 下降沿输入 CC0-CC3。 (c) 上升沿及下降沿输入CC0-CC3。 定时器2的内容将被对应的捕捉寄存器锁存。 7.3.2. 捕捉模式 1 在模式1中,定时器2的值的捕捉将导致写入到捕捉寄存器中的低字节无任何价值,其捕捉寄存器的写入值与改功能无关,定 时器2的内容将被对应的捕捉寄存器琐存。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 38 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 8. 串行接口0 SM59R02G1有一个数据传输的串行接口,即UART0. 作为传统的UART,其传输速率可通过SFRs中的波特率来选择. 这两个串行缓冲器组成两个单独寄存器,即一个传输缓冲区和一个接收缓冲区。写入数据到特殊功能寄存器(SFR)S0BUF 并设置这些数据在串行输出缓冲,并开始传输, 来自S0BUF的读取及从串行接收缓冲区读取数据,串行口可同时传输和接 收数据,它也可在接收时缓存1字节,如CPU在第一个字节传输完成之前读取第二个字节,以防接收数据丢失。 Mnemonic Description Direct Bit 7 PCON AUX Power control Auxiliary register Serial Port 0 control register Serial Port 0 reload register low byte Serial Port 0 reload register high byte Serial Port 0 data buffer Peripheral Frequency control register 87h 91h SMOD BRGS 98h S0CON S0RELL S0RELH S0BUF PFCON Bit 6 Bit 5 Bit 4 Serial interface 0 P1UR Bit 3 Bit 2 Bit 1 Bit 0 RESET - - STOP - IDLE DPS 40h 00H SM0 SM1 SM20 REN0 TB80 RB80 TI0 RI0 00h AAh S0REL .7 S0REL .6 S0REL .5 S0REL .4 S0REL .3 S0REL .2 S0REL .1 S0REL .0 00h BAh - - - - - - S0REL .9 S0REL .8 00h 99h S0BUF[7:0] D9H Mnemonic: AUX 7 6 BRGS - - 5 - - 4 P1UR S0RELPS[1:0] 3 - 2 - 00h T1PS[1:0] 1 - T0PS[1:0] Address: 91h 0 Reset DPS 00H BRGS: BRGS = 0 –由定时器 1 产生鲍率. BRGS = 1 –由 S0REL 寄存器产生鲍率. P1UR: P1UR = 0 –串行接口 0 使用 P3.0,P3.1 P1UR = 1 –串行接口 0 使用 P1.2,P1.3 Mnemonic: S0CON 7 6 5 SM0 SM1 SM20 4 REN0 3 TB80 2 RB80 1 TI0 Address: 98h 0 Reset RI0 00h SM0,SM1: 串行口 0 模式选择. SM0 SM1 Mode 0 0 0 0 1 1 1 0 2 1 1 3 在 UART0 的 4 种模式中,模式 0~3 稍后解释 SM20: 多处理机通信使能位 REN0: 如置位,串行接收使能,软件清除禁止接收 TB80: 在模式2 和3 中,发送的第9 位数据位,置位或清零取决与它执行的功能,如奇 偶校验功能, 多处理机通信等。 RB80: 在模式2 和3 中,RB80 为接收的第9 位数据位。在模式1 中,如SM20=0,RB80 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 39 Ver.G SM59R02G1 09/2015 00H SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 为停止位。在模式 0 中,此位不被使用。须由软件清除。 TI0: 发送中断标志位.在完成串行传输后由硬件置位,须由软件清除。 RI0: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除. Mnemonic: PFCON 7 6 5 4 S0RELPS[1:0] 3 2 T1PS[1:0] Address: D9H 1 0 Reset T0PS[1:0] 00H S0RELPS[1:0]: S0REL 预分频选择 S0RELPS[1:0] 预分频 00 频率/64 01 频率/32 T1PS[1:0]: 定时器 1 预分频选择 T1PS[1:0] 预分频 00 频率/12 01 频率 10 频率/96 11 保留 8.1. 串行接口 0 串行接口0由以下4种模式可以设置: SM0 0 0 1 1 SM1 0 1 0 1 Mode 0 1 2 3 Description Shift register 8-bit UART 9-bit UART 9-bit UART Board Rate Fosc/12 Variable Fosc/32 or Fosc/64 Variable 这里的Fosc是晶体或振荡器的频率。 8.1.1. 模式 0 引脚RXD0充当输入和输出。TXD0输出时钟。每次发送或接收以LSB最低位作首位,每次8位。波特率固定为的晶体的频率 1/12,接收通过以下的在S0CON中的设置标志在模式0中初始化:RI0 = 0 and REN0 = 1。在其他模式中,当REN0=1时, 开始从起始位接收串行数据. Fig. 8-1: Transmit mode 0 for Serial 0 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 40 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Fig. 8-2: Receive mode 0 for Serial 0 8.1.2. 模式 1 引脚RXD0充当输入,TXD0充当串行输出,无任何外部时钟被使用,每次数据为10位:一个起始位(=0),8个数据位(LSB 位在前),及一个停止位(=1)。在接收据数据时, 起始位将被同步传输,8个数据位可通过S0BUF来读取, 一个停止位存于 特殊功能寄存器S0CON的设置标志RB80内,在模式1中,无论是内部的波特率发生器或定时器1可以用来指定波特率。 Fig. 8-3: Transmit mode 1 for Serial 0 Fig. 8-4: Receive mode 1 for Serial 0 8.1.3. 模式 2 该模式和模式1类似,但有两点不同。波特率被固定在振荡器的频率的1/32(SMOD=1)或1/64(SMOD=0),且有11位数 据被传输或接收: 1个起始位(=0),8个数据位(LSB在前),一个可程序设计的第9位及一个停止位(=1),9位可以用 来控制串行接口的奇偶性。在传输中,S0CON中的TB80输出第9位,在接收中,S0CON中的RB80将被影响。 8.1.4. 模式 3 模式2和3的唯一不同之处在于:在模式3中,无论是内部的波特率发生器或定时器1可以用来指定波特率。 Fig. 8-5: Transmit modes 2 and 3 for Serial 0 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 41 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Fig. 8-6: Receive modes 2 and 3 for Serial 0 8.2. 串行接口 0 的多重机通讯 在串行接口 0 的模式2 和3 中,接收9 位的功能, 可用于多处理器的通讯。 在这种情况下,从机在S0CON 中的位SM20 被置位为1。当主机输出从机的地址时,Bit9 将被置1,从而在所有的从机中 导致串行口接收中断。从机将接收到的字节和它们的网络地址比较,如匹配,其从机将清除SM20,并接收其余的信息,其 他的从机将远离SM20 无效,并忽略此信息。在解决从机后,其主机在Bit9 清0 时将输出剩余部分的信息,因此,没有串 口接收中断会产生在未选中的处理机中。 8.3. 8.3.1. 波特率发生器 串行接口 0 的模式 1 和 3 (a) 当BRGS = 0 (在 AUX寄存器): T1PS[1:0] = 00 2SMOD × FOSC Baud Rate = 32 × 12 × ( 256 − TH1) T1PS[1:0] = 01 2SMOD × FOSC Baud Rate = 32 × ( 256 − TH1) T1PS[1:0] = 10 Baud Rate = 2SMOD × FOSC 32 × 96 × ( 256 − TH1) (b) 当BRGS = 1 (在 AUX寄存器): S0RELPS[1:0] = 00 2SMOD × FOSC Baud Rate = 64 × ( 210 − S0REL ) S0RELPS[1:0] = 01 Baud Rate = 2SMOD × FOSC 32 × ( 210 − S0REL ) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 42 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 9. 看门狗定时器 看门狗定时器是一个8位的计数器并会在计数器溢出时产生复位讯号.WDT在噪音.电源干扰,或断电等导致软件死循环或跑 飞程序等情况下非常有用.WDT功能可以说明拥护的软件从不正常的软件状态中恢复正常.WDT不同于通用的8052的定时器 0,1,2.为了防止WDT复位,可以通过软件定时清除WDT计数器.当不可预料的复位发生时,用户应该检查WDTC寄存器的 WDTF位. 在一外部复位后,该看门狗定时器将无效且所有寄存器都清零。 看门狗定时器是一个自由运行的片上RC振荡器 (约250 KHz). WDT将保持运行就算是系统时钟被关闭(例如,在睡眠状态). 在正常的运行或睡眠状态,一个WDT超时(如使能)将导致MCU复位.WDT在正常状态下可随时被使能或失效.请注意WDTC寄 存器的WDTE位.默认的WDT超时时间为接近16.38ms (WDTM [3:0] = 0100b). WDT有可选择的分频.要选择分频,需要正确设置看门控制寄存器(WDTC)的位3~位0(WDTM [3:0]) 250KHz 2 WDTM 256 Watchdog reset time = WDTCLK WDTCLK = WDTM [3:0] 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Table 9.1 WDT time-out period Divider Time period @ 250KHz (250 KHz RC oscillator in) 1 1.02ms 2 2.05ms 4 4.10ms 8 8.19ms 16 16.38ms (default) 32 32.77ms 64 65.54ms 128 131.07ms 256 262.14ms 512 524.29ms 1024 1.05s 2048 2.10s 4096 4.19s 8192 8.39s 16384 16.78s 32768 33.55s 当MCU复位,MCU将会读WDTEN控制位状态.当WDTEN位被设置为1,无论WDTE位状态如何,看门狗功能将会失效.当 WDTEN位被清0,在WDTE位被通过变成设为1的情况下,看门狗功能将被使能.用户可通过烧路器或ISP设置WDTEN. 对WDTE位写入1同时WDTEN控制位清0,能使WDT功能使能.在WDTE设为1后.8位的计数器用通过WDTM[3:0]设置好的分 频进行计数.它在溢出时将会产生复位讯号.WDTE位在MCU重启时将被自动清0,同时硬件复位或WDT复位. 看门狗一旦开始工作将无法停止. ,当WDTK寄存器用户可通过对看门狗定时器重置密钥(WDTK)写入55h实现WDT定时器 清0.这将会清楚8位计数器内容并让计数器重启. 看门狗定时器必须定时刷新以防来自可变的重置复位请求信号. 当看门狗定时器溢出时, WDTF标志位将被置1并自动重置复位MCU.该标志位可被软件或外部复位清除. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 43 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Clear WDTF = 0 1. Power on reset 2. External reset 3. Software write “0” 250KHz RC oscillator WDTF Set WDTF = 1 CWDTR = 0 WDTCLK 1 TAKEY (55, AA, 5A) 2WDTM WDTM[3:0] Enable/Disable WDT WDT time-out reset WDT time-out select WDT Counter CWDTR = 1 Refresh WDT Counter WDT time-out Interrupt WDTC Enable WDTC write attribute WDTK (0x55) WDTEN Fig. 9-1: Watchdog timer block diagram Mnemonic TAKEY WDTC WDTK RSTS Description Time Access Key register Watchdog timer control register Watchdog timer refresh key Reset Status Flag register Direct Bit 7 Bit 6 Bit 5 Bit 4 Watchdog Timer F7h Bit 3 Bit 2 Bit 1 Bit 0 TAKEY [7:0] B6h - CWDTR WDTE - B7h 00H WDTM [3:0] 04H WDTK[7:0] A1H - Mnemonic: TAKEY 7 6 5 - - 4 3 TAKEY [7:0] PDRF 2 WDTF 1 RESET 00H SWRF LVRF PORF 00H Address: F7h 0 Reset 00H 看门狗控制寄存器(WDTC)默认为仅读;软件需依序于寄存器 TAKEY 写入 55h, AAh 及 5Ah 才能对看 门狗控制寄存器(WDTC)执行写入,启动看门狗功能及设定重置时间 MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah Mnemonic: WDTC 7 6 CWDTR 5 WDTE 4 - 3 2 1 WDTM [3:0] Address: B6h 0 Reset 04H CWDTR: 0: 看门狗产生溢位重置信号 1: 看门狗产生溢位中断信号 WDTE: 看门狗定时器使能位. 此位需于WDTEN=0(此值于出厂时已设为0)时设置才有作用,既于刻录(使用ISP或一般刻 录器)时于看门狗选项选择使用. 0: 禁能. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 44 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 1: 使能. WDTM [3:0]: 看门狗重置信号产生时间选择位.请参考表格 9.1 所列看门狗重置信号产生时间. Mnemonic: WDTK 7 6 5 4 3 WDTK[7:0] 2 1 Address: B7h 0 Reset 00h WDTK: 看门狗定时器计数器清零寄存器. 于此寄存器写入 0x55, 看门狗定时器计数器将清零重新计数. 范例: 看门狗定时器使能并选择重置信号产生时间为 262.14ms. 第一步,先确认刻录时看门狗功能已选择使用. 第二步,如下 MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah ; enable WDTC write attribute. MOV WDTC, #28h ; Set WDTM [3:0] = 1000b. Set WDTE =1 to enable WDT ; function. . . . MOV WDTK, #55h ; Clear WDT timer to 0. Mnemonic: RSTS 7 6 - 5 - 4 PDRF 3 WDTF 2 SWRF 1 LVRF Address: A1H 0 Reset PORF 00H WDTF: 看门狗定时器产生重置信号之旗标位. 当 MCU 之重置是由看门狗定时器产生时, 此位将被置高.此旗标位清零可由软件、外部 重置信号或上电之重置信号. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 45 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 10. 中断 SM59R02G1提供7个中断源并带有4级优先权. 每一中断源都在特殊寄存器(SFR)中有自身的请求标志,每个中断请求信号 通过相应的标志及特殊寄存器(SFR)中的IEN0,IEN1及IEN2中的使能位来独自允许或禁止。 当中断发生时,CPU将会跳转预先设定的地址,如10-1图表所示,一旦中断开始执行,就只能被更高优先级的中断终止, 其中断服务会被来自指令RETI的返回所终结。当一RETI被执行时且中断发生时,处理器将将返回此指令,并执行下一条指 令。 当中断条件发生时,该处理器通过设置一个标志位来表示,无论中断使能或禁止,每个中断标志都将在每个机器周期中采 样一次,随后采样由硬件来检测,当中断被使能时,且采样指出相应中断时,中断请求标志被设置。在随后的指令周期中, 中断将被硬件所确定。从而迫使一个LCALL 指向相应的地址向量。 当中断发生时,中断响应将需要不同的时间,这取决于相关的处理器。如一处理器执行的中断服务程序同等或更优先,新 的中断将不会启用,在其他情况下,响应时间将取决于当前的指令。以最快的速度响应一个中断是需要7个机器周期,这包 括一个检测中断的机器周期和6周期执行LCALL周期。 Interrupt Request Flags IE0 –外部中断 0 Table 10-1: 中断向量 Interrupt Vector Address 0003h Interrupt Number *(use Keil C Tool) 0 TF0 –定时器 0 中断 000Bh 1 IE1 –外部中断 1 0013h 2 TF1 –定时器 1 中断 001Bh 3 RI0/TI0 –串行口 0 中断 0023h 4 TF2/EXF2 –定时器 2 中断 WDT – 看门狗中断 002Bh 008Bh 5 17 *参考Keil C用户指南中的有关中断功能使用说明 Mnemonic IEN0 IEN1 IRCON IEN2 IRCON2 IP0 IP1 Description Interrupt Enable 0 register Interrupt Enable 1 register Interrupt request register Interrupt Enable 2 register Interrupt request register 2 Interrupt priority level 0 Interrupt priority level 1 Direct Bit 7 Bit 6 Bit 5 Interrupt Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET A8h EA - ET2 ES0 ET1 EX1 ET0 EX0 00h B8h EXEN 2 - - - - - - - 00h C0H EXF2 TF2 - - - - - - 00h 9AH - - - - - - IEWD T - 00h 97H - - - - - - WDTIF - 00h A9h - - IP0.5 IP0.4 IP0.3 IP0.2 IP0.1 IP0.0 00h B9h - - IP1.5 IP1.4 IP1.3 IP1.2 IP1.1 IP1.0 00h 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 46 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Interrupt Enable 0 register(IEN0) Mnemonic: IEN0 7 6 EA - 5 ET2 4 ES0 3 ET1 Address: A8h 0 Reset EX0 00h 2 EX1 1 ET0 2 - 1 - Address: B8h 0 Reset 00h 2 - 1 IEWDT Address: 9Ah 0 Reset 00h EA: EA=0 –禁能所有中断. EA=1 –使能所有中断. ET2: ET2=0 –禁能定时器 2 中断. ET2=1 –使能定时器 2 中断. ES0: ES0=0 –禁能串行口 0 中断. ES0=1 –使能串行口 0 中断. ET1: ET1=0 –禁能定时器 1 中断. ET1=1 –使能定时器 1 中断. EX1: EX1=0 –禁能外部中断 1. EX1=1 –使能外部中断 1. ET0: ET0=0 –禁能定时器 0 中断. ET0=1 –使能定时器 0 中断. EX0: EX0=0 –禁能外部中断 0. EX0=1 –使能外部中断 0. Interrupt Enable 1 register(IEN1) Mnemonic: IEN1 7 6 EXEN2 - 5 - 4 - 3 - EXEN2: 定时器 2 重载中断使能位. EXEN2 = 0 –禁能定时器 2 外部重载中断. EXEN2 = 1 –使能定时器 2 外部重载中断. Interrupt Enable 2 register(IEN2) Mnemonic: IEN2 7 6 - 5 - 4 - 3 - 4 - 3 - IEWDT: 看门狗中断使能位. IEWDT = 0 –禁能看门狗中断. IEWDT = 1 –使能看门狗中断. Interrupt request register(IRCON) Mnemonic: IRCON 7 6 5 EXF2 TF2 - 2 - 1 - Address: C0h 0 Reset 00H EXF2: 定时器 2 重载中断旗标位.必须由软件清零. TF2: 定时器 2 中断旗标位.必须由软件清零. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 47 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Interrupt request register 2(IRCON2) Mnemonic: IRCON2 7 6 5 - 4 - 3 - 2 - 1 WDTIF Address: 97h 0 Reset 00H WDTIF 看门狗中断旗标位 10.1. 优先权配置 所有中断来源相组合于以下群组中: Table 10-2: 优先权群组 群组 外部中断 0 定时器 0 中断 外部中断 1 看门狗中断 定时器 1 中断 串行口 0 中断 定时器 2 中断 通过对SFRs中的IP0或IP1置位或清零,每一组中断都可被独自程序设计为四个优先级中的一个,如要求相同的优先级被同 时接收,一内部顺序将依次确定哪个请求被优先服务. Mnemonic: IP0 7 6 - 5 IP0.5 4 IP0.4 3 IP0.3 2 IP0.2 1 IP0.1 Address: A9h 0 Reset IP0.0 00h Mnemonic: IP1 7 6 - 5 IP1.5 4 IP1.4 3 IP1.3 2 IP1.2 1 IP1.1 Address: B9h 0 Reset IP1.0 00h IP1.x 0 0 1 1 Bit IP1.0, IP0.0 IP1.1, IP0.1 IP1.2, IP0.2 IP1.3, IP0.3 IP1.4, IP0.4 IP1.5, IP0.5 Table 10-3: 优先权层级 IP0.x 优先权层级 0 1 0 1 Level0 (最低) Level1 Level2 Level3 (最高) Table 10-4: 优先权层级群组 群组 外部中断 0 定时器 0 中断 外部中断 1 定时器 1 中断 串行口 0 中断 定时器 2 中断 看门狗中断 - 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 48 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Table 10-5: 中断轮询顺序 中断源 顺序 外部中断0 看门狗中断 外部中断1 轮询顺序 定时器0中断 定时器1中断 串行口0中断 定时器2中断 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 49 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 11. 电源管理单元 电源管理单元提供两种电源管理模式,即IDLE(待机/空闲)和STOP(停止),并为用户提供省电功能。 Mnemonic: PCON 7 6 SMOD - 5 - 4 - 3 - 2 - 1 STOP Address: 87h 0 Reset IDLE 40h STOP: STOP 模式控制位。设置此位将运行 STOP 模式, STOP 位总是读为 0. IDLE: IDIE 模式控制位。设置此位将运行 IDLE 模式, IDLE 位总是读为 0 11.1. 待机模式(空闲模式) 使用IDLE(待机模式(空闲模式))模式可通过对PCON寄存器的IDLE位置位。空闲模式停止MCU的时钟源,但外部的时钟 源依旧保持,由于此时CPU不工作,电源功耗将被降低。当任何一中断信号或者一复位信号时,CPU将退出待机模式(空 闲模式)。 11.2. 停止模式 使用STOP(停止模式)模式可通过对PCON寄存器的STOP位置位。在此模式中,所有的中断源将全部被关闭,CPU将从 一个无时钟的中断(外部中断0/1)或看门狗中断或者一个重置(看门狗及低压重置)条件下退出该模式,内部产生的中断 (定时器,串行端口... ),由于它们需要时钟源而会没有任何动作。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 50 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 12. LVR–低压复位 Mnemonic: LVC 7 6 5 LVREN 4 - 3 - 2 - 1 - Min 1.9 Typ 2.1 Address: E6h 0 Reset 20H LVREN 使能低电压复位元功能. LVREN = 0 : 禁能低电压检测复位元功能. LVREN = 1 : 使能低电压检测复位元功能. 低电压复位电位: Symbol VLVR Parameter 低电压复位电位 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 51 Max 2.3 Units V Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 13. 在系统程序设计(Internal ISP) SM59R02G1 可通过内部硬件电路产生 flash 控制讯号.用户利用 flash 控制寄存器,flash 地址寄存器和 flash 数据寄存器在不 需要将 SM59R02G1 移出系统的情况下实现 ISP 功能. SM59R02G1 提供了可以实现 flash 程序设计/芯片擦除/页擦除/保护 功能的 flash 控制讯号.使用者需要去设计和使用任何 SM59R02G1 可以输入数据的接口,然后利用 ISP 服务程序去实现 flash 的程序设计/芯片擦除/页擦除/保护功能. 13.1. ISP 服务程序 ISP 服务程序是由用户自行开发并放置于 ISP 服务程序区的韧件. 用户可依需求决定 ISP 服务程序的大小. 另外用户需 将 ISP 服务程序刻录至 SM59R02G1 芯片中才可使用 ISP 功能. 由于 ISP 服务程序是由用户自行开发, 它需包括 flash 数据寄存器的刻录及 SM59R02G1 芯片与上位机的通讯协议. 举 例来说, 使用者使用 SM59R02G1 芯片上之 UART 接口与上位机作数据之传送及接收,则 SM59R02G1 芯片上之 ISP 服务程序内需有波特率设定,为避免数据传输错误需有数据总合检查或同位检查或其他错误检查机制. 于正常动作模式或空闲模式可启动 ISP 服务程序,于停止模式则不行. 13.2. 锁定位(N) 锁定位 N 有两个功能:一是配置服务程序的大小,另一个则是通过 flash 擦除功能锁定 ISP 服务程序的空间. ISP 服务程序地址位从$1C00 到$1FFF.它可被分为 N*256 字节(N=0-4).当 N 为 0 时没有 ISP 功能.所有的 8k flash 都 被用来做程序存储.当 N 为 1 时,ISP 服务程序占用 256 字节,剩余的 7.75k flash 可被用做程序存储.ISP 服务程序的最大 空间为 1KB(当 N 为 4 时).在这样的配置下,可用的程序存储空间为 7KB. 在 N 定下来后, SM59R02G1 会从上往下(从最顶端到地址$1FFF)保存 ISP 服务程序空间.ISP 服务程序的开始地址位于 $1x00(x 为任意数字,以 N 为准,如表 13-1 所示) 锁定位 N 功能不同于 flash 保护功能,flash 擦除功能可以擦除除 ISP 服务程序空间外的所有 flash 内存.如 flash 没有被 保护,ISP 服务程序的内容一直可被读.如 flash 被保护,所有的 flash 程序空间包括 ISP 服务程序空间不能被读. Table 13.1 ISP code area. N ISP service program address 0 No ISP service program 1 256 bytes ($FF00h ~ $FFFFh) 2 512 bytes ($FE00h ~ $FFFFh) 3 768 bytes ($FD00h ~ $FFFFh) 4 1.0 K bytes ($FC00h ~ $FFFFh) ISP 服务程序配置于 N*256 byte (N= 0 ~ 4) 13.3. 对 ISP 服务程序程序设计 在锁定位 N 被设置并 ISP 服务程序被程序设计后,ISP 服务程序内存被自动的保护(锁定).锁定位 N 有它自己的程序设计 /擦除 次数.这不同于 flash 内存的程序设计/擦除次数.因此,被锁定的 ISP 服务程序不可被 flash 擦除功能所擦除.如客户 需要擦除锁定的 ISP 服务程序,他只可以通过烧写器实现.当 SM59R02G1 在系统时,客户不可改变 ISP 服务程序. 13.4. 启动 ISP 服务程序 要启动 ISP 服务程序就是要在 ISP 服务程序的开始地址装载程序计数(PC)并执行它.有四种实现的方法: (1) 空复位.用首地址为空的硬件复位会在 ISP 服务程序的开始地址装载 PC.硬件复位包括内部(电源或重启) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 52 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 和外部重置埠复位. (2) 执行 jump 指令可在 ISP 服务程序的开始地址装载 PC (3) 通过硬件设置进入 ISP 服务程序.用户可通过设置当硬件复位时,P2.6,P2.7’为低’或 P4.3’为低’, SM59R02G1 会强行进入 ISP 服务程序.硬件复位包括内部(电源或重启)和外部键盘复位.在应用系统设 计时,用户因该对 P2.6,P2.7 或 P4.3 在复位时间内防止 SM59R02G1 进入 ISP 服务程序. (4) 通过硬件设置进入 ISP 服务程序.P3.0 在硬件复位时会侦测到 2 个时钟讯号. 硬件复位包括内部(电源 或重启)和外部键盘复位 在硬件复位周期内, 硬件可以侦测 P2.6/P2.7/P4.3/P3.0 状态.如果他们满足了上面的其中一个条件,芯片将会自动跳转 到 ISP 模式.在 ISP 服务程序被执行后,用户需要对 SM59R02G1 进行复位,通过硬件复位或 WDT,或是’JUMP’至地址 $0000 来实现重启程式. 为了使用者的不同应用情况,这里有 8 种不同的进入机制.这个进入方法可以在烧路器或 ISP 中选取. (1) (2) (3) (4) (5) (6) (7) (8) 首地址为空例如$0000 = 0xFF. 且由内部重置信号触发. 首地址为空例如$0000 = 0xFF. 且由外部重置信号触发. P2.6 = 0 & P2.7 = 0. 且由内部重置信号触发. P2.6 = 0 & P2.7 = 0. 且由外部重置信号触发. P4.3 = 0. 且由内部重置信号触发. P4.3 = 0. 且由外部重置信号触发. P3.0 输入 2 个时钟. 且由内部重置信号触发. P3.0 输入 2 个时钟. 且由外部重置信号触发. 13.5. ISP 寄存器 – TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC Mnemonic TAKEY IFCON ISPFAH ISPFAL ISPFD ISPFC Description Direct Time Access Key register Interface Control register ISP Flash Address - High register ISP Flash Address - Low register ISP Flash Data register ISP Flash Control register Mnemonic: TAKEY 7 6 Bit 7 Bit 6 Bit 5 ISP function F7h Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET TAKEY [7:0] 8Fh ITS CDPR - E1h - - - - 00H ALEC[1:0] - ISPE ISPFAH [4:0] 00H FFH E2h ISPFAL [7:0] FFH E3h ISPFD [7:0] FFH E4h 5 EMF1 EMF2 4 3 TAKEY [7:0] EMF3 EMF4 - 2 1 ISPF.2 0 ISPF.1 ISPF.0 00H Address: F7H Reset 00H ISP 使能位(ISPE)默认为只读,软件必须连续的对 TAKEY 寄存器写三个特定值 55h,AAH,和 5Ah,使 ISPE 位可写. 这是: MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 53 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 Mnemonic: IFCON 7 6 ITS CDPR 5 - 4 - 3 2 ALEC[1:0] Address: 8FH 0 Reset ISPE 00H 1 - 位 0(ISPE) of IFCON 是 ISP 使能位,用户可通过设置 ISPE 位为 1 使能 SM59R02G1 的全部 ISP 功能,通过设置 ISPE 为 0 来禁止全部 ISP 功能.ISPE 的作用象一个加密匙.用户可禁止所有的 ISP 功能以保护软件程序不被意外 的擦除.ISP 寄存器 ISPFAH,ISPFAL,ISPFD,与 ISPFC 默认为只读.软件必须将 ISPE 位设为 1 以使上述 4 个寄存 器为可写. Mnemonic: ISPFAH 7 6 - 5 - Address: E1H 4 3 2 1 0 Reset ISPFAH4 ISPFAH3 ISPFAH2 ISPFAH1 ISPFAH0 FFH ISPFAH [4:0]: 使用ISP功能之地址高字节 Mnemonic: ISPFAL 7 6 ISPFAL7 ISPFAL6 5 ISPFAL5 4 ISPFAL4 3 ISPFAL3 2 ISPFAL2 1 ISPFAL1 Address: E2H 0 Reset ISPFAL0 FFH ISPFAL [7:0]: 使用ISP功能之地址低字节 ISPFAH 与 ISPFAL 提供了 13 位 flash 内存地址用做 ISP 功能.这个 flash 内存地址不应该包括 ISP 服务程序空 间地址.若 ISPFAH & ISPFAL 寄存器控制的 flash 内存地址覆盖了 ISP 服务程序空间的地址.这个 flash 程序/页擦 除等 ISP 功能的执行将会无效. Mnemonic: ISPFD 7 6 ISPFD7 ISPFD6 5 ISPFD5 4 ISPFD4 3 ISPFD3 2 ISPFD2 1 ISPFD1 Address: E3H 0 Reset ISPFD0 FFH ISPFD [7:0]: 使用ISP功能之数值. The ISPFD provide the 8-bit data register for ISP function. Mnemonic: ISPFC 7 6 5 EMF1 EMF2 EMF3 4 EMF4 EMF1: 进入机制 (1) 标志位, EMF2: 进入机制 (2) 标志位, EMF3: 进入机制 (3) 标志位, EMF4: 进入机制 (4) 标志位, ISPF [2:0]: ISP功能选择位. ISPF[2:0] 000 001 010 011 100 101 110 111 闪存一页有256字节 3 - 2 ISPF[2] 1 ISPF[1] Address: E4H 0 Reset ISPF[0] 00H 由复位信号清除. (仅读) 由复位信号清除. (仅读) 由复位信号清除. (仅读) 由复位信号清除. (仅读) ISP function Byte program Chip protect Page erase Chip erase Write option Read option Erase option reserved 可设定功能选择位如内部复位时间选择(于1.4.1节描述)、时钟源来源选择 (于1.5节描述)、 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 54 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 P4[4:7] 功能选择(于第5章描述)、看门狗功能启动位(于第9章描述)、或 ISP 进入机制选 择(于第13章描述)。 只能读取功能选择位于芯片被加密后. 选择的 ISP 功能在软件对 ISPFC 寄存器写入数据时将会执行一次. 要实现字节程序设计/页擦除 ISP 功能,用户需要在开始时指定 flash 地址.在实现页擦除功能时,SM59R02G1 将除 ISPFAH 与 ISPFAL 寄存器中显示地址所在的整页. 范例. 闪存地址: $XYMN 将对地址 $XY00 to $XYFF 执行页抹除 要实现芯片擦除 ISP 功能, SM59R02G1 将擦除除 ISP 服务程序外的所有 flash 程序内存.要实现芯片保护 ISP 功 能, SM59R02G1 flash 内容将被读为#00H. 范例:将对地址$1005H 执行字节写,写入#22H MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah MOV IFCON, #01H MOV ISPFAH, #10H MOV ISPFAL, #05H MOV ISPFD, #22H MOV ISPFC, #00H ; ; ; ; ; ; 启动 ISPE 可写入属性 启动 SM59R02G1 ISP 功能 设定闪存高字节地址,10H 设定闪存低字节地址,05H 设定将写入闪存之数据,数据= 22H 开始将写入闪存之数据#22H 写入地址$1005H 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 55 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 工作环境 Symbol Description Min. Typ. Max. Unit. Remarks TA Operating temperature -40 25 85 ℃ Ambient temperature under bias VDD Supply voltage 2.7 5.5 V DC 电气特性 TA = -40℃ to 85℃, VCC = 5.0V Symbol Parameter Valid VIL1 Input Low-voltage Port 0,1,2,3,4,5 VIL2 Input Low-voltage RES, XTAL1 VIH1 Input High-voltage Port 0,1,2,3,4,5 VIH2 Input High-voltage RES, XTAL1 VOL Output Low-voltage Port 0,1,2,3,4,5 Output High-voltage (1) Port 0,1,2,3,4,5 using Strong Pull-up VOH1 VOH2 IIL ITL ILI RRST CIO ICC Notes: Output High-voltage (2) using Weak Pull-up Logic 0 Input Current Logical Transition Current Input Leakage Current Reset Pull-down Resistor Pin Capacitance Port 0,1,2,3,4,5 Min Max Units -0.5 0.8 V 0 0.8 V 2.0 VCC + 0.5 V 70%Vcc VCC + 0.5 V 0.4 Conditions Vcc=5V V IOL=4.9mA 90% VCC V IOH= -4.6mA 2.4 V IOH= -250uA 75% VCC V IOH= -162uA 90% VCC V IOH= -73uA Port 0,1,2,3,4,5 -75 uA Vin= 0.45V Port 0,1,2,3,4,5 -650 uA Vin= 2.0V Port 0,1,2,3,4,5 ±10 uA 0.45V<Vin<Vcc 300 kΩ 10 pF 12 mA 11 mA 5 uA RES Power Supply Current VDD 50 Vcc=5V Freq= 1MHz, Ta= 25℃ Active mode, 12MHz VCC =5V 25 ℃ Idle mode, 12MHz VCC =5V 25 ℃ Power down mode VCC =5V 25 ℃ 1. Port in Push-Pull Output Mode 2. Port in Quasi-Bidirectional Mode 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 56 Ver.G SM59R02G1 09/2015 SM59R02G1 內嵌 8KB 具有 ISP 功能的閃存 和 256B RAM 的 8 位控制器 TA = -40℃ to 85℃, VCC = 3.0V Symbol Parameter Valid VIL1 Input Low-voltage Port 0,1,2,3,4,5 VIL2 Input Low-voltage RES, XTAL1 VIH1 Input High-voltage Port 0,1,2,3,4,5 VIH2 Input High-voltage RES, XTAL1 VOL Output Low-voltage Port 0,1,2,3,4,5 Output High-voltage (1) Port 0,1,2,3,4,5 using Strong Pull-up VOH1 VOH2 IIL ITL ILI RRST CIO ICC Notes: Output High-voltage (2) using Weak Pull-up Logic 0 Input Current Logical Transition Current Input Leakage Current Reset Pull-down Resistor Pin Capacitance Min Max Units -0.5 0.8 V 0 0.8 V 2.0 VCC + 0.5 V 70%Vcc VCC + 0.5 V 0.4 Conditions Vcc=3.0V V IOL=3.2mA 90% VCC V IOH= -2.3mA 2.4 V IOH= -77uA 90% VCC V IOH= -33uA Vcc=3.0V Port 0,1,2,3,4,5 Port 0,1,2,3,4,5 -75 uA Vin= 0.45V Port 0,1,2,3,4,5 -650 uA Vin=1.5V Port 0,1,2,3,4,5 ±10 uA 0.45V<Vin<Vcc 300 kΩ 10 pF 11 mA 10 mA 4 uA RES Power Supply Current VDD 50 Freq= 1MHz, Ta= 25℃ Active mode ,12MHz VCC = 3.0 V 25 ℃ Idle mode, 12MHz VCC =3.0V 25 ℃ Power down mode VCC =3.0V 25 ℃ 1. Port in Push-Pull Output Mode 2. Port in Quasi-Bidirectional Mode 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M062 57 Ver.G SM59R02G1 09/2015