SONiX SN8P1917 User Manual

SN8P1917
SN8P1917
Remote Controller 8-Bit Micro-Controller
用户参考手册
V1.2
ONNiiXX 88
SSO
SONiX 公司保留对以下所有产品在可靠性,功能和设计方面的改进作进一步说明的权利。SONiX 不承担由本手册所 涉及的产品或电路的运用和使用所引起的任何责任,SONiX 的产品不是专门设计来应用于外科植入、生命维持和任何 SONiX 产品的故障会对个体造成伤害甚至死亡的领域。如果将 SONiX 的产品应用于上述领域,即使这些是由 SONiX 产品设计和制造上的疏忽引起的,用户应赔偿所有费用、损失、合理的人身伤害或死亡所直接或间接产生的律师费用,并 且用户保证 SONiX 及其雇员、子公司、分支机构和销售商与上述事宜无关。
SONiX TECHNOLOGY CO., LTD Page 1 Version1.2
版本 日期 说明
VER 1.0
VER1.1
VER1.2
2006 12 初版
2007 年 9 月 删除 P-DIP48PIN 的封装。
2008 年 3 月
2008 年 5 月 4. 修改烧录信息章节。
SN8P1917
Remote Controller 8-Bit Micro-Controller
修改记录
1. 增加单片机正印命名规则。
2. 修改电气特性。
3. 增加 LCD 电路。
SONiX TECHNOLOGY CO., LTD Page 2 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
目 录
修改记录................................................................................................................................................................................................ 2
目 录................................................................................................................................................................................................ 3
1
1
产品简介 ......................................................................................................................................................................................
1
1.1 产品性能表 .........................................................................................................................................................................6
1.2 产品资源配置改良表........................................................................................................................................................... 6
1.3 功能特性............................................................................................................................................................................. 7
1.4 系统时钟框图...................................................................................................................................................................... 8
1.5 引脚配置............................................................................................................................................................................. 9
1.6 引脚说明............................................................................................................................................................................. 9
1.7 引脚电路结构图 ................................................................................................................................................................ 10
2
2
中央处理器(CPU..................................................................................................................................................................
2
2.1 存储器 .............................................................................................................................................................................. 11
2.1.1 程序存储器(ROM)................................................................................................................................................... 11
2.1.2 编译选项表(CODE OPTION.................................................................................................................................. 18
2.1.3 数据存储器(RAM................................................................................................................................................... 18
2.1.4 系统寄存器 .................................................................................................................................................................. 19
2.2 寻址模式........................................................................................................................................................................... 25
2.2.1 立即寻址...................................................................................................................................................................... 25
2.2.2 直接寻址...................................................................................................................................................................... 25
2.2.3 间接寻址...................................................................................................................................................................... 25
2.3 堆栈.................................................................................................................................................................................. 26
2.3.1 概述 ............................................................................................................................................................................. 26
2.3.2 堆栈寄存器 .................................................................................................................................................................. 27
2.3.3 堆栈操作举例............................................................................................................................................................... 28
3
3
复位 ...........................................................................................................................................................................................
3
3.1 概述.................................................................................................................................................................................. 29
3.2 上电复位........................................................................................................................................................................... 30
3.3 看门狗复位 .......................................................................................................................................................................30
3.4 掉电复位........................................................................................................................................................................... 31
3.4.1 掉电 ............................................................................................................................................................................. 31
3.4.2 系统工作电压............................................................................................................................................................... 31
3.4.3 掉电复位性能改进........................................................................................................................................................ 32
3.5 外部复位........................................................................................................................................................................... 33
3.6 外部复位电路.................................................................................................................................................................... 34
3.6.1 基本RC复位电路.......................................................................................................................................................... 34
3.6.2 二极管及RC复位电路 .................................................................................................................................................. 34
3.6.3 稳压二极管复位电路 .................................................................................................................................................... 35
3.6.4 电压偏移复位电路........................................................................................................................................................ 35
3.6.5 外部IC复位 .................................................................................................................................................................. 36
4
4
系统时钟 ....................................................................................................................................................................................
4
4.1 概述.................................................................................................................................................................................. 37
4.2 时钟框图........................................................................................................................................................................... 37
4.3 OSCM振荡器.................................................................................................................................................................... 38
4.4 系统高速时钟.................................................................................................................................................................... 39
4.4.1 内部高速RC................................................................................................................................................................. 39
4.4.2 外部高速时钟............................................................................................................................................................... 40
4.5 系统低速时钟.................................................................................................................................................................... 41
4.5.1 系统时钟测试............................................................................................................................................................... 41
5
5
系统工作模式 .............................................................................................................................................................................
5
5.1 概述.................................................................................................................................................................................. 42
5.2 系统模式切换.................................................................................................................................................................... 43
5.3 唤醒时间........................................................................................................................................................................... 43
5.3.1 概述 ............................................................................................................................................................................. 43
5.3.2 唤醒时间...................................................................................................................................................................... 43
6
6
中断 ...........................................................................................................................................................................................
6
6.1 概述.................................................................................................................................................................................. 44
6.2 中断请求使能寄存器INTEN .............................................................................................................................................. 44
6.3 中断请求寄存器INTRQ..................................................................................................................................................... 45
6.4 GIE全局中断..................................................................................................................................................................... 45
6.5 PUSH, POP处理............................................................................................................................................................... 46
6.6 INT0 (P0.0) 中断 ..............................................................................................................................................................47
6.7 T0 中断............................................................................................................................................................................. 48
11
29
37
42
44
6
SONiX TECHNOLOGY CO., LTD Page 3 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
6.8 多中断操作举例 ................................................................................................................................................................ 49
7
7
I/O..........................................................................................................................................................................................
7
7.1 I/O口模式 ......................................................................................................................................................................... 50
7.2 I/O口上拉电阻寄存器........................................................................................................................................................ 50
7.3 I/O口数据寄存器............................................................................................................................................................... 51
8
8
定时器........................................................................................................................................................................................
8
8.1 看门狗定时器(WDT.................................................................................................................................................... 52
8.2 定时/计数器T0.................................................................................................................................................................. 53
8.2.1 概述 ............................................................................................................................................................................. 53
8.2.2 T0M模式寄存器 ........................................................................................................................................................... 53
8.2.3 T0C计数寄存器............................................................................................................................................................ 54
8.2.4 T0 操作流程................................................................................................................................................................. 54
9
9
LCD驱动 ....................................................................................................................................................................................
9
9.1 LCDM1 寄存器 ................................................................................................................................................................. 55
9.2 LCD时序........................................................................................................................................................................... 56
9.3 LCD RAM地址 .................................................................................................................................................................. 58
9.4 LCD电路........................................................................................................................................................................... 59
0
1
0
1
CHARGE-PUMP,PGIA和ADC ................................................................................................................................................
0
1
10.1 概述.................................................................................................................................................................................. 60
10.2 模拟信号输入....................................................................................................................................................................60
10.3 CHARGE PUMP / REGULATOR (CPR) .................................................................................................................................... 61
10.3.1 CPM-CHARGE PUMP模式寄存器.......................................................................................................................... 61
10.3.2 CPCKS-Charge Pump时钟寄存器 .......................................................................................................................... 63
10.4 PGIA 可编程增益放大器 ................................................................................................................................................. 65
10.4.1 AMPM- 放大器工作模式寄存器 .............................................................................................................................. 65
10.4.2 AMPCKS- PGIA时钟选择寄存器............................................................................................................................. 66
10.4.3 AMPCHS-PGIA通道选择 ........................................................................................................................................ 67
10.4.4 温度传感器(TS.................................................................................................................................................. 68
10.5 16 位ADC ......................................................................................................................................................................... 70
10.5.1 ADCM- ADC工作模式寄存器 .................................................................................................................................. 70
10.5.2 ADCKS- ADC时钟寄存器........................................................................................................................................ 72
10.5.3 ADCDL- ADC低字节数据寄存器 ............................................................................................................................. 73
10.5.4 ADCDH- ADC高字节数据寄存器 ............................................................................................................................ 73
10.5.5 DFM-ADC数字滤波模式寄存器............................................................................................................................... 74
10.5.6 LBTM-电池低电压检测寄存器 ................................................................................................................................. 76
10.5.7 模拟部分电路设置和应用 ........................................................................................................................................ 77
1
1
1
1
应用电路 ...............................................................................................................................................................................
1
1
11.1 电子秤(LOAD CELL)应用电路......................................................................................................................................... 78
11.2 温度计应用电路................................................................................................................................................................ 79
2
1
2
1
指令集 ...................................................................................................................................................................................
2
1
3
1
3
1
开发工具 ...............................................................................................................................................................................
3
1
13.1 开发工具版本....................................................................................................................................................................81
13.1.1 ICE(在线仿真器) ................................................................................................................................................ 81
13.1.2 OTP烧录器 ............................................................................................................................................................. 81
13.1.3 集成开发环境(IDE)............................................................................................................................................. 81
4
1
4
1
OTP烧录信息.............................................................................................................................................................................
4
1
14.1 烧录转接板信息................................................................................................................................................................ 82
14.2 SN8P1917 烧录引脚信息 ................................................................................................................................................. 84
5
1
5
1
电气特性 ...............................................................................................................................................................................
5
1
15.1 极限参数........................................................................................................................................................................... 85
15.2 电气特性........................................................................................................................................................................... 85
6
1
6
1
SN8P1907 升级为SN8P1917 注意事项 .....................................................................................................................................
6
1
16.1 性能改进描述....................................................................................................................................................................87
16.1.1 脚位图..................................................................................................................................................................... 87
16.1.2 改良规格对照表 ...................................................................................................................................................... 89
16.2 升级注意实现....................................................................................................................................................................90
16.2.1 硬件 ........................................................................................................................................................................90
16.2.2 开发工具要求.......................................................................................................................................................... 91
16.2.3 文件需求 ................................................................................................................................................................. 91
16.2.4 烧录方式不同.......................................................................................................................................................... 91
16.2.5 Code option的差异 ................................................................................................................................................. 91
16.2.6 软件初始化设定差异 ...............................................................................................................................................92
16.3 其它.................................................................................................................................................................................. 94
16.3.1 其它应该注意的事项 ...............................................................................................................................................94
50
52
55
60
78
80 81
82
85
87
SONiX TECHNOLOGY CO., LTD Page 4 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
16.3.2 滑动平均算法原理................................................................................................................................................... 94
16.3.3 数据稳定的判断方法 ...............................................................................................................................................94
16.3.4 消除电磁干扰的一般方法 ........................................................................................................................................ 94
7
1
7
1
封装.......................................................................................................................................................................................
7
1
17.1 SSOP 48 PIN.................................................................................................................................................................... 95
8
1
8
1
单片机正印命名规则..............................................................................................................................................................
8
1
18.1 概述.................................................................................................................................................................................. 96
18.2 单片机型号说明................................................................................................................................................................ 96
18.3 命名举例........................................................................................................................................................................... 97
18.4 日期码规则....................................................................................................................................................................... 97
95
96
SONiX TECHNOLOGY CO., LTD Page 5 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
1
1
1

产品简介

1.1 产品性能表

单片机型号
SN8P1907 2K*16 128*8 8 4*12 V - - 11 SN8P1917 2K*16 128*8 8 4*12 V - - 13
ROM RAM
堆栈
LCD
定时器
T0 TC0 TC1
1‑ 1 SN8P1917 性能列表
I/O ADC
16 16
PWM
Buzzer
- - 5 SSOP48
- - 5 SSOP48
SIO
唤醒功能 引脚数目

1.2 产品资源配置改良表

SN8P1907 升级到 SN8P1917
项目
PGIA 增益设置 1x12.5x50x100x,200x 1x,16x32x64x128x PGIA 温度漂移 良好 一般
AVE+电压 3.0V 1.5V
内置参考电压 V(R+, R-) 0.8V 0.4V
电池检测方法 通过比较器或者 ADC
温度传感器 内置 外置
ACM (1.2V)电压 当有外灌电流时,电压不会变化 当有外灌电流时,电压发生变化
Charge pump 时钟频率(CPCKS) 4 位 2
Chopper 时钟频率 (AMPCKS) 3 2
Charge pump Regulator 能否在低速模式下工作 不能
高速模式中的功耗 多 低速模式中的功耗
LCD 偏压 1/3 1/2
内部 16M RC 振荡器
P2 [1:0] I/O
OTP 烧录方式 串行 并行
12 SN8P1917 资源配置改良表
SN8P1917 SN8P1907
当 Fosc=IHRC 时有效
封装形式
3.0V
0.8V ADC
1/2
SONiX TECHNOLOGY CO., LTD Page 6 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

1.3 功能特性

存储器配置 2 个中断源
OTP ROM 空间:2K * 16 位。 RAM 空间:128 字节(bank 0)。 8 层堆栈缓存器。 LCD RAM:4*12 位。 ◆ 单电源输入:2.4V ~5.5V
I/O 引脚配置 ◆ 内置看门狗定时器 单向输入端口:P0、P4。 ◆ 内置具有 3.8V 电压输出和 10mA 驱动电流的 charge-pump 双向输入输出端口:P1、P2。 单向输出端口:P5。 具有唤醒功能的端口:P0、P1。 ◆ 内置 3.0V/1.5V 电压输出的 regulator 内置上拉电阻的端口:P0、P1、P2、P4。 ◆ 内置参考电压 1.2V Band gap,用来监控电池电压 外部中断引脚:P0。 ◆ 内置电压比较器
◆ 强大的指令系统 ◆ 内置 ADC 参考电压 V(R+,R-)=0.8V/0.4V 一条指令需要 4 个时钟周期。 所有的指令均为一个字长。 ◆ 内置温度传感器 绝大部分指令只需要一个周期。 LCD 驱动 指令的最长周期为 2 个指令周期。 JMP 指令可在整个 ROM 区执行。 查表指令(MOVC)可寻址整个 ROM 区。
◆ 可编程增益放大器 增益可选选项:1x/12.5x/50x/100x/200x
◆ 16位 Delta-Sigma ADC,具有 14 位精度
2 ADC 信道配置: 1 个全差分通道。 2 个单端输入通道。 ◆ 封装
1 个内部中断:T0 1 个外部中断:INT0
regulator
1/3 1/2 偏压。 4 common * 12 segment
◆ 双时钟系统提供 3 种工作模式
外部高速时钟:RC 模式,高达 10MHz 外部高速时钟:晶体模式,高达 8 MHz。 普通模式:高、低速时钟同时运行。 低速模式:仅低速时钟运行。 睡眠模式:高、低速时钟均停止运行。
SSOP48
SONiX TECHNOLOGY CO., LTD Page 7 Version1.2

1.4 系统时钟框图

PC
SN8P1917
Remote Controller 8-Bit Micro-Controller
内部高速RC
振荡时钟
IR
FLAGS
ACC
中断控制
ALU
OTP
ROM
外部高速振
荡时钟
定时器&计数器
内部低速RC
时序产生器
RAM
系统寄存器
振荡时钟
LVD
(低电压检测)
看门狗定时器
Charge Pump
Regulator
PGIA
比较器
16ADC
内部参考源
电池检测的内
ADC通道
AVDDCP
AVDDR
AVE+
AI+/AI-
LBTIN2/1
R+/R-
P0 P5 P4
P1 P2
SONiX TECHNOLOGY CO., LTD Page 8 Version1.2

1.5 引脚配置

SN8P1917
Remote Controller 8-Bit Micro-Controller
SEG4 1 48 SEG5 SEG3 2 47 SEG6 SEG2 3 46 SEG7 SEG1 4 45 SEG8
SEG0 5 44 SEG9 COM3 6 43 SEG10 COM2 7 42 SEG11 COM1 8 41 VPP/RST COM0 9 40 VSS
VLCD 10 39 P5.2
R+ 11 38 P5.1
R- 12 37 P5.0
X+ 13 36 P4.2/LBTIN2
X- 14 35 P4.1/LBTIN1
AI+ 15 34 P4.0
AI- 16 33 P1.3
AVSS 17 32 P1.2
ACM 18 31 P1.1 ADDR 19 30 P1.0
AVE+ 20 29 P0.0/INT0
AVDDCP 21 28 VDD
C+ 22 27 XOUT/P2.1
VDD 23 26 XIN/P2.0
C- 24 25 VSS

1.6 引脚说明

引脚名称 类型 说明
VDD, VSS, AVSS P
VLCD P
AVDDR P
AVE+ P
ACM P
AVDDCP P
R+ AI
R- AI
X+ AI
X- AI
AI+ AI
AI- AI C+ A
C- A
VPP/ RST P, I
XIN, XOUT I, O P0.0 / INT0 I
P1 [3:0] I/O P2 [1:0] I/O P4 [2:0] I P5 [2:0] O
LBTIN1/2 I I
COM [3:0] O
SEG0 ~ SEG11 O
电源输入端。 LCD 电源输入端。 Regulator 电源输出引脚,V=3.8V。 传感器的 Regulator 输出 = 3.0V/1.5V,最大输出电流为 10 mA Band Gap 电源输出为 1.2V。 Charge Pump 电压输出(和 VDD 之间连接一个 2.2uF 或者更大的电容)。
参考源的正极输入端。 参考源的负极输入端。
ADC 差分的正极输入端,和 X-引脚之间连接一个 0.01uF 的电容。 ADC 差分的负极输入端。
模拟输入通道的正极输入端。 模拟输入通道的负极输入端。
charge pump regulator 电极电容的正极。 charge pump regulator 电极电容的负极。 OTP ROM 的烧录引脚。
系统复位输入端,施密特触发,低电平有效,通常保持高电平。 振荡信号的输入输出引脚。 P 0.0 和 INT0 共用引脚,施密特触发,内置上拉电阻。 双向输入输出引脚,具有唤醒功能,内置上拉电阻。
双向输入输出引脚,内置上拉电阻,和 XIN/XOUT 引脚共用。 单向输入引脚,内置上拉电阻。 单向输出引脚。 电池低电压检测输入引脚,和 P4.1、P4.2 引脚共用。
COM0~COM3 LCD 驱动 COM 端。 LCD 驱动 segment 引脚。
SONiX TECHNOLOGY CO., LTD Page 9 Version1.2

1.7 引脚电路结构图

P0
、P4:
Pull-Up
SN8P1917
Remote Controller 8-Bit Micro-Controller
P5
P1
Pin
Input Bus
Pin
Output
Latch
Output Bus
Pull-Up
PnM
PnM, PnUR
Input Bus
Pin
P2
Pin
Oscillator
Code Option
PnM
Pull-Up
PnM, PnUR
Output
Latch
Output
Latch
Output Bus
Input Bus
Output Bus
Int. Osc.
SONiX TECHNOLOGY CO., LTD Page 10 Version1.2
2
2
2

中央处理器(CPU

2.1 存储器

2.1.1 程序存储器(ROM

) ROM
2.1.1.1 复位向量(0000H
2K
0000H 0001H
0002H 0003H 0004H 0005H 0006H 0007H
0008H 0009H
.
. 000FH 0010H 0011H
.
.
7FEH 7FFH
具有一个字长的系统复位向量(0000H)。
ROM
复位向量 用户复位向量
通用存储区
系统保留
中断向量 用户中断向量
通用存储区
系统保留
用户程序开始
用户程序
用户程序结束
SN8P1917
Remote Controller 8-Bit Micro-Controller
) 上电复位; ) 看门狗复位; ) 外部复位。
发生上述任一种复位后,程序将从 0000H 处重新开始执行,系统寄存器也都将恢复为默认值。下面一段程序演示了
如何定义 ROM 中的复位向量。
¾ 例:定义复位向量。
ORG 0 ; JMP START
ORG 10H START:
ENDP
SONiX TECHNOLOGY CO., LTD Page 11 Version1.2
; 跳至用户程序。
; 0010H,用户程序起始地址。 ; 用户程序。
; 程序结束。
SN8P1917
A
A
A
A
Remote Controller 8-Bit Micro-Controller
2.1.1.2 中断向量(0008H
中断向量地址为 0008H。一旦有中断响应,程序计数器 PC 的当前值就会存入堆栈缓存器并跳转到 0008H 开始执行
中断服务程序。0008H 处的第一条指令必须是“JMP”或“NOP”。下面的示例程序说明了如何编写中断服务程序。
注:在中断发生时,用户必须用程序保存 ACC PFLAG
¾ 例:定义中断向量,中断服务程序紧随 ORG 8 之后。
.DATA ACCBUF DS 1 ; PFLAGBUF DS 1 ; .CODE
ORG 0 JMP START
START: … JMP START … ENDP ;
ORG 8H ; B0XCH A, ACCBUF B0MOV A, PFLAG B0MOV PFLAGBUF,
B0MOV A, PFLAGBUF B0MOV PFLAG, B0XCH A, ACCBUF RETI
¾ 例:定义中断向量,中断服务程序位于用户程序的后面。
.DATA ACCBUF DS 1 PFLAGBUF DS 1 .CODE ORG 0 JMP START …
ORG 8H ; JMP MY_IRQ
ORG 10H START: … JMP START …
MY_IRQ: B0XCH A, ACCBUF B0MOV A, PFLAG B0MOV PFLAGBUF,
B0MOV A, PFLAGBUF B0MOV PFLAG, B0XCH A, ACCBUF RETI
ENDP ;
; 0000H ; 跳到用户程序。
; 保存 ACC
; 保存 PFLAG
; 恢复 PFLAG ; 恢复 ACC ; 中断返回。
; 用户程序开始。 ; 用户程序。 ; 用户程序结束。
; 0000H ; 跳到用户程序。
; 跳到中断服务程序。
; 用户程序开始。 ; 用户程序。 ; 用户程序结束。
; 中断服务程序开始。 ; 保存 ACC
; 保存 PFLAG
; 恢复 PFLAG ; 恢复 ACC ; 中断返回。
注:从上面的程序中容易得出 SONiX 的编程规则,有以下几点:
1. 地址 0000H “JMP”指令使程序从头开始执行;
2. 地址 0008H 是中断向量;
3. 用户的程序应该是一个循环。
SONiX TECHNOLOGY CO., LTD Page 12 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
2.1.1.3 查表
SONiX 单片机中,对 ROM 区中的数据进行查找,寄存器 Y 指向所找数据地址的中间字节(bit8~bit15),寄存 器 Z 指向所找数据地址的低字节(bit0~bit7)。执行完 MOVC 指令后,所查找数据低字节内容被存入 ACC 中,而数据高 字节内容被存入 R 寄存器。
¾ 例:查找 ROM 地址为“TABLE1”的值。
B0MOV Y, #TABLE1$M B0MOV Z, #TABLE1$L MOVC
NOP ; @@:
; TABLE1: DW 0035H
DW 5105H DW 2012H
INCMS Z JMP @F
INCMS Y
; MOVC
注:当寄存器 Z 溢出(从 0FFH 变为 00H)时 ,寄 存 器 Y 并不会自动加 1。因此, Z溢出时,Y 必须由程序加 1,下面的宏 INC_YZ
能够对 Y Z 寄存器自动处理。
¾ 例:宏 INC_YZ
INC_YZ MACRO INCMS Z JMP @F
INCMS Y NOP
@@: ENDM
¾ 例:通过“INC_YZ”对上例进行优化。
B0MOV Y, #TABLE1$M B0MOV Z, #TABLE1$L MOVC
INC_YZ
@@:
; TABLE1: DW 0035H
DW 5105H DW 2012H
; MOVC
; 设置 TABLE1 地址高字节。 ; 设置 TABLE1 地址低字节。 ; 查表,R = 00HACC = 35H
; 查找下一地址。
; Z 没有溢出。 ; Z 溢出(FFH Æ 00),Æ Y=Y+1
; 查表,R = 51HACC = 05H
; 定义数据表(16 位)数据。
; 没有溢出。
; 没有溢出。
; 设置 TABLE1 地址中间字节。 ; 设置 TABLE1 地址低字节。 ; 查表,R = 00HACC = 35H
; 查找下一地址数据。
; 查表,R = 51HACC = 05H
; 定义数据表(16 位)数据。
SONiX TECHNOLOGY CO., LTD Page 13 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
下面的程序通过累加器对 YZ 寄存器进行处理来实现查表功能,但需要特别注意进位时的处理。
¾ 例:由指令 B0ADD/ADD Y Z 寄存器加 1
B0MOV Y, #TABLE1$M B0MOV Z, #TABLE1$L
GETDATA: ; MOVC
TABLE1: DW 0035H
DW 5105H DW 2012H
B0MOV A, BUF B0ADD Z, A
B0BTS1 FC JMP GETDATA INCMS Y NOP
; 设置 TABLE1 地址中间字节。 ; 设置 TABLE1 地址低字节。
; Z = Z + BUF
; 检查进位标志。 ; FC = 0 ; FC = 1
; 存储数据,如果 BUF = 0,数据为 0035H ; 如果 BUF = 1,数据=5105H ; 如果 BUF = 2,数据=2012H
; 定义数据表(16 位)数据。
SONiX TECHNOLOGY CO., LTD Page 14 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
2.1.1.4 跳转表
跳转表能够实现多地址跳转功能。PCL 和 ACC 的值相加即可得到新的 PCL。由此得到的新的 PC 值指向一系列跳至
指令列表。
执行“ADD PCL, A”后,如果有进位发生,结果并不会影响 PCH 寄存器。用户必须检查跳转表是否跨越了 ROM
页边界。如果跳转表跨越了 ROM 页边界(例如从 xxFFH xx00H),将跳转表移动到下一页程序存储区的顶部(xx00H)。 注:一页包含 256words
注:在执行加法运算后,若 PCL 溢出,程序计数器 PC 并不会从 PCL 进位到 PCH
¾ 例:跳转表。
ORG 0100H
B0ADD PCL, A JMP A0POINT JMP A1POINT JMP A2POINT JMP A3POINT
在下面的例子中,跳转表从 00FDH 开始,执行 B0ADD PCL, A 后,如果 ACC = 0 或者 1,跳转表指向正确的地址, 但如果 ACC 大于 1,因为 PCH 不能自动加一,程序就会出错。可以看到当 ACC = 2 时,PCL = 0,而 PCH 仍然保持为 0,则新的程序计数器 PC 将指向错误的地址 0000H,程序出错。因此,检查跳转表是否跨越边界(xxFFH xx00H)非 常重要。良好的编程风格是将跳转表放在 ROM 的开始边界(如 0100H)。
; 跳转表从 ROM 前端开始。
; PCL = PCL + ACC,PCH 的值不会被改变。 ; ACC = 0,跳至 A0POINT。 ; ACC = 1,跳至 A1POINT。 ; ACC = 2,跳至 A2POINT。 ; ACC = 3,跳至 A3POINT。
¾ 例:如果跳转表跨越 ROM 边界,将引起程序错误。
ROM Address 00FDH
00FEH 00FFH 0100H 0101H …
B0ADD PCL, A JMP A0POINT JMP A1POINT JMP A2POINT JMP A3POINT
; PCL = PCL + ACC,PCH 的值不会被改变。 ; ACC = 0 ; ACC = 1 ; ACC = 2Å 跳转表跨越边界 ; ACC = 3
SONiX 提供一个宏程序以保证可靠执行跳转表功能,它将检测 ROM 边界并自动将跳转表移至适当的位置。但采用该 宏程序会占用部分 ROM 空间。
¾ 例:如果跳转表跨越 ROM 边界,将引起程序错误。
@JMP_A MACRO VAL IF (($+1) !& 0XFF00) !!= (($+(VAL)) !& 0XFF00) JMP ($ | 0XFF) ORG ($ | 0XFF) ENDIF ADD PCL, A ENDM
注:“VAL”为跳转表列表中列表个数。
SONiX TECHNOLOGY CO., LTD Page 15 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
¾ 例:宏“MACRO3.H”中,“@JMP_A”的应用。
B0MOV A, BUF0 @JMP_A 5 JMP A0POINT JMP A1POINT JMP A2POINT JMP A3POINT JMP A4POINT
; BUF0”从 0 4 ; 列表个数为 5。 ; ACC = 0,跳至 A0POINT。 ; ACC = 1,跳至 A1POINT。 ; ACC = 2,跳至 A2POINT。 ; ACC = 3,跳至 A3POINT。 ; ACC = 4,跳至 A4POINT。
如果跳转表跨越了 ROM 的边界(0FFH~100H),宏指令“@JMP_A”会调整跳转表的位置使其从 ROM 的前端开 始。
¾ 例:宏指令@JMP_A 操作。
; 编译前
ROM address B0MOV A, BUF0
@JMP_A 5 0X00FD JMP A0POINT 0X00FE JMP A1POINT 0X00FF JMP A2POINT 0X0100 JMP A3POINT 0X0101 JMP A4POINT
; 编译后
ROM address B0MOV A, BUF0
@JMP_A 5 0X0100 JMP A0POINT 0X0101 JMP A1POINT 0X0102 JMP A2POINT 0X0103 JMP A3POINT 0X0104 JMP A4POINT
; BUF0”从 0 4 ; 列表个数为 5。 ; ACC = 0,跳至 A0POINT。 ; ACC = 1,跳至 A1POINT。 ; ACC = 2,跳至 A2POINT。 ; ACC = 3,跳至 A3POINT。 ; ACC = 4,跳至 A4POINT。
; BUF0”从 0 4 ; 列表个数为 5。 ; ACC = 0, 跳至 A0POINT。 ; ACC = 1, 跳至 A1POINT。 ; ACC = 2, 跳至 A2POINT。 ; ACC = 3, 跳至 A3POINT。 ; ACC = 4, 跳至 A4POINT
SONiX TECHNOLOGY CO., LTD Page 16 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
2.1.1.5 CHECKSUM 计算
ROM 区末端位置的几个字限制使用,进行 Checksum 计算时,用户应避免对该单元的访问。
¾ 例:示例程序演示了如何对00H到用户程序结束进行Checksum计算。
MOV A,#END_USER_CODE$L B0MOV END_ADDR1, A
MOV A,#END_USER_CODE$M B0MOV END_ADDR2, A
CLR Y CLR Z @@:
MOVC B0BCLR FC
ADD DATA1, A ; MOV A, R ADC DATA2, A ; JMP END_CHECK
AAA: INCMS Z JMP @B
JMP Y_ADD_1 END_CHECK:
MOV A, END_ADDR1 CMPRS A, Z
JMP AAA MOV A, END_ADDR2
CMPRS A, Y JMP AAA JMP CHECKSUM_END
Y_ADD_1: INCMS Y ; NOP JMP @B
CHECKSUM_END: END_USER_CODE:
; 用户程序结束地址低位地址存入end_addr1
; 用户程序结束地址中间地址存入end_addr2 ; 清 Y。 ; 清 Z。
; 清标志位 C。
; 检查 YZ 地址是否为代码的结束地址。
; Z != 00H,进行下一个计算。 ; Z = 00HY+1
; 检查 Z 地址是否为用户程序结束地址低位地址。 ; 否,则进行 Checksum 计算。
; 是则检查 Y 的地址是否为用户程序结束地址中间地址。 ; 否,则进行 Checksum 计算。 ; 是则 Checksum 计算结束。
; 跳转到 Checksum 计算。
; 程序结束。
SONiX TECHNOLOGY CO., LTD Page 17 Version1.2

2.1.2 编译选项表(CODE OPTION

编译选项 内容 功能说明
高速时钟采用内部 16MHz RC 振荡器,XIN/XOUT(P2.0/P2.1)作为普通 I/O 引脚。 外部高速振荡器采用标准振荡器(如 4MHz)。 开启看门狗定时器。 关闭看门狗定时器。
ROM 代码加密。 ROM 代码不加密。
强行设置内部 16K RC 作为看门狗定时器的时钟源。 看门狗定时器在省电模式下仍然处于运行状态。 由 CPUM 寄存器控制内部 16K(@3V)RC 时钟是否工作。 使能低功耗功能。 禁止低功耗功能。
High_Clk
Watch_Dog
Security
INT_16K_RC
Low Power
注:
1. 在高干扰环境下,强烈建议设置 Watch_Dog 为“Enable”,INT_16K_RC 设置为“Always_On”;
2. Fcpu 编译选项仅对高速时钟有效,低速模式下 Fcpu = Flosc/4
3. 在高干扰环境下,强烈建议禁止“Low Power”功能;
4. 如果使能“Low Power”功能,会增加最低工作电压;
5. 使能“Low Power”功能会减小工作电流,低速模式下除外。
IHRC
4M X’tal
Enable
Disable
Enable
Disable
Always_ON
By_CPUM
Enable
Disable
SN8P1917
Remote Controller 8-Bit Micro-Controller

2.1.3 数据存储器(RAM

) RAM
128
字节
BANK 0
BANK 15
000H
07FH 080H
0FFH
0F00H
0F0BH
通用存储区 ; Bank0 000H~07FH128 字节)是通用存储区
系统寄存器 ; Bank0 080H~0FFH128 字节)是系统寄存器区域
Bank0 的结束区
LCD RAM
LCD Ram 的结束区
RAM
. .
.
.
; Bank 15 存储 LCD 显示数据区域(12 字节) ; ;
SONiX TECHNOLOGY CO., LTD Page 18 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

2.1.4 系统寄存器

2.1.4.1 系统寄存器列表
0 1 2 3 4 5 6 7 8 9 A B C D E F
8 - - R Z Y - PFLAG RBANK - LCDM1 - - - - - ­9 AMPM AMPCHS AMPCKS ADCM ADCKS CPM CPCKS DFM ADCDL ADCDH LBTM - - - - ­A - - - - - - - - - - - - - - P4CON VERFH B - - - - - - - - - - - - - - - PEDGE C - P1M P2M - - - - - INTRQ INTEN OSCM - - - PCL PCH D P0 P1 P2 - P4 P5 - - T0M T0C - - - - - STKP E - P1UR P2UR - - - - @YZ - - - - - - - ­F STK7L STK7H STK6L STK6H STK5L STK5H STK4L STK4H STK3L STK3H STK2L STK2H STK1L STK1H STK0L STK0H
2.1.4.2 系统寄存器说明
Y, Z =
PFLAG =
AMPM =
AMPCKS =
ADCKS =
CPCKS =
ADCDL =
PNM =
PN =
INTEN =
LCDM1 =
T0M =
T0C =
LBTM =
专用寄存器,@YZ 间接寻址寄存器,ROM 寻址寄存器 ROM 页和特殊标志寄存器 PGIA 模式寄存器 PGIA 时钟寄存器 ADC 时钟选项 Charge pump 时钟选项 ADC 低字节缓存器 PN 输入/输出模式寄存器 PN 数据缓存器 中断使能寄存器 LCD 模式寄存器 T0 模式寄存器 T0 计数寄存器 电池低电压检测器
R = AMPCHS = ADCM = CPM = DFM = ADCDH = PNUR = INTRQ = OSCM = PCH, PCL = STK0~STK7 = @YZ = STKP =
工作寄存器和 ROM 查表数据缓存器 PGIA 通道选择寄存器 ADC 模式寄存器 Charge pump 模式寄存器 数字滤波模式寄存器 ADC 高字节数据缓存器 PN 上拉电阻寄存器
中断请求寄存器 振荡器模式寄存器 程序计数器 堆栈缓存器 间接寻址寄存器 堆栈指针
SONiX TECHNOLOGY CO., LTD Page 19 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
2.1.4.3 系统寄存器的位定义
地址
082H RBIT7 RBIT6 RBIT5 RBIT4 RBIT3 RBIT2 RBIT1 RBIT0 R/W R 083H ZBIT7 ZBIT6 ZBIT5 ZBIT4 ZBIT3 ZBIT2 ZBIT1 ZBIT0 R/W Z 084H YBIT7 YBIT6 YBIT5 YBIT4 YBIT3 YBIT2 YBIT1 YBIT0 R/W Y 086H - - - - - C DC Z R/W PFLAG 087H - - - - RBNKS3 RBNKS2 RBNKS1 RBNKS0 R/W RBANK 089H - - LCDBNK - LCDENB LCDBIAS LCDRATE LCDCLK R/W LCDM1
090H - BGRENB FDS1 FDS0 GS2 GS1 GS0 AMPENB R/W AMPM 091H - - - - - CHS2 CHS1 CHS0 R/W AMPCHS 092H - - - - - AMPCKS2 AMPCKS1 AMPCKS0 W AMPCKS 093H - - - IREFENB IRVS RVS1 RVS0 ADCENB R/W ADCM 094H ADCKS7 ADCKS6 ADCKS5 ADCKS4 ADCKS3 ADCKS2 ADCKS1 ADCKS0 W ADCKS 095H ACMENB AVDDRENB AVESEL AVENB CPSTS CPAUTO CPON CPRENB R/W CPM 096H - - - - CPCK3 CPCKS2 CPCKS1 CPCKS0 W CPCKS 097H - - - WRS0 DRDY R/W DFM 098H ADCB7 ADCB6 ADCB5 ADCB4 ADCB3 ADCB2 ADCB1 ADCB0 R ADCDL 099H ADCB15 ADCB14 ADCB13 ADCB12 ADCB11 ADCB10 ADCB9 ADCB8 R ADCDH
09AH - - - - - LBTO P41IO LBTENB R/W LBTM
0BFH PEDGEN - - P00G1 P00G0 - - - R/W PEDGE 0C1H - - - - P13M P12M P11M P10M R/W P1M
0C2H - - - - - - P21M P20M R/W P2M 0C8H - - - T0IRQ - - - P00IRQ R/W INTRQ 0C9H - - - T0IEN - - - P00IEN R/W INTEN 0CAH WTCKS WDRST WDARTE - CPUM0 CLKMD STPHX - R/W OSCM 0CEH PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 R/W PCL 0CFH - - - - - PC10 PC9 PC8 R/W PCH
0D0H - - - - - - - P00 R P0 0D1H - - - - P13 P12 P11 P10 R/W P1 0D2H - - - - - - P21 P20 R/W P2 0D4H - - - - - P42 P41 P40 R P4 0D5H - - - - - P52 P51 P50 W P5 0D8H T0ENB T0RATE2 T0RATE1 T0RATE0 - - - - R/W T0M 0D9H T0C7 T0C6 T0C5 T0C4 T0C3 T0C2 T0C1 T0C0 R/W T0C 0DFH GIE - - - STKPB3 STKPB2 STKPB1 STKPB0 R/W STKP
0E1H - - - - P13R P12R P11R P10R W P1UR 0E2H - - - - - - P21R P20R W P2UR 0E7H @YZ7 @YZ6 @YZ5 @YZ4 @YZ3 @YZ2 @YZ1 @YZ0 R/W @YZ
0F0H S7PC7 S7PC6 S7PC5 S7PC4 S7PC3 S7PC2 S7PC1 S7PC0 R/W STK7L 0F1H - - - S7PC10 S7PC9 S7PC8 R/W STK7H 0F2H S6PC7 S6PC6 S6PC5 S6PC4 S6PC3 S6PC2 S6PC1 S6PC0 R/W STK6L 0F3H - - - S6PC10 S6PC9 S6PC8 R/W STK6H 0F4H S5PC7 S5PC6 S5PC5 S5PC4 S5PC3 S5PC2 S5PC1 S5PC0 R/W STK5L 0F5H - - - S5PC10 S5PC9 S5PC8 R/W STK5H 0F6H S4PC7 S4PC6 S4PC5 S4PC4 S4PC3 S4PC2 S4PC1 S4PC0 R/W STK4L 0F7H - - - S4PC10 S4PC9 S4PC8 R/W STK4H
0F8H S3PC7 S3PC6 S3PC5 S3PC4 S3PC3 S3PC2 S3PC1 S3PC0 R/W STK3L 0F9H - - - S3PC10 S3PC9 S3PC8 R/W STK3H 0FAH S2PC7 S2PC6 S2PC5 S2PC4 S2PC3 S2PC2 S2PC1 S2PC0 R/W STK2L 0FBH - - - S2PC10 S2PC9 S2PC8 R/W STK2H 0FCH S1PC7 S1PC6 S1PC5 S1PC4 S1PC3 S1PC2 S1PC1 S1PC0 R/W STK1L 0FDH - - - S1PC10 S1PC9 S1PC8 R/W STK1H 0FEH S0PC7 S0PC6 S0PC5 S0PC4 S0PC3 S0PC2 S0PC1 S0PC0 R/W STK0L 0FFH - - - S0PC10 S0PC9 S0PC8 R/W STK0H
注:
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 R/W
1. 所有寄存器名都已在SN8ASM编译器中做了宣告;
2. 用户使用SN8ASM编译器对寄存器的位进行操作时,须在该寄存器的位前加“F”;
3. 指令“b0bset”,“b0bclr”,“bset”,“bclr”只能用于可读写的寄存器(“R/W”)。
SONiX TECHNOLOGY CO., LTD Page 20 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
2.1.4.4 累加器
8 位数据寄存器 ACC 用来执行 ALU 与数据存储器之间数据的传送操作。如果操作结果为零(Z)或有进位产生(CDC),程序状态寄存器 PFLAG 中相应位会发生变化。
ACC 并不在 RAM 中,因此在立即寻址模式中不能用“B0MOV”指令对其进行读写。
¾ 例:读/ ACC
; 数据写入 ACC MOV A, #0FH ; 读取 ACC 中的数据并存入 BUF MOV BUF, A B0MOV BUF, A ; BUF 中的数据写入 ACC。 MOV A, BUF B0MOV A, BUF
系统执行中断操作时,ACC PFLAG 中的数据不会自动存储,用户需通过程序将中断入口处的 ACC PFLAG 中 的数据送入存储器进行保存。
¾ 例:ACC 和工作寄存器中断保护。
.DATA ACCBUF DS 1 PFLAGBUF DS 1 .CODE
INT_SERVICE:
B0XCH A, ACCBUF ; B0MOV A, PFLAG
B0MOV A, PFLAGBUF
RETI
B0MOV PFLAGBUF, A
B0MOV PFLAG, A B0XCH A, ACCBUF
; 定义 ACCBUF ACC 数据存储单元。 ; 定义 PFLAGBUF PFLAG 数据存储单元。
; 存储 ACC PFLAG
; 恢复 PFLAG ; 恢复 ACC
; 退出中断。
注:必须使用“B0XCH”指令进行 ACC 数据的中断恢复,否则 PFLAG 会被更改而导致出错。
2.1.4.5 程序状态寄存器 PFLAG
寄存器 PFLAG 包含 ALU 运算状态信息,位 CDC Z 显示 ALU 的运算结果状态。
086H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PFLAG
/ - - - - - R/W R/W R/W
复位后 - - - - - 0 0 0
Bit 2 C:进位标志
Bit 1 DC:辅助进位标志
Bit 0 Z:零标志
注:关于标志位 CDC Z 的更多信息请参阅指令集相关内容。
- - - - - C DC Z
1 =加法运算后有进位、减法运算没有借位发生或移位后移出逻辑“1”或比较运算的结果≥0 0 =加法运算后没有进位、减法运算有借位发生或移位后移出逻辑“0”或比较运算的结果<0。
1 =加法运算时低四位有进位,或减法运算后没有向高四位借位。 0 =加法运算时低四位没有进位,或减法运算后有向高四位借位。
1 =算术/逻辑/分支运算的结果为零。 0 =算术/逻辑/分支运算的结果非零。
SONiX TECHNOLOGY CO., LTD Page 21 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
2.1.4.6 程序计数器 PC
程序计数器 PC 是一个 11 位二进制程序地址寄存器,分高 3 位和低 8 位。专门用来存放下一条需要执行指令的内存 地址。通常,程序计数器会随程序中指令的执行自动增加。
若程序执行 CALL JMP 指令时,PC 指向特定的地址。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PC
复位后
PCH PCL
) 单地址跳转
SONiX 单片机里面,有 9 条指令(CMPRSINCS、INCMS、DECS、DECMS、BTS0、BTS1、B0BTS0 和 B0BTS1) 可完成单地址跳转功能。如果这些指令执行结果为真,那么 PC 值加 2 以跳过下一条指令。
如果位测试为真,PC 2
B0BTS1 FC JMP C0STEP …
C0STEP: NOP
B0MOV A, BUF0 ; B0BTS0 FZ
JMP C1STEP …
C1STEP: NOP
如果 ACC 等于指定的立即数则 PC 值加 2,跳过下一条指令。
JMP C0STEP …
C0STEP: NOP
执行加 1 指令后,结果为零时,PC 的值加 2,跳过下一条指令。
INCS
JMP C0STEP …
C0STEP: NOP
INCMS
JMP C0STEP …
C0STEP: NOP
执行减 1 指令后,结果为零时,PC 的值加 2,跳过下一条指令。
DECS
JMP C0STEP …
C0STEP: NOP
DECMS
JMP C0STEP …
C0STEP: NOP
- - - - - PC10 PC9 PC8 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
- - - - - 0 0 0 0 0 0 0 0 0 0 0
; Carry_flag = 1,跳过下一条指令 ; 否则跳到 C0STEP.
; Zero flag = 0,跳过下一条指令 ; 否则跳到 C1STEP.
CMPRS
INCS
INCMS
DECS
DECMS
A, #12H
BUF0
BUF0
BUF0
BUF0
; ACC = 12H,跳过下一条指令 ; 否则跳到 C0STEP.
; 如果 ACC 不为“0”,则跳至 C0STEP
; 如果 BUF0 不为“0”,则跳至 C0STEP
; 如果 ACC 不为“0”,则跳至 C0STEP
; 如果 BUF0 不为“0”,则跳至 C0STEP
SONiX TECHNOLOGY CO., LTD Page 22 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
) 多地址跳转
执行 JMP ADD M,AM=PCL)指令可实现多地址跳转。若 PCL 溢出,PCH 不会自动进位。用户必须用程序来调 整 PCH 的值。对于跳转表及其它应用,用户需计算 PC 的值以避免 PCL 溢出而导致程序出错。
注:PCL 溢出时,PCH 不能自动进位。用户必须用程序调整 PCH 的值以避免程序出错。
¾ 例:PC = 0323HPCH = 03HPCL = 23H)。
; PC = 0323H MOV A, #28H B0MOV PCL, A
; PC = 0328H MOV A, #00H B0MOV PCL, A
; 跳到地址 0328H
; 跳到地址 0300H
¾ 例:PC = 0323HPCH = 03HPCL = 23H)。
; PC = 0323H B0ADD PCL, A
JMP A0POINT JMP A1POINT JMP A2POINT JMP A3POINT …
; PCL = PCL + ACC,PCH 的值不变。 ; ACC = 0,跳到 A0POINT。 ; ACC = 1,跳到 A1POINT。 ; ACC = 2,跳到 A2POINT。 ; ACC = 3,跳到 A3POINT。
SONiX TECHNOLOGY CO., LTD Page 23 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
2.1.4.7 YZ 寄存器
寄存器 Y Z 都是 8 位缓存器,主要用途如下:
z 普通工作寄存器; z RAM 数据寻址指针@YZ z 配合指令 MOVC ROM 数据进行查表。
084H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Y
/ R/W R/W R/W R/W R/W R/W R/W R/W
复位后 X X X X X X X X
083H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Z
/ R/W R/W R/W R/W R/W R/W R/W R/W
复位后 X X X X X X X X
YBIT7 YBIT6 YBIT5 YBIT4 YBIT3 YBIT2 YBIT1 YBIT0
ZBIT7 ZBIT6 ZBIT5 ZBIT4 ZBIT3 ZBIT2 ZBIT1 ZBIT0
¾ 例:用 YZ 作为数据指针,访问 bank0 025H 处的内容。
B0MOV Y, #00H
B0MOV Z, #25H
B0MOV A, @YZ
; Y 指向 RAM bank 0 ; Z 指向 25H ; 数据送入 ACC
¾ 例:利用数据指针@YZ RAM 数据清零。
B0MOV Y, #0
B0MOV Z, #7FH
CLR_YZ_BUF:
CLR @YZ
DECMS Z ;
JMP CLR_YZ_BUF
CLR @YZ END_CLR: ;
; Y = 0,指向 bank 0 ; Z = 7FH,RAM 区的最后单元。
; @YZ 清零。
; 不为零。
2.1.4.8 R 寄存器
8 位缓存器 R 主要有以下两个功能:
z 作为工作寄存器使用;
z 存储执行查表指令后的高字节数据。
(执行 MOVC 指令,指定 ROM 单元的高字节数据会被存入 R 寄存器而低字节数据则存入 ACC。)
082H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R
/ R/W R/W R/W R/W R/W R/W R/W R/W
复位后
RBIT7 RBIT6 RBIT5 RBIT4 RBIT3 RBIT2 RBIT1 RBIT0
X X X X X X X X
SONiX TECHNOLOGY CO., LTD Page 24 Version1.2

