目录 1 总体描述 主要功能... 1 目录 管脚定义 管脚配置 管脚定义 内部方框图 FLASH ROM 和 SRAM 结构 flash rom Customer

Similar documents
SC92F742X

W77E58中文手册

92 系列产品命名规则 名称 SC 92 F X P 32 R 序号 序号 Sinone Chip 缩写 产品系列名称 产品类型 (F:Flash MCU) 系列号 :7:GP 系列,8:TK 系列 含义 ROM

92 系列产品命名规则 名称 SC 92 F X P 48 R 序号 序号 Sinone Chip 缩写 产品系列名称 产品类型 (F:Flash MCU) 系列号 :7:GP 系列,8:TK 系列 含义 ROM

SinOne SC92F7447B/7446B/7445B 超高速 1T 8051 内核 Flash MCU,1 Kbytes SRAM,16 Kbytes Flash,128 bytes 独立 EEPROM,12 位 ADC,1 个模拟比较器,LCD/LED Driver,12 位 PWM,3 个

92 系列产品命名规则 名称 SC 92 F X P 48 R 序号 序号 Sinone Chip 缩写 产品系列名称 产品类型 (F:Flash MCU) 系列号 :7:GP 系列,8:TK 系列 含义 ROM

DPJJX1.DOC

SC92F7490

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

7688使用手冊V10.doc

SC91F711v1.2

SC91F844

SH79F161B I/O 1. SH79F161B SH79F161B IO 30 I/O I/O 4 I/O SH79F161B 30 I/O Px I/O PxCRy I/O PxPCRy x = 0-3 y = IO PxCRy IO x=0-3 y=0-7

SC91F844

1

Microsoft Word - 專題封面.doc

目 录

128K Flash EPROM 的程序?\(Bank=64K\) 切?

STC15W4K60S4系列增强型PWM波形发生器应用

µPSD3000 系列

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

Microsoft Word - 第1章 MCS-51单片机基础.docx

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

2 PIC PIC 1 / CPU PIC MCU PIC RC

at89S52.doc

12232A LED LED LED EL EL CCFL EL CCF

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS

5. P0.0 P0.7 P0 4 2 P0.3~P0.6 ADC P1.0 P P1.2(SCL) P1.3(SDA) P1.5 RST P1.5 2 XTAL1(P2.1) 1 XTAL0(P2.0) 2 XTAL1 I/O VDD VSS 6. H5815 4T 16K Flas

General Description: Preliminary TTP916 Consumer IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC

四位微控制器ML64168_ _.doc

79F161 V0.2

USB解决方案.ppt

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

CH559指令周期.doc

專題最終版.doc

Ps22Pdf

51 C 51 isp 10 C PCB C C C C KEIL

部分编号派生器件编号 (P89CXX) 操作频率, 最大 (V) 温度范围 (B) 封装 (AA,BB,PN) P89C51 FLASH U=33MHz B=0 70 AA=PLCC P89C52 FLASH F= BB=PQFP P89C54 FLASH PN=PDIP P89C58

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模

从MCS51向AVR的快速转换.PDF

单片机原理及应用实验指导书.doc

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

untitled

ICD ICD ICD ICD ICD

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

RESET OSCO OSCI OSC CPU WDTEN RC RESET PRESCALER PORTA (4-BITS) WATCHDOG TIMER Power on PORTB (4-BITS) PORTA [0:3] PORTB [0:3] LPD PORTC (4-BITS) LPDO

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax)

SPMC75F2413A_EVM_使用说明_V1.2.doc

DATASHEET SEARCH SITE ==

1 TPIS TPIS 2 2

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7

untitled

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

Microsoft Word - ~ doc

MPC89LE51_52_53_54_58_515

《手机维修原理及维修实例详解》目录

Applications

79F161 V0.2

2005.book

79F161 V0.2

FM1935X智能非接触读写器芯片

Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15 LM361 LM361 Zlg

AT89C2051中文资料.doc

79F161 V0.2

MPC89LE51_52_53_54_58_515

第一章

微處理機期末專題

单片机应用编程技巧(专家:邓宏杰)

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc

Microsoft PowerPoint - 第一章(07版).PPT

untitled

() () () () () () () () DDRAM () II

untitled

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

33023A.book(31026A_cn.fm)

MA816_DS_CN_V005

SH69P848A 2K 一次性编程 10 位 ADC 型 4 位单片机 特性 基于 SH6610D 的 10 位 ADC 型 4 位单片机 OTPROM:2K X 16 位 RAM:253 X 4 位 - 61 个系统控制寄存器 个数据存储器 工作电压 : - f OSC = 30kH

另外,AT89S52 可降至 0Hz 静态逻辑操作, 支持 2 种软件可选择节电模式 空闲模式下,CPU 停止工作, 允许 RAM 定时器/ 计数器 串口 中断继续工作 掉电保护方式下,RAM 内容被保存, 振荡器被冻结, 单片机一切工作停止, 直到下一个中断或硬件复位为止 8 位微控制器 8K 字

DS_MM32P021_Ver1.9.0

第5章:汇编语言程序设计

DESCRIPTION


Microsoft Word - BL5372_UMAN_V1.1.doc

MPC82G516A 8 位微控制器 目 录 图表清单... 5 表格清单 综述 功能 方框图 引脚 引脚结构 引脚定义 引脚功能重映射..

System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and se

Microsoft Word - em78 sub program.doc

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

untitled

一、概述

Microsoft Word - ~ doc

MSP430单片机简介

为 边 数 的 两 倍, 显 然 必 为 偶 数 而 ii 和 iii 则 不 一 定 正 确, 如 : 对 顶 点 数 N 1 无 向 完 全 图 不 存 在 一 个 顶 点 的 度 为 1, 并 且 边 数 与 顶 点 数 的 差 要 大 于 1 8. 考 查 m 阶 B- 树 的 定 义 A

Transcription:

高速 1T 8051 内核 Flash MCU,1 Kbytes SRAM,16 Kbytes Flash,128 bytes 独立 EEPROM, 4 档位水位检测模块,12 位 ADC, 六路 10 位 PWM,3 个定时器, 乘除法器,UART,SSI, Check Sum 校验模块 1 总体描述 ( 以下简称 SC92WL46X) 是一颗增强型的高速 1T 8051 内核工业级集成水位检测功能的 Flash 微控制器, 指令系统完全兼容传统 8051 产品系列 SC92WL46X 集成有 4 档位水位检测模块,16 Kbytes Flash ROM 1 Kbytes SRAM 128 bytes EEPROM 最多 26 个 GP I/O 13 个 IO 可外部中断 3 个 16 位定时器 11 路 12 位高精度 ADC 6 路独立 10 位 PWM 内部 1% 高精度高频 12/6/2MHz 振荡器和 4% 精度低频 128K 振荡器 可外接晶体振荡器 一个 UART, 一个 UART/SPI/IIC 三选一通信口 SSI 为提高可靠性及简化客户电路, SC92WL46X 内部也集成有 4 级可选电压 LVR 2.4V 基准 ADC 参考电压等高可靠电路 SC92WL46X 具有非常优异的抗干扰性能和性能极好的水位检测性能, 非常适合应用于各种使用场合的水位检测和主控控制, 如大小智能家电和智能家居 物联网 安防等需要水位检测的应用领域 2 主要功能 工作电压 :2.4V~5.5V 工作温度 :-40 ~ 85 封装 : SC92WL463 (SOP28/TSSOP28) SC92WL462 (SOP20/TSSOP20) SC92WL461 (SOP16) 内核 :1T 8051 Flash ROM:16 Kbytes Flash ROM(MOVC 禁止寻址 0000H~00FFH) 可重复写入 1 万次 IAP: 可 code option 成 0K 0.5K 1K 或 16K EEPROM:128 bytes, 无需擦除,10 万次写入,10 年以上保存寿命 SRAM: 内部 256 bytes+ 外部 768 bytes 系统时钟 (fsys): 内建高频 24MHz 振荡器 (fhrc) 作为系统时钟源时,fSYS 可通过编程器选择设定为 12/6/2MHz 频率误差 : 跨越 (3.0V~5.5V) 及 (-20 ~ 85 ) 应 用环境, 不超过 ±1% 内置高频晶体振荡器电路 可外接 2~16MHz 振荡器 作为系统时钟源时,fSYS 可通过编程器选择使用外接晶振 /1 /2 /4 /12 这四种分频中的一种 IC 系统时钟 (fsys) 对应的工作电压范围 >12MHz @2.9~5.5V 12MHz @2.4~5.5V 内建低频 128kHz LRC 振荡器 : 可作为 Base Timer 的时钟源, 可唤醒 STOP 可作为 WDT 的时钟源 频率误差 : 跨越 (4.0V ~ 5.5V) 及 (-20 ~ 85 ) 应用环 境, 频率误差不超过 ±4% 低电压复位 (LVR): 复位电压有 4 级可选 : 分别是 :4.3V 3.7V 2.9V 2.3V 缺省值为用户烧写 Code Option 所选值 Flash 烧写和仿真 : 2 线 JTAG 烧写和仿真接口 中断 (INT): Timer0,Timer1,Timer2,INT0~2,ADC,PWM, UART,SSI,Base Timer,Water Level 共 12 个中断源 外部中断有 3 个中断向量, 共 13 个中断口, 全部可设上升沿 下降沿 双沿中断 两级中断优先级可设 数字外围 : 最大 26 个双向可独立控制的 I/O 口, 可独立设定上拉电阻 P0 P2 口源驱动能力分四级控制 全部 IO 具有大灌电流驱动能力 (70mA) 11 位 WDT, 可选时钟分频比 3 个标准 80C51 定时器 Timer0 Timer1 和 Timer2 Timer2 可实现 Capture 功能 6 路共用周期 单独可调占空比的 10 位 PWM, 可同时输出三组互补带死区的 PWM 波形 5 个 IO 可作为 1/2 BIAS 的 LCD COM 输出 1 个独立 UART 通信口 ( 可切换 IO 口 ) 1 个 UART/SPI/IIC 三选一通讯口 SSI( 可切换 IO 口 ) 集成 16 16 位硬件乘除法器 模拟外围 : 水位检测模块 : 高灵活度开发软件库支持, 低开发难度 最多支持 4 档位水位检测功能 11 路 12 位 ±2LSB ADC 内建基准的 2.4V 参考电压 ADC 的参考电压有 2 种选择, 分别是 VDD 以及内部 2.4V 内部一路 ADC 可直接测量 VDD 电压 可设 ADC 转换完成中断 省电模式 : IDLE Mode, 可由任何中断唤醒 STOP Mode, 由 INT0~2 BaseTimer 唤醒 Page 1 of 88 V0.3

目录 1 总体描述... 1 2 主要功能... 1 目录... 2 3 管脚定义... 6 3.1 管脚配置... 6 3.2 管脚定义... 7 4 内部方框图... 10 5 FLASH ROM 和 SRAM 结构... 11 5.1 flash rom... 11 5.2 Customer Option 区域 ( 用户烧写设置 )... 12 5.2.1 Option 相关 SFR 操作说明... 13 5.3 sram... 14 5.3.1 内部 256 bytes SRAM... 14 5.3.2 外部 768 bytes SRAM... 15 6 特殊功能寄存器 (SFR)... 16 6.1 SFR 映像... 16 6.2 SFR 说明... 17 6.2.1 8051 CPU 内核常用特殊功能寄存器介绍... 18 7 电源 复位和时钟... 20 7.1 电源电路... 20 7.2 上电复位过程... 20 7.2.1 复位阶段... 20 7.2.2 调入信息阶段... 20 7.2.3 正常操作阶段... 20 7.3 复位方式... 20 7.3.1 外部 RST 复位... 20 7.3.2 低电压复位 LVR... 20 7.3.3 上电复位 POR... 21 7.3.4 看门狗复位 WDT... 21 7.3.5 复位初始状态... 22 Page 2 of 88 V0.3

7.4 高频系统时钟电路... 23 7.5 低频振荡器及低频时钟定时器... 25 7.6 STOP 模式和 IDLE 模式... 25 8 中央处理单元 CPU 及指令系统... 26 8.1 CPU... 26 8.2 寻址方式... 26 8.2.1 立即寻址... 26 8.2.2 直接寻址... 26 8.2.3 间接寻址... 27 8.2.4 寄存器寻址... 27 8.2.5 相对寻址... 27 8.2.6 变址寻址... 27 8.2.7 位寻址... 27 9 INTERRUPT 中断... 28 9.1 中断源 向量... 28 9.2 中断结构图... 29 9.3 中断优先级... 30 9.4 中断处理流程... 30 9.5 中断相关 SFR 寄存器... 30 10 定时器 TIMER0 TIMER1... 34 10.1 T0 和 T1 相关特殊功能寄存器... 34 10.2 T0 工作模式... 36 10.3 T1 工作模式... 38 11 定时器 TIMER2... 39 11.1 T2 相关特殊功能寄存器... 39 11.2 T2 工作模式... 41 12 乘除法器... 45 13 PWM... 46 13.1 PWM 结构框图... 46 13.2 PWM 相关 SFR 寄存器... 47 Page 3 of 88 V0.3

13.3 PWM 通用配置寄存器... 47 13.4 PWM 独立模式... 49 13.4.1 PWM 独立模式框图... 49 13.4.2 PWM 独立模式占空比配置... 50 13.5 PWM 互补模式... 51 13.5.1 PWM 互补模式框图... 51 13.5.2 PWM 互补模式占空比配置... 52 13.5.3 PWM 互补模式死区时间配置... 52 13.5.4 PWM 死区输出波形... 53 13.6 PWM 波形及用法... 54 14 GP I/O... 56 14.1 GPIO 结构图... 56 14.2 I/O 端口相关寄存器... 57 15 软件 LCD 驱动... 59 15.1 软件 LCD 驱动相关寄存器... 59 16 UART0... 59 16.1 串口通信的波特率... 60 17 SPI/TWI/UART 三选一串行接口 SSI... 61 17.1 SPI... 61 17.1.1 SPI 操作相关寄存器... 61 17.1.2 信号描述... 63 17.1.3 工作模式... 63 17.1.4 传送形式... 64 17.1.5 出错检测... 65 17.2 TWI... 65 17.2.1 信号描述... 66 17.2.2 工作模式... 66 17.2.3 操作步骤... 68 17.3 UART1... 68 18 模数转换 ADC... 70 18.1 ADC 相关寄存器... 70 18.2 ADC 转换步骤... 72 19 水位检测模块... 74 Page 4 of 88 V0.3

