SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 产品目录 .............................................................................................................................................................................. 2 描述 ..................................................................................................................................................................................... 2 订货信息 .............................................................................................................................................................................. 2 特征 ..................................................................................................................................................................................... 2 各封装引脚配置 ................................................................................................................................................................... 3 系统方框图 .......................................................................................................................................................................... 6 管脚描述 .............................................................................................................................................................................. 7 特殊功能寄存器(SFR) ......................................................................................................................................................... 8 功能描述 ............................................................................................................................................................................ 11 1. 总特征....................................................................................................................................................................... 11 1.1 嵌入式程序存储器 ............................................................................................................................................ 11 1.2 IO 口 ................................................................................................................................................................ 11 1.3 系统控制标志(SCONF) .................................................................................................................................... 11 2. 指令设置 ................................................................................................................................................................... 12 3. 存储器结构 ............................................................................................................................................................... 16 3.1 程序存储器....................................................................................................................................................... 16 3.2 数据存储器....................................................................................................................................................... 17 3.3 数据内存-低 128 字节(00H 到 7FH) .................................................................................................................. 17 3.4 数据存储器-高 128 字节(80H 到 FFH)............................................................................................................... 17 3.5 存储器-扩展的 768 字节($0000 到 $02FF)....................................................................................................... 17 4. CPU 结构 .................................................................................................................................................................. 21 4.1 累加器 .............................................................................................................................................................. 21 4.2 B 寄存器 ........................................................................................................................................................... 21 4.3 程序状态字....................................................................................................................................................... 22 4.4 堆栈指针 .......................................................................................................................................................... 22 4.5 数据指针 .......................................................................................................................................................... 22 5. GPIO 管脚型态 ......................................................................................................................................................... 24 6. 定时器 0 和定时器 1 ................................................................................................................................................. 25 6.1 定时器/计数器模式控制寄存器(TMOD)............................................................................................................ 25 6.2 定时/计数控制寄存器(TCON) .......................................................................................................................... 26 6.3 模式 0 (13 位定时/计数) ................................................................................................................................... 26 6.4 模式 1 (16 位定时/计数) ................................................................................................................................... 27 6.5 模式 2 (8 位自动重载定时/计数) ....................................................................................................................... 27 6.6 模式 3 (两个独立 8 位定时/计数(仅定时器 0)) .................................................................................................. 27 7. 定时器 2 .................................................................................................................................................................... 29 7.1 捕获模式 .......................................................................................................................................................... 30 7.2 自动重装模式(递增/递减计数器) ................................................................................................................. 30 7.3 编程时钟输出 ................................................................................................................................................... 32 8. 串行接口 ................................................................................................................................................................... 34 8.1 串行接口由以下 4 种模式可以设置 .................................................................................................................. 34 8.2 串行接口的多重机通讯 .................................................................................................................................... 36 8.3 波特率发生器 ................................................................................................................................................... 36 9. 中断 .......................................................................................................................................................................... 38 10. 看门狗定时器 ....................................................................................................................................................... 40 11. 电源管理单元 ....................................................................................................................................................... 42 11.1 待机模式(空闲模式) ......................................................................................................................................... 42 11.2 掉电模式 .......................................................................................................................................................... 42 12. 脉宽调制器(PWM)................................................................................................................................................ 43 13. TWO-WIRE SERIES INTERFACE (TWSI) .......................................................................................................... 45 工作环境 ............................................................................................................................................................................ 48 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 -1- SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 产品目录 特征 SM8954BW40PP, SM8954BW44JP, SM8954BW44QP, 描述 SM8954B 产品系列是(内嵌)16KB Flash 和 1KB SRAM 的 8-bit 的微控制器,它是 8052 微处理器的一衍生产品,且 兼容相关设置。 可支持到 36 个 I/O,16KB Flash 可用来存放程序或数 据。并可透过商用编程器烧写。 订货信息 SM8954BihhkL YWW i: 工艺标志{ W = 2.4V ~ 5.5V} hh: 封装脚位 k: 封装形式后缀{as table below } L: 无铅标志 {无文字即含铅,”P” 即无铅} Y: 年 WW: 周(01~52) Postfix P J Q 工作电压: 2.4 ~ 5.5V,最高可达 40MHz 兼容通用的 8052 12 时钟周期 / 机器周期 指令设置兼容 MCS-51 16KB 字节的片上闪存程序存储器 256B 字节的标准的 8052 RAM,加 768 字节的片上 扩展 SRAM。 16-bit 数据指针 (DPTR) 一个标准串口(UART) 3 个 16bit 的计时器/计数器(计时器 0,1,2) 4 个 8bit I/O 外加 1 个 4bit I/O 具有 2 级优先权的外部中断 0&外部中断 1 看门狗定时器(WDT) 一个 IIC 接口(主/从机模式) 2 路 8 位/5 位脉宽调制(PWM) 具有 7 個中断源及两个优先级 管脚 ESD 性能超过 4KV 增强用户代码保护 电源管理单元空闲及掉电模式 Package PDIP PLCC PQFP Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 -2- SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 各封装引脚配置 40 Pin PDIP 1 40 VDD T2EX/P1.1 2 39 P0.0/AD0 PWM0/P1.2 3 38 P0.1/AD1 PWM1/P1.3 4 37 P0.2/AD2 P1.4 5 36 P0.3/AD3 P1.5 6 35 P0.4/AD4 SCL/P1.6 7 34 P0.5/AD5 SDA/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 SM8954BihhPP YWW (40L PDIP Top View) T2/P1.0 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 -3- SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 P1.2/PWM0 P1.1/T2EX P1.0/T2 P4.2 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 SM8954B ihhJP YWW (44L PLCC Top View) 29 30 31 32 33 34 35 36 37 38 39 P1.3/PWM1 42 A8/P2.0 T1/P3.5 43 P4.0 T0/P3.4 44 VSS INT1/P3.3 1 XTAL1 INT0/P3.2 2 XTAL2 TXD/P3.1 3 RD/P3.7 P4.3 4 WR/P3.6 9 RESET RXD/P3.0 5 7 SDA/P1.7 17 16 15 14 13 12 11 10 SCL/P1.6 6 8 P1.5 P1.4 44 Pin PLCC P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA P4.1 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-M084 Ver D SM8954B 08/07/2015 -4- SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA P4.1 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 VDD 38 18 P2.0/A8 17 P4.0 16 VSS 15 XTAL1 14 XTAL2 13 P3.7/RD 12 P3.6/WR PWM0/P1.2 42 SM8954B ihhQP YWW PWM1/P1.3 43 (44L PQFP Top View) P4.2 39 T2/P1.0 40 T2EX/P1.1 41 3 4 5 6 7 8 9 SDA/P1.7 RESET RXD/P3.0 P4.3 TXD/P3.1 INT0/P3.2 INT1/P3.3 T1/P3.5 11 2 SCL/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-M084 Ver D SM8954B 08/07/2015 -5- SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 系统方框图 P2.0 ~ P2.7 RAM ADDR Register B Register RAM256 P0.0 ~ P0.7 Port2 Driver Port0 Driver Port2 Latch Port0 Latch ACC Stack Pointer TMP2 ISP TMP1 Timer0/1 Timer2 ALU PSW Flash ROM Address Generator UART WDT Program Counter DPTR #PSEN ALE #EA RESET Port1 Latch Control Unit Port4 Latch AUXRAM (768 byte) Port1 Driver XTAL1 Port3 Latch Port3 Driver Port4 Driver TWSI ( I2C ) XTAL2 P1.0 ~ P1.7 P3.0 ~ P3.7 P4.0 ~ P4.3 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 -6- SM8954B 内嵌 16KB 的 Flash 和 1KB 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 44L PLCC 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 41 42 43 44 44L PQFP 39 40 41 42 43 44 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 代号 I/O P4.2 P1.0/T2 P1.1/T2EX P1.2/PWM0 P1.3/PWM1 P1.4 P1.5 P1.6/SCL P1.7/SDA RESET P3.0/RXD P4.3 P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD XTAL2 XTAL1 VSS P4.0 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 P4.1 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/O I I/O I/O I/O I/O I/O I/O I/O I/O I/O O O I/O I I/O I/O I/O I/O I/O I/O I/O I/O I 描述 P4口的位2 P1口的位0 & 定时器2外部输入时钟 P1口的位1 & 定时器2捕获触发器 P1口的位2 & PWM 通道0 P1口的位3 & PWM 通道1 P1口的位4 P1口的位5 P1口的位6 & IIC串行时钟线 P1口的位7 & IIC串行数据线 复位 P3口的位0 &串行接口输入 P4口的位3 P3口的位1 &串行接口输出 P3口的位2 &外部中断0 P3口的位3 &外部中断1 P3口的位4 &定时器0外部输入 P3口的位5 &定时器1外部输入 P3口的位6 &外部内存写入信号 P3口的位7 &外部内存读取信号 晶振输出 晶振输入 供电电源地 P4口的位0 P2口的位0 &外部内存地址的位8 P2口的位1 &外部内存地址的位9 P2口的位2 &外部内存地址的位10 P2口的位3 &外部内存地址的位11 P2口的位4 &外部内存地址的位12 P2口的位5 &外部内存地址的位13 P2口的位6 &外部内存地址的位14 P2口的位7 &外部内存地址的位15 程序启发使能 地址锁存使能 P4口的位1 外部程序内存使能 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-M084 Ver D SM8954B 08/07/2015 -7- SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 特殊功能寄存器(SFR) 80h 到 FFh 的地址是 SM8954B 特殊功能寄存器的位置。这些地址只能通过直接寻址的方式寻址。下面这张表给出了 SFRs,部分特殊功能寄存器的位置与通用的 8052 系列相同: Hex\Bin X000 X001 X010 X011 X100 X101 X110 X111 Bin/Hex F8 F0 FF B F7 E8 E0 ACC EF E7 D8 P4 DF D0 PSW C8 C0 T2CON TWSIS T2MOD TWSIA B8 IP IP1 B0 P3 A8 A0 IE P2 IE1 98 SCON SBUF 90 P1 88 80 Hex\Bin TCON P0 X000 RCAP2L TWSIC1 PWMC0 PWMC1 RCAP2H TWSIC2 TL2 TWSITXD D7 CF C7 TH2 TWSIRXD BF SCONF PWDD0 B7 PWMD1 AF A7 IFR P1CON 9F WDTC 97 TMOD SP X001 TL0 DPL X010 TL1 DPH X011 TH0 X100 TH1 RCON X101 DBANK X110 PCON X111 8F 87 Bin/Hex Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 -8- SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 注:SM8954B 特殊功能寄存器的重置值在下表描述 寄存器 地址 重置值 描述 1 2 P0 SP 80H 81H FFH 07H Port 0 Stack Pointer 3 4 5 6 7 8 9 DPL DPH RCON DBANK PCON TCON TMOD 82H 83H 85H 86H 87H 88H 89H 00H 00H 00H 01H 00H 00H 00H Data Pointer 0 low byte Data Pointer 0 high byte RAM Control Data RAM bank select Power Control Timer/Counter Control Timer Mode Control 10 11 12 13 14 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 15 SCON 98H 00H Serial Port 0, Control Register 16 SBUF 99H 00H Serial Port 0, Data Buffer 17 P1CON 9BH 00H P1 control 18 WDTC 9FH 00H Watch Dog Timer Control 19 P2 A0H FFH Port 2 20 IE A8H 00H Interrupt Enable 21 IE1 A9H 00H Interrupt Enable 1 22 IFR AAH 00H Interrupt Flag for read 23 P3 B0H FFH Port 3 24 PWMD0 B3H 00H PWM Data 0 25 PWMD1 B4H 00H PWM Data 1 26 IP B8H 00H Interrupt Priority 27 IP1 B9H 00H Interrupt Priority 1 28 SCONF BFH 02H System Control Register 29 TWSIS C0H 00H TWSI Status 30 TWSIA C1H A0H TWSI Address 31 TWSIC1 C2H 01H TWSI Control 1 32 TWSIC2 C3H 00H TWSI Control 2 33 TWSITXD C4H FFH TWSI Transmit Data 34 TWSIRXD C5H 00H TWSI Receive Data 35 T2CON C8H 00H Timer 2 Control 36 37 T2MOD C9H 00H Timer 2 Mode RCAP2L CAH 00H Timer2 Capture Low 38 RCAP2H CBH 00H Timer2 Capture High 39 TL2 CCH 00H Timer 2, low byte 40 TH2 CDH 00H Timer 2, high byte 41 PSW D0H 00H Program Status Word Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 -9- SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 42 PWMC0 D3H 00H PWM Control 0 43 PWMC1 D4H 00H PWM Control 1 44 P4 D8H xFH Port 4 45 ACC E0H 00H Accumulator 46 B F0H 00H B Register Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 10 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 功能描述 1. 总特征 SM8954B是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详细定义将在以下章节给出。 1.1 嵌入式程序存储器 商用编程器(commercial writer)将程序加载到16K的嵌入式程序存储器中。 1.2 IO 口 SM8954B的I/O口和通用的8052完全兼容,P0口是一个8位漏极开路的双向I/O口,在作输入或者输出高电平时,加上拉 电阻是必要的。P1~P4口具有内部上拉电阻。 1.3 系统控制标志(SCONF) Mnemonic: SCONF 7 6 WDR - 5 - 4 PDWUE 3 - 2 - 1 OME Address: BFh 0 Reset ALEI 02h WDR: 看门狗定时器复位。 当系统被看门狗定时器发生溢位时,WDR 将被设为 1。 使用者可读取 WDR 确认是否曾发生看门狗复位。 PDWUE: 掉电模式唤醒使能位。 设为 1 时始能 INT0/INT1 可唤醒掉电模式的功能。 OME: 外扩的片上 768B 的 SRAM 使能位。 OME = 1,使能片上 768B 的 SRAM。 OME = 0,禁能片上 768B 的 SRAM。 ALEI: ALE 输出使能位。 ALEI = 1,禁止 ALE 输出。 ALEI = 0,允许 ALE 输出。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 11 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 2. 指令设置 所有SM8954B的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表格列出了以SM8954B微控器为核心 的指令集的周期的总结,这里的周期表示为机器周期。 符号 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-M084 Ver D SM8954B 08/07/2015 - 12 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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 字节 1 周期 1 55 2 2 AND indirect RAM to accumulator 56-57 1 2 ANL A,#data ANL direct,A AND immediate data to accumulator AND accumulator to direct byte 54 52 2 2 2 3 ANL direct,#data AND immediate data to direct byte 53 3 4 ORL A,Rn OR register to accumulator 48-4F 1 1 ORL A,direct ORL A,@Ri OR direct byte to accumulator OR indirect RAM to accumulator 45 46-47 2 1 2 2 ORL A,#data OR immediate data to accumulator 44 2 2 ORL direct,A OR accumulator to direct byte 42 2 3 ORL direct,#data XRL A,Rn OR immediate data to direct byte Exclusive OR register to accumulator 43 68-6F 3 1 4 1 XRL A,direct Exclusive OR direct byte to accumulator 65 2 2 XRL A,@Ri Exclusive OR indirect RAM to accumulator 66-67 1 2 XRL A,#data Exclusive OR immediate data to accumulator 64 2 2 XRL direct,A XRL direct,#data Exclusive OR accumulator to direct byte Exclusive OR immediate data to direct byte 62 63 2 3 3 4 CLR A Clear accumulator E4 1 1 CPL A Complement accumulator F4 1 1 RL A RLC A Rotate accumulator left Rotate accumulator left through carry 23 33 1 1 1 1 RR A Rotate accumulator right 03 1 1 RRC A Rotate accumulator right through carry 13 1 1 SWAP A Swap nibbles within the accumulator C4 1 1 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 13 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 14 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 符号 ACALL addr11 表 2-4: Program branches 描述 Absolute subroutine call 代码 xxx11 LCALL addr16 Long subroutine call RET 字节 2 周期 6 12 3 6 from subroutine 22 1 4 RETI AJMP addr11 from interrupt Absolute jump 32 xxx01 1 2 4 3 LJMP addr16 Long iump 02 3 4 SJMP rel Short jump (relative addr.) 80 2 3 JMP @A+DPTR JZ rel Jump indirect relative to the DPTR Jump if accumulator is zero 73 60 1 2 2 3 JNZ rel Jump if accumulator is not zero 70 2 3 JC rel Jump if carry flag is set 40 2 3 JNC JB bit,rel Jump if carry flag is not set Jump if direct bit is set 50 20 2 3 3 4 JNB bit,rel Jump if direct bit is not set 30 3 4 JBC bit,direct rel Jump if direct bit is set and clear bit 10 3 4 CJNE A,direct rel Compare direct byte to A and jump if not equal B5 3 4 CJNE A,#data rel CJNE Rn,#data rel Compare immediate to A and jump if not equal Compare immed. to reg. and jump if not equal B4 B8-BF 3 3 4 4 CJNE @Ri,#data rel Compare immed. to ind. and jump if not equal B6-B7 3 4 DJNZ Rn,rel Decrement register and jump if not zero D8-DF 2 3 DJNZ direct,rel NOP Decrement direct byte and jump if not zero No operation D5 00 3 1 4 1 字节 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-M084 Ver D SM8954B 08/07/2015 - 15 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 3. 存储器结构 SM8954B存储器结构和通用的8051结构相同,它们是作为程序存储器的16KB的嵌入式闪存。 3.1 程序存储器 SM8954B有16KB的嵌入式闪存,如以下图 3-1,可做为通用的程序存储,这16K的地址从$0000 to $3FFF。 3FFF 16K Program Memory space Flash 0000 图 3-1: SM8954B programmable Flash Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 16 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 3.2 数据存储器 SM8954B具有256B Bytes的片上SRAM,如以下 图 3-2,256 Bytes和通用的8052内部存储器结构一样,同时扩大768 字节片上 SRAM 可以访问外部内存寻址(由指令 MOVX)。 02FF Expanded 768 Bytes (Accessed by direct external addressing mode by instruction MOVX) FF FF SFR (Accessed by direct addressing mode only) Higher 128 Bytes (Accessed by indirect addressing mode only) 80 80 7F Lower 128 Bytes (Accessed by direct & indirect addressing mode ) 0000 00 图 3-2: RAM architecture 3.3 数据内存-低 128 字节(00h 到 7Fh) 数据存储器从 00h 到 FFh 的地址和在 8052 中的定义是一样的。 00h 到 7Fh 的地址可通过直接或者间接寻址方式访问。 00h 到 1Fh 是寄存器的空间。 20h 到 2Fh 是位寻址空间。 30h 到 7Fh 是通用的数据存储区。 3.4 数据存储器-高 128 字节(80h 到 FFh) 80h 到 FFh 的地址仅仅能从间接寻址的方式访问,它是一个数据区。 3.5 存储器-扩展的 768 字节($0000 到 $02FF) 从外部地址为 0000h 到 02FFh 是片上扩大的 SRAM 区域,一共768字节。这一区域可以是由访问外部直接寻址模式 (MOVX 指令)。 符号 SCONF RCON DBANK 描述 System Configuration Register Internal RAM Control Register Data Bank Control Register 地址 Bit 7 Bit 6 Bit 3 Bit 2 Bit 1 Bit 0 重置值 BFh WDR - - PDWU E - - OME ALEI 02H 85h - - - - - - RAMS 1 RAMS 0 00H 86h BSE - - - BS3 BS2 BS1 BS0 01H Bit 5 Bit 4 Expanded RAM Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 17 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 符号: SCONF 7 6 WDR - 5 - 4 PDWUE 3 - 2 - 1 OME 地址: BFh 0 Reset ALEI 02H OME: 外扩的片上 768B 的 SRAM 使能位。 设 1 使能片上 768B 的 SRAM。 有两个方法可以存取片上扩展的768B 的 SRAM 。一种为使用MOVX指令,另一种为使用特殊的地址库切换并结合MOV 指令使用。 方法1: 使用MOVX指令 如果OME始能,使用MOVX @DPTR指令,若超过768字节将会自动改为存取外挂的SRAM。如果OME禁能,使用 MOVX @DPTR,IC将完全存取外挂的SRAM。OME默认值为1。 扩展的768B 的 SRAM也可以透过MOVX @Ri指令存取。RCON此功能是在定义扩展内存的页,使用RAMS1、RAMS0 这2个bit去选择哪个page。 符号: RCON 7 6 - 5 - 4 - 3 - 2 - 1 RAMS1 地址: 85h 0 Reset RAMS0 00H RAMS[1:0]: 初始值设定为 00H(page 0) 。 RAM 的一个 page 的资料为 256 字节。 OME 1 1 1 RAMS1 0 0 1 RAMS0 0 1 0 Mapped on-chip expanded RAM address $0000 - $00FF $0100 - $01FF $0200 - $02FF 1 1 1 - 0 x x - Note Mapped to off-chip RAM address {P2 , Ri} Mapped to off-chip RAM address {P2 , Ri} 表3-1 : Mapped address for on-chip expanded RAM Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 18 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 A[9:0] DPTR {RAMS1,RAMS0,@Ri} Bank 2 (256B) MUX {DBANK[3:0],direct address} Bank 1 (256B) 768 Bytes READ Bank 0 (256B) WRITE On-chip 768B expanded RAM OME MOVX @Ri instrcution MOVX @DPTR instrcution DPTR SEL Control Logic Chip selection of on-chip expanded RAM {RAMS1,RAMS0} DBANK[7] 图 3-3: Access on-chip expanded RAM scheme 方法2: 使用MOV指令 此区块映像表格,使用者能设定$040到$07F区块范围,对映到1K RAM的任何地址,以直接寻址方式存取扩展RAM的 (64 byte)资料。 程序范例: 例如,使用者欲将 #30h值写到 RAM 0x101地址,使用DBANK方式映像: MOV SCONF, #02H ; 768 bytes RAM为开启状态 MOV DBANK, #88H ; 开启DBANK,查表二设定$040~$07f区块映像到0x 0100~0x 013f 地址 MOV A, # 30H ; 将 #30H值储存到A MOV 41H, A ; 将 A值写入到0x0101地址 例如,使用者定义RCON切至到01page: MOV RCON, #01H ; 定义RCON切至到01page (0x100~0x1FF) MOV R0,#55H ; R0指到低地址55H MOVX A,@R0 ; 以间接寻址法取得155H内容值 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 19 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 A[9:0] DPTR {RAMS1,RAMS0,@Ri} Bank 12-15 (64B x 4) MUX {DBANK[3:0],direct address} 768 Bytes Bank 8-11 (64B x 4) On-chip 768B expanded RAM READ Bank 4-7 (64B x 4) 1KB memory Space WRITE Bank 0-3 (64B x 4) Scratchpad RAM OME MOVX @Ri instrcution SEL MOVX @DPTR instrcution Control Logic DPTR Chip selection of on-chip expanded RAM and Scratchpad RAM {RAMS1,RAMS0} DBANK[7] 图 3-4: Access on-chip expanded RAM and scratchpad RAM with both in single 1KB addressing space scheme 符号: DBANK 7 6 BSE - 5 - 4 - 3 BS3 2 BS2 1 BS1 Address: 86h 0 Reset BS0 01H BSE: 数据区块选择致能位。设 1 启动数据区块映像功能。 BS[3:0]: 将设定区块 $040~$07F 对映到 1K RAM 的任一个地址。 BSE BS3 BS2 BS1 BS0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 x 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 x 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 x 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 x Mapped window : $40 - $7F Logically addressed range in 1K memory space $000 – $03F $040 – $07F $080 – $0BF $0C0 – $0FF $100 – $13F $140 – $17F $180 – $1BF $1C0 – $1FF $200 – $23F $240 – $27F $280 – $2BF $2C0 – $2FF $300 – $33F $340 – $37F $380 – $3BF $3C0 – $3FF Mapping is off 表 3-2: Bank mapping address Physical address Scratchpad RAM ( $00 – $FF ) Expanded RAM ( $000 – $2FF) Mapping is off Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 20 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 4. CPU结构 SM8954B结构由以下四部分组成: (1) 控制单元 (2) 算法-逻辑单元 (3) 存储器控制单元 (4) RAM 和 SFR 控制单元 SM8954B结构允许接受来自程序存储器的指令并与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-M084 Ver D SM8954B 08/07/2015 - 21 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 22 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 23 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 5. GPIO管脚型态 P0口~P4口是此款微型控制器的通用的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 0 P0.0 地址: 80h Reset FFh 4 P1.4 3 P1.3 2 P1.2 1 P1.1 0 P1.0 地址: 90h Reset FFh 4 P2.4 3 P2.3 2 P2.2 1 P2.1 Address: A0h 0 Reset P2.0 FFh 4 P3.4 3 P3.3 2 P3.2 1 P3.1 Address: B0h 0 Reset P3.0 FFh 4 - 3 P4.3 2 P4.2 1 P4.1 Address: D8h 0 Reset P4.0 xFh P0.7~ 0: Port0 [7] ~ Port0 [0] 符号: P1 7 6 P1.7 P1.6 5 P1.5 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] 符号: P4 7 - 6 - 5 - P4.3~ 0: Port4 [3] ~ Port4 [0] Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 24 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 6. 定时器0 和定时器1 SM8954B有三个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 0 M0 0 Mode Mode0 0 1 1 0 Mode1 Mode2 1 1 Mode3 Function 13bit计数器/定时器, 包含TL0/TL1寄存器的低5 位及TH0/TL1寄存器的全部8位,其TL0/TL1寄 存器的高3位可设置为0。 16 位计数器/定时器。 8 位自动重载的计数器/定时器,自动重载的值 保留在TH0 和TH1。同时TL0 或者TL1 在每个 机器周期内都会递增。当溢出时,将THx 存放 的值装入TLx。 如定时器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-M084 Ver D SM8954B 08/07/2015 - 25 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 26 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 27 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 图 6-4: 模式 3 -两个独立 8 位定时/计数(仅定时器 0) Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 28 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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 Timer 2 Bit 4 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 00h 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 无效。 TR2: 定时器 2 启动/停止控制位,置 1 时启动定时器。 C/ T2 : 定时器2 定时器/计数器选择。 0=内部定时器 12时钟模式为OSC/12;6时钟模式为OSC/6。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 29 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 1=外部事件计数器下降沿触发。 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位重新装载可通过溢出或 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 30 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 T2EX从1到0的跳变实现,此跳变同时将EXF2置位,此跳变同时将EXF2置位,如被使能,则当TF2或EXF2置1时产生中 断。 如图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-M084 Ver D SM8954B 08/07/2015 - 31 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 32 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 33 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 34 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 35 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 36 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 37 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 9. 中断 SM8954B提供7个中断源并带有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 中断 000Bh 1 3 IE1 – 外部中断 1 0013h 2 4 TF1 – 定时器1 中断 001Bh 3 5 RI/TI – 串行口中断 0023h 4 6 TF2/EXF2 – 定时器2 中断 Two Wire Serial Interface 002Bh 5 003Bh 7 7 Interrupt Number *(use Keil C Tool) 0 *参考Keil C用户指南中的有关中断功能使用说明 符号 IE IE1 IP IP1 描述 Interrupt Enable Register Interrupt Enable Register 1 Interrupt Priority Register Interrupt Priority Register 1 地址 Bit 7 Bit 6 Bit 5 Bit 4 Interrupt Bit 3 Bit 2 Bit 1 Bit 0 重置值 A8H EA - ET2 ES ET1 EX1 ET0 EX0 00H A9H - - - - - - ETWSI - 00H B8H - - PT2 PS PT1 PX1 PT0 PX0 00H B9H - - - - - - PTWSI - 00H 3 ET1 2 EX1 符号: IE 7 EA 6 - 5 ET2 4 ES0 1 ET0 0 EX0 地址: A8h Reset 00h EA: EA=0 –禁能所有中断。 EA=1 –使能所有中断。 ET2: ET2=0 –禁能定时器 2 中断。 ET2=1 –使能定时器 2 中断。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 38 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 ES: ES=0 –禁能串行口中断。 ES=1 –使能串行口中断。 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。 符号: IE1 7 - 6 - 5 - 4 - 3 - 2 - 1 ETWSI 0 - 地址: A9h Reset 00h 3 PT1 2 PX1 1 PT0 0 PX0 地址: B8h Reset 00H 0 - 地址: B9h Reset 00H ETWSI: ETWSI =0 –禁能 TWSI 中断。 ETWSI =1 –使能 TWSI 中断。 符号: IP 7 - 6 - 5 PT2 4 PS PT2: 定时器 2 中断优先位,当 PT2=1 时,最高优先权。 PS: 串行口中断优先位,当 PS=1 时候,最高优先权。 PT1: 定时器 1 中断优先位,当 PT1=1 时,最高优先权。 PX1: 外部中断 1 优先位,当 PX1=1 时候,最高优先权。 PT0: 定时器 0 中断优先位,当 PT0=1 时,最高优先权。 PX0: 外部中断 0 优先位,当 PX0=1 时候,最高优先权。 符号: IP1 7 - 6 - 5 - 4 - 3 - 2 - 1 PTWSI PTWSI: TWSI 中断优先位,当 TWSI=1 时候,最高优先权。 IP.x 1 0 Interrupt Priority Table Priority Level 1 (highest) 2 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 39 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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 WDTC WDT time-out reset Refresh WDT Counter WDTEN CLR 图. 10-1: Watchdog timer block diagram 符号 WDTC SCONF 描述 Watchdog timer control register System Control Register 地址 Bit 7 9FH WDTE - CLEAR - - BFH WDR - - PDWUE - Bit 6 Bit 5 Bit 4 Watchdog Timer Bit 3 Bit 2 Bit 1 Bit 0 PS [2:0] - OME 重置值 00H ALEI 02H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 40 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 符号: WDTC 7 6 WDTE - 5 CLEAR 4 - 3 - 2 1 PS [2:0] 0 地址: 9Fh Reset 00H WDTE: 看门狗定时器使能位。 CLEAR: 设置看门狗定时器的清除位。 如果设定为 1,WDT 被清除并重新启动开始计数。 PS[2:0]: 看门狗定时器溢出周期标志位。 符号: SCONF 7 6 WDR - 5 PDWUE 4 - 3 - 2 - 1 OME 地址: BFh 0 Reset ALEI 02H WDR: 看门狗重置旗标。 此旗标于芯片之复位信号是由看门狗重置产生时由硬件自动设置。此旗标可由软件清零。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 41 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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将僅能以硬件重置退出该模式。 符号: SCONF 7 6 WDR - 5 - 4 PDWUE 3 - 2 - 1 OME 地址: BFh 0 Reset ALEI 02H PDWUE: 掉电模式唤醒使能位。 设为 1 时始能 INT0/INT1 可唤醒掉电模式的功能。 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-M084 Ver D SM8954B 08/07/2015 - 42 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 12. 脉宽调制器(PWM) SM8954B有2路PWM通道。可依据PWMCn中的PBS位设定成8位或5位PWM分辨率。 System clock PWMPS (2-bit timer) 4 MUX PWMCLK PWMTB (8-bit timer) COUNT[7:0] 8-bit or 5-bit Logic Comparator CMPOUT PWMOUTn To P1.2 and P1.3 2 { PFS1,PFS0 } PBS ( 1 for 5-bit PWM) PWMDn[7:5] PWMDn[4:0] n=0,1 Figure : PWMn functional block 符号 P1CON PWMC0 PWMC1 PWMD0 PWMD1 描述 P1 Control Register PWM Control Register 0 PWM Control Register 1 PWM Data Register 0 PWM Data Register 1 地址 Bit 7 Bit 6 9BH SDAE SCLE - D3H - - D4H - B3H B4H 符号: P1CON 7 6 SDAE SCLE Bit 3 Bit 2 Bit 1 Bit 0 重置值 - PWM1E PWM0E - - 00H - - - PBS PFS1 PFS0 00H - - - - PBS PFS1 PFS0 00H D0.7 D0.6 D0.5 D0.4 D0.3 D0.2 D0.1 D0.0 00H D1.7 D1.6 D1.5 D1.4 D1.3 D1.2 D1.1 D1.0 00H 5 - Bit 5 Bit 4 PWM 4 - 3 PWM1E 2 PWM0E 1 - 2 PBS 1 PFS1 0 - 地址: 9BH Reset 00h PWM1E: 设 1 可将 P1[3]当 PWM 通道 1 输出。 PWM0E: 设 1 可将 P1[3]当 PWM 通道 0 输出。 符号: PWMC[0:1] 7 6 - 5 - 4 - 3 - 地址: D3h & D4h 0 Reset PFS0 00h PBS: 设 1 时 PWM 为 5 位分辨率。 PFS [1:0]: PWM 时钟除频选择: PFS1 0 0 1 1 PFS0 0 1 0 1 PWM clock divider select 2 4 8 16 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 43 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 符号: PWMD[0:1] 7 6 Dn.7 Dn.6 5 Dn.5 4 Dn.4 3 Dn.3 2 Dn.2 1 Dn.1 地址: B3h & B4h 0 Reset Dn.0 00h n=0 或1。 当PWM设为8位时,Dn.7 ~ Dn.0为8位PWM数值寄存器。 当PWM设为5位时,Dn.4 ~ Dn.0为5位PWM数值寄存器。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 44 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 13. Two-Wire Series Interface (TWSI) 两线串口传输 (TWSI) 相容于IIC规范,可使用SCL(时钟)和SDA(数据)线来联系其它的IIC界面。 符号 P1CON TWSIS TWSIA TWSIC1 TWSIC2 TWSITXD TWSIRXD IFR 描述 P1 Control Register TWSI Status Register TWSI Address Register TWSIC Control Register 1 TWSIC Control Register 2 TWSI TX Data Register TWSI RX Data Register Interrupt Flag Register 地址 Bit 7 Bit 6 Bit 5 TWSI Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 9BH SDAE SCLE - - PWM1 E PWM0 E - - 00H C0H RXIF TXIF TFAIL NAKIF - RXACK MST TXACK 00H C1H ADR.6 ADR.5 ADR.4 ADR.3 ADR.2 ADR.1 ADR.0 C2H TWSIE - - - TWSIF S2 TWSIF S1 C3H MATC H SRW - - Bus Busy RESTA RT ADR MK TWSIF S0 - - MRW 00H C4H TXD.7 TXD.6 TXD.5 TXD.4 TXD.3 TXD.2 TXD.1 TXD.0 FFH C5H RXD.7 RXD.6 RXD.5 RXD.4 RXD.3 RXD.2 RXD.1 RXD.0 00H AAH - - - - - - TWSIIF - 00H 5 - 4 - 符号: P1CON 7 6 SDAE SCLE 3 PWM1E 2 PWM0E 1 - 3 - 2 RXACK 1 MST 0 - 地址: 9Bh Reset 00h SDAE: 设 1 可将 P1[7]当 SDA 脚。 SCLE: 设 1 可将 P1[6]当 SCL 脚。 符号: TWSIS 7 6 RXIF TXIF 5 TFAIL 4 NAKIF 地址: C0h 0 Reset TXACK 00h RXIF: 数据接收中断标志位,在 TWSIRXD 载入一个新的接收数据时被置位。 TXIF: 数据传输中断标志位,当所有位于转换寄存器中的位数据被传输时,该位被置 位。 TFAIL: 当传输数据失败时此标志会设为 1。(仅主机模式) NAKIF: NACK 中断标志位。(仅主机模式) RXACK: 接收确认位。置零,这意味着一个确认信号已经收到在完成 8 位数据传输总线 上后。(只读) MST: 设 1 工作在主机模式。 TXACK: 传输确认位。当收到完整的 8 位数据,此位将设置(NACK) 或清除(ACK) 并传输 到主机显示接收状态。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 45 - A0H 01H SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 符号: TWSIA 7 6 ADR.6 ADR.5 5 ADR.4 4 ADR.3 3 ADR.2 2 ADR.1 地址: C1h 0 Reset ADRMK A0h 1 ADR.0 ADR[6:0]: 从机地址寄存器。 ADRMK: 地址屏蔽位。若设为 1 仅比对 4 位的 MSB,ADR.2 – ADR.0 将被排除,指比对 ADR.6-ADR.3 是否正确。 符号: TWSIC1 7 6 TWSIE - 5 - 4 - 3 BusBusy 2 TWSIFS2 1 TWSIFS1 地址: C2h 0 Reset TWSIFS0 01h TWSIE: TWSI 功能始能位。 BusBusy: 当 TWSI 总线被侦测到“START”条件,这个标志位将会被设为 1。当 TWSI 总线 被侦测到“STOP” 条件,这个标志位将会被清除为 0。(只读) TWSIFS[2:0]: TWSI 时钟速率选择。(仅主机模式) SCL 频率 Xtal/32 Xtal/64 (默认值) Xtal/128 Xtal/256 Xtal/512 Xtal/1024 Xtal/2048 Xtal/4096 TWSIFS[2:0] 000 001 010 011 100 101 110 111 符号: TWSIC2 7 6 MATCH SRW 5 - 4 - 3 RESTART 2 - 地址: C3h 0 Reset MRW 00h 1 - MATCH: 当来自主机模式方的接收地址匹配时,该位将被硬件置位。(只读 & 仅从机模 式) SRW: 当从机为传送时,该标志位会设为 1。当从机为接收时,该标志位会设为 0。 (只读 & 仅从机模式) RESTART: 当主机传出“START” 条件,主机接收到 ACK 讯号后,该标志位将设为 1。如果 NAKIF 被设为 1 时(即接收到 NAK 讯号),该标志位将被清除为 0。(仅主机 模式) MRW: 它用来告诉从属模式中将来的通信的方向。如设置为 1,模块在主模式中为接收 方,如是 0,模块在主模式中为传输方。(仅主机模式) 符号: TWSITXD 7 6 TXD.7 TXD.6 5 TXD.5 4 TXD.4 3 TXD.3 2 TXD.2 1 TXD.1 0 TXD.0 地址: C4h Reset FFh TWSITXD: 在传输模式中,该字节通过该 SDA 被转换。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 46 - SM8954B 内嵌 16KB 的 Flash 和 1KB RAM 的 8 位控制器 符号: TWSIRXD 7 6 RXD.7 RXD.6 5 RXD.5 4 RXD.4 3 RXD.3 2 RXD.2 1 RXD.1 0 RXD.0 1 TWSIIF 0 - 地址: C5h Reset 00h TWSIRXD: 在接收(读)模式中,接收的字节存储于此。 符号: IFR 7 - 6 - 5 - 4 - 3 - 2 - 地址: AAh Reset 00h TWSIIF: 若 RXIF、TXIF、TFIF 与 NAKIF 任一个标志位设为 1。(只读) Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M084 Ver D SM8954B 08/07/2015 - 47 - SM8954B 内嵌 16KB 的 Flash 和 1KB 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-M084 Ver D SM8954B 08/07/2015 - 48 -