2.2 寻址模式

2.2.1 立即寻址

将立即数送入 ACC 或指定的 RAM 单元。
¾ 例:立即数 12H 送入 ACC
MOV A, #12H
¾ 例:立即数 12H 送入寄存器 R
B0MOV R, #12H
注:立即数寻址中,指定的 RAM 单元必须是 80H~87H 的工作寄存器。
SN8P1917
Remote Controller 8-Bit Micro-Controller

2.2.2 直接寻址

通过 ACC RAM 单元数据进行操作。
¾ 例:地址 12H 处的内容送入 ACC
B0MOV A, 12H
¾ 例:ACC 中数据写入 RAM 12H 单元。
B0MOV 12H, A

2.2.3 间接寻址

通过指针寄存器(Y/Z)访问 RAM 数据。
¾ 例:用 @YZ 实现间接寻址。
B0MOV Y, #0
B0MOV Z, #12H
B0MOV A, @YZ
; Y 清零以寻址 RAM bank 0 ; 设定寄存器地址。
SONiX TECHNOLOGY CO., LTD Page 25 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

2.3 堆栈

2.3.1 概述

SN8P1917 的堆栈缓存器共有 8 层,程序进入中断或执行 CALL 指令时,用来存储程序计数器 PC 的值。寄存器 STKP 为堆栈指针,指向堆栈缓存器顶层,STKnH STKnL 分别是各堆栈缓存器高、低字节。
RET /
RETI
CALL /
中断
PCH
PCL
堆栈层数
STKP - 1STKP + 1
STKP = 7
STKP = 6
STKP = 5
STKP
STKP = 4
STKP = 3
STKP = 2
STKP = 1
STKP = 0
堆栈缓存器高
字节
STK7H
STK6H
STK5H
STKP
STK4H
STK3H
STK2H
STK1H
STK0H
堆栈缓存器低
字节
STK7L
STK6L
STK5L
STK4L
STK3L
STK2L
STK1L
STK0L
SONiX TECHNOLOGY CO., LTD Page 26 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

