SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 产品目录 .............................................................................................................................................................................. 2 描述 ..................................................................................................................................................................................... 2 订货信息 .............................................................................................................................................................................. 2 特征 ..................................................................................................................................................................................... 2 各封装引脚配置 ................................................................................................................................................................... 3 系统方框图 .......................................................................................................................................................................... 6 管脚描述 .............................................................................................................................................................................. 7 特殊功能寄存器(SFR) ......................................................................................................................................................... 8 功能描述 ............................................................................................................................................................................ 10 1. 总特征....................................................................................................................................................................... 10 1.1 嵌入式程序存储器 ............................................................................................................................................ 10 1.2 IO 口 ................................................................................................................................................................ 10 1.3 系统控制标志(SCONF) .................................................................................................................................... 10 2. 指令设置 ................................................................................................................................................................... 11 3. 存储器结构 ............................................................................................................................................................... 15 3.1 程序存储器....................................................................................................................................................... 15 3.2 数据存储器....................................................................................................................................................... 16 3.3 数据内存-低 128 字节(00H TO 7FH) .................................................................................................................. 16 3.4 数据存储器-高 128 字节(80H TO FFH) .............................................................................................................. 16 4. CPU 结构 .................................................................................................................................................................. 17 4.1 累加器 .............................................................................................................................................................. 17 4.2 B 寄存器 ........................................................................................................................................................... 17 4.3 程序状态字....................................................................................................................................................... 18 4.4 堆栈指针 .......................................................................................................................................................... 18 4.5 数据指针 .......................................................................................................................................................... 18 5. GPIO 管脚型态 ......................................................................................................................................................... 20 6. 定时器 0 和定时器 1 ................................................................................................................................................. 21 6.1 定时器/计数器模式控制寄存器(TMOD)............................................................................................................ 21 6.2 定时/计数控制寄存器(TCON) .......................................................................................................................... 22 6.3 模式 0 (13 位定时/计数) ................................................................................................................................... 22 6.4 模式 1 (16 位定时/计数) ................................................................................................................................... 23 6.5 模式 2 (8 位自动重载定时/计数) ....................................................................................................................... 23 6.6 模式 3 (两个独立 8 位定时/计数(仅定时器 0)) .................................................................................................. 23 7. 定时器 2 .................................................................................................................................................................... 25 7.1 捕获模式 .......................................................................................................................................................... 26 7.2 自动重装模式(递增/递减计数器) ................................................................................................................. 26 7.3 编程时钟输出 ................................................................................................................................................... 28 8. 串行接口 ................................................................................................................................................................... 30 8.1 串行接口由以下 4 种模式可以设置 .................................................................................................................. 30 8.2 串行接口的多重机通讯 .................................................................................................................................... 32 8.3 波特率发生器 ................................................................................................................................................... 32 9. 中断 .......................................................................................................................................................................... 34 10. 看门狗定时器 ....................................................................................................................................................... 36 11. 电源管理单元 ....................................................................................................................................................... 38 11.1 待机模式(空闲模式) ......................................................................................................................................... 38 11.2 掉电模式 .......................................................................................................................................................... 38 工作环境 ............................................................................................................................................................................ 39 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 -1- SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 产品目录 特征 SM8952BW40PP, SM8952BW44JP, SM8952BW44QP, 描述 SM8952B 产品系列是(内嵌)8KB Flash 和 256 Byte SRAM 的 8-bit 的 微控制器,它是 8052 微处理器的一衍 生产品,且兼容相关设置。 可支持到 32 个 I/O,8KB Flash 可用来存放程序或数据。 并可透过商用编程器烧写。 订货信息 SM8952BihhkL YWW i: 工艺标志{ W = 2.4V ~ 5.5V} hh: 封装脚位 k: 封装形式后缀{as table below } L: 无铅标志 {无文字即含铅,”P” 即无铅} Y: 年 W: 周(01~52) Postfix P J Q 工作电压: 2.4 ~ 5.5V,最高可达 40MHz 兼容通用的 8052 12 时钟周期 / 机器周期 指令设置兼容 MCS-51 8KB 字节的片上闪存程序存储器 256B 字节的标准的 8052 RAM 16-bit 数据指针 (DPTR) 一个标准串口(UART) 3 个 16bit 的计时器/计数器(计时器 0,1,2) 4 个 8bit I/O 具有 2 级优先权的外部中断 0&外部中断 1 看门狗定时器(WDT) 具有 6 個中断源及两个优先级 管脚 ESD 性能超过 4KV 增强用户代码保护 电源管理单元空闲及掉电模式 Package PDIP PLCC PQFP Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 -2- SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 各封装引脚配置 40 Pin PDIP 1 40 VDD T2EX/P1.1 2 39 P0.0/AD0 P1.2 3 38 P0.1/AD1 P1.3 4 37 P0.2/AD2 P1.4 5 36 P0.3/AD3 P1.5 6 35 P0.4/AD4 P1.6 7 34 P0.5/AD5 P1.7 8 33 P0.6/AD6 RESET 9 32 P0.7/AD7 31 EA 30 ALE 29 PSEN 28 P2.7/A15 27 P2.6/A14 T1/P3.5 15 26 P2.5/A13 WR/P3.6 16 25 P2.4/A12 RD/P3.7 17 24 P2.3/A11 XTAL2 18 23 P2.2/A10 XTAL1 19 22 P2.1/A9 VSS 20 21 P2.0/A8 RXD/P3.0 10 TXD/P3.1 11 INT0/P3.2 12 INT1/P3.3 13 T0/P3.4 14 SM8952BihhPP YWW (40L PDIP Top View) T2/P1.0 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 -3- SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 P1.2 P1.1/T2EX P1.0/T2 NC VDD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 41 40 18 19 20 21 22 23 24 25 26 27 28 A9/P2.1 A10/P2.2 A11/P2.3 A12/P2.4 SM8952B ihhJP YWW (44L PLCC Top View) 29 30 31 32 33 34 35 36 37 38 39 P1.3 42 A8/P2.0 T1/P3.5 43 NC T0/P3.4 44 VSS INT1/P3.3 1 XTAL1 INT0/P3.2 2 XTAL2 TXD/P3.1 3 RD/P3.7 NC 4 WR/P3.6 9 RESET RXD/P3.0 5 7 P1.7 17 16 15 14 13 12 11 10 P1.6 6 8 P1.5 P1.4 44 Pin PLCC P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA NC ALE PSEN P2.7/A15 P2.6/A14 P2.5/A13 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 -4- SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA NC ALE PSEN P2.7/A15 P2.6/A14 P2.5/A13 33 32 31 30 29 28 27 26 25 24 23 44 Pin PQFP AD3/P0.3 34 22 P2.4/A12 AD2/P0.2 35 21 P2.3/A11 AD1/P0.1 36 20 P2.2/A10 AD0/P0.0 37 19 P2.1/A9 18 P2.0/A8 VDD 38 17 NC 16 VSS 15 XTAL1 P1.2 42 SM8952B ihhQP YWW 14 XTAL2 P1.3 43 (44L PQFP Top View) 13 P3.7/RD 12 P3.6/WR NC 39 T2/P1.0 40 T2EX/P1.1 41 3 4 5 6 7 8 9 P1.7 RESET RXD/P3.0 NC TXD/P3.1 INT0/P3.2 INT1/P3.3 T1/P3.5 11 2 P1.6 T0/P3.4 10 1 P1.5 P1.4 44 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 -5- SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 RESET Reset Circuit TXD RXD 系统方框图 UART SRAM 256Bytes XTAL2 XTAL1 Flash 8KBytes EA PSEN ALE Port 0 Port 0 Port 1 Port 1 Port 2 Port 2 Port 3 Port 3 Timer 0/1 T0 T1 CPU WDT Interrupt Timer2 T2 T2EX Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 -6- SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 管脚描述 40L PDIP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 40L PLCC 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 40L PQFP 40 41 42 43 44 1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 Symbol P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RESET P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD XTAL2 XTAL1 VSS P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 PSEN ALE EA P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 VDD I/O I/O I/O I/O I/O I/O I/O I/O I/O I I/O I/O I/O I/O 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 O O I I/O I/O I/O I/O I/O I/O I/O I/O I Description P1口的位0 & 定时器2外部输入时钟 P1口的位1 & 定时器2捕获触发器 P1口的位2 P1口的位3 P1口的位4 P1口的位5 P1口的位6 P1口的位7 复位 P3口的位0 &串行接口输入 P3口的位1 &串行接口输出 P3口的位2 &外部中断0 P3口的位3 &外部中断1 P3口的位4 &定时器0外部输入 P3口的位5 &定时器1外部输入 P3口的位6 &外部内存写入信号 P3口的位7 &外部内存读取信号 晶振输出 晶振输入 供电电源地 P2口的位0 &外部内存地址的位8 P2口的位1 &外部内存地址的位9 P2口的位2 &外部内存地址的位10 P2口的位3 &外部内存地址的位11 P2口的位4 &外部内存地址的位12 P2口的位5 &外部内存地址的位13 P2口的位6 &外部内存地址的位14 P2口的位7 &外部内存地址的位15 程序启发使能 地址锁存使能 外部程序内存使能 P0口的位7 &外部内存地址/数据的位7 P0口的位6 &外部内存地址/数据的位6 P0口的位5 &外部内存地址/数据的位5 P0口的位4 &外部内存地址/数据的位4 P0口的位3 &外部内存地址/数据的位3 P0口的位2 &外部内存地址/数据的位2 P0口的位1 &外部内存地址/数据的位1 P0口的位0 &外部内存地址/数据的位0 数字电源电压 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 -7- SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 特殊功能寄存器(SFR) 80h 到 FFh 的地址是 SM8952B 特殊功能寄存器的位置。这些地址只能通过直接寻址的方式寻址。下面这张表给出了 SFRs,部分特殊功能寄存器的位置与通用的 8052 系列相同: Hex\Bin X000 X001 X010 X011 X100 X101 X110 X111 F8 F0 E8 E0 Bin/Hex FF B F7 ACC EF E7 D8 DF D0 PSW D7 C8 C0 T2CON B8 IP B0 P3 B7 A8 A0 IE P2 AF A7 98 SCON 90 P1 88 80 Hex\Bin TCON P0 X000 T2MOD RCAP2L RCAP2H TL2 CF C7 TH2 SCONF SBUF WDTC BF 9F 97 TMOD SP X001 TL0 DPL X010 TL1 DPH X011 TH0 TH1 X100 X101 X110 PCON X111 8F 87 Bin/Hex Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 -8- SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 注:SM8952B 特殊功能寄存器的重置值在下表描述 Register Location Reset value 1 2 P0 SP 80H 81H FFH 07H Port 0 Stack Pointer 3 DPL DPH PCON TCON TMOD 82H 83H 87H 88H 89H 00H 00H 00H 00H 00H Data Pointer 0 low byte Data Pointer 0 high byte Power Control Timer/Counter Control Timer Mode Control 9 10 11 12 TL0 TL1 TH0 TH1 P1 8AH 8BH 8CH 8DH 90H 00H 00H 00H 00H FFH Timer 0, low byte Timer 1, low byte Timer 0, high byte Timer 1, high byte Port 1 13 SCON 98H 00H Serial Port 0, Control Register 14 SBUF 99H 00H Serial Port 0, Data Buffer 16 P2 A0H FFH Port 2 17 IE A8H 00H Interrupt Enable 18 P3 B0H FFH Port 3 4 5 6 7 8 Description 19 IP B8H 00H Interrupt Priority 20 SCONF BFH 02H System Control Register 21 T2CON C8H 00H Timer 2 Control 22 T2MOD C9H 00H Timer 2 Mode 23 RCAP2L CAH 00H Timer2 Capture Low 24 RCAP2H CBH 00H Timer2 Capture High 25 TL2 CCH 00H Timer 2, low byte 26 TH2 CDH 00H Timer 2, high byte 27 PSW D0H 00H Program Status Word 28 ACC E0H 00H Accumulator 29 B F0H 00H B Register Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 -9- SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 功能描述 1. 总特征 SM8952B是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详细定义将在以下章节给出。 1.1 嵌入式程序存储器 商用编程器(commercial writer)将程序加载到8K的嵌入式程序存储器中。 1.2 IO 口 SM8952B的I/O口和通用的8052完全兼容,P0口是一个8位漏极开路的双向I/O口,在作输入或者输出高电平时,加上拉 电阻是必要的。P1~P3口具有内部上拉电阻。 1.3 系统控制标志(SCONF) Mnemonic: SCONF 7 6 WDR - 5 - 4 - 3 - 2 - 1 - Address: BFh 0 Reset ALEI 00h WDR: 看门狗定时器复位 当系统被看门狗定时器发生溢位时,WDR 将被设为 1。 使用者可读取 WDR 确认是否曾发生看门狗复位。 ALEI: ALE 输出使能位 ALEI = 1,禁止 ALE 输出 ALEI = 0,允许 ALE 输出 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 10 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 2. 指令设置 所有SM8952B的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表格列出了以SM8952B微控器为核心 的指令集的周期的总结,这里的周期表示为机器周期。 符号 ADD A,Rn 表 2-1: Arithmetic operations 描述 Add register to accumulator 代码 28-2F ADD A,direct Add direct byte to accumulator ADD A,@Ri 字节 1 周期 1 25 2 2 Add indirect RAM to accumulator 26-27 1 2 ADD A,#data ADDC A,Rn Add immediate data to accumulator Add register to accumulator with carry flag 24 38-3F 2 1 2 1 ADDC A,direct Add direct byte to A with carry flag 35 2 2 ADDC A,@Ri Add indirect RAM to A with carry flag 36-37 1 2 ADDC A,#data SUBB A,Rn Add immediate data to A with carry flag Subtract register from A with borrow 34 98-9F 2 1 2 1 SUBB A,direct Subtract direct byte from A with borrow 95 2 2 SUBB A,@Ri Subtract indirect RAM from A with borrow 96-97 1 2 SUBB A,#data INC A INC Rn Subtract immediate data from A with borrow Increment accumulator Increment register 94 04 08-0F 2 1 1 2 1 2 INC direct Increment direct byte 05 2 3 INC @Ri Increment indirect RAM 06-07 1 3 INC DPTR DEC A Increment data pointer Decrement accumulator A3 14 1 1 1 1 DEC Rn Decrement register 18-1F 1 2 DEC direct Decrement direct byte 15 2 3 DEC @Ri MUL AB Decrement indirect RAM Multiply A and B 16-17 A4 1 1 3 5 DIV Divide A by B 84 1 5 DA A Decimal adjust accumulator D4 1 1 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 11 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 符号 ANL A,Rn 表 2-2: Logic operations 描述 AND register to accumulator 代码 58-5F ANL A,direct AND direct byte to accumulator ANL A,@Ri ANL A,#data ANL direct,A 字节 1 周期 1 55 2 2 AND indirect RAM to accumulator 56-57 1 2 AND immediate data to accumulator AND accumulator to direct byte 54 52 2 2 2 3 ANL direct,#data AND immediate data to direct byte 53 3 4 ORL A,Rn OR register to accumulator 48-4F 1 1 ORL A,direct ORL A,@Ri OR direct byte to accumulator OR indirect RAM to accumulator 45 46-47 2 1 2 2 ORL A,#data OR immediate data to accumulator 44 2 2 ORL direct,A OR accumulator to direct byte 42 2 3 ORL direct,#data XRL A,Rn OR immediate data to direct byte Exclusive OR register to accumulator 43 68-6F 3 1 4 1 XRL A,direct Exclusive OR direct byte to accumulator 65 2 2 XRL A,@Ri Exclusive OR indirect RAM to accumulator 66-67 1 2 XRL A,#data Exclusive OR immediate data to accumulator 64 2 2 XRL direct,A XRL direct,#data Exclusive OR accumulator to direct byte Exclusive OR immediate data to direct byte 62 63 2 3 3 4 CLR A Clear accumulator E4 1 1 CPL A Complement accumulator F4 1 1 RL A RLC A Rotate accumulator left Rotate accumulator left through carry 23 33 1 1 1 1 RR A Rotate accumulator right 03 1 1 RRC A Rotate accumulator right through carry 13 1 1 SWAP A Swap nibbles within the accumulator C4 1 1 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 12 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 符号 MOV A,Rn MOV A,direct 表 2-3: Data transfer 描述 Move register to accumulator Move direct byte to accumulator 代码 E8-EF E5 字节 1 2 周期 1 2 MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct Move indirect RAM to accumulator Move immediate data to accumulator Move accumulator to register Move direct byte to register E6-E7 74 F8-FF A8-AF 1 2 1 2 2 2 2 4 MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct1,direct2 Move immediate data to register Move accumulator to direct byte Move register to direct byte Move direct byte to direct byte 78-7F F5 88-8F 85 2 2 2 3 2 3 3 4 MOV direct,@Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct Move indirect RAM to direct byte Move immediate data to direct byte Move accumulator to indirect RAM Move direct byte to indirect RAM 86-87 75 F6-F7 A6-A7 2 3 1 2 4 3 3 5 MOV @Ri,#data Move immediate data to indirect RAM 76-77 2 3 MOV DPTR,#data16 Load data pointer with a 16-bit constant 90 3 3 MOVC A,@A+DPTR Move code byte relative to DPTR to accumulator 93 1 3 MOVC A,@A+PC MOVX A,@Ri Move code byte relative to PC to accumulator Move external RAM (8-bit addr.) to A 83 E2-E3 1 1 3 3 MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A PUSH direct Move external RAM (16-bit addr.) to A Move A to external RAM (8-bit addr.) Move A to external RAM (16-bit addr.) Push direct byte onto stack E0 F2-F3 F0 C0 1 1 1 2 3 4 4 4 POP direct XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri Pop direct byte from stack Exchange register with accumulator Exchange direct byte with accumulator Exchange indirect RAM with accumulator Exchange low-order nibble indir. RAM with A D0 C8-CF C5 C6-C7 D6-D7 2 1 2 1 1 3 2 3 3 3 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 13 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 符号 ACALL addr11 表 2-4: Program branches 描述 Absolute subroutine call 代码 xxx11 LCALL addr16 Long subroutine call RET RETI AJMP addr11 字节 2 周期 6 12 3 6 from subroutine 22 1 4 from interrupt Absolute jump 32 xxx01 1 2 4 3 LJMP addr16 Long iump 02 3 4 SJMP rel Short jump (relative addr.) 80 2 3 JMP @A+DPTR JZ rel Jump indirect relative to the DPTR Jump if accumulator is zero 73 60 1 2 2 3 JNZ rel Jump if accumulator is not zero 70 2 3 JC rel Jump if carry flag is set 40 2 3 JNC JB bit,rel Jump if carry flag is not set Jump if direct bit is set 50 20 2 3 3 4 JNB bit,rel Jump if direct bit is not set 30 3 4 JBC bit,direct rel Jump if direct bit is set and clear bit 10 3 4 CJNE A,direct rel Compare direct byte to A and jump if not equal B5 3 4 CJNE A,#data rel CJNE Rn,#data rel Compare immediate to A and jump if not equal Compare immed. to reg. and jump if not equal B4 B8-BF 3 3 4 4 CJNE @Ri,#data rel Compare immed. to ind. and jump if not equal B6-B7 3 4 DJNZ Rn,rel Decrement register and jump if not zero D8-DF 2 3 DJNZ direct,rel NOP Decrement direct byte and jump if not zero No operation D5 00 3 1 4 1 字节 1 周期 1 CLR C 表 2-5: Boolean manipulation 描述 Clear carry flag 代码 C3 CLR bit Clear direct bit C2 2 3 SETB C Set carry flag D3 1 1 SETB bit CPL C Set direct bit Complement carry flag D2 B3 2 1 3 1 CPL bit Complement direct bit B2 2 3 ANL C,bit AND direct bit to carry flag 82 2 2 ANL C,/bit ORL C,bit AND complement of direct bit to carry OR direct bit to carry flag B0 72 2 2 2 2 ORL C,/bit OR complement of direct bit to carry A0 2 2 MOV C,bit Move direct bit to carry flag A2 2 2 MOV bit,C Move carry flag to direct bit 92 2 3 符号 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 14 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 3. 存储器结构 SM8952B存储器结构和通用的8051结构相同,它们是作为程序存储器的8KB的嵌入式闪存。 3.1 程序存储器 SM8952B有8KB的嵌入式闪存,如以下图 3-1, 1FFF 8K Program Memory space Flash 0000 图 3-1: SM8952B programmable Flash Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 15 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 3.2 数据存储器 SM8952B具有256B Bytes的片上SRAM,如以下 图 3-2,256 Bytes和通用的8052内部存储器结构一样。 FF FF Higher 128 Bytes (Accessed by indirect addressing mode only) SFR (Accessed by direct addressing mode only) 80 80 7F Lower 128 Bytes (Accessed by direct & indirect addressing mode ) 00 图 3-2: RAM architecture 3.3 数据内存-低 128 字节(00h to 7Fh) 数据存储器从 00h 到 FFh 的地址和在 8052 中的定义是一样的。 00h 到 7Fh 的地址可通过直接或者间接寻址方式访问。 00h 到 1Fh 是寄存器的空间。 20h 到 2Fh 是位寻址空间。 30h 到 7Fh 是通用的数据存储区。 3.4 数据存储器-高 128 字节(80h to FFh) 80h 到 FFh 的地址仅仅能从间接寻址的方式访问,它是一个数据区。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 16 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 4. CPU结构 SM8952B结构由以下四部分组成: (1) 控制单元 (2) 算法-逻辑单元 (3) 存储器控制单元 (4) RAM 和 SFR 控制单元 SM8952B结构允许接受来自程序存储器的指令并与RAM或SFR做数据处理,以下各段详细叙述了主要功能寄存器。 符号 描述 ACC B Accumulator B register Program status word Stack Pointer Data pointer low Data pointer high PSW SP DPL DPH 4.1 地址 Bit 7 E0h F0h ACC.7 B.7 D0h CY 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 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 83h SP[7:0] DPL[7:0] DPH[7:0] 07H 00H 00H 累加器 ACC是一个累加器,大部分单操作指令的一个操作数取自累加器。 符号: ACC 7 6 ACC.7 ACC.6 5 ACC05 4 ACC.4 3 ACC.3 2 ACC.2 1 ACC.1 0 ACC.0 地址: E0h Reset 00h 0 B.0 地址: F0h Reset 00h ACC[7:0]: The A (or ACC) register is the standard 8052 accumulator。 4.2 B 寄存器 B寄存器被用于乘法或除法指令,也可作为一般寄存器以存储临时数据。 符号: B 7 B.7 6 B.6 5 B.5 4 B.4 3 B.3 2 B.2 1 B.1 B[7:0]: The B register is the standard 8052 register that serves as a second accumulator. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 17 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 4.3 程序状态字 符号: PSW 7 6 CY AC 5 F0 4 3 RS [1:0] 2 OV 1 F1 0 P 地址: D0h Reset 00h CY: 进位标志位 AC: 为 BCD 辅助进位标志位 F0: 用户设置标志位 0 RS[1:0] 00 01 10 11 Bank Selected Bank 0 Bank 1 Bank 2 Bank 3 Location 00h – 07h 08h – 0Fh 10h – 17h 18h – 1Fh OV: 溢出标志位 F1: 用户设置标志位 1 P: 奇偶校验位,受硬件影响,显示累加器中的奇偶的 1 位,即奇偶校验 4.4 堆栈指针 堆栈指针是一个1字节的寄存器,在复位后初始化值为07h。此寄存器在执行PUSH和CALL指令之前增值,使得堆栈指针 在08h开始执行。 符号: SP 7 6 5 4 3 2 1 0 SP [7:0] 地址: 81h Reset 07h SP[7:0]: 堆栈指针储存了暂时寄存器的地址,该地址是堆栈指针的起始位置.换言之,它总是指向堆栈指 针的顶端。 4.5 数据指针 数据指针为2字节,低位为DPL,高位为DPH。它可以作为一个2字节的寄存器(MOV DPTR,#data16)来使用,或者作为 两个寄存器(例如 MOV DPL,#data8) ,它通常被用作是运行外部程序或者是数据空间(如 MOVC A,@ A+DPTR 或者各自 的MOVX A, @ DPTR) 。 符号: DPL 7 6 5 4 3 DPL [7:0] 2 1 0 地址: 82h Reset 00h DPL[7:0]: 数据指针低字节 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 18 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 符号: DPH 7 6 5 4 3 DPH [7:0] 2 1 0 地址: 83h Reset 00h DPH [7:0]: 数据指针高字节 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 19 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 5. GPIO管脚型态 P0口~P3口是此款微型控制器的通用的IO口。大部份端口都可和其他输入设备一起操作,如P3[0]也可以当RXD在串行口 通讯(UART)的应用中被使用。在输入和输出高的条件下,端口0是开漏的,因此需加外部上拉电阻。至于其他端口, 其上拉电阻位于内部。对于通常的应用设置,每个管脚均可独立设置为高电位或者低电位,如下所示: 符号: P0 7 6 P0.7 P0.6 5 P0.5 4 P0.4 3 P0.3 2 P0.2 1 P0.1 地址: 80h 0 Reset P0.0 FFh 4 P1.4 3 P1.3 2 P1.2 1 P1.1 0 P1.0 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 P0.7~ 0: Port0 [7] ~ Port0 [0] 符号: P1 7 6 P1.7 P1.6 5 P1.5 地址: 90h Reset FFh P1.7~ 0: Port1 [7] ~ Port1 [0] 符号: P2 7 6 P2.7 P2.6 5 P2.5 P2.7~ 0: Port2 [7] ~ Port2 [0] 符号: P3 7 6 P3.7 P3.6 5 P3.5 P3.7~ 0: Port3 [7] ~ Port3 [0] Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 20 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 6. 定时器0 和定时器1 SM8952B有三个16bit的定时/计数寄存器:定时器0、定时器1与定时器2。所有这些都可以被设置为定时或计数操作。 在计时模式,定时器 0 或定时器 2 缓存器每个机械周期将加 1,由于每 12 个时钟为 1 个机械周期,故计数频率为 Fosc/12。 这些定时和计数功能体现在同一个单元中。"定时"或者"计数"功能可通过特殊功能寄存器的TMOD中的C/ T 位来选择。定 时器0和1有四种操作模式,它们可通过特殊功能寄存器的TMOD的(M1,M0)进行选择。模式0,1,2对于定时器和计数器是 一样的,模式3 则有所不同。四种工作模式描述如下: 符号 TL0 TH0 TL1 TH1 TMOD TCON 6.1 描述 地址 Timer 0 , low byte Timer 0 , high byte Timer 1 , low byte Timer 1 , high byte Timer Mode Control Timer/Counter Control Bit 7 Bit 6 Bit 5 Timer 0 and 1 8Ah 8Ch 8Bh 8Dh 89h GATE C/T 88h TF1 TR1 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 M1 TL0[7:0] TH0[7:0] TL1[7:0] TH1[7:0] M0 GATE C/T M1 M0 00H 00H 00H 00H 00H TF0 TR0 IT1 IE0 IT0 00H IE1 定时器/计数器模式控制寄存器(TMOD) 符号: TMOD 7 6 5 GATE C/T M1 Timer 1 4 M0 3 GATE 2 1 C/T M1 Timer 0 0 M0 地址: 89h Reset 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 位定时器/计数 器. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 21 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 6.2 定时/计数控制寄存器(TCON) 符号: TCON 7 6 TF1 TR1 5 TF0 4 TR0 3 IE1 2 IT1 1 IE0 0 IT0 地址: 88h Reset 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 模式 0 (13 位定时/计数) 在这种模式中,定时寄存器是配置成一个 13 位的寄存器,以定时器 1 为例,当计数值由全 1 变成全 0 时,定时器中断 标志 TF1 置位.当 TR1=1 和 GATE=0 或者 INT 1 =1,计数输入到计时有效。当 GATE=1 时,外部输入 INT 1 控制定时 器,定时器可用来测量脉冲宽度)。TR1 是 SFR TCON 中的一个控制位,而 GATE 则是 TMOD 寄存器中的一位。 该 13 位寄存器由 TH1 的 8 位和 TL1 的低 5 位组成。TL1 的高 3 位不确定,可被忽略置位运行标志(TR1)不会清零寄 存器。 定时器 0 和定时器 1 的模式 0 操作相同。因此为了最后一章的相关计时器 1 信号替换 TR0,TR1 以及 INT 0 。我们可以 知道定时器 0 的工作模式 1。但是它们有两个不同的 GATE 位。一个用于定时器 1,(TMOD.7)另一个用于定时器 0(TMOD.3)。 图 6-1: 模式 0 -13 位定时器/计数器操作 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 22 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 6.4 模式 1 (16 位定时/计数) 除定时器寄存器为16 位外,模式1的操作与模式0完全相同。 图 6-2: 模式 1 -16 位定时器/计数器操作 6.5 模式 2 (8 位自动重载定时/计数) 定时 1,模式 2 中,定时器寄存器配置一个 8 位的计数器(TL1),具有自动重装功能,TL1 的溢出不仅使 TF1 置位, 而且将 TH1 的内容重新装入 TL1,TH1 的值由软件预先设置。重装时 TH1 的内容不变。定时器 0 的模式 2 操作也同样 如此。 图 6-3: 模式 2 -8 位自动重载定时/计数 6.6 模式 3 (两个独立 8 位定时/计数(仅定时器 0)) 模式 3 中,定时器 1 的计数值保持不变,等效于 TR1=0。 模式 3 中,定时器 0 将 TL0 和 TH0 分成 2 个独立的计数器 TL0 使用定时器 0 控制位:C/ T , GATE, TR0, INT 0 和 TF0。TH0 锁定成定时器以用来计数机器周期,占用定时器 1 的 TR1 和 TF1 位。这样,TH0 就控制着定时器 1 的中 断。 模式 3 用在需要一个额外的 8 位定时器的场合。当定时器 0 工作在模式 3 时,定时器 1 可通过进入/退出模式 3 来启动 /关闭。定时器 1 还可用作串口的波特率发生器或用在不需要中断的应用中。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 23 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 图 6-4: 模式 3 -两个独立 8 位定时/计数(仅定时器 0) Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 24 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 7. 定时器2 定时器2是一个16位的定时器/计数器,可用作定时器或事件计数器,由特殊功能寄存器T2CON 的C/ T 2 位选择。 符号 TL2 TH2 RCAP2L RCAP2H T2MOD T2CON 描述 地址 Timer 2 , low byte Timer 2 , high byte Reload and capture data low byte Reload and capture data high byte Timer 2 mode Timer 2 control register Bit 7 Bit 6 Bit 5 Bit 4 Serial interface 0 and 1 Bit 3 Bit 2 Bit 1 Bit 0 重置值 CCh TL2[7:0] 00h CDh TH2[7:0] 00h CAh RCAP2L[7:0] 00h CBh RCAP2H[7:0] 00h C9h - - - - C8h TF2 EXF2 RCLK TCLK 3 - 2 - 符号: T2MOD 7 6 - 5 - 4 - EXEN 2 1 T2OE - T2OE TR2 C/ T2 DCEN CP/ RL2 x0h 00h 地址: 98h 0 Reset DCEN 00H T2OE: 定时器 2 输出使能位 DCEN: 该位置位时,定时器 2 可配置成递增/递减计数器 符号: T2CON 7 6 TF2 EXF2 5 4 3 2 1 RCLK TCLK EXEN2 TR2 C/ T2 0 CP/ 地址: 98h Reset RL2 00H TF2: 定时器 2 溢出标志。该位由定时器 2 溢出时置位,必须由软件清除。当 RCLK=0 或 TCLK=1 时,TF2 将不会置位。 EXF2: 定时器 2 外部标志。当 EXEN2=1 且 T2EX 的跳变产生捕获或重装时,EXF2 置位。定时 器 2 中断使能时,EXF2=1 将使 CPU 从中断向量处执行定时器 2 中断子程序。EXF2 位必 须用软件清零,在递增/递减计数器模式 DCEN =1 中,EXF2 不会引起中断。 RCLK: 接收时钟标志。RCLK 置位时,定时器 2 的溢出脉冲作为串行口模式 1 和模式 3 的接收时 钟。RCLK =0 时将定时器 1 的溢出脉冲作为接收时钟。 TCLK: 发送时钟标志。TCLK 置位时,定时器 2 的溢出脉冲作为串行口模式 1 和模式 的发送时 钟。TCLK =0 时将定时器 1 的溢出脉冲作为发送时钟。 EXEN2: 定时器 2 外部使能标志。当其置位且定时器 2 未作为串行口时钟时,允许 T2EX 的跳变产 生捕获或重装。EXEN2=0 时 T2EX 的跳变对定时器 2 无效。 C/ T2 : 定时器2 定时器/计数器选择。 0=内部定时器 12时钟模式为OSC/12;6时钟模式为OSC/6。 1=外部事件计数器下降沿触发。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 25 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 CP/ RL2 : 捕获/重装标志。该位置位时,如果 EXEN2=1,T2EX 上出现跳变时捕获。该位被清零 时,如果 EXEN2=1,当定时器 2 溢出或 T2EX 上出现跳变时自动重装。当 RCLK=1 或 TCLK=1 时,该位被忽略,定时器 2 溢出时被强制自动重装。 RCLK + TCLK x 1 0 0 0 7.1 CP/RL2 x x 1 0 0 表 7-1 : Timer 2 Operating Modes TR2 DCEN Mode 0 x OFF 1 0 Baud-Rate Generation 1 0 Capture 1 0 Auto-Reload Up-only 1 1 Auto-Reload Up/Down 捕获模式 在捕获模式中,可通过T2CON中的位EXEN2有两种任选择,如果EXEN2=0,定时器2用作一个16位的定时器或计数 器,溢出时置位TF2,此位可用来产生中断。如果EXEN2=1,计时器2仍继续以上工作,但外部输入T2EX由1变0时将定 时器2 中TL2和TH2的当前值各自捕获到RCAP2L和RCAP2H。另外,T2EX的负跳变使T2CON中的EXF2置位, EXF2也 象TF2 一样能够产生中断。 Fosc/12 C/T2=0 T2 pin TL2 (8 BITS) C/T2=1 TH2 (8 BITS) TF2 TR2 Timer2 Interrupt RCAP2L RCAP2H Transition Detector T2 EX pin EXF2 EXEN2 Timier2 in Capture Mode 图7-1: Timer 2 in capture mode 7.2 自动重装模式(递增/递减计数器) 16位自动重装模式中定时器2,编程控制递增/递减计数计数的方向是由DCEN 递减计数使能位确定的DCEN位于特殊功 能寄存器T2MOD中。在复位后,当DCEN=0时,定时器2 默认为向上计数当DCEN =1时,定时器2可通过T2EX确定递增 或递减计数。 图7-2显示了当DCEN=0时计数器2的自动递增计数功能,在该模式中,通过对T2CON中的位EXEN2设置,可有两种任意 的选择。如果EXEN2=0,定时器2 递增计数到0FFFFH并在溢出后将TF2置位然后将RCAP2L和RCAP2H中的16位值作 为重新装载值装入定时器2。RCAP2L和RCAP2H的值是通过软件预设的如果EXEN2=1,16位重新装载可通过溢出或 T2EX从1到0的跳变实现,此跳变同时将EXF2置位,此跳变同时将EXF2置位,如被使能,则当TF2或EXF2置1时产生中 断。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 26 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 如图7-3所示,设定DCEN位后,定时器2可递增或递减计数,在该模式中,T2EX控制计数的方向。当T2EX置1时,计时 器2递增计数,计数到0FFFFH后溢出并置位TF2,定时器2的溢出将使RCAP2L 和RCAP2H中的16位值作为重新装载值 放入TL2和TH2。 当T2EX置零时,将使定时器2递减计数。当TL2和TH2计数到等于RCAP2L和RCAP2H时,定时器产生溢出,定时器2溢 出,置位TF2并将0FFFFH重新装入TL2和TH2。 无论定时器2递增或者递减,产生溢出时,外部标志位EXF2 翻转。如果需要,可将EXF2位作为第17位使用,在此模式 中EXF2 标志不会产生中断。 Fosc/12 C/T2=0 T2 pin TL2 (8 BITS) C/T2=1 TR2 TH2 (8 BITS) TF2 RELOAD Timer2 Interrupt RCAP2L RCAP2H Transition Detector T2 EX pin EXF2 EXEN2 Timier2 in Auto Reload Mode (DCEN=0) 图7-2:Timer 2 in auto reload mode (DCEN=0) Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 27 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 FFH FFH EXF2 Fosc/12 C/T2=0 TH2 TL2 T2 pin TF2 C/T2=1 Timer2 interrupt Count Direction 1 = UP 0 = DOWN TR2 RCAP2L RCAP2H T2EX PIN Timier2 in Auto Reload Mode (DCEN=1) 图7-3: Timer 2 in auto reload mode (DCEN=1) 7.3 编程时钟输出 通过编程,可从 P1.0 输出占空比为 50﹪的时钟信号。P1.0 口,除用作通用 I/O 口外,还含有 2 个附加功能, P1.0 口可 编程为:(1)定时器/计数器 2 的外部时钟输入;(2)输出占空比为 50﹪的时钟信号。例如:如 12T 模式中,在 16MHz 的工作频率下,时钟信号的频率范围为 61Hz 到 4MHz。 通过清零位C/ T 2 (T2CON.1)和置位T2MOD的T2OE位来将定时器/计数器2配置成一个时钟发生器。通过置位TR2 位 (T2CON.2)就可启动定时器的运行。 系统时钟输出频率取决于晶振频率和定时器2 捕获寄存器(RCAP2H,RCAP2L)的重装值,见下列等式: Clock-Out Frequency = Oscillator Frequency 4 × (65536 − RCAP 2 H , RCAP 2 L) 在时钟输出模式中,定时器2 计数器的循环翻转不会产生中断。这与定时器2用作波特率发生器时一致。将定时器2同时 作为鲍率生成器和时钟生成器是可能的,然而需要注意的是波特率和时钟输出频率不能各自独立决定,因为它们都使用 RCAP2H和RCAP2L。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 28 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 图7-4: Timer 2 in clock-out mode Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 29 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 8. 串行接口 两个串行缓冲器组成两个单独寄存器,即一个传输缓冲区和一个接收缓冲区。 写入数据到特殊功能寄存器(SFR)SBUF并设置这些数据在串行输出缓冲,并开始传输, 来自SBUF的读取及从串行接 收缓冲区读取数据,串行口可同时传输和接收数据,它也可在接收时缓存1字节,如CPU在第一个字节传输完成之前读取 第二个字节,以防接收数据丢失。 符号 描述 地址 Bit 7 PCON Power control Serial Port control register Serial Port data buffer 87H SMOD 98H SM0 SCON SBUF Bit 6 Bit 5 Serial interface - Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 - GF1 GF0 PD IDLE 00H SM1 REN TB8 RB8 TI RI 00H SM2 99H SBUF[7:0] Mnemonic: SCON 7 6 5 SM0 SM1 SM2 4 REN 3 TB8 2 RB8 1 TI 00H Address: 98h 0 Reset RI 00H SM0, SM1: 串行口模式选择。 SM0 0 0 1 1 SM1 Mode 0 0 1 1 0 2 1 3 在 UART 的 4 种模式中,模式 0~3 稍后解释。 SM2: 多处理机通信使能位。 REN: 如置位,串行接收使能,软件清除禁止接收。 TB8: 在模式 2 和 3 中,发送的第 9 位数据位,置位或清零取决与它执行的功能,如奇偶校验功 能, 多处理机通信等。 RB8: 在模式 2 和 3 中,RB8 为接收的第 9 位数据位。在模式 1 中,如 SM2=0,RB8 为停止 位。在模式 0 中,此位不被使用。须由软件清除。 TI: 发送中断标志位.在完成串行传输后由硬件置位,须由软件清除。 RI: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除。 8.1 串行接口由以下 4 种模式可以设置 SM0 0 0 1 1 SM1 0 1 0 1 Mode 0 1 2 3 描述 Shift register 8-bit UART 9-bit UART 9-bit UART Board Rate Fosc/12 Variable Fosc/32 or Fosc/64 Variable 这里的Fosc是晶体或振荡器的频率。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 30 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 8.1.1 模式 0 引脚RXD充当输入和输出。TXD输出时钟。每次发送或接收以LSB最低位作首位,每次8位。波特率固定为的晶体的频率 1/12,接收通过以下的在SCON中的设置标志在模式0中初始化:RI = 0及REN = 1。在其它模式中,当REN=1时,开始 从起始位接收串行数据。 图 8-1: 发送模式 0 图 8-2: 接收模式 0 8.1.2 模式 1 引脚RXD充当输入,TXD充当串行输出,无任何外部时钟被使用,每次数据为10位:一个起始位(=0),8个数据位(LSB 位在前),及一个停止位(=1)。在接收据数据时, 起始位将被同步传输,8个数据位可通过SBUF来读取, 一个停止位存于 特殊功能寄存器SCON的设置标志RB8内,在模式1中,无论是内部的波特率发生器或定时器1可以用来指定波特率。 图 8-3: 发送模式 1 图 8-4: 接收模式 1 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 31 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 8.1.3 模式 2 该模式和模式1类似,但有两点不同。波特率被固定在振荡器的频率的1/32(SMOD=1)或1/64(SMOD=0),且有11 位数据被传输或接收: 1个起始位(=0),8个数据位(LSB在前),一个可编程的第9位及一个停止位(=1),9位可以 用来控制串行接口的奇偶性。在传输中,SCON中的TB8输出第9位,在接收中,SCON中的RB8将被影响。 8.1.4 模式 3 模式2和3的唯一不同之处在于:在模式3中,无论是内部的波特率发生器或定时器1可以用来指定波特率。 图 8-5: 传输模式 2 和模式 3 图 8-6: 接收模式 2 和 3 中 8.2 串行接口的多重机通讯 在串行接口的模式2 和3,接收9 位的功能, 可用于多处理器的通讯。在这种情况下,从机在SCON 中的位SM2被置位为 1。当主机输出从机的地址时,Bit9 将被置1,从而在所有的从机中导致串行口接收中断。从机将接收到的字节和它们的 网络地址比较,如匹配,其从机将清除SM2,并接收其余的信息,其它的从机将远离SM2无效,并忽略此信息。在解决 从机后,其主机在Bit9 清0 时将输出剩余部分的信息,因此,没有串口接收中断会产生在未选中的处理机中。 8.3 8.3.1 波特率发生器 模式 0 Baud Rate = 8.3.2 Fosc 12 模式 2 Baud Rate = 2 SMOD × (Fosc) 64 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 32 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 8.3.3 8.3.3.1 模式 1 与模式 3 使用定时器 1 作波特率发生器 2 SMOD 2 SMOD Fosc Baud Rate = × (Timer 1 overflow rate) = × 32 32 12 × [256 − TH 1] 8.3.3.2 使用计时器 2 来生成波特率 Baud Rate = Timer 2 overflow rate Fosc = 32 32 × [65536 - (RCAP2H, RCAP2L)] Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 33 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 9. 中断 SM8952B提供6个中断源并带有2级优先权. 每一中断源都在特殊寄存器(SFR)中有自身的请求标志,每个中断请求信号 通过相应的标志及特殊寄存器(SFR)IE中的使能位来独自允许或禁止。 当中断发生时,CPU将会跳转预先设定的地址,如表 9-1 表所示,一旦中断开始执行,就只能被更高优先级的中断终 止,其中断服务会被来自指令RETI的返回所终结。当一RETI被执行时且中断发生时,处理器将将返回此指令,并执行下 一条指令。 当中断条件发生时,该处理器通过设置一个标志位来表示,无论中断使能或禁止,每个中断标志都将在每个机器周期中 采样一次,随后采样由硬件来检测,当中断被使能时,且采样指出相应中断时,中断请求标志被设置。在随后的指令周 期中,中断将被硬件所确定。从而迫使一个LCALL 指向相应的地址向量。 当中断发生时,中断响应将需要不同的时间,这取决于相关的处理器。如一处理器执行的中断服务程序同等或更优先, 新的中断将不会启用,在其它情况下,响应时间将取决于当前的指令。 1 表 9-1: 中断向量 Interrupt Vector Interrupt Request Flags Address 0003h IE0 – 外部中断0 2 TF0 – 定时器0 中断 3 4 Interrupt Number *(use Keil C Tool) 0 000Bh 1 IE1 – 外部中断 1 0013h 2 TF1 – 定时器1 中断 001Bh 3 5 RI/TI – 串行口中断 0023h 4 6 TF2/EXF2 – 定时器2 中断 002Bh 5 *参考Keil C用户指南中的有关中断功能使用说明 符号 IE IP 描述 Interrupt Enable register Interrupt priority register 符号: IE 7 EA 6 - 地址 Bit 7 Bit 6 A8H EA - B8H - - 5 ET2 4 ES0 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 ET2 ES ET1 EX1 ET0 EX0 00H PT2 PS PT1 PX1 PT0 PX0 00H Bit 5 Interrupt 3 ET1 2 EX1 1 ET0 0 EX0 地址: A8h Reset 00h EA: EA=0 –禁能所有中断 EA=1 –使能所有中断 ET2: ET2=0 –禁能定时器 2 中断 ET2=1 –使能定时器 2 中断 ES: ES=0 –禁能串行口中断 ES=1 –使能串行口中断 ET1: ET1=0 –禁能定时器 1 中断 ET1=1 –使能定时器 1 中断 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 34 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 EX1: EX1=0 –禁能外部中断 1 EX1=1 –使能外部中断 1 ET0: ET0=0 –禁能定时器 0 中断 ET0=1 –使能定时器 0 中断 EX0: EX0=0 –禁能外部中断 0 EX0=1 –使能外部中断 0 符号: IP 7 - 6 - 5 PT2 4 PS 3 PT1 2 PX1 1 PT0 0 PX0 地址: B8h Reset 00H PT2: 定时器 2 中断优先位,当 PT2=1 时,最高优先权 PS: 串行口中断优先位,当 PS=1 时候,最高优先权 PT1: 定时器 1 中断优先位,当 PT1=1 时,最高优先权 PX1: 外部中断 1 优先位,当 PX1=1 时候,最高优先权 PT0: 定时器 0 中断优先位,当 PT0=1 时,最高优先权 PX0: 外部中断 0 优先位,当 PX0=1 时候,最高优先权 Interrupt Priority Table IP.x Priority Level 1 1 (highest) 0 2 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 35 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 10. 看门狗定时器 看门狗定时器是一个16位的计数器并会在计数器溢出时产生复位讯号。WDT在噪音、电源干扰或断电等导致软件死循环 或跑飞程序等情况下非常有用。WDT功能可以帮助拥护的软件从不正常的软件状态中恢复正常。WDT不同于通用的 8052的计时器0、1、2。为了防止WDT复位,可以通过软件定时清除WDT计数器。当不可预料的复位发生时,用户应该 检查SCONF寄存器的WDR位。在一外部复位后,该看门狗定时器将无效且所有寄存器都清零。 看门狗定时器是频率是由系统晶振提供,有可选择的分频,要选择分频,由WDTC寄存器的PS [2:0] ,請參考表10-1。 在正常的运行状态,一个WDT超时(如使能)将导致MCU复位。当看门狗定时器溢出时,WDR标志位将被置1,同时将 MCU复位,该标志位可被软件、外部复位、或上电复位清零。 表 10-1: WDT time-out period Divider (dividing of Fosc) 8 16 32 64 128 256 512 1024 PS[2:0] 000 001 010 011 100 101 110 111 Clear WDTF = 0 1. Power on reset 2. External reset 3. Software write “0” Fosc Time period @ 40MHz 13.1ms 26.21ms 52.42ms 104.8ms 209.71ms 419.43ms 838.86ms 1677.72ms WDR Set WDR = 1 WDTCLK 1 2 PS[2:0]+3 PS[2:0] WDT time-out select WDT Counter Enable/Disable WDT Refresh WDT Counter WDTEN WDTC WDT time-out reset CLR 图. 10-1: Watchdog timer block diagram Mnemonic WDTC SCONF Description Watchdog timer control register System Control Register Dir. Bit 7 Bit 6 Bit 5 Watchdog Timer 9FH WDTE - BFH WDR - Bit 4 Bit 3 CLEAR - - - - - Bit 2 Bit 1 Bit 0 PS [2:0] - - RST 00H ALEI Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 36 - 00H SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 Mnemonic: WDTC 7 6 5 WDTE CLEAR 4 - 3 - 2 1 PS [2:0] Address: 9Fh 0 Reset 00H WDTE: 看门狗定时器使能位 CLEAR: 设置看门狗定时器的清除位 如果设定为 1,WDT 被清除并重新启动开始计数。 PS[2:0]: 看门狗定时器溢出周期标志位 Mnemonic: SCONF 7 6 WDR - 5 - 4 - 3 - 2 - 1 - Address: BFh 0 Reset ALEI 00H WDR: 看门狗重置旗标 此旗标于芯片之复位信号是由看门狗重置产生时由硬件自动设置。此旗标可由软件清零。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 37 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 11. 电源管理单元 电源管理单元提供两种电源管理模式,即IDLE(待机/空闲)和Power down(掉电),并为用户提供省电功能。 符号: PCON 7 6 SMOD - 5 - 4 - 3 GF1 2 GF0 1 PD 0 IDLE 地址: 87h Reset 00h GF1: 通用标志位 1 GF0: 通用标志位 0 PD: 当 PD=1 时,MCU 进入掉电模式(Power-down Mode) IDLE: 当 IDLE=1 时,MCU 进入空闲模式(IDLE mode) 11.1 待机模式(空闲模式) 使用IDLE(待机模式(空闲模式))模式可通过对PCON寄存器的IDLE位置位。空闲模式停止MCU的时钟源,但外部的时 钟源依旧保持,由于此时CPU不工作,电源功耗将被降低。当任何一中断信号或者一复位信号时,CPU将退出待机模式 (空闲模式)。 11.2 掉电模式 使用PD(掉电模式)模式可通过对PCON寄存器的PD位置位。在此模式中,系统晶振将停下来,CPU内部的动作完全 停止,但内部RAM之值可被保留,所有的中断源将全部被关闭,CPU将僅能以硬件重置退出该模式。 Pin Status in IDLE Mode and Power-Down Mode Mode Idle Idle Power-Down Power-Down Program Memory Internal External Internal External ALE 1 1 0 0 PSEN 1 1 0 0 Port0 Data Float Data Float Port1 Data Data Data Data Port2 Data Address Data Data Port3 Data Data Data Data Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 38 - SM8952B 内嵌 8KB Flash 和 256 RAM 的 8 位控制器 工作环境 Symbol Description TA VDD Min. Typ. Max. Unit. Operating temperature -40 25 85 ℃ Supply voltage 2.4 5.5 V Remarks Ambient temperature under bias DC电气特性 TA = -40℃ to 85℃, VCC = 5.0V Symbol Parameter VIL1 Input Low Voltage VIL2 Input Low Voltage VIH1 Input High Voltage VIH2 Input High Voltage VOL1 Output Low Voltage VOL2 Output Low Voltage VOH1 Output High Voltage VOH2 IIL ITL ILI R RES C IO I CC Output High Voltage Logical 0 Input Current Logical Transition Current Input Leakage Current Reset Pull-down Resistance Pin Capacitance Power Supply Current Valid port 0,1,2,3,#EA RES, XTAL1 port 0,1,2,3,#EA RES, XTAL1 port 0, ALE, #PSEN port 1,2,3, port 0 port 1,2,3,ALE,#PSEN port 1,2,3 Min. -0.5 0 2.0 70%Vcc port 0, #EA Vdd -75 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<Vcc 300 Kohm 10 20 6.5 15 pF mA mA uA 2.4 90%Vcc 2.4 90%Vcc port 1,2,3 RES Max. 0.8 0.8 Vcc+0.5 Vcc+0.5 0.45 0.45 50 Test Conditions Freq=1MHz, Ta=25 ℃ Active mode, 16MHz Idle mode, 16MHz Power down mode Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M078 Ver D SM8952B 08/07/2015 - 39 -