20 EEPROM 及 IAP 操作... 74 20.1 EEPROM / IAP 操作相关寄存器... 74 20.2 EEPROM / IAP 操作流程... 76 20.2.1 128 bytes 独立 EEPROM 操作例程... 76 20.2.2 16 Kbytes CODE 区域 IAP 操作例程... 77 21 CHECK SUM 模块... 78 21.1 check sum 校验操作相关寄存器... 78 22 电气特性... 79 22.1 极限参数... 79 22.2 推荐工作条件... 79 22.3 直流电气特性... 79 22.4 交流电气特性... 80 22.5 ADC 电气特性... 81 23 订购信息... 82 24 封装信息... 83 25 规格更改记录... 88 Page 5 of 88 V0.3

3 管脚定义 3.1 管脚配置 特别说明 :SC92WL46X 的 WL20/WL21 与 WL 调试通信口复用, 若需使用 WL 调试功能, 请尽量避免使用 WL20/WL21! VDD 1 CMOD/P1.0 2 VSS 3 OSCI/P5.1 4 OSCO/P5.0 5 RST/WL22/INT01/P1.1 6 tck/wl21/rx0/t0/int02/p1.2 7 tdio/wl20/tx0/t1/int03/p1.3 8 WL19/AIN9/INT10/P1.4 9 WL18/AIN8/INT11/P1.5 10 28 27 26 25 24 23 22 21 20 19 WL17/AIN7/INT12/P1.6 11 18 WL16/AIN6/INT13/P1.7 12 17 WL15/AIN5/PWM5/P2.7 SC92WL463 13 16 WL14/AIN4/PWM4/P2.6 14 15 VDD 1 CMOD/P1.0 2 VSS 3 RST/WL22/INT01/P1.1 4 tck/wl21/rx0/t0/int02/p1.2 5 tdio/wl20/tx0/t1/int03/p1.3 6 WL19/AIN9/INT10/P1.4 7 WL18/AIN8/INT11/P1.5 8 WL15/AIN5/PWM5/P2.7 9 WL14/AIN4/PWM4/P2.6 10 SC92WL463 管脚配置图 SC92WL462 20 19 18 17 16 15 14 13 12 11 P0.0/PWM0/COM0/WL0 P0.1/PWM1/COM1/WL1 P0.2/PWM2/COM2/WL2 P0.3/COM3/WL3 P0.4/INT20/COM4/WL4 P0.5/INT21/SCK/WL5 P0.6/INT22/T2EX/WL6 P0.7/INT23/T2/WL7 P2.0/INT24/MOSI/TX1/SDA/WL8 P2.1/INT25/MISO/RX1/WL9 P2.2/AIN0/WL10 P2.3/AIN1/WL11 P2.4/AIN2/WL12 P2.5/PWM3/AIN3/WL13 P0.0/PWM0/COM0/WL0 P0.1/PWM1/COM1/WL1 P0.2/PWM2/COM2/WL2 P0.3/COM3/WL3 P0.4/INT20/COM4/WL4 P0.5/INT21/SCK/WL5 P2.0/INT24/MOSI/TX1/SDA/WL8 P2.1/INT25/MISO/RX1/WL9 P2.4/AIN2/WL12 P2.5/PWM3/AIN3/WL13 SC92WL462 管脚配置图 Page 6 of 88 V0.3

VDD 1 16 P0.0/PWM0/COM0/WL0 CMOD/P1.0 VSS RST/WL22/INT01/P1.1 tck/wl21/rx0/t0/int02/p1.2 tdio/wl20/tx0/t1/int03/p1.3 2 3 4 5 6 SC92WL461 15 14 13 12 11 P0.1/PWM1/COM1/WL1 P0.5/INT21/SCK/WL5 P2.0/INT24/MOSI/TX1/SDA/WL8 P2.1/INT25/MISO/RX1/WL9 P2.4/AIN2/WL12 WL19/AIN9/INT10/P1.4 7 10 P2.5/PWM3/AIN3/WL13 WL18/AIN8/INT11/P1.5 8 9 P2.6/PWM4/AIN4/WL14 SC92WL461 管脚配置图 3.2 管脚定义 管脚编号 28PIN 20PIN 16PIN 管脚名称管脚类型功能说明 1 1 1 VDD Power 电源 2 2 2 P1.0/CMOD I/O P1.0: GPIO P1.0 CMOD: Water Level 外接电容 3 3 3 VSS Power 接地 4 - - P5.1/OSCI I/O P5.1: GPIO P5.1 OSCI: 外接晶振输入脚 5 - - P5.0/OSCO I/O P5.0: GPIO P5.0 OSCO: 外接晶振输出脚 6 4 4 P1.1/INT01/WL22/RST I/O P1.1: GPIO P1.1 INT01: 外部中断 0 的输入 1 WL22: WL 的通道 22 RST : 外部复位引脚 7 5 5 P1.2/INT02/T0/RX0/WL2 I/O P1.2: GPIO P1.2 INT02: 外部中断 0 的输入 2 1/tCK T0: 计数器 0 外部输入 RX0: UART0 接收 WL21: WL 的通道 21, 若需使用 WL 调试功能, 请尽量避免使用此 WL 通道! tck: 烧录和仿真口时钟线 8 6 6 P1.3/INT03/T1/TX0/WL2 I/O P1.3: GPIO P1.3 INT03: 外部中断 0 的输入 3 0/tDIO T1: 计数器 1 外部输入 TX0: UART0 发送 WL20: WL 的通道 20, 若需使用 WL 调试功能, 请尽量避免使用此 WL 通道! tdio: 烧录和仿真口数据线 9 7 7 P1.4/INT10/AIN9/WL19 I/O P1.4: GPIO P1.4 INT10: 外部中断 1 的输入 0 AIN9: ADC 输入通道 WL19: WL 的通道 19 10 8 8 P1.5/INT11/AIN8/WL18 I/O P1.5: GPIO P1.5 INT11: 外部中断 1 的输入 1 AIN8: ADC 输入通道 8 WL18: WL 的通道 18 11 - - P1.6/INT12/AIN7/WL17 I/O P1.6: GPIO P1.6 Page 7 of 88 V0.3

INT12: 外部中断 1 的输入 2 AIN7: ADC 输入通道 7 WL17: WL 的通道 17 12 - - P1.7/INT13/AIN6/WL16 I/O P1.7: GPIO P1.7 INT13: 外部中断 1 的输入 3 AIN6: ADC 输入通道 6 WL16: WL 的通道 16 13 9 - P2.7/PWM5/AIN5/WL15 I/O P2.7: GPIO P2.7 PWM5: PWM5 输出口 AIN5: ADC 输入通道 5 WL15: WL 的通道 15 14 10 9 P2.6/PWM4/AIN4/WL14 I/O P2.6: GPIO P2.6 PWM4: PWM4 输出口 AIN4: ADC 输入通道 4 WL14: WL 的通道 14 15 11 10 P2.5/PWM3/AIN3/WL13 I/O P2.5: GPIO P2.5 PWM3: PWM3 输出口 AIN3: ADC 输入通道 3 WL13: WL 的通道 13 16 12 11 P2.4/AIN2/WL12 I/O P2.4: GPIO P2.4 AIN2: ADC 输入通道 2 WL12: WL 的通道 12 17 - - P2.3/AIN1/WL11 I/O P2.3: GPIO P2.3 AIN1: ADC 输入通道 1 WL11: WL 的通道 11 18 - - P2.2/AIN0/WL10 I/O P2.2: GPIO P2.2 AIN0: ADC 输入通道 0 WL10: WL 的通道 10 19 13 12 P2.1/INT25/MISO/RX1/W I/O P2.1: GPIO P2.1 INT25: 外部中断 2 的输入 5 L9 MISO: SPI 主输入从输出 RX1: UART1 接收 WL9: WL 的通道 9 20 14 13 P2.0/INT24/MOSI/TX1/S I/O P2.0: GPIO P2.0 INT24: 外部中断 2 的输入 4 DA/WL8 MOSI: SPI 主输出从输入 TX1: UART1 发送 SDA: TWI 的 SDA WL8: WL 的通道 8 21 - - P0.7/INT23/T2/WL7 I/O P0.7: GPIO P0.7 INT23: 外部中断 2 的输入 3 T2: 计数器 2 外部输入 WL7: WL 的通道 7 22 - - P0.6/INT22/T2EX/WL6 I/O P0.6: GPIO P0.6 INT22: 外部中断 2 的输入 2 T2EX: 定时器 2 外部捕获信号输入 WL6: WL 的通道 6 23 15 14 P0.5/INT21/SCK/WL5 I/O P0.5: GPIO P0.5 INT21: 外部中断 2 的输入 1 SCK: SPI 及 TWI 的 SCK WL5: WL 的通道 5 24 16 - P0.4/INT20/COM4/WL4 I/O P0.4: GPIO P0.4 INT20: 外部中断 2 的输入 0 COM4: LCD 驱动公共端 COM4 WL4: WL 的通道 4 25 17 - P0.3/COM3/WL3 I/O P0.3: GPIO P0.3 COM3: LCD 驱动公共端 COM3 WL3: WL 的通道 3 Page 8 of 88 V0.3

26 18 - P0.2/PWM2/COM2/WL2 I/O P0.2: GPIO P0.4 PWM2: PWM2 输出口 COM2: LCD 驱动公共端 COM2 WL2: WL 的通道 2 27 19 15 P0.1/PWM1/COM1/WL1 I/O P0.1: GPIO P0.1 PWM1: PWM1 输出口 COM1: LCD 驱动公共端 COM1 WL1: WL 的通道 1 28 20 16 P0.0/PWM0/COM0/WL0 I/O P0.0: GPIO P0.0 PWM0: PWM0 输出口 COM0: LCD 驱动公共端 COM0 WL0: WL 的通道 0 Page 9 of 88 V0.3

4 内部框图 LVD LVR Controller reset Internal 256 bytes RAM 128kHz LRC WDT WAKECNT Controller External 768 bytes RAM 2~16MHz X OSC 128 bytes EEPROM HRC Regulator HRC Voltage Reference 24MHz HRC Clock Controller clock 2.4V REG BandGap Voltage Reference ADC LDO & Power Manager ADC Controller UART SPI TWI UART TIMER0 1T 8051 CORE 16 Kbytes Program ROM (Flash) TIMER1 Water level Sensor TIMER2 PWM I/O INT IO PADS Interrupt Interrupt Controller SC92WL46X BLOCK DIAGRAM Page 10 of 88 V0.3

5 FLASH ROM 和 SRAM 结构 SC92WL46X 的 Flash ROM 和 SRAM 结构如下 : 用户 ID 区域 7Fh 00h 3FFFh 0000h 5.1 FLASH ROM EEPROM Flash ROM For Program 02FFh 0000h FFh 80h 7Fh 00h Flash ROM 和 SRAM 结构图 外部 RAM ( 通过 MOVX/DPTR 寻址 ) RAM ( 间接寻址 ) SFR ( 直接寻址 ) RAM ( 直接寻址或间接寻址 ) SC92WL46X 有 16 Kbytes 的 Flash ROM,ROM 地址为 0000H~3FFFH 此 16 Kbytes Flash ROM 可反复写入 1 万次, 可通过 SinOne 提供的专用 ICP 烧写器 (SOC PRO52/DPT52/SC LINK) 来进行编程及擦除 地址为 0000H~00FFH 地址的 256 bytes 区间 MOVC 指令不可寻址 EEPROM 为独立于 16 Kbytes ROM 之外的一块区间, 其地址为 00H~7FH, 可在程序中对其进行单 byte 读写操作, 具体操作方法参考 21 EEPROM 及 IAP 操作 用户 ID 区域 : 出厂时写入用户 ID, 用户只可对其进行读操作, 具体操作方式参考 21 EEPROM 及 IAP 操作 SC92WL46X 的 16 Kbytes Flash ROM 能提供查空 BLANK 编程 PROGRAM 校验 VERIFY 和擦除 ERASE 功能, 但不提供读取 READ 的功能 此 Flash ROM 和 EEPROM 通常写入前无需进行擦除操作, 直接写入数据即可实现新数据的覆盖 SC92WL46X 的 Flash ROM 通过 tdio tck VDD VSS 来进行编程, 具体连接关系如下 : Page 11 of 88 V0.3

MCU SOC PRO52 SOC DPT52 SC LINK VDD tck tdio VSS VDD CLK DIO GND 用户应用电路 Jumper ICP 模式 Flash Writer 编程连接示意图 5.2 CUSTOMER OPTION 区域 ( 用户烧写设置 ) SC92WL46X 内部有单独的一块 Flash 区域用于保存客户的上电初始值设置, 此区域称为 Code Option 区域 用户在烧写 IC 时将此部分代码写入 IC 内部,IC 在复位初始化时, 就会将此设置调入 SFR 作为初始设置 Option 相关 SFR 操作说明 : Option 相关 SFR 的读写操作由 OPINX 和 OPREG 两个寄存器进行控制, 各 Option SFR 的具体位置由 OPINX 确定, 如下表所示 : 符号地址说明 7 6 5 4 3 2 1 0 OP_HRCR 83H@FFH 系统时钟改变寄存器 OP_HRCR[7:0] OP_CTM0 C1H@FFH Customer Option 寄存器 0 ENWDT ENXTL SCLKS[1:0] DISRST DISLVR LVRS[1:0] OP_CTM1 C2H@FFH Customer Option 寄存器 1 VREFS XTLHF - - IAPS[1:0] - - OP_HRCR (83H@FFH) 系统时钟改变寄存器 ( 读 / 写 ) 符号 OP_HRCR[7:0] 读 / 写 读 / 写 上电初始值 n n n n n n n n 位编号位符号说明 7~0 OP_HRCR[7:0] 内部高频 RC 频率调校 中心值 10000000b 对应 HRC 中心频率, 数值变大频率加快, 数值变小 频率变慢 OP_CTM0 (C1H@FFH) Customer Option 寄存器 0( 读 / 写 ) 符号 ENWDT ENXTL SCLKS[1:0] DISRST DISLVR LVRS[1:0] 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 上电初始值 n n n n n n Page 12 of 88 V0.3

