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
Loading...
+ 68 hidden pages