2.3.2 堆栈寄存器

堆栈指针 STKP 是一个 3 位寄存器,存放被访问的堆栈单元地址,11 位数据存储器 STKnH 和 STKnL 用于暂存堆栈 数据。以上寄存器都位于 bank 0
使用入栈指令 PUSH 和出栈指令 POP 可对堆栈缓存器进行操作。堆栈操作遵循后进先出(LIFO)的原则,入栈时堆 栈指针 STKP 的值减 1,出栈时 STKP 的值加 1,这样,STKP 总是指向堆栈缓存器顶层单元。
系统进入中断或执行 CALL 指令之前,程序计数器 PC 的值被存入堆栈缓存器中进行入栈保护。
0DFH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
STKP
/
复位后
Bit[2:0] STKPBn:堆栈指针(n = 0 ~ 2)。
Bit 7 GIE:全局中断控制位。
¾ 例:系统复位时,堆栈指针寄存器内容为默认值,但强烈建议在程序初始部分重新设定,如下面所示:
0F0H~0FFH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
STKnH
/ - - - - - R/W R/W R/W
复位后 - - - - - 0 0 0
0F0H~0FFH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
STKnL
/ R/W R/W R/W R/W R/W R/W R/W R/W
复位后 0 0 0 0 0 0 0 0
STKn = STKnHSTKnLn = 7 ~ 0)。
GIE - - - - STKPB2 STKPB1 STKPB0
R/W - - - - R/W R/W R/W
0 - - - - 1 1 1
0 = 禁止; 1 = 使能。
MOV A, #00000111B B0MOV STKP, A
- - - - - SnPC10 SnPC9 SnPC8
SnPC7 SnPC6 SnPC5 SnPC4 SnPC3 SnPC2 SnPC1 SnPC0
SONiX TECHNOLOGY CO., LTD Page 27 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

2.3.3 堆栈操作举例

执行程序调用指令 CALL 和响应中断服务时,堆栈指针 STKP 的值减 1,指针指向下一个堆栈缓存器。同时,对程序 计数器 PC 的内容进行入栈保存。
堆栈层数
0 1 1 1 Free Free ­1 1 1 0 STK0H STK0L ­2 1 0 1 STK1H STK1L ­3 1 0 0 STK2H STK2L ­4 0 1 1 STK3H STK3L ­5 0 1 0 STK4H STK4L ­6 0 0 1 STK5H STK5L ­7 0 0 0 STK6H STK6L ­8 1 1 1 STK7H STK7L -
> 8 1 1 0 - - 堆栈溢出
STKPB2 STKPB1 STKPB0 高字节 低字节
STKP
对应每个入栈操作,都有一个出栈操作来恢复程序计数器PC的值。RETI指令用于中断服务程序中,RET用于子程序 调用。出栈时,STKP1并指向下一个空闲堆栈缓存器。堆栈恢复操作如下表所示:
堆栈层数
8 1 1 1 STK7H STK7L ­7 0 0 0 STK6H STK6L ­6 0 0 1 STK5H STK5L ­5 0 1 0 STK4H STK4L ­4 0 1 1 STK3H STK3L ­3 1 0 0 STK2H STK2L ­2 1 0 1 STK1H STK1L ­1 1 1 0 STK0H STK0L ­0 1 1 1 Free Free -
STKPB2 STKPB1 STKPB0 高字节 低字节
STKP
堆栈缓存器
堆栈缓存器
说明
说明
SONiX TECHNOLOGY CO., LTD Page 28 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
3
3
3

复位

3.1 概述

SN8P1917 有以下几种复位方式:
) 上电复位; ) 看门狗复位; ) 掉电复位; ) 外部复位。
上述任一种复位发生时,所有的系统寄存器恢复默认状态,程序停止运行,同时程序计数器 PC 清零。复位结束后, 系统从向量 0000H 处重新开始运行。
系统复位需要一定的时间,并提供完整的上电复位规程。对于不同类型的振荡器,完成复位所需要的时间也不同。因 此,VDD 的上升速度和不同晶振的起振时间都不固定。晶体振荡器类型不同则复位时间亦存在差别,这使得 VDD 上升时 间和启动时间不是确定值。下面给出了复位时序图。
外部复位
看门狗复位
系统状态
上电
VDD
VSS
VDD
VSS
看门狗定时器正常工作
看门狗定时器停止计时
系统正常运行
系统停止工作
低电压检测
上电延时
外部复位低电压检测
外部复位高电压检测
看门狗溢出
看门狗复位延迟时间外部复位延迟时间
SONiX TECHNOLOGY CO., LTD Page 29 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

3.2 上电复位

上电复位与 LVD 操作密切相关。系统上电过程呈逐渐上升的曲线形式,需要一定时间才能达到正常电平值。上电复 位的时序如下:
z
上电:系统检测到电源电压上升并等待其稳定;
z
外部复位:系统检测外部复位引脚状态。如果不为高电平,系统保持复位状态直到外部复位引脚释放。
z
系统初始化:所有的系统寄存器被置为默认状态;
z
振荡器开始工作:振荡器开始提供系统时钟;
z
执行程序:上电结束,程序开始运行。

3.3 看门狗复位

看门狗复位是系统的一种保护设置。在正常状态下,由程序将看门狗定时器清零。若出错,系统处于未知状态,看门 狗定时器溢出,此时系统复位。看门狗复位后,系统重启进入正常状态。看门狗复位的时序如下:
z
看门狗定时器状态:系统检测看门狗定时器是否溢出,若溢出,则系统复位;
z
系统初始化:所有的系统寄存器被置为默认状态;
z
振荡器开始工作:振荡器开始提供系统时钟;
z
执行程序:上电结束,程序开始运行。
看门狗定时器运用注意事项:
z 看门狗定时器清零之前,请检查 I/O 口的状态和 RAM 的内容可增强程序的可靠性; z 不能在中断中对看门狗清零,否则无法侦测到主程序跑飞的状况; z 程序中应该只在主程序中有一次清看门狗的动作,这种架构能够最大限度的发挥看门狗的保护功能。
注:关于看门狗定时器的详细内容,请参阅看门狗定时器有关章节。
SONiX TECHNOLOGY CO., LTD Page 30 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

3.4 掉电复位

3.4.1 掉电

掉电复位针对外部因素引起的系统电压跌落情形(例如:干扰或外部负载的变化)。掉电复位可能会引起系统工作状 态不正常或程序执行错误。
VDD
系统正常工作区域
V1
LVD检测电压
V2
V3
系统工作出错区域
掉电复位电路图
电压跌落可能会进入系统死区。系统死区意味着电源不能满足系统的最小工作电压要求。上图是一个典型的掉电复位 示意图。图中, 入未知的工作状态,这个区域称作死区。当 入死区,则容易导致出错。以下情况系统可能进入死区:
VDD 受到严重的干扰,电压值降的非常低。虚线以上区域系统正常工作,在虚线以下的区域内,系统进
VDD 跌至 V1 时,系统仍处于正常状态;当 VDD 跌至 V2 V3 时,系统进
DC
运用中:
DC
运用中一般都采用电池供电,当电池电压过低或单片机驱动负载时,系统电压可能跌落并进入死区。这时,电源
不会进一步下降到系统复位电压,因此系统维持在死区。
AC
运用中:
系统采用 AC 供电时,DC 电压值受 AC 电源中的噪声影响。当外部负载过高,如驱动马达时,负载动作产生的干扰 也影响到
DC 电源。VDD 若由于受到干扰而跌落至最低工作电压以下时,在系统将有可能进入不稳定工作状态。
AC 运用中,系统上、下电时间都较长。其中,上电时序保护使得系统正常上电,但下电过程却和 DC 运用中情形 类似,
AC 电源关断后,VDD 电压在缓慢下降的过程中易进入死区。

3.4.2 系统工作电压

为了改善系统掉电复位的性能,首先必须明确系统具有的最低工作电压值。系统最低工作电压与系统执行速度有关, 不同的执行速度下最低工作电压亦不同。电气特性一章给出了系统工作电压与执行速度之间的关系。
系统最低
工作电压
Vdd (V)
工作电压值
系统正常工作
电压区域
死区
LVD检测电压
复位区域
系统执行速度 (Fcpu )
如上图所示,系统正常工作电压区域一般略高于系统复位电压,同时复位电压由 LVD 检测电平决定。当系统执行速 度提高时,系统最低工作电压也相应提高。复位电压与最低工作电压之间的区域即是系统工作的死区。
SONiX TECHNOLOGY CO., LTD Page 31 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

3.4.3 掉电复位性能改进

如何改善系统掉电复位性能,有以下几点建议:
z LVD z z z
注:稳压二极管复位电路”, “电压偏移复位电路” 和 “外部 IC 复位”能够完全避免掉电复位出错。
LVD
复位:
复位; 看门狗复位; 降低系统工作速度; 采用外部复位电路(稳压二极管复位电路,电压偏移复位电路,外部 IC 复位)。
上电
系统状态
VDD
VSS
系统正常工作
系统停止工作
低电压侦测
电压低于低电压检测点 系统复位
上电延迟
低电压检测(LVD)是 SONiX 8 位单片机的内置掉电复位保护装置,当 VDD 跌落并低于 LVD 检测电压值时,LVD 被触发,系统复位。不同的单片机有不同的 LVD 检测电平,LVD 检测电平值仅为一个电压点,并不能覆盖所有死区范围。 因此采用 作仍出错,那么
LVD 依赖于系统要求和环境状况。电源变化较大时,LVD 能够起到保护作用,如果电源变化触发 LVD,系统工
LVD 就不能起到保护作用,就需要采用其它复位方法。电气特性一章中给出了更多关于 LVD 的详细内容。
看门狗复位:
看门狗定时器用于保证系统正常工作。通常,会在主程序中将看门狗定时器清零,但不要在多个分支程序中将看门狗 清零。若程序正常运行,看门狗不会复位。当系统进入死区或程序运行出错的时候,看门狗定时器继续计数直至溢出,系 统复位。
如果看门狗复位后电源仍处于死区,则复位失败,保持复位状态,直到系统工作状态恢复到正常值。
降低系统工作速度:
系统工作速度越快最大工作电压值越高,从而加大工作死区的范围,因此降低系统工作速度不失为降低系统进入死区 几率的有效措施。所有,可选择合适的工作速度以避免系统进入死区,这个方法需要调整整个程序使其满足系统要求。
附加外部复位电路:
外部复位发也能够完全改善掉电复位性能。共有三种外部复位方式:稳压二极管复位电路,电压偏移复位电路和外部
IC 复位。它们都采用外部复位信号控制单片机可靠复位。
SONiX TECHNOLOGY CO., LTD Page 32 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

3.5 外部复位

外部复位功能由编译选项“RESET PIN”控制。将该编译选项置为“Reset”,可使能外部复位功能。外部复位引脚 为施密特触发器结构,低电平有效。复位引脚处于高电平时,系统正常运行。当复位引脚输入低电平信号时,系统复位。 外部复位操作在上电和正常工作模式时有效。需要注意的是,在系统上电的过程中,外部复位引脚必须输入高电平,否则 系统将一直保持在复位状态。外部复位的时序如下:
z
外部复位:系统检测复位引脚的状态,如果复位引脚不为高电平,则系统会一直保持在复位状态直到外部复位结束。
z
系统初始化:所有的系统寄存器被置为默认状态;
z
振荡器开始工作:振荡器开始提供系统时钟;
z
执行程序:上电结束,程序开始运行。
良好的外部复位电路可以保护系统以免进入未知的工作状态,如 AC 应用中掉电复位等。
SONiX TECHNOLOGY CO., LTD Page 33 Version1.2

3.6 外部复位电路

3.6.1 基本 RC 复位电路

R1
47K ohm
C1
0.1uF
R2
100 ohm
VDD
S
R
VSS
T
SN8P1917
Remote Controller 8-Bit Micro-Controller
MCU
VCC
GND
上图所示为一个由电阻 R1 和电容 C1 组成的基本 RC 复位电路,它在系统上电的过程中能够为复位引脚提供一个缓 慢上升的复位信号。这个复位信号的上升速度低于 电平时,系统复位结束,进入正常工作状态。
VDD 的上电速度,为系统提供合理的复位时间,当复位引脚检测到高
注:外部复位电路不能解决非正常上电和掉电复位问题。

3.6.2 二极管及 RC 复位电路

VDD
C1
R1 47K ohm
R2
100 ohm
R
S
VSS
T
MCU
DIODE
0.1uF
VCC
GND
上图中,R1 C1 同样是为复位引脚提供输入信号。对于电源异常情况,二极管正向导通使 C1 快速放电并与 VDD 保持一致,避免复位引脚持续高电平、系统无法正常复位。
注:“基本 RC 复位电路”和“二极管及 RC 复位电路”中的电阻 R2 都是必不可少的限流电阻,以避免复位引脚 ESD(Electrostatic
Discharge)或 EOSElectrical Over-stress)击穿
SONiX TECHNOLOGY CO., LTD Page 34 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

3.6.3 稳压二极管复位电路

VDD
R1
33K ohm
Vz
R2
10K ohm
稳压二极管复位电路是一种简单的 LVD 电路,基本上可以完全解决掉电复位问题。如上图电路中,利用稳压管的击 穿电压作为电路复位检测值,当 “
Vz + 0.7V”时,三极管集电极输出低电平,单片机复位。稳压管规格不同则电路复位检测值不同,根据电路的要求选
择合适的二极管。
VDD 高于“Vz + 0.7V”时,三极管集电极输出高电平,单片机正常工作;当 VDD 低于
B
R3
40K ohm
E
Q1
R
S
T
C
MCU
VSS
VCC
GND

3.6.4 电压偏移复位电路

VDD
R1
47K ohm
R2
10K ohm
电压偏置复位电路是一种简单的 LVD 电路,基本上可以完全解决掉电复位问题。与稳压二极管复位电路相比,偏压 复位电路的的检测电压值的精确度有所降低。电路中,
R2) / R1
电平,单片机复位。
”时,三极管集电极 C 输出高电平,单片机正常工作;VDD 低于“0.7V x (R1 + R2) / R1”时,集电极 C 输出低
对于不同应用需求,选择适当的分压电阻。单片机复位引脚上电压的变化与 VDD 电压变化之间的差值为 0.7V。如果
VDD 跌落并低于复位引脚复位检测值,那么系统将被复位。如果希望提升电路复位电平,可将分压电阻设置为 R2>R1,
并选择 功耗中。
注:在电源不稳定的情况下,稳压二极管复位电路偏压复位电路能够保护电路在电压跌落时避免系统出错。当电压跌落至
VDD 与集电极 C 之间的结电压高于 0.7V。分压电阻 R1 R2 在电路中要耗电,此处的功耗必须计入整个系统的
低于复位检测值时,系统将被复位。从而保证系统正常工作。
E
B
Q1
R
S
T
C
R3
2K ohm
MCU
VSS
VCC
GND
R1 R2 构成分压电路,当 VDD 高于和等于分压值“0.7V x (R1 +
SONiX TECHNOLOGY CO., LTD Page 35 Version1.2

3.6.5 外部 IC 复位

VDD
Reset
Capacitor
IC
Bypass
0.1uF
RST
VDD
R
S
T
SN8P1917
Remote Controller 8-Bit Micro-Controller
MCU
VSS
VSS
VCC
GND
SONiX TECHNOLOGY CO., LTD Page 36 Version1.2
4
4
4

系统时钟

4.1 概述

SN8P1917 16MHz
系统时钟,当系统在低速模式下工作时,时钟信号
)
)
)提供,低速时钟则由内置低速 RC 振荡电路(ILRC 16KHzZ@3V32KHz@5V)提供。高低速时钟都可以作为
普通模式(高速时钟):Fcpu = Fhosc / 4,(Fhosc= 4M/8M);
低速模式(低速时钟):Fcpu = Flosc/4
内带双时钟系统:高速时钟和低速时钟。高速时钟由外部振荡电路或内置 16MHz 高速 RC 振荡电路(IHRC
4 分频之后作为系统指令周期 Fcpu
Fcpu = Fhosc / 16
,(Fhosc=IHRC)。

4.2 时钟框图

SN8P1917
Remote Controller 8-Bit Micro-Controller
XIN
XOUT
STPHX HOSC
Fhosc.
CPUM[1:0]
Flosc. Fcpu = Flosc/4
High_Clk 编译选项(code option)。
HOSC
Fhosc
:外部高速时钟/内部高速 RC 时钟频率。
Flosc
:内部低速 RC 时钟频率(16KHz@3V32KHz@5V)。
Fosc
:系统时钟频率。
Fcpu
:指令执行频率。
Fcpu = Fhosc/4 (Fhosc=4M crystal) Fcpu = Fhosc/16 (Fhosc=IHRC)
CLKMD
Fosc
Fcpu
Fosc
SONiX TECHNOLOGY CO., LTD Page 37 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

4.3 OSCM 振荡器

寄存器 OSCM 控制振荡器的状态和系统模式。
0CAH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
OSCM
/ R/W R/W R/W
复位后
Bit 1 STPHX
Bit 2 CLKMD
Bit[4:3] CPUM0
Bit5 WDRATE
Bit6 WDRST
Bit7 WTCKS
¾
例:停止高速振荡器。
B0BSET FSTPHX
例:系统进入睡眠模式后,高低速振荡器都停止运行。
¾
B0BSET FCPUM0
WTCKS WDRST WDRATE - CPUM0 CLKMD STPHX -
- R/W R/W R/W -
0 0 0 - 0 0 0 -
:外部高速振荡器控制位。
0 =
运行;
1 =
停止。内部低速 RC 振荡器仍然运行。
:高/低速时钟模式控制位。
0 =
普通(双时钟)模式,系统时钟来自高速时钟;
1 =
低速模式,系统时钟来自低速时钟。
CPU 工作模式控制位。
0 =
普通模式;
1 =
睡眠模式。
:看门狗定时器速率选择控制位。
0 = F 1 = F
CPU
CPU
÷ 2 ÷ 2
14;
8。
:看门狗定时器复位控制位。
0 =
没有复位;
1 =
清看门狗定时器(详见看门狗定时器章节)。
:看门狗定时器时钟源选择控制位。
0 = F
CPU;
1 = 内部 RC 低速时钟。
WTCKS WTRATE CLKMD 看门狗定时器溢出时间
0 0 0 0 1 0 0 0 1 0 1 1 1 - -
1 / ( fcpu ÷ 2
1 / ( fcpu ÷ 2
1 / ( fcpu ÷ 214 ÷ 16 ) = 65.5s, Fosc=16KHz@3V
1 / ( fcpu ÷ 28 ÷ 16 ) = 1s, Fosc=16KHz@3V
; 停止外部高速振荡器。
14
÷ 16 ) = 293 ms, Fosc=3.58MHz
8
÷ 16 ) = 500 ms, Fosc=32768Hz
1 / ( 16K ÷ 512 ÷ 16 ) ~ 0.5s @3V
SONiX TECHNOLOGY CO., LTD Page 38 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

4.4 系统高速时钟

内部 16MHZ RC 振荡器和外部振荡器都可作为系统高速时钟源,由代码选项“High_Clk”控制。
High_Clk 编译选项
IHRC
4M

4.4.1 内部高速 RC

代码选项“IHRC_16M”和控制单片机的内置 RC 高速时钟(16MHZ)。若选择“IHRC_16M”,则内 置 16MHZ RC 振荡器作为系统时钟源,XIN XOUT 引脚作为通用 I/O 口。
) IHRC
:系统高速时钟来自内置 16MHz RC 振荡器,XIN/XOUT 引脚作为普通的 I/O 引脚。
内部 16MHz RC 振荡器作为系统时钟源,XIN/XOUT 作为普通的 I/O 口 外部振荡器作为系统高速时钟,典型频率为 4MHz。
SONiX TECHNOLOGY CO., LTD Page 39 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