7 ENWDT WDT 开关 0:WDT 无效 1:WDT 有效 ( 但 IC 在执行 IAP 过程中 WDT 停止计数 ) 6 ENXTL 外部高频晶振选择开关 0: 外部高频晶振关闭,P5.0 P5.1 有效 ; 1: 外部高频晶振打开,P5.0 P5.1 无效 5~4 SCLKS[1:0] 系统时钟频率选择 : 00: 保留 ; 01: 系统时钟频率为高频振荡器频率除以 2; 10: 系统时钟频率为高频振荡器频率除以 4; 11: 系统时钟频率为高频振荡器频率除以 12 3 DISRST IO/RST 复位切换控制 0 :P1.1 当复位脚使用 1 :P1.1 当正常的 I/O 管脚使用 2 DISLVR LVR 使能设置 0:LVR 正常使用 1:LVR 无效 1~0 LVRS [1:0] LVR 电压选择控制 11:4.3 V 复位 10:3.7V 复位 01:2.9V 复位 00:2.3V 复位 OP_CTM1 (C2H@FFH) Customer Option 寄存器 1( 读 / 写 ) 符号 VREFS XTLHF - - IAPS[1:0] - - 读 / 写读 / 写读 / 写 - - 读 / 写读 / 写 - - 上电初始值 n n x x n n x x 7 VREFS 参考电压选择 ( 初始值从 Code Option 调入, 用户可修改设置 ) 0: 设定 ADC 的 VREF 为 VDD 1: 设定 ADC 的 VREF 为内部准确的 2.4V 6 XTLHF 外接晶振控制模式寄存器 0: 外接晶振振荡频率 <12M 1: 外接晶振振荡频率 12M 3~2 IAPS[1:0] IAP 空间范围选择 00: Code 区域禁止 IAP 操作, 仅 EEPROM 区域可作为数据存储使用 01: 最后 0.5K Code 区域允许 IAP 操作 (3E00H~3FFFH) 10: 最后 1K Code 区域允许 IAP 操作 (3C00H~3FFFH) 11: 全部 Code 区域允许 IAP 操作 (0000H~3FFFH) 5~4,1~0 - 保留 5.2.1 OPTION 相关 SFR 操作说明 Option 相关 SFR 的读写操作由 OPINX 和 OPREG 两个寄存器进行控制, 各 Option SFR 的具体位置由 OPINX 确定, 各 Option SFR 的写入值由 OPREG 确定 : 符号地址说明上电初始值 OPINX FEH Option 指针 OPINX[7:0] 00000000b OPREG FFH Option 寄存器 OPREG[7:0] nnnnnnnnb 操作 Option 相关 SFR 时 OPINX 寄存器存放相关 OPTION 寄存器的地址,OPREG 寄存器存放对应的值 Page 13 of 88 V0.3

例如 : 要将 OP_HRCR 配置为 0x01, 具体操作方法如下 : C 语言例程 : OPINX = 0x83; // 将 OP_HRCR 的地址写入 OPINX 寄存器 OPREG = 0x01; // 对 OPREG 寄存器写入 0x01( 待写入 OP_HRCR 寄存器的值 ) 汇编例程 : MOV OPINX,#83H ; 将 OP_HRCR 的地址写入 OPINX 寄存器 MOV OPREG,#01H ; 对 OPREG 寄存器写入 0x01( 待写入 OP_HRCR 寄存器的值 ) 注意 : 禁止向 OPINX 寄存器写入 Customer Option 区域 SFR 地址之外的数值! 否则会造成系统运行异常! 5.3 SRAM SC92WL46X 单片机内部集成了 1 Kbytes 的 SRAM, 分为内部 256 bytes RAM 和外部 768 bytes RAM 内部 RAM 的地址范围为 00H~FFH, 其中高 128 bytes( 地址 80H~FFH) 只能间接寻址, 低 128 bytes( 地址 00H~7FH) 可直接寻址也可间接寻址 特殊功能寄存器 SFR 的地址也是 80H~FFH 但 SFR 同内部高 128 bytes SRAM 的区别是 :SFR 寄存器是直接寻址, 而内部高 128 bytes SRAM 只能是间接寻址 外部 RAM 的地址为 0000H~02FFH, 但需通过 MOVX 指令来寻址 5.3.1 内部 256 BYTES SRAM 内部低 128 bytes SRAM 区可分为三部分 :1 工作寄存器组 0~3, 地址 00H~1FH, 程序状态字寄存器 PSW 中的 RS0 RS1 组合决定了当前使用的工作寄存器, 使用工作寄存器组 0~3 可加快运算的速度 ;2 位寻址区 20H~2FH, 此区域用户可以用作普通 RAM 也可用作按位寻址 RAM; 按位寻址时, 位的地址为 00H~7FH,( 此 地址按位编地址, 不同于通用 SRAM 按字节编地址 ), 程序中可由指令区分 ;3 用户 RAM 和堆栈区, SC92WL46X 复位过后,8 位的堆栈指针指向堆栈区, 用户一般会在初始化程序时设置初值, 建议设置在 E0H~FFH 的单元区间 FFH FFH 高 128 bytes RAM ( 只能间接寻址 ) 特殊功能寄存器 SFR ( 直接寻址 ) 80H 80H 7FH 低 128 bytes RAM ( 可直接寻址 ; 也可间接寻址 ) 00H 内部 256 bytes RAM 结构图 Page 14 of 88 V0.3

内部低 128 bytes RAM 结构如下 : 7FH 用户 RAM 及堆栈 RAM 区 7F 7E 7D 7C 7B 7A 79 78 2FH 77 76 75 74 73 72 71 70 2EH 6F 6E 6D 6C 6B 6A 69 68 2DH 67 66 65 64 63 62 61 60 2CH 5F 5E 5D 5C 5B 5A 59 58 2BH 2FH 位寻址 RAM 区 30H 57 56 55 54 53 52 51 50 2AH 4F 4E 4D 4C 4B 4A 49 48 29H 47 46 45 44 43 42 41 40 28H 3F 3E 3D 3C 3B 3A 39 38 27H 20H 17H 10H 07H 00H 工作寄存器组 3 工作寄存器组 2 工作寄存器组 1 工作寄存器组 0 1FH 18H 0FH 08H 37 36 35 34 33 32 31 30 26H 2F 2E 2D 2C 2B 2A 29 28 25H 27 26 25 24 23 22 21 20 24H 1F 1E 1D 1C 1B 1A 19 18 23H 17 16 15 14 13 12 11 10 22H 0F 0E 0D 0C 0B 0A 09 08 21H 07 06 05 04 03 02 01 00 20H SRAM 结构图 5.3.2 外部 768 BYTES SRAM 可通过 MOVX @DPTR, A 来访问外部 768 字节 RAM; 也可以使用 MOVX A, @Ri 或 MOVX @Ri, A 配合 EXADH 寄存器来访问外部 768 字节 RAM:EXADH 寄存器存放外部 SRAM 的高位地址, Ri 寄存器存放外部 SRAM 的低 8 位地址 EXADH (F7H) 外部 SRAM 操作地址高位 ( 读 / 写 ) 符号 - - - - - - EXADH [1:0] 上电初始值 x x x x x x 0 0 1~0 EXADH [1:0] 外部 SRAM 操作地址的高位 7~2 - 保留 Page 15 of 88 V0.3

6 特殊功能寄存器 (SFR) 6.1 SFR 映像 SC92WL46X 系列有一些特殊功能寄存器, 我们称为 SFR 这些 SFR 寄存器的地址位于 80H~FFH, 有些可以位寻址, 有些不能位寻址 能够进行位寻址操作的寄存器的地址末位数都是 0 或 8, 这些寄存器在需要改变单个位的数值时非常方便 所有的 SFR 特殊功能寄存器都必须使用直接寻址方式寻址 SC92WL46X 的特殊功能寄存器名称及地址如下表 : 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F F8h - - - - CHKSUML CHKSUMH OPINX OPREG F0h B IAPKEY IAPADL IAPADH IAPADE IAPDAT IAPCTL EXADH E8h - EXA0 EXA1 EXA2 EXA3 EXBL EXBH OPERCON E0h ACC - - - - - - - D8h P5 P5CON P5PH - PWMDTYB PWMDTY3 PWMDTY4 PWMDTY5 D0h PSW PWMCFG PWMCON PWMPRD PWMDTYA PWMDTY0 PWMDTY1 PWMDTY2 C8h T2CON T2MOD RCAP2L RCAP2H TL2 TH2 BTMCON WDTCON C0h - - - - - - INT2F INT2R B8h IP IP1 INT0F INT0R INT1F INT1R - - B0h - - - - - - - - A8h IE IE1 ADCCFG2 ADCCFG0 ADCCFG1 ADCCON ADCVL ADCVH A0h P2 P2CON P2PH - - - - - 98h SCON SBUF P0CON P0PH P0VO SSCON0 SSCON1 SSDAT 90h P1 P1CON P1PH - - SSCON2 - IOHCON 88h TCON TMOD TL0 TL1 TH0 TH1 TMCON OTCON 80h P0 SP DPL DPH - - - PCON 可位寻址 不可位寻址 说明 : 1. SFR 寄存器中空的部分代表没有此寄存器 RAM, 不建议用户使用 2. SFR 中的 F1H~FFH 为系统配置使用的特殊功能寄存器, 用户使用可能会导致系统异常, 用户在初始化系统时, 不能对这些寄存器进行清零或其它操作 Page 16 of 88 V0.3

6.2 SFR 说明 特殊功能寄存器 SFR 的具体解释说明如下 : 符号地址说明 7 6 5 4 3 2 1 0 上电初始值 P0 80H P0 口数据寄存器 P07 P06 P05 P04 P03 P02 P01 P00 00000000b SP 81H 堆栈指针 SP[7:0] 00000111b DPL 82H DPTR 数据指针低位 DPL[7:0] 00000000b DPH 83H DPTR 数据指针高位 DPH[7:0] 00000000b PCON 87H 电源管理控制寄存器 SMOD - - - - - STOP IDL 0xxxxx00b TCON 88H 定时器控制寄存器 TF1 TR1 TF0 TR0 IE1 - IE0-00000x0xb TMOD 89H 定时器工作模式寄存器 - C/T1 M11 M01 - C/T0 M10 M00 x000x000b TL0 8AH 定时器 0 低 8 位 TL0[7:0] 00000000b TL1 8BH 定时器 1 低 8 位 TL1[7:0] 00000000b TH0 8CH 定时器 0 高 8 位 TH0[7:0] 00000000b TH1 8DH 定时器 1 高 8 位 TH1[7:0] 00000000b TMCON 8EH 定时器频率控制寄存器 - - - - - T2FD T1FD T0FD xxxxx000b OTCON 8FH 输出控制寄存器 SSMOD[1:0] - - VOIRS[1:0] - - 00xx00xxb P1 90H P1 口数据寄存器 P17 P16 P15 P14 P13 P12 P11 P10 00000000b P1CON 91H P1 口输入 / 输出控制寄存器 P1C7 P1C6 P1C5 P1C4 P1C3 P1C2 P1C1 P1C0 00000000b P1PH 92H P1 口上拉电阻控制寄存器 P1H7 P1H6 P1H5 P1H4 P1H3 P1H2 P1H1 P1H0 00000000b SSCON2 95H SSI 控制寄存器 2 SSCON2[7:0] 00000000b IOHCON 97H IOH 设置寄存器 P2H[1:0] P2L[1:0] P0H[1:0] P0L[1:0] 00000000b SCON 98H 串口控制寄存器 SM0 SM1 SM2 REN TB8 RB8 TI RI 00000000b SBUF 99H 串口数据缓存寄存器 SBUF[7:0] 00000000b P0CON 9AH P0 口输入 / 输出控制寄存器 P0C7 P0C6 P0C5 P0C4 P0C3 P0C2 P0C1 P0C0 00000000b P0PH 9BH P0 口上拉电阻控制寄存器 P0H7 P0H6 P0H5 P0H4 P0H3 P0H2 P0H1 P0H0 00000000b P0VO 9CH P0 口 LCD 电压输出寄存器 - - - P04VO P03VO P02VO P01VO P00VO xxx00000b SSCON0 9DH SSI 控制寄存器 0 SSCON0[7:0] 00000000b SSCON1 9EH SSI 控制寄存器 1 SSCON1[7:0] 00000000b SSDAT 9FH SSI 数据寄存器 SSD[7:0] 00000000b P2 A0H P2 口数据寄存器 P27 P26 P25 P24 P23 P22 P21 P20 00000000b P2CON A1H P2 口输入 / 输出控制寄存器 P2C7 P2C6 P2C5 P2C4 P2C3 P2C2 P2C1 P2C0 00000000b P2PH A2H P2 口上拉电阻控制寄存器 P2H7 P2H6 P2H5 P2H4 P2H3 P2H2 P2H1 P2H0 00000000b IE A8H 中断使能寄存器 EA EADC ET2 EUART ET1 EINT1 ET0 EINT0 00000000b IE1 A9H 中断使能寄存器 1 - - - ETK EINT2 EBTM EPWM ESSI xxx00000b ADCCFG2 AAH ADC 设置寄存器 2 - - - - LOWSP ADCCK[2:0] xxxx0000b ADCCFG0 ABH ADC 设置寄存器 0 EAIN7 EAIN6 EAIN5 EAIN4 EAIN3 EAIN2 EAIN1 EAIN0 00000000b ADCCFG1 ACH ADC 设置寄存器 1 - - - - - - EAIN9 EAIN8 xxxxxx00b ADCCON ADH ADC 控制寄存器 ADCEN ADCS EOC/ ADCIF ADCIS[4:0] Page 17 of 88 V0.3 00000000b ADCVL AEH ADC 结果寄存器 ADCV[3:0] - - - - 0000xxxxb ADCVH AFH ADC 结果寄存器 ADCV[11:4] 00000000b IP B8H 中断优先级控制寄存器 - IPADC IPT2 IPUART IPT1 IPINT1 IPT0 IPINT0 x0000000b IP1 B9H 中断优先级控制寄存器 1 - - - IPTK IPINT2 IPBTM IPPWM IPSSI xxx00000b INT0F BAH INT0 下降沿中断控制寄存器 - - - - INT0F3 INT0F2 INT0F1 - xxxx000xb INT0R BBH INT0 上升沿中断控制寄存器 - - - - INT0R3 INT0R2 INT0R1 - xxxx000xb INT1F BCH INT1 下降沿中断控制寄存器 - - - - INT1F3 INT1F2 INT1F1 INT1F0 xxxx0000b INT1R BDH INT1 上升沿中断控制寄存器 - - - - INT1R3 INT1R2 INT1R1 INT1R0 xxxx0000b INT2F C6H INT2 下降沿中断控制寄存器 - - INT2F5 INT2F4 INT2F3 INT2F2 INT2F1 INT2F0 xx000000b INT2R C7H INT2 上升沿中断控制寄存器 - - INT2R5 INT2R4 INT2R3 INT2R2 INT2R1 INT2R0 xx000000b T2CON C8H 定时器 2 控制寄存器 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 00000000b T2MOD C9H 定时器 2 工作模式寄存器 - - - - - - T2OE DCEN xxxxxx00b RCAP2L CAH 定时器 2 重载低 8 位 RCAP2L[7:0] 00000000b RCAP2H CBH 定时器 2 重载高 8 位 RCAP2H[7:0] 00000000b TL2 CCH 定时器 2 低 8 位 TL2[7:0] 00000000b TH2 CDH 定时器 2 高 8 位 TH2[7:0] 00000000b BTMCON CEH 低频定时器控制寄存器 ENBTM BTMIF - - BTMFS[3:0] 00xx0000b WDTCON CFH WDT 控制寄存器 - - - CLRWDT - WDTCKS[2:0] xxx0x000b PSW D0H 程序状态字寄存器 CY AC F0 RS1 RS0 OV F1 P 00000000b

