SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 产品目录 SM59R16A2L25, SM59R16A2C25 SM59R08A2L25, SM59R08A2C25 描述 SM59R16A2/SM59R08A2 是 1T(1 时钟周期 /1 机器周期)的 8-bit 的单片机。它有专为程序而内 嵌的 64K/32k 字节的闪存(flash),并可执行完全 兼容 MCS-51 的所有 ASM51 指令。 Features z z z z z z z SM59R16A2/SM59R08A2 有 2K 的片上 SRAM,48 个 GPIOS,多串行接口以及如以下所描 述的多种外部资源,它可通过编程器进行编程,其片 上 ICE 功能为客户在开发初期提供了方便。 z SM59R16A2/ SM59R08A2 的高性能能在短时 间内完成复杂的动作,大约有 1/3 的指令是 1T,其平 均速度是传统 8051 的 8 倍,是所有 1T 51 系列中 最快的,其良好的 EMI 和 ESD 性能对在许多应用 中都有很好的帮助。 z z z z z z z z z z z z z 订货信息 SM59R16A2(SM59R08A2)ihhkL yymmv, i: 工艺标志 {L = 2.7V ~ 3.6V, C = 4.5V ~ 5.5V} hh: 工作时钟,单位为 MHz {25} k: 封装形式后缀 {as below table} L:无铅标志 {无文字即含铅,”P” 即无铅 } yy: 年, mm: 月 v: 版本标志{ , A, B,…} Postfix W U Package 64L TQFP 64L LQFP Pin / Pad Configuration Page 2,3 Page 2,3 z z z z z 工作电压:2.7V~3.6V 或 4.5V~5.5V 高速 1T 架构,最高可达 25MHZ 1T/2T 模式可即时选择 指令设置兼容 MCS-51 内置 OSC, 范围为 1MHz~24MHz 64K/32K 字节的片上程序存储器 外扩 RAM 地址最大可达 64K 字节,为外扩 RAM 存取用的标准 12T 接口 256 字节的标准的 8052 RAM,2K 字节的带有 使能功能的片上外扩 RAM 双 16-bit 数据指针 (DPTR0&DPTR1) 两个全双工通信的串行接口(UART0 & UART1), 三个 16-bit 的定时器/计数器(计时器 0,1,2) 48 个通用 I/O 具有两级优先权的外部中断 0,1 可编程的看门狗定时器(WDT) 一个 IIC 接口(主/从机模式) 一个 SPI 接口(主/从机模式) 4 路脉宽调制(可选择 12-bit,10-bit,8-bit ) 4 路 16bit 比较/抓捕/装载功能 4 路 10bit 模拟数字转换(ADC) ISP/IAP 功能 EEPROM 功能 片上在线调试功能 快速乘除法器(MDU):16*16 32/16, 16/16, 32-bit L/R 转换以及标准的 32bit P1 口可为 8 个或更多扩展外部中断的 EEI 接 口 增强用户代码保护 电源管理单元空闲及掉电模式 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 1 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 封装图 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 2 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 3 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 系统方框图 WR RD RXD0 TXD0 RXD1 TXD1 PWM0 ~ PWM3 ADC0 ~ ADC3 IIC_SCL IIC_SDA UART 0 SRAM 2KBytes UART 1 PWM ADC SRAM 256Bytes Flash 64KBytes MDU Watchdog Interrupt ICE ICP Interface control IIC SPI MISO MOSI CLK SS KBI KBI Port Port 0 Port 0 Port 1 Port 1 Port 2 Port 2 Port 3 Port 3 Port 4 Port 4 Port 5 Port 5 Timer0/1 Timer2 & CCU Port Control Port 0 ~ Port 5 T0 T1 CC0 ~ CC3 T2 T2EX 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 4 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 管脚描述 Pin 1 2 3 4 5 6 7 8 9 10 11 12 Name P5.2 P5.3 P5.4 P5.5 P5.6 P5.7 VDDIO VSSIO P4.0/PWM2 P4.1/PWM3 P4.2 P4.3 I/O i/o i/o i/o i/o i/o i/o i/o i/o i/o i/o Description P5 口的位 2 P5 口的位 3 P5 口的位 4 P5 口的位 5 P5 口的位 6 P5 口的位 7 IO 线电源 IO 线电源地 P4 口的位 0 &宽脉调制通道 2 P4 口的位 1 &宽脉调制通道 3 P4 口的位 2 P4 口的位 3 13 P4.4/ADC0 i/o P4 口的位 4 &模数转换通道 0 14 15 16 17 18 19 20 21 22 23 24 25 26 P4.5/ADC1 P4.6/ADC2 P4.7/ADC3 XTAL1 XTAL2 NC P1.7/IIC_SDA P1.6/IIC_SCL P1.5/PWM1/CC1 P1.4/PWM0/CC0 AVDD AVDD3V AVSS i/o i/o i/o i o i i/o i/o i/o i/o 27 P1.3/TXD1/CC3/SPI_MOSI i/o 28 P1.2/RXD1/CC2/SPI_MISO i/o 29 P1.1/T2EX/SPI_CLK i/o 30 P1.0/T2/SPI_SS i/o 31 32 33 34 35 36 37 38 P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8 i/o i/o i/o i/o i/o i/o i/o i/o P4 口的位 5 &模数转换通道 1 P4 口的位 6 &模数转换通道 2 P4 口的位 7 &模数转换通道 3 晶振输入 晶振输出 无连接 P1 口的位 7 & IIC 串行数据线 P1 口的位 6 & IIC 串行时钟线 P1 口的位 5 &宽脉调制通道 1&计时器 2 及抓捕/比较单元通道 1 P1 口的位 4 &宽脉调制通道 0&计时器 2 及抓捕/比较单元通道 0 模拟电源电压 5v 模拟电源电压 3 v. 模拟电源地 P1 口的位 3&串行接口通道 1 &计时器 2 及抓捕/比较单元通道 3 & SPI 接口串行数据输入 P1 口的位 2 &串行接口通道 1 &计时器 2 及抓捕/比较单元通道 2 & SPI 接口串行数据输出 P1 口的位 1 &计时器 2 及捕获触发器 & SPI 接口时钟 P1 口的位 0 & 计时器 2 的外部输入时钟 & SPI 接口从机跳线 P2 口的位 7&外部存储器地址的位 15 P2 口的位 6&外部存储器地址的位 14 P2 口的位 5&外部存储器地址的位 13 P2 口的位 4 &外部存储器地址的位 12 P2 口的位 3&外部存储器地址的位 11 P2 口的位 2&外部存储器地址的位 10 P2 口的位 1&外部存储器地址的位 9 P2 口的位 0&外部存储器地址的位 8 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 5 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Pin 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 Name P3.7/RD P3.6/WR P3.5/T1 P3.4/T0 P3.3/INT1 P3.2/INT0 P3.1/TXD0 P3.0/RXD0 P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 VSS VDD3V VDD ICE_ICP_BUSY ICE_ICP_DATA ICE_ICP_CLOCK ALE RESET P5.0 P5.1 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/o i/o i/o i/o i/o o i/o i o i i/o i/o Description P3 口的位 7&外部存储器读取信号 P3 口的位 6&外部存储器写入信号 P3 口的位 5 & 计时器 1 外部输出 P3 口的位 4 & 计时器 1 外部输入 P3 口的位 3 & 外部中断 1 P3 口的位 2 & 外部中断 0 P3 口的位 1 & 串行接口通道 0 P3 口的位 0 & 串行接口通道 0 P0 口的位 7&外部存储器地址/数据的位 7 P0 口的位 6&外部存储器地址/数据的位 6 P0 口的位 5&外部存储器地址/数据的位 5 P0 口的位 4&外部存储器地址/数据的位 4 P0 口的位 3&外部存储器地址/数据的位 3 P0 口的位 2&外部存储器地址/数据的位 2 P0 口的位 1&外部存储器地址/数据的位 1 P0 口的位 0&外部存储器地址/数据的位 0 供电电源地 数位电源电压 3v 数位电源电压 5v ICE 和 ICP 功能的忙碌指标(当内部闪存写入时为低电平) ICE 和 ICP 功能的指令及数据输入 ICE 和 ICP 功能的时钟输入 地址锁存使能 复位 P5 口的位 0 P5 口的位 1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 6 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 特殊功能寄存器 特殊功能寄存器分布图如下所示: Hex\Bin F8 X000 IICS X001 IICCTL X010 IICA1 X011 IICA2 X100 IICRWD X101 X110 X111 F0 E8 E0 D8 B P4 ACC BRGS SPIC1 MD0 SPIC2 MD1 SPITXD MD2 SPIRXD MD3 SPIS MD4 MD5 ARCON D0 C8 C0 B8 PSW T2CON IRCON IEN1 CCEN IP1 B0 A8 A0 98 P3 IEN0 P2 S0CON 90 88 80 P1 TCON P0 Bin/Hex FF F7 EF E7 DF D7 CF C7 BF CRCL CCL1 S0RELH CRCH CCH1 S1RELH TL2 CCL2 PWMD0H TH2 CCH2 PWMD0L CCL3 PWMD1H CCH3 PWMD1L PWMD2H IP0 PES S0BUF PWMD2L S0RELL PWMD3H ADCC1 PWMD3L ADCC2 PWMC ADCDH WDTC ADCDL WDTK CLKR IEN2 S1CON S1BUF S1RELL B7 AF A7 9F P5 TMOD SP DPS TL0 DPL KBLS TL1 DPH KBE TH0 DPL1 KBF TH1 DPH1 97 8F 87 IFCON PCON 注:特殊功能寄存器的重置值在 SM59R16A2/SM59R08A2 中有所描述。 Register Location Reset value Description P0 SP 80h 81h FFh 07h Port 0 Stack Pointer DPL 82h 00h Data Pointer 0 low byte DPH 83h 00h Data Pointer 0 high byte DPL1 DPH1 PCON TCON TMOD TL0 TL1 TH0 84h 85h 87h 88h 89h 8Ah 8Bh 8Ch 00h 00h 00h 00h 00h 00h 00h 00h Data Pointer 1 low byte Data Pointer 1 high byte Power Control Timer/Counter Control Timer Mode Control Timer 0, low byte Timer 1, low byte Timer 0, high byte TH1 8Dh 00h Timer 1, high byte IFCON 8Fh 00h Interface control register P1 90h FFh Port 1 P5 91h FFh Port 5 DPS 92h 00h Data Pointer select Register KBLS 93h 00h Expanded External Interrupt (EEI) level selector register KBE 94h 00h Expanded External Interrupt (EEI) input enable register 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 7 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Register Location Reset value KBF 95h 00h Expanded External Interrupt (EEI) interrupt flag register S0CON 98h 00h Serial Port 0, Control Register S0BUF 99h 00h Serial Port 0, Data Buffer IEN2 9Ah 00h Interrupt Enable Register 2 S1CON 9Bh 00h Serial Port 1, Control Register S1BUF 9Ch 00h Serial Port 1, Data Buffer S1RELL 9Dh 00h Serial Port 1, Reload Register, low byte P2 A0h FFh Port 2 PES A1h 00h Program Memory Page Erase Control Register IEN0 A8h 00h Interrupt Enable Register 0 IP0 A9h 00h Interrupt Priority Register 0 S0RELL AAh D9h Serial Port 0, Reload Register, low byte ADCC1 ABh 00h ADC control register 1 ADCC2 ACh 00h ADC control register 2 ADCDH ADh 00h ADC high data byte ADCDL AEh 00h ADC low data byte CLKR AFh 03h Clock range register P3 B0h FFh Port 3 PWMD2H B1h 00h PWM channel 2 data high byte PWMD2L B2h 00h PWM channel 2 data low byte PWMD3H B3h 00h PWM channel 3 data high byte PWMD3L B4h 00h PWM channel 3 data low byte PWMC B5h 00h PWM control register WDTC B6h 00h 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 03h Serial Port 0, Reload Register, high byte S1RELH BBh 03h Serial Port 1, Reload Register, high byte PWMD0H BCh 00h PWM channel 0 data high byte PWMD0L BDh 00h PWM channel 0 data low byte PWMD1H BEh 00h PWM channel 1 data high byte PWMD1L BFh 00h PWM channel 1 data low 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 Description 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 8 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Register Location Reset value Description 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 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 BRGS D8h 00h Baud rate generator switch ACC E0h 00h Accumulator P4 E8h FFh Port 4 MD0 E9h 00h Multiplication/Division Register 0 MD1 EAh 00h Multiplication/Division Register 1 MD2 EBh 00h Multiplication/Division Register 2 MD3 ECh 00h Multiplication/Division Register 3 MD4 EDh 00h Multiplication/Division Register 4 MD5 EEh 00h Multiplication/Division Register 5 ARCON EFh 00h Arithmetic Control register B F0h 00h B register SPIC1 F1h 08h SPI control register 1 SPIC2 F2h 00h SPI control register 2 SPITxD F3h 00h SPI transmit data buffer SPIRxD F4h 00h SPI receive data buffer SPIS F5h 40h SPI status register IICS F8h 00h IIC status register IICCTL F9h 04h IIC control register IICA1 FAh A0h IIC Address 1 register IICA2 FBh 60h IIC Address 2 register IICRWD FCh 00h IIC Read/Write register 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 9 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 功能描述 1 总特征 SM59R16A2/SM59R08A2是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详 细定义将在以下章节给出. 1.1 嵌入式程序存储器 可通过编程器或在线编程(ISP)将程序加载到64K/32K的嵌入式闪存体中,其高品质的闪存体具有 100K次的重复可擦写编程并记忆数据,如EEPROM。 1.2 I/O 口 SM59R16A2/SM59R08A2的I/O口和通用的8052完全兼容,P0口是一个8位漏极开路的双向I/O口, 在作输入或者输出高电平时,加上拉电阻是必要的。P1~P5口具有内部上拉电阻. 以下给出的是I/O口 的结构. Fig. 1-1: IO pad structure 所有的P0~P5口都可通过转化速率来降低EMI。另一种降低EMI的方式是在禁止ALE输出,可通过 特殊功能寄存器(SFR)来进行选择控制,在高静电环境且在人体接触模式中,其I/O口的ESD可达4KV, 并保证SM59R16A2’S的质量在高静电环境。 1.3 2T/1T 的选择 传 统 的 52 系 列 单 片 机 时 钟 周 期 是 12T, 即 12 个 振 荡 器 时 钟 为 1 个 机 器 周 期 . SM59R16A2/SM59R08A2为2T/1T的微控制器,即机器周期为2个时钟周期或1个时钟周期。换句话说, 执行一条指令可是2个时钟或一个时钟。2T模式与1T模式的差异,请参考以下图表1-2: 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 10 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Fig. 1-2(a): The waveform of internal instruction signal in 2T mode Fig. 1-2(b): The waveform of internal instruction signal in 1T mode 缺省值为2T模式,在任何时候,如IFCON [7](地址为8Fh)被置位时,就可改变为1T的模式。在一个机 器周期内,并不是每条指令都能被执行的。所有指令的确切机器周期将在下一章节中给出。 1.4 复位 掉电检测也是内部复位的一种类型,以防止来SM59R16A2/SM59R08A2变得不稳定,其状况如1.3 所描述: 1.5 时钟源 默认时钟来自于内部OSC下的的1MHZ时钟信号,其时钟应用于初始化阶段,其主要的工作是确定 时钟源使用的正常运行。 时钟源可来自外部也可来自外部,其外部时钟源来源于晶体振荡器的脚XTAL1和XTAL2,或只通 过振荡器XATL1。在这里需要注意的是,XTAL1在3.3V的应用下无法支持5V,因此建议使用3.3V的振 荡源。 内部时钟源来源于不同分频的内部OSC,如下表格所示: Table 1-1:时钟源的选择 Clock source external crystal or internal OSC 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 as default clock used in initialization 对于来源于内部OSC的频率,这将有20%的误差,在应用程序中需要精确的频率时,不推荐使用。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 11 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 2 指令设置 所有SM59R16A2/SM59R08A2的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表 格列出了以SM59R16A2/SM59R08A微控器为核心的指令集的周期的总结,这里的周期表示为机器周 期,且根据IFCON [7]来决定1时钟或2时钟. Table 2-1: 算术运算 Mnemonic ADD A, Rn ADD A, direct Description Add register to accumulator Add direct byte to accumulator Code 28-2F 25 Bytes 1 2 Cycles 1 2 ADD A, @Ri Add indirect RAM to accumulator 26-27 1 2 ADD A, #data ADDC A, Rn ADDC A, direct Add immediate data to accumulator Add register to accumulator with carry flag Add direct byte to A with carry flag 24 38-3F 35 2 1 2 2 1 2 ADDC A, @Ri Add indirect RAM to A with carry flag 36-37 1 2 ADDC A, #data SUBB A, Rn SUBB A, direct Add immediate data to A with carry flag Subtract register from A with borrow Subtract direct byte from A with borrow 34 98-9F 95 2 1 2 2 1 2 SUBB A, @Ri Subtract indirect RAM from A with borrow 96-97 1 2 SUBB A, #data INC A INC Rn INC direct Subtract immediate data from A with borrow Increment accumulator Increment register Increment direct byte 94 04 08-0F 05 2 1 1 2 2 1 2 3 INC @Ri INC DPTR DEC A Increment indirect RAM Increment data pointer Decrement accumulator 06-07 A3 14 1 1 1 3 1 1 DEC Rn Decrement register 18-1F 1 2 DEC direct DEC @Ri MUL AB DIV DA A Decrement direct byte Decrement indirect RAM Multiply A and B Divide A by B Decimal adjust accumulator 15 16-17 A4 84 D4 2 1 1 1 1 3 3 5 5 1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 12 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Table 2-2: 逻辑运算 Mnemonic ANL A, Rn ANL A, direct Description AND register to accumulator AND direct byte to accumulator Code 58-5F 55 Bytes 1 2 Cycles 1 2 ANL A, @Ri ANL A, #data ANL direct, A ANL direct, #data AND indirect RAM to accumulator AND immediate data to accumulator AND accumulator to direct byte AND immediate data to direct byte 56-57 54 52 53 1 2 2 3 2 2 3 4 ORL A, Rn ORL A, direct ORL A, @Ri ORL A, #data OR register to accumulator OR direct byte to accumulator OR indirect RAM to accumulator OR immediate data to accumulator 48-4F 45 46-47 44 1 2 1 2 1 2 2 2 ORL direct, A ORL direct, #data XRL A, Rn XRL A, direct OR accumulator to direct byte OR immediate data to direct byte Exclusive OR register to accumulator Exclusive OR direct byte to accumulator 42 43 68-6F 65 2 3 1 2 3 4 1 2 XRL A, @Ri Exclusive OR indirect RAM to accumulator 66-67 1 2 XRL A, #data XRL direct, A XRL direct, #data CLR A Exclusive OR immediate data to accumulator Exclusive OR accumulator to direct byte Exclusive OR immediate data to direct byte Clear accumulator 64 62 63 E4 2 2 3 1 2 3 4 1 CPL A RL A RLC A RR A Complement accumulator Rotate accumulator left Rotate accumulator left through carry Rotate accumulator right F4 23 33 03 1 1 1 1 1 1 1 1 RRC A SWAP A Rotate accumulator right through carry Swap nibbles within the accumulator 13 C4 1 1 1 1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 13 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Table 2-3: 数据传送 Mnemonic MOV A, Rn MOV A, direct 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 MOVC A,@A+DPTR 90 93 3 1 3 3 MOVC A, @A+PC MOVX A, @Ri 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 Expanded 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 Expanded RAM (16-bit addr.) to A Move A to Expanded RAM (8-bit addr.) Move A to Expanded 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-M037 14 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Table 2-4: 程式分支 Mnemonic ACALL addr11 LCALL addr16 Description Absolute subroutine call Long subroutine call Code xxx11 12 Bytes 2 3 Cycles 6 6 RET RETI AJMP addr11 LJMP addr16 from subroutine from interrupt Absolute jump Long jump 22 32 xxx01 02 1 1 2 3 4 4 3 4 SJMP rel JMP @A+DPTR JZ rel JNZ rel Short jump (relative addr.) Jump indirect relative to the DPTR Jump if accumulator is zero Jump if accumulator is not zero 80 73 60 70 2 1 2 2 3 2 3 3 JC rel JNC JB bit, rel JNB bit, rel 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 40 50 20 30 2 2 3 3 3 3 4 4 JBC bit, direct rel Jump if direct bit is set and clear bit 10 3 4 CJNE A, direct rel CJNE A,#data rel Compare direct byte to A and jump if not equal Compare immediate to A and jump if not equal Compare immediate to reg. and jump if not equal Compare immediate to indirect and jump if not equal Decrement register and jump if not zero Decrement direct byte and jump if not zero No operation B5 B4 3 3 4 4 B8-BF 3 4 B6-B7 3 4 D8-DF D5 00 2 3 1 3 4 1 Bytes 1 2 Cycles 1 3 CJNE Rn, #data rel CJNE @Ri, #data rel DJNZ Rn, rel DJNZ direct, rel NOP Table 2-5: 布尔运算 Mnemonic CLR C CLR bit Clear carry flag Clear direct bit Description Code C3 C2 SETB C Set carry flag D3 1 1 SETB bit CPL C CPL bit Set direct bit Complement carry flag Complement direct bit D2 B3 B2 2 1 2 3 1 3 ANL C, bit AND direct bit to carry flag 82 2 2 ANL C, /bit ORL C, bit ORL C, /bit AND complement of direct bit to carry OR direct bit to carry flag OR complement of direct bit to carry B0 72 A0 2 2 2 2 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-M037 15 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 3 存储器结构 SM59R16A2/SM59R08A2存储器结构和通用的8051结构相同,也在三个存储空间内操作运算对象, 它们是:1)256Bytes的标准RAM; 2)2K的片上外扩RAM ; 3)作为程序存储器的64K/32K的嵌入式Flash. 3.1 程序存储器 SM59R16A2/SM59R08A2有64KB/32KB的片上Flash存储器,可作为通用的程序存储器,如任何 字节不被做为程序存储器来使用,它即可用来记忆任何数据,如EEPROM,其具体细节在第17章给出. FFFF 64KB program memory space 7FFF 32KB program memory space 0000 Fig. 3-1: 32KB/64KB programmable Flash 3.2 数据存储器 SM59R16A2/SM59R08A2具有2048+256 Bytes的片上SRAM,其中256 Bytes和通用的8052内部存 储器结构一样,外扩的片上2KB的SRAM可以通过访问其外部存储器的方式进行访问(通过MOVX指 令)。当为2KB-64KB(地址0800h-FFFFh)存储器,他们必须被当成外部的内容通过类似于传统接口 (P2,P0作为地址与数据总线, P3 [7:6]表明读或写)的接口存取。如果SFR IFCON [1] = 1,这个芯片上的 2KB SRAM将无法使用,所有访问外部存储器的指令将直接指向外部存储器。即使这个MCU是2T或1T, 这个外部存储器接口依然类似于传统的12T方式,下面给出了一个范例: 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 16 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 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的地址可通过直接或者间接 寻址方式访问.00h到1Fh是寄存器的空间,20h到2Fh是位寻址空间, 30h到7Fh是通用的数据存储区. 3.2.2 数据存储器-高128字节($80h到$FFh) 80h到FFh的地址仅仅能从间接寻址的方式访问,它是一个数据区. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 17 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 3.2.3 存储器-扩展的2048字节($0000 to $07FF) 0000h到07FFh是片内扩展的SRAM区域,共768字节.该空间地址只能通过外部直接寻址的方式进 行访问.(利用MOVX指令)。 如果指令MOVX @DPTR的地址大于07FFh,SM59R16A2将会自动产生外部存储器控制信号。 如果SFR IFCON [1] = 1,这个芯片上的2 KB SRAM在没有这样的内嵌存储器时将无法使用。SFR IFCON [1]的默认值为0。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 18 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 4 CPU 结构 SM59R16A2/SM59R08A2 引擎由一下四部分组成: a. 控制单元 b. 算法-逻辑单元 c. 存储器控制单元 d. RAM和SFR控制单元 SM59R16A2/SM59R08A2结构允许接受来自程序存储器的指令并与RAM或SFR做数据处理,一下 各段详细叙述了主要功能寄存器。 Mnemonic ACC B PSW SP DPL DPH DPL1 DPH1 DPS IFCON Description Direct Bit 7 Accumulator B register Program status word Stack Pointer Data pointer low 0 Data pointer high 0 Data pointer low 1 Data pointer high 1 Data pointer select Interface control register E0h F0h ACC.7 B.7 D0h CY Bit 6 Bit 5 CPU 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 PSW. 1 ACC.0 B.0 00h 00h P 00h - DPS.0 07h 00h 00h 00h 00h 00h DMEN - 00h F0 RS [1:0] 81h 82h 83h 84h 85h 92h - - - SP [7:0] DPL [7:0] DPH [7:0] DPL1 [7:0] DPH1 [7:0] - 8Fh ITS - - - OV - ALEC[1:0] 4.1 累加器 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]: 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. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 19 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB 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 4 3 DPL [7:0] 2 1 Address: 82h 0 Reset 00h 4 3 DPH [7:0] 2 1 Address: 83h 0 Reset 00h DPL[7:0]: Data pointer Low 0 Mnemonic: DPH 7 6 5 DPH [7:0]: Data pointer High 0 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 20 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 4.6 数据指针 1 双数据指针加速了块状数据的运行速度.标准的DPTR 是一个16位的寄存器,是用来寻址外部空间 或者外部存储器. 在SM59R16A2/SM59R08A2中,标准的数据指针称为DPTR,第二个数据指针称为 DPTR1. 选择位用来选择使用的数据指针。.数据指针的选择位位于DPS(DPS.0)寄存器中的LSB中.用 户通过触发DPS寄存器中的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 4 - 2 - 1 - Address: 92h 0 Reset DPS.0 00h 1 DMEN Address: 8Fh 0 Reset 00h DPL1[7:0]: Data pointer Low 1 Mnemonic: DPH1 7 6 5 DPH1[7:0]: Data pointer High 1 Mnemonic: DPS 7 6 - 5 - 3 - DPS.0: 数据指针选择位 DPS.0 = 1,选择 DPTR1 4.7 接口控制寄存器 Mnemonic: IFCON 7 6 ITS - 5 - 4 - 3 2 ALEC[1:0] ITS: Instruction timing select. ITS = 0, 2T instruction mode. ITS = 1, 1T instruction mode. 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 DMEN: Internal 2K SRAM disable.(default is enable) DMEN = 0, Enable internal 2K RAM. DMEN = 1, Disable internal 2K RAM. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 21 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 5 P0 口– P5 口 P0口到P5口是SM59R16A2/SM59R08A2的通用I/O端口,大部份端口都可和其他输入设备一起操 作,如P3[0]也可以在串行口通讯(UART)的应用中被使用。在输入和输出高的条件下,端口0是开漏 的,因此需加外部上拉电阻。至于其他端口,其上拉电阻位于内部。对于通常的应用设置,每个管脚 均可独立设置为高电位或者低电位,如下所示: 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 91h E8h B0h A0h 90h 80h P5.7 P4.7 P3.7 P2.7 P1.7 P0.7 P5.6 P4.6 P3.6 P2.6 P1.6 P0.6 Mnemonic: P0 7 6 P0.7 P0.6 5 P0.5 Bit 5 Ports P5.5 P4.5 P3.5 P2.5 P1.5 P0.5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET P5.4 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 FFh FFh FFh FFh FFh FFh 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 P5.4 3 P5.3 2 P5.2 1 P5.1 Address: 91h 0 Reset P5.0 FFh 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 P5.7 P5.6 5 P5.5 P5.7~ 0: Port5 [7] ~ Port5 [0] 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 22 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 硬件乘除法器(MDU) 6 SM59R16A2/SM59R08A2的算术单元提供了32位除法器,16位成法器,转化和规范等特点。所有 设置均为无符号整数设置。 Mnemonic PCON ARCON MD0 MD1 MD2 MD3 MD4 MD5 Description Direct Bit 7 Power control Arithmetic Control register Multiplication/Div ision Register 0 Multiplication/Div ision Register 1 Multiplication/Div ision Register 2 Multiplication/Div ision Register 3 Multiplication/Div ision Register 4 Multiplication/Div ision Register 5 87h Bit 6 Bit 5 Bit 4 Multiplication Division Unit SMOD MDUF PMW EFh MDEF MDOV Bit 3 Bit 2 Bit 1 Bit 0 RESET - - STOP IDLE 00h SLR SC [4:0] 00h E9h MD0 [7:0] 00h EAh MD1 [7:0] 00h EBh MD2 [7:0] 00h ECh MD3 [7:0] 00h EDh MD4 [7:0] 00h EEh MD5 [7:0] 00h 6.1 乘除法器的设置 乘除法器的设置分为三个阶段: 6.1.1 第一阶段:装载MDx 寄存器,X=0~5: 该类型的MDU的计算,无论MDx寄存器是否被写入都将执行选择的指令。任何情况下,MO0的写入都 将首先被转换,而下一次的写入必须执行以下显示的表格序列,以确保MDU的运作,最后一次的写入将 开始选择的运作。 Table 6-1: MDU registers write sequence(MDU寄存器写入序列) 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 23 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 6.1.2 第二阶段:执行运算 在执行运算中,MDU运行在拥有CPU并行线上。当MDU执行完毕时,MDUF寄存器将被硬件置位, 其标志位也将在下一次运算中被清除。 Mnemonic: PCON 7 6 SMOD MDUF 5 - 4 PMW 3 - 2 - 1 STOP Address: 87h 0 Reset IDLE 00h MDUF: MDU 完成标志位 当MDU完成运算时,MDUF将被硬件置位且标志位也将在下一次运算中被清除。 下表给出了每一次数学计算中的执行时间 Table 6-2: MDU execution times (MDU执行时间) 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.1.3 第三阶段:从MDx 寄存器上读取结果. 从第一个MDX 寄存器上读取序列并不重要,但我们必须意识到最后一次的读取(从MD5的除法运 算,或MD3中的乘法,切换和规范)将意味着一次完整的运算结束。 Table 6-3: MDU寄存器读取序列 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 中. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 24 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 6.2 运行寄存器 该MDU由7个寄存器处理,是具有记忆体映射为特殊功能寄存器, 运算单元允许同时操作以及CPU 的独立活动。操作数及结果寄存器为MD0到MD5,控制寄存器为ARCON.任何MDU的运算将超出它的 操作数。 Mnemonic: ARCON 7 6 5 MDEF MDOV SLR 4 3 2 SC [4:0] 1 Address: EFh 0 Reset 00h MDEF: 乘除错误标志位 MDEF 是一个错误标志位,且只可读。错误标志表示一个不当的操作(当其中的 运算操作被重新启动或者被一个新的运算中断) ,错误标志机制将自动在第一次 写入 MD0 时失效和来自 MD3(乘法或转换/规范)或来自第三阶段 MD5(除法) 最终使读取指令失效。 在以下情况,错误标志位将被置位: 1. 第二阶段的进程,并写入 MDx 寄存器时(重启或者中断计算) 错误标志只有在以下情况下重置: 第二阶段结束(算法成功)并写入 MDx 寄存器 MDOV: 乘除法溢出标志。该溢出标志只可读 只有在以下情况时,该溢出标志被置位: 除以“0”,再乘以一任意数,随后产生 0000FFFFH; 当最重要的 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。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 25 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 7 定时器 0 和定时器 1 SM59R16A2/SM59R08A2有三个16bit的定时/计数寄存器: 定时器0, 定时器1和定时器2,所有这 些都可以被设置为定时或计数操作. 在定时器模式中, 定时器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 Bit 7 Bit 6 Bit 5 Timer 0 and 1 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET Timer 0 , low byte Timer 0 , high byte Timer 1 , low byte Timer 1 , high byte Timer Mode Control Timer/Counter Control 8Ah TL0[7:0] 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 26 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB 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: 定时器 0 溢出标志。定时器/计数器溢出时由硬件置位。中断执行时硬件清零, 或由软件清零 TR0: 定时器 0 运行控制位。通过软件将其置位/清零来起动/关闭定时器/计数器 0 IE1: 中断 1 边沿标志。当检测到外部中断 1 边沿/低电平时由硬件置位该标志。中 断处理时由硬件清零,或通过软件清零。 IT1: 中断 1 类型控制位,通过软件置位/清零该位来选择外部中断 1 以下降沿/低电 平方式触发。 IE0: 中断 0 边沿标志。当检测到外部中断 0 边沿/低电平时由硬件置位该标志。中 断处理时由硬件清零,或通过软件清零。 IT0: 中断 0 类型控制位。通过软件置位/清零该位来选择外部中断 0 以下降沿/低电 平方式触发。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 27 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 8 定时器 2 以及捕捉/比较单元 定时器2不仅仅是一个16位的定时器,也是一个带有比较,捕获及重载功能的4通道单元,这是非常 相似在其他一些微控制器的可编程计数器阵列(PCA),除脉冲宽度调制(PWM)。 Mnemonic T2CON CCEN TL2 TH2 CRCL CRCH CCL1 CCH1 CCL2 CCH2 CCL3 CCH3 Description Direct Timer 2 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 C8h C1h CCh CDh Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Timer 2 and Capture Compare Unit T2PS CC0FR T2R[1:0] COCA COCA COC COCA COCA H3 L3 AH2 L2 H1 TL2[7:0] TH2[7:0] 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] Bit 2 T2CM COCA L1 Bit 1 Bit 0 T2I[1:0] COCA COC H0 AL0 RESET 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 28 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Mnemonic: T2CON 7 6 T2PS CC0FR 5 - 4 3 T2R[1:0] 2 T2CM 1 Address: C8h 0 Reset T2I[1:0] 00h 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]: 定时器 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: CCEN 7 6 COCAH3 COCAL3 5 COCAH2 4 COCAL2 3 COCAH1 2 COCAL1 1 COCAH0 Address: C1h 0 Reset COCAL0 00h COCAH3,COCAL3: 通道 3 的比较/捕获模式 COCAH3 0 0 1 1 COCAL3 0 1 0 1 功 能 禁止比较/捕获功能 捕捉在 CC3 脚的上升沿 使能比较功能 在寄存器 CCL3 中捕获写入操作 COCAH2,COCAL2: 通道 2 的比较/捕获模式 COCAH3 0 0 1 1 COCAL3 0 1 0 1 功 能 禁止比较/捕获功能 捕捉在 CC2 脚的上升沿 使能比较功能 在寄存器 CCL2 中捕获写入操作 COCAH1,COCAL1: 通道 1 的比较/捕获模式 COCAH1 0 0 1 1 COCAL1 0 1 0 1 功 能 禁止比较/捕获功能 捕捉在 CC1 脚的上升沿 使能比较功能 在寄存器 CCL1 中捕获写入操作 COCAH0,COCAL0: 通道 0 的比较/捕获模式 COCAH3 0 0 1 1 COCAL3 0 1 0 1 功 能 禁止比较/捕获功能 捕捉在 CC0 脚的上升沿 使能比较功能 在寄存器 CCL1 中捕获写入操作 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 29 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 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由位T2CM来选择,在这两种比较模式中,其比较结果在同样的机器周期的P1口的得出使得其内部 比较信号被激活,P1.2到P1.5口为CC0到CC3的输出。 8.2.1 比较模式0 在模式0中,当定时器2的值等同与比较寄存器上的值时,其输出信号由低到高的跳变,并在定时 器溢出时返回低电位。在此模式中,对端口写入无效,因为无法对来自内部总线及暂存器进行操作。 下表数字阐述了比较模式0的功能。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 30 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Fig. 8-1: Compare mode 0 function 8.2.2 比较模式1 在比较模式1中,其输出信号的跳变是由软件来决定的。定时器2的溢出不会导致输出的改变。在 此模式中,两种信号的跳变都是可以控制的,图表8-2显示了在比较模式1中的寄存器/端口结构功能表。 在比较模式1中,其值将首先被写入到“阴影寄存器”中,当比较信号被激活时,其值被传递到输出寄存 器。 Fig. 8-2: Compare mode 1 function 8.3 捕获功能 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 31 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 在一个外部事件(模式0)或一个软件写操作(模式1)上,实际的定时器/计数器的值可以被保存 在寄存器CCx或说CRC中。 8.3.1 捕捉模式0 在模式0中,定时器2的值的捕捉在以下情况进行: (a) 上升沿输入CC1-CC3。 (b) 上升或下降沿的输入CC0(取决于位CC0FR),定时器2的内容将被对应的捕捉寄存器锁存, 在此模式中,无中断请求产生。 8.3.2 捕捉模式1 在模式1中,定时器2的值的捕捉将导致写入到捕捉寄存器中的低字节无任何价值,其捕捉寄存器的写入 值与改功能无关,定时器2的内容将被对应的捕捉寄存器琐存。在此模式中,无中断请求产生。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 32 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 9 串行接口 0 和 1 SM59R16A2/SM59R08A2有两个数据传输的串行接口,即UART0和UART1。作为传统的UART, 其传输速率可通过SFRs中的波特率来选择,这两个串行缓冲器组成两个单独寄存器,即一个传输缓冲 区和一个接收缓冲区。写入数据到特殊功能寄存器(SFR)SOBUF或S1BUF并设置这些数据在串行输 出缓冲,并开始传输, 来自S0BUF或S1BUF的读取及从串行接收缓冲区读取数据,串行口可同时传输 和接收数据,它也可在接收时缓存1字节,如CPU在第一个字节传输完成之前读取第二个字节,以防接 收数据丢失。 Mnemonic PCON BRGS S0CON S0RELL S0RELH S0BUF S1CON S1RELL S1RELH S1BUF Bit 3 Bit 2 Bit 1 Bit 0 RESE T - - STOP IDLE 00h - - - - - 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 电源控制寄存器 波特率转换发生 器 串行口 0 控制寄 存器 串行口 0 装载寄 存器低字节 串行口 0 装载寄 存器高字节 串行口 0 数据缓 存器 串行口 1 控制寄 存器 串行口 1 装载寄 存器低字节 串行口 1 装载寄 存器高字节 串行口 1 数据缓 存器 87h SMOD D8h BRS - - 98h SM0 SM1 AAh S0REL .7 BAh - Bit 4 Serial interface 0 and 1 MDUF PMW 99h 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 S1BUF[7:0] 00h 00h 9Bh 9Ch 00h 00h 00h 00h 00h 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 33 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB 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: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 34 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB 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可以用来指定波特率。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 35 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 36 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 9.2 串行接口 1 串行接口1可在以下两种模式中设置: SM 0 1 Mode A B Description 9-bit UART 8-bit UART Baud Rate Variable Variable 9.2.1 模式 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 模式 B 该模式和串行接口0中的模式1类似. 引脚RXD1充当输入,TXD1充当串行输出,无任何外部时钟 被使用,每次数据为10位:一个起始位(=0),8个数据位(LSB位在前),及一个停止位(=1)。在接收 据数据时, 起始位将被同步传输,8个数据位可通过S1BUF来读取, 一个停止位存于特殊功能寄存器 S1CON的设置标志RB81内,在模式1中,无论是内部的波特率发生器或定时器1可以用来指定波特率。 Fig. 9-9: Transmit mode B for Serial 1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 37 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 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) 当BRS = 0时,(在SFR BRGS中): Baud Rate = 2SMOD × FOSC 32 × 12 × (256 − TH1) (b) 当BRS = 1时,(在SFR BRGS中): Baud Rate = 2SMOD × FOSC 64 × 210 − S0REL Baud Rate = FOSC 32 × 2 − S1REL ( ) 9.4.2 串行接口1的模式A和B ( 10 ) 9.5 波特率的时钟源 当串行接口功能被使用时,不推荐使用内部的振荡器作为时钟源的,其原因是先前章节所涉及到的 波特率必须尽可能的准确,而内部的OSC的时钟频率有+5%浮动的差异, 因此,用户可在外部晶体或 振荡器中选择时钟源。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 38 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 10 看门狗定时器 看门狗定时器是一个8位的计数器,它在每一个WDTCLK周期中得到递增。在一外部复位后,该看 门狗定时器将无效且所有寄存器都清零。 在 初 始 化 周 期 , SM59R16A2/SM59R08A2 可 从 信 息 区 域 从 读 出 WDRENB 及 WDTM[3:0]. WDRENB为使能位,当此位为高时,看门狗功能将被禁止。WDTM[3:0]为WDTCLK设置分频,如下表 所示,用户可通过编程器去设置WDTENB及WDTM[3:0]。 Fosc WDTCLK = 12 × 2WDTM 256 Watchdog reset time = WDTCLK 看门狗一旦开始工作将无法停止,当WDTM寄存被写入55h时,用户可通过清0来刷新看门狗定时 器。当看门狗定时器溢出时,WDTF标志位将被置1并自动重置复位MCU,该标志位可被软件或外部复 位清除。看门狗定时器必须定时刷新以防来自可变的重置复位请求信号. Watchdog block diagram Fclk/12 Power on External reset Software write to zero 0 7 WDT counter WDTCLK Control logic Overflow WDT reset Refresh WDT counter WDTM WDTEN WDTF WDTF = 1 1/2WDTM WDTF = 0 WDTK = 0x55 Fig. 10-1: Watchdog timer block diagram 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 39 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Mnemonic WDTC WDTK Description 看门狗定时器控制 寄存器 看门狗定时器重置 密钥 Direct Bit 7 B6h WDTF Bit 6 Bit 5 Bit 4 Watchdog Timer - - Bit 2 Bit 1 Bit 0 RESET - - - - 00h - B7h Mnemonic: WDTC 7 6 WDTF - Bit 3 WDTK[7:0] 5 - 4 - 3 - 2 - 1 - 00h Address: B6h 0 Reset 00h WDTF: 看门狗定时器复位标志位 当 MCU 被看门狗重置时,WDTF 标志位将被硬件置位,该标志位可被软件或外 部复位清 0。 Mnemonic: WDTK 7 6 5 4 3 WDTK[7:0] 2 1 Address: B7h 0 Reset 00h WDTK: 看门狗定时器重置密钥 一个程序必须将 0X55 写入到 WDTK 寄存器中,然后看门狗定时器将归零 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 40 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 11 中断 SM59R16A2/SM59R08A2提供11个中断源并带有4级优先权。每一中断源都在特殊寄存器(SFR) 中有自身的请求标志,每个中断请求信号通过相应的标志及特殊寄存器(SFR)中的IEN0,IEN1及IEN2 中的使能位来独自允许或禁止。 当中断发生时,CPU将会跳转预先设定的地址,如11-1图表所示,一旦中断开始执行,就只能被 更高优先级的中断终止,其中断服务会被来自指令RETI的返回所终结。当一RETI被执行时且中断发生 时,处理器将将返回此指令,并执行下一条指令。 当中断条件发生时,该处理器通过设置一个标志位来表示,无论中断使能或禁止,每个中断标志 都将在每个机器周期中采样一次,随后采样由硬件来检测,当中断被使能时,且采样指出相应中断时, 中断请求标志被设置。在随后的指令周期中,中断将被硬件所确定。从而迫使一 LCALL 指向相应的地 址向量。 当中断发生时,中断响应将需要不同的时间,这取决于相关的处理器。如一处理器执行的中断服 务程序同等或更优先,新的中断将不会启用,在其他情况下,响应时间将取决于当前的指令。以最快 的速度回应一个中断是需要7个机器周期,这包括一个检测中断的机器周期和6周期执行LCALL周期。 Table 11-1:中断向量 Interrupt Vector Address 0003h 000Bh Interrupt Number *(use Keil C Tool) 0 1 IE1 – 外部中断 1 0013h 2 TF1 – 定时器 1 中断 RI0/TI0 – 串行口 0 中断 TF2/EXF2 – 定时器 2 中断 001Bh 0023h 002Bh 3 4 5 SPIIF – SPI 中断 004Bh 9 ADCIF – A/D 转换中断 EEIIF – 扩展外部中断 IICIF – IIC 中断 RI1/TI1 – 串行口 1 中断 0053h 005Bh 006Bh 0083h 10 11 13 16 Interrupt Request Flags IE0 – 外部中断 0 TF0 – 定时器 0 中断 *参考Keil C用户指南中的有关中断功能使用说明 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 41 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Mnemonic IEN0 IEN1 IEN2 IP0 IP1 Description Direct Bit 7 Bit 6 中断使能 0 寄存器 中断使能 1 寄存器 中断使能 2 寄存器 中断优先级 0 中断优先级 0 A8h B8h 9Ah A9h B9h EA EXEN2 - - - Bit 5 Interrupt ET2 IEIIC IP0.5 IP1.5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET ES0 IP0.4 IP1.4 ET1 IEEEI IP0.3 IP1.3 EX1 IEADC IP0.2 IP1.2 ET0 IESPI IP0.1 IP1.1 EX0 ES1 IP0.0 IP1.0 00h 00h 00h 00h 00h 1 ET0 Address: A8h 0 Reset EX0 00h 中断使能0寄存器(IEN0) Mnemonic: IEN0 7 6 EA - 5 ET2 4 ES0 3 ET1 2 EX1 EA: EA = 0 : 禁止所有中断; EA = 1 : 使能所有中断 ET2: ET2 = 0 :禁止 Timer2 溢出或外部重载中断 ES0: ES0 = 0 :禁止串行口 0 中断 ET1: ET1 = 0 : 禁止 Timer2 溢出中断 EX1: EX1 = 0 : 禁止外部中断 1 ET0: ET0 = 0 : 禁止 Timer0 溢出中断 EX0: EX0 = 0 : 禁止外部中断 0 中断使能1寄存器(IEN1) Mnemonic: IEN1 7 6 EXEN2 5 IEIIC 4 - 3 IEEEI 2 IEADC 1 IESPI Address: B8h 0 Reset 00h EXEN2: Timer 2 重载中断使能位 EXEN2 = 0 :禁止 Timer 2 外部重载中断 IEIIC: IIC 中断使能位 IEIICS = 0 :禁止 IIC 中断 IEEEI: EEI 中断使能位 IEEEI = 0 :禁止 EEI 中断 IEADC : A/D 转换中断使能位 IEADC = 0 :禁止 ADC 中断 IESPI: SPI 中断使能位 IESPI = 0 :禁止 SPI 中断 中断使能2寄存器(IEN2) Mnemonic: IE2 7 6 - 5 - 4 - 3 - 2 - 1 - Address: 9Ah 0 Reset ES1 00h ES1: ES1=0 – 禁止串行口 1 中断 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 42 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 中断请求寄存器(IRCON) Mnemonic: IRCON 7 6 5 EXF2 TF2 IICIF 4 - 3 EEIIF 2 ADCIF 1 SPIIF Address: C0h 0 Reset 00h EXF2: Timer 2 外部重载标志位,须软件清零 TF2: Timer 2 溢出标志位,须软件清零 IICIF: IIC 中断标志位;将 IIC 状态寄存器(IICS)中数据接收中断标志位(RxIF)、IICS 数据传输 中断标志位(TxIF)清零后,该位将自动清零 EEIIF: EEI 中断标志位,须软件清零 ADCIF: A/D 转换中断标志位,须软件清零 SPIIF: SPI 中断标志位,须软件清零 11.1 优先权配置 所有中断来源相组合与以下组中: Table 11-2: Priority level groups Groups 串行口 1 中断 - 外部中断 0 Timer 0 中断 外部中断 1 Timer1 中断 串行口 0 中断 Timer2 中断 SPI 中断 ADC 中断 EEI 中断 IIC 中断 通过对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:优先级 IP1.x IP0.x 优先级 0 0 1 1 0 1 0 1 0 级别(最低) 级别 1 ]级别 2 级别 3(最高) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 43 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Table 11-4:组合级别 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 Group 串行口 1 中断 - 外部中断 0 Timer 0 中断 外部中断 1 Timer1 中断 串行口 0 中断 Timer2 中断 SPI 中断 ADC 中断 EEI 中断 IIC 中断 Table 11-5:高低序列 Sequence Polling sequence 中断源 外部中断 0 串行口 1 中断 Timer 0 中断 SPI 中断 外部中断 1 ADC 中断 Timer1 中断 EEI 中断 串行口 0 中断 Timer2 中断 IIC 中断 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 44 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 12 电源管理单元 电源管理单元提供两种电源管理模式,即IDLE(待机/空闲)和STOP(停止),并为用户提供省 电功能。 Mnemonic: PCON 7 6 SMOD MDUF 5 - 4 PMW 3 - 2 - 1 STOP Address: 87h 0 Reset IDLE 00h STOP: STOP 模式控制位。设置此位将运行 STOP 模式,STOP 位总是读为 0. IDLE: IDIE 模式控制位。设置此位将运行 IDLE 模式,IDLE 位总是读为 0 12.1 待机模式(空闲模式) 使用IDLE(待机模式(空闲模式))模式可通过对PCON寄存器的IDLE位置位。空闲模式停止MCU 的时钟源,但外部的时钟源依旧保持,由于此时CPU不工作,电源功耗将被降低。当任何一中断信号 或者一复位信号时,CPU将退出待机模式(空闲模式)。 12.2 停止模式 使用STOP(停止模式)模式可通过对PCON寄存器的STOP位置位。在此模式中,所有的中断源 将全部被关闭,CPU将从一个无时钟的外部中断或者一个重置条件下退出该模式,内部产生的中断(定 时器,串行端口,看门狗... ),由于它们需要时钟源而无法运行。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 45 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 13 脉宽调制器(PWM) SM59R16A2/SM59R08A2提供四个通道的PWM输出, 四个通道可同时被使用。但是他们的配置 (计数位数和计数频率)将在一个SFR 中同样的定义。 Mnemonic PWMC PWMD0H PWMD0L PWMD1H PWMD1L PWMD2H PWMD2L PWMD3H PWMD3L Description PWM 控制寄存器 PWM0 数据寄存器 高字节 PWM0 数据寄存器 低字节 PWM1 数据寄存器 高字节 PWM1 数据寄存器 低字节 PWM2 数据寄存器 高字节 PWM2 数据寄存器 低字节 PWM3 数据寄存器 高字节 PWM3 数据寄存器 低字节 Direct Bit 7 Bit 6 B5h - - BCh - - Bit 5 PWM PWMM[1:0] - BDh BEh - - - - - - Bit 1 Bit 0 RESET PWM3 EN PWM2 EN PWM1 EN PWM0 EN 00h - PWMD0[11:8] - - - - - - PWMD1[11:8] 2 PWM2EN 1 PWM1EN 00h 00h PWMD2[11:8] 00h 00h PWMD3[11:8] PWMD3[7:0] 3 PWM3EN 00h 00h PWMD2[7:0] B4h Mnemonic: PWMC 7 6 5 4 PWMM[1:0] Bit 2 PWMD1[7:0] B2h B3h Bit 3 PWMD0[7:0] BFh B1h Bit 4 00h 00h Address: B5h 0 Reset PWM0EN 00h PWMM[1:0]: PWM 模式选择位 当 PWMM[1:0] = 00 or 11,PWM 输出频率= Fosc/256. 当 PWMM[1:0] = 01,PWM 输出频率= Fosc/1024. 当 PWMM[1:0] = 10,PWM 输出频率= Fosc/4096. PWMM[1:0] Mode 00 8-bit mode 01 10-bit mode 10 12-bit mode 11 8-bit mode 这里的 Fosc 为外部晶振或者振荡器的频率。 PWM3EN: PWM 通道 3 使能控制位 PWM3EN = 1 – PWM 通道 3 使能位 PWM3EN = 0 –PWM 通道 3 禁止位 PWM2EN: PWM 通道 2 使能控制位 PWM2EN = 1 – PWM 通道 2 使能位 PWM2EN = 0 –PWM 通道 2 禁止位 PWM1EN: PWM 通道 1 使能控制位 PWM1EN = 1 – PWM 通道 1 使能位 PWM1EN = 0 –PWM 通道 1 禁止位 PWM0EN: PWM 通道 0 使能控制位 PWM0EN = 1 – PWM 通道 0 使能位 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 46 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 PWM0EN = 0 –PWM 通道 0 禁止位 Mnemonic: PWMD0H 7 6 5 Mnemonic: PWMD0L 7 6 5 4 - 3 4 3 PWMD0[7:0] 2 1 PWMD0[11:8] 2 1 Address: BCh 0 Reset 00h Address: BDh 0 Reset 00h PWMD0[11:0]: PWM 通道 0 数据寄存器 Mnemonic: PWMD1H 7 6 5 Mnemonic: PWMD1L 7 6 5 4 - 3 4 3 PWMD1[7:0] 2 1 PWMD1[11:8] 2 1 Address: BEh 0 Reset 00h Address: BFh 0 Reset 00h PWMD1[11:0]: PWM 通道 1 数据寄存器 Mnemonic: PWMD2H 7 6 5 Mnemonic: PWMD2L 7 6 5 4 - 3 4 3 PWMD2[7:0] 2 1 PWMD2[11:8] 2 1 Address: B1h 0 Reset 00h Address: B2h 0 Reset 00h PWMD2[11:0]: PWM 通道 2 数据寄存器 Mnemonic: PWMD3H 7 6 5 Mnemonic: PWMD3L 7 6 5 4 - 3 4 3 PWMD3[7:0] 2 1 PWMD3[11:8] 2 1 Address: B3h 0 Reset 00h Address: B4h 0 Reset 00h PWMD3[11:0]: PWM 通道 3 数据寄存器 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 47 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 14 IIC 功能 由于我们已经熟知大部分IIC,而这些IIC模块使用SCL(时钟)和SDA(数据)线来联系其他的IIC 界面, 其速度可以由软件设置特殊寄存器(SFR)中的IICBR[2:0] ,从而使其高达到400KBpS(最大 值)。IIC模块可以是主机也可以是从机,,提供两个中断(RXIF,TXIF),并有两个地址以作数据传 输,它将产生开始,在主机模式中,反复启动和停止信号,在从机模式中,它将检测开始,反复启动 和 停 止 信 号 , 最 大 沟 通 的 长 度 及 连 接 设 备 的 数 目 被 一 个 最 大 400pF 的 电 容 所 限 制 。 SM59R16A2/SM59R08A2 IIC功能完全兼容其他芯片,因此,在它们的相互沟通中并无阻碍。 Mnemonic Description Direct Bit 7 IICEN MStart Bit 6 Bit 5 Bit 4 IIC function BF MSS MAS RXIF TXIF RDR Bit 3 Bit 2 RStart TDR RXAK IICCTL IICS IIC 控制寄存器 IIC 状态寄存器 F9h F8h IICA1 IIC 地址 1 寄存器 FAh IICA1[7:1] IICA2 IIC 地址 2 寄存器 FBh IICA2[7:1] IICRWD IIC 读/写寄存器 FCh Mnemonic: IICCTL 7 6 5 IICEN BF MSS Bit 1 IICBR[2:0] TXAK RW MATCH1 or RW1 MATCH2 or RW2 IICSRWD[7:0] 4 MAS 3 RStart 2 1 IICBR[2:0] Bit 0 RESET 04h 00h A0h 60h 00h Address: F9h 0 Reset 04h IICEN: IIC 模式使能 ICEN = 1,使能 IICEN = 0,禁止 BF: 总线失效标志位(仅应用于主模式中) 当此模式传输“1”到 SDA 线且检测来自主机模式中的 SDA 线的“0”时,判断失效,该位须由 软件清零。 MSS: 主\从机模式选择 MSS = 1, 选择主机模式 MSS = 0, 选择从机模式 软件必须在设置其他寄存器之前置位 MAS: 主模式的地址选择(仅在主机模式中) MAS = 0,使用 IICA1 MAS = 1,使用 IICA2 RStart: 重启控制位(仅在主机模式中) 当该位被置位时,模块将产生一个启动条件到 SDA 和 SCL 线路(在当前 ACK 之后) ,并发送存储 在 IICA1 或者 IICA2 中的呼叫地址(由 MAS 控制位选择),在地址发送出去后,此位将由硬件清 除 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 48 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 IICBR[2:0]: 波特率选择(仅在主机模式),这里的 Fosc 为外部晶体或振荡器的频率,系统默认为 Fosc/512 以便用户选择 IICBR[2:0] Baud rate 000 Fosc/32 001 Fosc/64 010 Fosc/128 011 Fosc/256 100 Fosc/512 101 Fosc/1024 110 Fosc/2048 111 Fosc/4096 Mnemonic: IICS 7 6 MStart RxIF 5 TxIF 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: 接收确认位 这是一个仅由传输方确定的只读位。如果 IIC 模块在主机模式中,在传输 8 位数据到从机模式中后, 从机模式方将返回到 RxAK。 =0:从机接收数据成功 =1:从机接收数据失败 如 IIC 模块在从模式中,在传输 8 位数据到主机后,主机方将返回到 RxAK =0:主机接收数据成功(在一些应用中,主机方可能需要更多的数据) =1:主机接收数据失败,(在一些应用中,主机方可能不需要更多的数据) TxAK: 传输确认位 在接收方,它是 RxAK 相应的位,代表着接收状态,如 RxAK 解释。实际上,它发送传输中的一个 字节如 9th 位,如 Fig 14-1 所示. RW: 从机模式读/写 该位在从机模式中只可读,它来自于如下描述的主机方的 IICA1 或者 IICA2 中的位元 0. =0: 主机方应答 IIC 模块(在主机模式)接收数据(读) =1:主机方应答 IIC 模块(在从模式)传输数据 (写) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 49 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Fig. 14-1: Acknowledgement bit in the 9th bit of a byte transmission Mnemonic: IICA1 7 6 5 4 3 IICA1[7:1] 2 1 Address: FAh 0 Reset Match1 or RW1 A0h 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 50 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Mnemonic: IICA2 7 6 5 4 IICA2[7:1] R/W 3 2 1 Address: FBh 0 Reset Match2 or RW2 60h R or R/W 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 1 Address: FCh 0 Reset 00h IICRWD[7:0]: IIC 读写缓存 在接收(读)模式中,接收的字节存储于此 在传输模式中,该字节通过该 SDA 被转换 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 51 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 15 SPI 功能 串行外围接口(SPI)是一个同步串行接口,允许主机和从机沟通,在SPI中有四个信号,它们分 别是: 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 Direct Bit 7 Bit 6 F1h F2h F5h F3h F4h SPIEN SPIMSS Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 SPICKP SPICKE SPIBR[2:0] - RBC[2:0] Bit 0 RESE T SPIRS 08h 00h 40h 00h 00h SPI function SPIC1 SPIC2 SPIS SPITXD SPIRXD SPI 控制寄存器 1 SPI 控制寄存器 2 SPI 状态寄存器 SPI 传输数据缓冲 SPI 接收数据缓冲 SPIFD - SPISSP TBC[2:0] SPIMLS SPIOV SPITXIF SPITDR SPITXD[7:0] SPIRXD[7:0] SPIRXIF SPIRDR 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 52 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB 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 为高电平 =0,空闲时 SCK 为低电平 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 53 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB 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 时钟中是同步的,如下所示; Input Shift register SPIRXD Output Shift register SPITXD Clock Generator MISO MISO MOSI MOSI SCK SCK SyncMos Master Output Shift register SPITXD Input Shift register SPIRXD SyncMos Slave 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 54 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB 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,MSM 输入/输出优先 =0,LSB 输入/输出优先 SPIOV: 溢出标志位 当 SPIRDR 被置位(SPIRXR 中的一个字节,但未被移除)且下一数据也进入时(这里不具备锁存 功能),该标志将被设置并导致在 SPIRXD 接收的数据被溢出毁坏,当 SPIRDR 被清除时,它也被 硬件清除。 SPITXIF: 传输中断标志 当 SPITXD 寄存器的数据被下载到转换寄存器时,该位被置位 SPITDR: 传输数据就绪位 当 MCU 结束对 SPITXD 寄存器读写数据时,MCU 须将改位置位,以通知 SPI 模块发送数据。在 SPI 模块完成从 SPITXD 或 SPITXD 发送数据到下载到转换寄存器后,该位将自动被清除。 SPIRXIF: 接受中断标志位 在 SPIRXD 被装载一个新的接收数据后,该位被置位 SPXDIRDR: 接收数据就绪位 当一字节被接收时,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]: 接收数据缓冲 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 55 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 16 外扩中断接口(EEI) 外扩中断接口可被连接一个8Xn矩阵或任意相似的设备,具有8路输入高或低的可编程的中断能力. 该8路接口既可通过P1口做输入,又可通过外部中断从IDLE和STOP模式中退出,且输出相互彼此独立, 但共享同一中断向量。 P1.0 P1.1 P1.2 P1.3 EEIIF: EEI interrupt OR P1.4 P1.5 IEEEI: EEI interrupt enable P1.6 P1.7 Fig. 16-1: Interrupts from EEI 8 inputs EEI Description Direct Bit 7 KBLS KBE KBF EEI 电位选择寄存器 EEI 输入使能位 EEI 标志位 93h 94h 95h KBLS7 KBE7 KBF7 Bit 6 Bit 5 Bit 4 EEI function KBLS6 KBLS5 KBLS4 KBE6 KBE5 KBE4 KBF6 KBF5 KBF4 Bit 3 Bit 2 Bit 1 Bit 0 RESET KBLS3 KBE3 KBF3 KBLS2 KBE2 KBF2 KBLS1 KBE1 KBF1 KBLS0 KBE0 KBF0 00h 00h 00h 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 56 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 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: EEI接线口7电位选择位 =0,使能 P17 低电平检测 =1,使能 P17 高电平检测 KBLS.6: EEI接线口6电位选择位 =0,使能 P16 低电平检测 =1,使能 P16 高电平检测 KBLS.5: EEI接线口5电位选择位 =0,使能 P15 低电平检测 =1,使能 P15 高电平检测 KBLS.4: EEI接线口4电位选择位 =0,使能 P14 低电平检测 =1,使能 P14 高电平检测 KBLS.3: EEI接线口3电位选择位 =0,使能 P13 低电平检测 =1,使能 P13 高电平检测 KBLS.2: EEI接线口2电位选择位 =0,使能 P12 低电平检测 =1,使能 P12 高电平检测 KBLS.1: EEI接线口1电位选择位 =0,使能 P11 低电平检测 =1,使能 P11 高电平检测 KBLS.0: EEI接线口0电位选择位 =0,使能 P10 低电平检测 =1,使能 P10 高电平检测 Mnemonic: KBE 7 6 KBE.7 KBE.6 5 KBE.5 4 KBE.4 KBE.7: EEI接线口7使能位 =0,使能标准 I/O 口 =1,使能 KBF 寄存器中的 KBF.7 位产生一中断请求 KBE.6: EEI接线口6使能位 =0,使能标准 I/O 口 =1,使能 KBF 寄存器中的 KBF.6 位产生一中断请求 KBE.5: EEI接线口5使能位 =0,使能标准 I/O 口 =1,使能 KBF 寄存器中的 KBF.5 位产生一中断请求 KBE.4: EEI接线口4使能位 =0,使能标准 I/O 口 =1,使能 KBF 寄存器中的 KBF.4 位产生一中断请求 KBE.3: EEI接线口3使能位 =0,使能标准 I/O 口 =1,使能 KBF 寄存器中的 KBF.3 位产生一中断请求 KBE.2: EEI接线口2使能位 =0,使能标准 I/O 口 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 57 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 =1,使能 KBF 寄存器中的 KBF.2 位产生一中断请求 KBE.1: EEI接线口7使能位 =0,使能标准 I/O 口 =1,使能 KBF 寄存器中的 KBF.1 位产生一中断请求 KBE.0: EEI接线口0使能位 =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: EEI 接线口 7 标志位 当 P17 检测到一编程水平线时,该位由硬件置位 如 KBE.7 同样被置位时将产生一个 EEI 中断请求,该位须软件清零 KBF.6: EEI 接线口 6 标志位 当 P16 检测到一编程水平线时,该位由硬件置位 如 KBE.6 同样被置位时将产生一个 EEI 中断请求,该位须软件清零 KBF.5: EEI 接线口 5 标志位 当 P15 检测到一编程水平线时,该位由硬件置位 如 KBE.5 同样被置位时将产生一个 EEI 中断请求,该位须软件清零 KBF.4: EEI 接线口 4 标志位 当 P14 检测到一编程水平线时,该位由硬件置位 如 KBE.4 同样被置位时将产生一个 EEI 中断请求,该位须软件清零 KBF.3: EEI 接线口 3 标志位 当 P13 检测到一编程水平线时,该位由硬件置位 如 KBE.3 同样被置位时将产生一个 EEI 中断请求,该位须软件清零 KBF.2: EEI 接线口 2 标志位 当 P12 检测到一编程水平线时,该位由硬件置位 如 KBE.2 同样被置位时将产生一个 EEI 中断请求,该位须软件清零 KBF.1: EEI 接线口 1 标志位 当 P11 检测到一编程水平线时,该位由硬件置位 如 KBE.1 同样被置位时将产生一个 EEI 中断请求,该位须软件清零 KBF.0: EEI 接线口 0 标志位 当 P10 检测到一编程水平线时,该位由硬件置位 如 KBE.0 同样被置位时将产生一个 EEI 中断请求,该位须软件清零 P1.x KBFx KBLSx KBEx Fig. 16-2: Block diagram of EEI input 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 58 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 17 EEPROM 对于 64KB/32KB 闪存中的任何字节在未用作编程时都可以用来记录数据,数据可和在内置的 EEPROM 一样被储存和更新。因为它不是真的保存到 EEPROM 中,这也是所谓的“虚拟 EEPROM 的” 功能。该 EEPROM 功能在 SM59R16A2/SM59R08A2 中很容易的被使用。基本上,它由硬件周期来 减少在固件编码中的效果,必要的数据移动,页面擦除以及重复写入等等,都能通过硬件来自动执行。 有必要再次提醒一下EEPROM的位置可以是没有程序代码写入的程序内存中的任何字节。用户必 须很小心的对EEPROM写入,不可在程序区域写入。 用户仅能设置PMW(程序存储器写入)位且通过ACC寄存器来执行EEPROM功能。如PMW=1, MOVX 指令将直接从闪存中读取/写入数据,从而代替内部或外部的SRAM,其数据覆盖(更新)也同 样被支持,因为硬件电路首先将擦除原始数据,然后写入新的数据。 推荐用户使用EEPROM的功能必须致能低压复位(可以由刻录器或ICP选择)和0℃以上的工作环 境的。 Mnemonic PCON PES CLKR Description Direct Bit 7 Power Control Program Memory Page Erase Control Register clock range selection 87h SMOD A1h EPE Bit 6 Bit 5 Bit 4 EEPROM Function MDUF PMW - - Bit 3 Bit 2 Bit 1 Bit 0 RESET - - STOP IDLE 00h - - - - 00h - AFh Mnemonic: PCON 7 6 SMOD MDUF CLK_Range[1:0] 5 - 4 PMW 3 - 2 - 1 STOP 02h Address: 87h 0 Reset IDLE 00h 当PMW被清除或重置时,MOVX指令在再次允许读/写数据到数据存储地址空间,软件开或关PMW 位使其可通过内存地址空间,下表显示了PMW位在程序存储器指令中的设置: Mnemonic MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A Mnemonic: PES 7 6 EPE - Description Move program memory data (8-bits addr.) to ACC Move program memory data (16-bits addr.) to ACC Move ACC to program memory (8-bits addr.) Move ACC to program memory (16-bits addr.) 5 - 4 - 3 - 2 - 1 - Address: A1h 0 Reset 00h 当激活EPE位,页擦除(每页包含512字节)功能可以用下面的指令执行。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 59 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 ORL MOV MOV MOV MOVX PCON,#010h DPTR,#0200h PES,#080h A,#0FFH @DPTR,A MOV ANL PES,#00h PCON,#0EFh ; ; ; ; ; ; ; ; Mnemonic: CLKR 7 6 - Enable Program Memory read/write Define page erase area from 0x0200 to 0x03FF Enable Page erase function Put 0xFF into ACC register When this instruction execute,The Program Memory 0x0200 to 0X03FF value will all change to 0xFF Disable Page erase function Disable Program Memory read/write 5 - 4 - 3 - 2 - Address: AFh 0 Reset CLK_Range[1:0] 02h 1 这一个特殊功能寄存器CLKR在AFh可依使用的系统时钟来选择最合适的编程时间. CLK_Range[1:0]: The clock range selection to adjust the erase and write timing of flash memory =00 : system clock is lower than 10MHz =01 : system clock is 10MHz ~ 20MHz =10 : system clock is 20MHz ~ 30MHz (default) =11 : system clock is 30MHz ~ 40MHz 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 60 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 18 10位模拟数字转换器(ADC) SM59R16A2/SM59R08A2提供了4通道的10位ADC,该ADC为具有高精确度的SAR结构。这将表 示当ADC测量时,将不会有大电流激增而影响IO口或其他任何功能. 大电流激增可能影响基准电压,使 其结果不准确。数字输出采样的模拟信号放入ADCD[9:0]中,而ADC的中断向量则为53h 嵌入式4通道ADC是一个在测试范围为0~3.3V的10位分辨的转换器,其4通道位于Port4 [7] ~ Port4 [4].以下表格显示了ADC在实际应用中的精度: P.S 当ADC模块使用Vdd=5.0V系统时, 用户必须注意以下两点: 1. 在启动ADC转换之前,Port4【7:4】b必须输出为“0000”以清除偏移电压 2. Fig. 20-1: The precision of 10-b ADC(The VDD=3.3V) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 61 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 Mnemonic ADCC1 ADCC2 ADCDH ADCDL Description Direct Bit 7 Bit 6 ADC 控制器 1 ADC 控制器 2 ADC 数据高字节 ADC 数据低字节 ABh ACh ADh AEh COM START Mnemonic: ADCC1 7 6 - Bit 5 ADC ADC8B Bit 4 - Bit 3 Bit 2 ADC3E ADC2E ADCCH[1:0] - Bit 1 Bit 0 ADC1E ADC0E ADCCS[1:0] ADCDH [1:0] ADCDL[7:0] 5 - 4 - 3 ADC3E 2 ADC2E 1 ADC1E RESET 00h 00h 00h 00h Address: ABh 0 Reset ADC0E 00h ADC3E: =0 :没有外部模拟输入的数据可被 ADC 通道 3 接受 =1 :ADC 通道 3 使能位,可通过此位读出模拟输入数据 ADC2E: =0 :没有外部模拟输入的数据可被 ADC 通道 2 接受 =1 :ADC 通道 2 使能位,可通过此位读出模拟输入数据 ADC1E: =0 :没有外部模拟输入的数据可被 ADC 通道 1 接受 =1 :ADC 通道 1 使能位,可通过此位读出模拟输入数据 ADC0E: =0 :没有外部模拟输入的数据可被 ADC 通道 0 接受 =1 :ADC 通道 0 使能位,可通过此位读出模拟输入数据 Mnemonic: ADCC2 7 6 COM START 5 ADC8B 4 - 3 2 ADCCH[1:0] Address: ACh 1 0 Reset ADCCS[1:0] 00h COM: 当一转换执行时,COM 将通知用户该位被置位。该位将被硬件自动清除,且只可读。 START: 当该位被置位时,ADC 将启动转换。它将被硬件自动清除。 ADC8B: 10 位或 8 位 ADC 转换数据选择位 = 0:(默认)10 位数据转换 ADCD[9:0],ADCD [9:8] = ADCDH [1:0],ADCD [7:0] = ADCDL [7:0] = 1:8 位数据转换 ADCD[7:0] = ADCDL [7:0] ADCCH[1:0] 模拟输入信号可通过该位来选择 = 00 : 通道 0 用做输入 = 01 : 通道 1 用做输入 = 10 : 通道 2 用做输入 = 11 : 通道 3 用做输入 用户还必须设置相应的通道来使能 ADCC1 中的描述位 ADCCS[1:0]: 该位用来选择 ADC 模块中的时钟频率 = 00 : ADC 时钟为系统时钟的 1/8 = 01 : ADC 时钟为系统时钟的 1/16 = 10 : ADC 时钟为系统时钟的 1/32 = 11 : ADC 时钟为系统时钟的 1/64 自 ADC 在完成一次转换需要大概 20 系统时钟,因此一次转换最快的速度大概为 160 个系统时钟且 ADCLK=00。 ADC Clock = Fclk 8 × 2 ADCCS 20 ADC Clock 1 ADC Sample Rate = ADC Conversion Time ADC Conversion Time = 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 62 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 *The ADC clock (Fclk/n) maximum 500KHz. ADCCS[1:0] 00 01 10 11 Mnemonic: ADCDH 7 6 Fclk/8 Fclk/16 Fclk/32 Fclk/64 5 ADC clock (Fclk: 1MHz ~ 4MHz) (Fclk: 4MHz ~ 8MHz) (Fclk: 8MHz ~ 16MHz) (Fclk: 16MHz ~ 32MHz) 3 2 Address: ADh 1 0 Reset ADCDH[1:0] 00h 4 3 ADCDL[7:0] 2 1 4 ADCDH[1:0]: ADC 高位数据输出 Mnemonic: ADCDL 7 6 5 Address: AEh 0 Reset 00h ADCDL[7:0]: ADC 低位数输出 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 63 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 工作环境 Symbol Description Min. Typ. Max. Unit. Remarks 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 (1) TA DC 电气特性 (TA = -40 degree C to 85 degree C, Vdd = 3.3V) Symbol Parameter Valid VIL1 Input Low Voltage port 0,1,2,3,4,5 Input Low Voltage RES, XTAL1 VIL2 VIH1 Input High Voltage port 0,1,2,3,4,5 Input High Voltage RES, XTAL1 VIH2 VOL1 Output Low Voltage port 0, ALE VOL2 Output Low Voltage port 1,2,3,4,5 Output High Voltage port 0 VOH1 VOH2 IIL ITL ILI R RES C IO Min. -0.5 0 2.0 70%Vcc Max. 0.8 0.8 Vcc+0.5 Vcc+0.5 0.45 0.45 Output High Voltage port 1,2,3,4,5,ALE Logical 0 Input Current Logical Transition Current Input Leakage Current Reset Pull-down Resistance Pin Capacitance Power Supply Current port 1,2,3,4,5 -75 Unit V V V V V V V V V V uA port 1,2,3,4,5 -650 uA Vin=2.0V ±10 uA 0.45V<Vin<Vcc 300 Kohm 10 25 20 30 pF mA mA uA 2.4 90%Vcc 2.4 90%Vcc port 0 RES 50 Vdd I CC Test Conditions Vcc=3.3V IOL=3.2mA IOL=1.6mA IOH=-800uA IOH=-80uA IOH=-60uA IOH=-10uA Vin=0.45V Freq=1MHz, Ta=25 ℃ Active mode, 16MHz Idle mode, 16MHz Power down mode (1) 当用户使用 EEPROM 或 ISP 功能,建议工作环境 0℃以上。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 64 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 (TA = -40 degree C to 85 degree C, Vdd = 5.0V) Symbol VIL1 VIL2 VIH1 VIH2 VOL1 VOL2 VOH1 VOH2 IIL ITL ILI R RES C IO Parameter Input Low Voltage Input Low Voltage Input High Voltage Input High Voltage Output Low Voltage Output Low Voltage Output High Voltage Valid port 0,1,2,3,4,5 RES, XTAL1 port 0,1,2,3,4,5 RES, XTAL1 port 0, ALE port 1,2,3,4,5 port 0 Output High Voltage port 1,2,3,4,5,ALE Logical 0 Input Current Logical Transition Current Input Leakage Current Reset Pull-down Resistance Pin Capacitance Power Supply Current port 1,2,3,4,5 port 1,2,3,4,5 Min. -0.5 0 2.0 70%Vdd Max. 0.8 0.8 Vdd+0.5 Vdd+0.5 0.45 0.45 -85 Unit V V V V V V V V V V uA IOL=3.2mA IOL=1.6mA IOH=-800uA IOH=-80uA IOH=-60uA IOH=-10uA Vin=0.45V -650 uA Vin=2.0V ±10 uA 0.45V<Vin<Vdd 300 Kohm 10 25 20 30 pF mA mA uA 2.4 90%Vdd 2.4 90%Vdd port 0 RES 50 Vdd I CC Test Conditions Vdd=5.0V Freq=1MHz, Ta=25 ℃ Active mode, 16MHz Idle mode, 16MHz Power down mode Note1: Under steady state (non-transient) conditions, IOL must be externally Limited as follows: Maximum IOL per port pin: 10mA Maximum IOL per 8-bit port: port 0 : 26mA port 1,2,3,4,5 : 15mA Maximum total IOL for all output pins : 71mA 如果IOL超过这个条件,VOL可能会超出相关的规格,Pins current 不能保证比当前列出条件更好的。 Icc Active Mode Test Circuit Icc VDD NC Clock Signal SM59R16A2 XTAL2 XTAL1 P0 RESET VSS 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 65 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 应用参考 Valid for SM59R16A2/SM59R08A2 2MHz 47 pF 47 pF 6MHz 35 pF 35 pF X'tal C1 C2 16MHz 30 pF 30 pF 25MHz 25 pF 25 pF 10MHz 30 pF 30 pF 12MHz 30 pF 30 pF Crystal X'tal C1 C2 XTAL2 SM59R16A2 (SM59R08A2) XTAL1 C2 VSS C1 NOTE: Oscillation circuit may differ with different crystal or ceramic resonator in higher oscillation frequency which was due to each crystal or ceramic resonator has its own characteristics. User should check with the crystal or ceramic resonator manufacture for appropriate value of external components. Please see SM59R16A2/SM59R08A2 application note for details. Reset Pin and 3.3V Regulator (VDD = 5V or 3.3V) VDD3V 5V 10uF 0.1uF RESET 0.1uF 4.7uF RESET VDD 6.8K SM59R16A2 5V 4.7uF 3.3V VDD3V 3.3V 10uF VDDIO 5V 0.1uF SM59R16A2 AVDD3V 3.3V 0.1uF 4.7uF 0.1uF VDD 6.8K VDDIO 0.1uF 4.7uF 0.1uF 5V AVDD 3.3V AVDD3V AVDD 0.1uF VSSIO VSS AVSS Timing Critical, Requirement of External Clock VSSIO VSS AVSS (Vss=0.0V is assumed) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 66 Ver.D SM59R16A2/SM59R08A2 06/2010 SM59R16A2/SM59R08A2 内嵌 64KB/32KB 具有 ISP 功能的 Flash 和 2KB RAM 的 8 位微控制器 芯片刻录器列表 公司名称 研仪科技股份有限公司 台湾省台北县新店市民权路98号7楼 网址: http://www.aec.com.tw 河洛半导体股份有限公司 台湾省台北市内湖区瑞光路76巷18号4楼 网址: http://www.hilosystems.com.tw 力浦电子实业股份有限公司 台湾省台北县三重市重新路五段609巷4号6楼 4室 网址: http://www.leap.com.tw 南京西尔特电子有限公司 江苏省南京市江宁区将军大道2号美之国花园 6-31 211100 网址: http://www.xeltek-cn.com 广州致远电子有限公司 广州市天河区车陂路黄洲工业区7栋2楼 510660 网址: http://www.embedtools.com/ 天津威磊电子技术有限公司 天津市南开区科研西路12号科技创业中心357 室 300192 网址: http://www.weilei.com.cn/ 联系方式 Tel:02-22182325 Fax:02-22182435 E-mail: [email protected] 刻录器型号 Lab Tool - 48XP/UXP Lab Tool – 848/848XP Tel: 02-87923301 Fax:02-87923285 E-mail: [email protected] All - 100 series Tel: 886-2-29991860 Fax:02-29990015 E-mail: [email protected] Leap-48 Tel: + 86-25-52765201, E-mail: [email protected] [email protected] Superpro 280U Superpro 580U Superpro 3000U Superpro 9000U TEL: +86-20-28872449 E-mail: [email protected] SmartPRO 5000U/X8 TEL: + 86-22-87891218#801 E-mail: [email protected] [email protected] VP-890;VP-980;VP-880;VP-680 VP-480;VP-380;VP-280;VP-190 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M037 67 Ver.D SM59R16A2/SM59R08A2 06/2010