4.4.2 外部高速时钟

外部高速时钟共两种模式:石英/陶瓷振荡器和外部时钟源,由代码选项 High_Clk 控制具体模式的选择。振荡器上升 时间与复位时间的长短密切相关。
4MH z Crystal
4MHz Ceramic
4.4.2.1 石英/陶瓷振荡器
石英/陶瓷振荡器由 XIN/XOUT 口驱动,对于高速、普通和低速三种不同工作模式,振荡器的驱动电流也不同。不同 的工作模式下,代码选项
CRYSTAL
C
20pF
X
C
20pF
“High_Clk”支持不同的频率条件:如普通模式下 4MHz 工作频率。
XIN
T
U
O
MCU
VDD
VSS
VCC
GND
注:上图中, XIN/XOUT/VSS 引脚与石英/陶瓷振荡器以及电容 C 之间的距离越近越好。
SONiX TECHNOLOGY CO., LTD Page 40 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

4.5 系统低速时钟

系统低速时钟源即内置的低速振荡器,采用 RC 振荡电路。低速时钟的输出频率受系统电压和环境温度的影响,通常 为
5V 时输出 32KHz3V 时输出 16KHz。输出频率与工作电压之间的关系如下图所示。
内部低速RC振荡频率
45.00
40.00
35.00
30.00
25.00
20.00
15.00
Freq. (KHz)
10.00
5.00
0.00
2.1 2.5 3 3.1 3.3 3.5 4 4.5 5 5.5 6 6.5 7
7.52
10.64
14.72
16.00
17.24
18.88
22.24
25.96
29.20
32.52
35.40
38.08
40.80
ILRC
VDD (V)
低速时钟可作为看门狗定时器的时钟源。由 CLKMD 控制系统低速工作模式。
z Flosc = z
低速模式 Fcpu = Flosc / 4
内部低速 RC 振荡器 (16KHz @3V, 32KHz @5V).
系统工作在睡眠模式下禁止看门狗时,可以停止低速 RC 振荡器。如果系统工作频率为 32K 且禁止看门狗,那么这种 情况下只有
32K 振荡器处于工作状态,系统功耗相应较低。
¾
例:停止内部低速振荡器。
B0BSET FCPUM0
注:不可以单独停止内部低速时钟;由寄存器 OSCM 的位 CPUM0 的设置决定内部低速时钟的状态。

4.5.1 系统时钟测试

在设计过程中,用户可通过软件指令周期 Fcpu 对系统时钟速度进行测试。这种测试方法只在低速模式下有效。
¾
例:外部振荡器的 Fcpu 指令周期测试。
B0BSET P1M.0
@@: B0BSET P1.0 B0BCLR P1.0 JMP @B
SONiX TECHNOLOGY CO., LTD Page 41 Version1.2
; 设置 P1.0 位输出模式以输出 Fcpu 的触发信号。
5
5
5

系统工作模式

5.1 概述

SN8P1917
)
高速模式;
)
低速模式;
)
睡眠模式。
可以在如下 3 种工作模式之间切换:
P0, P1唤醒功能有效
外部复位电路有效
SN8P1917
Remote Controller 8-Bit Micro-Controller
睡眠模式
CPUM0 = 1.
CLKMD = 1
CLKMD = 0
系统模式切换示意图
工作模式
工作模式 普通模式 低速模式 睡眠模式 备注
EHOSC
EHOSC
IHRC
ILRC
CPU 指令 执行 执行 停止 T0 定时器 *有效 *有效 无效 * T0ENB=1 时有效
看门狗定时器
内部中断 全部有效 全部有效 全部无效 外部中断 全部有效 全部有效 全部无效 唤醒功能
:外部高速时钟;
运行 由 STPHX 控制 停止 运行 由 STPHX 控制 停止 运行 运行 停止
Watch_Dog
编译选项控制
- -
Watch_Dog
编译选项控制
Watch_Dog
译选项控制
P0P1,复位
低速模式普通模式
参阅编译选项章节
IHRC
:内部高速时钟(16M RC 振荡器);
ILRC
:内部低速时钟(RC 振荡器:3V 16K5V 32K);
SONiX TECHNOLOGY CO., LTD Page 42 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

5.2 系统模式切换

¾
例:系统从普通/低速模式切换进入睡眠模式。
B0BSET FCPUM0 ;
注:睡眠模式下,只有具有唤醒功能的引脚和复位可以把系统唤醒进入普通模式。
¾
例:系统从普通模式切换进入低速模式。
B0BSET FCLKMD B0BSET FSTPHX
¾
例:系统从低速模式切换进入普通模式(外部高速振荡器正常运行)。
B0BCLR FCLKMD ;
例:系统从低速模式切换进入普通模式(外部高速振荡器停止运行)。
¾
外部高速时钟停止后,系统返回普通模式需要等待 10ms 的延迟时间等待外部时钟电路稳定。
B0BCLR FSTPHX
MOV A, #27 B0MOV Z, A
@@: DECMS Z JMP @B
; B0BCLR FCLKMD
; 设置 CLKMD = 1,系统进入低速模式。 ; 停止外部高速振荡器。
; 启动外部高速振荡器。
; VDD = 5V,内部 RC=32KHz(典型值)
; 需延迟 0.125ms X 81 = 10.125ms 等待外部时钟稳定。
; 系统返回到普通模式。

5.3 唤醒时间

5.3.1 概述

系统在睡眠模式下时并不执行程序。唤醒触发信号可以将系统唤醒进入普通模式。唤醒触发信号来自外部触发信号 (
P0P1 的电平变化)。
z
从睡眠模式唤醒后只能进入普通模式,且将其唤醒的触发只能是外部触发信号(P0、P1 电平变化);

5.3.2 唤醒时间

系统进入睡眠模式后,高速时钟停止运行。把系统从睡眠模式下唤醒时,单片机需要等待 2048 个外部高速振荡器时 钟周期以使振荡电路进入稳定工作状态,等待的这一段时间就称为唤醒时间。唤醒时间结束后,系统才进入到普通模式。
唤醒时间计算如下:
唤醒时间 = 1/Fosc * 2048 (sec) + 高速时钟启动时间
注:高速时钟的启动时间与 VDD 和振荡器类型有关。
¾
例:将系统从睡眠模式中唤醒,并设置系统进入普通模式。唤醒时间计算如下。
唤醒时间= 1/Fosc * 2048 = 0.512 ms (Fosc = 4MHz)
总的唤醒时间 = 0.512 ms + 振荡器启动时间
SONiX TECHNOLOGY CO., LTD Page 43 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
6
6
6

中断

6.1 概述

SN8P1917 共有 2 个中断源:1 个内部中断 T0 1 个外部中断 INT0。外部中断可以将系统从睡眠模式中唤醒进入高
速普通模式。一旦程序进入中断,寄存器 硬件自动将
GIE 置“1”,以响应下一个中断。中断请求存放在寄存器 INTRQ 中。
INT0触发信号
INTRQ
STKP 的位 GIE 将被硬件自动清零以避免再次响应其它中断。系统退出中断后,
INTEN中断使能寄存器
中断使能门控
P00I RQ
中断向量(0008H
T0 超时信号
2位锁存
注:程序响应中断时,位 GIE 必须处于有效状态。
T0IRQ
全局中断请求信号

6.2 中断请求使能寄存器 INTEN

中断请求控制寄存器 INTEN 包括所有中断的使能控制位。INTEN 的有效位被置为“1”则系统进入该中断服务程序, 程序计数器入栈,程序转至
0C9H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
INTEN
/
复位后
Bit 0 P00IEN
Bit 4 T0IEN
- - - T0IEN - - - P00IEN
- - - R/W - - - R/W
- - - 0 - - - 0
0008H 即中断程序。程序运行到指令 RETI 时,中断结束,系统退出中断服务。
P0.0 外部中断(INT0) 控制位。
0 =
无效;
1 =
有效。
T0 中断控制位。
0 =
无效;
1 =
有效。
SONiX TECHNOLOGY CO., LTD Page 44 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

6.3 中断请求寄存器 INTRQ

中断请求寄存器 INTRQ 中存放各中断请求标志。一旦有中断请求发生,则 INTRQ 中对应位将被置“1”,该请求被 响应后,程序应将该标志位清零。根据
0C8H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
INTRQ
/
复位后
Bit 0 P00IRQ
Bit 4 T0IRQ
- - - T0IRQ - - - P00IRQ
- - - R/W - - - R/W
- - - 0 - - - 0
P0.0 中断 (INT0) 请求标志。
0 = INT0 1 = INT0
T0 中断请求标志。
0 = T0 1 = T0
无中断请求; 有中断请求。
无中断请求; 有中断请求。
INTRQ 的状态,程序判断是否有中断发生,并执行相应的中断服务。

6.4 GIE 全局中断

只有当全局中断控制寄存器 GIE “1”的时候程序才能响应中断请求。 一旦有中断发生,程序计数器(PC)指向中 断向量地址(
0DFH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
STKP
/R/W - - - - R/W R/W R/W
复位后 0 - - - - 1 1 1
Bit 7 GIE
¾
例:设置全局中断控制位(GIE)。
B0BSET FGIE
注:在所有中断中,GIE 都必须处于使能状态。
0008H),堆栈层数加 1
GIE - - - - STKPB2 STKPB1 STKPB0
:全局中断控制位。
0 =
禁止全局中断 ;
1 =
使能全局中断。
; 使能 GIE。
SONiX TECHNOLOGY CO., LTD Page 45 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

6.5 PUSH, POP 处理

有中断请求发生并被响应后,程序转至 0008H 执行中断子程序。响应中断之前,必须保存 ACC PFLAG 的内容。 单片机没有提供特殊的指令来保护和恢复 “
B0MOV”保护/恢复 PFLAG,从而避免中断结束后可能的程序运行错误。
注:必须使用“B0XCH”指令来保护和恢复 ACC 的内容。否则 ACC 操作可能会改变 PFLAG 的内容。
¾
例:执行中断时保存 ACC PFLAG
.DATA ACCBUF DS 1 PFLAGBUF DS 1
.CODE ORG 0 JMP START
ORG 8H JMP INT_SERVICE
ORG 10H START:
INT_SERVICE:
RETI
ENDP
B0XCH A, ACCBUF B0MOV A, PFLAG
B0MOV PFLAGBUF, A
B0MOV A, PFLAGBUF B0MOV PFLAG, A
B0XCH A, ACCBUF
ACC PFLAG 的内容,因此用户必须使用指令“B0XCH”来保存/恢复 ACC;
; 保存 ACC
; 保存 PFLAG
; 恢复 PFLAG ; 恢复 ACC
; 退出中断。
SONiX TECHNOLOGY CO., LTD Page 46 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

6.6 INT0 (P0.0) 中断

INT0 被触发,则无论 P00IEN 处于何种状态,P00IRQ 都会被置“1”。如果 P00IRQ1 P00IEN1,系统响应
该中断;如果
注:P0.0 的中断触发方式由 PEDGE 控制。
0BFH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PEDGE
R/W - - R/W R/W - - -
Bit7 PEDGEN
Bit[4:3] P00G[1:0]
¾
例:INT0 中断请求设置,电平触发。
MOV A, #98H B0MOV PEDGE, A
B0BCLR FP00IRQ B0BSET FP00IEN B0BSET FGIE
¾
例:INT0 中断。
ORG 8H JMP INT_SERVICE INT_SERVICE:
EXIT_INT:
RETI
P00IRQ1 P00IEN0,系统并不会执行中断服务。在处理多中断时尤其需要注意。
PEDGEN - - P00G1 P00G0 - - -
:中断和唤醒触发控制位。
0 =
禁止边沿触发功能;
P0
:低电平唤醒触发,下降沿中断触发;
P1
:低电平唤醒触发;
1 =
使能边沿触发功能;
P0.0
:由 P00G1 P00G0 位控制唤醒触发和中断触发;
P1
:电平触发(上升/下降沿触发)唤醒功能。
P0.0 中断触发控制位。.
00 =
保留;
01 =
下降沿触发;
10 =
上升沿触发;
11 =
上升/下降沿触发(电平触发)。
;INT0 置为电平触发。
; INT0 中断请求标志清零。 ;使能 INT0 中断。 ;使能 GIE
; 保存 ACC PFLAG
B0BTS1 FP00IRQ JMP EXIT_INT
B0BCLR FP00IRQ …
; 检测 P00IRQ ; P00IRQ = 0,退出中断。
; P00IRQ 清零。 ; INT0 中断服务程序。
; 恢复 ACC PFLAG
; 退出中断。
SONiX TECHNOLOGY CO., LTD Page 47 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

6.7 T0 中断

T0C 溢出时,无论 T0IEN 处于何种状态,T0IRQ 都会置“1”。若 T0IEN T0IRQ 都置“1”,系统就会响应 T0
的中断;若 T0IEN = 0,则无论 T0IRQ 是否置“1”,系统都不会响应 T0 中断。尤其需要注意多种中断下的情形。
¾
例:设置 T0 中断。
B0BCLR FT0IEN B0BCLR FT0ENB MOV A, #20H ; B0MOV T0M, A MOV A, #64H B0MOV T0C, A
B0BCLR FT0IRQ B0BSET FT0IEN B0BSET FT0ENB
B0BSET FGIE
¾
例:T0 中断服务程序。
ORG 8H JMP INT_SERVICE INT_SERVICE:
EXIT_INT:
RETI
B0BTS1 FT0IRQ JMP EXIT_INT
B0BCLR FT0IRQ MOV A, #64H
B0MOV T0C, A ;
; 禁止 T0 中断。 ; 关闭 T0
; 设置 T0 时钟= Fcpu / 64 ; 初始化 T0C = 64H ; 设置 T0 间隔时间= 10 ms
; T0IRQ 清零。 ; 使能 T0 中断。 ; 开启定时器 T0
; 使能 GIE
; 保存 ACC PFLAG
; 检查是否有 T0 中断请求标志。 ; T0IRQ = 0,退出中断。
; T0IRQ
; 恢复 ACC PFLAG
; 退出中断。
SONiX TECHNOLOGY CO., LTD Page 48 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

6.8 多中断操作举例

在同一时刻,系统中可能出现多个中断请求。此时,用户必须根据系统的要求对各中断进行优先权的设置。中断请求 标志
IRQ 由中断事件触发,当 IRQ 处于有效值“1”时,系统并不一定会响应该中断。各中断触发事件如下表所示:
中断 有效触发
P00IRQ
T0IRQ
多个中断同时发生时,需要注意的是:首先,必须预先设定好各中断的优先级。其次,利用 IEN IRQ 控制系统是 否响应该中断。在程序中,必须对中断控制位和中断请求标志进行检测。
¾
例:多中断条件下检测中断请求。
ORG 8H ; JMP INT_SERVICE INT_SERVICE:
INTP00CHK: B0BTS1 FP00IEN
JMP B0BTS0 FP00IRQ JMP INTP00
INTT0CHK: B0BTS1 FT0IEN
JMP INT_EXIT ; B0BTS0 FT0IRQ
JMP INTT0 INT_EXIT:
RETI
PEDGE 控制
溢出
T0C
INTT0CHK
; 保存 ACC PFLAG
; 检查是否有 INT0 中断请求。 ; 检查是否使能 INT0 中断。
; 跳到下一个中断。 ; 检查是否有 INT0 中断请求。 ; 进入 INT0 中断。
; 检查是否有 T0 中断请求。 ; 检查是否使能 T0 中断。
; 检查是否有 T0 中断请求。 ; 进入 T0 中断。
; 恢复 ACC PFLAG
; 退出中断。
SONiX TECHNOLOGY CO., LTD Page 49 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
7
7
7

I/O

7.1 I/O 口模式

寄存器 PnM 控制 I/O 口的工作模式。
0C1H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
P1M
/
复位后
0C2H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
P2M
/
复位后
Bit[7:0] PnM[7:0] 0 =
1 =
注:
1. 用户可以通过位操作指令(B0BSETB0BCLR)对 I/O 口进行编程控制;
2. P4 是单向输入端口。
3. P5 是单向输出端口。
4. P2 口和 XIN/XOUT 引脚共用。
¾
例:I/O 模式选择。
CLR P1M CLR P2M
MOV A, #0FFH B0MOV P1M,A
B0MOV P2M, A
B0BCLR P1M.0
B0BSET P1M.0
- - - - P13M P12M P11M P10M
- - - - R/W R/W R/W R/W
- - - 0 0 0 0
- - - - - - P21M P20M
- - - - - - R/W R/W
- - - - - - 0 0
:Pn 模式控制位(n = 1~2)。 输入模式; 输出模式。
; 设置所有端口为输入模式。
; 设置所有端口为输出模式。
; 设置 P1.0 为输入模式。
; 设置 P1.0 为输出模式。

7.2 I/O 口上拉电阻寄存器

0E1H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
P1UR
/
复位后
0E2H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
P2UR
/
复位后
注:P0 P4 口的上拉电阻是始终存在的。
¾
例:使能 I/O 口的上拉电阻。
MOV A, #0FFH B0MOV P1UR,A
SONiX TECHNOLOGY CO., LTD Page 50 Version1.2
- - - - P13R P12R P11R P10R
- - - - W W W W
- - - - 0 0 0 0
- - - - - - P21R P20R
- - - - - - W W
- - - - - - 0 0
; 使能 P1 口的上拉电阻。
SN8P1917
Remote Controller 8-Bit Micro-Controller

7.3 I/O 口数据寄存器

0D0H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
P0
/
复位后
0D1H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
P1
/
复位后
0D2H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
P2
/
复位后
0D4H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
P4
/
复位后
0D5H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
P5
/
复位后
¾
例:从输入端口读取数据。
B0MOV A, P0 B0MOV A, P1 B0MOV A, P4
¾ 例:写入数据到输出端口。
MOV A, #0FFH B0MOV P1, A
B0MOV P5, A
¾ 例:写入 1 位数据到输出端口。
B0BSET P1.0
B0BCLR P1.0
- - - - - - - P00
- - - - - - - R
- - - - - - - 0
- - - - P13 P12 P11 P10
- - - - R/W R/W R/W R/W
- - - - 0 0 0 0
- - - - - - P21 P20
- - - - - - R/W R/W
- - - - - - 0 0
- - - - - P42 P41 P40
- - - - - R R R
- - - - - 0 0 0
- - - - - P52 P51 P50
- - - - - W W W
- - - - - 0 0 0
; P0 口的数据。 ; P1 口的数据。 ; P4 口的数据。
; 所有的端口写 FFH
; 设置 P1.0 为 1。
; 设置 P1.0 为 0。
SONiX TECHNOLOGY CO., LTD Page 51 Version1.2
SN8P1917
(
÷
(
÷
(
÷
(
Remote Controller 8-Bit Micro-Controller
8
8
8

定时器

8.1 看门狗定时器(WDT)

看门狗定时器 WDT 是一个 4 位二进制计数器,用于监控程序的正常执行。如果由于干扰,程序进入了未知状态,看 门狗定时器溢出,系统复位。在一定的时间内执行指令“ 零,则看门狗定时器溢出,系统复位。
0CAH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
OSCM
/ R/W R/W R/W -
复位后
Bit5 WDRATE
Bit6 WDRST
Bit7 WTCKS
注:看门狗定时器由编译选项(Code Option)控制。
看门狗定时器应用注意事项如下:
z
对看门狗清零之前,检查 I/O 口的状态和 RAM 的内容可增强程序的可靠性;
z
不能在中断中对看门狗清零,否则无法侦测到主程序跑飞的状况;
z
程序中应该只在主程序中有一次清看门狗的动作,这种架构能够最大限度的发挥看门狗的保护功能。
¾
例:下面是对看门狗定时器操作的示例程序,在主程序的开始清看门狗定时器。
Main: … … Err: JMP $
Correct: B0BSET FWDRST … CALL SUB1 CALL SUB2 … JMP MAIN
WTCKS WDRST WDRATE - CPUM0 CLKMD STPHX -
0 0 0 - 0 0 0 -
:看门狗定时器分频选择位。
0 = F
CPU
1 = F
CPU
:看门狗定时器复位控制位。
0 =
看门狗不复位;
1 =
看门狗清零。
:看门狗定时器时钟源选择位。
0 = F
CPU
1 =
内部低速 RC 时钟。
看门狗定时器溢出时间表
WTCKS WTRATE CLKMD
0 0 0 0 1 0 0 0 1 0 1 1 1 - -
÷ 2 ÷ 2
14
8
fcpu ÷2
1 /
fcpu ÷2
1 /
fcpu ÷2
1 /
16K ÷512 ÷16 ) ~ 0.5s @3V
1 /
B0BSET FWDRST”可以清看门狗,如果不能将看门狗定时清
R/W R/W R/W -
14
8
14
8
; 检查 I/O 口的状态。 ; 检查 RAM 的内容。 ; I/O RAM 出错,不清看门狗等看门狗计时溢出。
; I/O RAM 正常,清看门狗定时器。 ; 在整个程序中只有一处地方清看门狗。
=
16 ) = 500 msFosc=32768Hz
16 ) = 65.5sFosc=16KHz@3V
16 ) = 1sFosc=16KHz@3V
=
SONiX TECHNOLOGY CO., LTD Page 52 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

8.2 定时/计数器 T0

8.2.1 概述

8
位二进制递增计数器 T0 可作为定时器及事件计数器使用。T0 溢出时(由 0FFH 计到 00H),T0 在继续计数的同
时给出一个超时信号,该信号即是
) 8
位可编程计数器:根据选定的时钟频率定时产生中断。
T0 Rate
(Fcpu/2~Fcpu/256)
T0 中断触发信号。计数器 T0 主要有以下功能:
T0ENB
内部数据总线
Load
Fcpu
CPUM0
T0C 8位二进制计数器 T0 溢出