PWMCFG D1H PWM 设置寄存器 PWMCKS[1:0] INV5 INV4 INV3 INV2 INV1 INV0 00000000b PWMCON D2H PWM 控制寄存器 ENPWM PWMIF ENPWM5 ENPWM4 ENPWM3 ENPWM2 ENPWM1 ENPWM0 00000000b PWMPRD D3H PWM 周期设置寄存器 PWMPRD[9:2] 00000000b PWMDTYA D4H PWM 占空比设置寄存器 A PWMPRD[1:0] PDT2[1:0] PDT1[1:0] PDT0[1:0] 00000000b PWMDTY0 D5H PWM0 占空比设置寄存器 PDT0[9:2] 00000000b PWMDTY1 D6H PWM1 占空比设置寄存器 PDT1[9:2] 00000000b PWMDTY2 D7H PWM2 占空比设置寄存器 PDT2[9:2] 00000000b P5 D8H P5 口数据寄存器 - - - - - - P51 P50 xxxxxx00b P5CON D9H P5 口输入 / 输出控制寄存器 - - - - - - P5C1 P5C0 xxxxxx00b P5PH DAH P5 口上拉电阻控制寄存器 - - - - - - P5H1 P5H0 xxxxxx00b PWMDTYB DCH PWM 占空比设置寄存器 B PWMMOD - PDT5[1:0] PDT4[1:0] PDT3[1:0] 0x000000b PWMDTY3 DDH PWM3 占空比设置寄存器 / PDT3[9:2] 00000000b PWM 死区时间配置寄存器 PWMDTY4 DEH PWM4 占空比设置寄存器 PDT4[9:2] 00000000b PWMDTY5 DFH PWM5 占空比设置寄存器 PDT5[9:2] 00000000b ACC E0H 累加器 ACC[7:0] 00000000b EXA0 E9H 扩展累加器 0 EXA[7:0] 00000000b EXA1 EAH 扩展累加器 1 EXA[15:8] 00000000b EXA2 EBH 扩展累加器 2 EXA[23:16] 00000000b EXA3 ECH 扩展累加器 3 EXA[31:24] 00000000b EXBL EDH 扩展 B 寄存器 L EXB [7:0] 00000000b EXBH EEH 扩展 B 寄存器 H EXB [15:8] 00000000b OPERCON EFH 运算控制寄存器 OPERS MD - - - - - CHKSUMS 00xxxxx0b B F0H B 寄存器 B[7:0] 00000000b IAPKEY F1H IAP 保护寄存器 IAPKEY[7:0] 00000000b IAPADL F2H IAP 写入地址低位寄存器 IAPADR[7:0] 00000000b IAPADH F3H IAP 写入地址高位寄存器 - - IAPADR[13:8] xx000000b IAPADE F4H IAP 写入扩展地址寄存器 IAPADER[7:0] 00000000b IAPDAT F5H IAP 数据寄存器 IAPDAT[7:0] 00000000b IAPCTL F6H IAP 控制寄存器 - - - - PAYTIMES[1:0] CMD[1:0] xxxx0000b EXADH F7H 外部 SRAM 操作地址高位 - - - - - - EXADH [1:0] xxxxxx00b CHKSUML FCH Check Sum 结果寄存器低位 CHKSUML[7:0] 00000000b CHKSUMH FDH Check Sum 结果寄存器高位 CHKSUMH[7:0] 00000000b OPINX FEH Option 指针 OPINX[7:0] 00000000b OPREG FFH Option 寄存器 OPREG[7:0] nnnnnnnnb 6.2.1 8051 CPU 内核常用特殊功能寄存器介绍 程序计数器 PC 程序计数器 PC 不属于 SFR 寄存器 PC 有 16 位, 是用来控制指令执行顺序的寄存器 单片机上电或者复位后,PC 值为 0000H, 也即是说单片机程序从 0000H 地址开始执行程序 累加器 ACC (E0H) 累加器 ACC 是 8051 内核单片机的最常用的寄存器之一, 指令系统中采用 A 作为助记符 常用来存放参加计算或者逻辑运算的操作数及结果 B 寄存器 (F0H) B 寄存器在乘除法运算中必须与累加器 A 配合使用 乘法指令 MUL A,B 把累加器 A 和寄存器 B 中的 8 位无符号数相乘, 所得的 16 位乘积的低位字节放在 A 中, 高位字节放在 B 中 除法指令 DIV A,B 是用 A 除以 B, 整数商放在 A 中, 余数放在 B 中 寄存器 B 还可以作为通用的暂存寄存器使用 堆栈指针 SP (81H) 堆栈指针是一个 8 位的专用寄存器, 它指示出堆栈顶部在通用 RAM 中的位置 单片机复位后,SP 初始值为 07H, 即堆栈会从 08H 开始向上增加 08H~1FH 为工作寄存器组 1~3 Page 18 of 88 V0.3

PSW (D0H) 程序状态字寄存器 ( 读 / 写 ) 符号 CY AC F0 RS1 RS0 OV F1 P 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 7 CY 标志位 1: 加法运算最高位有进位, 或者减法运算最高位有借位时 0: 加法运算最高位无进位, 或者减法运算最高位无借位时 6 AC 进位辅助标志位 ( 可在 BCD 码加减法运算时方便调整 ) 1: 加法运算时在 bit3 位有进位, 或减法运算在 bit3 位有借位时 0: 无借位 进位 5 F0 用户标志位 4~3 RS1 RS0 工作寄存器组选择位 : RS1 RS0 当前使用的工作寄存器组 0~3 0 0 组 0 (00H~07H) 0 1 组 1 (08H~0FH) 1 0 组 2 (10H~17H) 1 1 组 3 (18H~1FH) 2 OV 溢出标志位 1 F1 F1 标志用户自定义标志 0 P 奇偶标志位 此标志位为累加器 ACC 中 1 的个数的奇偶值 1:ACC 中 1 的个数为奇数 0:ACC 中 1 的个数为偶数 ( 包括 0 个 ) 数据指针 DPTR (82H 83H) 数据指针 DPTR 是一个 16 位的专用寄存器, 由低 8 位 DPL(82H) 和高 8 位 DPH(83H) 组成 DPTR 是以传统 8051 内核单片机中唯一可以直接进行 16 位操作的寄存器, 也可以分别对 DPL 和 DPH 按字节进行操作 Page 19 of 88 V0.3

7 电源 复位和时钟 7.1 电源电路 SC92WL46X 电源核心包括了 BG LDO POR LVR 等电路, 可实现在 2.4~5.5V 范围内可靠工作 此外, IC 内建了一个经调校过的精准 2.4V 电压, 可用作 ADC 内部参考电压 用户可在 18 模数转换 ADC 查找具体设置内容 7.2 上电复位过程 SC92WL46X 上电后, 在客户端软件执行前, 会经过以下的过程 : 复位阶段 调入信息阶段 正常操作阶段 7.2.1 复位阶段 是指 SC92WL46X 会一直处于复位的情况, 直到供应给 SC92WL46X 的电压高过某一电压, 内部才开始有效的 Clock 复位阶段的时间长短和外部电源的上升速度有关, 外部电源达到内建 POR 电压后, 复位阶段才会完成 7.2.2 调入信息阶段 在 SC92WL46X 内部有一个预热计数器 在复位阶段期间, 此预热计数器一直被清为 0, 直到电压过了 POR 电压后, 内部 RC 振荡器开始起振, 该预热计数器开始计数 当内部的预热计数器计数到一定数目后, 每隔一定数量个 HRC clock 就会从 Flash ROM 中的 IFB( 包含 Code Option) 读出一个 byte 数据存放到内部系统寄存器中 直到预热完成后, 该复位信号才会结束 7.2.3 正常操作阶段 结束调入信息阶段后,SC92WL46X 开始从 Flash 中读取指令代码即进入正常操作阶段 这时的 LVR 电压值是用户写入 Code Option 的设置值 7.3 复位方式 SC92WL46X 有 4 种复位方式 :1 外部 RST 复位 2 低电压复位 LVR3 上电复位 POR4 看门狗 WDT 复位 7.3.1 外部 RST 复位 外部 RST 复位就是从外部 RST 给 SC92WL46X 一定宽度的复位脉冲信号, 来实现 SC92WL46X 的复位 用户在烧录程序前可通过烧录上位机软件配置 Customer Option 项将 P1.1 管脚配置为 RST( 复位脚 ) 使用 7.3.2 低电压复位 LVR SC92WL46X 内建了一个低电压复位电路 而复位的门限电压有 4 种选择 :4.3V 3.7V 2.9V 2.3V, 缺省值 Default 是用户写入的 Option 值 OP_CTM0 (C1H@FFH) Customer Option 寄存器 0( 读 / 写 ) 符号 ENWDT ENXTL SCLKS[1:0] DISRST DISLVR LVRS[1:0] 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 上电初始值 n n n n n n 位编号位符号说明 2 DISLVR LVR 使能设置 0:LVR 正常使用 1:LVR 无效 1~0 LVRS [1:0] LVR 电压选择控制 11:4.3 V 复位 10:3.7V 复位 Page 20 of 88 V0.3

SC92WL46X 的复位部分电路结构图如下 : 01:2.9V 复位 00:2.3V 复位 RSTN pin De-Bounce LVR 4.3V 3.7V 2.9V 2.3V De-Bounce (~2uS) RESET Code option SFR POR (Power-Up Reset) WatchDogTimer Overflow SC92WL46X 复位电路图 7.3.3 上电复位 POR SC92WL46X 内部有上电复位电路, 当电源电压 VDD 达到 POR 复位电压时, 系统自动复位 7.3.4 看门狗复位 WDT SC92WL46X 有一个 WDT, 其时钟源为内部的 128kHz 振荡器 用户可以通过编程器的 Code Option 选择是否开启看门狗复位功能 OP_CTM0 (C1H@FFH) Customer Option 寄存器 0( 读 / 写 ) 符号 ENWDT ENXTL SCLKS[1:0] DISRST DISLVR LVRS[1:0] 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 上电初始值 n n n n n n 位编号位符号说明 7 ENWDT WDT 开关 ( 此位由系统将用户 Code Option 所设的值调入 ) 1: WDT 开始工作 0: WDT 关闭 WDTCON (CFH) 看门狗控制寄存器 ( 读 / 写 ) 符号 - - - CLRWDT - WDTCKS[2:0] 读 / 写 - - - 读 / 写 - 读 / 写 上电初始值 x x x 0 x 0 0 0 4 CLRWDT WDT 清 0 位 ( 写 1 有效 ) 1 :WDT 计数器从 0 开始计数此位由系统硬件自动置 0 2~0 WDTCKS [2:0] 看门狗时钟选择 WDTCKS[2:0] WDT 溢出时间 000 500ms Page 21 of 88 V0.3

7~5,3 - 保留 001 250ms 010 125ms 011 62.5ms 100 31.5ms 101 15.75ms 110 7.88ms 111 3.94ms 7.3.5 复位初始状态 当 SC92WL46X 处于复位状态时, 多数寄存器会回到其初始状态 看门狗 WDT 处于关闭的状态,PORT 口 寄存器为 FFh 程序计数器 PC 初始值为 0000h, 堆栈指针 SP 初始值为 07h 热启动 的 Reset( 如 WDT LVR 等 ) 不会影响到 SRAM,SRAM 值始终是复位前的值 SRAM 内容的丢失会发生在电源电压低到 RAM 无法保存 为止 SFR 寄存器的上电复位初始值如下表 : SFR 名称 初始值 SFR 名称 初始值 ACC 00000000b P1PH 00000000b B 00000000b P2 00000000b PSW 00000000b P2CON 00000000b SP 00000111b P2PH 00000000b DPL 00000000b P5 xxxxxx00b DPH 00000000b P5CON xxxxxx00b PCON 0xxxxx00b P5PH xxxxxx00b ADCCFG0 00000000b PWMCFG 00000000b ADCCFG1 xxxxxx00b PWMCON 00000000b ADCCFG2 xxxx0000b PWMDTYA xx000000b ADCCON 00000000b PWMDTY0 00000000b ADCVH 00000000b PWMDTY1 00000000b ADCVL 0000xxxxb PWMDTY2 00000000b BTMCON 00xx0000b PWMPRD 00000000b IAPADE 00000000b PWMDTYB 0x000000b IAPADH xx000000b PWMDTY3 00000000b IAPADL 00000000b PWMDTY4 00000000b IAPCTL xxxx0000b PWMDTY5 00000000b IAPDAT 00000000b RCAP2H 00000000b IAPKEY 00000000b RCAP2L 00000000b IE 00000000b SBUF 00000000b IE1 xxx00000b SCON 00000000b INT0R xxxx000xb SSDAT 00000000b INT1R xxxx0000b SSCON0 00000000b INT2R xx000000b SSCON1 00000000b INT0F xxxx000xb SSCON2 00000000b INT1F xxxx0000b TCON 00000x0xb INT2F xx000000b TMCON xxxxx000b IP x0000000b TMOD x000x000b IP1 xxx00000b TH0 00000000b OPINX 00000000b TL0 00000000b OPREG nnnnnnnnb TH1 00000000b EXADH xxxxxx00b TL1 00000000b OTCON 00xx00xxb T2CON 00000000b IOHCON 00000000b TH2 00000000b P0 00000000b TL2 00000000b P0CON 00000000b T2MOD xxxxxx00b P0PH 00000000b WDTCON xxx0x000b P0VO xxx00000b CHKSUMH 00000000b P1 00000000b CHKSUML 00000000b Page 22 of 88 V0.3

