SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 描述.....................................................................................................................................................................................3 特征.....................................................................................................................................................................................3 各封装引脚配置...................................................................................................................................................................4 系统方框图 ..........................................................................................................................................................................5 管脚描述..............................................................................................................................................................................6 特殊功能寄存器(SFR) .........................................................................................................................................................7 功能描述: ..........................................................................................................................................................................9 1. 总特征.........................................................................................................................................................................9 1.1. 嵌入式程序存储器 .........................................................................................................................................9 1.2. IO 口 ..............................................................................................................................................................9 1.3. 指令时钟周期选择 .........................................................................................................................................9 1.4. 复位 .............................................................................................................................................................10 1.4.1. 硬件复位功能..................................................................................................................................10 1.4.2. 软件复位功能..................................................................................................................................10 1.4.3. Time Access Key register (TAKEY)................................................................................................10 1.4.4. 软件复位寄存器(SWRES) ..............................................................................................................11 1.4.5. Example of software reset .............................................................................................................11 1.5. 时钟源 .........................................................................................................................................................11 2. 指令设置 ...................................................................................................................................................................12 3. 存储器结构 ...............................................................................................................................................................16 3.1. 程序存储器 ..................................................................................................................................................16 3.2. 数据存储器 ..................................................................................................................................................18 3.2.1. 数据内存-低 128 字节(00h to 7Fh) .................................................................................................18 3.2.2. 数据存储器-高 128 字节(80h to FFh) .............................................................................................18 4. CPU 结构..................................................................................................................................................................19 4.1. 累加器 .........................................................................................................................................................19 4.2. B 寄存器 .....................................................................................................................................................19 4.3. 程序状态字 ..................................................................................................................................................20 堆栈指针......................................................................................................................................................20 4.4. 4.5. 数据指针......................................................................................................................................................20 4.6. 数据指针 1 ...................................................................................................................................................21 4.7. 接口控制寄存器 ...........................................................................................................................................21 5. GPIO ........................................................................................................................................................................22 6. 定时器 0 和定时器 1 ................................................................................................................................................24 6.1. 定时器/计数器模式控制寄存器(TMOD) .......................................................................................................24 6.2. 定时/计数控制寄存器(TCON) ......................................................................................................................25 6.3. T0、T1 可配置性: ....................................................................................................................................25 7. 串行接口 0 ................................................................................................................................................................26 7.1. 模式 0 ..........................................................................................................................................................27 7.2. 模式 1 ..........................................................................................................................................................27 7.3. 模式 2 ..........................................................................................................................................................28 7.4. 模式 3 .........................................................................................................................................................28 7.5. 串行接口 0 的多重机通讯 ...........................................................................................................................28 7.6. 波特率发生器...............................................................................................................................................29 7.6.1. 串行接口 0 的模式 1 和 3................................................................................................................29 7.7. 波特率的时钟源 ...........................................................................................................................................29 8. 看门狗定时器............................................................................................................................................................30 9. 中断 ..........................................................................................................................................................................33 9.1. 优先权配置 ..................................................................................................................................................35 10. 电源管理单元 ...................................................................................................................................................36 10.1. 待机模式(空闲模式).................................................................................................................................36 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 1 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 10.2. 停止模式..................................................................................................................................................36 IIC 功能 ...........................................................................................................................................................37 LVI –低压中断 ..................................................................................................................................................41 在系统编程(Internal ISP) .................................................................................................................................42 13.1. ISP 服务程序 ..........................................................................................................................................42 13.2. 锁定位(N) ................................................................................................................................................42 13.3. 对 ISP 服务程序编程 ...............................................................................................................................42 13.4. 启动 ISP 服务程序...................................................................................................................................42 13.5. ISP 寄存器– TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC ......................................................43 工作环境............................................................................................................................................................................46 DC 电气特性 .....................................................................................................................................................................46 11. 12. 13. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 2 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 特征 产品目录 SM39R4051W20, SM39R2051W20 描述 原来的 8052 有 12 时钟结构. 一个机器周期需要 12 个时 钟,大多数指令是一个或两个机器周期.因此,除了乘除和 DIV 指令, 8052 的每个指令使用 12 或 24 个时钟.此外, 8052 中的每个周期用了两个记忆提取.在许多情况下,第 二个是假的提取,和额外的时钟被浪费了. 该 SM39R4051 是一个快速的单芯片 8 位微控制器内核. 这是一个全功能的 8 位嵌入式控制器,执行所有 ASM51 指令,具有与 MCS - 51 相同的指令设置. 订货信息 Package N S PDIP (300 mil) SOP (300 mil) z z z z z z z z z z SM39R4051ihhkL yymmv i: 工艺标志{W = 2.7V ~ 5.5V} hh: 封装脚位 k: 封装形式后缀{as table below } L: 无铅标志 {无文字即含铅,”P” 即无铅} yy: 年 mm: 月 v: 版本标志{ A, B,…} Postfix z z z z z z z z z z z 工作电压:2.7V ~ 5.5V 高速 1T 架构,最高可达 25MHz. 1~8T 模式可使用软件编程. 指令设置兼容 MCS-51. 内置 RC 振荡器,频率范围为 1MHz~24MHz 4K/2K 字节的片上闪存程序存储器 256 字节的标准的 8052 RAM 一个全双工通信的串行接口.附加鲍率产生器 两个 16-bit 的定时器/计数器(计时器 0, 1) 18 GPIOs(20L PDIP&SOP),GPIOs 可选择四种型 态(准双向口、推挽、开漏、只输入),默认准双向口(上 拉) 具有四级优先权的外部中断 0,1 可编程的看门狗定时器(WDT). 一个 IIC 接口(主/从机模式) 片上闪存存储器支持 ISP/IAP/ICP 及 EEPROM 功 能. ISP 服务程序存储空间设置为 N*256 byte (N=0 to 4). 片上在线仿真功能(ICE)及片上在线调试功能(OCD). ALE 输出选择. 低电压中断/低电压复位(LVI/LVR ). 管脚 ESD 性能超过 4KV. 增强用户代码保护. 电源管理单元空闲及掉电模式. Pin / Pad Configuration Page 4 Page 4 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-M056 3 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 各封装引脚配置 SyncMOS SM39R4051ihhNP yymmv (20L PDIP Top View) SyncMOS SM39R4051ihhSP yymmv (20L SOP Top View) 附注: 1. 管脚 Reset/P3.6 于出厂时设置为 RESET 脚,使用者需于上电时将此管脚置低。使用者可于刻录时将此管脚定义为一 般 I/O(P3.6)。 2. 为避免偶然的情况下进入 ISP 刻录状态(参考第 13.4 单元),在上电时必须确保没有连续的脉冲信号在管脚 P3.0 及管脚 P1.5 必须置高。 3. 于使用 ICP 刻录功能时,用户如果定义管脚 SDA/P1.0 及 SCL/P1.1 为一般 I/O 使用,必须设计成双向 I/O。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 4 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 XTAL2 XTAL1 MAX810 IIC_SCL IIC_SDA RESET RXD0 TXD0 系统方框图 UART 0 IIC SRAM 256Bytes Port 1 Port 1 Port 3 Port 3 Port 4 Port 4 Timer 0/1 T0 T1 Flash 4KBytes Watchdog Interrupt ICE ICP P1.1(clock) P1.0(Data) Interface control 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 5 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 管脚描述 20L PDIP/SOP 1 代号 I/O 描述 RESET(default)/ P3.6 I/O 2 P3.0/RXD/#INT0/T0 I/O 3 P3.1/TXD/#INT1/T1 I/O 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 XTAL2/P4.0 XTAL1/P4.1 P3.2/#INT0 P3.3/#INT1 P3.4/T0 P3.5/T1 VSS P3.7 P1.0/SDA P1.1/SCL P1.2/T0 P1.3/T1 P1.4/#INT0/T0/RESET P1.5/#INT1/T1 P1.6 P1.7 VDD I/O I/O I/O I/O I/O I/O I I/O I/O I/O I/O I/O I/O I/O I/O I/O I 复位(初始设定)& P3 口的位 6 P3 口的位 0 & 串行接口通道接收/发送数据 & (外部中断 0 or 计时器 0 外部 输入) P3 口的位 1 &串行接口通道 0 数据传输或接收模式 0 时钟 & (外部中断 1 or 计时器 1 外部输入) 晶振输出& P4 口的位 0 晶振输入& P4 口的位 1 P3 口的位 2 & 外部中断 0 P3 口的位 3 & 外部中断 1 P3 口的位 4 & 计时器 0 外部输入 P3 口的位 5 & 计时器 1 外部输入 供电电源地 P3 口的位 7 P1 口的位 0 & ICE 和 ICP 功能的指令及数据输入 P1 口的位 1 & ICE 和 ICP 功能的时钟输入 P1 口的位 2 & 计时器 0 外部输入 P1 口的位 3 & 计时器 1 外部输入 P1 口的位 4 & (外部中断 0 or 计时器 0 外部输入 or 复位) P1 口的位 5 & (外部中断 1 or 计时器 1 外部输入) P1 口的位 6 P1 口的位 7 数位电源电压 特殊功能脚可依下表配置(可于特殊功能寄存器中选择): 特殊功能脚 默认 选择 1 选择 2 选择 3 #INT0 6(P3.2) 2(P3.0) 15(P1.3) 16(P1.4) #INT1 7(P3.3) 3(P3.1) 14(P1.2) 17(P1.5) T0 8(P3.4) 14(P1.2) 16(P1.4) 2(P3.0) T1 9(P3.5) 15(P1.3) 17(P1.5) 3(P3.1) 复位脚可依下表配置(可于 ICP 或 ISP 中选择 ): 标志 默认 选择 1 RESET 1 16 当使用片上硬件复位机制时,复位脚可配置为 P3.6。 当主系统时钟源设置为使用振荡器(时钟由晶振输入脚输入)或片内 RC 振荡器,晶振输出脚可于 ICP 或 ISP 中选择配置为 P4.0。 当主系统时钟源设置为片内 RC 振荡器, 晶振输入脚可于 ICP 或 ISP 中选择配置为 P4.1。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 6 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 特殊功能寄存器(SFR) 特殊功能寄存器分布图如下所示: Hex\Bin F8 X000 IICS F0 E8 E0 B P4 ACC X001 IICCTL ISPFAH D8 D0 C8 C0 B8 X010 IICA1 X011 IICA2 ISPFAL P3M0 ISPFD P3M1 PSW IRCON IEN1 IP1 B0 A8 A0 P3 IEN0 98 S0CON S0BUF 90 88 80 Hex\Bin P1 TCON AUX TMOD SP X001 X101 IICEBT X110 LVC Bin/Hex FF TAKEY F7 EF E7 ISPFC P4M0 P4M1 DF P1M0 P1M1 D7 CF C7 BF WDTC IP0 X111 SWRES S0RELH WDTK S0RELL P1WE X000 X100 IICRWD P3WE B7 AF A7 9F TL0 DPL X010 TL1 DPH X011 TH0 DPL1 X100 TH1 DPH1 X101 CKCON X110 IFCON PCON X111 97 8F 87 Bin/Hex 注:SM39R4051 特殊功能寄存器的重置值在下表描述 寄存器 地址 重置值 SP DPL DPH DPL1 DPH1 PCON 81h 82h 83h 84h 85h 87h 07h 00h 00h 00h 00h 40h Stack Pointer Data Pointer 0 low byte Data Pointer 0 high byte Data Pointer 1 low byte Data Pointer 1 high byte Power Control 描述 TCON TMOD TL0 TL1 TH0 TH1 CKCON IFCON P1 AUX 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh 90h 91h 00h 00h 00h 00h 00h 00h 10h 40h FFh 00h Timer/Counter Control Timer Mode Control Timer 0, low byte Timer 1, low byte Timer 0, high byte Timer 1, high byte Clock control register Interface control register Port 1 Auxiliary register 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 7 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 寄存器 地址 重置值 描述 S0CON S0BUF P1WE P3WE IEN0 IP0 S0RELL P3 98h 99h A3h A4h A8h A9h AAh B0h 00h 00h FFh FFh 00h 00h 00h FFh Serial Port 0, Control Register Serial Port 0, Data Buffer Port 1 output enable Port 3 output enable Interrupt Enable Register 0 Interrupt Priority Register 0 Serial Port 0, Reload Register, low byte Port 3 WDTC WDTK IEN1 IP1 S0RELH IRCON PSW P1M0 B6h B7h B8h B9h BAh C0h D0h D4h 04h 00h 00h 00h 00h 00h 00h 00h Watchdog timer control register Watchdog timer refresh key. Interrupt Enable Register 1 Interrupt Priority Register 1 Serial Port 0, Reload Register, high byte Interrupt Request Control Register Program Status Word Port 1 output mode 0 P1M1 P3M0 P3M1 P4M0 P4M1 ACC ISPFAH ISPFAL D5h DAh DBh DCh DDh E0h E1h E2h 00h 00h 00h 00h 00h 00h FFh FFh Port 1 output mode 1 Port 3 output mode 0 Port 3 output mode 1 Port 4 output mode 0 Port 4 output mode 1 Accumulator ISP Flash Address-High register ISP Flash Address-Low register ISPFD ISPFC LVC SWRES P4 B TAKEY IICS E3h E4h E6h E7h E8h F0h F7h F8h FFh 00h 00h 00h FFh 00h 00h 00h ISP Flash Data register ISP Flash control register Low voltage control register Software Reset register Port 4 B Register Time Access Key register IIC status register IICCTL IICA1 IICA2 IICRWD IICS2 F9h FAh FBh FCh FDh 04h A0h 60h 00h 00h 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 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 8 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 功能描述: 1. 总特征 SM39R4051是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详细定义将在以下章节给出. 1.1. 嵌入式程序存储器 可通过编程器或在线编程(ISP)将程序加载到4KB/2KB的嵌入式闪存体中,其高品质的闪存体具有100K次的重复可擦写编程 并记忆数据,如EEPROM。 1.2. IO 口 SM39R4051 有 3 组 I / O 端口: Port 1, Port 3 and Port 4. Ports 1, 3 是 8 位口及 Port 4 是 2 位口. 四种型态: 准双向口(标 准 8051 输出口), 推挽, 开漏, 与仅为输入. 在章节 5 中有详细说明。 在20管脚包装 (DIP/SOP),外部中断0、外部中断1、计时器0外部输入、计时器1外部输入之特殊功能脚可依下表配置: 特殊功能脚 #INT0 #INT1 T0 T1 默认 6(P3.2) 7(P3.3) 8(P3.4) 9(P3.5) 选择 1 2(P3.0) 3(P3.1) 14(P1.2) 15(P1.3) 选择 2 15(P1.3) 14(P1.2) 16(P1.4) 17(P1.5) 选择 3 16(P1.4) 17(P1.5) 2(P3.0) 3(P3.1) 当使用片上硬件复位机制时,复位脚可配置为P3.6。 当主系统时钟源设置为使用振荡器(时钟由晶振输入脚输入)或片内 RC 振荡器,可于 ICP 或 ISP 中选择将晶振输出脚配置为 P4.0,及晶振输入脚选择配置为 P4.1,如下表: 20管脚包装 晶振输入脚 晶振输出脚 振荡器 Xtal1 P4.0 片内RC振荡器 P4.1 P4.0 所有的P1、P3、P4口都可通过转化速率来降低EMI。另一种降低EMI的方式是在禁止ALE输出,可通过特殊功能寄存器(SFR) 来进行选择控制,在高静电环境且在人体接触模式中,其I/O口的ESD可达4KV,可以保证 SM39R4051在高静电环境下的 品质. 1.3. 指令时钟周期选择 传统的52 系列单片机时钟周期是12T, 即12 个振荡器时钟为1个机器周期.SM39R4051为1T~8T的微控制器, 即机器周期 为1个时钟周期~8个时钟周期。换句话说, 执行一条指令可是1个时钟~8个时钟。 Mnemonic: CKCON 7 6 5 ITS ITS: 指令时钟周期选择. ITS [6:4] 000 001 4 3 - 2 - 1 - Address: 8Eh 0 Reset 10H 指令时钟周期 1T 模式 2T 模式(默认) 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 9 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 010 011 100 101 110 111 3T 模式 4T 模式 5T 模式 6T 模式 7T 模式 8T 模式 默认为2T模式, 在任何时候,如CKCON [6:4](地址为8Eh)被改变时. 每条指令并不是都能在一个机器周期内被执行的。所 有指令的确切机器周期将在下一章节中给出. 1.4. 1.4.1. 复位 硬件复位功能 SM39R4051提供了片上硬件复位机制, 片上硬件复位的时间长度可以通过编程器或ISP设置. 片上硬件复位的时间长度 25ms (default) 200ms 100ms 50ms 16ms 8ms 4ms 1.4.2. 软件复位功能 SM39R4051提供一种软件复位机制来实现整个芯片的复位.要实现软件复位,于程序中需把3个特殊值 55h,AAh和5Ah按顺 序写到TAKEY寄存器来使能软件复位寄存器(SWRES)之写入. 在软件复位寄存器获得可写权后,可以对SWRES寄存器写入 FFh. 硬件将解码出复位讯号它是与其他硬件复位讯号作 “OR”处理. 软件复位寄存器在软件复位过程的最后会进行自复位. Mnemonic TAKEY SWRES 1.4.3. Description Time Access Key register Software Reset register Direct Bit 7 Bit 6 Bit 5 Bit 4 Software Reset function Bit 3 Bit 2 Bit 1 Bit 0 RESET F7h TAKEY [7:0] 00H E7h SWRES [7:0] 00H Time Access Key register (TAKEY) Mnemonic: TAKEY 7 6 5 4 3 TAKEY [7:0] 2 1 Address: F7H 0 Reset 00H 软件复位寄存器(SWRES) 默认为只读; 软件把 3 个特殊值按顺序写到 TAKEY 寄存器来使能软件复位 寄存器(SWRES)可写. 它们是 MOV TAKEY, #55h MOV TAKEY, #0AAh MOV TAKEY, #5Ah 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 10 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 1.4.4. 软件复位寄存器(SWRES) Mnemonic: SWRES 7 6 5 4 3 SWRES [7:0] 2 Address: E7H 0 Reset 00H 1 SWRES[7:0]: 软件复位寄存器. 在软件复位过程的最后会进行自重置. SWRES [7:0] = FFh, 产生软件复位. SWRES [7:0] = 00h ~ FEh, 不产生复位动作. 1.4.5. Example of software reset MOV TAKEY, #55h MOV TAKEY, #0AAh MOV TAKEY, #5Ah ; enable SWRES write attribute MOV SWRES, #0FFh ; software reset MCU 1.5. 时钟源 默认时钟来自于外部晶振时钟信号,其时钟应用于初始化阶段,其主要的工作是确定时钟源使用的正常运行。 内部时钟源来源于不同分频的内部OSC如表1-1所示,时钟源可在编程器或ICP中设置. Table 1-1: Selection of clock source Clock source external crystal (use XTAL1 and XTAL2 pins ) (初始设定) external crystal (only use XTAL1, the XTAL2 define as I/O) 20MHz from on-chip RC-Oscillator 16MHz from on-chip RC-Oscillator 12MHz from on-chip RC-Oscillator 8MHz from on-chip RC-Oscillator 4MHz from on-chip RC-Oscillator 2MHz from on-chip RC-Oscillator 1MHz from on-chip RC-Oscillator 对于来源于内部OSC的频率,这将有些许误差,在应用程序中需要精确的频率时,须注意使用. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 11 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 2. 指令设置 所有SM39R4051的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表格列出了以SM39R4051微控器为核心 的指令集的周期的总结,这里的周期表示为机器周期。 Mnemonic ADD A,Rn ADD A,direct Table 2-1: Arithmetic operations Description Add register to accumulator Add direct byte to accumulator Code 28-2F 25 Bytes 1 2 Cycles 1 2 ADD A,@Ri ADD A,#data ADDC A,Rn ADDC A,direct 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 26-27 24 38-3F 35 1 2 1 2 2 2 1 2 ADDC A,@Ri ADDC A,#data SUBB A,Rn SUBB A,direct 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 36-37 34 98-9F 95 1 2 1 2 2 2 1 2 SUBB A,@Ri SUBB A,#data INC A INC Rn INC direct Subtract indirect RAM from A with borrow Subtract immediate data from A with borrow Increment accumulator Increment register Increment direct byte 96-97 94 04 08-0F 05 1 2 1 1 2 2 2 1 2 3 INC @Ri INC DPTR DEC A DEC Rn Increment indirect RAM Increment data pointer Decrement accumulator Decrement register 06-07 A3 14 18-1F 1 1 1 1 3 1 1 2 DEC direct DEC @Ri MUL AB DIV Decrement direct byte Decrement indirect RAM Multiply A and B Divide A by B 15 16-17 A4 84 2 1 1 1 3 3 5 5 DA A Decimal adjust accumulator D4 1 1 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 12 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 Mnemonic ANL A,Rn ANL A,direct Table 2-2: Logic operations 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-M056 13 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 Mnemonic MOV A,Rn MOV A,direct Table 2-3: Data transfer Description Move register to accumulator Move direct byte to accumulator Code E8-EF E5 Bytes 1 2 Cycles 1 2 MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct Move indirect RAM to accumulator Move immediate data to accumulator Move accumulator to register Move direct byte to register E6-E7 74 F8-FF A8-AF 1 2 1 2 2 2 2 4 MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct1,direct2 Move immediate data to register Move accumulator to direct byte Move register to direct byte Move direct byte to direct byte 78-7F F5 88-8F 85 2 2 2 3 2 3 3 4 MOV direct,@Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct Move indirect RAM to direct byte Move immediate data to direct byte Move accumulator to indirect RAM Move direct byte to indirect RAM 86-87 75 F6-F7 A6-A7 2 3 1 2 4 3 3 5 MOV @Ri,#data Move immediate data to indirect RAM 76-77 2 3 MOV DPTR,#data16 Load data pointer with a 16-bit constant 90 3 3 MOVC A,@A+DPTR Move code byte relative to DPTR to accumulator 93 1 3 MOVC A,@A+PC PUSH direct Move code byte relative to PC to accumulator Push direct byte onto stack 83 C0 1 2 3 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-M056 14 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 Mnemonic ACALL addr11 LCALL addr16 Table 2-4: Program branches 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 iump 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 CJNE Rn,#data rel CJNE @Ri,#data rel 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 B5 B4 B8-BF B6-B7 3 3 3 3 4 4 4 4 DJNZ Rn,rel DJNZ direct,rel NOP Decrement register and jump if not zero Decrement direct byte and jump if not zero No operation D8-DF D5 00 2 3 1 3 4 1 Mnemonic CLR C CLR bit Table 2-5: Boolean manipulation Description Clear carry flag Clear direct bit Code C3 C2 SETB C Set carry flag SETB bit CPL C CPL bit Bytes 1 2 Cycles 1 3 D3 1 1 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-M056 15 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 3. 存储器结构 SM39R4051存储器结构和通用的8051结构相同,它们是作为程序存储器的4KB的嵌入式Flash. 3.1. 程序存储器 SM39R4051有4K的嵌入式flash,可做为通用的程序存储或EEPROM.其他还包括最大为1K的特定ISP服务程序存储空间. 这4K的地址从$000 to $FFF. ISP服务程序的地址从$C00 to $FFF. SP服务程序空间可以被分割N块256字节(N=0 to 4). 当 N=0时,意味着没有ISP复位程序空间可用. 全部的4K字节空间都被用来做程序存储. 当N=1时,意味着地址$F00 to $FFF保 留为ISP服务程序空间. 当N=2意味着内存地址$E00 to $FFF保留为ISP服务程序空间等等... 数值N可以通过编程器或ICP 方式编程或设置.它可象EEPROM那样用来记录任何数据.EEPROM的应用功能在第13章节的内部ISP部分有描述. N=0 FFF N=1 F00 ISP service Program space, Up to 1K N=2 E00 N=3 D00 C00 N=4 4K Program Memory space 000 Fig. 3-1: SM39R4051 programmable Flash 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 16 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 FFF N=0 F00 ISP service Program space, Up to 1K N=1 N=2 E00 D00 C00 N=3 N=4 300 1K Program Memory space 000 Fig. 3-2 : SM39R2051 programmable Flash 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 17 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 3.2. 数据存储器 SM39R4051具有256 Bytes的片上SRAM, 256 Bytes和通用的8052内部存储器结构一样. FF FF Higher 128 Bytes (Accessed by indirect addressing mode only) SFR (Accessed by direct addressing mode only) 80 7F 80 Lower 128 Bytes (Accessed by direct & indirect addressing mode ) 00 Fig. 3-3: RAM architecture 3.2.1. 数据内存-低 128 字节(00h to 7Fh) 数据存储器从 00h 到 FFh 的地址和在 8052 中的定义是一样的. 0h 到 7Fh 的地址可通过直接或者间接寻址方式访问. 00h 到 1Fh 是寄存器的空间, 20h 到 2Fh 是位寻址空间, 30h 到 7Fh 是通用的数据存储区. 3.2.2. 数据存储器-高 128 字节(80h to FFh) 80h 到 FFh 的地址仅仅能从间接寻址的方式访问,它是一个数据区. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 18 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 4. CPU结构 SM39R4051结构由以下四部分组成: a. 控制单元 b. 算法-逻辑单元 c. 存储器控制单元 d. RAM和SFR控制单元 SM39R4051结构允许接受来自程序存储器的指令并与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 0 Data pointer high 0 Auxiliary register Interface control register E0h F0h ACC.7 B.7 D0h CY PSW SP DPL DPH DPL1 DPH1 AUX IFCON 4.1. Bit 6 Bit 5 8051 Core ACC.6 ACC.5 B.6 B.5 AC Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET ACC.4 B.4 ACC.3 B.3 ACC.2 B.2 ACC.1 B.1 ACC.0 B.0 00H 00H OV PSW.1 P 00H F0 RS[1:0] 81h 82h SP[7:0] DPL[7:0] 07H 00H 83h DPH[7:0] 00H 84h DPL1[7:0] 00H 85h DPH1[7:0] 00H 91h BRGS - - 8Fh - CDPR - PTS[1:0] - - 2 ACC.2 1 ACC.1 PINTS[1:0] DPS 00H - ISPE 00H - 累加器 ACC是一个累加器,大部分单操作指令的一个操作数取自累加器. Mnemonic: ACC 7 6 ACC.7 ACC.6 5 ACC05 4 ACC.4 3 ACC.3 Address: E0h 0 Reset ACC.0 00h ACC[7:0]: The A (or ACC) register is the standard 8052 accumulator. 4.2. B 寄存器 B寄存器被用于乘法或除法指令,也可作为一般寄存器以存储临时数据. Mnemonic: B 7 6 B.7 B.6 5 B.5 4 B.4 3 B.3 2 B.2 1 B.1 Address: F0h 0 Reset B.0 00h B[7:0]: The B register is the standard 8052 register that serves as a second accumulator. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 19 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B 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]: 堆栈指针储存了暂时寄存器的地址,该地址是堆栈指针的起始位置.换言之,它总是指向堆栈指 针的顶端。 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-M056 20 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 4.6. 数据指针 1 双数据指针加速了块状数据的运行速度.标准的DPTR 是一个16位的寄存器,是用来寻址外部空间或者外部存储器. 在 SM39R4051中,标准的数据指针称为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 4 2 1 PINTS[1:0] Address: 91h 0 Reset DPS 00H 2 - Address: 8Fh 0 Reset ISPE 00H DPL1[7:0]: Data pointer Low 1 Mnemonic: DPH1 7 6 5 DPH1[7:0]: Data pointer High 1 Mnemonic: AUX 7 6 BRGS - 5 - 3 PTS[1:0] DPS: 数据指针选择位. DPS = 1 选择数据指针 1. 4.7. 接口控制寄存器 Mnemonic: IFCON 7 6 CDPR 5 - 4 - 3 - 1 - CDPR: 程序码已加密指示位(仅读) ISPE: ISP 功能使能位 ISPE = 1, 允许使用 ISP 功能 ISPE = 0, 禁止使用 ISP 功能 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 21 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 5. GPIO SM39R4051有3个I/O口: Port 1, Port 3 and Port 4. Ports 1, 3是8位口and Port 4 是2位口. 们是: 准双向口 (标准的8051端 口输出),推挽电路,开漏, 与只输入. 两种寄存器的配置为每个端口的每个位选择输出方式.SM39R4051的所有端口可以通过 软件配置四种型号的一种.如下表显示: Mnemonic P1M0 P1M1 P3M0 P3M1 P4M0 P4M1 P1WE P3WE Description Direct Port 1 output mode 0 Port 1 output mode 1 Port 3 output mode 0 Port 3 output mode 1 Port 4 output mode 0 Port 4 output mode 1 Port 3 output enable Port 1 output enable PxM1.y 0 0 1 1 PxM0.y 0 1 0 1 D4h D5h DAh DBh DCh DDh A3h A4h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 I/O port function register P1M0[7:0] P1M1[7:0] P3M0[7:0] P3M1[7:0] Bit 2 Bit 1 Bit 0 P4M0[1:0] P4M1[1:0] P3WE[7:0] P1WE[7:0] RESET 00H 00H 00H 00H 00H 00H FFH FFH Port output mode 准双向口 (标准的 8051 端口输出) 推挽电路 只输入 (high-impedance) 开漏 当使用片上硬件复位机制时,复位脚可配置为P3.6。 当主系统时钟源设置为使用振荡器(时钟由晶振输入脚输入)或片内RC振荡器,可于ICP或ISP中选择将晶振输出脚配置为 P4.0,及晶振输入脚选择配置为P4.1. Mnemonic: P1WE 7 6 5 P1.7 P1.6 P1.5 4 P1.4 3 P1.3 2 P1.2 1 P1.1 Address: A3h 0 Reset P1.0 FFH Mnemonic: P3WE 7 6 5 P3.7 P3.6 P3.5 4 P3.4 3 P3.3 2 P3.2 1 P3.1 Address: A4h 0 Reset P3.0 FFH 一般的应用,每个管脚都可独立的置高或置低.如下表显示: Mnemonic Port 4 Port 3 Port 1 Description Port 4 Port 3 Port 1 Direct Bit 7 Bit 6 E8h B0h 90h P3.7 P1.7 P3.6 P1.6 Mnemonic: P1 7 6 P1.7 P1.6 5 P1.5 Bit 5 Ports P3.5 P1.5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET P3.4 P1.4 P3.3 P1.3 P3.2 P1.2 P4.1 P3.1 P1.1 P4.0 P3.0 P1.0 FFh FFh FFh 4 P1.4 3 P1.3 2 P1.2 1 P1.1 Address: 90h 0 Reset P1.0 FFh 4 P3.4 3 P3.3 2 P3.2 1 P3.1 Address: B0h 0 Reset P3.0 FFh P1.7~ 0: Port1 [7] ~ Port1 [0] Mnemonic: P3 7 6 P3.7 P3.6 5 P3.5 P3.7~ 0: Port3 [7] ~ Port3 [0] 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 22 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 Mnemonic: P4 7 6 - 5 - 4 - 3 - 2 - 1 P4.1 Address: E8h 0 Reset P4.0 FFh P4.1~ 0: Port4 [1] ~ Port4 [0] 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 23 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 6. 定时器0 和定时器1 SM39R4051有二个16bit的定时/计数寄存器: 定时器0, 定时器1. 所有这些都可以被设置为定时或计数操作. 在定时器模式中, 定时器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 AUX 6.1. 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 Auxiliary register 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 91h BRGS - - PTS[1:0] DPS 00H 3 GATE 2 1 C/T M1 Timer 0 PINTS[1:0] 定时器/计数器模式控制寄存器(TMOD) Mnemonic: TMOD 7 6 5 GATE C/T M1 Timer 1 4 M0 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 位定时器/计数 器. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 24 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 6.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 以下降沿/低电 平方式触发. 6.3. T0、T1 可配置性: 计时器0外部输入(T0)及计时器1外部输入(T1)脚可于AUX寄存器中之PTS[1:0]配置至其他I/O。 Mnemonic: AUX 7 6 BRGS - PTS [1:0] 0x00 0x01 0x10 0x11 5 - 4 3 PTS [1:0] 2 1 PINTS[1:0] Package = 20 Pin T0 P3.4 P3.0 P1.4 P1.2 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 25 Address: 91h 0 Reset DPS 00H T1 P3.5 P3.1 P1.5 P1.3 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 7. 串行接口0 两个串行缓冲器组成两个单独寄存器,即一个传输缓冲区和一个接收缓冲区。 写入数据到特殊功能寄存器(SFR)S0BUF并设置这些数据在串行输出缓冲,并开始传输, 来自S0BUF的读取及从串行接 收缓冲区读取数据,串行口可同时传输和接收数据,它也可在接收时缓存1字节,如CPU在第一个字节传输完成之前读取第 二个字节,以防接收数据丢失。 Mnemonic Description Direct Bit 7 PCON AUX Power control Auxiliary register Serial Port 0 control register Serial Port 0 data buffer Serial Port 0 reload register low byte Serial Port 0 reload register high byte 87H 91h SMOD BRGS 98H SM0 S0CON S0BUF S0RELL S0RELH Bit 6 Bit 5 Bit 4 Bit 3 Serial interface 0 PTS[1:0] Bit 2 SM1 RB80 SM20 REN0 99H AAH Bit 0 RESET STOP PINTS[1:0] IDLE DPS 40H 00H RI0 00H TI0 S0BUF[7:0] S0REL .7 S0REL .6 S0REL .5 BAH Mnemonic: AUX 7 6 BRGS TB80 Bit 1 S0REL .4 S0REL .3 - 5 - 4 3 PTS[1:0] 2 1 PINTS[1:0] 00H S0REL .2 S0REL .1 S0REL .9 S0REL .0 S0REL .8 Address: 91h 0 Reset DPS 00H BRGS: BRGS = 0 –鲍率产生器使用定时器 1 TH1 寄存器. BRGS = 1 –鲍率产生器使用 S0REL 寄存器. 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: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 26 Ver.E SM39R4051 09/2011 00H 00H SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 串行接口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是晶体或振荡器的频率。 7.1. 模式 0 引脚RXD0充当输入和输出。TXD0输出时钟。每次发送或接收以LSB最低位作首位,每次8位。波特率固定为的晶体的频率 1/12,接收通过以下的在S0CON中的设置标志在模式0中初始化:RI0 = 0 and REN0 = 1。在其他模式中,当REN0=1时, 开始从起始位接收串行数据. Fig. 7-1: Transmit mode 0 for Serial 0 Fig. 7-2: Receive mode 0 for Serial 0 7.2. 模式 1 引脚RXD0充当输入,TXD0充当串行输出,无任何外部时钟被使用,每次数据为10位:一个起始位(=0),8个数据位(LSB 位在前),及一个停止位(=1)。在接收据数据时, 起始位将被同步传输,8个数据位可通过S0BUF来读取, 一个停止位存于 特殊功能寄存器S0CON的设置标志RB80内,在模式1中,无论是内部的波特率发生器或定时器1可以用来指定波特率。 Fig. 7-3: Transmit mode 1 for Serial 0 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 27 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 Fig. 7-4: Receive mode 1 for Serial 0 7.3. 模式 2 该模式和模式1类似,但有两点不同。波特率被固定在振荡器的频率的1/32(SMOD=1)或1/64(SMOD=0),且有11位数 据被传输或接收: 1个起始位(=0),8个数据位(LSB在前),一个可编程的第9位及一个停止位(=1),9位可以用来控 制串行接口的奇偶性。在传输中,S0CON中的TB80输出第9位,在接收中,S0CON中的RB80将被影响。 7.4. 模式 3 模式2和3的唯一不同之处在于:在模式3中,无论是内部的波特率发生器或定时器1可以用来指定波特率。 Fig. 7-5: Transmit modes 2 and 3 for Serial 0 Fig. 7-6: Receive modes 2 and 3 for Serial 0 7.5. 串行接口 0 的多重机通讯 在串行接口 0 的模式2 和3 或串行接口1 的模式A 中,接收9 位的功能, 可用于多处理器的通讯。 在这种情况下,从机在S0CON 中的位SM20被置位为1。当主机输出从机的地址时,Bit9 将被置1,从而在所有的从机中 导致串行口接收中断。从机将接收到的字节和它们的网络地址比较,如匹配,其从机将清除SM20,并接收其余的信息,其 他的从机将远离SM20无效,并忽略此信息。在解决从机后,其主机在Bit9 清0 时将输出剩余部分的信息,因此,没有串 口接收中断会产生在未选中的处理机中。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 28 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 7.6. 7.6.1. 波特率发生器 串行接口 0 的模式 1 和 3 (a) 当BRGS = 0 (在 AUX寄存器): Baud Rate = 2SMOD × FOSC 32 × 12 × (256 − TH1) (b) 当BRGS = 1 (在 AUX寄存器): Baud Rate = 7.7. 2SMOD × FOSC 64 × 210 − S0REL ( ) 波特率的时钟源 当串行接口功能被使用时,须注意使用内部的振荡器作为时钟源的精度,其原因是先前章节所涉及到的波特率必须尽可能 的准确,而内部的OSC的时钟频率有±3%浮动的差异, 因此,对于时钟频率精度要求高的应用环境,用户可选外部晶体或 振荡器作为时钟源。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 29 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 8. 看门狗定时器 看门狗定时器是一个8位的计数器并会在计数器溢出时产生复位讯号.WDT在噪音.电源干扰,或断电等导致软件死循环或跑 飞程序等情况下非常有用.WDT功能可以帮助拥护的软件从不正常的软件状态中恢复正常.WDT不同于通用的8052的计时器 0,1,2.为了防止WDT复位,可以通过软件定时清除WDT计数器.当不可预料的复位发生时,用户应该检查WDTC寄存器的 WDTF位. 在一外部复位后,该看门狗定时器将无效且所有寄存器都清零。 看门狗定时器是一个自由运行的片上RC振荡器 (约250 KHz±20%). WDT将保持运行就算是系统时钟被关闭(例如,在睡眠 状态).在正常的运行或睡眠状态,一个WDT超时(如使能)将导致MCU复位.WDT在正常状态下可随时被使能或失效.请注意 WDTC寄存器的WDTE位.默认的WDT超时时间为接近16.38ms (WDTM [3:0] = 0100b). WDT有可选择的分频.要选择分频,需要正确设置看门控制寄存器(WDTC)的位3~位0(WDTM [3:0]) 250KHz 2WDTM 256 Watchdog reset time = WDTCLK WDTCLK = WDTM [3:0] 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Table 8.1 WDT time-out period Divider Time period @ 250KHz (250 KHz RC oscillator in) 1 1.02ms 2 2.05ms 4 4.10ms 8 8.19ms 16 16.38ms (default) 32 32.77ms 64 65.54ms 128 131.07ms 256 262.14ms 512 524.29ms 1024 1.05s 2048 2.10s 4096 4.19s 8192 8.39s 16384 16.78s 32768 33.55s 当MCU复位,MCU将会读WDTEN控制位状态.当WDTEN位被设置为1,无论WDTE位状态如何,看门狗功能将会失效.当 WDTEN位被清0,在WDTE位被通过变成设为1的情况下,看门狗功能将被使能.用户可通过烧路器或ISP设置WDTEN. 对WDTE位写入1同时WDTEN控制位清0,能使WDT功能使能.在WDTE设为1后.8位的计数器用通过WDTM[3:0]设置好的分 频进行计数.它在溢出时将会产生复位讯号.WDTE位在MCU重启时将被自动清0,同时硬件复位或WDT复位. 看门狗一旦开始工作将无法停止.当WDTK寄存器用户可通过对看门狗定时器重置密钥(WDTK)写入55h实现WDT计时器清0. 这将会清除8位计数器内容并让计数器重启. 看门狗定时器必须定时刷新以防来自可变的重置复位请求信号. 当看门狗定时器溢出时, WDTF标志位将被置1并自动重置复位MCU.该标志位可被软件或外部复位清除. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 30 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 1 2WDTM Fig. 8-1: Watchdog timer block diagram Mnemonic TAKEY WDTC WDTK Description Direct Time Access Key register Watchdog timer control register Watchdog timer refresh key Bit 7 Bit 6 Bit 5 Bit 4 Watchdog Timer F7h B6h Bit 3 Bit 2 Bit 1 Bit 0 RESET TAKEY [7:0] WDTF - WDTE - B7h Mnemonic: TAKEY 7 6 5 00H WDTM [3:0] WDTK[7:0] 4 3 TAKEY [7:0] 2 1 04H 00H Address: F7h 0 Reset 00H 看门狗控制寄存器(WDTC)默认为仅读;软件需依序于寄存器 TAKEY 写入 55h, AAh 及 5Ah 才能对看 门狗控制寄存器(WDTC)执行写入,启动看门狗功能及设定重置时间 MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah Mnemonic: WDTC 7 6 5 WDTF WDTE 4 - 3 2 1 WDTM [3:0] Address: B6h 0 Reset 04H WDTF: 看门狗定时器产生重置信号之旗标位. 当 MCU 之重置是由看门狗定时器产生时, 此位将被置高.此旗标位清零可由软件、外部 重置信号或上电之重置信号. WDTE: 看门狗定时器使能位. 此位需于WDTEN=0(此值于出厂时已设为0)时设置才有作用,既于刻录(使用ICP,ISP或一 般刻录器)时于看门狗选项选择使用. 0: 禁能. 1: 使能. WDTM [3:0]: 看门狗重置信号产生时间选择位.请参考表格 8.1 所列看门狗重置信号产生时间. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 31 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 Mnemonic: WDTK 7 6 5 4 3 WDTK[7:0] 2 1 Address: B7h 0 Reset 00h WDTK: 看门狗定时器计数器清零寄存器. 于此寄存器写入 0x55, 看门狗定时器计数器将清零重新计数. 範例: 看门狗定时器使能並选择重置信号产生时间為 262.14ms. 第一步,先确认刻录时看门狗功能已选择使用. 第二步,如下 MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah ; enable WDTC write attribute. MOV WDTC, #28h ; Set WDTM [3:0] = 1000b. Set WDTE =1 to enable WDT ; function. . . . MOV WDTK, #55h ; Clear WDT timer to 0. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 32 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 9. 中断 SM39R4051提供7个中断源并带有4级优先权. 每一中断源都在特殊寄存器(SFR)中有自身的请求标志,每个中断请求信号 通过相应的标志及特殊寄存器(SFR)中的IEN0及IEN1中的使能位来独自允许或禁止。 当中断发生时,CPU将会跳转预先设定的地址,如9-1图表所示,一旦中断开始执行,就只能被更高优先级的中断终止,其 中断服务会被来自指令RETI的返回所终结。当一RETI被执行时且中断发生时,处理器将将返回此指令,并执行下一条指令。 当中断条件发生时,该处理器通过设置一个标志位来表示,无论中断使能或禁止,每个中断标志都将在每个机器周期中采 样一次,随后采样由硬件来检测,当中断被使能时,且采样指出相应中断时,中断请求标志被设置。在随后的指令周期中, 中断将被硬件所确定。从而迫使一个LCALL 指向相应的地址向量。 当中断发生时,中断响应将需要不同的时间,这取决于相关的处理器。如一处理器执行的中断服务程序同等或更优先,新 的中断将不会启用,在其他情况下,响应时间将取决于当前的指令。以最快的速度回应一个中断是需要7个机器周期,这包 括一个检测中断的机器周期和6周期执行LCALL周期。 Interrupt Request Flags IE0 – External interrupt 0 TF0 – Timer 0 interrupt Table 9-1: 中断向量 Interrupt Vector Address 0003h 000Bh Interrupt Number *(use Keil C Tool) 0 1 IE1 – External interrupt 1 0013h 2 TF1 – Timer 1 interrupt RI0/TI0 – Serial channel 0 interrupt LVIIF – Low Voltage Interrupt 001Bh 0023h 0063h 3 4 12 IICIF – IIC interrupt 006Bh 13 *See Keil C about C51 User’s Guide about Interrupt Function description Mnemonic Description Direct Bit 7 AUX Auxiliary register Interrupt Enable 0 register Interrupt Enable 1 register Interrupt request register Interrupt priority level 0 Interrupt priority level 1 91h BRGS A8H EA - - ES0 ET1 EX1 B8H - - IEIIC IELVI - C0H - - IICIF LVIIF A9h - - IP0.5 B9h - - IP1.5 IEN0 IEN1 IRCON IP0 IP1 Mnemonic: AUX 7 6 BRGS - 5 - Bit 6 Bit 5 Interrupt - 4 3 PTS[1:0] Bit 4 Bit 3 Bit 0 RESET DPS 00H ET0 EX0 00H - - - 00H - - - - 00H IP0.4 IP0.3 IP0.2 IP0.1 IP0.0 00h IP1.4 IP1.3 IP1.2 IP1.1 IP1.0 00h PTS[1:0] 2 1 PINTS[1:0] Bit 2 Bit 1 PINTS[1:0] Address: 91h 0 Reset DPS 00H 外部中断0(INT0)、外部中断1(INT1)脚可于AUX寄存器中之PINTS[1:0]配置至其他I/O。 Package = 20 Pin PINTS [1:0] INT0 INT1 0x00 P3.2 P3.3 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 33 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 0x01 0x10 0x11 P3.0 P1.4 P3.2 P3.1 P1.5 P3.3 Interrupt Enable 0 register(IEN0) Mnemonic: IEN0 7 6 EA - 5 - 4 ES0 3 ET1 2 EX1 1 ET0 Address: A8h 0 Reset EX0 00h 1 - Address: B8h 0 Reset 00h EA: EA=0 –禁能所有中断. EA=1 –使能所有中断. ES0: ES0=0 –禁能串行口 0 中断. ES0=1 –使能串行口 0 中断. ET1: ET1=0 –禁能定时器 1 中断. ET1=1 –使能定时器 1 中断. EX1: EX1=0 –禁能外部中断 1. EX1=1 –使能外部中断 1. ET0: ET0=0 –禁能定时器 0 中断. ET0=1 –使能定时器 0 中断. EX0: EX0=0 –禁能外部中断 0. EX0=1 –使能外部中断 0. Interrupt Enable 1 register(IEN1) Mnemonic: IEN1 7 6 - 5 IEIIC 4 IELVI 3 - 2 - IEIIC: IIC 中断使能位. IEIICS = 0 –禁能 IIC 中断. IEIICS = 1 –使能 IIC 中断. IELVI: 低压中断使能位. IELVI = 0 –禁能低压中断. IELVI = 1 –使能低压中断. Interrupt request register(IRCON) Mnemonic: IRCON 7 6 5 IICIF 4 LVIIF 3 - 2 - 1 - Address: C0h 0 Reset 00H IICIF: IIC 中断旗标位. LVIIF: 低压中断旗标位 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 34 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 9.1. 优先权配置 所有中断来源相组合于以下组中: Table 9-2: Priority level groups Groups外部中断 0 定时器 0 中断 外部中断 1 定时器 1 中断 串行口 0 中断 低压中断 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 IP1.x Table 9-3: Priority levels IP0.x 优先权层级 0 0 1 1 Bit IP1.0, IP0.0 IP1.1, IP0.1 IP1.2, IP0.2 IP1.3, IP0.3 IP1.4, IP0.4 IP1.5, IP0.5 0 1 0 1 Level0 (最低) Level1 Level2 Level3 (最高) Table 9-4: Groups of priority Group 外部中断 0 定时器 0 中断 外部中断 1 定时器 1 中断 串行口 0 中断 - 低压中断 IIC中断 Table 9-5: Polling sequence Sequence 轮询序列 Interrupt source 外部中断 0 定时器 0 中断 外部中断 1 定时器 1 中断 串行口 0 中断 低压中断 IIC中断 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 35 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 10. 电源管理单元 电源管理单元提供两种电源管理模式,即IDLE(待机/空闲)和STOP(停止),并为用户提供省电功能。 Mnemonic: PCON 7 6 SMOD - 5 - 4 - 3 - 2 - 1 STOP Address: 87h 0 Reset IDLE 40h STOP: STOP 模式控制位。设置此位将运行 STOP 模式, STOP 位总是读为 0. IDLE: IDIE 模式控制位。设置此位将运行 IDLE 模式, IDLE 位总是读为 0 10.1. 待机模式(空闲模式) 使用IDLE(待机模式(空闲模式))模式可通过对PCON寄存器的IDLE位置位。空闲模式停止MCU的时钟源,但外部的时钟 源依旧保持,由于此时CPU不工作,电源功耗将被降低。当任何一中断信号或者一复位信号时,CPU将退出待机模式(空 闲模式)。 10.2. 停止模式 使用STOP(停止模式)模式可通过对PCON寄存器的STOP位置位。在此模式中,所有的中断源将全部被关闭,CPU将从 一个无时钟的中断(外部中断0/1及低压中断)或者一个重置(看门狗及低压重置)条件下退出该模式。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 36 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 11. IIC 功能 这些IIC模块使用SCL(时钟) 和SDA(数据)线来联系其他的IIC界面, 其速度可以由软件设置特殊寄存器 (SFR)中的IICBR[2: 0] ,从而使其高达到400KBpS(最大值). IIC模块可以是主机也可以是从机,,提供两个中断(RXIF,TXIF),并有两个 地址以作数据传输,它将产生开始,在主机模式中,反复启动和停止信号,在从机模式中,它将检测开始,反复启动和停 止信号, 最大沟通的长度及连接设备的数目被一个最大400pF 的电容所限制 中断向量为6Bh. Mnemonic Description Direct Bit 7 Bit 6 Bit 5 IIC function IICCTL IIC control register F9h IICEN MSS IICS IIC status register F8h - MPIF IICA1 IICA2 IICRWD IICEBT IIC Address 1 register IIC Address 2 register IIC Read/Write register IIC Enaable Bus Transaction Bit 3 MAS AB_EN BF_E N LAIF RXIF TXIF FAh IICA1[7:1] FBh IICA2[7:1] FCh MSS Bit 2 Bit 1 Bit 0 RESET IICBR[2:0] RXAK TXAK RW,B B MATCH1 or RW1 MATCH2 or RW2 IICRWD[7:0] FDh Mnemonic: IICCTL 7 6 IICEN Bit 4 FU_EN 5 4 MAS AB_EN 2 1 IICBR[2:0] A0H 60H 00H Address: F9h 0 Reset 04h IICEN: IIC 模式使能 ICEN = 1,使能 IICEN = 0,禁止 MSS: 主\从机模式选择 MSS = 1, 选择主机模式 MSS = 0, 选择从机模式 软件必须在设置其他寄存器之前置位 MAS: 主模式的地址选择(仅在主机模式中) MAS = 0,使用IICA1 MAS = 1,使用 IICA2 AB_EN: 仲裁失去了使能位. (仅主机模式) 当AB_EN位使能, 硬件将检查仲裁丢失位.一旦发生丢失仲裁, 硬件将返回到空闲状态. 如果此位 被清除, 硬件也不会理会仲裁丢失情况.当多主机与从机连接时需设置此位.于单主机与从机时清 除此位. BF_EN: 总线忙碌使能位. (仅主机模式) 当BF_EN位使能,硬件将不会产生开始信号至总在线直到BF已置低.此位若被清零将永远产生开 始信号至总线当MStart置高.当多主机与从机连接时需设置此位.于单主机与从机时清除此位. IICBR[2:0]: 波特率选择(仅在主机模式)这里的Fosc 为外部晶体或振荡器的频率,系统默认为Fosc/512 以便用户选择 IICBR[2:0] Baud rate 000 Fosc/32 001 Fosc/64 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 37 00H 00H - 3 BF_E N 04H Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 010 011 100 101 110 111 Mnemonic: IICS 7 6 MPIF Fosc/128 Fosc/256 Fosc/512 Fosc/1024 Fosc/2048 Fosc/4096 5 LAIF 4 RXIF 3 TXIF 2 RXAK 1 TxAK Address: F8H 0 Reset RW 00H MPIF: 停止条件中断旗标 当停止条件发生此位将置高.此位需由软件清零 LAIF: 仲裁失去中断旗标. (只主机模式) 当仲裁失去条件发生此位将置高.此位需由软件清零 RxIF: 数据接收中断标志位 在IICRWD(IIC 读写数据缓存)载入一个新的接收数据时被置位;软件清零该位后,IIC 中 断标志位(IICIF)将自动清零。 TxIF: 数据传输中断标志位 当所有位于转换寄存器中的位数据被传输时,该位被置位,来自IICRWD(IIC 读/写数据缓 存)的8位数据被下载至转换寄存器中;软件清零该位后,IIC 中断标志位(IICIF)将自动 清零。 RxAK: 接收确认位. 置零,这意味着一个确认信号已经收到在完成8位数据传输总线上后. TxAK: 传输确认位. 当收到完整的8位数据, 此位将设置(NoAck) 或清除(Ack) 并传输到主机显 示接收状态. 事实上, 它是被作为一个字节的传输在第9位如Fig. 11-1. RW: 主机模式: 总线忙碌表示位 当侦测到 scl=0 或 sda=0 或总线产生开始信号,此位将置高.当侦测到停止信号,此位将清 零. 此位可由软件清零以使系统回到就绪状态. 从机模式: 从机模式的读取(接收)或写(传输) 在IIC总线. 当此位被清除, 表示从机模式在IIC总线 接收数据.(只从机模式) Fig. 11-1: Acknowledgement bit in the 9th bit of a byte transmission 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 38 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 Mnemonic: IICA1 7 6 5 4 3 2 1 IICA1[7:1] R/W Address: FAH 0 Reset Match1 or A0H RW1 R or R/W 从机模式: IICA1[7:1]: IIC 地址寄存器 这是为从机模式的第一个 7-bit 的地址,它在一个地址(来自主机模式)接收后被检测 Match1: 当 IICA1 和来自主机模式方的接收地址匹配时,该位将被硬件置位,当 IIC 总线讀或寫第一筆資料 時,该位将被自动清除。 主机模式: IICA1[7:1]: IIC 地址寄存器 显示要与它通讯的从机的 7 位地址 RW1: 如模块被设置为 Mstart 或 Rstart bit,该位将被作为从机方的 RW 发送,它在 IIC 地址之后的抵 8th 位显示,如 Fig. 11-2.。它用来告诉从属模式中将来的通信的方向。如设置为 1,模块在主模式中为 接收方,如是 0,模块在主模式中为传输方。 Fig. 11-2: RW bit in the 8th bit after IIC address 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 从机模式: IICA2[7:1]: IIC 地址寄存器 这是为从机模式的第二个 7-bit 的地址, 它在一个地址(来自主机模式)接收后被检测 Match2: 当 IICA2 和来自主机模式方的接收地址匹配时,该位将被硬件置位,当 IIC 总线讀或寫第一筆資料 時,该位将被自动清除。 主机模式: IICA2[7:1]: IIC 地址寄存器 显示要与它通讯的从机的 7 位地址 RW2: 如模块被设置为 Mstart 或者 Rstart bit,该位将被作为从机方的 RW 发送,它用来告诉从机模式中 将来的通信的方向。如设置为 1,模块在主模式中为接收方,如是 0,模块在主模式中为传输方。 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 39 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 Mnemonic: IICRWD 7 6 5 4 3 IICRWD[7:0] 2 1 Address: FCh 0 Reset 00h IICRWD[7:0]: IIC 读写缓存 在接收(读)模式中,接收的字节存储于此 在传输模式中,该字节通过该 SDA 被转换 Mnemonic: IICEBT 7 6 FU_EN 5 4 3 2 1 - - - - - Address: FDH Res 0 et 00H 主机模式: 00: 保留 01: IIC 模块将致能以便由 SDA 及 SCL 读写数据. 10: IIC 模块将于 SDA 及 SCL 发出开始信号,再送出储存于 IICA1 或 IICA2(由 MAS 位选择)的地址 11: IIC 模块将于 SDA 及 SCL 发出停止信号. 从机模式: 01: FU_EN[7:6] 此两位于从机模式仅能写入 01.其他值是无效的. 注意: 1. FU_EN[7:6] 当总线空闲时,于读写数据前此两位需先写入01;否则,SCL将被 锁住(置低). 2. FU_EN[7:6] 当读写数据后并收到主机之停止信号时此两位需接着再写入01. 3. 在传送数据时(从机模式),于此两位写入01前待传送数据需先写入IICRWD. 4. FU_EN[7:6] 此两位将自动清零,软件需重复写入. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 40 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 12. LVI –低压中断 中断向量为63h. Mnemonic: LVC 7 6 LVI_EN LVI_VS 5 LVRXE 4 LVSIF 3 - 2 - 1 EPSIF Address: E6h 0 Reset 20H LVI_EN: 使能低电压中断功能. 0: 禁能低电压检测中断功能. 1: 使能低电压检测中断功能. LVI_VS: 低电压中断电压等级选择位 0 : 选择低阶为低电压中断电压等级 1 : 选择高阶为低电压中断电压等级 LVRXE: 使能外部低电压重置功能. 0: 禁能外部低电压重置功能. 1: 使能外部低电压重置功能. LVSIF 低电压状态旗标位 1:表示外部电压低于低电压中断电压 0:表示外部电压高于低电压中断电压 EPSIF: 芯片外部电压等级状态旗标位 1: 表示外部电压低于 3.8V 0: 表示外部电压高于3.9V 高阶: Symbol VLVI VLVR Notes: 低阶: Symbol VLVI VLVR Notes: Parameter Low Voltage Interrupt Voltage Level Low Voltage Reset Voltage Level Min 3.4 3.2 Typ 3.7 3.5 Max 4.0 3.8 Units V V Min 2.1 1.9 Typ 2.3 2.1 Max 2.5 2.3 Units V V The VLVI always above VLVR about 0.2V. Parameter Low Voltage Interrupt Voltage Level Low Voltage Reset Voltage Level The VLVI always above VLVR about 0.2V. 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 41 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 13. 在系统编程(Internal ISP) SM39R4051 可通过内部硬件电路产生 flash 控制讯号.用户利用 flash 控制寄存器,flash 地址寄存器和 flash 数据寄存器在不 需要将 SM39R4051 移出系统的情况下实现 ISP 功能. SM39R4051 提供了可以实现 flash 编程/芯片擦除/页擦除/保护功能 的 flash 控制讯号.用户需要去设计和使用任何 SM39R4051 可以输入数据的接口,然后利用 ISP 服务程序去实现 flash 的编 程/芯片擦除/页擦除/保护功能. 13.1. ISP 服务程序 ISP 服务程序是由用户自行开发并放置于 ISP 服务程序区的韧件. 用户可依需求决定 ISP 服务程序的大小. 另外用户需 将 ISP 服务程序刻录至 SM39R4051 芯片中才可使用 ISP 功能. 由于 ISP 服务程序是由用户自行开发,它需包括 flash 数据寄存器的刻录及 SM39R4051 芯片与上位机的通讯协议. 举 例来说, 使用者使用 SM39R4051 芯片上之 UART 接口与上位机作数据之传送及接收,则 SM39R4051 芯片上之 ISP 服务程序内需有波特率设定,为避免数据传输错误需有数据总合检查或同位检查或其他错误检查机制. 于正常动作模式或空闲模式可启动 ISP 服务程序,于停止模式则不行. 13.2. 锁定位(N) 锁定位 N 有两个功能:一是配置服务程序的大小,另一个则是通过 flash 擦除功能锁定 ISP 服务程序的空间. ISP 服务程序地址位从$C00 to $FFF. 可被分为 N*256 字节(N=0-4). 当 N 为 0 时没有 ISP 功能.所有的 4K 字节 flash 都被用来做程序存储.当 N 为 1 时,ISP 服务程序占用 256 字节,剩余的 3.75K 字节 flash 可被用做程序存储.ISP 服务程 序的最大空间为 1K 字节(当 N 为 4 时). 在这样的配置下,可用的程序存储空间为 3K 字节. 在 N 定下来后,SM39R4051 会从上往下(从最顶端到地址$FFF)保存 ISP 服务程序空间.ISP 服务程序的开始地址位于 $0C00. 请参考章节 3.1 有关 ISP 服务程序与程序内存之关系图. 锁定位 N 功能不同于 flash 保护功能,flash 擦除功能可以擦除除 ISP 服务程序空间外的所有 flash 记忆体.如 flash 没有 被保护,ISP 服务程序的内容一直可被读.如 flash 被保护,所有的 flash 程序空间包括 ISP 服务程序空间不能被读. N 0 1 2 3 4 Table 13.1 ISP code area. ISP service program address No ISP service program 256 bytes ($F00h ~ $FFFh) 512 bytes ($E00h ~ $FFFh) 768 bytes ($D00h ~ $FFFh) 1.0 K bytes ($C00h ~ $FFFh) ISP 服务程序配置于 N*256 字节 (N= 0 ~ 4) 13.3. 对 ISP 服务程序编程 在锁定位 N 被设置并 ISP 服务程序被编程后,ISP 服务程序记忆体被自动的保护(锁定).锁定位 N 有它自己的编程/擦除 时序.这不同于 flash 记忆体的编程/擦除时序.因此,被锁定的 ISP 服务程序不可被 flash 擦除功能所擦除.如客户需要擦 除锁定的 ISP 服务程序,他只可以通过烧写器实现.当 SM39R4051 在系统时,客户不可改变 ISP 服务程序. 13.4. 启动 ISP 服务程序 要启动 ISP 服务程序就是要在 ISP 服务程序的开始地址装载程序计数(PC)并执行它.有四种实现的方法: 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 42 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 (1) 空复位.用首地址为空($000=#FFH)的硬件复位会在 ISP 服务程序的开始地址装载 PC.硬件复位包括内 部(电源或重启)和外部重置端口复位. (2) 执行 jump 指令可在 ISP 服务程序的开始地址装载 PC (3) 通过硬件设置进入 ISP 服务程序.用户可通过设置当硬件复位时,将 P1.5 为低 ,SM39R4051 会强行进入 ISP 服务程序. 硬件复位包括内部(电源或重启)和外部键盘复位.在应用系统设计时,用户因该对 P1.5 在 复位时间内防止 SM39R4051 进入 ISP 服务程序. (4) 通过硬件设置进入 ISP 服务程序.P3.0 在硬件复位时会侦测到 2 个时钟讯号. 硬件复位包括内部(电源 或重启)和外部键盘复位 在硬件复位周期内, 硬件可以侦测 P1.5 及 P3.0 状态. 如果他们满足了上面的其中一个条件,芯片将会自动跳转到 ISP 模式.在 ISP 服务程序被执行后,用户需要对 SM39R4051, 进行复位,通过硬件复位或 WDT,或是’JUMP’至地址$0000 来 实现重启程序. 为了用户的不同应用情况,这里有 6 种不同的进入机制.这个进入方法可以在烧路器或 ISP 中选取. (1) (2) (3) (4) (5) (6) 首地址为空例如$0000 = 0xFF. 且由内部重置信号触发. 首地址为空例如$0000 = 0xFF. 且由外部重置信号触发. P1.5=0. 且由内部重置信号触发. P1.5=0. 且由外部重置信号触发. P3.0 输入 2 个时钟. 且由内部重置信号触发. P3.0 输入 2 个时钟. 且由外部重置信号触发. 13.5. ISP 寄存器– TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC Mnemonic TAKEY IFCON ISPFAH ISPFAL ISPFD ISPFC Description Direct Time Access Key register Interface Control register ISP Flash Address - High register ISP Flash Address - Low register ISP Flash Data register ISP Flash Control register Mnemonic: TAKEY 7 6 Bit 7 Bit 6 Bit 5 ISP function F7h Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET TAKEY [7:0] 8Fh - CDPR E1h - - 00H - - - - ISPE ISPFAH [3:0] 00H FFH E2h ISPFAL [7:0] FFH E3h ISPFD [7:0] FFH E4h EMF1 5 EMF2 EMF3 4 3 TAKEY [7:0] EMF4 2 - ISPF.2 1 ISPF.1 ISPF.0 00H Address: F7H 0 Reset 00H ISP 使能位(ISPE)默认为只读,软件必须连续的对 TAKEY 寄存器写三个特定值 55h,AAH,和 5Ah,使 ISPE 位可写. 这是: MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 43 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 Mnemonic: IFCON 7 6 CDPR 5 - 4 - 3 - 2 - Address: 8FH 0 Reset ISPE 00H 1 - 位 0(ISPE) of IFCON 是 ISP 使能位,用户可通过设置 ISPE 位为 1 使能 SM39R4051 的全部 ISP 功能,通过设置 ISPE 为 0 来禁止全部 ISP 功能.ISPE 的作用象一个加密匙.用户可禁止所有的 ISP 功能以保护软件程序不被意外 的擦除.ISP 寄存器 ISPFAH,ISPFAL,ISPFD,与 ISPFC 默认为只读.软件必须将 ISPE 位设为 1 以使上述 4 个寄存 器为可写. Mnemonic: ISPFAH 7 6 - 5 - 4 - Address: E1H 3 2 1 0 Reset ISPFAH3 ISPFAH2 ISPFAH1 ISPFAH0 FFH ISPFAH [3:0]: 使用ISP功能之地址高字节 Mnemonic: ISPFAL 7 6 ISPFAL7 ISPFAL6 5 ISPFAL5 4 ISPFAL4 3 ISPFAL3 2 ISPFAL2 1 ISPFAL1 Address: E2H 0 Reset ISPFAL0 FFH ISPFAL [7:0]: 使用ISP功能之地址低字节 ISPFAH 与 ISPFAL 提供了 12 位 flash 记忆体地址用做 ISP 功能.这个 flash 记忆体地址不应该包括 ISP 服务程 序空间地址.若 ISPFAH & ISPFAL 寄存器控制的 flash 记忆体地址覆盖了 ISP 服务程序空间的地址.这个 flash 程 序/页擦除等 ISP 功能的执行将会无效. Mnemonic: ISPFD 7 6 ISPFD7 ISPFD6 5 ISPFD5 4 ISPFD4 3 ISPFD3 2 ISPFD2 1 ISPFD1 Address: E3H 0 Reset ISPFD0 FFH ISPFD [7:0]: 使用ISP功能之数值. ISPFD 寄存器提供 ISP 功能中所需之 8 位数据寄存器. Mnemonic: ISPFC 7 6 5 EMF1 EMF2 EMF3 4 EMF4 EMF1: 进入机制 (1) 标志位, EMF2: 进入机制 (2) 标志位, EMF3: 进入机制 (3) 标志位, EMF4: 进入机制 (4) 标志位, ISPF [2:0]: ISP功能选择位. ISPF[2:0] 000 001 010 011 100 101 110 111 闪存一页有256字节 3 - 2 ISPF[2] 1 ISPF[1] Address: E4H 0 Reset ISPF[0] 00H 由复位信号清除. (仅读) 由复位信号清除. (仅读) 由复位信号清除. (仅读) 由复位信号清除. (仅读) ISP function Byte program Chip protect Page erase Chip erase Write option Read option Erase option Finish Flag 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 44 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 可设定功能选择位如晶振输入输出脚可配置为一般I/O (于1.2节描述)、内部复位时间选择 (于1.4.1节描述)、时钟源来源选择 (于1.5节描述)、 复位脚可配置为一般I/O(于第5章描述)、 看门狗功能启动位(于第8章描述)、或 ISP 进入机制选择(于第13章描述)。 只能读取功能选择位于芯片被加密后. 选择的 ISP 功能在软件对 ISPFC 寄存器写入数据时将会执行一次. 要实现字节编程/页擦除 ISP 功能,用户需要在开始时指定 flash 地址.在实现页擦除功能时,SM39R4051 将除 ISPFAH 与 ISPFAL 寄存器中显示地址所在的整页. 范例. 闪存地址: $YMN 将对地址$Y00 to $YFF 执行页抹除 要实现芯片擦除 ISP 功能,SM39R4051 将擦除除 ISP 服务程序外的所有 flash 程序记忆体. 要实现芯片保护 ISP 功能,SM39R4051 内容将被读为#00H. 范例:将对地址$0105H 执行字节写,写入#22H MOV TAKEY, #55h MOV TAKEY, #AAh MOV TAKEY, #5Ah MOV IFCON, #01H MOV ISPFAH, #01H MOV ISPFAL, #05H MOV ISPFD, #22H MOV ISPFC, #00H ; ; ; ; ; ; 启动 ISPE 可写入属性 启动 SM39R4051 ISP 功能 设定闪存高字节地址,01H 设定闪存低字节地址, 05H 设定将写入闪存之资料,资料= 22H 开始将写入闪存之资料#22H 写入地址$0105H 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 45 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 工作环境 Symbol Description Min. Typ. Max. Unit. Remarks TA Operating temperature -40 25 85 ℃ Ambient temperature under bias VCC Supply voltage 2.7 5.5 V 23MHz(Max) VCC Supply voltage 3.0 5.5 V 25MHz(Max) DC 电气特性 TA = -40℃ to 85℃, VCC = 5.0V Symbol Parameter Valid Min Max Units -0.5 0.8 V 0 0.8 V 2.0 VCC + 0.5 V 70%Vcc VCC + 0.5 V 0.4 V IOL=5.0mA VIL1 Input Low-voltage Port 1,3,4 VIL2 Input Low-voltage RES, XTAL1 VIH1 Input High-voltage Port 1,3,4 VIH2 Input High-voltage RES, XTAL1 VOL Output Low-voltage Output High-voltage using Strong Pull-up(1) Output High-voltage using Weak Pull-up(2) Logic 0 Input Current Logical Transition Current Input Leakage Current Reset Pull-down Resistor Pin Capacitance Port 1,3,4 VOH1 VOH2 IIL ITL ILI RRST CIO ICC Notes: Conditions Vcc=5V Port 1,3,4 2.4 V IOH= -16mA Port 1,3,4 2.4 V IOH= -280uA Port 1,3,4 -75 uA Vin= 0.45V Port 1,3,4 -650 uA Vin= 2.0V Port 1,3,4 ±10 uA 0.45V<Vin<Vcc 300 kΩ 10 pF 11 mA 10 mA 3 uA RES Power Supply Current VDD 50 Vcc=5V Freq= 1MHz, Ta= 25℃ Active mode, 12MHz, Vcc=5V, 25 ℃ Idle mode, 12MHz, Vcc=5V, 25 ℃ Power down mode Vcc=5V, 25 ℃ 1. Port in Push-Pull Output Mode 2. Port in Quasi-Bidirectional Mode 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 46 Ver.E SM39R4051 09/2011 SM39R4051/SM39R2051 内嵌 4KB/2KB 具有 ISP 功能的 Flash 和 256B RAM 的 8 位控制器 TA = -40℃ to 85℃, VCC = 3.0V Symbol Parameter Valid Min Max Units -0.5 0.8 V 0 0.8 V 2.0 VCC + 0.5 V 70%Vcc VCC + 0.5 V 0.4 V IOL=3.0mA VIL1 Input Low-voltage Port 1,3,4 VIL2 Input Low-voltage RES, XTAL1 VIH1 Input High-voltage Port 1,3,4 VIH2 Input High-voltage RES, XTAL1 VOL Output Low-voltage Output High-voltage using Strong Pull-up(1) Output High-voltage using Weak Pull-up(2) Logic 0 Input Current Logical Transition Current Input Leakage Current Reset Pull-down Resistor Pin Capacitance Port 1,3,4 VOH1 VOH2 IIL ITL ILI RRST CIO ICC Notes: Conditions Vcc=3.0V Port 1,3,4 2.4 V IOH= -3.2mA Port 1,3,4 2.4 V IOH= -55uA Vcc=3.0V Port 1,3,4 -75 uA Vin= 0.45V Port 1,3,4 -650 uA Vin=1.5V Port 1,3,4 ±10 uA 0.45V<Vin<Vcc 300 kΩ 10 pF 10 mA 9 mA 2 uA RES Power Supply Current VDD 50 Freq= 1MHz, Ta= 25℃ Active mode, 12MHz, Vcc=3.0V, 25 ℃ Idle mode, 12MHz, Vcc=3.0V, 25 ℃ Power down mode, Vcc=3.0V, 25 ℃ 1. Port in Push-Pull Output Mode 2. Port in Quasi-Bidirectional Mode Suggest circuit connect: 本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。 ISSFD-M056 47 Ver.E SM39R4051 09/2011