8.2.2 T0M 模式寄存器

0D8H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
T0M
/
复位后
Bit [6:4] T0RATE[2:0]
Bit 7 T0ENB
T0ENB T0rate2 T0rate1 T0rate0 - - - ­R/W R/W R/W R/W - - - -
0 0 0 0 - - - -
T0 分频选择位。
000 = fcpu/256. 001 = fcpu/128. … 110 = fcpu/4. 111 = fcpu/2.
T0 启动控制位。
0 =
关闭 T0 计数器;
1 =
开启 T0 计数器。
SONiX TECHNOLOGY CO., LTD Page 53 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

8.2.3 T0C 计数寄存器

计数寄存器 T0C 控制 T0 的计数间隔时间。
0D9H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
T0C
/
复位后
T0C
初始值计算公式如下:
例:T0 中断间隔时间设置为 10ms,高速时钟选择外部 4MHzFcpu=Fosc/4T0RATE=010 (Fcpu/64)
¾
T0RATE T0CLOCK
000 Fcpu/256 65.536 ms 256 us 8000 ms 31250 us 001 Fcpu/128 32.768 ms 128 us 4000 ms 15625 us 010 Fcpu/64 16.384 ms 64 us 2000 ms 7812.5 us 011 Fcpu/32 8.192 ms 32 us 1000 ms 3906.25 us 100 Fcpu/16 4.096 ms 16 us 500 ms 1953.125 us 101 Fcpu/8 2.048 ms 8 us 250 ms 976.563 us 110 Fcpu/4 1.024 ms 4 us 125 ms 488.281 us 111 Fcpu/2 0.512 ms 2 us 62.5 ms 244.141 us
T0C7 T0C6 T0C5 T0C4 T0C3 T0C2 T0C1 T0C0 R/W R/W R/W R/W R/W R/W R/W R/W
0 0 0 0 0 0 0 0
T0C
初始值= 256 - (T0 中断间隔时间 * 输入时钟)
T0C
初始值 = 256 - (T0 中断间隔时间 * 输入时钟)
= 256 - (10ms * 4MHz / 4 / 64) = 256 - (10-2 * 4 * 10
6
/ 4 / 64) = 100 = 64H
定时间隔列表
T0
高速模式 (Fcpu = 4MHz / 4) 低速模式 (Fcpu = 32768Hz / 4)
最大溢出间隔 Max
One step = max/256
最大溢出间隔 Max
One step = max/256

8.2.4 T0 操作流程

) T0
) 设置 T0 时钟频率。
)
)
)
停止计数,禁止 T0 中断并将 T0 中断请求标志清零。
B0BCLR FT0ENB B0BCLR FT0IEN B0BCLR FT0IRQ
MOV A,#0xxx00b ;通过设置寄存器T0M的bit4~bit6可控制T0的计数速率, ;设置范围x000xxxxb~x111xxxxb。 B0MOV T0M,A
设置 T0 中断间隔时间。
MOV A,#7FH B0MOV T0C,A
设置 T0 工作模式。
B0BSET FT0IEN
开启 T0
B0BSET FT0ENB
SONiX TECHNOLOGY CO., LTD Page 54 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
9
9
9
1/3 偏压,共有 48 点驱动。

LCD 驱动

SN8P1917
LCD 驱动包括 4 common 引脚和 12 segment 引脚,LCD 扫描的时序占用 1/4 占空比,1/2 或者

9.1 LCDM1 寄存器

LCDM1
Bit5 LCDBNK
Bit3 LCDENB
Bit2 LCDBIAS
Bit1 LCDRATE
Bit0 LCDCLK
寄存器初始值 = xx0x 0011
089H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
LCDM1
/写 - - R/W - R/W R/W R/W R/W
复位后 - - 0 - 0 0 1 1
1 = LCD
- - LCDBNK - LCDENB LCDBIAS LCDRATE LCDCLK
LCD 显示控制位。
0 =
正常显示;
1 =
关闭 LCD
LCD 驱动使能控制位。
0 =
禁止;
1 =
使能。
LCD 偏压选择位。
0 = LCD 1 = LCD
0 = LCD 1 = LCD
0 = LCD
的偏压是 1/3; 的偏压是 1/2。
LCD 时钟速率控制位(LCD CLK = 1)。
时钟 = 内部 RC/ 64; 时钟 = 内部 RC/ 32。
LCD 时钟源选择控制位。
时钟 = 外部/2^14,帧比率 = LCD 时钟/ 4;
高速时钟 = 4M,LCD 时钟 = 244.14Hz,帧比率 = 244.14/4=61.03 高速时钟 = 3.58M,LCD 时钟 = 218.51Hz,帧比率 = 218.51/4=54.62
时钟 = 内部 RC /32LCDRATE=1)或者内部 RC = 64LCDRATE=0)。
帧比率 = LCD 时钟/4
1:当 SN8P1917 的封装形式是 Dice 时,另外 2 个引脚 V1/V2 可以用来调节 LCD 的驱动能力。 2:在 1/3 偏压时设置 V1 = 1/3VLCDV2 = 2/3VLCD1/2 偏压时将 V1 V2 短路,即设置为 V1 = V2 = 1/2VLCD 3:引脚 V1/V2 只在 Dice 的形式下才有,封装片是没有的。
SONiX TECHNOLOGY CO., LTD Page 55 Version1.2

9.2 LCD 时序

LCD 时序列表
LCDCLK
0 Fhosc X 4M/2^14=244.14Hz@4M 244.14/4=61.03Hz 0 Fhosc X 3.58M/2^14=218.51Hz@3.58M 218.51/4=54.6Hz 1 Flosc 0 16K/64=250Hz@3V 250/4=62.5Hz 1 Flosc 1 16K/32=500Hz@3V 500/4=125Hz 1 Flosc 0 32K/64=500Hz@5V 500/4=125Hz 1 Flosc 1 32K/32=1000Hz@3V 1000/4=250Hz
LCD 时钟源
LCD Clock
COM0
LCDRATE
驱动波形图,1/4 占空比,1/2 偏压
LCD
1 Frame 1 Frame
LCD 时钟 =LCD 时钟/4
SN8P1917
Remote Controller 8-Bit Micro-Controller
VLCD
1/2*VLCD
VSS
COM1
COM2
COM3
SEG0 (1010b)
SEG0 (0101b)
VLCD
1/2*VLCD
VSS
VLCD
1/2*VLCD
VSS
VLCD
1/2*VLCD
VSS
VLCD
1/2*VLCD
VSS
ON OFF ON ON ONOFF OFF OFF
VLCD
1/2*VLCD
VSS
ON ON ON ONOFF OFF OFF OFF
SONiX TECHNOLOGY CO., LTD Page 56 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
LCD
驱动波形图,1/4 占空比,1/3 偏压
LCD Clock
1 Frame 1 Frame
VLCD
COM0
COM1
COM2
2/3*VLCD
1/3*VLCD
VSS
VLCD
2/3*VLCD
1/3*VLCD
VSS
VLCD
2/3*VLCD
1/3*VLCD
VSS
VLCD
COM3
SEG0 (1010b)
SEG0 (0101b)
ON OFF ON ON ON
OFF OFF OFF OFF
ON ON ON ON
OFF OFF OFF
2/3*VLCD
1/3*VLCD
VSS
VLCD
2/3*VLCD
1/3*VLCD
VSS
VLCD
2/3*VLCD
1/3*VLCD
VSS
SONiX TECHNOLOGY CO., LTD Page 57 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

9.3 LCD RAM 地址

RAM bank 15
Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 COM0 COM1 COM2 COM3 - - - -
SEG 0 00H.0 00H.1 00H.2 00H.3 - - - ­SEG 1 01H.0 01H.1 01H.2 01H.3 - - - ­SEG 2 02H.0 02H.1 02H.2 02H.3 - - - ­SEG 3 03H.0 03H.1 03H.2 03H.3 - - - -
- - - - - - - - -
- - - - - - - - -
- - - - - - - - -
- - - - - - - - -
SEG 11 11H.0 11H.1 11H.2 11H.3 - - - -
¾
例:开启 LCD 功能。
LCD 的控制位(LCDENB)和 LCD RAM 显示 LCD
B0BSET FLCDENB
的地址与 Common/Segment 引脚地址的关系
; LCD 驱动。
SONiX TECHNOLOGY CO., LTD Page 58 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

9.4 LCD 电路

LCD 电路中,SN8P1917 内置 200K 欧姆的分压电阻。用户可在 VLCD/V2/V1/VSS 之间添加电阻以获得更大的
驱动电流。
注:V1V2 只在 Dice 形式下存在,在封装片上是不存在的。
LCD
电路,1/4 占空比,1/3 偏压
⎛ ⎜
VLCD
×
R200K
+
R200K
3
×
⎟ ⎠
=
nconsumptioCurrent LCD
注:使用外部电阻时,VLCD 的 LCD 电流功耗始终存在,即使在睡眠模式下也存在。 注:V1=1/3*VLCD、V2=2/3*VLCD。
LCD
电路,1/4 占空比,1/2 偏压:
⎛ ⎜
VLCD
×
R200K
+
R200K
2
×
⎟ ⎠
=
nconsumptioCurrent LCD
注:使用外部电阻时,VLCD 的 LCD 电流功耗始终存在,即使在睡眠模式下也存在。 注:V1=V2=1/2*VLCD。
SONiX TECHNOLOGY CO., LTD Page 59 Version1.2
SN8P1917
A
A
Remote Controller 8-Bit Micro-Controller
0
1
1
1
0
0

Charge-PumpPGIA ADC

10.1 概述

SN8P1917 内置升压/稳压器 Charge-Pump/RegulatorCPR),从 AVDDR 输出稳定的 3.8V,而从 AVE+输出稳定
3.0V/1.5V,最大的驱动电流为 10mACPR 给内部电路(PGIAADC)和外部传感器(压力传感器或热敏电阻)提
供稳定的电压。 有 2 个不同的输入信道模式:(11 个差分输入;(22 个单端输入。ADC 在压力测量和医用仪表方面可以进行单/双 极性的测量。内置增益可调的低噪声可编程增益放大器( 五种增益。
SN8P1917 具有完整的 ΔΣ 模拟数字转换器(ADC),具有 16 位性能,高达 62500 阶的分辨率。ADC
PGIA),在应用时,可以选择 1x12.5x50x100x 200x

10.2 模拟信号输入

下图是 PGIA ADC 模块结构简图,由一个多路选择器(用于输入通道的选择),一个可编程增益放大器(PGIA
ΔΣ ADC 模块组成。
为了使 ADC 输出的范围达到最大,ADC 的输入信号电压 V(X+X-)应该接近于但不能超过参考电压 V(R+R-), 选择一个合适的参考电压和和合适的 考电压选择)位和
AI+
AI-
AMPM 寄存器的 GS[2:0](增益选择)位。
PGI
PGI
PGIA 可以使 ADC 的输出范围很大。相关的控制位是 ADCM 寄存器的 RVS[1:0]](参
C
R+
AMPCKS
X-
X+
ADCKS
ΔΣ
ADC MODULE
ADCDB
1:低通滤波器(RR C)可以滤除 PGIA Chopper Clock 带来的干扰。 2:电容 C 的建议值是 0.01uF,电容 C 要尽可能的靠近单片机。
AMPM
模块的结构简图
ADC
ADCM
R -
SONiX TECHNOLOGY CO., LTD Page 60 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.3 Charge Pump / Regulator (CPR)

SN8P1917 内置一个 CPR 电路,提供 3.8V 的电源(来自 AVDDR)和 3.0V/1.5V(来自 AVE+)电源,最大驱动电
10mA。寄存器 CPM 可以控制 CPR 的工作状态和工作模式,而寄存器 CPCKS 决定 CPR 的工作频率,建议值为 4KMz。
由于
PGIA ADC 的电源来自 AVDDR,因此在使能 PGIA 和 ADC 之前要打开 AVDDR(AVDDRENB = 1),而 AVDDR
端的电压是来自 AVDDCP,通过稳压器稳定为 3.8V。另外,在设置 CPRENB 为高电平后,最少要等待 10ms,等 待 VDD 稳定。

10.3.1 CPM-CHARGE PUMP 模式寄存器

095H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
CPM
/
复位后
Bit0: CPRENB
Bit1: CPON
Bit2: CPAUTO
Bit3: CPSTS
Bit4: AVENB
Bit5: AVESEL
Bit6: AVDDRENB
Bit7: ACMENB
1:在置 CPRENB = 1 后,请延迟 30ms 等待电压稳定。 2:在打开 Charge Pump 后,AVDDR(包括 PGIA ADC)和 AVE+端负载的功耗都是没有开启时的 2 倍。 3:在打开 Charge pump / Regulator 之前,必须先打开 Band GapBGRENB = 1)。 4:在打开 PGIA ADC 前,必须先打开 Band GapBGRENB = 1,ACMACMENB = 1)和 AVDDRAVDDRENB)。 5CPRPGIA ADC 都可以在低速模式下工作,但是 CPCKSAMPCKS 寄存器的值必须重新设置。
ACMENB AVDDRENB AVESEL AVENB CPSTS CPAUTO CPON CPRENB
R/W R/W R/W R/W R R/W R/W R/W
0 0 0 0 0 0 0 0
Charge Pump / Regulator 功能使能控制位。
0 =
关闭 charge pump / regulator
1 =
打开 charge pump / regulator。.
Change Pump 始终开启(ON)功能控制位(CPRENB 必须置“1”)。
0 =
CPAUTO 位控制 Charge Pump On / Off 状态;
1 =
始终开启 charge pump regulator
Charge Pump Auto 模式功能控制位。
0 =
禁止 charge pump auto 模式;
1 =
使能 charge pump auto 模式。
Charge-Pump AUTO 模式下的状态位(仅在 CPAUTO = 1 时有效)。
0 = Charge-Pump 1 = Charge-Pump
在 Auto 模式下为 OFF 状态; 在 Auto 模式下为 ON 状态。
AVE+电压输出控制位。
0 =
禁止 AVE+输出电压;
1 =
使能 AVE+输出电压。
AVE+电压选择控制位。
0 = AVE+ 1 = AVE+
输出 1.5V; 输出 3.0V。
RegulatorAVDDR)电压使能控制位。
0 =
关闭 RegulatorAVDDR 输出 0V 电压;
1 =
打开 RegulatorAVDDR 输出 3.8V 电压。
:模拟电路公共端(ACM)电压使能控制位。
0 =
关闭 ACMACM 的输出电压为 0V
1 =
打开 ACMACM 的输出电压为 1.2V
SONiX TECHNOLOGY CO., LTD Page 61 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
CPRENB ON
Auto 模式。
CPON 和 CPAUTO 位是 Charge-Pump 工作模式的控制位,通过它们,Charge-Pump 设置为 OFF、Always
CPRENB CPON CPAUTO AVDDRENB
0 X X 0 OFF OFF N/A 0V 无效 1 0 0 1 OFF ON N/A 参考注 1 参考注 1 1 0 1 1 Auto Mode ON 0/1 3.8V 有效 1 1 0 1 ON ON N/A 3.8V 有效
Charge-Pump 状态 Regulator状态
CPSTS AVDDR
PGIA, ADC 功能
)
Auto 模式下,Charge-Pump ON/OFF 的工作模式由 VDD 电压决定。
Auto-Mode
CPRENB CPON CPAUTO AVDDRENB VDD
说明:
1 0 1 1
Charge-Pump
状态
>4.1V OFF 0 ON 3.8V 有效
4.1V ON 1 ON 3.8V 有效
CPSTS
Regulator
状态
AVDDR
输出
PGIA, ADC
功能
1:当 Charge-Pump 选择 OFF 状态,Regulator 选择 ON 模式时,VDD 的电压必须大于 4.1V 以保证 AVDDR 输出正常的
电压,否则 PGIA ADC 的功能会不正常。
CPRENB CPON CPAUTO AVDDRENB VDD
1 0 0 1
>4.1V OFF ON 3.8V 有效
4.1V OFF ON
Charge-Pump 状态 Regulator 状态 AVDDR 输出 PGIA, ADC 功能
VDD
无效
1:一般应用时,强烈建议设置 CP Auto 模式(CPAUTO = 1)。 2:如果 VDD 5V,不要将 Charge-Pump 设置为 Always ON 3:在使能下列功能之前,必须先打开 Band Gap 的参考电压(详见 AMPM 寄存器)。
1. Charge pump /Regulator
2. PGIA 功能;
3. 16 ADC 功能;
4. 低电压检测功能。
SONiX TECHNOLOGY CO., LTD Page 62 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.3.2 CPCKS-Charge Pump 时钟寄存器

096H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
CPCKS
R/W W W W W
复位后
CPCKS [3:0]
在低速模式下设定为
Charge-Pump
在不同的 Fosc 频率下,CPCKS[3:0]寄存器的值的设置见参考下表:
1:在打开 Charge Pump 时,建议先将 Charge Pump 时钟设为“1011”以避免 VDD 跌落。 2:在一般的应用中,CP 工作时钟的建议值是:普通模式下 1315KHz;低速模式(内部低速时钟模式)下 2KHz 3Charge Pump 的时钟越快,AVE+的负载能力更强。
CPCKS3 CPCKS2 CPCKS1 CPCKS0
0 0 0 0
寄存器设置 Charge-Pump 的工作时钟,建议在普通模式下,Charge-Pump 的时钟设定为 13~15.6KHz;
2KHz
时钟 = Fcpu / 4 / (2^CPCKS[3:0])
CPCKS3 CPCKS2 CPCKS1 CPCKS0
0 0 0 0 125K 223.75K 250K 500K 0 0 0 1 62.5K 111.88K 125K 250K 0 0 1 0 31.25K 55.94K 62.5K 125K 0 0 1 1 15.625K 27.97K 31.25K 62.5K 0 1 0 0 7.8125K 13.985K 15.625K 31.25K 0 1 0 1 3.90625K 6.99K 7.8125K 15.625K 0 1 1 0 1.953215K 3.495K 3.90625K 7.8125K 0 1 1 1 0.976K 1.75K 1.953215K 3.90625K 1 0 0 0 0.488K 0.875K 0.976K 1.953215K 1 0 0 1 0.244K 0.438K 0.488K 0.976K 1 0 1 0 0.122K 0.219K 0.244K 0.488K 1 0 1 1 0.61K 0.11K 0.122K 0.244K 1 1 0 0 0.3K 0.055K 0.061K 0.122K 1 1 0 1 0.15K 0.028K 0.03K 0.61K 1 1 1 0 0.075K 0.014K 0.015K 0.3K 1 1 1 1 0.037K 0.007K 0.008K 0.15K
2M 3.58M 4M/IHRC 8M
高速时钟
SONiX TECHNOLOGY CO., LTD Page 63 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
¾
例:设置 Charge-PumpFosc = 4M X’tal
@CPREG_Init: XB0BSET FBGRENB
MOV A, #00001011b XB0MOV CPCKS, A
MOV A, #00100100B ; XB0MOV CPM, A
@CP_Enable: XB0BSET FCPRENB
CALL @Wait_200ms
MOV A, #0000100b XB0MOV CPCKS, A
CALL @Wait_100ms
@ACM_Enable: XB0BSET FACMENB
CALL @Wait_5ms
@AVDDR_Enable: XB0BSET FAVDDRENB
CALL @Wait_50ms
@AVE_Enable: XB0BSET FAVENB
CALL @Wait_50ms …
; 使能 Band Gap 参考电压。
; 设置 CPCKS 为最低的时钟以避免 VDD 跌落。
; 设置 AVE+=3.0V,CP Auto 模式并在使能 Charge Pump 之前禁 ; AVDDRAVE+ACM 的电压。
; 使能 Charge-Pump ; 延迟 200ms 等待 Charge-Pump 稳定。
; 设置 CPCKS 15.6K,负载能力为 10mA ; 延迟 5ms 等待 ACM 电压稳定。
; 设置 ACM 电压 = 1.2V ; 延迟 5ms 等待 ACM 电压稳定。
; 设置 AVDDR ; 延迟 50ms 等待 AVDDR 稳定。
; 设置 AVE+电压 = 3.0V/1.5V ; 延迟 50ms 等待 AVE+稳定。
电压 = 3.8V
1:当使用单颗 CR2032 电池供电时,Charge-Pump 应该延迟 200ms 或者 100ms 以避免 VDD 跌落;如果使用 AA 或者 AAA
干电池供电时,延迟时间应该少于 50ms
SONiX TECHNOLOGY CO., LTD Page 64 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.4 PGIA –可编程增益放大器