P1CON 00000000b - - 7.4 高频系统时钟电路 SC92WL46X 内建了一个振荡频率可调的高精度 HRC 及一个晶体振荡电路, 用户可以根据选择之中之一作为 系统时钟 HRC 出厂时被精确地调校至 24MHz@5V/25, 用户可以通过编程器的 Code Option 将系统时钟设置 为 12/6/2MHz 使用 调校过程是过滤掉制程上的偏差对精度所造成的影响 此 HRC 受工作的环境温度和工作电 压影响会有一定的漂移, 对于压漂 (3.0V~5.5V) 以及 (-20 ~85 ) 的温漂一般状况会在 ±1% 以内 为了增强系统的可靠性,SC92WL46X 内建有一个系统时钟监控电路, 当用户选择系统时钟源为晶体振荡并且晶体振荡电路发生停振时, 系统时钟源将被自动切换到内建的 HRC, 并保持此状态直至下次复位时再重置 注意 : ADC 和水位检测电路的时钟源固定为 f HRC = 24MHz, 不会随着内外系统时钟的切换而改变 ENXTL=1 SCLKS[1:0] 2~16MHz X OSC 24MHz HRC fhrc ADC WL fosc ENXTL=0 或 ENXTL=1 时检测到外部晶振停振 /1(ENXTL=1) /2 /4 /12 fosc PWM SC92WL46X 内部时钟关系 OP_CTM0 (C1h@FFH) Customer Option 寄存器 0( 读 / 写 ) fsys UART SSI TIMER0 TIMER1 TIMER2 符号 ENWDT ENXTL SCLKS[1:0] DISRST DISLVR LVRS[1:0] 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 上电初始值 n n n n n n I/O 6 ENXTL 外部高频晶振选择开关 0: 外部高频晶振关闭,P5.0 P5.1 有效 ; 1: 外部高频晶振打开,P5.0 P5.1 无效 注意 : ADC 和水位检测电路的时钟源固定为 f HRC = 24MHz, 不会随着内外系统时钟的切换而改变 5~4 SCLKS[1:0] 系统时钟频率选择 : 00: 系统时钟频率为高频振荡器频率除以 1, 仅在 ENXTL=1 时有效 ; 01: 系统时钟频率为高频振荡器频率除以 2; 10: 系统时钟频率为高频振荡器频率除以 4; 11: 系统时钟频率为高频振荡器频率除以 12 OP_CTM1 (C2h@FFH) Customer Option 寄存器 1( 读 / 写 ) 符号 VREFS XTLHF - - IAPS[1:0] - - 读 / 写读 / 写读 / 写 - - 读 / 写读 / 写 - - 上电初始值 n n x x n n x x Page 23 of 88 V0.3

6 XTLHF 外接晶振控制模式寄存器 0: 外接晶振振荡频率 <12M 1: 外接晶振振荡频率 12M SC92WL46X 有一个特殊的功能 : 用户可修改 SFR 的值实现 HRC 频率在一定范围的调整 用户可以通过配置 OP_HRCR 寄存器实现, 该寄存器的配置方法可参考章节 :5.2.1 Option 相关 SFR 操作说明 OP_HRCR (83h@FFH) 系统时钟改变寄存器 ( 读 / 写 ) 符号 OP_HRCR[7:0] 读 / 写读 / 写上电初始值 n n n n n n n n 7~0 OP_HRCR[7:0] HRC 频率改变寄存器用户可通过修改此寄存器的值实现高频振荡器频率 fhrc 的改变, 进而改变 IC 的系统时钟频率 fsys: 1. OP_HRCR[7:0] 上电后的初始值 OP_HRCR[s] 是一个固定值, 以 确保 fhrc 为 24MHz, 每颗 IC 的 OP_HRCR[s] 都可能会有差异 2. 初始值为 OP_HRCR [s] 时 IC 的系统时钟频率 fsys 可通过 Option 项设置为准确的 12/6/2MHz,OP_HRCR [7:0] 每改变 1 则 fsys 频 率改变约 0.23% OP_HRCR [7:0] 和 fsys 输出频率的关系如下 : OP_HRCR [7:0] 值 fsys 实际输出频率 (12M 为例 ) OP_HRCR [s]-n...... OP_HRCR [s]-2 OP_HRCR [s]-1 OP_HRCR [s] OP_HRCR [s]+1 OP_HRCR [s]+2...... OP_HRCR [s]+n 12000*(1-0.23%*n)kHz 12000*(1-0.23%*2) = 11944.8kHz 12000*(1-0.23%*1) = 11972.4kHz 12000kHz 12000*(1+0.23%*1) = 12027.6kHz 12000*(1+0.23%*2) = 12055.2kHz 12000*(1+0.23%*n)kHz 注意 : 1.IC 每次上电后 OP_HRCR[7:0] 的值都是高频振荡器频率 fhrc 最接近 24MHz 的值 ; 用户可借助 EEPROM 在每次上电后修正 HRC 的值以让 IC 的系统时钟频率 fsys 工作在用户需要的频率 ; 2. 为保证 IC 工作可靠,IC 最高工作频率请勿超过 12MHz 的 10%, 即 13.2MHz; 3. 请用户确认 HRC 频率的改变不会影响其它功能 Page 24 of 88 V0.3

7.5 低频振荡器及低频时钟定时器 SC92WL46X 内建一个频率为 128kHz 的 RC 振荡电路, 作为低频时钟定时器 Base Timer 和 WDT 的时钟源 开启 Base Timer 或使能 WDT 均可启动 128kHz 低频振荡器 低频时钟定时器 Base Timer 可以把 CPU 从 STOP mode 唤醒, 并且产生中断 BTMCON (CEH) 低频定时器控制寄存器 ( 读 / 写 ) 符号 ENBTM BTMIF - - BTMFS[3:0] 读 / 写读 / 写读 / 写 - - 读 / 写上电初始值 0 0 x x 0 0 0 0 7 ENBTM 低频 Base Timer 启动控制 0: Base Timer 不启动 1: Base Timer 启动 6 BTMIF Base Timer 中断申请标志当 CPU 接受 Base Timer 的中断后, 此标志位会被硬件自动清除 3~0 BTMFS [3:0] 低频时钟中断频率选择 0000: 每 15.625ms 产生一个中断 0001: 每 31.25ms 产生一个中断 0010: 每 62.5ms 产生一个中断 0011: 每 125ms 产生一个中断 0100: 每 0.25 秒产生一个中断 0101: 每 0.5 秒产生一个中断 0110: 每 1.0 秒产生一个中断 0111: 每 2.0 秒产生一个中断 1000: 每 4.0 秒产生一个中断 1001~1111: 保留 5~4 - 保留 7.6 STOP 模式和 IDLE 模式 SC92WL46X 提供了一个特殊功能寄存器 PCON, 配置该寄存器的 bit0 和 bit1 可控制 MCU 进入不同的工作模式 对 PCON.1 写入 1, 内部的高频系统时钟就会停止, 进到 STOP 模式, 达到省电功能 在 STOP 模式下, 用户可以通过外部中断 INT0~2 和低频时钟中断把 SC92WL46X 唤醒, 也可以通过外部复位将 STOP 唤醒 对 PCON.0 写入 1, 程序停止运行, 进入 IDLE 模式, 但外部设备及时钟继续运行, 进入 IDLE 模式前所有 CPU 状态都被保存 IDLE 模式可由任何中断唤醒 PCON (87H) 电源管理控制寄存器 ( 只写 * 不可读 *) 符号 SMOD - - - - - STOP IDL 读 / 写 只写 - - - - - 只写 只写 上电初始值 0 x x x x x 0 0 位编号位符号说明 1 STOP STOP 模式控制 0: 正常操作模式 1: 节能模式, 高频振荡器停止工作, 低频振荡器及 WDT 可根据设定选择工作与否 0 IDL IDLE 模式控制 Page 25 of 88 V0.3

0: 正常操作模式 1: 节能模式, 程序停止运行, 但外部设备及时钟继续运行, 进入 IDLE 模式前所有 CPU 状态都被保存 注意 : 配置 MCU 进入 STOP 或 IDLE 模式时, 对 PCON 寄存器进行配置操作的语句后面要加上 8 个 NOP 指令, 不能直接跟其它指令, 否则在唤醒后无法正常执行后续的指令! 例如 : 设置 MCU 进入 STOP 模式 : C 语言例程 : #include intrins.h PCON = 0x02; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //PCON 的 bit1 STOP 位写 1, 配置 MCU 进入 STOP 模式 // 至少需要 8 个 _nop_() 汇编例程 : ORL PCON,#02H NOP NOP NOP NOP NOP NOP NOP NOP 8 中央处理单元 CPU 及指令系统 8.1 CPU ; PCON 的 bit1 STOP 位写 1, 配置 MCU 进入 STOP 模式 ; 至少需要 8 个 NOP SC92WL46X 所用的 CPU 是一个高速的 1T 标准 8051 内核, 其指令完全兼容传统 8051 内核单片机 8.2 寻址方式 SC92WL46X 的 1T 8051 CPU 指令的寻址方式有 :1 立即寻址 2 直接寻址 3 间接寻址 4 寄存器寻址 5 相对寻 址 6 变址寻址 7 位寻址 8.2.1 立即寻址 立即寻址也称为立即数, 它是在指令操作数中直接给出参加运算的操作数, 指令举例如下 : MOV A, #50H ( 这条指令是将立即数 50H 送到累加器 A 中 ) 8.2.2 直接寻址 在直接寻址方式中, 指令操作数域给出的是参加运算操作数的地址 直接寻址方式只能用来表示特殊功能寄存器 内部数据寄存器和位地址空间 其中特殊功能寄存器和位地址空间只能用直接寻址方式访问 举例如下 : ANL 50H, #91H ( 表示 50H 单元中的数与立即数 91H 相 与, 结果存放在 50H 单元中 其中 50H 为直接地址, 表示内部数据寄存器 RAM 中的一个单元 ) Page 26 of 88 V0.3

8.2.3 间接寻址 间接寻址采用 R0 或 R1 前添加 @ 符号来表示 假设 R1 中的数据是 40H, 内部数据存储器 40H 单元的数据为 55H, 则指令为 MOV A, @R1 ( 把数据 55H 传送至累加器 A) 8.2.4 寄存器寻址 寄存器寻址时对选定的工作寄存器 R7~R0 累加器 A 通用寄存器 B 地址寄存器和进位 C 中的数进行操作 其中寄存器 R7~R0 由指令码的低 3 位表示,ACC B DPTR 及进位位 C 隐含在指令码中 因此, 寄存器寻址也包含一种隐含寻址方式 寄存器工作区的选择由程序状态字寄存器 PSW 中的 RS1 RS0 来决定 指令操作数指定的寄存器均指当前工作区的寄存器 INC R0 是指 (R0)+1 R0 8.2.5 相对寻址 相对寻址是将程序计数器 PC 中的当前值与指令第二字节给出的数相加, 其结果作为转移指令的转移地址 转移地址也成为转移目的地址,PC 中的当前值成为基地址, 指令第二字节给出的数成为偏移量 由于目的地址是相对于 PC 中的基地址而言, 所以这种寻址方式成为相对寻址 偏移量为带符号的数, 所能表示的范围为 +127~- 128 这种寻址方式主要用于转移指令 JC $+50H 表示若进位位 C 为 0, 则程序计数器 PC 中的内容不改变, 即不转移 若进位位 C 为 1, 则以 PC 中的当前值及基地址, 加上偏移量 50H 后所得到的结果作为该转移指令的目的地址 8.2.6 变址寻址 在变址寻址方式中, 指令操作数制定一个存放变址基址的变址寄存器 变址寻址时, 偏移量与变址基值相加, 其结果作为操作数的地址 变址寄存器有程序计数器 PC 和地址寄存器 DPTR MOVC A, @A+DPTR 表示累加器 A 为偏移量寄存器, 其内容与地址寄存器 DPTR 中的内容相加, 其结果作为操作数的地址, 取出该单元中的数送入累加器 A 中 8.2.7 位寻址 位寻址是指对一些可进行位操作的内部数据存储器 RAM 和特殊功能寄存器进行位操作时的寻址方式 在进行位操作时, 借助于进位位 C 作为位操作累加器, 指令操作数直接给出该位的地址, 然后根据操作码的性质对该位进行位操作 位地址与字节直接寻址中的字节地址编码方式完全一样, 主要由操作指令的性质加以区分, 使用时应特别注意 MOV C, 20H ( 将地址为 20H 的位操作寄存器值送入进位位 C 中 ) Page 27 of 88 V0.3

