SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Features 产品目录 SM59R04A2L25, SM59R04A2C25 SM59R03A2L25, SM59R03A2C25 SM59R02A2L25, SM59R02A2C25 描述 SM59R04A2是1T(1 时钟周期)的8-bit 的单片 机.它有专为程序而内嵌的16k 字节的闪存 (flash),并可执行完全兼容MCS-51 的所有 ASM51 指令。 SM59R04A2 有1K 的片上SRAM,, 44个GPIOs (LQFP 48) 多串行接口以及如以下所描述的多种 外部资源,它可通过编程器进行编程,其片上ICE 功能为客户在开发初期提供了方便。 SM59R04A2 的高性能能在短时间内完成复杂 的动作, 大约有1/3 的指令是1T, 1T,其平均速 度是传统8051 的8 倍,是所有1T 51 系列中最 快的,其良好的EMI 和ESD 性能对在许多应用 中都有很好的帮助。 订货信息 SM59R04A2ihhkL yymmv i: 工艺标志 {L = 2.7V ~ 3.6V, C = 4.5V ~ 5.5V} hh: 工作时钟,单位为 MHz {25} k: 封装形式后缀{as table below } L: 无铅标志 {无文字即含铅,”P” 即无铅 } yy: 年 mm: 月 v: 版本标志{ A, B,…} l l l l l l l l l l l l l l l l l l l l l l l l l l l Postfix P J Q V Package 40L PDIP 44L PLCC 44L QFP 48L LQFP Pin / Pad Configuration Page 2 Page 3 Page 4 Page 5 l l l 工作电压: 4.5V ~ 5.5V or 2.7V ~ 3.6V 高速 1T 架构,最高可达 25MHZ 1T/2T 模式可即时选择 指令设置兼容 MCS-51 内置 OSC, 范围为 1MHz~24MHz 16K 字节的片上程序存储器 外扩 RAM 地址最大可达 64K 字节,为外扩 RAM 存取用的标准 12T 接口 256 字节的标准的 8052 RAM,1K 字节的带有 使能功能的片上外扩 RAM 双 16-bit 数据指针 (DPTR0&DPTR1) 两个全双工通信的串行接口(UART0 &UART1), 三个 16-bit 的定时器/计数器(计时器 0,1,2) 36 GPIOs(PDIP 40),40 GPIOs(PLCC 44/QFP 44),44 GPIOs(LQFP 48) GPIOs 可选择四种型态(准双向口、推挽、开 漏、只输入),默认准双向口(上拉) 具有两级优先权的外部中断 0,1 可编程的看门狗定时器(WDT) 一个 IIC 接口(主/从机模式) 一个 SPI 接口(主/从机模式) 4 路脉宽调制 4 路 16bit 比较/抓捕/装载功能 8 路 10bit 模拟数字转换(ADC) ISP/IAP/ICP 功能 ISP 服务程序存储空间设置为 N*256 byte (N=0 to 16). EEPROM 功能 片上在线调试功能 ALE output select. 快速乘除法器(MDU):16*16 32/16, 16/16, 32-bit L/R 转换以及标准的 32bit normalization 键盘接口(KBI) on port 0 or port 2 (default) for 8 个更多的中断. LVI/LVR 低压禁止/低压复位(LVR deglitch 500ns) 增强用户代码保护 电源管理单元空闲及掉电模式 Contact SyncMOS : www.syncmos.com.tw 6F, No.10-2 Li- Hsin 1st Road , SBIP, Hsinchu, Taiwan TEL: 886-3-567-1820 FAX: 886-3-567-1891 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 1 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 封装图 40 VDD CC1/T2EX/ADC1/P1.1 2 39 P0.0/AD0/KBI0 RXD1/ADC2/P1.2 3 38 P0.1/AD1/KBI1 CC2/TXD1/ADC3/P1.3 4 37 P0.2/AD2/KBI2 CC3/SS/ADC4/P1.4 5 36 P0.3/AD3/KBI3 MOSI/ADC5/P1.5 6 35 P0.4/AD4/KBI4 IIC_SCL/MISO/ADC6/P1.6 7 34 P0.5/AD5/KBI5 IIC_SDA/SPI_CLK/ADC7/P1.7 8 33 P0.6/AD6/KBI6 P4.7/RESET 9 32 P0.7/AD7/KBI7 RXD0/P3.0 10 31 OCI_SDA/P4.6 TXD0/P3.1 11 30 ALE/P4.5 INT0/P3.2 12 29 OCI_SCL/P4.4 INT1/P3.3 13 28 P2.7/A15/KBI7 T0/P3.4 14 27 P2.6/A14/KBI6 T1/P3.5 15 26 P2.5/A13/KBI5 WR/P3.6 16 25 P2.4/A12/KBI4 RD/P3.7 17 24 P2.3/A11/KBI3 XTAL2 18 23 P2.2/A10/KBI2 XTAL1 19 22 P2.1/A9/KBI1 VSS 20 21 P2.0/A8/KBI0 SyncMOS 1 SM59R04A2ihhPP yymmv (40L PDIP Top View) CC0/T2/ADC0/P1.0 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 2 Ver.A SM59R04A2 11/2009 35 36 37 38 39 P0.3/AD3/KBI3 KBI4/A12/P2.4 34 P0.2/AD2/KBI2 KBI3/A11/P2.3 33 P0.1/AD1/KBI1 KBI2/A10/P2.2 32 P0.0/AD0/KBI0 P4.2/PWM2/CC2/RXD1/MISO P1.0/ADC0/T2/CC0 KBI1/A9/P2.1 31 7 VDD 30 8 KBI0/A8/P2.0 SS/IIC_SCL/CC0/PWM0/P4.0 VSS 29 9 P1.1/ADC1/T2EX/CC1 10 XTAL1 11 P1.2/ADC2/RXD1 12 XTAL2 13 P1.3/ADC3/TXD1/CC2 14 RD/P3.7 15 P1.4/ADC4/SS/CC3 16 WR/P3.6 17 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 3 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 P0.4/AD4/KBI4 P0.5/AD5/KBI5 P0.6/AD6/KBI6 P0.7/AD7/KBI7 OCI_SDA/P4.6 P4.1/PWM1/CC1/IIC_SDA/MOSI ALE/P4.5 OCI_SCL/P4.4 P2.7/A15/KBI7 P2.6/A14/KBI6 P2.5/A13/KBI5 33 32 31 30 29 28 27 26 25 24 23 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 KBI3/AD3/P0.3 34 22 P2.4/A12/KBI4 KBI2/AD2/P0.2 35 21 P2.3/A11/KBI3 KBI1/AD1/P0.1 36 20 P2.2/A10/KBI2 KBI0/AD0/P0.0 37 19 P2.1/A9/KBI1 VDD 38 18 P2.0/A8/KBI0 MISO/RXD1/CC2/PWM2/P4.2 39 17 P4.0/PWM0/CC0/IIC_SCL/SS CC0/T2/ADC0/P1.0 40 16 VSS CC1/T2EX/ADC1/P1.1 41 15 XTAL1 RXD1/ADC2/P1.2 42 14 XTAL2 CC2/TXD1/ADC3/P1.3 43 13 P3.7/RD CC3/SS/ADC4/P1.4 44 12 P3.6/WR SyncMOS 1 2 3 4 5 6 7 8 9 10 11 MOSI/ADC5/P1.5 IIC_SCL/MISO/ADC6/P1.6 IIC_SDA/SPI_CLK/ADC7/P1.7 P4.7/RESET RXD0/P3.0 SPI_CLK/TXD1/CC3/PWM3/P4.3 TXD0/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 T1/P3.5 SM59R04A2 ihhQP yymmv (44L QFP Top View) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 4 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 P0.4/AD4/KBI4 P0.5/AD5/KBI5 P0.6/AD6/KBI6 P0.7/AD7/KBI7 OCI_SDA/P4.6 P4.1/PWM1/CC1/IIC_SDA/MOSI ALE/P4.5 OCI_SCL/P4.4 P2.7/A15/KBI7 P2.6/A14/KBI6 P2.5/A13/KBI5 P5.1 36 35 34 33 32 31 30 29 28 27 26 25 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 KBI3/AD3/P0.3 37 24 P5.0 KBI2/AD2/P0.2 38 23 P2.4/A12/KBI4 KBI1/AD1/P0.1 39 22 P2.3/A11/KBI3 KBI0/AD0/P0.0 40 21 P2.2/A10/KBI2 VDD 41 20 P2.1/A9/KBI1 MISO/RXD1/CC2/PWM2/P4.2 42 19 P2.0/A8/KBI0 CC0/T2/ADC0/P1.0 43 18 P4.0/PWM0/CC0/IIC_SCL/SS CC1/T2EX/ADC1/P1.1 44 17 VSS RXD1/ADC2/P1.2 45 16 XTAL1 CC2/TXD1/ADC3/P1.3 46 15 XTAL2 CC3/SS/ADC4/P1.4 47 14 P3.7/RD P5.2 48 13 P3.6/WR SyncMOS 1 2 3 4 5 6 7 8 9 10 11 12 P5.3 MOSI/ADC5/P1.5 IIC_SCL/MISO/ADC6/P1.6 IIC_SDA/SPI_CLK/ADC7/P1.7 P4.7/RESET RXD0/P3.0 SPI_CLK/TXD1/CC3/PWM3/P4.3 TXD0/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 T1/P3.5 SM59R04A2 IhhVP yymmv (48L LQFP Top View) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 5 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 SPI_MISO SPI_MOSI SPI_CLK SPI_SS IIC_SCL IIC_SDA ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 PWM0 PWM1 PWM2 PWM3 OCI_SDA OCI_SCL RXD1 TXD1 RXD0 TXD0 系统方框图 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 6 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 管脚描述 40L PDIP 44L PLCC 44L QFP 48L LQFP 1 39 42 1 2 40 43 2 3 41 44 3 4 42 45 4 5 43 46 5 6 44 47 Symbol P4.2/PWM2/CC2/ RXD1/MISO P1.0/ADC0/T2/CC 0 P1.1/ADC1/T2EX/ CC1 P1.2/ADC2/RXD1 48 1 P1.3/ADC3/TXD1/ CC2 P1.4/ADC4/SS/CC 3 P5.2 P5.3 P1.5/ADC5/MOSI I/O I/O I/O I/O I/O I/O I/O I/O 6 7 1 2 7 8 2 3 8 9 3 4 9 10 10 11 4 5 5 6 12 6 7 P4.3/PWM3/CC3/T XD1/SPI_CLK I/O 11 13 7 8 P3.1/TXD0 I/O 12 13 14 15 16 17 18 19 20 14 15 16 17 18 19 20 21 22 8 9 10 11 12 13 14 15 16 9 10 11 12 13 14 15 16 17 I/O I/O 23 17 18 24 25 26 27 28 18 19 20 21 22 19 20 21 22 23 24 P3.2/#INT0 P3.3/#INT1 P3.4/T0 P3.5/T1 P3.6/#WR P3.7/#RD XTAL2 XTAL1 VSS P4.0/PWM0/CC0/II C_SCL/SS P2.0 /A8/KBI0 P2.1 /A9/KBI1 P2.2 /A10/KBI2 P2.3 /A11/KBI3 P2.4 /A12/KBI4 P5.0 21 22 23 24 25 P1.6/ADC6/MISO/I IC_SCL P1.7/ADC7/SPI_C LK/IIC_SDA RESET/P4.7 P3.0/RXD0 Description I/O I/O I/O I/O I/O I/O I/O I/O I/O O I I/O I/O I/O I/O I/O I/O I/O P4 口的位 2 & 宽脉调制通道 2&计时器 2 及抓捕/比较单元通 道 2&串行接口通道 1 & SPI 接口串行数据线主输入或从输出 口 P1 口的位 0 & 模数转换通道 0 & 计时器 2 外部输入时钟& 计 时器 2 及抓捕/比较单元通道 0 P1 口的位 1 &模数转换通道 1 &计时器 2 及捕获触发器&计时 器 2 及抓捕/比较单元通道 1 P1 口的位 2 &模数转换通道 2 &串行接口通道 1 receive/transmit data P1 口的位 3 &模数转换通道 3 &串行接口通道 1 transmit data or receive clock in mode 0 &计时器 2 及抓捕/比较单元通道 2 P1 口的位 4 &模数转换通道 4 & SPI 接口从机跳线&计时器 2 及抓捕/比较单元通道 3 P5 口的位 2 P5 口的位 3 P1 口的位 5 &模数转换通道 5 & SPI 接口串行数据线主输出 或从输入口 P1 口的位 6 &模数转换通道 6 & SPI 接口串行数据线主输入 或从输出口& IIC 串行时钟线 P1 口的位 7 &模数转换通道 7 & SPI 接口时钟& IIC 串行数据 线 复位& P4 口的位 7 P3 口的位 0 &串行接口通道 0 receive/transmit data P4 口的位 3 &宽脉调制通道 3&计时器 2 及抓捕/比较单元通 道 3&串行接口通道 1 transmit data or receive clock in mode 0 & SPI 接口时钟 P3 口的位 1 &串行接口通道 0 transmit data or receive clock in mode 0 P3 口的位 2 &外部中断 0 P3 口的位 3 &外部中断 1 P3 口的位 4 &计时器 0 部输入 P3 口的位 5 &计时器 1 外部输出 P3 口的位 6 &外部存储器写入信号 P3 口的位 7 &外部存储器读取信号 晶振输出 晶振输入 供电电源地 P4 口的位 0 &宽脉调制通道 0 &计时器 2 及抓捕/比较单元通 道 0 & IIC 串行时钟线& SPI 接口从机跳线 P2 口的位 0 &外部存储器地址的位 8&键盘接口 interrupt 0 P2 口的位 1 &外部存储器地址的位 9&键盘接口 interrupt 1 P2 口的位 2 &外部存储器地址的位 10&键盘接口 interrupt 2 P2 口的位 3 &外部存储器地址的位 11&键盘接口 interrupt 3 P2 口的位 4 &外部存储器地址的位 12&键盘接口 interrupt 4 P5 口的位 0 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 7 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 40L PDIP 29 30 31 32 33 23 24 25 26 27 48L LQFP 25 26 27 28 29 30 34 28 31 P4.1/PWM1/CC1/II C_SDA/MOSI I/O 31 35 29 32 OCI_SDA/P4.6 I/O 32 36 30 33 P0.7/AD7/KBI7 I/O 33 37 31 34 P0.6/AD6/KBI6 I/O 34 38 32 35 P0.5/AD5/KBI5 I/O 35 39 33 36 P0.4/AD4/KBI4 I/O 36 40 34 37 P0.3/AD3/KBI3 I/O 37 41 35 38 P0.2/AD2/KBI2 I/O 38 42 36 39 P0.1/AD1/KBI1 I/O 39 43 37 40 P0.0/AD0/KBI0 I/O 40 44 38 41 VDD 26 27 28 29 30 44L PLCC 44L QFP Symbol I/O Description P5.1 P2.5 /A13/KBI5 P2.6 /A14/KBI6 P2.7 /A15/KBI7 OCI_SCL/P4.4 ALE/P4.5 I/O I/O I/O I/O I/O I/O P5 口的位 1 P2 口的位 5 &外部存储器地址的位 13 键盘接口 interrupt 5 P2 口的位 6 &外部存储器地址的位 14&键盘接口 interrupt 6 P2 口的位 7 &外部存储器地址的位 15 键盘接口 interrupt 7 ICE 和 ICP 功能的时钟输入& P4 口的位 4 地址锁存使能& P4 口的位 5 P4 口的位 1 &宽脉调制通道 1 &计时器 2 及抓捕/比较单元通 道 1 & IIC 串行数据线& SPI 接口串行数据线主输出或从输 入口 ICE 和 ICP 功能的指令及数据输入& P4 口的位 6 P0 口的位 7 &外部存储器地址/数据的位 7&键盘接口 interrupt 7 P0 口的位 6 &外部存储器地址/数据的位 6 &键盘接口 interrupt 6 P0 口的位 5 &外部存储器地址/数据的位 5 &键盘接口 interrupt 5 P0 口的位 4 &外部存储器地址/数据的位 4 &键盘接口 interrupt 4 P0 口的位 3 &外部存储器地址/数据的位 3 &键盘接口 interrupt 3 P0 口的位 2 &外部存储器地址/数据的位 2 &键盘接口 interrupt 2 P0 口的位 1 &外部存储器地址/数据的位 1 &键盘接口 interrupt 1 P0 口的位 0 &外部存储器地址/数据的位 0 &键盘接口 interrupt 0 数位电源电压 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 8 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 特殊功能寄存器(SFR) 特殊功能寄存器分布图如下所示: Hex\Bin F8 F0 E8 E0 D8 D0 C8 C0 B8 B0 A8 A0 98 90 88 80 Hex\Bin X000 X001 IICS B P4 ACC P5 PSW T2CON IRCON IEN1 P3 IEN0 P2 S0CON P1 TCON P0 IICCTL SPIC1 MD0 ISPFAH X000 X010 X011 X100 X101 X110 X111 IICA1 IICA2 IICRWD IICS2 SPIC2 SPITXD SPIRXD SPIS TAKEY MD1 MD2 MD3 MD4 MD5 ARCON ISPFAL ISPFD ISPFC LVC SWRES P3M0 P3M1 P4M0 P4M1 P5M0 P5M1 P0M0 P0M1 P1M0 P1M1 P2M0 P2M1 CCCON CRCL CRCH TL2 TH2 PWMMDH PWMMDL CCEN CCL1 CCH1 CCL2 CCH2 CCL3 CCH3 IP1 S0RELH S1RELH PWMD0H PWMD0L PWMD1H PWMD1L PWMD2H PWMD2L PWMD3H PWMD3L PWMC WDTC WDTK IP0 S0RELL ADCC1 ADCC2 ADCDH ADCDL ADCCS S0BUF AUX TMOD SP IEN2 TL0 DPL S1CON KBLS TL1 DPH S1BUF KBE TH0 DPL1 S1RELL KBF TH1 DPH1 RCON IFCON PCON X001 X010 X011 X100 X101 X110 X111 KBD Bin/Hex FF F7 EF E7 DF D7 CF C7 BF B7 AF A7 9F 97 8F 87 Bin/Hex 注:特殊功能寄存器的重置值在 SM59R04A2 中有所描述。 Register P0 SP DPL DPH DPL1 DPH1 RCON PCON TCON TMOD TL0 TL1 TH0 TH1 IFCON P1 Location 80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Fh 90h Reset value FFh 07h 00h 00h 00h 00h 00h 40h 00h 00h 00h 00h 00h 00h 00h FFh Description Port 0 Stack Pointer Data Pointer 0 low byte Data Pointer 0 high byte Data Pointer 1 low byte Data Pointer 1 high byte Internal RAM control register Power Control Timer/Counter Control Timer Mode Control Timer 0, low byte Timer 1, low byte Timer 0, high byte Timer 1, high byte Interface control register Port 1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 9 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Register AUX KBLS KBE KBF KBD S0CON S0BUF IEN2 S1CON S1BUF S1RELL P2 IEN0 IP0 S0RELL ADCC1 ADCC2 ADCDH ADCDL ADCCS P3 PWMD2H PWMD2L PWMD3H PWMD3L PWMC WDTC WDTK IEN1 IP1 S0RELH S1RELH PWMD0H PWMD0L PWMD1H PWMD1L IRCON CCEN CCL1 CCH1 CCL2 Location 91h 93h 94h 95h 96h 98h 99h 9Ah 9Bh 9Ch 9Dh A0h A8h A9h AAh ABh ACh ADh AEh AFh B0h B1h B2h B3h B4h B5h B6h B7h B8h B9h BAh BBh BCh BDh BEh BFh C0h C1h C2h C3h C4h Reset value 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h FFh 00h 00h 00h 00h 00h 00h 00h 00h FFh 00h 00h 00h 00h 00h 04h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h Description Auxiliary register Keyboard level selector Register Keyboard input enable Register Keyboard interrupt flag Register Keyboard interface De-bounce control register Serial Port 0, Control Register Serial Port 0, Data Buffer Interrupt Enable Register 2 Serial Port 1, Control Register Serial Port 1, Data Buffer Serial Port 1, Reload Register, low byte Port 2 Interrupt Enable Register 0 Interrupt Priority Register 0 Serial Port 0, Reload Register, low byte ADC Control 1 Register ADC Control 2 Register ADC data high byte ADC data low byte ADC clock select Port 3 PWM channel 2 data high byte PWM channel 2 data low byte PWM channel 3 data high byte PWM channel 3 data low byte PWM control register Watchdog timer control register Watchdog timer refresh key. Interrupt Enable Register 1 Interrupt Priority Register 1 Serial Port 0, Reload Register, high byte Serial Port 1, Reload Register, high byte PWM channel 0 data high byte PWM channel 0 data low byte PWM channel 1 data high byte PWM channel 1 data low byte Interrupt Request Control Register Compare/Capture Enable Register Compare/Capture Register 1, low byte Compare/Capture Register 1, high byte Compare/Capture Register 2, low byte 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 10 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Register CCH2 CCL3 CCH3 T2CON CCCON CRCL CRCH TL2 TH2 PWMMDH PWMMDL PSW P0M0 P0M1 P1M0 P1M1 P2M0 P2M1 P5 P3M0 P3M1 P4M0 P4M1 P5M0 P5M1 ACC ISPFAH ISPFAL ISPFD ISPFC LVC SWRES P4 MD0 MD1 MD2 MD3 MD4 MD5 ARCON B Location C5h C6h C7h C8h C9h CAh CBh CCh CDh CEh CFh D0h D2h D3h D4h D5h D6h D7h D8h DAh DBh DCh DDh DEh DFh E0h E1h E2h E3h E4h E6h E7h E8h E9h EAh EBh ECh EDh EEh EFh F0h Reset value 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h FFh 00h 00h 00h 00h 00h 00h 00h 0Fh 00h 00h 00h 00h 00h 00h 00h FFh FFh FFh 00h 00h 00h FFh 00h 00h 00h 00h 00h 00h 00h 00h Description Compare/Capture Register 2, high byte Compare/Capture Register 3, low byte Compare/Capture Register 3, high byte Timer 2 Control Compare/Capture Control Compare/Reload/Capture Register, low byte Compare/Reload/Capture Register, high byte Timer 2, low byte Timer 2, high byte PWM Max Data Register, high byte. PWM Max Data Register, low byte. Program Status Word 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 5 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 Accumulator ISP Flash Address-High register ISP Flash Address-Low register ISP Flash Data register ISP Flash control register Low voltage control register Software Reset register Port 4 Multiplication/Division Register 0 Multiplication/Division Register 1 Multiplication/Division Register 2 Multiplication/Division Register 3 Multiplication/Division Register 4 Multiplication/Division Register 5 Arithmetic Control Register B Register 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 11 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Register SPIC1 SPIC2 SPITXD SPIRXD SPIS TAKEY IICS IICCTL IICA1 IICA2 IICRWD IICS2 Location F1h F2h F3h F4h F5h F7h F8h F9h FAh FBh FCh FDh Reset value 08h 00h 00h 00h 40h 00h 00h 04h A0h 60h 00h 00h Description SPI control register 1 SPI control register 2 SPI transmit data buffer SPI receive data buffer SPI status register Time Access Key register IIC status register IIC control register IIC channel 1 Address 1 register IIC channel 1 Address 2 register IIC channel 1 Read / Write Data buffer IIC status2 register 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 12 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 功能描述 1 总特征 SM59R04A2是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详细定义将在以下章 节给出. 1.1 嵌入式程序存储器 可通过编程器或在线编程(ISP)将程序加载到16K/8K/4K的嵌入式闪存体中,其高品质的闪存体具有 100K次的重复可擦写编程并记忆数据,如EEPROM。 1.2 IO 口 SM59R04A2有6个I/O ports: Port 0, Port 1, Port 2, Port 3, Port 4, and Port 5. Ports 0, 1, 2, 3, 4 是 8 位口 and Port 5是4位口. 四种型态: 准双向口(标准 8051输出口), 推挽, 开漏, 与仅为输入. 在章节5 中有详细说明. The OCI_SCL、ALE、OCI_SDA and RESET 可在烧写或用ISP时定义在P4.5、P4.6 and P4.7 . 所有的P0~P5口都可通过转化速率来降低EMI。另一种降低EMI的方式是在禁止ALE输出,可通过特殊 功能寄存器(SFR)来进行选择控制,在高静电环境且在人体接触模式中,其I/O口的ESD可达4KV, 可以保证SM59R04A2’S在高静电环境下的品质. 1.3 2T/1T 的选择 传统的52 系列单片机时钟周期是12T, 即12 个振荡器时钟为1 个机器周期. SM59R04A2为2T/1T的微 控制器,即机器周期为2个时钟周期或1个时钟周期。换句话说,执行一条指令可是2个时钟或一个时钟。 2T模式与1T模式的差异,请参考以下图表1-1. Fig. 1-1(a): The waveform of internal instruction signal in 2T mode Fig. 1-1(b): The waveform of internal instruction signal in 1T mode 缺省值为2T模式,在任何时候,如IFCON [7](地址为8Fh)被置位时,就可改变为1T的模式。在一个机 器周期内,并不是每条指令都能被执行的。所有指令的确切机器周期将在下一章节中给出. 1.4 复位 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 13 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 1.4.1 硬件复位功能 SM59R04A2 提供了内部复位电路.内部复位可以通过编程器或ISP设置. Internal Reset time 25ms (default) 200ms 100ms 50ms 16ms 8ms 4ms 1.4.2 软件复位功能 SM59R04A2 提供一种软件复位机制来实现整个芯片的复位.要实现软件复位, 硬件把3 个特殊值 55h,AAh 和5Ah按顺序写到TAKEY寄存器来使能软件复位寄存器(SWRES)可写.在软件复位寄存器获 得可写权后,硬件可以对SWRES寄存器写入FFh.硬件会用其他的硬件复位对复位讯号’OR’进行解码,软 件复位寄存器在软件复位过程的最后会进行自复位. Mnemonic TAKEY SWRES Description Bit 7 Direct Time Access Key register Software Reset register 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 1.4.3 Time Access Key register (TAKEY) Address: F7H Mnemonic: TAKEY 7 6 5 4 3 TAKEY [7:0] 2 1 0 Reset 00H 软件复位寄存器(SWRES) 默认为只读; 软件把 3 个特殊值按顺序写到 TAKEY 寄存 器来使能软件复位寄存器(SWRES)可写. 它们是 MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah 1.4.4 软件复位寄存器(SWRES) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 14 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic: SWRES 7 6 Address: E7H 5 4 3 SWRES [7:0] 2 1 0 Reset 00H SWRES [7:0]: Software reset register bit. These 8-bit is self-reset at the end of the reset procedure. SWRES [7:0] = FFh, software reset. SWRES [7:0] = 00h ~ FEh, MCU no action. 1.4.5 软件复位范例 MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah ; enable SWRES write attribute MOV SWRES, #FFh ; software reset MCU 1.5 时钟源 默认时钟来自于内部OSC下的的1MHZ时钟信号,其时钟应用于初始化阶段,其主要的工作是确定时钟 源使用的正常运行。 内部时钟源来源于不同分频的内部OSC如表1-1所示,时钟源可在编程器或ICP中设置. Table 1-1: Selection of clock source Clock source external crystal 24MHz from internal OSC 20MHz from internal OSC 16MHz from internal OSC 12MHz from internal OSC 8MHz from internal OSC 4MHz from internal OSC 2MHz from internal OSC 1MHz from internal OSC 对于来源于内部OSC的频率,这将有20%的误差,在应用程序中需要精确的频率时,不推荐使用. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 15 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 2 指令设置 所有SM59R04A2的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表格列出了以 SM59R04A2微控器为核心的指令集的周期的总结,这里的周期表示为机器周期,且根据IFCON [7]来 决定1时钟或2时钟. Mnemonic ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data SUBB A,Rn SUBB A,direct SUBB A,@Ri SUBB A,#data INC A INC Rn INC direct INC @Ri INC DPTR DEC A DEC Rn DEC direct DEC @Ri MUL AB DIV DAA Table 2-1: Arithmetic operations Description Add register to accumulator Add direct byte to accumulator Add indirect RAM to accumulator Add immediate data to accumulator Add register to accumulator with carry flag Add direct byte to A with carry flag Add indirect RAM to A with carry flag Add immediate data to A with carry flag Subtract register from A with borrow Subtract direct byte from A with borrow Subtract indirect RAM from A with borrow Subtract immediate data from A with borrow Increment accumulator Increment register Increment direct byte Increment indirect RAM Increment data pointer Decrement accumulator Decrement register Decrement direct byte Decrement indirect RAM Multiply A and B Divide A by B Decimal adjust accumulator 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 16 Code 28-2F 25 26-27 24 38-3F 35 36-37 34 98-9F 95 96-97 94 04 08-0F 05 06-07 A3 14 18-1F 15 16-17 A4 84 D4 Bytes 1 2 1 2 1 2 1 2 1 2 1 2 1 1 2 1 1 1 1 2 1 1 1 1 Cycles 1 2 2 2 1 2 2 2 1 2 2 2 1 2 3 3 1 1 2 3 3 5 5 1 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic ANL A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data ORL A,Rn ORL A,direct ORL A,@Ri ORL A,#data ORL direct,A ORL direct,#data XRL A,Rn XRL A,direct XRL A,@Ri XRL A,#data XRL direct,A XRL direct,#data CLR A CPL A RL A RLC A RR A RRC A SWAP A Table 2-2: 逻辑运算 Description AND register to accumulator AND direct byte to accumulator AND indirect RAM to accumulator AND immediate data to accumulator AND accumulator to direct byte AND immediate data to direct byte OR register to accumulator OR direct byte to accumulator OR indirect RAM to accumulator OR immediate data to accumulator OR accumulator to direct byte OR immediate data to direct byte Exclusive OR register to accumulator Exclusive OR direct byte to accumulator Exclusive OR indirect RAM to accumulator Exclusive OR immediate data to accumulator Exclusive OR accumulator to direct byte Exclusive OR immediate data to direct byte Clear accumulator Complement accumulator Rotate accumulator left Rotate accumulator left through carry Rotate accumulator right Rotate accumulator right through carry Swap nibbles within the accumulator 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 17 Code 58-5F 55 56-57 54 52 53 48-4F 45 46-47 44 42 43 68-6F 65 66-67 64 62 63 E4 F4 23 33 03 13 C4 Bytes 1 2 1 2 2 3 1 2 1 2 2 3 1 2 1 2 2 3 1 1 1 1 1 1 1 Cycles 1 2 2 2 3 4 1 2 2 2 3 4 1 2 2 2 3 4 1 1 1 1 1 1 1 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct1,direct2 MOV direct,@Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct MOV @Ri,#data MOV DPTR,#data16 MOVC A,@A+DPTR MOVC A,@A+PC MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A PUSH direct POP direct XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri Table 2-3: 数据传送 Description Move register to accumulator Move direct byte to accumulator Move indirect RAM to accumulator Move immediate data to accumulator Move accumulator to register Move direct byte to register Move immediate data to register Move accumulator to direct byte Move register to direct byte Move direct byte to direct byte Move indirect RAM to direct byte Move immediate data to direct byte Move accumulator to indirect RAM Move direct byte to indirect RAM Move immediate data to indirect RAM Load data pointer with a 16-bit constant Move code byte relative to DPTR to accumulator Move code byte relative to PC to accumulator Move external RAM (8-bit addr.) to A 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 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 18 Code E8-EF E5 E6-E7 74 F8-FF A8-AF 78-7F F5 88-8F 85 86-87 75 F6-F7 A6-A7 76-77 90 93 83 E2-E3 E0 F2-F3 F0 C0 D0 C8-CF C5 C6-C7 D6-D7 Bytes 1 2 1 2 1 2 2 2 2 3 2 3 1 2 2 3 1 1 1 1 1 1 2 2 1 2 1 1 Cycles 1 2 2 2 2 4 2 3 3 4 4 3 3 5 3 3 3 3 3 3 4 4 4 3 2 3 3 3 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic ACALL addr11 LCALL addr16 RET RETI AJMP addr11 LJMP addr16 SJMP rel JMP @A+DPTR JZ rel JNZ rel JC rel JNC JB bit,rel JNB bit,rel JBC bit,direct rel CJNE A,direct rel CJNE A,#data rel CJNE Rn,#data rel CJNE @Ri,#data rel DJNZ Rn,rel DJNZ direct,rel NOP Mnemonic CLR C CLR bit SETB C SETB bit CPL C CPL bit ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit MOV C,bit MOV bit,C Table 2-4: 程式分支 Description Absolute subroutine call Long subroutine call from subroutine from interrupt Absolute jump Long iump Short jump (relative addr.) Jump indirect relative to the DPTR Jump if accumulator is zero Jump if accumulator is not zero Jump if carry flag is set Jump if carry flag is not set Jump if direct bit is set Jump if direct bit is not set Jump if direct bit is set and clear bit Compare direct byte to A and jump if not equal Compare immediate to A and jump if not equal Compare immed. to reg. and jump if not equal Compare immed. to ind. and jump if not equal Decrement register and jump if not zero Decrement direct byte and jump if not zero No operation Table 2-5: 布尔运算 Description Clear carry flag Clear direct bit Set carry flag Set direct bit Complement carry flag Complement direct bit AND direct bit to carry flag AND complement of direct bit to carry OR direct bit to carry flag OR complement of direct bit to carry Move direct bit to carry flag Move carry flag to direct bit 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 19 Code xxx11 12 22 32 xxx01 02 80 73 60 70 40 50 20 30 10 B5 B4 B8-BF B6-B7 D8-DF D5 00 Code C3 C2 D3 D2 B3 B2 82 B0 72 A0 A2 92 Bytes 2 3 1 1 2 3 2 1 2 2 2 2 3 3 3 3 3 3 3 2 3 1 Bytes 1 2 1 2 1 2 2 2 2 2 2 2 Cycles 6 6 4 4 3 4 3 2 3 3 3 3 4 4 4 4 4 4 4 3 4 1 Cycles 1 3 1 3 1 3 2 2 2 2 2 3 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 3 存储器结构 The SM59R04A2存储器结构和通用的8051结构相同,也在三个存储空间内操作运算对象,它们是:1K的 片上外扩RAM 与作为程序存储器的16K的嵌入式Flash. 3.1 程序存储器 SM59R04A2有16K的嵌入式flash,可做为通用的程序存储或EEPROM.其他还包括最大为4K的特定ISP 服务程序存储空间.这16K的地址从00000到$3FFFF.ISP服务程序的地址从$3000到$3FFF.ISP服务程 序空间可以被分割N块256字节(N=0至16).当N=0时,意味着没有ISP复位程序空间可用.全部的16K字节 空间都被用来做程序存储.当N=1时,意味着地址$3F00到$3FFF保留为ISP服务程序空间.当N=2意味着 内存地址$3E00至$3FFF保留为ISP服务程序空间等等...数值N可以通过编程器或ICP方式编程或设置. 它可象EEPROM那样用来记录任何数据.EEPROM的应用功能在第19章节的内部ISP部分有描述. Fig. 3-1: SM59R04A2 programmable Flash 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 20 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Fig. 3-2 : SM59R03A2 programmable Flash Fig. 3-3 : SM59R02A2 programmable Flash 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 21 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 3.2 数据存储器 SM59R04A2具有1024+256 Bytes的片上SRAM, 其中256 Bytes和通用的8052内部存储器结构一样,外 扩的片上1KB的SRAM可以通过访问其外部存储器的方式进行访问(通过MOVX指令)。 Fig 3-2 (a):External memory access as read Fig 3-2 (b):External memory access as write Fig. 3-3: RAM architecture 3.2.1 数据内存-低128字节($00h到$7Fh) 数据存储器从00h到FFh的地址和在8052中的定义是一样的.00h到7Fh的地址可通过直接或者间接寻址 方式访问. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 22 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 00h到1Fh是寄存器的空间, 20h到2Fh是位寻址空间, 30h到7Fh是通用的数据存储区. 3.2.2 数据存储器-高128字节($80h到$FFh) 80h到FFh的地址仅仅能从间接寻址的方式访问,它是一个数据区. 3.2.3 存储器-扩展的1024字节($0000 到 $03FF) 从 0000h 到03FFh是片内扩展的SRAM区域,共1024字节. 该空间地址只能通过外部直接寻址的方式 进行访问.(利用MOVX指令)。 如果指令 MOVX @DPTR 的地址大于 03FFh, the SM59R04A2 将会自动产生外部存储器控制信号. 外部直接寻址指令 MOVX @Ri, i=0, 1是由寄存器RCON ($86,内部RAM控制寄存器)的RCON [7:0]来 决定的. RCON [7:0]的默认值为00h。(页0). RAM每一页有256字节. 当 EMEN = 0, 内部的 1K 扩展内存使能.如接受内存空间大于 1024 字节,RCON 的值被发往 P2,去接收 外部 RAM. 当EMEN = 1, 内部的1K扩展内存不能.RCON的值无效并且高字节地址由P2寄存器环境决定P2 [7:0]. MOVX @Ri, A MOVX A,@Ri EMEN = 0 EMEN = 1 0 ≦ RCON[7:0] ≦ 3 4 ≦ RCON [7:0] ≦ 255 Addr [15:8] <= RCON[7:0] Port2 [7:0] <= P2 [7:0] Port2 [7:0] <= RCON[7:0] Port2 [7:0] <= P2 [7:0] 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 23 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 4 CPU 结构 SM59R04A2引擎由以下四部分组成: a. 控制单元 b. 算法-逻辑单元 c. 存储器控制单元 d. RAM和SFR控制单元 SM59R04A2结构允许接受来自程序存储器的指令并与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 Internal RAM control register Interface control register E0h F0h ACC.7 B.7 D0h CY PSW SP DPL DPH DPL1 DPH1 AUX RCON IFCON 81h 82h 83h 84h 85h 91h BRGS Bit 6 Bit 5 8051 Core ACC.6 ACC.5 B.6 B.5 AC P4CC 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 DPS 07H 00H 00H 00H 00H 00H F0 RS[1:0] P4SPI SP[7:0] DPL[7:0] DPH[7:0] DPL1[7:0] DPH1[7:0] P4UR1 P4IIC 86h P0KBI - RCON[7:0] 8Fh ITS - CDPR - 00H ALEC[1:0] EMEN ISPE 00H 4.1 累加器 ACC 是一个累加器,大部分单操作指令的一个操作数取自累加器. Mnemonic: ACC 7 6 ACC.7 ACC.6 ACC[7:0]: 5 ACC05 4 ACC.4 3 ACC.3 2 ACC.2 1 ACC.1 Address: E0h 0 Reset ACC.0 00h A(或 ACC)寄存器为标准的 8051 累加器 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. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 24 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 4.3 程序状态字 Mnemonic: PSW 7 6 CY AC 5 F0 4 3 RS [1:0] 2 OV 1 F1 Address: D0h 0 Reset P 00h 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]: 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 25 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 4.6 数据指针 1 双数据指针加速了块状数据的运行速度.标准的DPTR 是一个16位的寄存器,是用来寻址外部空间或者 外部存储器. 在SM59R04A2中,标准的数据指针称为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 P0KBI 1 - DPL1[7:0]: Data pointer Low 1 Mnemonic: DPH1 7 6 5 DPH1[7:0]: Data pointer High 1 Mnemonic: AUX 7 BRGS 6 P4CC Address: 91h 5 P4SPI 4 P4UR1 3 P4IIC 0 DPS Reset 00H DPS: 数据指针选择位 DPS = 1,选择 DPTR1. 4.7 内存控制寄存器 SM59R04A2 片内扩展的 RAM 区域,共 1024 字节该空间地址只能通过外部直接寻址的方式进行访 问.(利用 MOVX 指令). 外部直接寻址指令 MOVX @Ri, i= 0, 1 是由寄存器 RCON 的 RCON [7:0]来决 定的. RCON [7:0]默认值为 00h (页 0). Mnemonic: RCON 7 6 Address: 86h 5 4 3 RCON[7:0] 2 1 0 Reset 00H 4.8 接口控制寄存器 Mnemonic: IFCON 7 6 5 ITS CDPR 4 - 3 2 ALEC[1:0] 1 EMEN Address: 8Fh 0 Reset ISPE 00h ITS: Instruction timing select. (default is 2T) ITS = 0, 2T instruction mode. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 26 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 ITS = 1, 1T instruction mode. CDPR: code protect (Read Only) ALEC[1:0]: ALE output control register. ALEC[1:0] ALE Output 00 Always output 01 No ALE output 10 Only Read or Write have ALE output 11 reserved EMEN: Internal 1K SRAM disable.(default is enable) EMEN = 0, Enable internal 1K RAM. EMEN = 1, Disable internal 1K RAM. ISPE: ISP function enable bit ISPE = 1, enable ISP function ISPE = 0, disable ISP function 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 27 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 5 GPIO SM59R04A2有6个I/O口: Port 0, Port 1, Port 2, Port 3, Port 4, and Port 5. Ports 0, 1, 2, 3, 4 是8位口 and Port 5 是4位口. 它们是: 准双向口 (标准的8051端口输出),推挽电路,开漏, 与只输入 . 两种寄存器的配置为每个端口的每个位选择输出方式.SM59R04A2的所有端口可以通过软件配置四 种型号的一种.如下表显示: 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 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[7:0] P4M1[7:0] - Bit 2 Bit 1 Bit 0 RESET 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H P5M0[3:0] P5M1[3:0] Port output mode 准双向口 (标准的 8051 端口输出) (pull-up) 推挽 只输入 (high-impedance) 开漏 The OCI_SCL、ALE、OCI_SDA and RESET 可在烧写或用ISP时定义在P4.4、P4.5、P4.6 and P4.7 。 为了通常的应用方便,每个管教都可调整为或高或低独立性.如下表显示: 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 Bit 5 Ports Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET D8h E8h B0h A0h 90h 80h P4.7 P3.7 P2.7 P1.7 P0.7 P4.6 P3.6 P2.6 P1.6 P0.6 P4.5 P3.5 P2.5 P1.5 P0.5 P4.4 P3.4 P2.4 P1.4 P0.4 P5.3 P4.3 P3.3 P2.3 P1.3 P0.3 P5.2 P4.2 P3.2 P2.2 P1.2 P0.2 P5.1 P4.1 P3.1 P2.1 P1.1 P0.1 P5.0 P4.0 P3.0 P2.0 P1.0 P0.0 0Fh FFh FFh FFh FFh FFh 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 28 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic: P0 7 6 P0.7 P0.6 5 P0.5 4 P0.4 3 P0.3 2 P0.2 1 P0.1 Address: 80h 0 Reset P0.0 FFh 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 3 P5.3 2 P5.2 1 P5.1 Address: D8h 0 Reset P5.0 0Fh P0.7~ 0: Port0 [7] ~ Port0 [0] Mnemonic: P1 7 6 P1.7 P1.6 5 P1.5 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.7 P4.6 5 P4.5 P4.7~ 0: Port4 [7] ~ Port4 [0] Mnemonic: P5 7 6 5 P5.3~ 0: Port5 [3] ~ Port5 [0] 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 29 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 6 硬件乘除法器(MDU) SM59R04A2的算术单元提供了32位除法器,16位乘法器,转化和规范等特点。所有设置均为无符号整 数设置。 Mnemonic Description Direct PCON Power control Arithmetic Control register Multiplication/Divi sion Register 0 Multiplication/Divi sion Register 1 Multiplication/Divi sion Register 2 Multiplication/Divi sion Register 3 Multiplication/Divi sion Register 4 Multiplication/Divi sion Register 5 87H Bit 6 Bit 5 Bit 4 Multiplication Division Unit SMOD MDUF - EFh MDEF ARCON MD0 MD1 MD2 MD3 MD4 MD5 Bit 7 MDOV Bit 3 Bit 2 Bit 1 Bit 0 RESET - - STOP IDLE 40H SLR SC[4:0] 00H 00H E9h MD0[7:0] EAh MD1[7:0] EBh MD2[7:0] ECh MD3[7:0] EDh MD4[7:0] 00H EEh MD5[7:0] 00H 00H 00H 00H 6.1 运行 MDU 寄存器 该 MDU 由 7 个寄存器处理,是具有记忆体映射为特殊功能寄存器, 运算单元允许同时操作以及 CPU 的独立活动。操作数及结果寄存器为 MD0 到 MD5,控制寄存器为 ARCON.任何 MDU 的运算将改写其 操作数. Mnemonic: ARCON 7 MDEF 6 MDOV 5 SLR Address: EFh 4 3 2 SC[4:0] 1 0 Reset 00H MDEF: 乘除错误标志位 MDEF 是一个错误标志位,且只可读。错误标志表示一个不当的操作(当其中的 运算操作被重新启动或者被一个新的运算中断),错误标志机制将自动在第一次 写入MD0 时失效和来自MD3(乘法或转换/规范)或来自第三阶段MD5(除法) 最终使读取指令失效。 在以下情况,错误标志位将被置位: 1. 第二阶段的进程,并写入MDx 寄存器时(重启或者中断计算) 错误标志只有在以下情况下重置: 第二阶段结束(算法成功)并写入MDx 寄存器 MDOV: 乘除法溢出标志。该溢出标志只可读 只有在以下情况时,该溢出标志被置位: 1. 除以“0”, 2. 再乘以一个比 0000FFFFH 大的值 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 30 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 3. 当最重要的 MD3 位被设置位(MD3.7=1) 当通过MD0 寄存器写入,(开始第一阶段)时, 溢出标志被重置 SLR: 转换方向位 SLR=0-转换左操作 SLR=1-转换右操作. SC[4:0]: 转换计数器 当预设与00000b,标准化被选择,在标准化之后,SC[4;0] 包含正常转换的数 字,当SC[4:0]≠0 时,转换操作就开始,正常转换的数字由计数器写入SC[4;0] 决定。SC[4]位-MSB ,SC[0]位-LSB。 6.2 乘除法器的设置 乘除法器的设置分为三个阶段: 6.2.1 第一阶段:装载MDx 寄存器,X=0~5: 要执行的MDU运算的种类是按照mdx寄存器内写入的命令来选择. Table 6-1: MDU registers write sequence Operation First write Last write 32bit/16bit MD0 Dividend Low MD1 Dividend MD2 Dividend MD3 Dividend High MD4 Divisor Low MD5 Divisor High 16bit/16bit MD0 Dividend Low MD1 Dividend High MD4 Divisor Low MD5 Divisor High 16bit x 16bit MD0 Multiplicand Low MD4 Multiplicator Low MD1 Multiplicand High shift/normalizing MD0 LSB MD1 MD2 MD3 MSB MD5 Multiplicator High ARCON start conversion 任何情况下,MD0的写入都将首先被转换,而下一次的写入必须执行以下显示的表格序列,以确保MDU 的运作,最后一次的写入将开始选择的运作。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 31 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 6.2.2 第二阶段:执行运算. 在执行运算中,MDU运行在拥有CPU并行线上。当MDU执行完毕时,MDUF寄存器将被硬件置位, 其标志位也将在下一次运算中被清除。 Mnemonic: PCON 7 6 SMOD MDUF 5 - 4 - 3 - 2 - 1 STOP Address: 87h 0 Reset IDLE 40h MDUF: MDU 完成标志位 当 MDU 完成运算时,MDUF 将被硬件置位且标志位也将在下一次运算中被清除。 下表给出了每一次数学计算中的执行时间. Table 6-2: MDU execution times Operation Division 32bit/16bit Division 16bit/16bit Multiplication Shift Normalize Number of Tclk 17 clock cycles 9 clock cycles 11 clock cycles Min. 3 clock cycles, Max. 18 clock cycles Min. 4 clock cycles, Max. 19 clock cycles 6.2.3 第三阶段:从MDx 寄存器上读取结果. 从第一个MDX 寄存器上读取序列并不重要,但我们必须意识到最后一次的读取(从MD5的除法运 算,或MD3中的乘法,切换和规范)将意味着一次完整的运算结束(end of phase three). Table 6-3: MDU registers read sequence Operation First read Last read 32Bit/16Bit MD0 Quotient Low MD1 Quotient MD2 Quotient MD3 Quotient High MD4 Remainder L MD5 Remainder H 16Bit/16Bit MD0 Quotient Low MD1 Quotient High MD4 Remainder Low MD5 Remainder High 16Bit x 16Bit MD0 Product Low MD1 Product MD2 Product shift/normalizing MD0 LSB MD1 MD2 MD3 Product High MD3 MSB 这里的正常化和转换操作都将有更多的解释。在正常化中,所有在寄存器MD0到MD3中读写为0 且由左转换移动。当MD3寄存器的MSB(最高位)为“1”时,整个运算就算完成。正常化之后,位ARCON.4 (MSB)到ARCON.0 (LSB)执行左移位操作,至于转换,SLR位(ARCON.5)控制转换的方向,且ARCON.4 到ARCON.0代表转化计数(不可为0),在转换中,0进入左边或右边分别结束于寄存器MD0或MD3 中. 6.3 标准化 整数阅读的零在寄存器变量 MD0 的 MD3 被左移位操作删除.当 MD3 寄存器的最高位 (Most Significant Bit) 包含一个'1' 整个操作完成. 经过标准化, ARCON.4(MSB)至 ARCON.0(LSB)包含左移位操作数, 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 32 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 标准化完成. 6.4 位移 SLR位 (ARCON.5) 包含了位移的方向, 并且ARCON.4 至ARCON.0 移位操作数 (必须不能为0). 当 位移时,零分别送入MD0或MD3寄存器的左或右边. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 33 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 7 定时器 0 和定时器 1 The SM59R04A2 有三个16bit的定时/计数寄存器: 定时器0, 定时器1和定时器2,所有这些都可以被设 置为定时或计数操作. I在定时器模式中, 定时器0或定时器1在每12个机器周期中得到递增,这意味着在每12个晶体或振荡信 号中,计数会得到增加. 在计数的模式中,当检测到相应的输入脚T0/T1有下降沿产生时,寄存器便得到递增,由于它需要2个机 器周期来识别由1到0的跳变,其最大输入的计数频率为振荡器频率的1/2,从而使得这里没有限制的占 空比,以确定适当的识别为0或1的状态,因此,一个输入信号至少要稳定在1个机器周期. 定时器0和定时器1都有四种操作模式选择,在选择操作模式中,两个特殊功能寄存器(TMOD and TCON)被应用其中. Mnemonic TL0 TH0 TL1 TH1 TMOD TCON Description Direct Timer 0 , low byte Timer 0 , high byte Timer 1 , low byte Timer 1 , high byte Timer Mode Control Timer/Counter Control 8Ah Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Timer 0 and 1 TL0[7:0] Bit 2 Bit 1 Bit 0 RESET 00h 8Ch TH0[7:0] 00h 8Bh TL1[7:0] 00h 8Dh TH1[7:0] 00h 89h GATE C/T M1 M0 GATE C/T M1 M0 00h 88h TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 00h 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 34 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 7.1 定时器/计数器模式控制寄存器(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]: 定时/计数器 0 或定时/计数器 1 的选择模式 M1 M0 Mode Function 0 0 Mode0 13bit计数器/定时器, 包含TL0/TL1寄存器的低5 位及TH0/TL1寄存器的全部8位,其TL0/TL1寄存 器的高 3 位可设置为 0. 0 1 Mode1 16 位计数器/定时器. 1 0 Mode2 8 位自动装载的计数器/定时器,自动装载的值保 留在TH0 和TH1.同时TL0 或者TL1 在每个机 器周期内都会递增. 当溢出时,将THx 存放的值 装入 TLx. 1 1 Mode3 如定时器1 的M1 和M2 位被设置为1,定时器 2 停止计数。如定时器0 的M1 和M0 位被设置 为1,定时器0 作为两个独立的8 位定时器/计数 器. 7.2 定时/计数控制寄存器 (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: T定时器0 溢出标志。定时器/计数器溢出时由硬件置位。中断执行 时硬件自动清零,或由软件清零 TR0: 定时器 0 运行控制位。如置位/清零,关闭定时器/计数器 0. IE1: 中断1 边沿标志。当检测到外部中断1 边沿/低电平时由硬件置位该标志。中 断处理时由硬件清零,或通过软件清零. IT1: 中断1 类型控制位,通过软件置位/清零该位来选择外部中断1 以下降沿/低电 平方式触发 IE0: 中断0 边沿标志。当检测到外部中断0 边沿/低电平时由硬件置位该标志。中 断处理时由硬件清零,或通过软件清零. IT0: 中断0 类型控制位。通过软件置位/清零该位来选择外部中断0 以下降沿/低电 平方式触发. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 35 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 8 定时器 2 以及捕捉/比较单元 定时器2不仅仅是一个16位的定时器,也是一个带有比较,捕获及重载功能的4通道单元,这是非常相似 在其他一些微控制器的可编程计数器阵列(PCA),除脉冲宽度调制(PWM). Mnemonic Description Direct AUX T2CON Auxiliary register Timer 2 control Compare/Capture Control Compare/Capture Enable 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 TL2 TH2 CRCL CRCH CCL1 CCH1 CCL2 CCH2 CCL3 CCH3 Bit 2 Bit 1 91h C8h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Timer 2 and Capture Compare Unit BGRS P4CC P4SPI P4UR1 P4IIC T2PS CC0FR T2R[1:0] P0KBI T2CM - C9h CCI3 CCI2 CCI1 CCI0 CCF3 CCF2 CCF1 CCF0 00H C1h COCA H3 COCA L3 COC AH2 COCAL2 COCA H1 TL2[7:0] TH2[7:0] COCA L1 COCA H0 COC AL0 00h CCh CDh CAh CRCL[7:0] CBh CRCH[7:0] C2h CCL1[7:0] C3h CCH1[7:0] C4h CCL2[7:0] C5h CCH2[7:0] C6h CCL3[7:0] C7h CCH3[7:0] RESET DPS T2I[1:0] 00H 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h Mnemonic: AUX 7 BRGS Bit 0 6 P4CC Address: 91h 5 P4SPI 4 P4UR1 3 P4IIC 2 P0KBI 1 - 0 DPS Reset 00H P4CC: P4CC = 0 – Capture/Compare function on P1. P4CC = 1 – Capture/Compare function on P4. Mnemonic: T2CON 7 6 T2PS CC0FR 5 - 4 3 T2R[1:0] 2 T2CM 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 36 1 Address: C8h 0 Reset T2I[1:0] 00h Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 T2PS: 分频器选择位 T2PS = 0,定时器2 的时钟为振荡频率的1/12 T2PS = 1,定时器 2 的时钟为振荡频率的 1/24. CC0FR: 选择边沿触发位 CC0FR = 0,下降沿触发 CC0FR = 1,上升沿触发 T2R[1:0]: 定时器2 重载模式选择位 T2R[1:0] = 0X,重载无效 T2R[1:0] = 10 模式0 T2R[1:0] = 11 模式 1 T2CM: 定时器2 比较模式选择位 T2CM = 0 ,模式0 T2CM = 0 ,模式 1 T2I[1:0]: T定时器2 输入选择位 T2I[1:0] = 00 ,定时器2 计数停止 T2I[1:0] = 01 ,输入频率为时钟频率的1/12 或者1/24 T2I[1:0] = 10 ,定时器2 在T2 脚的外部信号递增 T2I[1:0] = 11 ,门控定时器 2 可为内部时钟输入 Mnemonic: CCON 7 6 5 CCI3 CCI2 CCI1 4 CCI0 3 CCF3 2 CCF2 1 CCF1 Address: C9h 0 Reset CCF0 00H CCI3: Compare/Capture 3 interrupt control bit. “1” is enable. CCI2: Compare/Capture 2 interrupt control bit. “1” is enable. CCI1: Compare/Capture 1 interrupt control bit. “1” is enable. CCI0: Compare/Capture 0 interrupt control bit. “1” is enable. CCF3: Compare/Capture 3 flag set by hardware. This flag can be cleared by software. CCF2: Compare/Capture 2 flag set by hardware. This flag can be cleared by software. CCF1: Compare/Capture 1 flag set by hardware. This flag can be cleared by software. CCF0: Compare/Capture 0 flag set by hardware. This flag can be cleared by software. Compare/Capture interrupt share T2 interrupt vector. Mnemonic: CCEN 7 6 COCAH3 COCAL3 Address: C1h 5 COCAH2 4 COCAL2 3 COCAH1 COCAH3,COCAL3: 通道 3 的比较/捕获模式. COCAH3 COCAL3 0 0 0 1 1 0 1 1 2 COCAL1 1 COCAH0 0 COCAL0 Reset 00h 功 能 禁止比较/捕获功能 捕捉在 CC3 脚的上升沿 使能比较功能 在寄存器 CCL3 中捕获写入操作 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 37 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 COCAH2,COCAL2: Compare/Capture mode for Channel 2. COCAH2 COCAL2 功 能 0 0 Compare/capture disable 0 1 Capture on rising edge at pin CC2 1 0 Compare enable 1 1 Capture on write operation into register CCL2 COCAH1,COCAL1: Compare/Capture mode for Channel 1. COCAH1 COCAL1 功 能 0 0 Compare/capture disable 0 1 Capture on rising edge at pin CC1 1 0 Compare enable 1 1 Capture on write operation into register CCL1 COCAH0,COCAL0: Compare/Capture mode for CRC register (Channel 0) COCAH0 COCAL0 功 能 0 0 Compare/capture disable 0 1 Capture on falling/rising edge at pin CC0 1 0 Compare enable 1 1 Capture on write operation into register CRCL 8.1 定时器 2 功能 定时器2既可做为定时器,又可做为计数器,或解释为门控定时器(如下解释). 8.1.1 定时器模式 在此模式中,定时器2在每12个机器周期或每24个机器周期得到递增,并取决与2:1的分频器,而分频 器则由特殊寄存器T2CON中的T2PS位选择. 8.1.2 事件计数模式 在此模式中,当然外部信号T2由1到0的跳变时,定时器得到递增,T2输入在每个周期中得以采样,定 时器2在跳变检测的一个周期中得到递增. 8.1.3 门控定时器模式 在此模式中,定时器2递增的内部时钟是由外部信号T2来控制的. 8.1.4 定时器2的重载 重载(来自CRC寄存器的16位重载)可在以下两种模式中执行: 模式0:重载信号由定时器2溢出产生,即自动重载。 模式1:重载信号由相应的输入脚T2EX负跳变产生. 8.2 比较功能 在四个独立的比较器中,任何比较/捕捉寄存器中的值都和定时器寄存器的内容比较,其比较模式0或1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 38 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 由位T2CM来选择.在这两种比较模式中,其比较结果在同样的机器周期的P1口的得出使得其内部比较 信号被激活. 8.2.1 比较模式0 在模式0中,当定时器2的值等同与比较寄存器上的值时,其输出信号由低到高的跳变,并在定时器溢 出时返回低电位。在此模式中,对端口写入无效,因为无法对来自内部总线及暂存器进行操作。 下表数字阐述了比较模式0的功能. Fig. 8-1: Compare mode 0 function 8.2.2 比较模式1 在比较模式1中,其输出信号的跳变是由软件来决定的。定时器2的溢出不会导致输出的改变。在此模 式中,两种信号的跳变都是可以控制的,图表8-2显示了在比较模式1中的寄存器/端口结构功能表。 在比较模式1中,其值将首先被写入到“阴影寄存器”中,当比较信号被激活时,其值被传递到输出寄存 器. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 39 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Fig. 8-2: Compare mode 1 function 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 40 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 8.3 捕获功能 在一个外部事件(模式0)或一个软件写操作(模式1)上,实际的定时器/计数器的值可以被保存在寄 存器CCx或说CRC中. 8.3.1 捕捉模式0 在模式0中,定时器2的值的捕捉在以下情况进行: (a) 上升沿输入CC1-CC3。 (b) 上升或下降沿的输入CC0(取决于位CC0FR),定时器2的内容将被对应的捕捉寄存器锁存,在此 模式中,无中断请求产生. 8.3.2 捕捉模式1 在模式1中,定时器2的值的捕捉将导致写入到捕捉寄存器中的低字节无任何价值,其捕捉寄存器的写入 值与改功能无关,定时器2的内容将被对应的捕捉寄存器琐存。在此模式中,无中断请求产生. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 41 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 9 串行接口 0 和 1 SM59R04A2有两个数据传输的串行接口,即UART0和UART1. 作为传统的UART,其传输速率可通过SFRs中的波特率来选择. 这两个串行缓冲器组成两个单独寄存器,即一个传输缓冲区和一个接收缓冲区。写入数据到特殊功能 寄存器(SFR)S0BUF或S1BUF并设置这些数据在串行输出缓冲,并开始传输, 来自S0BUF或S1BUF的读取 及从串行接收缓冲区读取数据,串行口可同时传输和接收数据,它也可在接收时缓存1字节,如CPU在 第一个字节传输完成之前读取第二个字节,以防接收数据丢失。 Mnemonic PCON AUX S0CON S0RELL S0RELH S0BUF S1CON S1RELL S1RELH S1BUF Bit 3 Bit 2 Bit 1 Bit 0 RESE T - - STOP IDLE 40h P4UR1 P4IIC P0KBI - DPS 00H SM20 REN0 TB80 RB80 TI0 RI0 00h S0REL .6 S0REL .5 S0REL .4 S0REL .3 S0REL .2 - - - - - S0REL .1 S0REL .9 S0REL .0 S0REL .8 Description Direct Bit 7 Bit 6 Bit 5 电源控制寄存器 Auxiliary register 串行口0 控制寄 存器 串行口0 装载寄 存器低字节 串行口0 装载寄 存器高字节 串行口0 数据缓 存器 串行口1 控制寄 存器 串行口1 装载寄 存器低字节 串行口1 装载寄 存器高字节 串行口1 数据缓 存器 87h SMOD Serial interface 0 and 1 MDUF - 91h BRGS P4CC P4SPI 98h SM0 SM1 AAh S0REL .7 BAh - 99h Bit 4 S0BUF[7:0] SM - SM21 REN1 TB81 RB81 TI1 RI1 9Dh S1REL .7 S1REL .6 S1REL .5 S1REL .4 S1REL .3 S1REL .2 BBh - - - - - - S1REL .1 S1REL .9 S1REL .0 S1REL .8 Mnemonic: AUX 7 6 BRGS P4CC S1BUF[7:0] 5 P4SPI 4 P4UR1 3 P4IIC 2 P0KBI 1 - 00h 00h 9Bh 9Ch 00h 00h 00h 00h 00h Address: 91h 0 Reset DPS 00H P4UR1: P4UR1 = 0 – Serial interface 1 function on P1. P4UR1 = 1 – Serial interface 1 function on P4. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 42 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 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 为停止位。在模式 0 中,此位不被使用。须由软件清除。 TI0: 发送中断标志位.在完成串行传输后由硬件置位,须由软件清除。 RI0: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除. Mnemonic: S1CON 7 6 5 SM SM21 4 REN1 3 TB81 2 RB81 1 TI1 Address: 9Bh 0 Reset RI1 00h SM: 串行接口 1 模式选择. SM Mode 0 A 1 B 在 UART0 的 2 种模式中,模式 A 和模式 B 稍后解释。 SM21: 多处理机通信使能位 REN1: 如置位,串行接收使能,软件清除禁止接收 TB81: 在模式A 中,发送的第9 位数据位,置位或清零取决与它执行的功能,如奇偶校 验功能, 多处理机通信等 RB81: 在模式A 中,RB81 为接收的第9 位数据位。在模式B 中,如SM21=0,RB81 为停 止位,须由软件清除。 TI1: 发送中断标志位.在完成串行传输后由硬件置位,须由软件清除。 RI1: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 43 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 9.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 是晶体或振荡器的频率。 9.1.1 模式0 引脚RXD0充当输入和输出。TXD0输出时钟。每次发送或接收以LSB最低位作首位,每次8位。波特率 固定为的晶体的频率1/12,接收通过以下的在S0CON中的设置标志在模式0中初始化:RI0 = 0 and REN0 = 1。在其他模式中,当REN0=1时,开始从起始位接收串行数据. Fig. 9-1: Transmit mode 0 for Serial 0 Fig. 9-2: Receive mode 0 for Serial 0 9.1.2 模式1 引脚RXD0充当输入,TXD0充当串行输出,无任何外部时钟被使用,每次数据为10位:一个起始位(=0), 8个数据位(LSB位在前),及一个停止位(=1)。在接收据数据时, 起始位将被同步传输,8个数据位可 通过S0BUF来读取, 一个停止位存于特殊功能寄存器S0CON的设置标志RB80内,在模式1中,无论是 内部的波特率发生器或定时器1可以用来指定波特率。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 44 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Fig. 9-3: Transmit mode 1 for Serial 0 Fig. 9-4: Receive mode 1 for Serial 0 9.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将被影响。 9.1.4 模式 3 模式2和3的唯一不同之处在于:在模式3中,无论是内部的波特率发生器或定时器1可以用来指定波特 率。 Fig. 9-5: Transmit modes 2 and 3 for Serial 0 Fig. 9-6: Receive modes 2 and 3 for Serial 0 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 45 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 9.2 串行接口 1 中断向量 83h. 串行接口1可在下面两种模式中操作: SM 0 1 Mode A B Description 9-bit UART 8-bit UART Baud Rate Variable Variable 9.2.1 Mode A 该模式和串行接口0中的模式2和3类似。11位数据被传输或接收: 1个起始位(=0),8个数据位(LSB 在前),一个可编程的第9位及一个停止位(=1),9位可以用来控制串行接口的奇偶性。在传输中, S1CON中的TB81输出第9位,在接收中,S1CON中的RB81将被影响。 Fig. 9-7: Transmit mode A for Serial 1 Fig. 9-8: Receive mode A for Serial 1 9.2.2 Mode B 该模式和串行接口0中的模式1类似. 引脚RXD1充当输入,TXD1充当串行输出,无任何外部时钟被使 用,每次数据为10位:一个起始位(=0),8个数据位(LSB位在前),及一个停止位(=1)。在接收据数 据时, 起始位将被同步传输,8个数据位可通过S1BUF来读取, 一个停止位存于特殊功能寄存器S1CON 的设置标志RB81内,在模式1中,无论是内部的波特率发生器或定时器1可以用来指定波特率。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 46 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Fig. 9-9: Transmit mode B for Serial 1 Fig. 9-10: Receive mode B for Serial 1 9.3 串行接口 0 和 1 的多重机通讯 在串行接口 0 的模式2 和3 或串行接口1 的模式A 中,接收9 位的功能, 可用于多处理器的通讯。 在这种情况下,从机在S0CON 中的位SM20 或在S1CON 中的SM21 被置位为1。当主机输出从机的 地址时,Bit9 将被置1,从而在所有的从机中导致串行口接收中断。从机将接收到的字节和它们的网络 地址比较,如匹配,其从机将清除SM20 或SM21,并接收其余的信息,其他的从机将远离SM20 或 SM2 无效,并忽略此信息。在解决从机后,其主机在Bit9 清0 时将输出剩余部分的信息,因此,没有 串口接收中断会产生在未选中的处理机中。 9.4 波特率发生器 9.4.1 串行接口0的模式1和3 (a) When BRS = 0 (in SFR AUX): Baud Rate = 2SMOD ´ FOSC 32 ´ 12 ´ (256 - TH1) (b) When BRS = 1 (in SFR AUX): Baud Rate = 2SMOD ´ FOSC 64 ´ 210 - S0REL ) Baud Rate = FOSC 32 ´ 2 - S1REL ) ( 9.4.2 串行接口1的模式A和B ( 10 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 47 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 9.5 波特率的时钟源 当串行接口功能被使用时,不推荐使用内部的振荡器作为时钟源的,其原因是先前章节所涉及到的波 特率必须尽可能的准确,而内部的OSC的时钟频率有+5%浮动的差异, 因此,用户可在外部晶体或振 荡器中选择时钟源。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 48 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 10 看门狗定时器 看门狗定时器是一个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 WDTCLK = 2 WDTM 256 Watchdog reset time = WDTCLK WDTM [3:0] 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Table 10.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. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 49 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 对WDTE位写入1同时WDTEN控制位清0,能使WDT功能使能.在WDTE设为1后.8位的计数器用通过 WDTM[3:0]设置好的分频进行计数.它在溢出时将会产生复位讯号.WDTE位在MCU重启时将被自动清0, 同时硬件复位或WDT复位. 看门狗一旦开始工作将无法停止. ,当WDTK寄存器用户可通过对看门狗定时器重置密钥(WDTK)写入55h 实现WDT计时器清0.这将会清楚8位计数器内容并让计数器重启. 看门狗定时器必须定时刷新以防来自 可变的重置复位请求信号. 当看门狗定时器溢出时, WDTF标志位将被置1并自动重置复位MCU.该标志位可被软件或外部复位清 除. 1 2WDTM Fig. 10-1: Watchdog timer block diagram Mnemonic TAKEY WDTC WDTK Description Time Access Key register Watchdog timer control register Watchdog timer refresh key Direct Bit 7 Bit 6 Bit 5 Bit 4 Watchdog Timer F7h B6h B7h Bit 3 Bit 2 Bit 1 TAKEY [7:0] WDTF - WDTE WDTK[7:0] 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 50 Bit 0 RESET 00H WDTM [3:0] 04H 00H Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic: TAKEY 7 6 5 4 3 TAKEY [7:0] 2 1 Address: F7h 0 Reset 00H Watchdog timer control register (WDTC) is read-only by default; software must write three specific values 55h, AAh and 5Ah sequentially to the TAKEY register to enable the WDTC write attribute. That is: MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah Mnemonic: WDTC 7 6 5 WDTF WDTE 4 - 3 2 1 WDTM [3:0] Address: B6h 0 Reset 04H WDTF: Watchdog timer reset flag. When MCU is reset by watchdog, WDTF flag will be set to one by hardware. This flag clear by software or external reset or power on reset. WDTE: Control bit used to enable Watchdog timer. The WDTE bit can be used only if WDTEN is "0". If the WDTEN bit is "0", then WDT can be disabled / enabled by the WDTE bit. 0: Disable WDT. 1: Enable WDT. The WDTE bit is not used if WDTEN is "1". That is, if the WDTEN bit is "1", WDT is always disabled no matter what the WDTE bit status is. The WDTE bit can be read and written. WDTM [3:0]: WDT clock source divider bit. Please see table 7.8.1 to reference the WDT time-out period. Mnemonic: WDTK 7 6 5 4 3 WDTK[7:0] 2 1 Address: B7h 0 Reset 00h WDTK: Watchdog timer refresh key. A programmer must write 0x55 into WDTK register, and then the watchdog timer will be cleared to zero. For example, if enable WDT and select time-out reset period is 327.68ms. First, programming the information block OP3 bit7 WDTEN to “0”. Secondly, 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. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 51 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 11 中断 The SM59R04A2提供13个中断源并带有4级优先权. 每一中断源都在特殊寄存器(SFR)中有自身的请求 标志,每个中断请求信号通过相应的标志及特殊寄存器(SFR)中的IEN0,IEN1及IEN2中的使能位来 独自允许或禁止。. 当中断发生时,CPU将会跳转预先设定的地址,如11-1图表所示,一旦中断开始执行,就只能被更高 优先级的中断终止,其中断服务会被来自指令RETI的返回所终结。当一RETI被执行时且中断发生时, 处理器将将返回此指令,并执行下一条指令。 当中断条件发生时,该处理器通过设置一个标志位来表示,无论中断使能或禁止,每个中断标志都将 在每个机器周期中采样一次,随后采样由硬件来检测,当中断被使能时,且采样指出相应中断时,中 断请求标志被设置。在随后的指令周期中,中断将被硬件所确定。从而迫使一个LCALL 指向相应的地 址向量。 当中断发生时,中断响应将需要不同的时间,这取决于相关的处理器。如一处理器执行的中断服务程 序同等或更优先,新的中断将不会启用,在其他情况下,响应时间将取决于当前的指令。以最快的速 度回应一个中断是需要7个机器周期,这包括一个检测中断的机器周期和6周期执行LCALL周期。 Table 11-1: 中断向量 Interrupt Request Flags IE0 –外部中断 0 TF0 –定时器 0 中断 IE1 –外部中断 1 TF1 –定时器 1 中断 RI0/TI0 –串行口 0 中断 TF2/EXF2 –定时器 2 中断 PWMIF – PWM interrupt SPIIF –SPI 中断 ADCIF –A/D 转换中断 KBIIF – keyboard Interface interrupt LVIIF – 低压中断 IICIF –IIC 中断 RI1/TI1 –串行口 1 中断 Interrupt Vector Address 0003h 000Bh 0013h 001Bh 0023h 002Bh 0043h 004Bh 0053h 005Bh 0063h 006Bh 0083h Interrupt Number *(use Keil C Tool) 0 1 2 3 4 5 8 9 10 11 12 13 16 *参考Keil C用户指南中的有关中断功能使用说明 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 52 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic IEN0 IEN1 IEN2 IRCON IP0 IP1 Description Interrupt Enable 0 register Interrupt Enable 1 register Interrupt Enable 2 register Interrupt request register 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 EXEN2 - IEIIC IELVI IEKBI IEADC IESPI IEPWM 00h 9Ah - - - - - - - ES1 00h C0H EXF2 TF2 IICIF LVIIF KBIIF ADCIF SPIIF PWMIF 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 Interrupt Enable 0 register(IEN0) Mnemonic: IEN0 7 6 EA - 5 ET2 4 ES0 3 ET1 2 EX1 1 ET0 Address: A8h 0 Reset EX0 00h EA: EA=0 – Disable all interrupt. EA=1 – Enable all interrupt. ET2: ET2=0 – Disable Timer 2 overflow or external reload interrupt. ET2=1 – Enable Timer 2 overflow or external reload interrupt. ES0: ES0=0 – Disable Serial channel 0 interrupt. ES0=1 – Enable Serial channel 0 interrupt. ET1: ET1=0 – Disable Timer 1 overflow interrupt. ET1=1 – Enable Timer 1 overflow interrupt. EX1: EX1=0 – Disable external interrupt 1. EX1=1 – Enable external interrupt 1. ET0: ET0=0 – Disable Timer 0 overflow interrupt. ET0=1 – Enable Timer 0 overflow interrupt. EX0: EX0=0 – Disable external interrupt 0. EX0=1 – Enable external interrupt 0. Interrupt Enable 1 register(IEN1) Mnemonic: IEN1 7 6 EXEN2 5 IEIIC 4 IELVI 3 IEKBI 2 IEADC 1 IESPI Address: B8h 0 Reset IEPWM 00h EXEN2: Timer 2 reload interrupt enable. EXEN2 = 0 – Disable Timer 2 external reload interrupt. EXEN2 = 1 – Enable Timer 2 external reload interrupt. IEIIC: IIC interrupt enable. IEIICS = 0 – Disable IIC interrupt. IEIICS = 1 – Enable IIC interrupt. IELVI: LVI interrupt enable. IELVI = 0 – Disable LVI interrupt. IELVI = 1 – Enable LVI interrupt. IEKBI: KBI interrupt enable. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 53 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 IEKBI = 0 – Disable KBI interrupt. IEKBI = 1 – Enable KBI interrupt. IEADC: A/D converter interrupt enable IEADC = 0 – Disable ADC interrupt. IEADC = 1 – Enable ADC interrupt. IESPI: SPI interrupt enable. IESPI = 0 – Disable SPI interrupt. IESPI = 1 – Enable SPI interrupt. IEPWM: PWM interrupt enable. IEPWM = 0 – Disable PWM interrupt. IEPWM = 1 – Enable PWM interrupt. Interrupt Enable 2 register(IEN2) Mnemonic: IE2 7 6 - 5 - 4 - 3 - 2 - 1 - 2 ADCIF 1 SPIIF Address: 9Ah 0 Reset ES1 00h ES1: ES1=0 – Disable Serial channel 1 interrupt. ES1=1 – Enable Serial channel 1 interrupt. Mnemonic: IRCON 7 6 5 EXF2 TF2 IICIF 4 LVIIF 3 KBIIF Address: C0h 0 Reset PWMIF 00H EXF2: Timer 2 external reload flag. Must be cleared by software. TF2: Timer 2 overflow flag. Must be cleared by software. IICIF: IIC interrupt flag. LVIIF: LVI interrupt flag. KBIIF: KBI interrupt flag. ADCIF: A/D converter end interrupt flag. SPIIF: SPI interrupt flag. PWMIF: PWM interrupt flag. Must be cleared by software. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 54 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 11.1 优先权配置 所有中断来源相组合与以下组中: Table 11-2: Priority level groups Groups Serial channel 1 interrupt - External interrupt 0 Timer 0 interrupt External interrupt 1 Timer 1 interrupt Serial channel 0 interrupt Timer 2 interrupt PWM interrupt SPI interrupt ADC interrupt KBI interrupt LVI interrupt IIC interrupt 通过对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 Table 11-3: Priority levels IP1.x IP0.x Priority Level 0 0 1 1 0 1 0 1 Level0 (lowest) Level1 Level2 Level3 (highest) Table 11-4: Groups of priority 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 External interrupt 0 Timer 0 interrupt External interrupt 1 Timer 1 interrupt Serial channel 0 interrupt Timer 2 interrupt Group Serial channel 1 interrupt - 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 55 PWM interrupt SPI interrupt ADC interrupt KBI interrupt LVI interrupt IIC interrupt Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Table 11-5: Polling sequence Sequence Polling sequence Interrupt source External interrupt 0 Serial channel 1 interrupt PWM interrupt Timer 0 interrupt SPI interrupt External interrupt 1 ADC interrupt Timer 1 interrupt KBI interrupt Serial channel 0 interrupt LVI interrupt Timer 2 interrupt IIC interrupt 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 56 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 12 电源管理单元 电源管理单元提供两种电源管理模式,即IDLE(待机/空闲)和STOP(停止),并为用户提供省电功 能。 Mnemonic: PCON 7 6 SMOD MDUF 5 - 4 - 3 - 2 - 1 STOP Address: 87h 0 Reset IDLE 40h STOP: STOP 模式控制位。设置此位将运行 STOP 模式, STOP 位总是读为 0. IDLE: IDIE 模式控制位。设置此位将运行 IDLE 模式, IDLE 位总是读为 0 12.1 待机模式(空闲模式) 使用IDLE(待机模式(空闲模式))模式可通过对PCON寄存器的IDLE位置位。空闲模式停止MCU的时 钟源,但外部的时钟源依旧保持,由于此时CPU不工作,电源功耗将被降低。当任何一中断信号或者 一复位信号时,CPU将退出待机模式(空闲模式)。 12.2 停止模式 使用STOP(停止模式)模式可通过对PCON寄存器的STOP位置位。在此模式中,所有的中断源将全 部被关闭,CPU将从一个无时钟的外部中断或者一个重置条件下退出该模式,内部产生的中断(定时 器,串行端口,看门狗... ),由于它们需要时钟源而无法运行。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 57 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 13 脉宽调制器(PWM) SM59R04A2提供四个通道的PWM输出. 中断值为43h. Mnemonic PWMC PWMD0H PWMD0L PWMD1H PWMD1L PWMD2H PWMD2L PWMD3H PWMD3L PWMMDH PWMMDL Description PWM 控制寄存器 PWM 0 Data register high byte PWM 0 Data register low byte PWM 1 Data register high byte PWM 1 Data register low byte PWM 2 Data register high byte PWM 2 Data register low byte PWM 3 Data register high byte PWM 3 Data register low byte PWM Max Data register high byte PWM Max Data register low byte Direct Bit 7 Bit 6 Bit 5 PWM PWMCS[2:0] B5h BCh PWMP0 - - BDh - Bit 3 Bit 2 Bit 1 Bit 0 PWM3EN PWM2EN PWM1EN PWM0EN - - PWMD0[9:8] PWMD0[7:0] BEh PWMP1 - - - - B1h PWMP2 - - B2h - - - PWMD1[9:8] PWMP3 - - B4h - - - PWMD2[9:8] - - CFh - - - - PWMD3[9:8] 4 - 00H 00H 00H 00H - PWMMD[9:8] PWMMD[7:0] 5 00H 00H PWMD3[7:0] CEh 00H 00H PWMD2[7:0] B3h RESET 00H PWMD1[7:0] BFh Mnemonic: PWMC 7 6 PWMCS[2:0] Bit 4 00H FFH Address: B5h 3 2 1 0 Reset PWM3EN PWM2EN PWM1EN PWM0EN 00H PWMCS[2:0]: PWM clock select. PWMCS [2:0] Mode 000 Fosc 001 Fosc/2 010 Fosc/4 011 Fosc/6 100 Fosc/8 101 Fosc/12 110 Timer 0 overflow 111 Timer 0 external input (P3.4/T0) PWM3EN: PWM channel 3 enable control bit. PWM3EN = 1 – PWM channel 3 enable. PWM3EN = 0 – PWM channel 3 disable. PWM2EN: PWM channel 2 enable control bit. PWM2EN = 1 – PWM channel 2 enable. PWM2EN = 0 – PWM channel 2 disable. PWM1EN: PWM channel 1 enable control bit. PWM1EN = 1 – PWM channel 1 enable. PWM1EN = 0 – PWM channel 1 disable. PWM0EN: PWM 0 enable control bit. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 58 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 PWM0EN = 1 – PWM channel 0 enable. PWM0EN = 0 – PWM channel 0 disable. Mnemonic: PWMD0H 7 6 5 PWMP0 Mnemonic: PWMD0L 7 6 5 4 - 3 - 4 3 PWMD0[7:0] 2 - 2 Address: BCh 1 0 Reset PWMD0[9:8] 00H 1 Address: BDh 0 Reset 00h PWMP0: PWM channel 0 idle polarity select. “0” – PWM channel 0 will idle low. “1” – PWM channel 0 will idle high. PWMD0[9:0]: PWM channel 0 data register. Mnemonic: PWMD1H 7 6 5 PWMP1 Mnemonic: PWMD1L 7 6 5 4 - 3 - 4 3 PWMD1[7:0] 2 2 Address: BEh 1 0 Reset PWMD1[9:8] 00H 1 Address: BFh 0 Reset 00H PWMP1: PWM channel 1 idle polarity select. “0” – PWM channel 1 will idle low. “1” – PWM channel 1 will idle high. PWMD1[9:0]: PWM channel 1 data register. Mnemonic: PWMD2H 7 6 5 PWMP2 Mnemonic: PWMD2L 7 6 5 4 - 3 - 4 3 PWMD2[7:0] 2 2 Address: B1h 1 0 Reset PWMD2[9:8] 00H 1 Address: B2h 0 Reset 00H PWMP2: PWM channel 2 idle polarity select. “0” – PWM channel 2 will idle low. “1” – PWM channel 2 will idle high. PWMD2[9:0]: PWM channel 2 data register. Mnemonic: PWMD3H 7 6 5 PWMP3 Mnemonic: PWMD3L 7 6 5 4 - 3 - 4 3 PWMD3[7:0] 2 2 Address: B3h 1 0 Reset PWMD3[9:8] 00H 1 Address: B4h 0 Reset 00H PWMP3: PWM channel 3 idle polarity select. “0” – PWM channel 3 will idle low. “1” – PWM channel 3 will idle high. PWMD3[9:0]: PWM channel 3 data register. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 59 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic: PWMMDH 7 6 5 Mnemonic: PWMMDL 7 6 5 4 - 3 - 4 3 PWMMD[7:0] 2 2 Address: CEh 1 0 Reset PWMMD[9:8] 00H 1 Address: CFh 0 Reset FFH PWMMD[9:0]: PWM Max Data register. PWM count from 0000h to PWMMD[9:0]. When PWM count data equal PWMMD[9:0] is overflow. PWMPx = 0 & PWMDx = 00h PWMPx = 0 & PWMDx ≠ 00h PWMPx = 1 & PWMDx = 00h PWMPx = 1 & PWMDx ≠ 00h PWMMD + 1 PWM clock PWMDx Leader pulse = PWM clock PWM period = 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 60 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 14 IIC 功能 这些IIC模块使用SCL(时钟)和SDA(数据)线来联系其他的IIC界面, 其速度可以由软件设置特殊寄 存器(SFR)中的IICBR[2:0] ,从而使其高达到400KBpS(最大值). IIC模块可以是主机也可以是从 机,,提供两个中断(RXIF,TXIF),并有两个地址以作数据传输,它将产生开始,在主机模式中,反 复启动和停止信号,在从机模式中,它将检测开始,反复启动和停止信号, 最大沟通的长度及连接设 备的数目被一个最大400pF 的电容所限制。 中断值为 6Bh. Mnemonic Direct Bit 7 Auxiliary register IIC 控制寄存器 IIC 状态寄存器 91h F9h F8h BRGS IICEN MStart IICA1 IIC 地址 1 寄存器 FAh IICA1[7:1] IICA2 IIC 地址 2 寄存器 FBh IICA2[7:1] IICRWD IICS2 IIC 读/写寄存器 IIC 状态寄存器 2 FCh FDh AUX IICCTL IICS Description - Mnemonic: AUX 7 6 5 BRGS P4CC P4SPI Bit 6 Bit 5 IIC function P4CC P4SPI MSS RXIF TXIF - 4 P4UR1 - 3 P4IIC Bit 4 Bit 3 Bit 2 P4UR1 MAS RDR P4IIC RStart TDR P0KBI IICRWD[7:0] AB_EN 2 P0KBI 1 - Bit 1 Bit 0 DPS IICBR[2:0] RXAK TXAK RW MATCH1 or RW1 MATCH2 or RW2 BF_EN AB_F BF RESET 00H 04H 00H A0H 60H 00H 00H Address: 91h 0 Reset DPS 00H P4IIC: P4IIC = 0 – IIC function on P1. P4IIC = 1 – IIC function on P4. Mnemonic: IICCTL 7 6 5 IICEN MSS 4 MAS 3 RStart 2 1 IICBR[2:0] Address: F9h 0 Reset 04h IICEN: IIC 模式使能 ICEN = 1,使能 IICEN = 0,禁止 MSS: 主\从机模式选择 MSS = 1, 选择主机模式 MSS = 0, 选择从机模式 软件必须在设置其他寄存器之前置位 MAS: 主模式的地址选择(仅在主机模式中) MAS = 0,使用IICA1 MAS = 1,使用 IICA2 RStart: 重启控制位(仅在主机模式中) 当该位被置位时,模块将产生一个启动条件到SDA 和SCL 线路(在当前ACK 之后),并发送存 储 在IICA1 或者IICA2 中的呼叫地址(由MAS 控制位选择),在地址发送出去后,此位将由硬件清 除 IICBR[2:0]: 波特率选择(仅在主机模式)这里的Fosc 为外部晶体或振荡器的频率,系统默认为Fosc/512 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 61 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 以便用户选择 IICBR[2:0] 000 001 010 011 100 101 110 111 Mnemonic: IICS 7 6 MStart RxIF 5 TxIF Baud rate Fosc/32 Fosc/64 Fosc/128 Fosc/256 Fosc/512 Fosc/1024 Fosc/2048 Fosc/4096 4 RDR 3 TDR 2 RxAK 1 TxAK Address: F8h 0 Reset RW 00h MStart: 主机起始控制位(仅在主模式中有效) 如该位被置位时,模块将产生一个启动条件到SDA 和SCL 线,并发送存储在IICA1 或者 IICA2 中 的呼叫地址(由MAS 控制位选择)。在软件清除该位后,该模式将产生一个终止条件至SDA 和SCL。 RxIF: 数据接收中断标志位 在IICRWD(IIC 读写数据缓存)载入一个新的接收数据时被置位;软件清零该位后,IIC 中 断标志 位(IICIF)将自动清零。 TxIF: 数据传输中断标志位 当所有位于转换寄存器中的位数据被传输时,该位被置位,来自IICRWD(IIC 读/写数据缓 存)的8 位数据被下载至转换寄存器中;软件清零该位后,IIC 中断标志位(IICIF)将自动清零。. RDR: 读取数据准备位 当新的字节被接收并存储在IICRWD 时,该位将由硬件置位,在获取来自IICRWD 中的 数据之后, 该位将被软件清零。只有当该位被清除时,IIC 模筷才可写如新的数据至IICRWD 中。 TDR: 传输数据准备位 当数据进入IICRWD 传输之后,该位需软件置位来通知IIC 模块数据发送出去。在IIC 模 块完成来 自IICRWD 的数据发送后,该位将自动被清除。 RxAK: 接收确认位. 置零,这意味着一个确认信号已经收到在完成 8 位数据传输总线上后. TxAK: 传输确认位. 当收到完整的 8 位数据, 此位将设置(NoAck) 或清除(Ack) 并传输到主机显 示接收状态. 事实上, 它是被作为一个字节的传输在第 9 位如 Fig. 14-1. RW: 从机模式的读取(接收)或写(传输) 在IIC总线. 当此位被清除, 表示从机模式在IIC总 线接收数据.(只从机模式) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 62 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Fig. 14-1: Acknowledgement bit in the 9th bit of a byte transmission Mnemonic: IICA1 7 6 5 4 IICA1[7:1] R/W 3 2 1 Address: FAH Reset 0 Match1 or RW1 A0H R or R/W Slave mode: IICA1[7:1]: IIC 地址寄存器 这是为从机模式的第一个 7-bit 的地址,它在一个地址(来自主机模式)接收后被检测 Match1: 当 IICA1 和来自主机模式方的接收地址匹配时,该位将被硬件置位,当 IIC 总线被停止时,该位将 被自动清除。 Master mode: IICA1[7:1]: IIC 地址寄存器 显示要与它通讯的从机的 7 位地址 RW1: 如模块被设置为 Mstart 或 Rstart bit,该位将被作为从机方的 RW 发送,它在 IIC 地址之后的抵 8th 位显示,如表 14-2。它用来告诉从属模式中将来的通信的方向。如设置为 1,模块在主模式中 为接收方,如是 0,模块在主模式中为传输方。 Fig. 14-2: RW bit in the 8th bit after IIC address 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 63 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic: IICA2 7 6 5 Address: FBh 4 IICA2[7:1] R/W 3 2 1 0 Match2 or RW2 R or R/W Reset 60h Slave mode: IICA2[7:1]: IIC 地址寄存器 这是为从机模式的第二个 7-bit 的地址, 它在一个地址(来自主机模式)接收后被检测 Match2: 当 IICA2 和来自主机模式方的接收地址匹配时,该位将被硬件置位,当 IIC 总线被停止时,该位将 被自动清除。 Master mode: IICA2[7:1]: IIC 地址寄存器 显示要与它通讯的从机的 7 位地址 RW2: 如模块被设置为 Mstart 或者 Rstart bit,该位将被作为从机方的 RW 发送,它用来告诉从机模式中 将来的通信的方向。如设置为 1,模块在主模式中为接收方,如是 0,模块在主模式中为传输方。 Mnemonic: IICRWD 7 6 5 4 3 IICRWD[7:0] 2 Address: FCh 0 Reset 00h 1 IICRWD[7:0]: IIC 读写缓存 在接收(读)模式中,接收的字节存储于此 在传输模式中,该字节通过该 SDA 被转换 Mnemonic: IICS2 Address: FDH 7 6 5 4 - - - - 3 AB_EN 2 1 0 Reset BF_EN AB_F BF 00H AB_EN: 仲裁失去了使能位. (仅主机模式) If set AB_EN bit, the hardware will check arbitration lost. Once arbitration lost occurred, hardware will return to IDLE state. If this bit is cleared, hardware will not care arbitration lost condition. Set this bit when multi-master and slave connection. Clear this bit when single master to single slave. BF_EN: 总线忙碌使能位. (仅主机模式) If set BF_EN bit, hardware will not generate a start condition to bus until BF=0. Clear this bit will always generate a start condition to bus when MStart is set. Set this bit when multi-master and slave connection. Clear this bit when single master to single slave. AB_F: 仲裁丢失位. (仅主机模式) In multi-master condition, when send out data bit “1” but return back “0”, bus arbitration lost occurred and this bit will be set. Software need to clear this bit and check until BF=0 to resend data again. BF: 总线忙碌位. (仅主机模式) If detect SCL=0 or SDA=0 or bus start, this bit will be set. If detect stop and a period passed(about 4.7us), this bit will be cleared. This bit can be cleared by software to return ready state. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 64 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 15 SPI 功能 串行外围接口(SPI)是一个同步串行接口,允许主机和从机沟通. 中断向量为4Bh. SPI_MOSI:在主机模式中数据输出,在从机模式中数据输入。 SPI_MISO:在主模式中数据输入,在从机模式中数据输出 SPI_SCK:从机模式时钟输出,以上数据与同步 SPI_SS:从机模式中输入 从机设备检测该信号来判断是否被主模式选择。在主机模式中,它可选择所需的从机设备的任何IO的 值为零。如15-1下图所示的一个例子将显示主机与从机的4路信号之间的关系。 Master Slave 2 Slave 1 MOSI MISO CLK IO IO MOSI MISO CLK MOSI MISO CLK SS SS Fig. 15-1: SPI signals between master and slave devices 这仅是单通道SPI的界面,SPI SFRs 如下所示: SPI Description Dire ct Bit 7 AUX SPIC1 SPIC2 SPIS SPITXD SPIRXD Auxiliary register SPI 控制寄存器 1 SPI 控制寄存器 2 SPI 状态寄存器 SPI 传输数据缓冲 SPI 接收数据缓冲 91h F1h F2h F5h F3h F4h BRGS SPIEN SPIFD - Mnemonic: AUX 7 6 5 BRGS P4CC P4SPI Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 SPI function P4CC P4SPI P4UR1 P4IIC P0KBI DPS SPIMSS SPISSP SPICKP SPICKE SPIBR[2:0] TBC[2:0] RBC[2:0] SPIMLS SPIOV SPITXIF SPITDR SPIRXIF SPIRDR SPIRS SPITXD[7:0] SPIRXD[7:0] 4 P4UR1 3 P4IIC 2 P0KBI 1 - RESET 00H 08H 00H 40H 00H 00H Address: 91h 0 Reset DPS 00H P4SPI: P4SPI = 0 – SPI function on P1. P4SPI = 1 – SPI function on P4. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 65 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic: SPIC1 7 6 5 SPIEN SPIMSS SPISSP 4 SPICKP Address: F1h 3 2 1 0 SPICKE SPIBR[2:0] Reset 08h SPIEN: SPI 模式使能位. “1” SPI 功能使能. “0” SPI 功能禁止. SPIMSS: 主/从机模式选择位 “1” 主机模式. “0” 从机模式. SPISSP: 从机选择的极性(仅从机模式有效) “1” -高电平动作. “0” -低电平动作. SPICKP: 时钟空闲极性(仅主机模式有效) “1” –空闲时 SCK 为高电平. Ex : “0” -空闲时 SCK 为低电平. Ex : SPICKE: 时钟采样相位选择位. “1” –数据锁存在上升沿 “0” –数据锁存在下降沿. *为确保数据锁存的稳定性,SM59R16A2/SM59R08A2 产生的输出数据,无论对方可锁存稳定的数 据是在上升沿或下降沿,都将作为考虑在以下示例中. sufficient set-up time sufficient hold time SPIBR[2:0]: SPI 速率选择位(仅主机模式有效) ,这里的 Fosc 为外部时钟或振荡器的频率: SPIBR[2:0] Baud rate 0:0:0 Fosc/4 0:0:1 Fosc/8 0:1:0 Fosc/16 0:1:1 Fosc/32 1:0:0 Fosc/64 1:0:1 Fosc/128 1:1:0 Fosc/256 1:1:1 Fosc/512 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 66 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic: SPIC2 7 6 5 SPIFD TBC[2:0] 4 3 - 2 1 RBC[2:0] Address: F2h 0 Reset 00h SPIFD: 全双工通信模式使能位. “1” : 使能全双工模式. “0” : 禁止全双工模式. 当此位被置位时,TBC[2;0]和 RBC[2;0]将被重置并归零。也就是说,只有 8 位数据通讯在全双工模 式中被允许,当主机模式通过 MOSI 线传输数据到从机模式中,意味着带有数据输入和输出的全双 工模式在同样的 SCK 时钟中是同步的,如下所示. TBC[2:0]: SPI 发送数据位,这里 1-8 位数据除了在全双工模式中是被允许的 TBC[2:0] Bit counter 0:0:0 8 bits output 0:0:1 1 bit output 0:1:0 2 bits output 0:1:1 3 bits output 1:0:0 4 bits output 1:0:1 5 bits output 1:1:0 6 bits output 1:1:1 7 bits output RBC[2:0]: SPI 接收数据位,这里 1-8 位数据除了在全双工模式中是被允许的 RBC[2:0] Bit counter 0:0:0 8 bits input 0:0:1 1 bit input 0:1:0 2 bits input 0:1:1 3 bits input 1:0:0 4 bits input 1:0:1 5 bits input 1:1:0 6 bits input 1:1:1 7 bits input 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 67 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic: SPIS 7 6 5 SPIMLS SPIOV 4 SPITXIF 3 SPITDR 2 SPIRXIF Address: F5h 0 Reset SPIRS 40h 1 SPIRDR SPIMLS: MSB 或者 LSB 输入/输出优先 “1” : MSB 输入/输出优先 “0” : LSB 输入/输出优先 SPIOV: 溢出标志位 当 SPIRDR 被置位(SPIRXR 中的一个字节,但未被移除)且下一数据也进入时(这里不具备锁存 功能),该标志将被设置并导致在 SPIRXD 接收的数据被溢出毁坏,当 SPIRDR 被清除时,它也被 硬件清除。 SPITXIF: 传输中断标志 当 SPITXD 寄存器的数据被下载到转换寄存器时,该位被置位 SPITDR: 传输数据就绪位 当 MCU 结束对 SPITXD 寄存器读写数据时,MCU 须将改位置位,以通知 SPI 模块发送数据。在 SPI 模块完成从 SPITXD 或 SPITXD 发送数据到下载到转换寄存器后,该位将自动被清除。 SPIRXIF: 接受中断标志位 在 SPIRXD 被装载一个新的接收数据后,该位被置位 SPIRDR: 接收数据就绪位 当一字节被接收时,SPIRDR 被设为一个标志去通知 MCU。在获取来自 SPIRXD 寄存器的数据后, MCU 须清除该位。如 SPI 模块向传输方写入新的数据至 SPIRXD 中且在该位清零之前,该数据将 随后被覆盖。 SPIRS: 接收起始位 该位被置位以此通知 SPI 模块来接收位于 SPIRXD 寄存器中的数据 Mnemonic: SPITXD 7 6 5 4 3 SPITXD[7:0] 2 1 0 Address: F3h Reset 00h SPITXD[7:0]: 传输数据缓冲. Mnemonic: SPIRXD 7 6 5 4 3 SPIRXD[7:0] 2 1 Address: F4h 0 Reset 00h SPIRXD[7:0]: 接收数据缓冲. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 68 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 16 KBI – 键盘接口 键盘接口(KBI) 可被连接一个 8 x n 矩阵键盘或任何普通的设备. 具有 8 路输入高或低的可编程的中 断能力. 该 8 路接口既可通过 P2 口或 P0 口做输入,又可通过外部中断从 IDLE 和 STOP 模式中退出. 且输出相互彼此独立,但共享同一中断向量 5Bh. Figure 16.1 keyboard interface block diagram Figure 16.2 keyboard input circuitry KBI Description Direct Bit 7 AUX Auxiliary register KBI 电位选择寄存 器 KBI 输入使能位 KBI 标志位 KBI 去反弹控制寄 存器 91h BRGS 93h KBLS7 KBLS6 KBLS5 94h 95h KBE7 KBF7 KBE6 KBF6 96h KBDEN - KBLS KBE KBF KBD Bit 6 Bit 5 Bit 4 KBI function P4CC P4SPI P4UR1 Bit 3 Bit 2 Bit 1 Bit 0 RESET P4IIC P0KBI - DPS 00H KBLS4 KBLS3 KBLS2 KBLS1 KBLS0 00H KBE5 KBF5 KBE4 KBF4 KBE3 KBF3 KBE2 KBF2 KBE1 KBF1 KBE0 KBF0 00H 00H - - - - KBD1 KBD0 00H 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 69 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 Mnemonic: AUX 7 6 BRGS P4CC 5 P4SPI 4 P4UR1 3 P4IIC 2 P0KBI 1 - Address: 91h 0 Reset DPS 00H P0KBI: P0KBI = 0 – KBI 功能在 P2. P0KBI = 1 – KBI 功能在 P0. Mnemonic: KBLS 7 6 KBLS.7 KBLS.6 5 KBLS.5 4 KBLS.4 3 KBLS.3 2 KBLS.2 1 KBLS.1 Address: 93h 0 Reset KBLS.0 00h 3 KBE.3 2 KBE.2 1 KBE.1 Address: 94h 0 Reset KBE.0 00h KBLS.7: KBI7 电位选择位 0 : 使能 KBI7 低电平检测. 1 : 使能 KBI7 高电平检测. KBLS.6: KBI6 电位选择位 0 : 使能 KBI6 低电平检测. 1 : 使能 KBI6 高电平检测. KBLS.5: KBI5 电位选择位 0 : 使能 KBI5 低电平检测. 1 : 使能 KBI5 高电平检测. KBLS.4: KBI4 电位选择位 0 : 使能 KBI4 低电平检测. 1 : 使能 KBI4 高电平检测. KBLS.3: KBI3 电位选择位 0 : 使能 KBI3 低电平检测. 1 : 使能 KBI3 高电平检测. KBLS.2: KBI2 电位选择位 0 : 使能 KBI2 低电平检测. 1 : 使能 KBI2 高电平检测. KBLS.1: KBI1 电位选择位 0 : 使能 KBI1 低电平检测. 1 : 使能 KBI1 高电平检测. KBLS.0: KBI0 电位选择位 0 : 使能 KBI0 低电平检测. 1 : 使能 KBI0 高电平检测. Mnemonic: KBE 7 6 KBE.7 KBE.6 5 KBE.5 4 KBE.4 KBE.7: KBI7 使能位 0 : 使能标准 I/O 口. 1 : 使能 KBF 寄存器中的 KBF.7 位产生一中断请求. KBE.6: KBI6 使能位 0 : 使能标准 I/O 口. 1 : 使能 KBF 寄存器中的 KBF.6 位产生一中断请求. KBE.5: KBI5 使能位 0 : 使能标准 I/O 口. 1 : 使能 KBF 寄存器中的 KBF.5 位产生一中断请求. KBE.4: KBI4 使能位 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 70 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 0 : 使能标准 I/O 口. 1 : 使能 KBF 寄存器中的 KBF.4 位产生一中断请求. KBE.3: KBI3 使能位 0 : 使能标准 I/O 口. 1 : 使能 KBF 寄存器中的 KBF.3 位产生一中断请求. KBE.2: KBI2 使能位 0 : 使能标准 I/O 口. 1 : 使能 KBF 寄存器中的 KBF.2 位产生一中断请求. KBE.1: KBI1 使能位 0 : 使能标准 I/O 口. 1 : 使能 KBF 寄存器中的 KBF.1 位产生一中断请求. KBE.0: KBI0 使能位 0 : 使能标准 I/O 口. 1 : 使能 KBF 寄存器中的 KBF.0 位产生一中断请求. Mnemonic: KBF 7 6 KBF.7 KBF.6 5 KBF.5 4 KBF.4 3 KBF.3 2 KBF.2 1 KBF.1 Address: 95h 0 Reset KBF.0 00h KBF.7: KBI7 标志位 当 KBI7 检测到一编程水平线时,该位由硬件置位. 如 KBE.7 同样被置位时将产生一个 KBI 中断请求,该位须软件清零. KBF.6: KBI6 标志位 当 KBI6 检测到一编程水平线时,该位由硬件置位. 如 KBE.6 同样被置位时将产生一个 KBI 中断请求,该位须软件清零. KBF.5: KBI5 标志位 当 KBI5 检测到一编程水平线时,该位由硬件置位. 如 KBE.5 同样被置位时将产生一个 KBI 中断请求,该位须软件清零. KBF.4: KBI4 标志位 当 KBI4 检测到一编程水平线时,该位由硬件置位. 如 KBE.4 同样被置位时将产生一个 KBI 中断请求,该位须软件清零. KBF.3: KBI3 标志位 当 KBI3 检测到一编程水平线时,该位由硬件置位. 如 KBE.3 同样被置位时将产生一个 KBI 中断请求,该位须软件清零. KBF.2: KBI2 标志位 当 KBI2 检测到一编程水平线时,该位由硬件置位. 如 KBE.2 同样被置位时将产生一个 KBI 中断请求,该位须软件清零. KBF.1: KBI1 标志位 当 KBI1 检测到一编程水平线时,该位由硬件置位. 如 KBE.1 同样被置位时将产生一个 KBI 中断请求,该位须软件清零. KBF.0: KBI0 标志位 当 KBI0 检测到一编程水平线时,该位由硬件置位. 如 KBE.0 同样被置位时将产生一个 KBI 中断请求,该位须软件清零. Mnemonic: KBD 7 6 KBDEN - 5 - 4 - 3 - 2 - 1 KBD.1 Address: 96H 0 Reset KBD.0 00H KBDEN: KBI 去反弹使能位. 默认使能. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 71 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 KBDEN = 0, 使能去反弹功能. 去反弹时间于KBD [1:0] 选择. KBDEN = 1, 禁能去反弹功能. KBI输入口不需要去反弹机制. KBD[1:0]: KBI 去反弹时间选择. 当 KBDEN = “0”, 默认去反弹时间为 320 ms. KBD[1:0] = 00, 去反弹时间为 320 ms. KBD[1:0] = 01, 去反弹时间为 160 ms. KBD[1:0] = 10, 去反弹时间为 80 ms. KBD[1:0] = 11, 去反弹时间为 40 ms. 17 LVI – 低压中断 中断向量为63h. Mnemonic: LVC 7 LVI_EN 6 - 5 LVRXE Address: E6h 4 - 3 - 2 - 1 - 0 - Reset 00H LVI_EN: 使能低电压中断功能. LVI_EN = 0 : 禁能低电压检测中断功能. LVI_EN = 1 : 使能低电压检测中断功能. LVRXE: 使能外部低电压重置功能. LVRXE = 0 : 禁能外部低电压重置功能. LVRXE = 1 : 使能外部低电压重置功能. 低电压检测电位 SM59R04A2C SM59R04A2L LVI 4.0V 2.7V LVRX 3.6V 2.5V 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 72 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 18 10 位模拟数字转换器 (ADC) The SM59R04A2 2提供了4通道的10位ADC. 数字输出采样的模拟信号放入ADCD[9:0]中,而ADC的中 断向量则为53h. .以下表格显示了ADC在实际应用中的精度: Mnemonic ADCC1 ADCC2 ADCDH ADCDL ADCCS Description Direct ADC Control register 1 ADC Control register 2 ADC data high byte ADC data low byte ADC clock select Bit 7 Bit 6 Bit 5 ADC Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ABh ADC7EN ADC6EN ADC5EN ADC4EN ADC3EN ADC2EN ADC1EN ADC0EN Start ACh ADh AEh AFh ADJUST - - - ADCCH[2:0] ADCDH [7:0] ADCDL [7:0] - - - ADCCS[4:0] RESET 00H 00H 00H 00H 00H Mnemonic: ADCC1 Address: ABh 7 6 5 4 3 2 1 0 Reset ADC7EN ADC6EN ADC5EN ADC4EN ADC3EN ADC2EN ADC1EN ADC0EN 00H ADC7EN: 使能 ADC 通道 7. ADC7EN = 1 –使能 ADC 通道 7 ADC6EN: 使能 ADC 通道 6. ADC6EN = 1 –使能 ADC 通道 6 ADC5EN: 使能 ADC 通道 5. ADC5EN = 1 –使能 ADC 通道 5 ADC4EN: 使能 ADC 通道 4. ADC4EN = 1 –使能 ADC 通道 4 ADC3EN: 使能 ADC 通道 3. ADC3EN = 1 –使能 ADC 通道 3 ADC2EN: 使能 ADC 通道 2. ADC2EN = 1 –使能 ADC 通道 2 ADC1EN: 使能 ADC 通道 1. ADC1EN = 1 –使能 ADC 通道 1 ADC0EN: 使能 ADC 通道 0. ADC0EN = 1 –使能 ADC 通道 0 Mnemonic: ADCC2 7 6 5 4 3 Start ADJUST - - - 2 Address: ACh Rese 1 0 t ADCCH[2:0] 00H Start: 当该位被置位时,ADC 将启动转换. ADJUST: ADC 数字输出格式调整. ADJUST = 0: (默认) ADC 数字输出高字节 ADCD [9:2] = ADCDH [7:0]. ADC 数字输出低字节 ADCD [1:0] = ADCDL [1:0]. ADJUST = 1: ADC 数字输出高字节 ADCD [9:8] = ADCDH [1:0]. ADC 数字输出低字节 ADCD [7:0] = ADCDL [7:0]. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 73 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 ADCCH[2:0]: ADC 通道选择. ADCCH [2:0] 000 001 010 011 100 101 110 111 通道 0 1 2 3 4 5 6 7 ADJUST = 0: Mnemonic: ADCDH Address: ADh 7 6 5 4 3 2 1 0 Reset ADCD[9] ADCD[8] ADCD[7] ADCD[6] ADCD[5] ADCD[4] ADCD[3] ADCD[2] 00H Mnemonic: ADCDL 7 6 - 5 - ADJUST = 1: Mnemonic: ADCDH 7 6 - 4 - 5 - 4 - 3 - 2 - 3 - 1 ADCD[1] 2 - Address: AEh 0 Reset ADCD[0] 00H Address: ADh 1 0 Reset ADCD[9] ADCD[8] 00H Mnemonic: ADCDL Address: AEh 7 6 5 4 3 2 1 0 Reset ADCD[7] ADCD[6] ADCD[5] ADCD[4] ADCD[3] ADCD[2] ADCD[1] ADCD[0] 00H ADCD[9:0]: ADC data register. Mnemonic: ADCCS 7 6 - 5 - Address: AFh 4 3 2 1 0 Reset ADCCS[4] ADCCS[3] ADCCS[2] ADCCS[1] ADCCS[0] 00H ADCCS[4:0]: ADC clock select. *The ADC clock maximum 12.5MHz. *The ADC Conversion rate maximum 500KHz. ADCCS[4:0] ADC Clock(Hz) Clocks for ADC Conversion 00000 Fclk/2 46 00001 Fclk/4 92 00010 Fclk/6 138 00011 Fclk/8 184 00100 Fclk/10 230 00101 Fclk/12 276 00110 Fclk/14 322 00111 Fclk/16 368 01000 Fclk/18 414 01001 Fclk/20 460 01010 Fclk/22 506 01011 Fclk/24 552 01100 Fclk/26 598 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 74 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 Fclk/28 Fclk/30 Fclk/32 Fclk/34 Fclk/36 Fclk/38 Fclk/40 Fclk/42 Fclk/44 Fclk/46 Fclk/48 Fclk/50 Fclk/52 Fclk/54 Fclk/56 Fclk/58 Fclk/60 Fclk/62 Fclk/64 644 690 736 782 828 874 920 966 1012 1058 1104 1150 1196 1242 1288 1334 1380 1426 1472 Fclk 2 ´ ( ADCCS + 1) ADC_Clock ADC _ Conversion _ Rate = 23 ADC _ Clock = 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 75 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 19 在系统编程(Internal ISP) SM59R04A2 可通过内部硬件电路产生 flash 控制讯号.用户利用 flash 控制寄存器,flash 地址寄存器和 flash 数据寄存器在不需要将 SM59R04A2 移出系统的情况下实现 ISP 功能.SM59R04A2 提供了可以实 现 flash 编程/芯片擦除/页擦除/保护功能的 flash 控制讯号.用户需要去设计和使用任何 SM59R04A2 可 以输入数据的接口,然后利用 ISP 服务程序去实现 flash 的编程/芯片擦除/页擦除/保护功能. 19.1 ISP 服务程序 ISP 服务程序是由用户自行开发并放置于 ISP 服务程序区的韧件. 用户可依需求决定 ISP 服务程序 的大小. 另外用户需将 ISP 服务程序刻录至 SM59R04A2 芯片中才可使用 ISP 功能 由于 ISP 服务程序是由用户自行开发,它需包括 flash 数据寄存器的刻录及 SM59R04A2 芯片与上 位机的通讯协议. 举例来说, 使用者使用 SM59R04A2 芯片上之 UART 接口与上位机作数据之传送 及接收,则 SM59R04A2 芯片上之 ISP 服务程序内需有波特率设定,为避免数据传输错误需有数 据总合检查或同位检查或其他错误检查机制 于正常动作模式或空闲模式可启动 ISP 服务程序,于停止模式则不行. 19.2 锁定位(N) 锁定位 N 有两个功能:一是配置服务程序的大小,另一个则是通过 flash 擦除功能锁定 ISP 服务程序 的空间. ISP 服务程序地址位从$30000 到$3FFF.它可被分为 N*256 字节(N=0-16).当 N 为 0 时没有 ISP 功 能.所有的 16k flash 都被用来做程序存储.当 N 为 1 时,ISP 服务程序占用 256 字节,剩余的 15,75k flash 可被用做程序存储.ISP 服务程序的最大空间为 4kB(当 N 为 16 时).在这样的配置下,可用的程 序存储空间为 12KB. 在 N 定下来后, SM59R04A2 会从上往下(从最顶端到地址$3FFF)保存 ISP 服务程序空间.ISP 服务 程序的开始地址位于$3x00(x 为任意数字,以 N 为准,如表 19-1 所示) 锁定位 N 功能不同于 flash 保护功能,flash 擦除功能可以擦除除 ISP 服务程序空间外的所有 flash 记忆体.如 flash 没有被保护,ISP 服务程序的内容一直可被读.如 flash 被保护,所有的 flash 程序空间 包括 ISP 服务程序空间不能被读. Table 19.1 ISP code area. N 0 1 2 3 4 5 6 ISP service program address No ISP service program 256 bytes ($3F00h ~ $3FFFh) 512 bytes ($3E00h ~ $3FFFh) 768 bytes ($3D00h ~ $3FFFh) 1.0 K bytes ($3C00h ~ $3FFFh) 1.25 K bytes ($3B00h ~ $3FFFh) 1.5 K bytes ($3A00h ~ $3FFFh) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 76 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 7 8 9 10 11 12 13 14 15 16 1.75 K bytes ($3900h ~ $3FFFh) 2.0 K bytes ($3800h ~ $3FFFh) 2.25 K bytes ($3700h ~ $3FFFh) 2.5 K bytes ($3600h ~ $3FFFh) 2.75 K bytes ($3500h ~ $3FFFh) 3.0 K bytes ($3400h ~ $3FFFh) 3.25 K bytes ($3300h ~ $3FFFh) 3.5 K bytes ($3200h ~ $3FFFh) 3.75 K bytes ($3100h ~ $3FFFh) 4.0 K bytes ($3000h ~ $3FFFh) ISP service program configurable in N*256 byte (N= 0 ~ 16) 19.3 对 ISP 服务程序编程 在锁定位 N 被设置并 ISP 服务程序被编程后,ISP 服务程序记忆体被自动的保护(锁定).锁定位 N 有 它自己的编程/擦除 次数.这不同于 flash 记忆体的编程/擦除次数.因此,被锁定的 ISP 服务程序不可 被 flash 擦除功能所擦除.如客户需要擦除锁定的 ISP 服务程序,他只可以通过烧写器实现.当 SM59R04A2 在系统时,客户不可改变 ISP 服务程序. 19.4 启动 ISP 服务程序 要启动 ISP 服务程序就是要在 ISP 服务程序的开始地址装载程序计数(PC)并执行它.有四种实现的 方法: (1) 空复位.用首地址为空的硬件复位会在 ISP 服务程序的开始地址装载 PC.硬件复位包括 内部(电源或重启)和外部重置端口复位. (2) 执行 jump 指令可在 ISP 服务程序的开始地址装载 PC (3) 通过硬件设置进入 ISP 服务程序.用户可通过设置当硬件复位时,2.6,p2.7’为低’或 p4.3’ 为低’,SM59R04A2 会强行进入 ISP 服务程序.硬件复位包括内部(电源或重启)和外部 键盘复位.在应用系统设计时,用户因该对 p2.6,p2.7 或 p4.3 在复位时间内防止 SM59R04A2 进入 ISP 服务程序. (4) 通过硬件设置进入 ISP 服务程序.p3.0 在硬件复位时会侦测到 2 个时钟讯号. 硬件复位 包括内部(电源或重启)和外部键盘复位 在硬件复位周期内, 硬件可以侦测 P2.6/P2.7/P4.3/P3.0 状态.如果他们满足了上面的其中一个条件, 芯片将会自动跳转到 ISP 模式.在 ISP 服务程序被执行后,用户需要对 SM59R04A2 进行复位,通过 硬件复位或 WDT,或是’JUMP’至地址$0000 来实现重启程序. 为了用户的不同应用情况,这里有 8 种不同的进入机制.这个进入方法可以在烧路器或 ISP 中选取. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 77 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 (1) 首地址为空例如$0000 = 0xFF. 且由内部重置信号触发. (2) 首地址为空例如$0000 = 0xFF. 且由外部重置信号触发. (3) P2.6 = 0 & P2.7 = 0. 且由内部重置信号触发. (4) P2.6 = 0 & P2.7 = 0. 且由外部重置信号触发. (5) P4.3 = 0. 且由内部重置信号触发. (6) P4.3 = 0. 且由外部重置信号触发. (7) P3.0 输入 2 个时钟. 且由内部重置信号触发. (8) P3.0 输入 2 个时钟. 且由外部重置信号触发. 19.5 ISP register – TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC Mnemonic TAKEY IFCON ISPFAH ISPFAL ISPFD ISPFC Description Bit 7 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 Bit 6 Bit 5 ISP function F7h Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TAKEY [7:0] ITS 8Fh CDPR - - RESET 00H ALEC.1 ALEC.0 EMEN ISPE 00H E1h ISPFAH [7:0] FFH E2h ISPFAL [7:0] FFH E3h ISPFD [7:0] FFH E4h EMF2 EMF1 EMF3 EMF4 - ISPF.2 ISPF.1 ISPF.0 00H Address: F7H Mnemonic: TAKEY 7 6 5 4 3 TAKEY [7:0] 2 1 0 Reset 00H ISP 使能位(ISPE)默认为只读,软件必须连续的对 TAKEY 寄存器写三个特定值 55h,AAH,和 5Ah,使 ISPE 位可写.这是: MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah Mnemonic: IFCON 7 6 ITS CDPR 5 - 4 - 3 ALEC[1] 2 ALEC[0] 1 EMEN Address: 8FH 0 Reset ISPE 00H 位 0(ISPE) of IFCON 是 ISP 使能位,用户可通过设置 ISPE 位为 1 使能 SM59R04A2 的全部 ISP 功能,通过设置 ISPE 为 0 来禁止全部 ISP 功能.ISPE 的作用象一个加密匙.用户可禁止所有的 ISP 功能以保护软件程序不被意外的擦除.ISP 寄存器 ISPFAH,ISPFAL,ISPFD,与 ISPFC 默认 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 78 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 为只读.软件必须将 ISPE 位设为 1 以使上述 4 个寄存器为可写. Mnemonic: ISPFAH Address: E1H 7 6 5 4 3 2 1 0 Reset ISPFAH7 ISPFAH6 ISPFAH5 ISPFAH4 ISPFAH3 ISPFAH2 ISPFAH1 ISPFAH0 FFH ISPFAH [7:0]: Flash address-high for ISP function 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]: Flash address-Low for ISP function ISPFAH 与 ISPFAL 提供了 16 位 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]: Flash data for ISP function. The ISPFD provide the 8-bit data register for ISP function. Mnemonic: ISPFC 7 6 5 EMF1 EMF2 EMF3 4 EMF4 3 - 2 ISPF[2] 1 ISPF[1] Address: E4H 0 Reset ISPF[0] 00H EMF1: 进入机制 (1) 标志位, 由复位信号清除. (仅读) EMF2: 进入机制 (2) 标志位, 由复位信号清除. (仅读) EMF3: 进入机制 (3) 标志位, 由复位信号清除. (仅读) EMF4: 进入机制 (4) 标志位, 由复位信号清除. (仅读) ISPF [2:0]: ISP功能选择位. ISPF[2:0] ISP function 000 Byte program 001 Chip protect 010 Page erase 011 Chip erase 100 Write option 101 Read option 110 Erase option 111 闪存一页有256字节 可设定功能选择位如内部复位时间选择(于1.4.1节描述)、时钟源来源选择 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 79 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 (于1.5节描述)、P4[4:7] 功能选择(于第5章描述)、看门狗功能启动位(于第 10章描述)、或 ISP 进入机制选择(于第19章描述)。 只能读取功能选择位于芯片被加密后. 选择的 ISP 功能在软件对 ISPFC 寄存器写入数据时将会执行一次. 要实现字节编程/页擦除 ISP 功能,用户需要在开始时指定 flash 地址.在实现页擦除功能 时,SM59R04A2 将除 ISPFAH 与 ISPFAL 寄存器中显示地址所在的整页. e.g. 闪存地址: $XYMN 将对地址 $XY00 to $XYFF 执行页抹除 要实现芯片擦除 ISP 功能,SM59R04A2 将擦除除 ISP 服务程序外的所有 flash 程序记忆体.要 实现芯片保护 ISP 功能,SM59R04A2flash 内容将被读为#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 可写入属性 启动 SM59R04A2 ISP 功能 设定闪存高字节地址,10H 设定闪存低字节地址,05H 设定将写入闪存之资料,资料= 22H 开始将写入闪存之资料#22H 写入地址$1005H 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 80 Ver.A SM59R04A2 11/2009 SM59R04A2/SM59R03A2/SM59R02A2 内嵌16KB/12KB/8KB 具有 ISP功能的Flash 和1KB RAM的8位控制器 工作环境 Symbol Description Min. Typ. Max. Unit. Remarks TA Operating temperature -40 25 85 ℃ Ambient temperature under bias VDD33 Supply voltage 2.7 3.3 3.6 V VDD5 Supply voltage 4.5 5.0 5.5 V 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 IDMMX-0043 81 Ver.A SM59R04A2 11/2009