SN8P1917 内建一个增益可调的低噪声可编程增益放大器(PGIA),通过寄存器 AMPM 可以选择 1x、12.5x、50x、 100x 200x 增益。PGIA 还提供 2 种信道选择模式:(11 个全差分输入;(22 个单端输入,由寄存器 AMPCHS
控制。

10.4.1 AMPM- 放大器工作模式寄存器

090H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
AMPM - BGRENB FDS1 FDS0 GS2 GS1 GS0 AMPENB
/
复位后
Bit0 AMPENB
Bit[3:1] GS [2:0]
注:当选择增益 1x 时可以禁止 PGIAAMPENB = 0)以省电。
Bit[5:4] FDS [1:0]
注:在所有的应用中请设置 FDS[1:0] = “11”
Bit6: BGRENB
0 = 1 =
1:在使能下列功能之前必须先使能 Band Gap 参考电压(FBGRENB):
1. Charge pump /Regulator
2. PGIA 功能;
3. 16 ADC 功能;
4. 电池低电压检测功能。
2PGIA 不能在低速模式下工作,除了增益选择 1x 外。
- R/W R/W R/W R/W R/W R/W R/W
0 0 0 0 1 1 1 0
PGIA 功能使能控制位。
0 =
禁止 PGIA 功能;
1 =
使能 PGIA 功能。
PGIA 增益选择控制位。
GS [2:0]
000 12.5 001 50 010 100 011 200
100,101,110
111 1
PGIA 增益
保留
Chopper 低频设置位。
:Band Gap 参考电压使能控制位。 禁止 Band Gap 参考电压; 使能 Band Gap 参考电压。
SONiX TECHNOLOGY CO., LTD Page 65 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.4.2 AMPCKS- PGIA 时钟选择寄存器

092H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
AMPCKS - - - - - AMPCKS1 AMPCKS1 AMPCKS0
/
复位后
Bit[2:0] AMPCKS [2:0]
1.74KHz @3.58MHz
PGIA
时钟 = Fcpu / 32 / (2^AMPCKS)
在不同的 Fosc 频率下,AMPCKS[2:0]寄存器的值请参阅下表:
AMPCKS2 AMCKS1 AMPCKS0
0 0 0 250Hz 15.625K 27.968K 31.25K 62.5K 125K 0 0 1 125Hz 7.8125K 13.98K 15.625K 31.25K 62.5K 0 1 0 62.5Hz 3.90625K 6.99K 7.8125K 15.625K 31.25K 0 1 1 31.25Hz 1.953125K 3.49K 3.90625K 7.8125K 15.625K 1 0 0 15.625hz 976Hz 1.748K 1.953125K 3.90625K 7.8125K 1 0 1 7.8Hz 488Hz 874Hz 976Hz 1.953125K 3.90625K 1 1 0 3.9Hz 244Hz 437Hz 488Hz 976Hz 1.953125K 1 1 1 1.95Hz 122Hz 218Hz 244Hz 488Hz 976Hz
注:在一般应用时,PGIA Chopper的时钟应该设置为~2KHz,但是在高速 32768 晶振时钟模式或者内部低速时钟模式下则应该
设置为 250Hz
- - - - - W W W
- - - - - 0 0 0
寄存器设置PGIA Chopper的工作时钟,建议Chopper的时钟选择为:1.95KHz @4MHz
32K 2M 3.58M 4M/IHRC 8M 16M
高速时钟
SONiX TECHNOLOGY CO., LTD Page 66 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.4.3 AMPCHS-PGIA 通道选择

091H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
AMPCHS
- - - - - R/W R/W R/W
CHS [2:0]
CHS [2:0]
1VAI+, AI-=AI+电压 - AI-电压) 2VAI-, ACM =AI-电压 – ACM 电压) 3:输入短路模式仅用来测试 PGIA 的偏移量。 4:当禁止 CPR 或者系统停止运行时,模拟信号的输入引脚都必须置 00V,包括 Al+Al-X+X-R+R-),否则这
PGIA 通道选择
000 AI+, AI­001 AI+, ACM 010 AI-, ACM 011 ACM, ACM 100 101
110,111
些引脚会造成漏电。
AMPCHS[2:0]=”000” AMPCHS[2:0]=”001”
- - - - - CHS2 CHS1 CHS0
选择通道 V (X+, X-) 输出 输入信号的类型
V (AI+, AI-) × PGIA 增益 差分输入
V (AI+, ACM) × PGIA 增益 单端输入
V (AI-, ACM) × PGIA 增益 单端输入
V (ACM, ACM) × PGIA 增益 输入短路
保留
温度传感器 V (VTS, 0.4V) × 1
- ­N/A
AI+
AI-
AI-
ACM
X+
REF+
X+
REF+
AI+
PGIA
ADC
PGIA
ADC
ACM
X-
AMPCHS[2:0]=”010” AMPCHS[2:0]=”011”
X+
PGIA
X-
REF+
ADC
REF-
REF-
ACM
PGIA
X-
X+
X-
REF-
REF+
ADC
REF-
SONiX TECHNOLOGY CO., LTD Page 67 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.4.4 温度传感器(TS

在应用中,不同的环境温度会使传感器的特性也有所不同,为了得到不同的温度信息,SN8P1917 内置了一个温度传
感器(
TS)来测量工作环境温度。通过不同的通道达到测量环境温度的目的。
AMPCHS[2:0]= 101
AVDDR
REF+
ADC
REF-
TS
0.4V
X+
1x
X-
AVSS
1:当选择温度传感器时,PGIA 的增益要选择为 1x,否则会出错。 2:这样设置后,X+的电压就是 VTS),X-的电压是 0.4V 3:这里的温度传感器只是一个参考数据而不是真实的室温,在精确的应用中,请选用外部的温度传感器。
25C 的环境下,V(TS)大约是 0.8V。如果温度上升 10C,V(TS)就会下降 15mV;相反,若温度下降 10CV
TS)则会上升 15mV
例:
温度
15 0.815V 0.8V 16211 25 0.800V 0.8V 15625 35 0.785V 0.8V 15039
通过 VTSADC 输出,可以得到温度信息和系统补偿。
1:每颗单片机的 VTS)和温度曲线都是有差异的,建议在应用温度传感器时进行室内温度校准。 2:温度传感器的典型温度参数是 1.5mV/C
V(TS) V(REF+,REF-)
ADC 输出
SONiX TECHNOLOGY CO., LTD Page 68 Version1.2
¾
例:PGIA 设置(Fosc = 4M X’tal))。
@CPREG_Init: XB0BSET FBGRENB
MOV A, #00001011b XB0MOV CPCKS, A
MOV A, #00100100B ; XB0MOV CPM, A @CP_Enable: XB0BSET FCPRENB CALL @Wait_200ms
MOV A, #0000100b XB0MOV CPCKS, A CALL @Wait_100ms @ACM_Enable: XB0BSET FACMENB CALL @Wait_5ms @AVDDR_Enable: XB0BSET FAVDDRENB CALL @Wait_50ms @AVE_Enable: XB0BSET FAVENB CALL @Wait_50ms @PGIA_Init: MOV A, #01110110B XB0MOV AMPM, A MOV A, #00000100B XB0MOV AMPCKS, A MOV A, #00h XB0MOV AMPCHS, A @PGIA_Enable: XB0BSET FAMPENB …
; 使能 Band Gap 参考电压。
; 设置 CPCKS 为最低时钟模式以避免 VDD 跌落。
; 设置 AVE+=3.0V,设置 CP 为自动模式并在使能 Charge Pump 之前 ; 禁止 AVDDRAVE+ACM 电压。 ; 使能 Charge-Pump ; 延迟 200ms 等待 Charge-Pump 稳定。
; 设置 CPCKS 15.6K,负载能力为 10mA ; 延迟 100ms 等待 CPCKS 稳定。
; 设置 ACM 电压为 1.2V ; 延迟 5ms 等待 ACM 稳定。
; 设置 AVDDR 电压为 3.8V ; 延迟
50ms 等待 AVDDR 稳定。
; 设置 AVE+电压为 3.0V/1.5V ; 延迟 50ms 等待 AVE+稳定。
; 使能 Band Gap,设置 FDS= 11PGIA 增益 =200x
; 设置 AMPCKS = 100PGIA 工作时钟 = 1.9K @ 4M X’tal
; 选择 PGIA 差分输入通道 = AI+,AI-。
; 使能 PGIA 功能。 ; VX+, X-)输出 = VAI+, AI-x 200
¾
1:在 PGIA 工作之前使能 Charge-Pump/Regulator
¾
2:设置 PGIA 相关寄存器后再使能 PGIA 功能位。
¾
例:设置 PGIA 通道。
@PGIA_Init: MOV A, #01110110B XB0MOV AMPM, A MOV A, #00000100B XB0MOV AMPCKS, A MOV A, #00000000B XB0MOV AMPCHS, A @PGIA_Enable: XB0BSET FAMPENB … @PGIA_TS: MOV A, #01111111B XB0MOV AMPM, A MOV A, #00000101B XB0MOV AMPCHS, A …
; 使能 Band Gap,设置 FDS= 11PGIA 增益 =200x
; 设置 AMPCKS = 100PGIA 工作时钟 = 1.9K @ 4M X’tal
; 选择 PGIA 差分输入通道 = AI+, AI-
; 使能 PGIA 功能。 ; VX+, X-)输出 = VAI+, AI-x 200
; 切换 PGIA 信道时不用禁止 PGIA 功能。 ; 使能 Band Gap,设置 FDS= 11PGIA 增益 =1x
; 选择 PGIA 为温度传感器通道。 ; VX+, X-)输出 = VTS, 0.4x 1
SN8P1917
Remote Controller 8-Bit Micro-Controller
SONiX TECHNOLOGY CO., LTD Page 69 Version1.2
SN8P1917
+
Remote Controller 8-Bit Micro-Controller

10.5 16 ADC

10.5.1 ADCM- ADC 工作模式寄存器