9 INTERRUPT 中断 SC92WL46X 单片机提供 12 个中断源 :Timer0,Timer1,Timer2,INT0~2,ADC,PWM,UART,SSI, Base Timer,Water Level 这 12 个中断源分为 2 个中断优先级, 并可以单独分别设置为高优先级或者低优先级 三个外部中断可以分别设定其中每个中断源的触发条件为上升 下降或上下沿, 每个中断分别有独立的优先级设置位 中断标志 中断向量和使能位, 总的使能位 EA 可以实现所有中断的打开或者关闭 9.1 中断源 向量 SC92WL46X 的中断源 中断向量 及相关控制位列表如下 : 中断源 中断发生时间 中断标志 中断使能控制 中断优先权控制 中断向量查询优先级 INT0 外部中断 0 条件符合 Timer0 Timer0 溢出 INT1 外部中断 1 条件符合 Timer1 UART Timer2 ADC SSI Timer1 溢出 接收或发送完成 Timer2 溢出 ADC 转换完成 接收或发送完成 中断号 (C51) 标志清除方式 能否唤醒 STOP IE0 EINT0 IPINT0 0003H 1 ( 高 ) 0 H/W Auto 能 TF0 ET0 IPT0 000BH 2 1 H/W Auto 不能 IE1 EINT1 IPINT1 0013H 3 2 H/W Auto 能 TF1 ET1 IPT1 001BH 4 3 H/W Auto 不能 RI/TI EUART IPUART 0023H 5 4 必须用户 清除 TF2 ET2 IPT2 002BH 6 5 必须用户 清除 ADCIF EADC IPADC 0033H 7 6 必须用户 清除 SPIF/TWIF ESSI IPSPI 003BH 8 7 必须用户 清除 PWM PWM 溢出 PWMIF EPWM IPPWM 0043H 9 8 H/W Auto 不能 BTM Base timer 溢出 INT2 外部中断 2 条件符合 BTMIF EBTM IPBTM 004BH 10 9 H/W Auto 能 - EINT2 IPINT2 0053H 11 10 - 能 WL Water TKIF ETK IPTK 005B 12 11 H/W Auto 不能 Level 计数器溢出在 EA=1 及各中断使能控制为 1 的情况下, 各中断发生情况如下 : 定时器中断 :Timer0 和 Timer1 溢出时会产生中断并将中断标志 TF0 和 TF1 置为 1, 当单片机执行该定时器中断时, 中断标志 TF0 和 TF1 会被硬件自动清 0 Timer2 溢出时会产生中断并将中断标志 TF2 置为 1, 在 Timer2 中断发生后, 硬件并不会自动清除 TF2 位, 此 bit 必须由使用者的软件负责清除 ADC 中断 :ADC 中断的发生时间为 ADC 转换完成时, 其中断标志就是 ADC 转换结束标志 EOC/ADCIF (ADCCON.5) 当使用者设定 ADCS 开始转换后, EOC 会被硬件自动清除为 0 ; 当转换完成后,EOC 会被硬件自动置为 1 使用者在 ADC 中断发生之后, 进入中断服务程序时, 必须用软件去清除它 SSI 中断 : 当 SSI 接收或发送一帧数据完成时 SPIF/TWIF 位会被硬件自动置 1, SSI 中断产生 当单片机执行该 SSI 中断时, 中断标志 SPIF/TWIF 必须由使用者的软件负责清除 PWM 中断 : 当 PWM 计数器溢出时 ( 也就是说 : 计数器数到超过 PWMPRD 时 ),PWMIF 位 (PWM Interrupt Flag) 会被硬件自动置 1,PWM 中断产生 当单片机执行该 PWM 中断时, 中断标志 PWMIF 会被硬件自动清 0 外部中断 INT0~2: 当外部中断口有中断条件发生时, 外部中断就发生了 INT0 有三个外部中断源,INT1 有四个外部中断源,INT2 有六个外部中断源, 用户可以根据需要设成上沿 下沿或者双沿中断, 可通过设置 SFR (INTxF 和 INTxR) 来实现 用户可通过 IP 寄存器来设置每个中断的优先级级别 外部中断 INT0~2 还可以唤醒单片机的 STOP 不能 不能 不能 不能 Page 28 of 88 V0.3

9.2 中断结构图 SC92WL46X 的中断结构如下图所示 : INT0 IE[7] (EA) IE[0](EINT0) TCON[1] (IE0) Interrupt to 03h Timer-0 IE[7] (EA) IE[1] (ET0) TCON[5] (TF0) Interrupt to 0Bh INT1 IE[7] (EA) IE[2] (EINT1) TCON[3] (IE1) Interrupt to 13h Timer-1 IE[7] (EA) IE[3] (ET1) TCON[7] (TF1) Interrupt to 1Bh UART Timer-2 ADC SSI IE[7] (EA) IE[4] (EUART) SCON[1:0] (TI/RI) IE[7] (EA) IE[5] (ET2) T2CON[7] (TF2) IE[7] (EA) IE[6] (EADC) ADCCON[5] (EOC/ADCIF) IE[7] (EA) IE1[0] (ESSI) SPIF/TWIF Interrupt to 23h Interrupt to 2Bh Interrupt to 33h Interrupt to 3Bh PWM IE[7] (EA) IE1[1] (EPWM) PWMCON[6] (PWMIF) Interrupt to 43h BTM IE[7] (EA) IE1[2] (EBTM) BTMCON[6] (BTMIF) Interrupt to 4Bh INT2 IE[7] (EA) IE1[3] (EINT2) Interrupt to 53h WL IE[7] (EA) IE1[4] (ETK) TKIF Interrupt to 5Bh SC92WL46X 中断结构和向量 Page 29 of 88 V0.3

9.3 中断优先级 SC92WL46X 单片机的中断具有两个中断优先级, 这些中断源的请求可编程为高优先级中断或者低优先级中断, 即可实现两级中断服务程序的嵌套 一个正在执行的低优先级中断能被高优先级中断请求所中断, 但不能被另一个同一优先级的中断请求所中断, 一直执行到结束, 遇到返回指令 RETI, 返回主程序后再执行一条指令才能响应新的中断请求 也就是说 : 1 低优先级中断可被高优先级中断请求所中断, 反之不能 ; 2 任何一种中断, 在响应过程中, 不能被同一优先级的中断请求所中断 中断查询顺序 :SC92WL46X 单片机的同一优先级中断, 如果同时来几个中断, 则中断响应的优先顺序同 C51 中的中断查询号相同, 即查询号小的会优先响应, 查询号大的会慢响应 9.4 中断处理流程 当一个中断产生并且被 CPU 响应, 则主程序运行被中断, 将执行下述操作 1 当前正在执行的指令执行完 ; 2 PC 值被压入堆栈, 保护现场 ; 3 中断向量地址载入程序计数器 PC; 4 执行相应的中断服务程序 ; 5 中断服务程序结束并 RETI; 6 将 PC 值退栈, 并返回执行中断前的程序 在此过程中, 系统不会立即执行其它同一优先级的中断, 但会保留所发生的中断请求, 在当前中断处理结束后, 转去执行新的中断请求 9.5 中断相关 SFR 寄存器 IE (A8H) 中断使能寄存器 ( 读 / 写 ) 符号 EA EADC ET2 EUART ET1 EINT1 ET0 EINT0 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 位编号位符号说明 7 EA 中断使能的总控制 0: 关闭所有的中断 1: 打开所有的中断 6 EADC ADC 中断使能控制 0: 关闭 ADC 中断 1: 允许 ADC 转换完成时产生中断 5 ET2 Timer2 中断使能控制 0: 关闭 TIMER2 中断 1: 允许 TIMER2 中断 4 EUART UART 中断使能控制 0: 关闭 UART 中断 1: 允许 UART 中断 3 ET1 Timer1 中断使能控制 0: 关闭 TIMER1 中断 1: 允许 TIMER1 中断 2 EINT1 外部中断 1 使能控制 0: 关闭 INT1 中断 1: 打开 INT1 中断 1 ET0 Timer0 中断使能控制 0: 关闭 TIMER0 中断 Page 30 of 88 V0.3

1: 允许 TIMER0 中断 0 EINT0 外部中断 0 使能控制 0: 关闭 INT0 中断 1: 打开 INT0 中断 IP (B8H) 中断优先级控制寄存器 ( 读 / 写 ) 符号 - IPADC IPT2 IPUART IPT1 IPINT1 IPT0 IPINT0 读 / 写 - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 上电初始值 x 0 0 0 0 0 0 0 位编号位符号说明 6 IPADC ADC 中断优先权选择 0:ADC 中断优先权为低 1:ADC 中断优先权为高 5 IPT2 Timer2 中断优先权选择 0:Timer2 中断优先权为低 1:Timer2 中断优先权为高 4 IPUART UART 中断优先权选择 0:UART 中断优先权为低 1:UART 中断优先权为高 3 IPT1 Timer1 中断优先权选择 0:Timer1 中断优先权为低 1:Timer1 中断优先权为高 2 IPINT1 INT1 计数器中断优先权选择 0:INT1 中断优先权为低 1:INT1 中断优先权为高 1 IPT0 Timer0 中断优先权选择 0:Timer0 中断优先权为低 1:Timer0 中断优先权为高 0 IPINT0 INT0 计数器中断优先权选择 0:INT0 中断优先权为低 1:INT0 中断优先权为高 7 - 保留 IE1 (A9H) 中断控制寄存器 1( 读 / 写 ) 符号 - - - ETK EINT2 EBTM EPWM ESSI 读 / 写 - - - 读写 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 x x x 0 0 0 0 0 4 ETK Water Level 中断使能控制 0: 关闭 Water Level 中断 1: 打开 Water Level 中断 3 EINT2 外部中断 2 使能控制 0: 关闭 INT2 中断 1: 打开 INT2 中断 2 EBTM Base Timer 中断使能控制 0: 关闭 Base Timer 中断 1: 允许 Base Timer 中断 Page 31 of 88 V0.3

1 EPWM PWM 中断使能控制 0: 关闭 PWM 中断 1: 允许 PWM 计数溢出 ( 数到 PWMPRD) 时产生中断 0 ESSI 三合一串口中断使能控制 0: 关闭串口中断 1: 允许串口中断 7~5 - 保留 IP1 (B9H) 中断优先级控制寄存器 1( 读 / 写 ) 符号 - - - IPTK IPINT2 IPBTM IPPWM IPSSI 读 / 写 - - - 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 x x x 0 0 0 0 0 4 IPTK Water Level 中断优先权选择 0:Water Level 中断优先权为低 1:Water Level 中断优先权为高 3 IPINT2 INT2 计数器中断优先权选择 0:INT2 中断优先权为低 1:INT2 中断优先权为高 2 IPBTM Base Timer 中断优先权选择 0:Base Timer 中断优先权为低 1:Base Timer 中断优先权为高 1 IPPWM PWM 中断使能选择 0: PWM 中断优先权为低 1: PWM 中断优先权为高 0 IPSSI 三合一串口中断优先权选择 0: SSI 中断优先权为低 1: SSI 中断优先权为高 7~5 - 保留 TCON (88H) 定时器控制寄存器 ( 读 / 写 ) 符号 TF1 TR1 TF0 TR0 IE1 - IE0 - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 - 读 / 写 - 上电初始值 0 0 0 0 0 x 0 x 位编号位符号说明 3 IE1 INT1 溢出中断请求标志 INT1 产生溢出, 发生中断时, 硬件将 IE1 置 为 1, 申请中断,CPU 响应时, 硬件清 0 1 IE0 INT0 溢出中断请求标志 INT0 产生溢出, 发生中断时, 硬件将 IE0 置 为 1, 申请中断,CPU 响应时, 硬件清 0 2,0 - 保留 INT0F (BAH) INT0 下降沿中断控制寄存器 ( 读 / 写 ) 符号 - - - - INT0F3 INT0F2 INT0F1 - 读 / 写 - - - - 读 / 写读 / 写读 / 写 - 上电初始值 x x x x 0 0 0 x Page 32 of 88 V0.3

3~1 INT0Fn (n=1~3) INT0 下降沿中断控制 0 : INT0n 下降沿中断关闭 1: INT0n 下降沿中断使能 7~4,0 - 保留 INT0R (BBH) INT0 上升沿中断控制寄存器 ( 读 / 写 ) 符号 - - - - INT0R3 INT0R2 INT0R1 - 读 / 写 - - - - 读 / 写读 / 写读 / 写 - 上电初始值 x x x x 0 0 0 x 3~1 INT0Rn (n=1~3) INT0 上升沿中断控制 0 : INT0n 上升沿中断关闭 1: INT0n 上升沿中断使能 7~4,0 - 保留 INT1F (BCH) INT1 下降沿中断控制寄存器 ( 读 / 写 ) 符号 - - - - INT1F3 INT1F2 INT1F1 INT1F0 读 / 写 - - - - 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 x x x x 0 0 0 0 3~0 INT1Fn (n=0~3) INT1 下降沿中断控制 0 : INT1n 下降沿中断关闭 1: INT1n 下降沿中断使能 7~4 - 保留 INT1R (BDH) INT1 上升沿中断控制寄存器 ( 读 / 写 ) 符号 - - - - INT1R3 INT1R2 INT1R1 INT1R0 读 / 写 - - - - 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 x x x x 0 0 0 0 3~0 INT1Rn (n=0~3) INT1 上升沿中断控制 0 : INT1n 上升沿中断关闭 1: INT1n 上升沿中断使能 7~4 - 保留 INT2F (C6H) INT2 下降沿中断控制寄存器 ( 读 / 写 ) 符号 - - INT2F5 INT2F4 INT2F3 INT2F2 INT2F1 INT2F0 读 / 写 - - 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 x x 0 0 0 0 0 0 5~0 INT2Fn (n=0~5) INT2 下降沿中断控制 0 : INT2n 下降沿中断关闭 1: INT2n 下降沿中断使能 Page 33 of 88 V0.3

7~6 - 保留 INT2R (C7H) INT2 上升沿中断控制寄存器 ( 读 / 写 ) 符号 - - INT2R5 INT2R4 INT2R3 INT2R2 INT2R1 INT2R0 读 / 写 - - 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 x x 0 0 0 0 0 0 5~0 INT2Rn (n=0~5) INT2 上升沿中断控制 0 : INT2n 上升沿中断关闭 1: INT2n 上升沿中断使能 7~6 - 保留 10 定时器 TIMER0 TIMER1 SC92WL46X 单片机内部的两个 16 位定时器 / 计数器, 它们具有计数方式和定时方式两种工作模式 特殊功能寄存器 TMOD 中有一个控制位 C/Tx 来选择 T0 和 T1 是定时器还是计数器 它们本质上都是一个加法计数器, 只是计数的来源不同 定时器的来源为系统时钟或者其分频时钟, 但计数器的来源为外部管脚的输入脉冲 只有在 TRx=1 的时候,T0 和 T1 才会被打开计数 计数器模式下,P1.2/T0 和 P1.3/T1 管脚上的每一个脉冲,T0 和 T1 的计数值分别增加 1 定时器模式下, 可通过特殊功能寄存器 TMCON 来选择 T0 和 T1 的计数来源是 fsys/12 或 fsys (fsys 为分频后的系统时钟 ) 定时器 / 计数器 T0 有 4 种工作模式, 定时器 / 计数器 T1 有 3 种工作模式 ( 模式三不存在 ): 1 模式 0:13 位定时器 / 计数器模式 2 模式 1:16 位定时器 / 计数器模式 3 模式 2: 8 位自动重载模式 4 模式 3: 两个 8 位定时器 / 计数器模式在上述模式中,T0 和 T1 的模式 0 1 2 都相同, 模式 3 不同 10.1 T0 和 T1 相关特殊功能寄存器 符号地址说明 7 6 5 4 3 2 1 0 Reset 值 TCON 88H 定时器控制寄存器 TF1 TR1 TF0 TR0 IE1 - IE0-00000x0xb TMOD 89H 定时器工作模式寄存器 - C/T1 M11 M01 - C/T0 M10 M00 x000x000b TL0 8AH 定时器 0 低 8 位 TL0[7:0] 00000000b TL1 8BH 定时器 1 低 8 位 TL1[7:0] 00000000b TH0 8CH 定时器 0 高 8 位 TH0[7:0] 00000000b TH1 8DH 定时器 1 高 8 位 TH1[7:0] 00000000b TMCON 8EH 定时器频率控制寄存器 - - - - - T2FD T1FD T0FD xxxxx000b 各寄存器的解释说明如下 : TCON (88H) 定时器控制寄存器 ( 读 / 写 ) 符号 TF1 TR1 TF0 TR0 IE1 - IE0 - 读 / 写读 / 写读 / 写读 / 写读 / 写读 / 写 - 读 / 写 - 上电初始值 0 0 0 0 0 x 0 x 位编号位符号说明 7 TF1 T1 溢出中断请求标志 T1 产生溢出, 发生中断时, 硬件将 TF1 置为 1, 申请中断,CPU 响应时, 硬件清 0 Page 34 of 88 V0.3

6 TR1 定时器 T1 的运行控制位 此位由软件置 1 和清 0 当 TR1=1 时, 允许 T1 开始计数 TR1=0 时禁止 T1 计数 5 TF0 T0 溢出中断请求标志 T0 产生溢出, 发生中断时, 硬件将 TF0 置为 1, 申请中断,CPU 响应时, 硬件清 0 4 TR0 定时器 T0 的运行控制位 此位由软件置位和清 0 当 TR0=1 时, 允许 T0 开始计数 TR0=0 时禁止 T0 计数 2,0 - 保留 TMOD (89H) 定时器工作模式寄存器 ( 读 / 写 ) 符号 - C/T1 M11 M01 - C/T0 M10 M00 读 / 写 - 读 / 写 读 / 写 读 / 写 - 读 / 写 读 / 写 读 / 写 上电初始值 x 0 0 0 x 0 0 0 T1 T0 位编号位符号说明 6 C/T1 TMOD[6] 控制定时器 1 0: 定时器,T1 计数来源于 fsys 分频 1: 计数器,T1 计数来源于外部管脚 T1/P1.3 5~4 M11,M01 定时器 / 计数器 1 模式选择 00 : 13 位定时器 / 计数器,TL1 高 3 位无效 01 : 16 位定时器 / 计数器,TL1 和 TH1 全 10 : 8 位自动重载定时器, 溢出时将 TH1 存放的值自动重装入 TL1 11 : 定时器 / 计数器 1 无效 ( 停止计数 ) 2 C/T0 TMOD[2] 控制定时器 0 0: 定时器,T0 计数来源于 fsys 分频 1: 计数器,T0 计数来源于外部管脚 T0/P1.2 1~0 M10,M00 定时器 / 计数器 0 模式选择 00 : 13 位定时器 / 计数器,TL0 高 3 位无效 01 : 16 位定时器 / 计数器,TL0 和 TH0 全 10 : 8 位自动重载定时器, 溢出时将 TH0 存放的值自动重装入 TL0 11 : 定时器 0 此时作为双 8 位定时器 / 计数器 TL0 作为一个 8 位定时器 / 计数器, 通过标准定时器 0 的控制位控制 ;TH0 仅作为一个 8 位定时器, 由定时器 1 的控制位控制 7,3 - 保留 TMOD 寄存器中 TMOD[0]~TMOD[2] 是设置 T0 的工作模式 ;TMOD[4]~TMOD[6] 是设置 T1 的工作模式 定时器和计数器 Tx 功能由特殊功能寄存器 TMOD 的控制位 C/Tx 来选择,M0x 和 M1x 都是用来选择 Tx 的工作模式 TRx 作为 T0 和 T1 的开关控制, 只有 TRx=1 时 T0 和 T1 才打开 TMCON (8EH) 定时器频率控制寄存器 ( 读 / 写 ) 符号 - - - - - T2FD T1FD T0FD 读 / 写 - - - - - 读 / 写 读 / 写 读 / 写 上电初始值 x x x x x 0 0 0 位编号位符号说明 1 T1FD T1 输入频率选择控制 0:T1 频率源自于 fsys/12 1:T1 频率源自于 fsys 0 T0FD T0 输入频率选择控制 Page 35 of 88 V0.3

IE (A8H) 中断使能寄存器 ( 读 / 写 ) 0:T0 频率源自于 fsys/12 1:T0 频率源自于 fsys 符号 EA EADC ET2 - ET1 EINT1 ET0 EINT0 读 / 写 读 / 写 读 / 写 读 / 写 - 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 0 0 0 x 0 0 0 0 位编号位符号说明 3 ET1 Timer1 中断使能控制 0: 关闭 TIMER1 中断 1: 允许 TIMER1 中断 1 ET0 Timer0 中断使能控制 0: 关闭 TIMER0 中断 1: 允许 TIMER0 中断 IP (B8H) 中断优先级控制寄存器 ( 读 / 写 ) 符号 - IPADC IPT2 - IPT1 IPINT1 IPT0 IPINT0 读 / 写 - 读 / 写 读 / 写 - 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 x 0 0 x 0 0 0 0 位编号位符号说明 3 IPT1 Timer1 中断优先权 0: 设定 Timer 1 的中断优先权是 低 1: 设定 Timer 1 的中断优先权是 高 1 IPT0 Timer0 中断优先权 0: 设定 Timer 0 的中断优先权是 低 1: 设定 Timer 0 的中断优先权是 高 10.2 T0 工作模式 通过对寄存器 TMOD 中的 M10 M00(TMOD[1] TMOD[0]) 的设置, 定时器 / 计数器 0 可实现 4 种不同的工作模式 工作模式 0: 13 位计数器 / 定时器 TH0 寄存器存放 13 位计数器 / 定时器的高 8 位 (TH0.7~TH0.0), TL0 存放低 5 位 (TL0.4~TL0.0) TL0 的高三位 (TL0.7~TL0.5) 是不确定值, 读取时应被忽略掉 当 13 位定时器 / 计数器递增溢出时, 系统会将定时器溢出标志 TF0 置 1 如果定时器 0 中断被允许, 将会产生一个中断 C/T0 位选择计数器 / 定时器的时钟输入源 如果 C/T0=1, 定时器 0 输入脚 T0(P1.2) 的电平从高到低的变化, 会使定时器 0 数据寄存器加 1 如果 C/T0=0, 选择系统时钟的分频为定时器 0 的时钟源 当 TR0 置 1 打开定时器 T0 TR0 置 1 并不强行复位定时器, 意味着如果 TR0 置 1, 定时器寄存器将从上次 TR0 清 0 时的值开始计数 所以, 在允许定时器之前, 应该设定定时器寄存器的初始值 当作为定时器应用时, 可配置 T0FD 来选择时钟源的分频比例 Page 36 of 88 V0.3

fsys T0=P1.2 /12 T0FD=0 /1 T0FD=1 TMOD.2=0 (C/T0) TMOD.2=1 (C/T0) TL0 5 bit TH0 8 bit (TF0) TCON.5 T0 中断请求 (TR0) TCON.4 定时器 / 计数器工作模式 0: 13 位定时器 / 计数器 工作模式 1: 16 位计数器 / 定时器除了使用 16 位 (TL0 的 8 位数据全部有效 ) 计数器 / 定时器之外, 模式 1 和模式 0 的运行方式相同 打开和配置计数器 / 定时器方式也相同 fsys T0=P1.2 /12 T0FD=0 /1 T0FD=1 TMOD.2=0 (C/T0) (TR0) TCON.4 TMOD.2=1 (C/T0) TL0 8 bit 定时器 / 计数器工作模式 0: 16 位定时器 / 计数器 TH0 8 bit (TF0) TCON.5 T0 中断请求 工作模式 2: 8 位自动重载计数器 / 定时器在工作模式 2 中, 定时器 0 是 8 位自动重载计数器 / 定时器 TL0 存放计数值,TH0 存放重载值 当在 TL0 中的计数器溢出至 0x00 时, 定时器溢出标志 TF0 被置 1, 寄存器 TH0 的值被重载入寄存器 TL0 中 如果定时器中断使能, 当 TF0 置 1 时将产生一个中断, 但在 TH0 中的重载值不会改变 在允许定时器正确计数开始之前,TL0 必须初始化为所需要的值 除了自动重载功能外, 工作模式 2 中的计数器 / 定时器的使能和配置方式同模式 0 和 1 是相同的 当作为定时器应用时, 可配置寄存器 TMCON.0(T0FD) 来选择定时器时钟源被系统时钟 fsys 分频的比例 fsys T0=P1.2 /12 T0FD=0 /1 T0FD=1 TMOD.2=0 (C/T0) TMOD.2=1 (C/T0) (TR0) TCON.4 TL0 8 bit Set (TF0) TCON.5 T0 中断请求 TH0 8 bit 定时器 / 计数器工作模式 2: 自动重载的 8 位定时器 / 计数器 工作模式 3: 两个 8 位计数器 / 定时器 ( 仅限于定时器 0) 在工作模式 3 中, 定时器 0 用作两个独立的 8 位计数器 / 定时器, 分别由 TL0 和 TH0 控制 TL0 通过定时器 0 的控制位 ( 在 TCON 中 ) 和状态位 ( 在 TMOD 中 ):TR0 C/T0 TF0 控制 定时器 0 可通过 T0 的 TMOD.2(C/T0) Page 37 of 88 V0.3

来选择是定时器模式还是计数器模式 TH0 通过定时器 1 的控制 TCON 来设置相关的控制, 但 TH0 仅被限定为定时器模式, 无法通过 TMOD.2(C/T0) 来设定为计数器模式 TH0 由定时器控制位 TR1 的控制使能, 需设定 TR1=1 当发生溢出及产生中断时,TF1 会置 1, 并按 T1 发生中断来进行相应的处理 在 T0 被设为工作模式 3 时,TH0 定时器占用了 T1 的中断资源及 TCON 中寄存器,T1 的 16 位计数器会停止计数, 相当于 TR1=0 当采用 TH0 定时器工作时, 需设置 TR1=1 10.3 T1 工作模式 通过对寄存器 TMOD 中的 M11 M01(TMOD[5] TMOD[4]) 的设置, 定时器 / 计数器 1 可实现 3 种不同的工作模式 工作模式 0: 13 位计数器 / 定时器 TH1 寄存器存放 13 位计数器 / 定时器的高 8 位 (TH1.7~TH1.0);TL1 存放低 5 位 (TL1.4~TL1.0) TL1 的高三位 (TL1.7~TL1.5) 是不确定值, 读取时应被忽略掉 当 13 位定时器计数器递增溢出时, 系统会将定时器溢出标志 TF1 置 1 如果定时器 1 中断被允许, 将会产生一个中断 C/T1 位选择计数器 / 定时器的时钟源 如果 C/T1=1, 定时器 1 输入脚 T1(P1.3) 的电平从高到低的变化, 会使定时器 1 数据寄存器加 1 如果 C/T1=0, 选择系统时钟的分频为定时器 1 的时钟源 TR1 置 1 打开定时器 TR1 置 1 并不强行复位定时器, 意味着如果 TR1 置 1, 定时器寄存器将从上次 TR1 清 0 时的值开始计数 所以, 在允许定时器之前, 应该设定定时器寄存器的初始值 当作为定时器应用时, 可配置 T1FD 来选择时钟源的分频比例 fsys T1=P1.3 /12 T1FD=0 /1 T1FD=1 TMOD.6=0 (C/T1) (TR1) TCON.6 TMOD.6=1 (C/T1) TL1 5 bit TH1 8 bit (TF1) TCON.7 T1 中断请求 定时器 / 计数器工作模式 0: 13 位定时器 / 计数器工作模式 1: 16 位计数器 / 定时器除了使用 16 位 (TL1 的 8 位数据全部有效 ) 计数器 / 定时器之外, 模式 1 和模式 0 的运行方式相同 打开和配置计数器 / 定时器方式也相同 fsys T1=P1.3 /12 T1FD=0 /1 T1FD=1 TMOD.6=0 (C/T1) TMOD.6=1 (C/T1) TL1 8 bit TH1 8 bit (TF1) TCON.7 T1 中断请求 (TR1) TCON.6 定时器 / 计数器工作模式 0: 16 位定时器 / 计数器 工作模式 2: 8 位自动重载计数器 / 计数器在工作模式 2 中, 定时器 1 是 8 位自动重载计数器 / 定时器 TL1 存放计数值,TH1 存放重载值 当在 TL1 中的计数器溢出至 0x00 时, 定时器溢出标志 TF1 被置 1, 寄存器 TH1 的值被重载入寄存器 TL1 中 如果定时器中断使能, 当 TF1 置 1 时将产生一个中断, 但在 TH1 中的重载值不会改变 在允许定时器正确计数开始之前,TL1 必须初始化为所需要的值 除了自动重载功能外, 工作模式 2 中的计数器 / 定时器的使能和配置方式同方式 0 和 1 是相同的 Page 38 of 88 V0.3