093H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ADCM
/
复位后
Bit0: ADENB
Bit1: RVS 0
Bit2: RVS 1
Bit3: IRVS
IRVS RVS1 RVS0
X 0 0 R+ R- V (X+, X-) < V (R+, R-)
0 1 0 0.8V 0.4V
1 1 0 1.2V 0.4V
1 1 0 0.6V 0.2V
X 0 1 R+ R­0 1 1 0.8V 0.4V 1 1 1 1.2V 0.4V
1:AD 转换的数据存放在 ADCDH ADCDL 寄存器中,其中 ADCB15 ADC 数据的符号位。关于 AD 转换数据值的计算方
法请参考如下公式:
2:内部参考电压除以 AVE+,因此所得到的电压值随 AVE+3.0V/1.5V)的不同而不同。
1:内部 1.2V0.8V 0.4V 参考电压来自 Band Gap 参考电压。
- - - - IRVS RVS1 RVS0 ADENB
- - - - R/W R/W R/W R/W
- - - - 0 0 0 0
ADC 功能控制位。
0 =
禁止 16 ADC
1 =
使能 16 ADC
ADC 信号输入选择位。
0 =
信号从 X+X-输入;
1 =
信号从 VDD 输入。
ADC 参考电压选择位。
0 = ADC 1 = ADC
0 = 1 =
参考电压来自外部参考源 R+、R-; 参考电压来自内部参考源。
:内部参考电压选择位。 内部参考电压 V(REF+,REF-)为 AVE+*0.133(当 AVE+ = 3.0V 时,V(REF+, REF-) = 0.4V); 内部参考电压 V(REF+,REF-)为 AVE+*0.266(当 AVE+ = 3.0V 时,V(REF+, REF-) = 0.8V)。
AD 参考电压 AD 通道输入
REF+ REF- ADCIN+ ADCIN-
X+ X-
VDD *3/16 VDD* 2/16
)()(
)()(
ionDataADCConversADCINADCIN
ionDataADCConversADCINADCIN
+=>+
=<+
ADC 输入 = 1/16 VDD
REFREF ADCINADCIN
REFREF
备注
V (X+, X-) < 0.4V
(AVE+=3.0V)
V (X+, X-) < 0.8V
(AVE+=3.0V)
V (X+, X-) < 0.4V
(AVE+=1.5V)
电池监控
(AVE+=3.0V)
ADCINADCIN
)()(
X
)()(
+
)()(
+
X
)()(
+
31250
31250
SONiX TECHNOLOGY CO., LTD Page 70 Version1.2
外部参考电路和内部参考电路列表如下:
外部参考电路 内部参考电路
RVS1=0 RVS1=1,
IRVS=1, AVE+=3.0V IRVS=1, AVE+=1.5V IRVS=0,AVE+=3.0V
AVE+
AVE+=3.0V
AVE+=1.5V
SN8P1917
Remote Controller 8-Bit Micro-Controller
AVE+=3.0V
R+
R-
AVSS
ADCM=#xxxxx00xB
ADCM=#xxxx110xB
REF+
REF-
AVSS
1.2V
0.4V
REF+
REF-
AVSS
0.6V
0.2V
REF+
REF-
AVSS
0.8V
0.4V
V(REF+, REF-) = V(R+, R-)ADC 参考电压来自外部 R+R-
R+
X+
PGIAPGIA
X-
REF+
ADC
REF-
R-
VREF+, REF- = V(1.2V, 0.4V)=0.8V,ADC 参考电压来自内部 1.2V/0.4V。
ACM=1.2V
X+
REF+
PGIAPGIA
X-
ADCM=#xxxx010xB
V(REF+, REF- = V(0.8V, 0.4V=0.4V(AVE+ = 3.0V),ADC 参考电压来自内部 0.8V/0.4V
X+
PGIAPGIA
X-
ADCM=#xxxx111xB
V(REF+, REF- = V(1.2V, 0.4V=0.8V(AVE+ = 3.0V),ADC 参考电压来自内部 1.2V/0.4V
ADC 的输出结果是电源电压分压之后的值。
VDD
X+
PGIAPGIA
X-
ADC
0.4V
ADC
0.4V
3/16VDD
2/16VDD
REF-
0.8V REF+
REF-
1.2V REF+
ADC
REF-
0.4V
AVSS
SONiX TECHNOLOGY CO., LTD Page 71 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.5.2 ADCKS- ADC 时钟寄存器

094H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ADCKS
/
复位后
ADCKS [7:0]
关于 ADCKS [7:0]寄存器在不同的 Fosc 频率下的值请参阅下表:
ADC
时钟频率 = (Fosc / (256-ADCKS [7:0]))/2
¾ 注:在一般应用中,ADC 的工作时钟频率设置为 100KHz
ADCKS7 ADCKS6 ADCKS5 ADCKS4 ADCKS3 ADCKS2 ADCKS1 ADCKS0
W W W W W W W W
0 0 0 0 0 0 0 0
寄存器设置 ADC 的工作时钟,建议值是 100K Hz
ADCKS [7:0] F
246 4M (4M / 10)/2 = 200K 236 4M (4M / 20)/2 = 100K 243 4M (4M / 13)/2 = 154K 231 4M (4M / 25)/2 = 80K
ADCKS [7:0] F
236 8M (8M / 20)/2 = 200K 216 8M (8M / 40)/2 = 100K 231 8M (8M / 25)/2 = 160K 206 8M (8M / 50)/2 = 80K
OSC
OSC
ADC 工作时钟频率
ADC 工作时钟频率
SONiX TECHNOLOGY CO., LTD Page 72 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.5.3 ADCDL- ADC 低字节数据寄存器

098H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ADCDL
/
复位后
ADCB7 ADCB6 ADCB5 ADCB4 ADCB3 ADCB2 ADCB1 ADCB0
R R R R R R R R
0 0 0 0 0 0 0 0

10.5.4 ADCDH- ADC 高字节数据寄存器

099H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ADCDH
/
复位后
ADCDL [7:0] ADCDH [7:0]
. ¾
1ADCDL [7:0]ADCDH [7:0]都是只读寄存器。
¾
2ADC 的数据存放在 ADCDHADCDL 寄存器中,其中 ADCB15 位是 ADC 数据的符号位。
¾
3ADC 输出的最大正值是 7A12H
¾
4ADC 输出的最小负值是 85EEH
ADCB15 ADCB14 ADCB13 ADCB12 ADCB11 ADCB10 ADCB8 ADCB9
R R R R R R R R
0 0 0 0 0 0 0 0
:输出 ADC 数据的低字节。
:输出 ADC 数据的高字节。
ADCB15 = 0
表示数据为正值,ADCB15 = 1 表示数据为负值。
ADC 数据(十六进制) 十进制
7A12H 31250
… …
4000H 16384
… …
1000H 4096
… … 0002H 2 0001H 1 0000H 0
0FFFFH -1 0FFFEH -2
… …
0F000H -4096
… …
0C000H -16384
… … 85EEH -31250
SONiX TECHNOLOGY CO., LTD Page 73 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.5.5 DFM-ADC 数字滤波模式寄存器

097H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
DFM
- - - - - R/W - R/W
Bit0 DRDY
1 = ADC 0 = ADCDH
Bit2 WRS0ADC 输出频率选择位。
WRS0
0 50Hz 25 Hz 20 Hz 1 25Hz 12.5 Hz 10 Hz
1:当输出 word rate = 25HzAC 50Hz 杂波会被滤除掉。 2:当输出 word rate = 20HzAC 60Hz 杂波会被滤除掉。 3:当输出 word rate = 10HzAC 50Hz AC 60Hz 杂波都会被滤除掉。 4:在读取 ADC 数据后要将 DRDY 位清零,否则它会一直保持高电平。 5:调节 ADC 的时钟频率(ADCKS)和 WRS0,可以得到合适的 word rate
¾
例:设置 Charge-PumpPGIA ADCFosc = 4M X’tal)。
@CPREG_Init: XB0BSET FBGRENB ; 使能 Band Gap 参考电压。
MOV A, #00001011b XB0MOV CPCKS, A ; 设置 CPCKS 为最低时钟工作模式以避免 VDD 跌落。
MOV A, #00100100B ; XB0MOV CPM, A ; 设置 AVE+=3.0V,CP 为自动模式并在使能 Charge Pump 之前禁止
@CP_Enable: XB0BSET FCPRENB ; 使能 Charge-Pump。 CALL @Wait_200ms ; 延迟 200ms 等待 Charge-Pump 稳定。
MOV A, #0000100b XB0MOV CPCKS, A ; 设置 CPCKS = 15.6K,负载能力为 10mA。 CALL @Wait_100ms ; 延迟 100ms 等待 CPCKS 稳定。 @ACM_Enable: XB0BSET FACMENB ; 设置 ACM 电压 =1.2V。 CALL @Wait_5ms ; 延迟 5ms 等待 ACM 稳定。 @AVDDR_Enable: XB0BSET FAVDDRENB ; 设置 AVDDR 电压 =3.8V。 CALL @Wait_50ms ; 延迟 50ms 等待 AVDDR 稳定。 @AVE_Enable: XB0BSET FAVENB ; 设置 AVE+电压 =3.0V/1.5V。 CALL @Wait_50ms ; 延迟 50ms 等待 AVE+稳定。 @PGIA_Init: MOV A, #01110110B XB0MOV AMPM, A ; 使能 Band Gap,设置 FDS=11 和 PGIA 增益 =200。 MOV A, #00000100B XB0MOV AMPCKS, A ; 设置 AMPCKS = 100,PGIA 工作时钟 = 1.9K @ 4M X’tal。 MOV A, #00H XB0MOV AMPCHS, A ; 选择 PGIA 差分输入通道 = AI+,AI-。 @PGIA_Enable: XB0BSET FAMPENB ; 使能 PGIA 功能。 ; V (X+, X-)输出 = V (AI+, AI-) x 200。 @ADC_Init: MOV A, #00000110B XB0MOV ADCM, A ; 选择 ADC 的参考电压 = V(R+, R-)。 MOV A, #0236
- - - - - WRS0 - DRDY
ADC 数据就绪位。
输出新的转换数据到 ADCDH ADCDL
ADCDL 的转换数据还未就绪。
输出 Word Rate
ADC clock = 200K ADC clock = 100K ADC clock = 80K
AVDDRAVE+ACM 电压。
SONiX TECHNOLOGY CO., LTD Page 74 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
XB0MOV ADCKS, A ; 设置 ADCKS = 236,ADC 的工作时钟= 100K @ 4M X’tal。 MOV A, #00H XB0MOV DFM, A ; 设置 ADC 为连续工作模式,WRS0 = 0。 @ADC_Enable: ; ADC rate =25 Hz XB0BSET FADCENB ; 使能 ADC 功能。 @ADC_Wait: XB0BTS1 FDRDY ; 检查 ADC 是否输出新值。 JMP @ADC_Wait ; 等待 DRDY = 1。 @ADC_Read: ; 输出 ADC 数据。 XB0BCLR FDRDY XB0MOV A, ADCDH B0MOV Data_H_Buf, A ; 把 ADC 的高字节数据存放在数据缓存器中。 XB0MOV A, ADCDL B0MOV Data_L_Buf, A ; 把 ADC 的低字节数据存放在数据缓存器中。
注:请先设置 ADC 的相关寄存器,再使能 ADC 功能。
例:设置 ADC 参考电压。
¾
@ADC_Init: MOV A, #00000110B XB0MOV ADCM, A ; 选择 ADC 参考电压 = V(R+, R-)。 MOV A, #0216 XB0MOV ADCKS, A ; 设置 ADCKS = 236,ADC 工作时钟= 100K @ 4M X’tal。 MOV A, #00H XB0MOV DFM, A ; 设置 ADC 为连续工作模式,WRS0 = “0” 25 Hz。 @ADC_Enable: XB0BSET FADCENB ; 使能 ADC 功能。 @ADC_Wait: XB0BTS1 FDRDY ; 检查 ADC 是否输出新值。 JMP @ADC_Wait ; 等待 DRDY = 1。 @ADC_Read: ; 输出 ADC 数据。 XB0BCLR FDRDY XB0MOV A, ADCDH B0MOV Data_H_Buf, A ; 把 ADC 的高字节数据存放在数据缓存器中。 XB0MOV A, ADCDL B0MOV Data_L_Buf, A ; 把 ADC 的低字节数据存放在数据缓存器中。 @ADC_RVS1: MOV A, #00011011B ; 在设置参考电压是不用禁止 ADC。 XB0MOV ADCM, A ; 选择 ADC 的参考电压来自内部 V(1.2V,0.4V)。 @@: XB0BTS1 FDRDY ; 检查 ADC 是否输出新值。 JMP @B ; 等待 DRDY = 1。 ; 输出 ADC 数据。 XB0BCLR FDRDY XB0MOV A, ADCDH B0MOV Data_H_Buf, A ; 把 ADC 的高字节数据存放在数据缓存器中。 XB0MOV A, ADCDL B0MOV Data_L_Buf, A ; 把 ADC 的低字节数据存放在数据缓存器中。 @ADC_RVS2: MOV A, #00011001B ; XBMOV ADCM, A ; 设置 ADC 用作电压测量。 @@: XB0BTS1 FDRDY ; 检查 ADC 是否输出新值。 JMP @B ; 等待 DRDY = 1。 ; 输出 ADC 数据。 XB0BCLR FDRDY XB0MOV A, ADCDH B0MOV Data_H_Buf, A ; 把 ADC 的高字节数据存放在数据缓存器中。 XB0MOV A, ADCDL B0MOV Data_L_Buf, A ; 把 ADC 的低字节数据存放在数据缓存器中。
设置参考电压时不用禁止 ADC
SONiX TECHNOLOGY CO., LTD Page 75 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.5.6 LBTM-电池低电压检测寄存器

SN8P1917
外一种是通过内置的电压比较器,电源电压经过外部分压电路连接到 位。
09AH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
LBTM - - - - - LBTO P41IO LBTENB
/
复位后
Bit0 LBTENB
Bit1: P41IO
Bit2: LBTO
下图是 LBT 应用的两种电路连接方式:一种使用 P4.2 P4.1,这样在睡眠模式下不会产生漏电流;另外一种只使用
P4.2,这种方式会在省电模式下产生一些漏电流,但是可以把 P4.1 作为输入口用。
提供 2 种方式测量电源电压:一种是通过 16 位的 ADC,这种方法比较精确但是比较费时且比较复杂;另
P4.2,与 ACM(1.2V)进行比较,比较结果在 LBTO
- - - - - R R/W R/W
- - - - - 0 0 0
:电池低电压检测模式控制位。
0 =
禁止电池低电压检测功能;
1 =
使能电池低电压检查功能。
P4.1 输入/LBT 功能控制位。
0 = P41 1 = P41
0 = P4.2/LBT 1 = P4.2/LBT
为输入口; 为 LBT 功能。
:电池低电压检测输出位。
电压高于 ACM(1.2V); 电压低于 ACM(1.2V)。
VDD
R1
0.1u
R2
ACM
P4.2
P4.1
Comparator
LBT
R1
R2
VDD
0.1u
ACM
P4.2
Comparator
LBT
VSS
VSS
LBTENB=1, P41IO=1 LBTENB=1, P41IO=0
设为 LBT 功能时,在睡眠模式下没有漏电流 P4.1 设为输入模式时,在睡眠模式下产生漏电流
P4.1
电池低电压
2.4V 1M 1M VDD<2.4V
3.6V 1.33M 0.66M VDD<3.6V
4.8V 1.5M 0.5M VDD<4.8V
注:在一段时间内(如 20ms 或更长的时间),建议连续多次判断(多于 10 次)LBTO 是否置 1 以保证电池电压确实为低电压。
R1 R2 LBTO=1
SONiX TECHNOLOGY CO., LTD Page 76 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

10.5.7 模拟部分电路设置和应用

SN8P1917 主要应用于 DC 测量,如体重秤、压力测量等。为了防止开启 Charge Pump 而造成 VDD 跌落,同时兼
顾材料成本,所以不同的应用方案,模拟部分的电容配置不一样。下表列出了不同应用方案的建议,单片机的电源分别由
CR2032 电池、AA/AAA 干电池或者外部稳压电路供电。
电容列表:
电源类型
CR2032 (2.4~3V) 0.1uF 0.1uF 0.01uF 0.1uF 1uF 1uF 2.2uF 10uF 1uF 10uF 0.1uF
CR2032 ((4.4~6V)) 0.1uF 0.1uF 0.01uF 0.1uF 1uF 1uF 2.2uF - - 10uF 0.1uF AA/AAA Bat.(2.4~3V) 0.1uF 0.1uF 0.01uF 0.1uF 1uF 1uF 4.7uF 10uF 1uF 10uF 0.1uF AA/AAA Bat.(4.4~6V) 0.1uF 0.1uF 0.01uF 0.1uF 1uF 1uF 4.7uF - - 10uF 0.1uF
外部 5V 电源
1:当单片机由 CR2032 电池供电时,AVE+端的负载不要超过 3mA。即当 AVE+=3.0V 时,Loadcell 的阻值不要低于 1K 2:当单片机由 AA/AAA 干电池供电时,AVE+的负载可以达到 10mA,即当 AVE+=3.0V 时,loadcell 的阻值可以低至 330Ω。3:当单片机供电电压恒高于 4.2V 时,可以将 ChargePump 设为自动模式或者关闭模式,这样 ChargePump 被关闭,AVDDR
AVE+端的负载电流不会加倍,AVDDCP C+C-之间的电容可以省去不接,将 AVDDCP 直接和 VDD 连接。
1:电容 C2:电容 C
AVDDCP ACM
VDD = 2.4V~4.2V 时电容的连接方法:
AI+ AI- X+/X- R+/R- ACM AVDDR AVE+ AVDDCP C+/C- VDD(Pin23) VDD(Pin28)
C
C
AI+
CX CR C
AI-
ACMCAVDDRCAVE+CAVDDCP
CC C
C
AVDD
0.1uF 0.1uF 0.01uF 0.1uF 1uF 1uF 4.7uF - - 10uF 0.1uF
的正极应该和 AVDDCP 相连,负极则应该连接到 VDD
的正极应该和 AVDDR 相连,负极则应该连接到 ACM
DVDD
C
AVE+
AVE+
C
AVDDR
AVDDR
C
ACM
AVDDR
ACM
C+
C
C-
C
C
AVDDCP
AVDDCP
AVSS
VDD
VDD = 4.2V~5.5V
时电容的连接方法:
CAVE+
AVE+
AVDDR
CACM
C-
ACM
C+
AVSS
AVDDCP
VDD
NC
CAVDDR
AVDDR
延迟时间
电源类型
Step1PCKS=#00001011BStep2CPCKS=#00000110B
CR2032 (2.4~3V) 200ms 100ms 5ms 50ms 50ms CR2032 ((4.4~6V)) - - 5ms 50ms 50ms AA/AAA Bat.(2.4~3V) 100ms 50ms 5ms 50ms 50ms AA/AAA Bat.(4.4~6V) - - 5ms 50ms 50ms 外部 5V 电压
Charge Pump 使能延迟时间
- - 5ms 50ms 50ms
1:在 CR2032 供电情况下,需要足够长的延迟时间,防止开启 Charge Pump VDD 跌落; 2:当 VDD 恒高于 4.2V 时,可以将 Charge Pump 设置为自动或者禁止模式,这样可以关闭 Charge Pump 3:在 AA/AAA 干电池供电情况下的延迟时间要比 CR2032 供电情况下的延迟时间短。
NC
使能 ACM 使能 AVDDR 使能 AVE+
SONiX TECHNOLOGY CO., LTD Page 77 Version1.2
1
1
1
1
1
1

应用电路

11.1 电子秤(Load Cell)应用电路

LCD
AVE+
VDD/AVVDDR
SN8P1917
Remote Controller 8-Bit Micro-Controller
Bridge Type Sensor
AVE+
CAI+
CR+
CR-
C
AI-
CX
CAVE+
AI+
AI-
X+
X -
R+
R-
AVE+
VLCD
AVDDR
CAVDDR
COM 3
COM 2
CACM
AVDDR
COM 1
ACM
COM 0
SEG 0
AVSS
VDD
.......................................
SEG 1
VDD
(Pin23)
AVDDCP
VSS
CAVDD
C+
CC
C-
VDD
CDVDD
SEG 10
(Pin28)
10K
P0.0
SEG 11
RST
XIN
100
20pF
20pF
104
P1.0 P1.1 P1.2
VSS
P4.0 P4.1 P4.2
P5.0 P5.1 P5.2
XOUT
3.58M X'tal
注:电容的设置请参考 10.5.7
SONiX TECHNOLOGY CO., LTD Page 78 Version1.2

11.2 温度计应用电路

VDD/AVVDDR
Thermopile
AI+
0.1uF
VLCD
COM 3
COM 2
COM 1
COM 0
.......................................
SEG 1
SEG 0
SN8P1917
Remote Controller 8-Bit Micro-Controller
SEG 11
SEG 10
AVE+
Thermistor
ACM
ACM
AVE+
0.1uF
CR+
CR-
X
C
CAVE+
AI-
X+
X -
R+
R-
AVE+
CAVDDR
ACM
AVDDR
C
ACM
AVDDR
AVSS
AVDDCP
VDD
VSS
CAVDD
VDD
(Pin23)
C+
CC
C-
VDD
CDVDD
(Pin28)
10K
RST
100
104
20pF
P0.0
P1.0 P1.1 P1.2
VSS
P4.0 P4.1 P4.2
P5.0 P5.1 P5.2
XIN
XOUT
3.58M X'tal
20pF
注:关于电容的设置请参考 10.5.7
SONiX TECHNOLOGY CO., LTD Page 79 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
2
1
1
1
指令 指令格式 说明
MOV A,M M MOV M,A O B0MOV A,M
V B0MOV M,A E MOV A,I
B0MOV M,I
XCH A,M
B0XCH A,M
MOVC
ADC A,M
A ADC M,A
R ADD A,M
I ADD M,A T B0ADD M,A H ADD A,I
M SBC A,M
E SBC M,A T SUB A,M
I SUB M,A C SUB A,I
DAA
AND A,M
L AND M,A
O AND A,I G OR A,M
I OR M,A C OR A,I
XOR A,M XOR M,A XOR A,I
SWAP M P SWAPM M R RRC M
O RRCM M
C RLC M E RLCM M S CLR M S BCLR M.b
BSET M.b
B0BCLR M.b
B0BSET M.b
CMPRS A,I B CMPRS A,M R INCS M A INCMS M N DECS M C DECMS M H BTS0 M.b
BTS1 M.b
B0BTS0 M.b
B0BTS1 M.b
JMP d
CALL d
M RET
I RETI S NOP C
2
2

指令集

C DC Z
A M M A A M (bank 0) M (bank 0) A A I M I(M 仅适用地址是 80H~87H 的系统寄存器,如 R、Y、Z、RBANK PFLAG A ←→M A ←→M (bank 0) R, A ROM [Y,Z]
A A + M + C,如果产生进位则 C = 1,否则 C = 0 M A + M + C,如果产生进位则 C = 1,否则 C = 0 A A + M,如果产生进位则 C = 1,否则 C = 0 M A + M,如果产生进位则 C = 1,否则 C = 0 M (bank 0) M (bank 0) + A,如果产生进位则 C = 1,否则 C = 0 A A + I,如果产生进位则 C = 1,否则 C = 0 A ← A - M - /C,如果产生借位则 C=0, 否则 C=1 M ← A - M - /C,如果产生借位则 C=0, 否则 C=1 A A - M,如果产生借位则 C=0, 否则 C=1 M A - M,如果产生借位则 C=0, 否则 C=1 A A - I,如果产生借位则 C=0, 否则 C=1 ACC 中的数据由十六进制改为十进制格式
A A M M A M A A I A A M M A M A A I A A 异或 M M A 异或 M A A 异或 I
A (b3~b0, b7~b4) ←M(b7~b4, b3~b0) M(b3~b0, b7~b4) M(b7~b4, b3~b0) A M 带进位右移 M M 带进位右移 A M 带进位左移 M M 带进位左移 M 0 M.b 0 M.b 1 M(bank 0).b 0 M(bank 0).b 1
比较,如果相等则跳过下一条指令 C 与 ZF 标志位可能受影响 比较,如果相等则跳过下一条指令 C 与 ZF 标志位可能受影响
A M + 1,如果 A = 0,则跳过下一条指令 M M + 1,如果 M = 0,则跳过下一条指令 A M - 1,如果 A = 0,则跳过下一条指令 M M - 1,如果 M = 0,则跳过下一条指令
如果 M.b = 0,则跳过下一条指令 如果 M.b = 1,则跳过下一条指令 如果 M(bank 0).b = 0,则跳过下一条指令 如果 M(bank 0).b = 1,则跳过下一条指令 跳转指令,PC15/14 Å RomPages1/0,PC13~PC0 Å d 子程序调用指令,Stack Å PC15~PC0,PC15/14 Å RomPages1/0,PC13~PC0 Å d
子程序跳出指令,PC Å Stack 中断处理程序跳出指令,PC Å Stack,使能全局中断控制位 空指令,无特别意义
- -
- - - 1
- -
- - - 1
- - - 1
- - - 1
- - - 1
- - - 1
- - - 2
- - 1
- -
- -
- -
- -
- -
- -
- -
- -
- -
- - - 1
- - - 1
- - 1
- - 1
- - 1
- - 1
- - - 1
- - - 1
- - - 1
- - - 1
- - - 1
-
-
- - - 1 + S
- - - 1 + S
- - - 1 + S
- - - 1 + S
- - - 1 + S
- - - 1 + S
- - - 1 + S
- - - 1 + S
- - - 2
- - - 2
- - - 2
- - - 2
- - - 1
周期
√ √ √ √ √ √ √ √ √
1 + S
1 + S
1
1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
SONiX TECHNOLOGY CO., LTD Page 80 Version1.2
SN8P1917
3
1
1
1

13.1 开发工具版本

13.1.1 ICE(在线仿真器)

z SN8ICE 1KS8KD-2):支持 SN8P1917 所有功能的仿真。 SN8ICE1K ICE 仿真时需注意:
ICE 的工作电压:3.0V~5.0V 5V 工作电压的最大仿真速率建议为:4 MIPS(如 16MHZ 晶振时 Fcpu = Fhosc/4)。 使用 SN8P1917 EV-KIT 仿真模拟功能。
注:SN8ICE2K 不支持 SN8P1917 系列的仿真。

13.1.2 OTP 烧录器

z MPIII Writer:支持 SN8P1917 大批量的脱机烧录。
3
3

开发工具

Remote Controller 8-Bit Micro-Controller

13.1.3 集成开发环境(IDE

SONiX 8 位单片机的集成开发环境包括编译器、ICE 调试器和 OTP 的烧录软件。
z SN8ICE 1KSN8IDE 1.99Z01 或更新的版本。 z MPIII WriterSN8IDE 1.99Z01 或更新的版本。 z M2IDE V1.1X 不支持 SN8P1917 的编译。
SONiX TECHNOLOGY CO., LTD Page 81 Version1.2
1
1
1
4
4

OTP 烧录信息

4

14.1 烧录转接板信息

SN8P1917
Remote Controller 8-Bit Micro-Controller
1 MPIII Writer 的内部结构
Writer
1JP1 连接 MP 烧录转接板,JP3 连接 OTP MCU。 注 2JP2 连接外部烧录转接板。当 OTP MCU PIN 超过 48PIN,或者烧录 Dice MCU 时,请采用外部烧录转接
板,连接到
下面两个图演示了如何焊接烧录转接板。
上板 JP1/JP3 Writer 上板 JP1/JP3 Writer上板 JP2
JP2 进行烧录。
2 图 3
Pin 1 (Down)
Pin 20 (UP)
SONiX TECHNOLOGY CO., LTD Page 82 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
注:
1
、 印有 IC 型号的这一面为转接板的正面。
2
180 度的母座必须焊接在 MP 转接板的背面。请参考图 2 和图 3
Pin 1
48
Pin 48
40
28
18
14
Pin 24
Pin 25
4 MP 转接板(连接到 JP1&JP3
JP3
(连接 48-pin text tool JP1/JP2
DIP 1 1 48 DIP48 VDD 1 2 VSS DIP 2 2 47 DIP47 CLK/PGCLK 3 4 CE DIP 3 3 46 DIP46 PGM/OTPCLK 5 6 OE/ShiftDat DIP 4 4 45 DIP45 D1 7 8 D0 DIP 5 5 44 DIP44 D3 9 10 D2 DIP 6 6 43 DIP43 D5 11 12 D4 DIP 7 7 42 DIP42 D7 13 14 D6 DIP 8 8 41 DIP41 VDD 15 16 VPP DIP 9 9 40 DIP40 HLS 17 18 RST
DIP10 10 39 DIP39 - 19 20 ALSB/PDB DIP11 11 38 DIP38 DIP12 12 37 DIP37 JP1 连接 MP 烧录转接板 DIP13 13 36 DIP36 JP2 连接外部转接板 DIP14 14 35 DIP35
DIP15 15 34 DIP34 DIP16 16 33 DIP33 DIP17 17 32 DIP32 DIP18 18 31 DIP31 DIP19 19 30 DIP30 DIP20 20 29 DIP29 DIP21 21 28 DIP28 DIP22 22 27 DIP27 DIP23 23 26 DIP26 DIP24 24 25 DIP25
SONiX TECHNOLOGY CO., LTD Page 83 Version1.2

14.2 SN8P1917 烧录引脚信息

SN8P1917
单片机型号
MPIII Writer
JP1/JP2 Pin
Number
1 VDD 10,23,28 VDD 10,23,28 2 GND 17,25,40 VSS 17,25,40 3 CLK 30 P1.0 30 4 CE - - ­5 PGM 31 P1.1 31 6 OE 32 P1.2 32 7 D1 - - ­8 D0 - - -
9 D3 - - ­10 D2 - - ­11 D5 - - ­12 D4 - - ­13 D7 - - ­14 D6 - - ­15 VDD 10,23,28 VDD 10,23,28 16 VPP 41 RST 41 17 HLS - - ­18 RST - - ­19 - - - ­20 ALSB/PDB 33 P1.3 33
JP1/JP2 Pin Name IC Pin Number IC Pin Name JP3 Pin Number
系列 OTP 烧录信息
OTP IC / JP3
SN8P1917
Remote Controller 8-Bit Micro-Controller
SN8P1917
引脚配置
SONiX TECHNOLOGY CO., LTD Page 84 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
5
1
1
1
5
5

电气特性

15.1 极限参数

Supply voltage (VDD)……………………………………..………………………………………..………………… - 0.3V ~ 6.0V Input in voltage (V Operating ambient temperature (T Storage ambient temperature (T
)……………………………..……….……………………………………………… VSS - 0.2V ~ VDD + 0.2V
IN
)…………………………………………………….…………………… 0°C ~ + 70°C
OPR
)…………………..……….……………………………..……………… –40°C ~ + 125°C
STOR

15.2 电气特性

(All of voltages refer to VSS, VDD = 5.0V,F
PARAMETER SYM. DESCRIPTION MIN. TYP. MAX. UNIT
Operating voltage
RAM Data Retention voltage VDR 1.5 - V
VDD rise rate V
Input Low Voltage
Input High Voltage
Reset pin leakage current I
I/O port pull-up resistor RUP
I/O port input leakage current I
I/O output source current IOH
sink current IOL VOP = VSS + 0.5V 8 15 - mA
INTN trigger pulse width T
Supply Current
Supply Current
Internal High Clock Freq. F
LVD detect level V
V
Normal mode, VPP = VDD
DD
VDD rise rate to ensure power-on reset
POR
ViL1 All input ports Vss - 0.3Vdd V ViL2 Reset pin Vss - 0.2Vdd V ViH1 All input ports 0.7Vdd - Vdd V ViH2 Reset pin 0.9Vdd - Vdd V
VIN = VDD
LEKG
VIN = VSS, VDD = 3V VIN = VSS, VDD = 5V Pull-up resistor disable, VIN = VDD
LEKG
VOP = VDD - 0.5V
0 INT0 ~ INT1 interrupt request pulse width 2/F
INT
Idd1
(Low Power Disable, Analog Parts OFF)
Idd2
Idd3
Idd4
Idd5
(Low Power Disable, Analog Parts OFF)
Idd6
Idd7
Idd8
Idd9
Idd10
Idd11
Idd12
IHRC
LVD
= 4MHz,Fcpu=1MHZ, ambient temperature is 25°C unless otherwise note.)
OSC
2.4 5.0 5.5 V
0.05 - - V/ms
- - 2 uA
100 200 300
50 100 180
- - 2 uA
8 12 - mA
normal Mode
normal Mode
(Low Power Enable Analog Parts OFF)
normal Mode
(Low Power Disable Analog Parts ON)
normal Mode
(Low Power Enable Analog Parts ON)
normal Mode
normal Mode
(Low Power Enable Analog Parts OFF)
normal Mode
(Low Power Disable Analog Parts ON)
normal Mode
(Low Power Enable Analog Parts ON)
Slow mode
(Stop High Clock, LCD OFF, CPR OFF)
Slow mode
(Stop High Clock, LCD ON, CPR OFF)
Slow mode
(Stop High Clock, LCD ON, CPR ON)
Sleep mode
Internal High RC Oscillator Frequency (Fcpu= F Internal POR detect level
Vdd= 5V 4Mhz crystal - 1.5 3 mA Vdd= 3V 4Mhz crystal - 0.5 1 mA Vdd= 5V 4Mhz crystal - 0.9 1.8 mA Vdd= 3V 4Mhz crystal - 0.35 0.7 mA Vdd= 5V 4Mhz crystal - 2.5 5 mA Vdd= 3V 4Mhz crystal - 2.2 4.4 mA Vdd= 5V 4Mhz crystal - 2 4 mA Vdd= 3V 4Mhz crystal - 1.5 3 mA Vdd= 5V IHRC - 1.7 3.4 mA Vdd= 3V IHRC - 0.9 1.8 mA Vdd= 5V IHRC - 1.1 2.2 mA Vdd= 3V IHRC - 0.7 1.4 mA Vdd= 5V IHRC - 2.5 5 mA Vdd= 3V IHRC - 2.2 4.4 mA Vdd= 5V IHRC - 2.1 4.2 mA Vdd= 3V IHRC - 1.9 3.8 mA Vdd= 5V ILRC 32Khz - 10 20 uA Vdd= 3V ILRC 16Khz - 3 6 uA Vdd= 5V ILRC 32Khz - 25 50 uA Vdd= 3V ILRC 16Khz - 12 24 uA Vdd= 5V ILRC 32Khz - 300 600 uA Vdd= 3V ILRC 16Khz - 250 500 uA Vdd= 5V - 1 2 uA Vdd= 3V - 0.7 1.5 uA
IHRC
/16)
14 16 18 MHz
1.7 2.0 2.3 V
- - Cycle
CPU
KΩ KΩ
¾ Note: Analog Parts including Charge Pump Regulator (CPR), PGIA and ADC.
SONiX TECHNOLOGY CO., LTD Page 85 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
(All of voltages refer to Vdd=3.8V F
PARAMETER SYM. DESCRIPTION MIN. TYP. MAX. UNIT
Analog to Digital Converter
Operating current I
Power down current I
Conversion rate F
Reference Voltage Input Voltage Vref
Differential non-linearity DNL ADC range ± 28125 ±0.5 ±0.5 LSB
Integral non-linearity INL ADC range ± 28125 ±1 ±4 LSB
No missing code NMC ADC range ± 28125 16 bit
Noise free code NFC ADC range ± 28125 14 16 bit
Effective number of bits ENOB ADC range ± 28125 14 16 bit
ADC Input range V
Temperature Sensor inaccuracy ETS Inaccuracy range vs. real Temp.
Current consumption I
Power down current I
Input offset voltage Vos 25 50 uV
Bandwidth BW 100 Hz
PGIA Gain Range
(Gain=200x)
PGIA Input Range Vopin VDD = 3.8V 0.4 2 V
PGIA Output Range Vopout VDD = 3.8V 0.4 2 V
Band gap Reference (Refer to ACM)
Band gap Reference Voltage VBG 1.160 1.210 1.270 V
Reference Voltage Temperature
Coefficient
Operating current IBG Run mode @ 3.8V 50 100 uA
Charge pump regulator
Supply voltage V
Regulator output voltage AVDDR V
Regulator output voltage AVE+ V
Analog common voltage V
Regulator output current capacity I
Quiescent current IQI 700 1400 uA
V
driving capacity I
ACM
V
sinking capacity I
ACM
= 4MHz, ambient temperature is 25°C unless otherwise note.)
OSC
Run mode @ 3.8V 800 1000 uA
DD_ADC
Stop mode @ 3.8V 0.1 1 μA
PDN
ADCKS: 200KHz 25 sps
SMP
R+, R- Input Range (External Ref.) 0.4 2.0 V R+, R- Input Range (Internal Ref.) 0.2 2.0 V
0.4 2.0 V
AIN
±8
PGIA
Run mode @ 3.8V 300 500 uA
DD_PGIA
Stop mode @ 3.8V 0.1 μA
PDN
GR VDD = 3.8V 180 200 250
T
50*
ACM
Normal mode 2.4 5.5 V
CPS
3.5 3.75 4.1 V
AVDDR
AVE+ set as 3.0V 2.8 3.0 3.3 V
AVE+
1.15 1.21 1.27 V
ACM
10 mA
VA+
10 - - μA
SRC
1 - - mA
SNK
PPM/
Note : When Charge Pump enable, current consumption will be time 2 of ADC, PGIA, CPR and Loading from AVE+, AVDDR.
SONiX TECHNOLOGY CO., LTD Page 86 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
6
1
1
1
6
6

SN8P1907 升级为 SN8P1917 注意事项

16.1 性能改进描述

SN8P1917 是针对 SN8P1907 存在的不足而改进的版本,主要是改进了 PGIA 的温度性能,CP 上电性能,提高了
PGIA 放大倍数,增加了内置的 16MHz 振荡器、比较器,修改了烧录方式等。

16.1.1 脚位图

SSOP48
SN8P1907 SN8P1917
SEG4 1 48 SEG5 SEG4 1 48 SEG5 SEG3 2 47 SEG6 SEG3 2 47 SEG6 SEG2 3 46 SEG7 SEG2 3 46 SEG7 SEG1 4 45 SEG8 SEG1 4 45 SEG8
SEG0 5 44 SEG9 SEG0 5 44 SEG9 COM3 6 43 SEG10 COM3 6 43 SEG10 COM2 7 42 SEG11 COM2 7 42 SEG11 COM1 8 41 VPP/RST COM1 8 41 VPP/RST COM0 9 40 VSS COM0 9 40 VSS
VLCD 10 39 P5.2 VLCD 10 39 P5.2
R+ 11 38 P5.1 R+ 11 38 P5.1
R- 12 37 P5.0 R- 12 37 P5.0
X+ 13 36 P4.2 X+ 13 36 P4.2/LBTIN2
X- 14 35 P4.1 X- 14 35 P4.1/LBTIN1
AI+ 15 34 P4.0 AI+ 15 34 P4.0
AI- 16 33 P1.3 AI- 16 33 P1.3
AVSS 17 32 P1.2 AVSS 17 32 P1.2
ACM 18 31 P1.1 ACM 18 31 P1.1
ADDR 19 30 P1.0 ADDR 19 30 P1.0
AVE+ 20 29 P0.0/INT0 AVE+ 20 29 P0.0/INT0
AVDDCP 21 28 VDD AVDDCP 21 28 VDD
C+ 22 27 XOUT C+ 22 27 XOUT/P2.1
VDD 23 26 XIN VDD 23 26 XIN/P2.0
C- 24 25 VSS C- 24 25 VSS
1 DIP/SSOP 封装脚位对比图
SONiX TECHNOLOGY CO., LTD Page 87 Version1.2
DICE
SN8P1917
Remote Controller 8-Bit Micro-Controller
SN8P1907
SN8P1917
2 DICE 脚位对比图
注:DIP/SSOP 封装 SN8P1917 SN8P1907 脚位完全兼容,但是 SN8P1917 P4.1P4.2XINXOUT 为多功能的 PIN,而
SN8P1907 相应的 PIN 为单功能。DICE IC 除了以上差异之外,SN8P1917 SN8P1907 多了两个 PINV1V2,用来调整 LCD 的驱动能力。
SONiX TECHNOLOGY CO., LTD Page 88 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

16.1.2 改良规格对照表

Item SN8P1917 SN8P1907
PGIA Gain setting
PGIA Temperature Drift
AVE+ Voltage
ADC Reference Voltage V(R+, R-)
Battery Detect Method
Temperature Sensor
ACM (1.2V) Voltage
Charge pump clock frequency (CPCKS)
Chopper clock frequency (AMPCKS)
Charge pump Regulator working in slow mode
16-Bit ADC working in slow mode
Slow mode Current Consumption
LCD Bias Voltage
Internal 16M RC Oscillator
P2 [1:0] I/O
OTP Programming Method
注:SN8P1917 PGIA 的放大倍数因为制程的原因会有误差。因为 IHRC 振荡频率会随着供电电压、环境温度等因素漂移,会造成
PGIA Gain 漂移,所以如果要求精度很高的话,建议使用外部 4M 晶振。
1x, 12.5x, 50x, 100x, 200x 1x, 16x, 32x, 64x, 128x
Typical 30PPM 100MMP~150MMP
3.0V or 1.5V 3.0V only
0.8V or 0.4V 0.8V only
By Comparator or By ADC By ADC only
Build In External
Not Change with Sink current Change with Sink current
4-Bit Selection 2-Bit Selection 3-Bit Selection 2-Bit Selection
Yes No Yes No
Less More
1/3 or 1/2 Bias 1/2 Bias only
Yes No
Available when Fosc=IHRC No
Serial Method Parallel Method
SONiX TECHNOLOGY CO., LTD Page 89 Version1.2
SN8P1917
U?
U?
Remote Controller 8-Bit Micro-Controller

16.2 升级注意实现

16.2.1 硬件

 SN8P1917 在硬件上完全兼容 SN8P1907
当选择外部 16MHz 高速振荡器时,XIN/XOUT 可以作为 P2.0/P2.1 双向 I/O 口使用。
当选择内部比较器作为电压检测时,P4.1 P4.2 口只能作为比较器的输入引脚,而不能作为普通 I/O 口使用。
如果是 DICEIC 要比 SN8P1907 多两个 PIN,即 V1 V2LCD 的驱动能力可以通过 V2V1 两端来调整。
因为 SN8P1917 SN8P1907 CP 电路不同,所以在应用时有所区别:
1.
VDD 3VDC 系统时,AVDDCP 端采用的是和 SN8P1907 一样的接电容方式,即 AVDDCP 端电容接地,当该电 容的值大于 因为只有当
2.
当采用 6/8VDC 系统时,请将 AVDDCP VDD 直接短接,如下图所示:
VCC
470uF 时会产出 Latch-up,所以如果是 SN8P1907 直接升级到 SN8P1917,则可以不用做任何修改动作, AVDDCP 端的电容大于 470uF 时才产生 latch-up 现象。
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
SN8P1917
SEG4 SEG3 SEG2 SEG1 SEG0 COM3 COM2 COM1 COM0 VLCD R+ R­X+ X­AI+ AI­AVSS ACM AVDDR AVE+ AVDDCP C+ VDD C-
SN8P1917 6/9VDC
SEG10 SEG11
VPP/RST
P4.2/LBTIN2 P4.1/LBTIN1
P0.0/INT0
XOUT/P2.1
XIN/P2.0
电池系统
SEG5 SEG6 SEG7 SEG8 SEG9
VSS P5.2 P5.1 P5.0
P4.0 P1.3 P1.2 P1.1 P1.0
VDD
VSS
48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25
C? 10uF
VCC
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
C?
2.2uF
1 2 3 4 5 6 7 8 9
SN8P1917
SEG4 SEG3 SEG2 SEG1 SEG0 COM3 COM2 COM1 COM0 VLCD R+ R­X+ X­AI+ AI­AVSS ACM AVDDR AVE+ AVDDCP C+ VDD C-
SN8P1917 3VDC
SEG5 SEG6 SEG7 SEG8
SEG9 SEG10 SEG11
VPP/RST
VSS P5.2 P5.1 P5.0
P4.2/LBTIN2 P4.1/LBTIN1
P4.0 P1.3 P1.2 P1.1 P1.0
P0.0/INT0
VDD
XOUT/P2.1
XIN/P2.0
VSS
电池系统
48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25
VCC
U?
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
SN8P1907
SEG4 SEG3 SEG2 SEG1 SEG0 COM3 COM2 COM1 COM0 VLCD R+ R­X+ X­AI+ AI­AVSS ACM AVDDR AVE+ AVDDCP C+ VDD C-
SN8P1907 6/9VDC
SEG5 SEG6 SEG7 SEG8
SEG9 SEG10 SEG11
VPP/RST
VSS P5.2 P5.1 P5.0 P4.2 P4.1 P4.0 P1.3 P1.2 P1.1 P1.0
P0.0/INT0
VDD
XOUT
XIN
VSS
电池系统
48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25
C? 10uF
GND
VCC
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
C?
2.2uF
U?
1 2 3 4 5 6 7 8 9
SN8P1907
SEG4 SEG3 SEG2 SEG1 SEG0 COM3 COM2 COM1 COM0 VLCD R+ R­X+ X­AI+ AI­AVSS ACM AVDDR AVE+ AVDDCP C+ VDD C-
SN8P1907 3VDC
SEG5 SEG6 SEG7 SEG8
SEG9 SEG10 SEG11
VPP/RST
VSS P5.2 P5.1 P5.0 P4.2 P4.1 P4.0 P1.3 P1.2 P1.1 P1.0
P0.0/INT0
VDD
XOUT
XIN
VSS
电池系统
48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25
SONiX TECHNOLOGY CO., LTD Page 90 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

16.2.2 开发工具要求

1 系列 ICESN8P1917 EV-Kit BoardSN8P1917 单片机 with EV-link codeEZ-WriterSN8ASM1.99V 或更晚
版本的编译软件。

16.2.3 文件需求

SN8P1917.ASMSN8P1917,hSN8P1917.INC

16.2.4 烧录方式不同

SN8P1907 为并行烧录,SN8P1917 为串行烧录。

16.2.5 Code option 的差异

SN8P1907 SN8P1917
High_Clk
High_Clk/2
OSG
Watch_Dog
Security
INT_16K_RC
Low Power
RC IHRC
4M X’tal
Enable
Disable
Enable
Disable
Enable Enable
Disable
Enable Enable
Disable
Always_ON Always_ON
By_CPUM
Enable Enable
Disable
2 code option 对照表
High_Clk
Watch_Dog
Security
INT_16K_RC
Low Power
4M X’tal
Disable
Disable
By_CPUM
Disable
注:当 SN8P1917 High-Clk 选择 IHRC 时,内部强制 16 倍分频,即 Fcpu = Fosc/16 = 1MIPS;当选择 4M X’tal 时,内部强
4 分频,即 Fcpu = 1MIPS
SONiX TECHNOLOGY CO., LTD Page 91 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

16.2.6 软件初始化设定差异

1PGIA clock 设置 SN8P1907 2
CPR 设置
因为 SN8P190X 系列单片机的 CP 上电要求电源输入有较大的负载能力,否则将会下拉 VDD,因 而 191X 系列改进
CP 上电时序,减小 CP 上电对电源负责能力的要求,提高了电池的利用率,所以软件编写需要注意。
下面以单颗 CR2032 锂电池上电程序来叙述 因为 CR2032 电池的驱动能力较小,CPR 在启动一瞬间要消耗比较多的电能,对此,SN8P1917 在内部做了优化,
同时要求软件也要做相应的调整。
基本思路是采取分步,分时开启 CPR 各个电路,如下:
INIT_SYS: ;Voltage Charge Pump / Regulator (CPR) INIT xb0bset fbgrenb ;enable band gap reference voltage. mov a, #00001011b xb0mov cpcks, a ;set cpcks as slowest clock to void vdd dropping. mov a,#00100101b xb0mov cpm,a ;set cp as auto mode, AVE+ =3.0VDC and enable cp mov a,#20 call delay ;delay 200ms mov a, #00000100b xb0mov cpcks,a ;set cpcks as 15.6k clock. mov a,#2 call delay ; delay 20ms xb0bset favddrenb ;enable AVDDR call wait10ms xb0bset facmenb ;enable ACM call wait10ms xb0bset favenb ;enable AVE+ ;PGIA -Programmable Gain Instrumentation Amplifier INIT mov a,#01110110b xb0mov ampm,a ;set PGIA gain = 200X mov a,# 00000100b xb0mov ampcks,a Set AMPCKS = “100” for PGIA working clock = 1.9K @ 4M
mov a,#00000000b xb0mov ampchs,a ; Selected PGIA differential input channel= AI+, AI­ xb0bset fampenb ;ADC INIT mov a,#00010000b xb0mov adcm,a ; Selection ADC Reference voltage = V(R+, R-) mov a,#231 xb0mov adcks,a ;set ADC working clock=80KHz @ 4M X’tal mov a,#04h xb0mov dfm,a ; ADC Output rate =10Hz xb0bset fadcenb
ret
推荐设置值为 4KHzSN8P1917 推荐设置值为 2KHz
X’tal
SONiX TECHNOLOGY CO., LTD Page 92 Version1.2
采取以上软件,硬件如下配置:
VDD=22uF
AVDDCP=10uFC+_C-=AVDDR=ACM=AVE+=1uFLOAD=1KRAVE+=3.0VDC
得到的上电波形如下:
SN8P1917
Remote Controller 8-Bit Micro-Controller
3 上电波形图
从以上波形可以看出,在启动 CP 时会引起 VDD 跌落,在启动 AVDDRACMAVE+时会引起 AVDDCP 的跌落,
但是
VDD 下拉只有 0.125VDC,比整个系统启动后的电压要高,也就是说,已经彻底消除了 CPR 上电对 VDD 的影响。
注:影响 VDD 下拉程度有以下几个条件相互制约;
1. 电池本身的容量越多,下拉越不明显;
2. VDD 对地的储能电容容量越大,下拉越不明显;
3. C+,C-两端的电容容量越大,下拉越明显,但是 AVDCCP 端的电压上升的速度越快,负载能力越强;反之下拉程度越小, AVDDCP 端的电压上升的越慢,负载能力越弱。
3
LCD 初始化设置差异
SN8P1917
需要更改。
LCD 驱动电压增加了 1/3bias 特性,另外 LCD clock 输入可以选择,刷新频率也可以调整,所以设置
SONiX TECHNOLOGY CO., LTD Page 93 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller

16.3 其它

16.3.1 其它应该注意的事项

1
、当 使 用 CR2032 等负载能力弱的单颗锂电池供电时,建议 Loadcell 负载阻抗不要低于 1KR;当使用干电池等负载 能力强的电池供电时,可以适当加大 升压的时间。
2
、当供电电压始终在 4.1VDC 以上时,可以只开启 Regulator,关毕 ChargePump,这时可以将 C+,C-两端的电 容,以及
也可以使用温度特性一致的排阻。
地电容。
*.SN8 档就是可以烧入的代码档,另外请注意当 ICE_MODE 1 时,RomSize 空间扩大到 4K,而 ICE_MODE 0
时,RomSize 空间恢复到实际 IC RomSize 空间 2K
简化软件的编写,具体请参考
AVDDR 对地电容取消。
3
、参考电压分压电阻是温漂的主要因素,为了取得更好的温度性能,建议外部参考电压分压电阻使用低温漂的电阻,
4
、为了取得更好的测量稳定性,请在 AI+AI-R+R-对地加上 104 电容,适当的调整 X+X-两端电容的容量。
5
、建议 R+R 之间的电压不要低于 400mV,如果因为解析的原因要降低到 400mV 以下时请适当的加大 R+R-
6
、在仿真时,请将 ICE_MODE 设为 1,在烧入 RealChip 之前,请将 ICE_MODE 设为 0,然后再编译一次,得到
7
、因为 SN8P1917 CPRPGIAADC 初始化过程比较复杂,现提供一个标准初始化宏文件,init_1917.h,可以
C+,C-两端电容,及 AVDDCP,AVE+对地电容,以增加负载能力,缩短 ChargePump
init_1917.h 文档。

16.3.2 滑动平均算法原理

在数据处理系统中滤波是一个很重要的技术课题,数据滤波可以用硬件也可以使用软件,软件滤波的成本相对硬件滤
波来说要低的多,并且比硬件滤波器要灵活得多,这里只介绍滑动平均算法。
将连续取 N 个采样值看成一个队列, 每次采样到一个新数据放入队尾,并扔掉原来队首的一个数据, 把队列中的 N
个数据进行算术平均运算,就可获得新的滤波结果。
这种滤波方法对周期性干扰有良好的抑制作用,平滑度高。除了这种滤波方法之外还有算术平均滤波,中值滤波,
限幅滤波,一阶低通滤波等滤波方法,这里就不一一介绍了。
在实际的应用中需要将好几种滤波方法结合起来一起使用,以达到最好的滤波效果。

16.3.3 数据稳定的判断方法

在上电追零位时,或者需要锁定数据时,一定要判断数据是否稳定,一般的方法是连续读取 ADC Raw data,如果在
规定的几次内
ADC Raw data 变化小于一个定值,则我们就可以认定数据是稳定的。

16.3.4 消除电磁干扰的一般方法

SN8P1917
重要
,针对电磁干扰问题以下有几点建议: 1
、 在感应器(如 Load cell)的讯号与模拟输入(AI+/AI-)之间串联一个 5uH 的电感,这个电感要越靠近 IC 越好;
2
、在电路板设计时,模拟的讯号线宽要加大且绕线不可过长,以减少电磁波的干扰;
3
、模拟讯号的相关电容( 如 104 等 )要越靠近 IC 越好;
4
、对于非常介意电磁干扰的产品,建议覆盖铅盒(Shield),可以大幅增加抗电磁波能力。
因为电磁波的干扰是无所不在的,因此在系统开始设计时就需要考虑,包含感应器,电路板等,这样才能有效的避免电磁
波的干扰
,造成量测的失误.
内建 16 ADC,在大部分的应用场合中都需要做精密的量测,因此对于电磁波(EMI)防护可以说是非常
SONiX TECHNOLOGY CO., LTD Page 94 Version1.2
7
1
1
1

17.1 SSOP 48 PIN

7
7

封装

SN8P1917
Remote Controller 8-Bit Micro-Controller
SYMBOLS
A 0.095 0.102 0.110 2.413 2.591 2.794 A1 0.008 0.012 0.016 0.203 0.305 0.406 A2 0.089 0.094 0.099 2.261 2.388 2.515
b 0.008 0.010 0.030 0.203 0.254 0.762 C - 0.008 - - 0.203 ­D 0.620 0.625 0.630 15.748 15.875 16.002
E 0.291 0.295 0.299 7.391 7.493 7.595
[e] - 0.025 - - 0.635 ­He 0.396 0.406 0.416 10.058 10.312 10.566
L 0.020 0.030 0.040 0.508 0.762 1.016
L1 - 0.056 - - 1.422 -
Y - - 0.003 - - 0.076
θ° 0° - 8° 0° - 8°
MIN NOR MAX MIN NOR MAX
(inch) (mm)
SONiX TECHNOLOGY CO., LTD Page 95 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
8
1
1
1

18.1 概述

SONiX 8 位单片机产品具有多种型号,本章将给出所有 8 位单片机分类命名规则,适用于空片 OTP 型单片机。

18.2 单片机型号说明

SN8 X PART No. X X X
8
8

单片机正印命名规则

Material
Temperature Range
Shipping Package
Device
B = PB-Free Package G = Green Package
- = 0 ~ 70
W = Wafer H = Dice P = P-DIP X = SSOP
1917
ROM Type
Title
SONiX TECHNOLOGY CO., LTD Page 96 Version1.2
P=OTP
SONiX 8-bit MCU Production

18.3 命名举例

名称 ROM 类型 器件(Device) 封装形式 温度范围 封装材料
SN8P1917PB SN8P1917PG

18.4 日期码规则

X X X X XXXXX
OTP 1917 P-DIP 0 ~70℃℃ OTP 1917 P-DIP 0 ~70℃℃
无铅封装(PB-Free Package
绿色封装(Green Package
SONiX Internal Use
SN8P1917
Remote Controller 8-Bit Micro-Controller
Day
1=01 2=02
. . . .
9=09 A=10 B=11
. . . .
Month
1=January 2=February
. . . .
9=September A=October B=November C=December
Year
03= 2003 04= 2004 05= 2005 06= 2006
. . . .
SONiX TECHNOLOGY CO., LTD Page 97 Version1.2
SN8P1917
Remote Controller 8-Bit Micro-Controller
SONiX
公司保留对以下所有产品在可靠性,功能和设计方面的改进作进一步说明的权利。SONiX
不承担由本手册所涉及的产品或电路的运用和使用所引起的任何责任,SONiX 的产品不是专门设计来 应用于外科植入、生命维持和任何
SONiX 产品的故障会对个体造成伤害甚至死亡的领域。如果将 SONiX
的产品应用于上述领域,即使这些是由 SONIX 在产品设计和制造上的疏忽引起的,用户应赔偿所有费 用、损失、合理的人身伤害或死亡所直接或间接产生的律师费用,并且用户保证 公司、分支机构和销售商与上述事宜无关。
SONiX 及其雇员、子
总公司: 地址:台湾新竹县竹北市台元街 36 10 楼之一 电话:886-3-5600-888 传真:886-3-5600-889 台北办事处: 地址台北市松德路 171 15 楼之 2 电话886-2-2759 1980 传真886-2-2759 8180 香港办事处:
地址香港新界沙田沙田乡宁会路 138#新城市中央广场第一座 7
楼 705 室 电话852-2723 8086 传真852-2723 9179 松翰科技(深圳)有限公司 地址深圳市南山区高新技术产业园南区 T2-B 栋 2 层 电话86-755-2671 9666 传真86-755-2671 9786 技术支持:
Sn8fae@SONiX.com.tw
SONiX TECHNOLOGY CO., LTD Page 98 Version1.2
Loading...