当作为定时器应用时, 可配置寄存器 TMCON.4(T1FD) 来选择定时器时钟源被系统时钟 fsys 分频的比例 fsys T1=P1.3 /12 T1FD=0 /1 T1FD=1 TMOD.6=0 (C/T1) TMOD.6=1 (C/T1) (TR1) TCON.6 TL1 8 bit Set TCON.7 T1 中断请求 TH1 8 bit 定时器 / 计数器工作模式 2: 自动重载的 8 位定时器 / 计数器 11 定时器 TIMER2 SC92WL46X 单片机内部的 Timer2 具有计数方式和定时方式两种工作模式 特殊功能寄存器 T2CON 中有一个控制位 C/T2 来选择 T2 是定时器还是计数器 它们本质上都是一个加法计数器, 只是计数的来源不同 定时器的来源为系统时钟或者其分频时钟, 但计数器的来源为外部管脚的输入脉冲 TR2 是 T2 在定时器 / 计数器模式计数的开关控制, 只有在 TR2=1 的时候,T2 才会被打开计数 计数器模式下,T2 管脚上的每一个脉冲,T2 的计数值分别增加 1 定时器模式下, 可通过特殊功能寄存器 TMCON 来选择 T2 的计数来源是 fsys/12 或 fsys 定时器 / 计数器 T2 有 4 种工作模式 : 1 模式 0:16 位捕获模式 2 模式 1:16 位自动重载定时器模式 3 模式 2: 波特率发生器模式 4 模式 3: 可编程时钟输出模式 11.1 T2 相关特殊功能寄存器 符号地址说明 7 6 5 4 3 2 1 0 Reset 值 T2CON C8H 定时器 2 控制寄存器 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 00000000b T2MOD C9H 定时器 2 工作模式寄存器 - - - - - - T2OE DCEN xxxxxx00b RCAP2L CAH 定时器 2 重载 / 捕捉低 8 位 RCAP2L[7:0] 00000000b RCAP2H CBH 定时器 2 重载 / 捕捉高 8 位 RCAP2H[7:0] 00000000b TL2 CCH 定时器 2 低 8 位 TL2[7:0] 00000000b TH2 CDH 定时器 2 高 8 位 TH2[7:0] 00000000b TMCON 8EH 定时器频率控制寄存器 - - - - - T2FD T1FD T0FD xxxxx000b 各寄存器的解释说明如下 : T2CON (C8H) 定时器 2 控制寄存器 ( 读 / 写 ) 符号 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 读 / 写 7 TF2 定时器 2 溢出标志位 0: 无溢出 ( 必须由软件清 0) 1: 溢出 ( 如果 RCLK = 0 和 TCLK = 0, 由硬件设 1) Page 39 of 88 V0.3

6 EXF2 T2 引脚外部事件输入 ( 下降沿 ) 被检测到的标志位 0: 无外部事件输入 ( 必须由软件清 0) 1: 检测到外部输入 ( 如果 EXEN2 = 1, 由硬件设 1) 5 RCLK UART 接收时钟控制位 0: 定时器 1 产生接收波特率 1: 定时器 2 产生接收波特率 4 TCLK UART 发送时钟控制位 0: 定时器 1 产生发送波特率 1: 定时器 2 产生发送波特率 3 EXEN2 T2 引脚上的外部事件输入 ( 下降沿 ) 用作重载 / 捕获触发器允许 / 禁止控制 : 0: 忽略 T2 引脚上的事件 1: 当定时器 2 不做为 UART 时钟 (T2EX 始终包括上拉电阻 ) 时, 检测到 T2 引脚上一个下降沿, 产生一个捕获或重载 2 TR2 定时器 2 开始 / 停止控制位 0: 停止定时器 2 1: 开始定时器 2 1 C/T2 定时器 2 定时器 / 计数器方式选定位 2 0: 定时器方式,T2 引脚用作 I/O 端口 1: 计数器方式 0 CP/RL2 捕获 / 重载方式选定位 0:16 位带重载功能的定时器 / 计数器 1:16 位带捕获功能的定时器 / 计数器,T2EX 为定时器 2 外部捕获信号输入口 T2MOD (C9H) 定时器 2 工作模式寄存器 ( 读 / 写 ) 符号 - - - - - - T2OE DCEN 读 / 写 - - - - - - 读 / 写 读 / 写 上电初始值 x x x x x x 0 0 1 T2OE 定时器 2 输出允许位 0: 设置 T2 作为时钟输入或 I/O 端口 1: 设置 T2 作为时钟输出 0 DCEN 递减计数允许位 0: 禁止定时器 2 作为递增 / 递减计数器, 定时器 2 仅作为递增计数器 1: 允许定时器 2 作为递增 / 递减计数器 7~2 - 保留 TMCON (8EH) 定时器频率控制寄存器 ( 读 / 写 ) 符号 - - - - - T2FD T1FD T0FD 读 / 写 - - - - - 读 / 写 读 / 写 读 / 写 上电初始值 x x x x x 0 0 0 位编号位符号说明 2 T2FD T2 输入频率选择控制 0:T2 频率源自于 fsys/12 1:T2 频率源自于 fsys IE (A8H) 中断使能寄存器 ( 读 / 写 ) Page 40 of 88 V0.3

符号 EA EADC ET2 - ET1 EINT1 ET0 EINT0 读 / 写 读 / 写 读 / 写 读 / 写 - 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 0 0 0 x 0 0 0 0 位编号位符号说明 5 ET2 Timer2 中断使能控制 0: 关闭 TIMER2 中断 1: 允许 TIMER2 中断 IP (B8H) 中断优先级控制寄存器 ( 读 / 写 ) 符号 - IPADC IPT2 - IPT1 IPINT1 IPT0 IPINT0 读 / 写 - 读 / 写 读 / 写 - 读 / 写 读 / 写 读 / 写 读 / 写 上电初始值 x 0 0 x 0 0 0 0 5 IPT2 Timer2 中断优先权 0: 设定 Timer 2 的中断优先权是 低 1: 设定 Timer 2 的中断优先权是 高 11.2 T2 工作模式 定时器 2 工作模式与配置方式如下表 : C/T2 T2OE DCEN TR2 CP/RL2 RCLK TCLK 方式 X 0 X 1 1 0 0 0 16 位捕获 X 0 0 1 0 0 0 1 16 位自动重载定时器 X 0 1 1 0 0 0 X 0 X 1 X 1 X 2 波特率发生器 X 1 0 1 X 1 X 0 0 3 只用于可编程时钟 1 X 3 带波特率发生器的可编程时 X 1 钟输出 X X X 0 X X X X 定时器 2 停止,T2EX 通路仍旧允许 1 1 X 1 X X X 不推荐使用 工作模式 0: 16 位捕获在捕获方式中,T2CON 的 EXEN2 位有两个选项 如果 EXEN2 = 0, 定时器 2 作为 16 位定时器或计数器, 如果 ET2 被允许的话, 定时器 2 能设置 TF2 溢出产生一个中断 如果 EXEN2 = 1, 定时器 2 执行相同操作, 但是在外部输入 T2EX 上的下降沿也能引起在 TH2 和 TL2 中的当前值分别被捕获到 RCAP2H 和 RCAP2L 中, 此外, 在 T2EX 上的下降沿也能引起在 T2CON 中的 EXF2 被设置 如果 ET2 被允许,EXF2 位也像 TF2 一样也产生一个中断 Page 41 of 88 V0.3

T2FD = 0 fsys /12 /1 C/T2 = 0 T2FD = 1 TL2 TH2 TF2 T2 C/T2 = 1 TR2 Overflow Timer2 T2EX CP/RL2 & RCAP2L EXF2 RCAP2H EXEN2 模式 0: 16 位捕获 工作模式 1: 16 位自动重载定时器在 16 位自动重载方式下, 定時器 2 可以被选为递增计数或递减计数 这个功能通过 T2MOD 中的 DCEN 位 ( 递减计数允许 ) 选择 系统复位后,DCEN 位复位值为 0, 定时器 2 默认递增计数 当 DCEN 置 1 时, 定时器 2 递增计数或递减计数取决于 T2EX 引脚上的电平 当 DCEN = 0, 通过在 T2CON 中的 EXEN2 位选择两个选项 如果 EXEN2 = 0, 定时器 2 递增到 0xFFFFH, 在溢出后置起 TF2 位, 同时定时器自动将用户软件写好的寄存器 RCAP2H 和 RCAP2L 的 16 位值装入 TH2 和 TL2 寄存器 如果 EXEN2 = 1, 溢出或在外部输入 T2EX 上的下降沿都能触发一个 16 位重载, 置起 EXF2 位 如果 ET2 被使能,TF2 和 EXF2 位都能产生一个中断 T2 fsys T2FD = 0 /12 /1 T2FD = 1 C/T2 = 0 C/T2 = 1 TR2 Reload TL2 TH2 RCAP2L RCAP2H Overflow TF2 Timer2 T2EX EXF2 EXEN2 模式 1: 16 位自动重载 DCEN = 0 设置 DCEN 位允许定时器 2 递增计数或递减计数 当 DCEN = 1 时,T2EX 引脚控制计数的方向, 而 EXEN2 控制无效 T2EX 置 1 可使定时器 2 递增计数 定时器向 0xFFFFH 溢出, 然后设置 TF2 位 溢出也能分别引起 RCAP2H 和 RCAP2L 上的 16 位值重载入定时器寄存器 T2EX 置 0 可使定时器 2 递减计数 当 TH2 和 TL2 的值等于 RCAP2H 和 RCAP2L 的值时, 定时器溢出 置起 TF2 位, 同时 0xFFFFH 重载入定时器寄存器 无论定时器 2 溢出与否,EXF2 位都被用作结果的第 17 位 在此工作方式下,EXF2 不作为中断标志 Page 42 of 88 V0.3

fsys T2FD = 0 /12 /1 T2FD = 1 C/T2 = 0 0xFFH TL2 0xFFH TH2 Toggle EXF2 TF2 T2 C/T2 = 1 TR2 RCAP2L RCAP2H T2EX 1 = UP 0 = DOWN 模式 1: 16 位自动重载 DCEN = 1 工作模式 2: 波特率发生器通设置 T2CON 寄存器中的 TCLK 和 / 或 RCLK 选择定时器 2 作为波特率发生器 接收器和发送器的波特率可以不同 如果定时器 2 作为接收器或发送器, 则定时器 1 相应的作为另一种的波特率发生器设置 T2CON 寄存器中的 TCLK 和 / 或 RCLK 使定时器 2 进入波特率发生器方式, 该方式与自动重载方式相似 定时器 2 的溢出会使 RCAP2H 和 RCAP2L 寄存器中的值重载入定时器 2 计数, 但不会产生中断如果 EXEN2 被置 1, 在 T2EX 脚上的下降沿会置起 EXF2, 但不会引起重载 因此当定时器 2 作为波特率发送器时,T2EX 可作为一个额外的外部中断在 UART 方式 1 和 3 中的波特率由定时器 2 的溢出率根据下列方程式决定 : BaudRate = 定时器 2 作为波特率发生器的原理图如下 : Fsys T2 C/T2 = 0 C/T2 = 1 fsys [RCAP2H,RCAP2L] ; ( 注意 :[RCAP2H,RCAP2L] 必须大于 0x0010) TR2 TL2 TH2 "1" "0" TR1=0 Timer1 Overflow RCLK Rx Clock T2EX EXF2 RCAP2L Timer2 Interrupt RCAP2H "1" "0" TCLK Tx Clock EXEN2 工作模式 3: 可编程时钟输出 模式 2: 波特率发生器 在这种方式中,T2 可以编程为输出 50% 的占空比时钟周期 : 当 C/T2 钟发生器 在这种方式中,T2 输出占空比为 50% 的时钟 其中, fn2 为定时器 2 时钟频率 : Colck Out Frequency = fn2 (65536 [RCAP2H,RCAP2L]) 4 ; = 0;T2OE = 1, 使能定时器 2 作为时 Page 43 of 88 V0.3

fn2 = fsys 12 ; T2FD = 0 fn2 = fsys; T2FD = 1 定时器 2 溢出不产生中断,T2 端口作时钟输出 Fsys /2 T2FD = 0 /12 /1 T2FD = 1 TR2 TL2 TH2 C/T2 RCAP2L RCAP2H 注意 : T2 T2EX EXEN2 模式 3: 可编程时钟输出 EXF2 Timer2 Interrupt 1. TF2 和 EXF2 都能引起定时器 2 的中断请求, 两者有相同的向量地址 ; 2. 当事件发生时或其它任何时间都能由软件设置 TF2 和 EXF2 为 1, 只有软件以及硬件复位才能使之清 0; 3. 当 EA = 1 且 ET2 = 1 时, 设置 TF2 或 EXF2 为 1 能引起定时器 2 中断 ; 4. 当定时器 2 作为波特率发生器时, 写入 TH2/TL2 或 RCAP2H/RCAP2L 会影响波特率的准确性, 引起通信出错 T2OE Page 44 of 88 V0.3

12 乘除法器 SC92WL46X 提供了 1 个 16 位的乘除法器, 由扩展累加器 EXA0~EXA3 扩展 B 寄存器 EXB 和运算控制寄存器 OPERCON 组成 可取代软件进行 16 位 16 位乘法运算和 32 位 /16 位除法运算 符号地址说明 7 6 5 4 3 2 1 0 Reset 值 EXA0 E9H 扩展累加器 0 EXA [7:0] 00000000b EXA1 EAH 扩展累加器 1 EXA [15:8] 00000000b EXA2 EBH 扩展累加器 2 EXA [23:16] 00000000b EXA3 ECH 扩展累加器 3 EXA [31:24] 00000000b EXBL EDH 扩展 B 寄存器 L EXB [7:0] 00000000b EXBH EEH 扩展 B 寄存器 H EXB [15:8] 00000000b OPERCON (EFH) 运算控制寄存器 ( 读 / 写 ) 符号 OPERS MD - - - - - CHKSUMS 读 / 写 读 / 写 读 / 写 - - - - - 读 / 写 上电初始值 0 0 x x x x x 0 7 OPERS 乘除法器运算开始触发控制 (Operater Start) 对此 bit 写 1, 开始做一次乘除法计算, 即该位只是乘除法器开始计算的触发信号, 当该位为零这说明计算已完成 此位只可写入 1 有效 6 MD 乘除法选择 0: 乘法运算, 被乘数和乘数的写入 乘积的读取如下 : 字节运算数 字节 3 字节 2 字节 1 字节 0 被乘数 16bit - - EXA1 EXA0 乘数 16bit - - EXBH EXBL 乘积 32bit EXA3 EXA2 EXA1 EXA0 1: 除法运算, 被除数和除数的写入 商和余数的读取如下 : 字节运算数 字节 3 字节 2 字节 1 字节 0 被除数 32bit EXA3 EXA2 EXA1 EXA0 除数 16bit - - EXBH EXBL 商 32bit EXA3 EXA2 EXA1 EXA0 余数 16bit - - EXBH EXBL 注 : 1. 在执行运算操作过程中, 禁止对 EXA 和 EXB 数据寄存器执行读或写动作 2. 乘除法器运算转换所需时间为 16/fSYS Page 45 of 88 V0.3