SM59R16A5/SM59R09A5/SM59R05A5

SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
描述 ..................................................................................................................................................................................... 3
特征 ..................................................................................................................................................................................... 3
各封装引脚配置 ................................................................................................................................................................... 4
系统方框图 .......................................................................................................................................................................... 8
管脚描述 .............................................................................................................................................................................. 9
特殊功能寄存器(SFR) ....................................................................................................................................................... 11
功能描述: ........................................................................................................................................................................ 15
1.
总特征....................................................................................................................................................................... 15
1.1.
嵌入式程序存储器 ....................................................................................................................................... 15
1.2.
IO 口 ............................................................................................................................................................ 15
1.3.
2T/1T 的选择 ............................................................................................................................................... 15
1.4.
复位 ............................................................................................................................................................. 16
1.4.1.
硬件复位功能.................................................................................................................................. 16
1.4.2.
软件复位功能.................................................................................................................................. 16
1.4.3.
Time Access Key register (TAKEY)................................................................................................ 16
1.4.4.
软件复位寄存器 (SWRES) ............................................................................................................ 16
1.4.5.
软件复位范例.................................................................................................................................. 17
1.5.
时钟源 ......................................................................................................................................................... 17
2.
指令设置 ................................................................................................................................................................... 18
3.
存储器结构 ............................................................................................................................................................... 22
3.1.
程序存储器 .................................................................................................................................................. 22
3.2.
数据存储器 .................................................................................................................................................. 24
3.2.1.
数据内存-低 128 字节(00h to 7Fh) ................................................................................................. 24
3.2.2.
数据存储器-高 128 字节 (80h to FFh)............................................................................................ 25
3.2.3.
数据存储器-扩展的 2048 字节($0000 to $07FF) ............................................................................ 25
4.
CPU 结构 ................................................................................................................................................................. 26
4.1.
累加器 ......................................................................................................................................................... 26
4.2.
B 寄存器 ...................................................................................................................................................... 26
4.3.
程序状态字 .................................................................................................................................................. 27
4.4.
堆栈指针 ...................................................................................................................................................... 27
4.5.
数据指针 ...................................................................................................................................................... 27
4.6.
数据指针 1 ................................................................................................................................................... 27
4.7.
内存控制寄存器 ........................................................................................................................................... 28
4.8.
接口控制寄存器 ........................................................................................................................................... 28
5.
GPIO ........................................................................................................................................................................ 29
6.
硬件乘除法器(MDU) ................................................................................................................................................. 31
6.1.
运行 MDU 寄存器 ........................................................................................................................................ 31
6.2.
乘除法器的设置 ........................................................................................................................................... 32
6.2.1.
第一阶段:装载 MDx 寄存器, x = 0~5: .......................................................................................... 32
6.2.2.
第二阶段:执行运算. ...................................................................................................................... 32
6.2.3.
第三阶段:从 MDx 寄存器上读取结果. ......................................................................................... 32
6.3.
标准化 ......................................................................................................................................................... 33
6.4.
位移 ............................................................................................................................................................. 33
7.
定时器 0 和定时器 1 ................................................................................................................................................ 34
7.1.
定时器/计数器模式控制寄存器(TMOD) ....................................................................................................... 34
7.2.
定时/计数控制寄存器(TCON) ...................................................................................................................... 35
8.
定时器 2 以及捕捉/比较单元 .................................................................................................................................... 36
8.1.
定时器 2 功能 ............................................................................................................................................. 38
8.1.1.
定时器模式 ..................................................................................................................................... 38
8.1.2.
事件计数模式.................................................................................................................................. 38
8.1.3.
门控定时器模式 .............................................................................................................................. 38
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
1
Ver.H SM59R16A5 04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
8.1.4.
定时器 2 的重载 .............................................................................................................................. 38
8.2.
比较功能 ...................................................................................................................................................... 39
8.2.1.
比较模式 0 ...................................................................................................................................... 39
8.2.2.
比较模式 1 ...................................................................................................................................... 39
8.3.
捕获功能 ...................................................................................................................................................... 40
8.3.1.
捕捉模式 0 ...................................................................................................................................... 40
8.3.2.
捕捉模式 1 ...................................................................................................................................... 41
9.
串行接口 0 和 1 ........................................................................................................................................................ 42
9.1.
串行接口 0 ................................................................................................................................................... 43
9.1.1.
模式 0 ............................................................................................................................................. 43
9.1.2.
模式 1 ............................................................................................................................................. 44
9.1.3.
模式 2 ............................................................................................................................................. 44
9.1.4.
模式 3 ............................................................................................................................................ 45
9.2.
Serial interface 1 ......................................................................................................................................... 45
9.2.1.
模式 A ............................................................................................................................................ 45
9.2.2.
模式 B ............................................................................................................................................ 46
9.3.
串行接口 0 和 1 的多重机通讯 ................................................................................................................... 46
9.4.
波特率发生器 ............................................................................................................................................... 46
9.4.1.
串行接口 0 的模式 1 和 3 ................................................................................................................ 46
9.4.2.
串行接口 1 的模式 A 和 B ............................................................................................................... 47
9.5.
波特率的时钟源 ........................................................................................................................................... 47
10.
看门狗定时器 ................................................................................................................................................... 48
11.
中断 ................................................................................................................................................................. 51
11.1.
优先权配置 .............................................................................................................................................. 54
12.
电源管理单元 ................................................................................................................................................... 56
12.1.
待机模式(空闲模式) ................................................................................................................................. 56
12.2.
停止模式.................................................................................................................................................. 56
13.
脉宽调制器(PWM) ........................................................................................................................................... 57
14.
IIC 功能 ........................................................................................................................................................... 60
15.
SPI 功能 ........................................................................................................................................................... 64
16.
KBI –键盘接口 ................................................................................................................................................. 68
17.
LVI –低压中断 .................................................................................................................................................. 71
18.
10 位模拟数字转换器(ADC) ............................................................................................................................. 72
19.
在系统编程(Internal ISP) ................................................................................................................................. 75
19.1.
ISP 服务程序 ........................................................................................................................................... 75
19.2.
锁定位(N) ................................................................................................................................................ 75
19.3.
对 ISP 服务程序编程 ............................................................................................................................... 76
19.4.
启动 ISP 服务程序 ................................................................................................................................... 76
19.5.
ISP 寄存器 – TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC .................................................... 76
20.
内建实时时钟( RTC)功能 ................................................................................................................................. 79
21.
运算放大器(OPA)/比较器(Comparator) ........................................................................................................... 83
工作环境 ............................................................................................................................................................................ 86
DC 电气特性 ..................................................................................................................................................................... 86
OPA / Comparator Characteristics .................................................................................................................................... 88
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
2
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
产品目录
特征
SM59R16A5L25, SM59R16A5C25
SM59R09A5L25, SM59R09A5C25
SM59R05A5L25, SM59R05A5C25
描述
SM59R16A5 是 1T(1 时钟周期)的 8-bit 的单片机. 它
有专为程序而内嵌的 64k 字节的闪存(flash),并可执行
完全兼容 MCS-51 的所有 ASM51 指令。
SM59R16A5 有 2K 的片上 SRAM,多达 46 个 GPIOs
(LQFP 48), 多串行接口以及如以下所描述的多种外部资
源, 它可通过编程器进行编程. 其片上 ICE 功能为客户在
开发初期提供了方便.
SM59R16A5 的高性能能在短时间内完成复杂的动作, 大
约有 1/3 的指令是 1T, 其平均速度是传统 8051 的 8 倍,
是所有 1T 8051 系列中最快的,其良好的 EMI 和 ESD 性
能对在许多应用中都有很好的帮助。
订货信息
SM59R16A5ihhkL YWW
i: 工艺标志 {L = 2.7V ~ 3.6V, C = 4.5V ~ 5.5V}
hh: 工作时钟,单位为 MHz {25}
k: 封装形式后缀{as table below }
L: 无铅标志
{无文字即含铅,”P” 即无铅 }
Y: 年
WW: 周
Postfix
P
J
Q
V
Package
40L PDIP
44L PLCC
44L PQFP
48L LQFP
Pin / Pad Configuration
Page 4
Page 5
Page 6
Page 7
Contact SyncMOS : www.syncmos.com.tw
6F, No.10-2 Li- Hsin 1st Road , SBIP, Hsinchu, Taiwan
TEL: 886-3-567-1820
FAX: 886-3-567-1891
































工作电压: 4.5V ~ 5.5V or 2.7V ~ 3.6V
高速 1T 架构,最高可达 25MHZ
1T/2T 模式可即时选择
指令设置兼容 MCS-51
内置 RC 振荡器, 频率范围为 1MHz~24MHz
64K/36K/20K 字节的片上程序存储器
外扩 RAM 地址最大可达 64K 字节,
为外扩 RAM 存
取用的标准 12T 接口
256 字节的标准的 8052 RAM,2K 字节的带有使能
功能的片上外扩 RAM
双 16-bit 数据指针 (DPTR0&DPTR1)
两个全双工通信的串行接口(UART0 &UART1)
串行接口 0 附加鲍率产生器
三个 16-bit 的定时器/计数器(计时器 0,1,2)
38 GPIOs(PDIP 40),42 GPIOs(PLCC 44/PQFP
44),46 GPIOs(LQFP 48), GPIOs 可选择四种型态
(准双向口、推挽、开漏、只输入),默认准双向口(上
拉)
具有四级优先权的外部中断 0,1
可编程的看门狗定时器(WDT)
一个 IIC 接口(主/从机模式)
一个 SPI 接口(主/从机模式)
4 路脉宽调制(PWM)在 Port 2 or Port 4 (默认)
4 路 16bit 比较/抓捕/装载功能
8 路 10bit 模拟数字转换(ADC)
片上内建运算放大器及比较器
可配置外部晶体振荡器引脚
内建实时时钟( RTC)
ISP/IAP/ICP 功能.
ISP 服务程序存储空间设置为 N*256 byte (N=0 to 16).
EEPROM 功能
片上在线调试功能(ICE)
ALE 输出选择
快速乘除法器(MDU):16*16 32/16, 16/16, 32-bit
L/R 转换以及标准的 32bit normalization
键盘接口(KBI) 在 Port 0 or Port 2 (默认), 共 8 个的
中断源.
低电压中断/低电压复位(LVI/LVR )
增强用户代码保护
电源管理单元空闲及掉电模式
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
3
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
各封装引脚配置
40
VDD
CC1/T2EX/ADC1/P1.1
2
39
P0.0/AD0/KBI0
RXD1/ADC2/P1.2
3
38
P0.1/AD1/KBI1
CC2/TXD1/ADC3/P1.3
4
37
P0.2/AD2/KBI2
CC3/SS/ADC4/P1.4
5
36
P0.3/AD3/KBI3
MOSI/ADC5/P1.5
6
35
P0.4/AD4/KBI4
IIC_SCL/MISO/ADC6/P1.6
7
34
P0.5/AD5/KBI5
IIC_SDA/SPI_CLK/ADC7/P1.7
8
33
P0.6/AD6/KBI6
P4.7/RESET(default)
9
32
P0.7/AD7/KBI7
RXD0/P3.0
10
31
OCI_SDA/P4.6
TXD0/P3.1
11
30
ALE/P4.5
INT0/P3.2
12
29
OCI_SCL/P4.4
INT1/P3.3
13
28
P2.7/A15/KBI7/Op0Out/PWM3
T0/P3.4
14
27
P2.6/A14/KBI6/Op0PIn/PWM2
T1/P3.5
15
26
P2.5/A13/KBI5/Op0NIn/PWM1
X32OUT/WR/P3.6
16
25
P2.4/A12/KBI4/Op1PIn/PWM0
X32IN/RD/P3.7
17
24
P2.3/A11/KBI3/Op1NIn/CC3
X32OUT/P5.4/XTAL2
18
23
P2.2/A10/KBI2/Op1Out/CC2
X32IN/P5.5/XTAL1
19
22
P2.1/A9/KBI1/CC1
VSS
20
21
P2.0/A8/KBI0/CC0
YWW
(40L PDIP Top View)
SyncMOS
1
SM59R16A5ihhPP
CC0/T2/ADC0/P1.0
附注:
1. 管脚 Reset/P4.7 于出厂时设置为 RESET 脚,使用者需于上电时将此管脚置低。使用者可于刻录时将此管脚定义为一
般 I/O(P4.7)。
2. 为避免偶然的情况下进入 ISP 刻录状态(参考第 19.4 单元),在上电时必须确保没有连续的脉冲信号在管脚 P3.0 及管脚
P2.6、P2.7、P4.3 必须置高。
3. 于使用 ICP 刻录功能时,用户如果定义管脚 OSI_SDA/P4.6 及 OCI_SCL/P4.7 为一般 I/O 使用,必须设计成双向 I/O。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
4
Ver.H
SM59R16A5
04/2015
18
19
20
21
22
23
24
25
26
27
28
CC1/KBI1/A9/P2.1
CC2/Op1Out/KBI2/A10/P2.2
CC3/Op1NIn/KBI3/A11/P2.3
PWM0/Op1PIn/KBI4/A12/P2.4
16
T1/P3.5
CC0/KBI0/A8/P2.0
15
T0/P3.4
SS/IIC_SCL/CC0/PWM0/P4.0
14
INT1/P3.3
VSS
13
INT0/P3.2
X32IN/P5.5/XTAL1
12
TXD0/P3.1
X32OUT/P5.4/XTAL2
11
SPI_CLK/TXD1/CC3/PWM3/P4.3
SM59R16A5
ihhJP
YWW
(44L PLCC Top View)
X32IN/RD/P3.7
10
RXD0/P3.0
X32OUT/WR/P3.6
9
P4.7/RESET(default)
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
5
39
SyncMOS
P0.4/AD4/KBI4
38
P0.3/AD3/KBI3
40
P0.5/AD5/KBI5
37
P0.2/AD2/KBI2
41
P0.6/AD6/KBI6
36
P0.1/AD1/KBI1
42
P0.7/AD7/KBI7
35
P0.0/AD0/KBI0
43
OCI_SDA/P4.6
34
VDD
44
P4.1/PWM1/CC1/IIC_SDA/MOSI
33
P4.2/PWM2/CC2/RXD1/MISO
1
ALE/P4.5
32
P1.0/ADC0/T2/CC0
2
OCI_SCL/P4.4
31
P1.1/ADC1/T2EX/CC1
3
P2.7/A15/KBI7/Op0Out/PWM3
30
P1.2/ADC2/RXD1
4
P2.6/A14/KBI6/Op0PIn/PWM2
29
P1.3/ADC3/TXD1/CC2
5
7
IIC_SDA/SPI_CLK/ADC7/P1.7
17
IIC_SCL/MISO/ADC6/P1.6
6
8
MOSI/ADC5/P1.5
P1.4/ADC4/SS/CC3
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
P2.5/A13/KBI5/Op0NIn/PWM1
Ver.H
SM59R16A5
04/2015
P0.4/AD4/KBI4
P0.5/AD5/KBI5
P0.6/AD6/KBI6
P0.7/AD7/KBI7
OCI_SDA/P4.6
P4.1/PWM1/CC1/IIC_SDA/MOSI
ALE/P4.5
OCI_SCL/P4.4
P2.7/A15/KBI7/Op0Out/PWM3
P2.6/A14/KBI6/Op0PIn/PWM2
P2.5/A13/KBI5/Op0NIn/PWM1
32
31
30
29
28
27
26
25
24
23
13
P3.7/RD/X32IN
12
P3.6/WR/X32OUT
10
11
T1/P3.5
44
(44L PQFP/LQFP Top
View)
T0/P3.4
CC3/SS/ADC4/P1.4
XTAL2/X32OUT/P5.4
9
43
XTAL1/X32IN/P5.5
14
INT1/P3.3
CC2/TXD1/ADC3/P1.3
15
8
RXD1/ADC2/P1.2
42
VSS
INT0/P3.2
41
16
7
CC1/T2EX/ADC1/P1.1
P4.0/PWM0/CC0/IIC_SCL/SS
TXD0/P3.1
40
17
SPI_CLK/TXD1/CC3/PWM3/P4.3
CC0/T2/ADC0/P1.0
P2.0/A8/KBI0/CC0
6
39
18
5
MISO/RXD1/CC2/PWM2/P4.2
SM59R16A5
ihhQ(U)P
YWW
RXD0/P3.0
38
P2.1/A9/KBI1/CC1
4
VDD
P2.2/A10/KBI2/Op1Out/CC2
19
P4.7/RESET(default)
KBI0/AD0/P0.0
37
20
SyncMOS
3
36
P2.3/A11/KBI3/Op1NIn/CC3
IIC_SDA/SPI_CLK/ADC7/P1.7
KBI1/AD1/P0.1
21
2
35
P2.4/A12/KBI4/Op1PIn/PWM0
IIC_SCL/MISO/ADC6/P1.6
KBI2/AD2/P0.2
22
1
34
MOSI/ADC5/P1.5
KBI3/AD3/P0.3
33
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
6
Ver.H
SM59R16A5
04/2015
P0.4/AD4/KBI4
P0.5/AD5/KBI5
P0.6/AD6/KBI6
P0.7/AD7/KBI7
OCI_SDA/P4.6
P4.1/PWM1/CC1/IIC_SDA/MOSI
ALE/P4.5
OCI_SCL/P4.4
P2.7/A15/KBI7/Op0Out/PWM3
P2.6/A14/KBI6/Op0PIn/PWM2
P2.5/A13/KBI5/Op0NIn/PWM1
P5.1
35
34
33
32
31
30
29
28
27
26
25
12
T1/P3.5
P5.2
48
11
47
T0/P3.4
CC3/SS/ADC4/P1.4
10
46
INT1/P3.3
CC2/TXD1/ADC3/P1.3
9
45
INT0/P3.2
RXD1/ADC2/P1.2
8
44
TXD0/P3.1
CC1/T2EX/ADC1/P1.1
7
43
SPI_CLK/TXD1/CC3/PWM3/P4.3
CC0/T2/ADC0/P1.0
RXD0/P3.0
42
6
MISO/RXD1/CC2/PWM2/P4.2
SM59R16A5
IhhVP
YWW
(48L LQFP Top View)
P4.7/RESET(default)
41
5
VDD
IIC_SDA/SPI_CLK/ADC7/P1.7
40
4
KBI0/AD0/P0.0
SyncMOS
3
39
IIC_SCL/MISO/ADC6/P1.6
KBI1/AD1/P0.1
2
38
MOSI/ADC5/P1.5
KBI2/AD2/P0.2
1
37
P5.3
KBI3/AD3/P0.3
36
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
7
24
P5.0
23
P2.4/A12/KBI4/Op1PIn/PWM0
22
P2.3/A11/KBI3/Op1NIn/CC3
21
P2.2/A10/KBI2/Op1Out/CC2
20
P2.1/A9/KBI1/CC1
19
P2.0/A8/KBI0/CC0
18
P4.0/PWM0/CC0/IIC_SCL/SS
17
VSS
16
XTAL1/X32IN/P5.5
15
XTAL2/X32OUT/P5.4
14
P3.7/RD/X32IN
13
P3.6/WR/X32OUT
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
XTAL2
XTAL1
PWM
ADC
IIC
SRAM
2KBytes
SPI
SRAM
256Bytes
Flash 64KBytes
CPU
X32IN
X32OUT
IIC_SCL
IIC_SDA
Op0/Cmp0
Op1/Cmp1
SPI_MISO
SPI_MOSI
SPI_CLK
SPI_SS
ADC0
ADC1
ADC2
ADC3
ADC4
ADC5
ADC6
ADC7
UART
0/1
PWM0
PWM1
PWM2
PWM3
MAX810
Op0PIn/Op1PIn
Op0NIn/Op1NIn
Op0Out/Op1Out
RESET
TXD0/1
RXD0/1
系统方框图
RTC
Port 0
Port 0
Port 1
Port 1
Port 2
Port 2
Port 3
Port 3
Port 4
Port 4
Port 5
Port 5
Timer 0/1
T0
T1
MDU
Watchdog
Interrupt
ALE
WR
RD
ICE
ICP
Timer2
& CCU
OCI_SDA
OCI_SCL
Interface control
CC0~CC3
T2
T2EX
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
8
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
管脚描述
40L
PDIP
44L
PLCC
44L
PQFP
48L
LQFP
Symbol
I/O
1
39
42
P4.2/PWM2/CC2/
RXD1/MISO
I/O
1
2
40
43
P1.0/ADC0/T2/C
C0
I/O
2
3
41
44
P1.1/ADC1/T2EX/
CC1
I/O
3
4
42
45
P1.2/ADC2/RXD1
I/O
4
5
43
46
5
6
44
47
48
1
P1.3/ADC3/TXD1/
CC2
P1.4/ADC4/SS/C
C3
P5.2
P5.3
I/O
I/O
I/O
I/O
6
7
1
2
P1.5/ADC5/MOSI
I/O
7
8
2
3
P1.6/ADC6/MISO/
IIC_SCL
I/O
8
9
3
4
9
10
4
5
10
11
5
6
12
6
7
11
12
13
14
15
13
14
15
16
17
7
8
9
10
11
8
9
10
11
12
16
18
12
13
17
19
13
14
18
20
14
15
19
21
15
16
P1.7/ADC7/SPI_
CLK/IIC_SDA
RESET(default)/P
4.7
P3.0/RXD0
P4.3/PWM3/CC3/
TXD1/SPI_CLK
P3.1/TXD0
P3.2/#INT0
P3.3/#INT1
P3.4/T0
P3.5/T1
P3.6/#WR/X32OU
T
P3.7/#RD/X32IN
XTAL2/X32OUT/P
5.4
XTAL1/X32IN/P5.
5
VSS
P4.0/PWM0/CC0/
IIC_SCL/SS
P2.0
/A8/KBI0/CC0
I/O
Description
P4 口的位 2 & 宽脉调制通道 2&计时器 2 及抓捕/比较单元通
道 2&串行接口通道 1 接收/发送数据 & SPI 接口串行数据线
主输入或从输出口
P1 口的位 0 & 模数转换通道 0 & 计时器 2 外部输入时钟& 计
时器 2 及抓捕/比较单元通道 0
P1 口的位 1 &模数转换通道 1 &计时器 2 捕捉触发
及捕获触发器&计时器 2 及抓捕/比较单元通道 1
P1 口的位 2 &模数转换通道 2 &串行接口通道 1 接收/发送数
据
P1 口的位 3 &模数转换通道 3 &串行接口通道 1 数据传输或接
收模式 0 时钟&计时器 2 及抓捕/比较单元通道 2
P1 口的位 4 &模数转换通道 4 & SPI 接口从机跳线&计时器 2
及抓捕/比较单元通道 3
P5 口的位 2
P5 口的位 3
P1 口的位 5 &模数转换通道 5 & SPI 接口串行数据线主输出
或从输入口
P1 口的位 6 &模数转换通道 6 & SPI 接口串行数据线主输入
或从输出口& IIC 串行时钟线
P1 口的位 7 &模数转换通道 7 & SPI 接口时钟& IIC 串行数
据线
I/O
复位(初始设定)& P4 口的位 7
I/O
I/O
I/O
I/O
I/O
I/O
P3 口的位 0 &串行接口通道 0 接收/发送数据
P4 口的位 3 &宽脉调制通道 3&计时器 2 及抓捕/比较单元通
道 3&串行接口通道 1 数据传输或接收模式 0 时钟&SPI 接口
时钟
P3 口的位 1 &串行接口通道 0 数据传输或接收模式 0 时钟
P3 口的位 2 &外部中断 0
P3 口的位 3 &外部中断 1
P3 口的位 4 &计时器 0 外部输入
P3 口的位 5 &计时器 1 外部输出
I/O
P3 口的位 6 &外部存储器写入信号&32KHz 晶振输出
I/O
P3 口的位 7 &外部存储器读取信号&32KHz 晶振输入
O
晶振输出& 32KHz 晶振输出& P5 口的位 4
I
晶振输入& 32KHz 晶振输入& P5 口的位 5
I/O
供电电源地
P4 口的位 0 &宽脉调制通道 0 &计时器 2 及抓捕/比较单元通
23
17
18
I/O
道 0 & IIC 串行时钟线& SPI 接口从机跳线
P2 口的位 0 &外部存储器地址的位 8&键盘接口中断 0&计时
21
24
18
19
I/O
器 2 抓捕/比较单元通道 0
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
9
Ver.H SM59R16A5 04/2015
20
22
16
17
I
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
40L
PDIP
44L
PLCC
44L
PQFP
48L
LQFP
22
25
19
20
23
26
20
21
24
27
21
22
25
28
22
23
24
25
Symbol
P2.1
/A9/KBI1/CC1
P2.2/A10/KBI2/O
p1Out/CC2
P2.3/A11/KBI3/Op
1NIn/CC3
P2.4/A12/KBI4/O
p1Pin/PWM0
P5.0
P5.1
P2.5/A13/KBI5/O
p0NIn/PWM1
P2.6/A14/KBI6/O
p0Pin/PWM2
I/O
I/O
I/O
I/O
I/O
I/O
I/O
26
29
23
26
27
30
24
27
28
31
25
28
29
30
32
33
26
27
29
30
34
28
31
P4.1/PWM1/CC1/
IIC_SDA/MOSI
I/O
35
36
37
38
39
40
41
42
43
44
29
30
31
32
33
34
35
36
37
38
32
33
34
35
36
37
38
39
40
41
OCI_SDA/P4.6
P0.7/AD7/KBI7
P0.6/AD6/KBI6
P0.5/AD5/KBI5
P0.4/AD4/KBI4
P0.3/AD3/KBI3
P0.2/AD2/KBI2
P0.1/AD1/KBI1
P0.0/AD0/KBI0
VDD
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I
31
32
33
34
35
36
37
38
39
40
P2.7/A15/KBI7/O
p0Out/PWM3
OCI_SCL/P4.4
ALE/P4.5
I/O
I/O
I/O
I/O
I/O
Description
P2 口的位 1 &外部存储器地址的位 9&键盘接口中断 1&计时
器 2 抓捕/比较单元通道 1
P2 口的位 2 &外部存储器地址的位 10&键盘接口中断 2&运算
放大器 1 输出&计时器 2 抓捕/比较单元通道 2
P2 口的位 3 &外部存储器地址的位 11&键盘接口中断 3&运算
放大器 1 反向输入&计时器 2 抓捕/比较单元通道 3
P2 口的位 4 &外部存储器地址的位 12&键盘接口中断 4&运算
放大器 1 非反向输入&宽脉调制通道 0
P5 口的位 0
P5 口的位 1
P2 口的位 5 &外部存储器地址的位 13&键盘接口中断 5&运算
放大器 0 反向输入&宽脉调制通道 1
P2 口的位 6 &外部存储器地址的位 14&键盘接口中断 6&运算
放大器 0 非反向输入&宽脉调制通道 2
P2 口的位 7 &外部存储器地址的位 15&键盘接口中断 7&运算
放大器 0 输出&宽脉调制通道 3
ICE 和 ICP 功能的时钟输入& P4 口的位 4
地址锁存使能& P4 口的位 5
P4 口的位 1 &宽脉调制通道 1 &计时器 2 及抓捕/比较单元通
道 1 & IIC 串行数据线& SPI 接口串行数据线主输出或从输
入口
ICE 和 ICP 功能的指令及数据输入& P4 口的位 6
P0 口的位 7 &外部存储器地址/数据的位 7&键盘接口中断 7
P0 口的位 6 &外部存储器地址/数据的位 6&键盘接口中断 6
P0 口的位 5 &外部存储器地址/数据的位 5&键盘接口中断 5
P0 口的位 4 &外部存储器地址/数据的位 4&键盘接口中断 4
P0 口的位 3 &外部存储器地址/数据的位 3&键盘接口中断 3
P0 口的位 2 &外部存储器地址/数据的位 2&键盘接口中断 2
P0 口的位 1 &外部存储器地址/数据的位 1&键盘接口中断 1
P0 口的位 0 &外部存储器地址/数据的位 0&键盘接口中断 0
数位电源电压
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
10
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
特殊功能寄存器(SFR)
特殊功能寄存器分布图如下所示:
Hex\Bin
X000
X001
X010
X011
X100
X101
F8
IICS
IICCTL
IICA1
IICA2
IICRWD
IICS2
X110
Cmp0CO
N
OpPin
X111
Cmp1CO
N
TAKEY
Bin/Hex
FF
F0
B
SPIC1
SPIC2
SPITXD
SPIRXD
SPIS
E8
E0
P4
ACC
MD0
ISPFAH
MD1
ISPFAL
MD2
ISPFD
MD3
ISPFC
MD4
MD5
LVC
ARCON
SWRES
EF
E7
F7
D8
P5
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
DF
P2M0
P2M1
D0
PSW
CCEN2
P0M0
P0M1
P1M0
P1M1
C8
C0
T2CON
IRCON
CCCON
CCEN
CRCL
CCL1
CRCH
CCH1
TL2
CCL2
TH2
CCH2
B8
IEN1
IP1
S0RELH
S1RELH
PWMD0H
B0
P3
PWMD2H
PWMD2L
PWMD3H
PWMD3L
PWMC
WDTC
WDTK
B7
A8
A0
IEN0
P2
IP0
S0RELL
ADCC1
ADCC2
ADCDH
ADCDL
ADCCS
AF
A7
98
S0CON
S0BUF
IEN2
S1CON
S1BUF
S1RELL
90
P1
AUX
AUX2
KBLS
KBE
KBF
RTCADD
R
KBD
RTCDAT
A
IRCON2
88
80
Hex\Bin
TCON
P0
X000
TMOD
SP
X001
TL0
DPL
X010
TL1
DPH
X011
TH0
DPL1
X100
TH1
DPH1
X101
RCON
X110
IFCON
PCON
X111
PWMMDH PWMMDL
CCL3
CCH3
PWMD0L PWMD1H
PWMD1L
D7
CF
C7
BF
9F
97
8F
87
Bin/Hex
注:特殊功能寄存器的重置值在 SM59R16A5 中有所描述。
Register
Location
P0
SP
80h
81h
Reset
value
FFh
07h
DPL
DPH
DPL1
DPH1
82h
83h
84h
85h
00h
00h
00h
00h
Data Pointer 0 low byte
Data Pointer 0 high byte
Data Pointer 1 low byte
Data Pointer 1 high byte
RCON
PCON
TCON
TMOD
86h
87h
88h
89h
00h
40h
00h
00h
Internal RAM control register
Power Control
Timer/Counter Control
Timer Mode Control
TL0
TL1
TH0
TH1
IFCON
8Ah
8Bh
8Ch
8Dh
8Fh
00h
00h
00h
00h
00h
Timer 0, low byte
Timer 1, low byte
Timer 0, high byte
Timer 1, high byte
Interface control register
Description
Port 0
Stack Pointer
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
11
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Register
Location
P1
90h
Reset
value
FFh
Description
Port 1
AUX
91h
00h
Auxiliary register
AUX2
92h
00h
Auxiliary register 2
KBLS
93h
00h
Keyboard level selector Register
KBE
94h
00h
Keyboard input enable Register
KBF
95h
00h
Keyboard interrupt flag Register
KBD
96h
00h
Keyboard interface De-bounce control register
IRCON2
97h
00h
Interrupt Request Control Register 2
S0CON
98h
00h
Serial Port 0, Control Register
S0BUF
99h
00h
Serial Port 0, Data Buffer
IEN2
9Ah
00h
Interrupt Enable Register 2
S1CON
9Bh
00h
Serial Port 1, Control Register
S1BUF
9Ch
00h
Serial Port 1, Data Buffer
S1RELL
9Dh
00h
Serial Port 1, Reload Register, low byte
RTCADDR
9Eh
00h
RTC Addr Register
RTCDATA
9Fh
00h
RTC Data Register
P2
A0h
FFh
Port 2
IEN0
A8h
00h
Interrupt Enable Register 0
IP0
A9h
00h
Interrupt Priority Register 0
S0RELL
AAh
00h
Serial Port 0, Reload Register, low byte
ADCC1
ABh
00h
ADC Control 1 Register
ADCC2
ACh
00h
ADC Control 2 Register
ADCDH
ADh
00h
ADC data high byte
ADCDL
AEh
00h
ADC data low byte
ADCCS
AFh
00h
ADC clock select
P3
B0h
FFh
Port 3
PWMD2H
B1h
00h
PWM channel 2 data high byte
PWMD2L
B2h
00h
PWM channel 2 data low byte
PWMD3H
B3h
00h
PWM channel 3 data high byte
PWMD3L
B4h
00h
PWM channel 3 data low byte
PWMC
B5h
00h
PWM control register
WDTC
B6h
04h
Watchdog timer control register
WDTK
B7h
00h
Watchdog timer refresh key.
IEN1
B8h
00h
Interrupt Enable Register 1
IP1
B9h
00h
Interrupt Priority Register 1
S0RELH
BAh
00h
Serial Port 0, Reload Register, high byte
S1RELH
BBh
00h
Serial Port 1, Reload Register, high byte
PWMD0H
BCh
00h
PWM channel 0 data high byte
PWMD0L
BDh
00h
PWM channel 0 data low byte
PWMD1H
BEh
00h
PWM channel 1 data high byte
PWMD1L
BFh
00h
PWM channel 1 data low byte
IRCON
C0h
00h
Interrupt Request Control Register
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
12
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Register
Location
CCEN
C1h
Reset
value
00h
Description
Compare/Capture Enable Register
CCL1
C2h
00h
Compare/Capture Register 1, low byte
CCH1
C3h
00h
Compare/Capture Register 1, high byte
CCL2
C4h
00h
Compare/Capture Register 2, low byte
CCH2
C5h
00h
Compare/Capture Register 2, high byte
CCL3
C6h
00h
Compare/Capture Register 3, low byte
CCH3
C7h
00h
Compare/Capture Register 3, high byte
T2CON
C8h
00h
Timer 2 Control
CCCON
C9h
00h
Compare/Capture Control
CRCL
CAh
00h
Compare/Reload/Capture Register, low byte
CRCH
CBh
00h
Compare/Reload/Capture Register, high byte
TL2
CCh
00h
Timer 2, low byte
TH2
CDh
00h
Timer 2, high byte
PWMMDH
CEh
00h
PWM Max Data Register, high byte.
PWMMDL
CFh
FFh
PWM Max Data Register, low byte.
PSW
D0h
00h
Program Status Word
CCEN2
D1h
00h
Compare/Capture Enable 2 register
P0M0
D2h
00h
Port 0 output mode 0
P0M1
D3h
00h
Port 0 output mode 1
P1M0
D4h
00h
Port 1 output mode 0
P1M1
D5h
00h
Port 1 output mode 1
P2M0
D6h
00h
Port 2 output mode 0
P2M1
D7h
00h
Port 2 output mode 1
P5
P3M0
P3M1
D8h
DAh
DBh
3Fh
00h
00h
Port 5
Port 3 output mode 0
Port 3 output mode 1
P4M0
DCh
00h
Port 4 output mode 0
P4M1
DDh
00h
Port 4 output mode 1
P5M0
DEh
00h
Port 5 output mode 0
P5M1
DFh
00h
Port 5 output mode 1
ACC
E0h
00h
Accumulator
ISPFAH
E1h
FFh
ISP Flash Address-High register
ISPFAL
E2h
FFh
ISP Flash Address-Low register
ISPFD
E3h
FFh
ISP Flash Data register
ISPFC
E4h
00h
ISP Flash control register
LVC
E6h
00h
Low voltage control register
SWRES
E7h
20h
Software Reset register
P4
E8h
FFh
Port 4
MD0
E9h
00h
Multiplication/Division Register 0
MD1
EAh
00h
Multiplication/Division Register 1
MD2
EBh
00h
Multiplication/Division Register 2
MD3
ECh
00h
Multiplication/Division Register 3
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
13
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
EDh
Reset
value
00h
Multiplication/Division Register 4
Register
Location
MD4
Description
MD5
EEh
00h
Multiplication/Division Register 5
ARCON
EFh
00h
Arithmetic Control Register
B
F0h
00h
B Register
SPIC1
F1h
08h
SPI control register 1
SPIC2
F2h
00h
SPI control register 2
SPITXD
F3h
00h
SPI transmit data buffer
SPIRXD
F4h
00h
SPI receive data buffer
SPIS
F5h
40h
SPI status register
OpPin
F6h
00h
Op/Comparator Pin Select register
TAKEY
F7h
00h
Time Access Key register
IICS
F8h
00h
IIC status register
IICCTL
F9h
04h
IIC control register
IICA1
FAh
A0h
IIC channel 1 Address 1 register
IICA2
FBh
60h
IIC channel 1 Address 2 register
IICRWD
FCh
00h
IIC channel 1 Read / Write Data buffer
IICS2
FDh
00h
IIC status2 register
Cmp0CON
FEh
00h
Comparator_0 Control register
Cmp1CON
FFh
00h
Comparator_1 Control register
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
14
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
功能描述:
1. 总特征
SM59R16A5是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详细定义将在以下章节给出.
1.1.
嵌入式程序存储器
可通过编程器或在线编程(ISP)将程序加载到64KB/36KB/20KB的嵌入式闪存体中。
1.2.
IO 口
The SM59R16A5有6个I/O ports: Port 0, Port 1, Port 2, Port 3, Port 4及Port 5. Ports 0, 1, 2, 3, 4 是 8位口及Port 5是6位口.
四种型态: 准双向口(标准 8051输出口), 推挽, 开漏, 与仅为输入. 在章节5中有详细说明。
OCI_SCL、ALE、OCI_SDA及RESET 可在烧写或用ISP时定义在P4.4、P4.5、P4.6及P4.7.
XTAL2 与 XTAL1可在烧写或用ISP时定义成IO管脚P5.4、P5.5,当用户使用内部晶振作为系统时钟及不使用内建实时时
钟功能时.
所有的P0~P5口都可通过转化速率来降低EMI。另一种降低EMI的方式是在禁止ALE输出,可通过特殊功能寄存器(SFR)
来进行选择控制,在高静电环境且在人体接触模式中,其I/O口的ESD可达4KV,可以保证 SM59R16A5在高静电环境下的
品质.
1.3.
2T/1T 的选择
传统的52 系列单片机时钟周期是12T, 即12 个振荡器时钟为1 个机器周期. SM59R16A5为2T/1T的微控制器,即机器周期
为2个时钟周期或1个时钟周期。换句话说,执行一条指令可是2个时钟或一个时钟。2T模式与1T模式的差异,请参考以下图
表1-1.
Fig. 1-1(a): 在2T模式内部指令信号波形
Fig. 1-1(b): 在1T模式内部指令信号波形
缺省值为2T模式,在任何时候,如IFCON [7](地址为8Fh)被置位时,就可改变为1T的模式。在一个机器周期内,并不是每
条指令都能被执行的。所有指令的确切机器周期将在下一章节中给出.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
15
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
1.4.
1.4.1.
复位
硬件复位功能
SM59R16A5提供了内部复位电路.内部复位的时间长度可以通过编程器或ISP设置.
Internal Reset time
25ms (default)
200ms
100ms
50ms
16ms
8ms
4ms
1.4.2.
软件复位功能
SM59R16A5提供一种软件复位机制来实现整个芯片的复位.要实现软件复位,硬件把3个特殊值 55h,AAh 和5Ah按顺序写
到TAKEY寄存器来使能软件复位寄存器(SWRES)可写.在软件复位寄存器获得可写权后,硬件可以对SWRES寄存器写入
FFh.硬件会用其他的硬件复位对复位讯号’OR’进行解码,软件复位寄存器在软件复位过程的最后会进行自复位.
Mnemonic
TAKEY
SWRES
1.4.3.
Description
Time Access Key
register
Software Reset
register
Direct
Bit 7
Bit 6
Bit 5
Bit 4
Software Reset function
Bit 3
Bit 2
Bit 1
Bit 0
RESET
F7h
TAKEY [7:0]
00H
E7h
SWRES [7:0]
00H
Time Access Key register (TAKEY)
Mnemonic: TAKEY
7
6
5
4
3
TAKEY [7:0]
2
1
Address: F7H
0
Reset
00H
软件复位寄存器(SWRES) 默认为只读; 软件把 3 个特殊值按顺序写到 TAKEY 寄存器来使能软件复位
寄存器(SWRES)可写. 它们是
MOV TAKEY, #55h
MOV TAKEY, #AAh
MOV TAKEY, #5Ah
1.4.4.
软件复位寄存器 (SWRES)
Mnemonic: SWRES
7
6
5
4
3
SWRES [7:0]
2
1
Address: E7H
0
Reset
00H
SWRES [7:0]: 软件复位寄存器.
SWRES [7:0] = FFh, MCU 产生软件复位.
SWRES [7:0] = 00h ~ FEh, MCU 不产生复位动作.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
16
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
1.4.5.
软件复位范例
MOV TAKEY, #55h
MOV TAKEY, #AAh
MOV TAKEY, #5Ah ; enable SWRES write attribute
MOV SWRES, #FFh ; software reset MCU
1.5.
时钟源
默认时钟来自于外部晶振时钟信号,其时钟应用于初始化阶段,其主要的工作是确定时钟源使用的正常运行。
内部时钟源来源于不同分频的内部OSC如表1-1所示,时钟源可在编程器或ICP中设置.
Table 1-1: Selection of clock source
Clock source
external crystal(初始设定)
24MHz from internal OSC
20MHz from internal OSC
16MHz from internal OSC
12MHz from internal OSC
8MHz from internal OSC
4MHz from internal OSC
2MHz from internal OSC
1MHz from internal OSC
对于来源于内部OSC的频率,这将有些许误差,在应用程序中需要精确的频率时,须注意使用.
内建实时时钟功能需要连接 32768Hz 晶振在 P3.6 及 P3.7 或连接在 XTAL1 及 XTAL2 (当用户使用内部时钟源作为系统时
钟信号时).
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
17
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
2. 指令设置
所有SM59R16A5的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表格列出了以SM59R16A5微控器为核心
的指令集的周期的总结,这里的周期表示为机器周期。
Mnemonic
ADD A,Rn
Table 2-1: Arithmetic operations
Description
Add register to accumulator
Code
28-2F
ADD A,direct
Add direct byte to accumulator
ADD A,@Ri
ADD A,#data
ADDC A,Rn
Bytes
1
Cycles
1
25
2
2
Add indirect RAM to accumulator
26-27
1
2
Add immediate data to accumulator
Add register to accumulator with carry flag
24
38-3F
2
1
2
1
ADDC A,direct
Add direct byte to A with carry flag
35
2
2
ADDC A,@Ri
Add indirect RAM to A with carry flag
36-37
1
2
ADDC A,#data
SUBB A,Rn
Add immediate data to A with carry flag
Subtract register from A with borrow
34
98-9F
2
1
2
1
SUBB A,direct
Subtract direct byte from A with borrow
95
2
2
SUBB A,@Ri
Subtract indirect RAM from A with borrow
96-97
1
2
SUBB A,#data
INC A
INC Rn
Subtract immediate data from A with borrow
Increment accumulator
Increment register
94
04
08-0F
2
1
1
2
1
2
INC direct
Increment direct byte
05
2
3
INC @Ri
Increment indirect RAM
06-07
1
3
INC DPTR
DEC A
Increment data pointer
Decrement accumulator
A3
14
1
1
1
1
DEC Rn
Decrement register
18-1F
1
2
DEC direct
Decrement direct byte
15
2
3
DEC @Ri
MUL AB
Decrement indirect RAM
Multiply A and B
16-17
A4
1
1
3
5
DIV
Divide A by B
84
1
5
DA A
Decimal adjust accumulator
D4
1
1
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
18
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic
ANL A,Rn
Table 2-2: Logic operations
Description
AND register to accumulator
Code
58-5F
ANL A,direct
AND direct byte to accumulator
ANL A,@Ri
Bytes
1
Cycles
1
55
2
2
AND indirect RAM to accumulator
56-57
1
2
ANL A,#data
ANL direct,A
AND immediate data to accumulator
AND accumulator to direct byte
54
52
2
2
2
3
ANL direct,#data
AND immediate data to direct byte
53
3
4
ORL A,Rn
OR register to accumulator
48-4F
1
1
ORL A,direct
ORL A,@Ri
OR direct byte to accumulator
OR indirect RAM to accumulator
45
46-47
2
1
2
2
ORL A,#data
OR immediate data to accumulator
44
2
2
ORL direct,A
OR accumulator to direct byte
42
2
3
ORL direct,#data
XRL A,Rn
OR immediate data to direct byte
Exclusive OR register to accumulator
43
68-6F
3
1
4
1
XRL A,direct
Exclusive OR direct byte to accumulator
65
2
2
XRL A,@Ri
Exclusive OR indirect RAM to accumulator
66-67
1
2
XRL A,#data
Exclusive OR immediate data to accumulator
64
2
2
XRL direct,A
XRL direct,#data
Exclusive OR accumulator to direct byte
Exclusive OR immediate data to direct byte
62
63
2
3
3
4
CLR A
Clear accumulator
E4
1
1
CPL A
Complement accumulator
F4
1
1
RL A
RLC A
Rotate accumulator left
Rotate accumulator left through carry
23
33
1
1
1
1
RR A
Rotate accumulator right
03
1
1
RRC A
Rotate accumulator right through carry
13
1
1
SWAP A
Swap nibbles within the accumulator
C4
1
1
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
19
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic
MOV A,Rn
MOV A,direct
Table 2-3: Data transfer
Description
Move register to accumulator
Move direct byte to accumulator
Code
E8-EF
E5
Bytes
1
2
Cycles
1
2
MOV A,@Ri
MOV A,#data
MOV Rn,A
MOV Rn,direct
Move indirect RAM to accumulator
Move immediate data to accumulator
Move accumulator to register
Move direct byte to register
E6-E7
74
F8-FF
A8-AF
1
2
1
2
2
2
2
4
MOV Rn,#data
MOV direct,A
MOV direct,Rn
MOV direct1,direct2
Move immediate data to register
Move accumulator to direct byte
Move register to direct byte
Move direct byte to direct byte
78-7F
F5
88-8F
85
2
2
2
3
2
3
3
4
MOV direct,@Ri
MOV direct,#data
MOV @Ri,A
MOV @Ri,direct
Move indirect RAM to direct byte
Move immediate data to direct byte
Move accumulator to indirect RAM
Move direct byte to indirect RAM
86-87
75
F6-F7
A6-A7
2
3
1
2
4
3
3
5
MOV @Ri,#data
Move immediate data to indirect RAM
76-77
2
3
MOV DPTR,#data16
Load data pointer with a 16-bit constant
90
3
3
MOVC A,@A+DPTR
Move code byte relative to DPTR to accumulator
93
1
3
MOVC A,@A+PC
MOVX A,@Ri
Move code byte relative to PC to accumulator
Move external RAM (8-bit addr.) to A
83
E2-E3
1
1
3
3
MOVX A,@DPTR
MOVX @Ri,A
MOVX @DPTR,A
PUSH direct
Move external RAM (16-bit addr.) to A
Move A to external RAM (8-bit addr.)
Move A to external RAM (16-bit addr.)
Push direct byte onto stack
E0
F2-F3
F0
C0
1
1
1
2
3
4
4
4
POP direct
XCH A,Rn
XCH A,direct
XCH A,@Ri
XCHD A,@Ri
Pop direct byte from stack
Exchange register with accumulator
Exchange direct byte with accumulator
Exchange indirect RAM with accumulator
Exchange low-order nibble indir. RAM with A
D0
C8-CF
C5
C6-C7
D6-D7
2
1
2
1
1
3
2
3
3
3
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
20
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic
ACALL addr11
Table 2-4: Program branches
Description
Absolute subroutine call
Code
xxx11
LCALL addr16
Long subroutine call
RET
Bytes
2
Cycles
6
12
3
6
from subroutine
22
1
4
RETI
AJMP addr11
from interrupt
Absolute jump
32
xxx01
1
2
4
3
LJMP addr16
Long iump
02
3
4
SJMP rel
Short jump (relative addr.)
80
2
3
JMP @A+DPTR
JZ rel
Jump indirect relative to the DPTR
Jump if accumulator is zero
73
60
1
2
2
3
JNZ rel
Jump if accumulator is not zero
70
2
3
JC rel
Jump if carry flag is set
40
2
3
JNC
JB bit,rel
Jump if carry flag is not set
Jump if direct bit is set
50
20
2
3
3
4
JNB bit,rel
Jump if direct bit is not set
30
3
4
JBC bit,direct rel
Jump if direct bit is set and clear bit
10
3
4
CJNE A,direct rel
Compare direct byte to A and jump if not equal
B5
3
4
CJNE A,#data rel
CJNE Rn,#data rel
Compare immediate to A and jump if not equal
Compare immed. to reg. and jump if not equal
B4
B8-BF
3
3
4
4
CJNE @Ri,#data rel
Compare immed. to ind. and jump if not equal
B6-B7
3
4
DJNZ Rn,rel
Decrement register and jump if not zero
D8-DF
2
3
DJNZ direct,rel
NOP
Decrement direct byte and jump if not zero
No operation
D5
00
3
1
4
1
Mnemonic
CLR C
Table 2-5: Boolean manipulation
Description
Clear carry flag
Code
C3
CLR bit
Clear direct bit
SETB C
Bytes
1
Cycles
1
C2
2
3
Set carry flag
D3
1
1
SETB bit
CPL C
Set direct bit
Complement carry flag
D2
B3
2
1
3
1
CPL bit
Complement direct bit
B2
2
3
ANL C,bit
AND direct bit to carry flag
82
2
2
ANL C,/bit
ORL C,bit
AND complement of direct bit to carry
OR direct bit to carry flag
B0
72
2
2
2
2
ORL C,/bit
OR complement of direct bit to carry
A0
2
2
MOV C,bit
Move direct bit to carry flag
A2
2
2
MOV bit,C
Move carry flag to direct bit
92
2
3
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
21
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
3. 存储器结构
SM59R16A5存储器结构和通用的8051结构相同,也在三个存储空间内操作运算对象,它们是:2K的片上外扩RAM 与作为程
序存储器的64K的嵌入式Flash.
3.1.
程序存储器
SM59R16A5有64K的嵌入式flash,可做为通用的程序存储或EEPROM.其他还包括最大为4K的特定ISP服务程序存储空间.
这64K的地址从0000到$FFFF.ISP服务程序的地址从$F000到$FFFF.ISP服务程序空间可以被分割N块256字节(N=0至16).
当N=0时,意味着没有ISP复位程序空间可用.全部的64K字节空间都被用来做程序存储.当N=1时,意味着地址$FF00到$FFFF
保留为ISP服务程序空间.当N=2意味着内存地址$FE00至$FFFF保留为ISP服务程序空间等等...数值N可以通过编程器或
ICP方式编程或设置.它可象EEPROM那样用来记录任何数据.EEPROM的应用功能在第19章节的内部ISP部分有描述.
ISP service
Program space,
Up to 4K
64K Program
Memory space
FFFF
FF00
FE00
FD00
FC00
FB00
FA00
F900
F800
F700
F600
F500
F400
F300
F200
F100
F000
N=0
N=1
N=2
N=3
N=4
N=5
N=6
N=7
N=8
N=9
N=10
N=11
N=12
N=13
N=14
N=15
N=16
0000
Fig. 3-1: SM59R16A5 programmable Flash
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
22
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
ISP service
Program space,
Up to 4K
FFFF
FF00
FE00
FD00
FC00
FB00
FA00
F900
F800
F700
F600
F500
F400
F300
F200
F100
F000
N=0
N=1
N=2
N=3
N=4
N=5
N=6
N=7
N=8
N=9
N=10
N=11
N=12
N=13
N=14
N=15
N=16
8000
7FFF
32K Program
Memory space
0000
Fig. 3-2 : SM59R09A5 programmable Flash
ISP service
Program space,
Up to 4K
FFFF
FF00
FE00
FD00
FC00
FB00
FA00
F900
F800
F700
F600
F500
F400
F300
F200
F100
F000
N=0
N=1
N=2
N=3
N=4
N=5
N=6
N=7
N=8
N=9
N=10
N=11
N=12
N=13
N=14
N=15
N=16
4000
3FFF
16K Program
Memory space
0000
Fig. 3-3 : SM59R05A5 programmable Flash
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
23
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
3.2.
数据存储器
SM59R04A2具有2K+256 Bytes的片上SRAM, 其中256 Bytes和通用的8052内部存储器结构一样,外扩的片上2KB的
SRAM可以通过访问其外部存储器的方式进行访问(通过MOVX指令)。
Fig 3-2 (a):External memory access as read
Fig 3-2 (b):External memory access as write
07FF
FF
FF
Higher 128 Bytes (Accessed by
indirect addressing mode only)
SFR (Accessed by direct addressing
mode only)
80
Expanded 2K Bytes
(Accessed by direct external
addressing mode by
instruction MOVX)
80
7F
Lower 128 Bytes (Accessed by direct
& indirect addressing mode )
0000
00
Fig. 3-3: RAM architecture
3.2.1.
数据内存-低 128 字节(00h to 7Fh)
数据存储器从 00h 到 FFh 的地址和在 8052 中的定义是一样的.
0h 到 7Fh 的地址可通过直接或者间接寻址方式访问.
00h到1Fh是寄存器的空间,
20h到2Fh是位寻址空间,
30h 到 7Fh 是通用的数据存储区.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
24
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
3.2.2.
数据存储器-高 128 字节 (80h to FFh)
80h 到 FFh 的地址仅仅能从间接寻址的方式访问,
它是一个数据区.
3.2.3.
数据存储器-扩展的 2048 字节($0000 to $07FF)
从 0000h 到 07FFh 是片内扩展的 SRAM 区域,共 2048 字节. 该空间地址只能通过外部直接寻址的方式进行访问.(利用
MOVX 指令)。
如果指令 MOVX @DPTR 的地址大于 07FFh, the SM59R16A5 将会自动产生外部存储器控制信号.
外部直接寻址指令 MOVX @Ri, i=0, 1 是由寄存器 RCON ($86,内部 RAM 控制寄存器)的 RCON [7:0]来决定的. RCON [7:0]
的默认值为 00h。(页 0). RAM 每一页有 256 字节.
当 EMEN = 0, 内部的 2K 扩展内存使能.如接受内存空间大于 2048 字节,RCON 的值被发往 P2,去接收外部 RAM.
当EMEN = 1, 内部的2K扩展内存不能.RCON的值无效并且高字节地址由P2寄存器环境决定P2 [7:0].
MOVX @Ri, A
MOVX A,@Ri
EMEN = 0
EMEN = 1
0 ≦ RCON[7:0] ≦ 3
4 ≦ RCON [7:0] ≦ 255
Addr [15:8] <= RCON[7:0]
Port2 [7:0] <= P2 [7:0]
Port2 [7:0] <= RCON[7:0]
Port2 [7:0] <= P2 [7:0]
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
25
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
4. CPU 结构
SM59R16A5引擎由以下四部分组成:
a. 控制单元
b. 算法-逻辑单元
c. 存储器控制单元
d. RAM和SFR控制单元
SM59R16A5结构允许接受来自程序存储器的指令并与RAM或SFR做数据处理,以下各段详细叙述了主要功能寄存器。
Mnemonic
Description
Direct
Bit 7
ACC
B
Accumulator
B register
Program status
word
Stack Pointer
Data pointer low 0
Data pointer high
0
Data pointer low 1
Data pointer high
1
E0h
F0h
ACC.7
B.7
D0h
CY
PSW
SP
DPL
DPH
DPL1
DPH1
AUX
RCON
IFCON
4.1.
Auxiliary register
Internal RAM
control register
Interface control
register
Bit 6
Bit 5
8051 Core
ACC.6 ACC.5
B.6
B.5
AC
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
ACC.4
B.4
ACC.3
B.3
ACC.2
B.2
ACC.1
B.1
ACC.0
B.0
00H
00H
OV
PSW.1
P
00H
F0
RS[1:0]
81h
82h
SP[7:0]
DPL[7:0]
07H
00H
83h
DPH[7:0]
00H
84h
DPL1[7:0]
00H
85h
DPH1[7:0]
00H
91h
BRGS
-
P4SPI
P4UR
1
86h
P4IIC
P0KBI
P2PW
M
DPS
RCON[7:0]
8Fh
ITS
CDPR
-
-
00H
ALEC[1:0]
EMEN
ISPE
累加器
ACC 是一个累加器,大部分单操作指令的一个操作数取自累加器.
Mnemonic: ACC
7
6
ACC.7 ACC.6
5
ACC05
4
ACC.4
3
ACC.3
2
ACC.2
1
ACC.1
Address: E0h
0
Reset
ACC.0
00h
ACC[7:0]: The A (or ACC) register is the standard 8052 accumulator.
4.2.
B 寄存器
B寄存器被用于乘法或除法指令,也可作为一般寄存器以存储临时数据.
Mnemonic: B
7
6
B.7
B.6
5
B.5
4
B.4
3
B.3
2
B.2
1
B.1
Address: F0h
0
Reset
B.0
00h
B[7:0]: The B register is the standard 8052 register that serves as a second accumulator.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
26
00H
Ver.H
SM59R16A5
04/2015
00H
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
4.3.
程序状态字
Mnemonic: PSW
7
6
CY
AC
5
F0
4
3
RS [1:0]
2
OV
1
F1
Address: D0h
0
Reset
P
00h
CY: 进位标志位.
AC: 为 BCD 辅助进位标志位
F0: 用户设置标志位 0
RS[1:0]: 寄存器组选择位,用来选择工作寄存器区域.
RS[1:0]
Bank Selected
Location
00
Bank 0
00h – 07h
01
Bank 1
08h – 0Fh
10
Bank 2
10h – 17h
11
Bank 3
18h – 1Fh
OV: 溢出标志位
F1: 用户设置标志位 1
P: 奇偶校验位, 受硬件影响, 显示累加器中的奇偶的 1 位,即奇偶校验
4.4.
堆栈指针
堆栈指针是一个1字节的寄存器,在复位后初始化值为07h.此寄存器在执行PUSH和CALL指令之前增值,使得堆栈指针在08h
开始执行
Mnemonic: SP
7
6
5
4
3
2
1
SP [7:0]
Address: 81h
0
Reset
07h
SP[7:0]: 堆栈指针储存了暂时寄存器的地址,该地址是堆栈指针的起始位置.换言之,它总是指
向堆栈指针的顶端。
4.5.
数据指针
数据指针为2字节.低位为DPL.高位为DPH.它可以作为一个2字节的寄存器(MOV DPTR,#data16)来使用,或者作为两个寄存
器(例如,MOV DPL,#data8),它通常被用作是运行外部程序或者是数据空间(如,MOVC A,@ A+DPTR 或者各自的MOV A, @
DPTR).
Mnemonic: DPL
7
6
5
3
DPL [7:0]
2
1
Address: 82h
0
Reset
00h
4
3
DPH [7:0]
2
1
Address: 83h
0
Reset
00h
4
DPL[7:0]: Data pointer Low 0
Mnemonic: DPH
7
6
5
DPH [7:0]: Data pointer High 0
4.6.
数据指针 1
双数据指针加速了块状数据的运行速度.标准的DPTR 是一个16位的寄存器,是用来寻址外部空间或者外部存储器. 在
SM59R16A5中,标准的数据指针称为DPTR,第二个数据指针称为DPTR1.选择位用来选择使用的数据指针.数据指针的选择
位位于AUX寄存器的LSB(DPS).
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
27
Ver.H SM59R16A5 04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
用户通过触发AUX寄存器中的LSB位进行切换. 所有有关的DPTR指令都将为当前选用的DPTR所操作。
Mnemonic: DPL1
7
6
5
4
3
DPL1 [7:0]
2
1
Address: 84h
0
Reset
00h
4
3
DPH1 [7:0]
2
1
Address: 85h
0
Reset
00h
DPL1[7:0]: Data pointer Low 1
Mnemonic: DPH1
7
6
5
DPH1[7:0]: Data pointer High 1
Mnemonic: AUX
7
6
5
BRGS
P4SPI
4
P4UR1
3
P4IIC
2
P0KBI
1
P2PWM
Address: 91h
0
Reset
DPS
00H
DPS: 数据指针选择位.
DPS = 1 选择数据指针 1.
4.7.
内存控制寄存器
SM59R16A5 片内扩展的 RAM 区域,共 2K 字节该空间地址只能通过外部直接寻址的方式进行访问.(利用 MOVX 指令). 外
部直接寻址指令 MOVX @Ri, i= 0, 1 是由寄存器 RCON 的 RCON [7:0]来决定的. RCON [7:0]默认值为 00h (页 0).
Mnemonic: RCON
7
6
4.8.
5
4
3
RCON[7:0]
5
-
4
-
2
1
Address: 86h
0
Reset
00H
接口控制寄存器
Mnemonic: IFCON
7
6
ITS
CDPR
3
2
ALEC[1:0]
1
EMEN
Address: 8Fh
0
Reset
ISPE
00h
ITS: 指令执行机械周期选择位. (默认为 2T)
ITS = 0,指令执行机械周期为 2T.
ITS = 1,指令执行机械周期为 1T.
CDPR: 程序码已加密指示位(仅读)
ALEC[1:0]: ALE 输出控制寄存器.
ALEC[1:0]
ALE Output
00
永远输出
01
不输出
10
仅于读写外部内存时输出
11
保留
EMEN: 外扩的片上 2KB 的 SRAM 使能位.( 默认为使能)
EMEN = 0, 使能片上 2KB 的 SRAM.
EMEN = 1, 禁能片上 2KB 的 SRAM.
ISPE: ISP 功能使能位
ISPE = 1, 允许使用 ISP 功能
ISPE = 0, 禁止使用 ISP 功能
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
28
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
5. GPIO
SM59R16A5有6个I/O口: Port 0, Port 1, Port 2, Port 3, Port 4, and Port 5. Ports 0, 1, 2, 3, 4 是8位口and Port 5 是6位口.
它们是: 准双向口 (标准的8051端口输出),推挽电路,开漏, 与只输入. 两种寄存器的配置为每个端口的每个位选择输出方
式.SM59R16A5的所有端口可以通过软件配置四种型号的一种.如下表显示:
Mnemonic
P0M0
P0M1
P1M0
P1M1
P2M0
P2M1
P3M0
P3M1
P4M0
P4M1
P5M0
P5M1
Description
Direct
Port 0 output mode 0
Port 0 output mode 1
Port 1 output mode 0
Port 1 output mode 1
Port 2 output mode 0
Port 2 output mode 1
Port 3 output mode 0
Port 3 output mode 1
Port 4 output mode 0
Port 4 output mode 1
Port 5 output mode 0
Port 5 output mode 1
PxM1.y
0
0
1
1
PxM0.y
0
1
0
1
D2h
D3h
D4h
D5h
D6h
D7h
DAh
DBh
DCh
DDh
DEh
DFh
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2
I/O port function register
P0M0 [7:0]
P0M1[7:0]
P1M0[7:0]
P1M1[7:0]
P2M0[7:0]
P2M1[7:0]
P3M0[7:0]
P3M1[7:0]
P4M0[7:0]
P4M1[7:0]
P5M0[5:0]
P5M1[5:0]
Bit 1
Bit 0
RESET
00H
00H
00H
00H
00H
00H
00H
00H
00H
00H
00H
00H
Port output mode
Quasi-bidirectional (standard 8051 port outputs) (pull-up)
Push-pull
Input only (high-impedance)
Open drain
The OCI_SCL、ALE、OCI_SDA及RESET 可在烧写或用ISP时定义在P4.4、P4.5、P4.6及P4.7.
The XTAL2 and XTAL1可在烧写或用ISP时定义在P5.4、P5.5,当用户使用内部 OSC作为系统时钟及不使用内建实时时钟
功能时.
一般的应用,每个管脚都可独立的置高或置低.如下表显示:
Mnemonic
Port 5
Port 4
Port 3
Port 2
Port 1
Port 0
Description
Port 5
Port 4
Port 3
Port 2
Port 1
Port 0
Direct
Bit 7
Bit 6
D8h
E8h
B0h
A0h
90h
80h
P4.7
P3.7
P2.7
P1.7
P0.7
P4.6
P3.6
P2.6
P1.6
P0.6
Mnemonic: P0
7
6
P0.7
P0.6
5
P0.5
4
P0.4
Bit 5
Ports
P5.5
P4.5
P3.5
P2.5
P1.5
P0.5
3
P0.3
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
P5.4
P4.4
P3.4
P2.4
P1.4
P0.4
P5.3
P4.3
P3.3
P2.3
P1.3
P0.3
P5.2
P4.2
P3.2
P2.2
P1.2
P0.2
P5.1
P4.1
P3.1
P2.1
P1.1
P0.1
P5.0
P4.0
P3.0
P2.0
P1.0
P0.0
0Fh
FFh
FFh
FFh
FFh
FFh
2
P0.2
1
P0.1
Address: 80h
0
Reset
P0.0
FFh
P0.7~ 0: Port0 [7] ~ Port0 [0]
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
29
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: P1
7
6
P1.7
P1.6
5
P1.5
4
P1.4
3
P1.3
2
P1.2
1
P1.1
Address: 90h
0
Reset
P1.0
FFh
4
P2.4
3
P2.3
2
P2.2
1
P2.1
Address: A0h
0
Reset
P2.0
FFh
4
P3.4
3
P3.3
2
P3.2
1
P3.1
Address: B0h
0
Reset
P3.0
FFh
4
P4.4
3
P4.3
2
P4.2
1
P4.1
Address: E8h
0
Reset
P4.0
FFh
4
P5.4
3
P5.3
2
P5.2
1
P5.1
Address: D8h
0
Reset
P5.0
3Fh
P1.7~ 0: Port1 [7] ~ Port1 [0]
Mnemonic: P2
7
6
P2.7
P2.6
5
P2.5
P2.7~ 0: Port2 [7] ~ Port2 [0]
Mnemonic: P3
7
6
P3.7
P3.6
5
P3.5
P3.7~ 0: Port3 [7] ~ Port3 [0]
Mnemonic: P4
7
6
P4.7
P4.6
5
P4.5
P4.7~ 0: Port4 [7] ~ Port4 [0]
Mnemonic: P5
7
6
-
5
P5.5
P5.5~ 0: Port5 [5] ~ Port5 [0]
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
30
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
6. 硬件乘除法器(MDU)
SM59R16A5的算术单元提供了32位除法器,16位乘法器,转化和规范等特点。所有设置均为无符号整数设置。
Mnemonic
Description
Direct
PCON
Power control
Arithmetic Control
register
Multiplication/Divi
sion Register 0
Multiplication/Divi
sion Register 1
Multiplication/Divi
sion Register 2
Multiplication/Divi
sion Register 3
Multiplication/Divi
sion Register 4
Multiplication/Divi
sion Register 5
87H
Bit 6
Bit 5
Bit 4
Multiplication Division Unit
SMOD MDUF
-
EFh
MDEF
ARCON
MD0
MD1
MD2
MD3
MD4
MD5
6.1.
Bit 7
MDOV
Bit 3
Bit 2
Bit 1
Bit 0
RESET
-
-
STOP
IDLE
40H
SLR
SC[4:0]
00H
00H
E9h
MD0[7:0]
EAh
MD1[7:0]
EBh
MD2[7:0]
ECh
MD3[7:0]
EDh
MD4[7:0]
00H
EEh
MD5[7:0]
00H
00H
00H
00H
运行 MDU 寄存器
该MDU由7个寄存器处理,是具有记忆体映像为特殊功能寄存器, 运算单元允许同时操作以及CPU的独立活动。操作数及结
果寄存器为MD0到MD5,控制寄存器为ARCON.任何MDU的运算将改写其操作数.
Mnemonic: ARCON
7
6
5
MDEF MDOV
SLR
4
3
2
SC[4:0]
1
Address: EFh
0
Reset
00H
MDEF: 乘除错误标志位
MDEF 是一个错误标志位,且只可读。错误标志表示一个不当的操作(当其中的
运算操作被重新启动或者被一个新的运算中断),错误标志机制将自动在第一次
写入MD0 时失效和来自MD3(乘法或转换/规范)或来自第三阶段MD5(除法)
最终使读取指令失效。
在以下情况,错误标志位将被置位:
1. 第二阶段的进程,并写入MDx 寄存器时(重启或者中断计算)
错误标志只有在以下情况下重置:
第二阶段结束(算法成功)并写入MDx 寄存器
MDOV: 乘除法溢出标志。该溢出标志只可读
只有在以下情况时,该溢出标志被置位:
1. 除以“0”,
2. 再乘以一个比 0000FFFFH 大的值
3. 当最重要的 MD3 位被设置位(MD3.7=1)
当通过MD0 寄存器写入,(开始第一阶段)时,
溢出标志被重置
SLR: 转换方向位
SLR=0-转换左操作
SLR=1-转换右操作.
SC[4:0]: 转换计数器
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
31
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
当预设与00000b,标准化被选择,在标准化之后,SC[4;0] 包含正常转换的数
字,当SC[4:0]≠0 时,转换操作就开始,正常转换的数字由计数器写入SC[4;0]
决定。SC[4]位-MSB ,SC[0]位-LSB。
6.2.
乘除法器的设置
乘除法器的设置分为三个阶段:
6.2.1.
第一阶段:装载 MDx 寄存器, x = 0~5:
要执行的MDU运算的种类是按照mdx寄存器内写入的命令来选择.
Operation
First write
Last write
32bit/16bit
MD0 Dividend Low
MD1 Dividend
MD2 Dividend
MD3 Dividend High
MD4 Divisor Low
MD5 Divisor High
Table 6-1: MDU registers write sequence
16bit/16bit
16bit x 16bit
MD0 Dividend Low
MD0 Multiplicand Low
MD1 Dividend High
MD4 Multiplicator Low
MD1 Multiplicand High
MD4 Divisor Low
MD5 Divisor High
MD5 Multiplicator High
shift/normalizing
MD0 LSB
MD1
MD2
MD3 MSB
ARCON start conversion
任何情况下,MD0的写入都将首先被转换,而下一次的写入必须执行表格6-1显示的序列,以确保MDU的运作,最后一次的
写入将开始选择的运作。
6.2.2.
第二阶段:执行运算.
在执行运算中,MDU运行在拥有CPU并行线上。当MDU执行完毕时,MDUF寄存器将被硬件置位,
其标志位也将在下一次运算中被清除。
Mnemonic: PCON
7
6
SMOD MDUF
5
-
4
-
3
-
2
-
1
STOP
Address: 87h
0
Reset
IDLE
40h
MDUF: MDU 完成标志位
当 MDU 完成运算时,
MDUF 将被硬件置位且标志位也将在下一次运算中被清除。
下表给出了每一次数学计算中的执行时间.
Operation
Division 32bit/16bit
Division 16bit/16bit
Multiplication
Shift
Normalize
6.2.3.
Table 6-2: MDU execution times
Number of Tclk
17 clock cycles
9 clock cycles
11 clock cycles
Min. 3 clock cycles, Max. 18 clock cycles
Min. 4 clock cycles, Max. 19 clock cycles
第三阶段:从 MDx 寄存器上读取结果.
从第一个MDX 寄存器上读取序列并不重要,但我们必须意识到最后一次的读取(从MD5的除法运
算,或MD3中的乘法,位移和标准化)将意味着一次完整的运算结束(第三阶段结束).
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
32
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Operation
First read
Last read
Table 6-3: MDU registers read sequence
32Bit/16Bit
16Bit/16Bit
16Bit x 16Bit
MD0 Quotient Low
MD0 Quotient Low
MD0 Product Low
MD1 Quotient
MD1 Quotient High
MD1 Product
MD2 Quotient
MD2 Product
MD3 Quotient High
MD4 Remainder L
MD4 Remainder Low
MD5 Remainder H
MD5 Remainder High
MD3 Product High
shift/normalizing
MD0 LSB
MD1
MD2
MD3 MSB
这里的标准化和位移操作都将有更多的解释。在标准化中,所有在寄存器MD0到MD3中读写为0
且由左转换移动。当MD3寄存器的MSB(最高位)为“1”时,整个运算就算完成。正常化之后,位ARCON.4
(MSB)到ARCON.0 (LSB)执行左移位操作,至于位移,SLR位(ARCON.5)控制位移的方向,且ARCON.4
到ARCON.0代表位移计数(不可为0),在位移中,0进入左边或右边分别结束于寄存器MD0或MD3
中.
6.3.
标准化
整数阅读的零在寄存器变量MD0的MD3被左移位操作删除.当MD3寄存器的最高位 (Most Significant Bit) 包含一个'1' 整个
操作完成. 经过标准化, ARCON.4(MSB)至ARCON.0(LSB)包含左移位操作数, 标准化完成.
6.4.
位移
SLR位 (ARCON.5) 包含了位移的方向, 并且ARCON.4 至ARCON.0 移位操作数 (必须不能为0). 当位移时,零分别送入
MD0或MD3寄存器的左或右边.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
33
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
7. 定时器0 和定时器1
SM59R16A5有三个16bit的定时/计数寄存器: 定时器0, 定时器1和定时器2,所有这些都可以被设置为定时或计数操作.
I在定时器模式中, 定时器0或定时器1在每12个机器周期中得到递增,这意味着在每12个晶体或振荡信号中,计数会得到增加.
在计数的模式中,当检测到相应的输入脚T0/T1有下降沿产生时,寄存器便得到递增,由于它需要2个机器周期来识别由1到0
的跳变,其最大输入的计数频率为振荡器频率的1/2,从而使得这里没有限制的占空比,以确定适当的识别为0或1的状态,
因此,一个输入信号至少要稳定在1个机器周期.
定时器0和定时器1都有四种操作模式选择,在选择操作模式中,两个特殊功能寄存器(TMOD and TCON)被应用其中.
Mnemonic
Description
Direct
TL0
Timer 0 , low byte
Timer 0 , high
byte
Timer 1 , low byte
Timer 1 , high
byte
Timer Mode
Control
Timer/Counter
Control
8Ah
TL0[7:0]
00h
8Ch
TH0[7:0]
00h
8Bh
TL1[7:0]
00h
8Dh
TH1[7:0]
00h
TH0
TL1
TH1
TMOD
TCON
7.1.
Bit 7
Bit 6
Bit 5
Timer 0 and 1
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
89h
GATE
C/T
M1
M0
GATE
C/T
M1
M0
00h
88h
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
00h
定时器/计数器模式控制寄存器(TMOD)
Mnemonic: TMOD
7
6
5
GATE
C/T
M1
Timer 1
4
M0
3
GATE
2
1
C/T
M1
Timer 0
Address: 89h
0
Reset
M0
00h
GATE: 该位被置位时为门控时,仅当‘INT0 或者INT1’脚为高时,且‘TRx’控制位被置位
(参考TCON 寄存器)时使能,计数器在每个T0 或T1 输入脚处于下减沿触发
时得到加强。
C/T: 门控定时器或计数器选择器。该位被置位时用作计数器功能,该位被清零时用作定
时器功能.
M[1:0]: S 定时/计数器 0 或定时/计数器 1 的选择模式
M1
M0
Mode
Function
0
0
Mode0
13bit计数器/定时器, 包含TL0/TL1寄存器的低5
位及TH0/TL1寄存器的全部8位,其TL0/TL1寄存
器的高 3 位可设置为 0.
0
1
Mode1
16 位计数器/定时器.
1
0
Mode2
8 位自动装载的计数器/定时器,自动装载的值保
留在TH0 和TH1.同时TL0 或者TL1 在每个机
器周期内都会递增. 当溢出时,将THx 存放的值
装入 TLx.
1
1
Mode3
如定时器1 的M1 和M2 位被设置为1,定时器
2 停止计数。如定时器0 的M1 和M0 位被设置
为1,定时器0 作为两个独立的8 位定时器/计数
器.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
34
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
7.2.
定时/计数控制寄存器(TCON)
Mnemonic: TCON
7
6
5
TF1
TR1
TF0
4
TR0
3
IE1
2
IT1
1
IE0
Address: 88h
0
Reset
IT0
00h
TF1: 定时器1 溢出标志。定时器/计数器溢出时由硬件置位。中断执行时硬件清零,
或由软件清零。.
TR1: 定时器 1 运行控制位。 如置位/清零, 关闭定时器/计数器 1.
TF0: 定时器0 溢出标志。定时器/计数器溢出时由硬件置位。中断执行时硬件自动清
零,或由软件清零
TR0: 定时器 0 运行控制位。如置位/清零,关闭定时器/计数器 0.
IE1: 中断1 边沿标志。当检测到外部中断1 边沿/低电平时由硬件置位该标志。中
断处理时由硬件清零,或通过软件清零.
IT1: 中断1 类型控制位,通过软件置位/清零该位来选择外部中断1 以下降沿/低电
平方式触发
IE0: 中断0 边沿标志。当检测到外部中断0 边沿/低电平时由硬件置位该标志。中
断处理时由硬件清零,或通过软件清零.
IT0: 中断0 类型控制位。通过软件置位/清零该位来选择外部中断0 以下降沿/低电
平方式触发.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
35
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
8. 定时器2 以及捕捉/比较单元
定时器2不仅仅是一个16位的定时器,也是一个带有4个通道比较,捕获及重载功能,这是非常相似在其他一些微控制器的可
编程计数器阵列(PCA),除脉冲宽度调制(PWM).
Mnemonic
Description
Direct
AUX2
T2CON
Auxiliary register2
Timer 2 control
Compare/Capture
Control
Compare/Capture
Enable register
Compare/Capture
Enable 2 register
Timer 2, low byte
Timer 2, high byte
Compare/Reload/
Capture register,
low byte
Compare/Reload/
Capture register,
high byte
Compare/Capture
register 1, low
byte
Compare/Capture
register 1, high
byte
Compare/Capture
register 2, low
byte
Compare/Capture
register 2, high
byte
Compare/Capture
register 3, low
byte
Compare/Capture
register 3, high
byte
CCCON
CCEN
CCEN2
TL2
TH2
CRCL
CRCH
CCL1
CCH1
CCL2
CCH2
CCL3
CCH3
Bit 2
92h
C8h
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Timer 2 and Capture Compare Unit
T2PS[2:0]
T2R[1:0]
C9h
CCI3
CCF2
C1h
-
COCAM1[2:0]
-
COCAM0[2:0]
00h
D1h
-
COCAM3[2:0]
-
COCAM2[2:0]
00h
CCI1
CCI0
CCF3
CCh
CDh
TL2[7:0]
TH2[7:0]
CAh
CRCL[7:0]
CBh
CRCH[7:0]
C2h
CCL1[7:0]
C3h
CCH1[7:0]
C4h
CCL2[7:0]
C5h
CCH2[7:0]
C6h
CCL3[7:0]
C7h
CCH3[7:0]
Bit 0
P42CC[1:0]
T2I[1:0]
CCF1
CCF0
RESET
00h
00H
00h
00h
00h
00h
00h
00h
00h
00h
00h
00h
Mnemonic: AUX2
7
6
P42CC[1: 0] 00:
01:
10:
11:
CCI2
-
Bit 1
5
4
3
2
Address: 92h
1
0
Reset
P42CC[1: 0]
00H
捕捉/比较功能使用 Port1.
捕捉/比较功能使用 Port2.
捕捉/比较功能使用 Port4.
保留
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
36
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: T2CON
7
6
5
T2PS[2:0]
4
3
T2R[1:0]
2
-
1
Address: C8h
0
Reset
T2I[1:0]
00H
T2PS[2:0]: 分频器选择位:
T2PS = 000 –定时器 2 的时钟为振荡频率.
T2PS = 001 –定时器 2 的时钟为振荡频率的 1/2.
T2PS = 010 –定时器 2 的时钟为振荡频率的 1/4.
T2PS = 011 –定时器 2 的时钟为振荡频率的 1/6.
T2PS = 100 –定时器 2 的时钟为振荡频率的 1/8.
T2PS = 101 –定时器 2 的时钟为振荡频率的 1/12.
T2PS = 110 –定时器 2 的时钟为振荡频率的 1/24.
T2R[1:0]: 定时器 2 重载模式选择位
T2R[1:0] = 0X –重载无效
T2R[1:0] = 10 –模式 0:自动重载
T2R[1:0] = 11 –模式 1:依 T2EX 脚下降缘重载
T2I[1:0]: 定时器 2 输入选择位
T2I[1:0] = 00 –定时器 2 计数停止
T2I[1:0] = 01 –输入频率依 T2PS[2:0]分频器选择
T2I[1:0] = 10 –定时器 2 在 T2 脚的外部信号递增
T2I[1:0] = 11 –门控定时器 2 可为内部时钟输入
Mnemonic: CCCON
7
6
5
CCI3
CCI2
CCI1
4
CCI0
3
CCF3
2
CCF2
1
CCF1
Address: C9h
0
Reset
CCF0
00H
CCI3: 捕捉/比较通道 3 中断功能控制位.
“1” 中断功能使能.
CCI2: 捕捉/比较通道 2 中断功能控制位.
“1” 中断功能使能.
CCI1: 捕捉/比较通道 1 中断功能控制位.
“1” 中断功能使能.
CCI0: 捕捉/比较通道 0 中断功能控制位.
“1” 中断功能使能.
CCF3: 捕捉/比较通道 3 中断旗标位.可由软件清零.
CCF2: 捕捉/比较通道 2 中断旗标位.可由软件清零.
CCF1: 捕捉/比较通道 1 中断旗标位.可由软件清零.
CCF0: 捕捉/比较通道 0 中断旗标位.可由软件清零.
捕捉/比较中断与定时器 2 中断共用同一个中断向量.
Mnemonic: CCEN
7
6
5
4
-COCAM1[2:0]
COCAM1[2:0] 000:
001:
010:
011:
100:
101:
110:
3
--
2
Address: C1h
1
0
Reset
COCAM0[2:0]
00H
禁止比较/捕获功能
比较功能启动但无输出
比较功能模式 0
比较功能模式 1
捕获在 CC1 脚的上升沿
捕获在 CC1 脚的下降沿
捕获在 CC1 脚的上升沿及下降沿
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
37
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
111:
COCAM0[2:0] 000:
001:
010:
011:
100:
101:
110:
111:
在寄存器 CC1 中捕获写入操作
禁止比较/捕获功能
比较功能启动但无输出
比较功能模式 0
比较功能模式 1
捕获在 CC0 脚的上升沿
捕获在 CC0 脚的下降沿
捕获在 CC0 脚的上升沿及下降沿
在寄存器 CC0 中捕获写入操作
Mnemonic: CCEN2
7
6
5
4
-COCAM3[2:0]
COCAM3[2:0] 000:
001:
010:
011:
100:
101:
110:
111:
COCAM2[2:0] 000:
001:
010:
011:
100:
101:
110:
111:
8.1.
3
--
2
Address: D1h
1
0
Reset
COCAM2[2:0]
00H
禁止比较/捕获功能
比较功能启动但无输出
比较功能模式 0
比较功能模式 1
捕获在 CC3 脚的上升沿
捕获在 CC3 脚的下降沿
捕获在 CC3 脚的上升沿及下降沿
在寄存器 CC3 中捕获写入操作
禁止比较/捕获功能
比较功能启动但无输出
比较功能模式 0
比较功能模式 1
捕获在 CC2 脚的上升沿
捕获在 CC2 脚的下降沿
捕获在 CC2 脚的上升沿及下降沿
在寄存器 CC2 中捕获写入操作
定时器 2 功能
定时器2既可做为定时器,又可做为计数器,或解释为门控定时器(如下解释).
8.1.1.
定时器模式
在此模式中,定时器2递增频率依分频器选择决定,而分频器则由特殊寄存器T2CON中的T2PS[2:0]位选择.
8.1.2.
事件计数模式
在此模式中,当然外部信号T2由1到0的跳变时,定时器得到递增,T2输入在每个周期中得以采样,定时器2在跳变检测的
一个周期中得到递增.
8.1.3.
门控定时器模式
在此模式中,定时器2递增的内部时钟是由外部信号T2来控制的.
8.1.4.
定时器 2 的重载
重载(来自CRC寄存器的16位重载)可在以下两种模式中执行:
模式0:重载信号由定时器2溢出产生,即自动重载。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
38
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
模式1:重载信号由相应的输入脚T2EX负跳变产生.
8.2.
比较功能
在四个独立的比较器中,任何比较/捕捉寄存器中的值都和定时器寄存器的内容比较,其比较模式0或1由位C0CAMx来选择.
在这两种比较模式中,其比较结果在同样的机器周期的P1口的得出使得其内部比较信号被激活.
当通道1,2及通道3皆使用于比较功能时,通道2及通道3比较功能之比较模式设定需与通道1相同。
8.2.1.
比较模式 0
在模式0中,当定时器2的值等同与比较寄存器上的值时,其输出信号由低到高的跳变,并在定时器溢出时返回低电位。在
此模式中,对端口写入无效,因为无法对来自内部总线及暂存器进行操作。
下表数字阐述了比较模式0的功能.
Fig. 8-1: Compare mode 0 function
Contents of
Timer 2
CRC or CCx
Reload value
CCx Output
Timer 2 = CCx value
8.2.2.
Timer 2 overflow
比较模式 1
在比较模式1中,其输出信号的跳变是由软件来决定的。定时器2的溢出不会导致输出的改变。在此模式中,两种信号的跳
变都是可以控制的,图表8-2显示了在比较模式1中的寄存器/端口结构菜单。
在比较模式1中,其值将首先被写入到“阴影寄存器”中,当比较信号被激活时,其值被传递到输出寄存
器.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
39
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Fig. 8-2: Compare mode 1 function
Contents of
Timer 2
CRC or CCx
Reload value
CCx Output
Output register
Shadow register
CCx Output
Timer 2 = CCx value
8.3.
捕获功能
在一个外部事件(模式0)或一个软件写操作(模式1)上,实际的定时器/计数器的值可以被保存在寄存器CCx或CRC中.
8.3.1.
捕捉模式 0
在模式0中,定时器2的值的捕捉在以下情况进行:
(a) 上升沿输入 CC0-CC3。
(b) 下降沿输入 CC0-CC3。
(c) 上升沿及下降沿输入CC0-CC3。
定时器2的内容将被对应的捕捉寄存器锁存。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
40
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
8.3.2.
捕捉模式 1
在模式1中,定时器2的值的捕捉将导致写入到捕捉寄存器中的低字节无任何价值,其捕捉寄存器的写入值与改功能无关,定
时器2的内容将被对应的捕捉寄存器琐存。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
41
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
9. 串行接口0 和1
SM59R16A5有两个数据传输的串行接口,即UART0和UART1.
作为传统的UART,其传输速率可通过SFRs中的波特率来选择.
这两个串行缓冲器组成两个单独寄存器,即一个传输缓冲区和一个接收缓冲区。写入数据到特殊功能寄存器(SFR)S0BUF
或S1BUF并设置这些数据在串行输出缓冲,并开始传输, 来自S0BUF或S1BUF的读取及从串行接收缓冲区读取数据,串行
口可同时传输和接收数据,它也可在接收时缓存1字节,如CPU在第一个字节传输完成之前读取第二个字节,以防接收数据
丢失。
Mnemonic
PCON
AUX
S0CON
S0RELL
S0RELH
S0BUF
S1CON
S1RELL
S1RELH
S1BUF
Description
Power control
Auxiliary
register
Serial Port 0
control register
Serial Port 0
reload register
low byte
Serial Port 0
reload register
high byte
Serial Port 0
data buffer
Serial Port 1
control register
Serial Port 1
reload register
low byte
Serial Port 1
reload register
high byte
Serial Port 1
data buffer
Direct
Bit 7
Bit 6
Bit 5
Bit 4
Serial interface 0 and 1
MDUF
P4UR
P4SPI
1
Bit 3
Bit 2
Bit 1
Bit 0
RESET
87h
SMOD
-
-
IDLE
40h
P4IIC
P0KBI
STOP
P2PW
M
91h
BRGS
DPS
00H
98h
SM0
SM1
SM20
REN0
TB80
RB80
TI0
RI0
00h
AAh
S0REL
.7
S0REL
.6
S0REL
.5
S0REL
.4
S0REL
.3
S0REL
.2
S0REL
.1
S0REL
.0
00h
BAh
-
-
-
-
-
-
S0REL
.9
S0REL
.8
00h
99h
S0BUF[7:0]
00h
9Bh
SM
-
SM21
REN1
TB81
RB81
TI1
RI1
00h
9Dh
S1REL
.7
S1REL
.6
S1REL
.5
S1REL
.4
S1REL
.3
S1REL
.2
S1REL
.1
S1REL
.0
00h
BBh
-
-
-
-
-
-
S1REL
.9
S1REL
.8
00h
9Ch
Mnemonic: AUX
7
6
5
BRGS
P4SPI
S1BUF[7:0]
4
P4UR1
3
P4IIC
2
P0KBI
1
P2PWM
00h
Address: 91h
0
Reset
DPS
00H
P4UR1: P4UR1 = 0 –串行接口 1 使用 P1.2,P1.3
P4UR1 = 1 –串行接口 1 使用 P4.2,P4.3.
Mnemonic: S0CON
7
6
5
SM0
SM1
SM20
4
REN0
3
TB80
2
RB80
1
TI0
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
42
Address: 98h
0
Reset
RI0
00h
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
SM0,SM1: 串行口 0 模式选择.
SM0 SM1
Mode
0
0
0
0
1
1
1
0
2
1
1
3
在 UART0 的 4 种模式中,模式 0~3 稍后解释
SM20: 多处理机通信使能位
REN0: 如置位,串行接收使能,软件清除禁止接收
TB80: 在模式2 和3 中,发送的第9 位数据位,置位或清零取决与它执行的功能,如奇
偶校验功能, 多处理机通信等。
RB80: 在模式2 和3 中,RB80 为接收的第9 位数据位。在模式1 中,如SM20=0,RB80
为停止位。在模式 0 中,此位不被使用。须由软件清除。
TI0: 发送中断标志位.在完成串行传输后由硬件置位,须由软件清除。
RI0: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除.
Mnemonic: S1CON
7
6
5
SM
SM21
4
REN1
3
TB81
2
RB81
1
TI1
Address: 9Bh
0
Reset
RI1
00h
SM: 串行接口 1 模式选择.
SM
Mode
0
A
1
B
在 UART0 的 2 种模式中,模式 A 和模式 B 稍后解释。
SM21: 多处理机通信使能位
REN1: 如置位,串行接收使能,软件清除禁止接收
TB81: 在模式A 中,发送的第9 位数据位,置位或清零取决与它执行的功能,如奇偶校
验功能, 多处理机通信等
RB81: 在模式A 中,RB81 为接收的第9 位数据位。在模式B 中,如SM21=0,RB81 为
停止位,须由软件清除。
TI1: 发送中断标志位.在完成串行传输后由硬件置位,须由软件清除。
RI1: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除。
9.1.
串行接口 0
串行接口0由以下4种模式可以设置:
SM0
0
0
1
1
SM1
0
1
0
1
Mode
0
1
2
3
Description
Shift register
8-bit UART
9-bit UART
9-bit UART
Board Rate
Fosc/12
Variable
Fosc/32 or Fosc/64
Variable
这里的Fosc是晶体或振荡器的频率。
9.1.1.
模式 0
引脚RXD0充当输入和输出。TXD0输出时钟。每次发送或接收以LSB最低位作首位,每次8位。波特率固定为的晶体的频率
1/12,接收通过以下的在S0CON中的设置标志在模式0中初始化:RI0 = 0 and REN0 = 1。在其他模式中,当REN0=1时,
开始从起始位接收串行数据.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
43
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Fig. 9-1: Transmit mode 0 for Serial 0
Fig. 9-2: Receive mode 0 for Serial 0
9.1.2.
模式 1
引脚RXD0充当输入,TXD0充当串行输出,无任何外部时钟被使用,每次数据为10位:一个起始位(=0),8个数据位(LSB
位在前),及一个停止位(=1)。在接收据数据时, 起始位将被同步传输,8个数据位可通过S0BUF来读取, 一个停止位存于
特殊功能寄存器S0CON的设置标志RB80内,在模式1中,无论是内部的波特率发生器或定时器1可以用来指定波特率。
Fig. 9-3: Transmit mode 1 for Serial 0
Fig. 9-4: Receive mode 1 for Serial 0
9.1.3.
模式 2
该模式和模式1类似,但有两点不同。波特率被固定在振荡器的频率的1/32(SMOD=1)或1/64(SMOD=0),且有11位数
据被传输或接收: 1个起始位(=0),8个数据位(LSB在前),一个可编程的第9位及一个停止位(=1),9位可以用来控
制串行接口的奇偶性。在传输中,S0CON中的TB80输出第9位,在接收中,S0CON中的RB80将被影响。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
44
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
9.1.4.
模式 3
模式2和3的唯一不同之处在于:在模式3中,无论是内部的波特率发生器或定时器1可以用来指定波特率。
Fig. 9-5: Transmit modes 2 and 3 for Serial 0
Fig. 9-6: Receive modes 2 and 3 for Serial 0
9.2.
Serial interface 1
中断向量 83h.
串行接口1可在下面两种模式中操作:
SM
0
1
9.2.1.
Mode
A
B
Description
9-bit UART
8-bit UART
Baud Rate
Variable
Variable
模式 A
该模式和串行接口0中的模式2和3类似。11位数据被传输或接收: 1个起始位(=0),8个数据位(LSB在前),一个可编程
的第9位及一个停止位(=1),9位可以用来控制串行接口的奇偶性。在传输中,S1CON中的TB81输出第9位,在接收
中,S1CON中的RB81将被影响。
Fig. 9-7: Transmit mode A for Serial 1
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
45
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Fig. 9-8: Receive mode A for Serial 1
9.2.2.
模式 B
该模式和串行接口0中的模式1类似. 引脚RXD1充当输入,TXD1充当串行输出,无任何外部时钟被使用,每次数据为10位:
一个起始位(=0),8个数据位(LSB位在前),及一个停止位(=1)。在接收据数据时, 起始位将被同步传输,8个数据位可通
过S1BUF来读取, 一个停止位存于特殊功能寄存器S1CON的设置标志RB81内,在模式1中,无论是内部的波特率发生器或
定时器1可以用来指定波特率。
Fig. 9-9: Transmit mode B for Serial 1
Fig. 9-10: Receive mode B for Serial 1
9.3.
串行接口 0 和 1 的多重机通讯
在串行接口 0 的模式2 和3 或串行接口1 的模式A 中,接收9 位的功能, 可用于多处理器的通讯。
在这种情况下,从机在S0CON 中的位SM20 或在S1CON 中的SM21 被置位为1。当主机输出从机的
地址时,Bit9 将被置1,从而在所有的从机中导致串行口接收中断。从机将接收到的字节和它们的网络
地址比较,如匹配,其从机将清除SM20 或SM21,并接收其余的信息,其他的从机将远离SM20 或
SM2 无效,并忽略此信息。在解决从机后,其主机在Bit9 清0 时将输出剩余部分的信息,因此,没有
串口接收中断会产生在未选中的处理机中。
9.4.
9.4.1.
波特率发生器
串行接口 0 的模式 1 和 3
(a) 当BRGS = 0 (在 AUX寄存器):
Baud Rate =
2SMOD × FOSC
32 × 12 × (256 − TH1)
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
46
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
(b) 当BRGS = 1 (在 AUX寄存器):
9.4.2.
9.5.
Baud Rate =
2SMOD × FOSC
64 × 210 − S0REL
)
Baud Rate =
FOSC
32 × 2 − S1REL
)
(
串行接口 1 的模式 A 和 B
(
10
波特率的时钟源
当串行接口功能被使用时,须注意使用内部的振荡器作为时钟源的精度,其原因是先前章节所涉及到的波特率必须尽可能
的准确。因此,对于时钟频率精度要求高的应用环境,用户可选外部晶体或振荡器作为时钟源。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
47
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
10. 看门狗定时器
看门狗定时器是一个8位的计数器并会在计数器溢出时产生复位讯号.WDT在噪音.电源干扰,或断电等导致软件死循环或跑
飞程序等情况下非常有用.WDT功能可以帮助拥护的软件从不正常的软件状态中恢复正常.WDT不同于通用的8052的计时器
0,1,2.为了防止WDT复位,可以通过软件定时清除WDT计数器.当不可预料的复位发生时,用户应该检查WDTC寄存器的
WDTF位. 在一外部复位后,该看门狗定时器将无效且所有寄存器都清零。
看门狗定时器是一个自由运行的片上RC振荡器 (约250 KHz). WDT将保持运行就算是系统时钟被关闭(例如,在睡眠状态).
在正常的运行或睡眠状态,一个WDT超时(如使能)将导致MCU复位.WDT在正常状态下可随时被使能或失效.请注意WDTC寄
存器的WDTE位.默认的WDT超时时间为接近16.38ms (WDTM [3:0] = 0100b).
WDT有可选择的分频.要选择分频,需要正确设置看门控制寄存器(WDTC)的位3~位0(WDTM [3:0])
250KHz
2 WDTM
256
Watchdog reset time =
WDTCLK
WDTCLK =
WDTM [3:0]
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Table 10.1 WDT time-out period
Divider
Time period @ 250KHz
(250 KHz RC oscillator in)
1
1.02ms
2
2.05ms
4
4.10ms
8
8.19ms
16
16.38ms (default)
32
32.77ms
64
65.54ms
128
131.07ms
256
262.14ms
512
524.29ms
1024
1.05s
2048
2.10s
4096
4.19s
8192
8.39s
16384
16.78s
32768
33.55s
当MCU复位,MCU将会读WDTEN控制位状态.当WDTEN位被设置为1,无论WDTE位状态如何,看门狗功能将会失效.当
WDTEN位被清0,在WDTE位被通过变成设为1的情况下,看门狗功能将被使能.用户可通过烧路器或ISP设置WDTEN.
对WDTE位写入1同时WDTEN控制位清0,能使WDT功能使能.在WDTE设为1后.8位的计数器用通过WDTM[3:0]设置好的分
频进行计数.它在溢出时将会产生复位讯号.WDTE位在MCU重启时将被自动清0,同时硬件复位或WDT复位.
看门狗一旦开始工作将无法停止. ,当WDTK寄存器用户可通过对看门狗定时器重置密钥(WDTK)写入55h实现WDT计时器
清0.这将会清楚8位计数器内容并让计数器重启. 看门狗定时器必须定时刷新以防来自可变的重置复位请求信号.
当看门狗定时器溢出时, WDTF标志位将被置1并自动重置复位MCU.该标志位可被软件或外部复位清除.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
48
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Clear
Power on reset WDTF = 0
External reset
Software write “0”
250KHz RC
oscillator
1
TAKEY
(55, AA, 5A)
Set WDTF = 1
WDTCLK
WDT
Counter
2WDTM
Enable/Disable
WDT
WDTM[3:0]
WDT time-out reset
Refresh
WDT Counter
WDTC
Enable WDTC
write attribute
WDTF
WDTK
(0x55)
WDTEN
Fig. 10-1: Watchdog timer block diagram
Mnemonic
TAKEY
WDTC
WDTK
Description
Direct
Time Access Key
register
Watchdog timer
control register
Watchdog timer
refresh key
Bit 7
Bit 6
Bit 5
Bit 4
Watchdog Timer
F7h
B6h
Bit 3
Bit 2
Bit 1
Bit 0
RESET
TAKEY [7:0]
WDTF
-
WDTE
-
B7h
Mnemonic: TAKEY
7
6
5
00H
WDTM [3:0]
04H
WDTK[7:0]
4
3
TAKEY [7:0]
2
1
00H
Address: F7h
0
Reset
00H
看门狗控制寄存器(WDTC)默认为仅读;软件需依序于寄存器 TAKEY 写入 55h, AAh 及 5Ah 才能对看
门狗控制寄存器(WDTC)执行写入,启动看门狗功能及设定重置时间
MOV TAKEY, #55h
MOV TAKEY, #AAh
MOV TAKEY, #5Ah
Mnemonic: WDTC
7
6
5
WDTF
WDTE
4
-
3
2
1
WDTM [3:0]
Address: B6h
0
Reset
04H
WDTF: 看门狗定时器产生重置信号之旗标位.
当 MCU 之重置是由看门狗定时器产生时, 此位将被置高.此旗标位清零可由软件、外部
重置信号或上电之重置信号.
WDTE: 看门狗定时器使能位.
此位需于WDTEN=0(此值于出厂时已设为0)时设置才有作用,既于刻录(使用ICP,ISP或一
般刻录器)时于看门狗选项选择使用.
0: 禁能.
1: 使能.
WDTM [3:0]: 看门狗重置信号产生时间选择位.请参考表格 10.1 所列看门狗重置信号产生时间.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
49
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: WDTK
7
6
5
4
3
WDTK[7:0]
2
1
Address: B7h
0
Reset
00h
WDTK: 看门狗定时器计数器清零寄存器.
于此寄存器写入 0x55, 看门狗定时器计数器将清零重新计数.
範例:
看门狗定时器使能並选择重置信号产生时间為 262.14ms.
第一步,先确认刻录时看门狗功能已选择使用.
第二步,如下
MOV TAKEY, #55h
MOV TAKEY, #AAh
MOV TAKEY, #5Ah
; enable WDTC write attribute.
MOV WDTC, #28h
; Set WDTM [3:0] = 1000b. Set WDTE =1 to enable WDT
; function.
.
.
.
MOV WDTK, #55h
; Clear WDT timer to 0.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
50
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
11. 中断
SM59R16A5提供15个中断源并带有4级优先权. 每一中断源都在特殊寄存器(SFR)中有自身的请求标志,每个中断请求信号
通过相应的标志及特殊寄存器(SFR)中的IEN0,IEN1及IEN2中的使能位来独自允许或禁止。
当中断发生时,CPU将会跳转预先设定的地址,如11-1图表所示,一旦中断开始执行,就只能被更高优先级的中断终止,
其中断服务会被来自指令RETI的返回所终结。当一RETI被执行时且中断发生时,处理器将将返回此指令,并执行下一条指
令。
当中断条件发生时,该处理器通过设置一个标志位来表示,无论中断使能或禁止,每个中断标志都将在每个机器周期中采
样一次,随后采样由硬件来检测,当中断被使能时,且采样指出相应中断时,中断请求标志被设置。在随后的指令周期中,
中断将被硬件所确定。从而迫使一个LCALL 指向相应的地址向量。
当中断发生时,中断响应将需要不同的时间,这取决于相关的处理器。如一处理器执行的中断服务程序同等或更优先,新
的中断将不会启用,在其他情况下,响应时间将取决于当前的指令。以最快的速度回应一个中断是需要7个机器周期,这包
括一个检测中断的机器周期和6周期执行LCALL周期。
Interrupt Request Flags
IE0 –外部中断 0
Table 11-1: 中断向量
Interrupt Vector
Address
0003h
Interrupt Number
*(use Keil C Tool)
0
TF0 –定时器 0 中断
000Bh
1
IE1 –外部中断 1
0013h
2
TF1 –定时器 1 中断
001Bh
3
RI0/TI0 –串行口 0 中断
0023h
4
TF2/EXF2 –定时器 2 中断
002Bh
5
PWMIF – PWM interrupt
0043h
8
SPIIF –SPI 中断
004Bh
9
ADCIF –A/D 转换中断
KBIIF – keyboard Interface interrupt
LVIIF – 低压中断
IICIF –IIC 中断
RI1/TI1 –串行口 1 中断
0053h
005Bh
0063h
006Bh
0083h
10
11
12
13
16
RTC/ALARM 中断
008Bh
17
Comparator 中断
0093h
18
*参考Keil C用户指南中的有关中断功能使用说明
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
51
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic
IEN0
IEN1
IEN2
IRCON
IRCON2
IP0
IP1
Description
Interrupt Enable
0 register
Interrupt Enable
1 register
Interrupt Enable
2 register
Interrupt request
register
Interrupt request
register 2
Interrupt priority
level 0
Interrupt priority
level 1
Direct
Bit 7
Bit 6
Bit 5
Interrupt
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
A8h
EA
-
ET2
ES0
ET1
EX1
ET0
EX0
00h
B8h
EXEN2
-
IEIIC
IELVI
IEKBI
IEADC
IESPI
IEPWM
00h
9Ah
-
-
-
-
-
ECmpI
ERTC
ES1
00h
C0H
EXF2
TF2
IICIF
LVIIF
KBIIF
ADCIF
SPIIF
PWMIF
00H
97H
-
-
-
-
-
CmpIF
RTCIF
-
00H
A9h
-
-
IP0.5
IP0.4
IP0.3
IP0.2
IP0.1
IP0.0
00h
B9h
-
-
IP1.5
IP1.4
IP1.3
IP1.2
IP1.1
IP1.0
00h
Interrupt Enable 0 register(IEN0)
Mnemonic: IEN0
7
6
EA
-
5
ET2
4
ES0
3
ET1
2
EX1
1
ET0
Address: A8h
0
Reset
EX0
00h
3
IEKBI
2
IEADC
1
IESPI
Address: B8h
0
Reset
IEPWM
00h
EA: EA=0 –禁能所有中断.
EA=1 –使能所有中断.
ET2: ET2=0 –禁能定时器 2 中断.
ET2=1 –使能定时器 2 中断.
ES0: ES0=0 –禁能串行口 0 中断.
ES0=1 –使能串行口 0 中断.
ET1: ET1=0 –禁能定时器 1 中断.
ET1=1 –使能定时器 1 中断.
EX1: EX1=0 –禁能外部中断 1.
EX1=1 –使能外部中断 1.
ET0: ET0=0 –禁能定时器 0 中断.
ET0=1 –使能定时器 0 中断.
EX0: EX0=0 –禁能外部中断 0.
EX0=1 –使能外部中断 0.
Interrupt Enable 1 register(IEN1)
Mnemonic: IEN1
7
6
EXEN2
-
5
IEIIC
4
IELVI
EXEN2: 定时器 2 重载中断使能位.
EXEN2 = 0 –禁能定时器 2 外部重载中断.
EXEN2 = 1 –使能定时器 2 外部重载中断.
IEIIC: IIC 中断使能位.
IEIICS = 0 –禁能 IIC 中断.
IEIICS = 1 –使能 IIC 中断.
IELVI: 低压中断使能位.
IELVI = 0 –禁能低压中断.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
52
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
IELVI = 1 –使能低压中断.
IEKBI: KBI 中断使能位.
IEKBI = 0 –禁能 KBI 中断.
IEKBI = 1 –使能 KBI 中断.
IEADC: A/D 转换中断使能位
IEADC = 0 –禁能 ADC 中断.
IEADC = 1 –使能 ADC 中断.
IESPI: SPI 中断使能位.
IESPI = 0 –禁能 SPI 中断.
IESPI = 1 –使能 SPI 中断.
IEPWM: PWM 中断使能位.
IEPWM = 0 –禁能 PWM 中断.
IEPWM = 1 –使能 PWM 中断.
Interrupt Enable 2 register(IEN2)
Mnemonic: IEN2
7
6
-
5
-
4
-
3
-
2
ECmpI
1
ERTC
Address: 9Ah
0
Reset
ES1
00h
ECmpI: ECmpI =0 –禁能比较器中断.
ECmpI =1 –使能比较器中断(包括比较器 0 及比较器 1).
ERTC: ERTC =0 –禁能实时时钟中断.
ERTC =1 –使能实时时钟中断(包括周期性中断及示警中断).
ES1: ES1=0 –禁能串行口 1 中断.
ES1=1 –使能串行口 1 中断.
Interrupt request register(IRCON)
Mnemonic: IRCON
7
6
5
EXF2
TF2
IICIF
4
LVIIF
3
KBIIF
2
ADCIF
1
SPIIF
Address: C0h
0
Reset
PWMIF
00H
2
CmpIF
1
RTCIF
Address: 97h
0
Reset
00H
EXF2: 定时器 2 重载中断旗标位.必须由软件清零.
TF2: 定时器 2 中断旗标位.必须由软件清零.
IICIF: IIC 中断旗标位.
LVIIF: 低压中断旗标位
KBIIF: KBI 中断旗标位
ADCIF: A/D 转换中断旗标位
SPIIF: SPI 中断旗标位
PWMIF: PWM 中断旗标位.必须由软件清零.
Interrupt request register 2(IRCON2)
Mnemonic: IRCON2
7
6
5
-
4
-
3
-
RTCIF 实时时钟中断旗标位(包括周期性中断及示警中断).
当实时时钟中断使能时,此旗标位将于程序至中断向量执行时自动清零.
当实时时钟中断禁能时,此旗标位可由软件清零
CmpIF 比较器中断旗标位,
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
53
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
当比较器中断使能时,此旗标位将于程序至中断向量执行时自动清零.
当比较器中断禁能时,此旗标位可由软件清零
11.1. 优先权配置
所有中断来源相组合于以下组中:
Table 11-2: Priority level groups
Groups
串行口 1 中断
实时时钟中断
比较器中断
-
外部中断 0
定时器 0 中断
外部中断 1
定时器 1 中断
串行口 0 中断
定时器 2 中断
PWM 中断
SPI 中断
ADC 中断
KBI中断
低压中断
IIC中断
通过对SFRs中的IP0或IP1置位或清零,每一组中断都可被独自编程为四个优先级中的一个,如要求相同的优先级被同时接
收,一内部顺序将依次确定哪个请求被优先服务.
Mnemonic: IP0
7
6
-
5
IP0.5
4
IP0.4
3
IP0.3
2
IP0.2
1
IP0.1
Address: A9h
0
Reset
IP0.0
00h
Mnemonic: IP1
7
6
-
5
IP1.5
4
IP1.4
3
IP1.3
2
IP1.2
1
IP1.1
Address: B9h
0
Reset
IP1.0
00h
Table 11-3: Priority levels
IP1.x
IP0.x
优先权层级
0
0
1
1
Bit
IP1.0, IP0.0
IP1.1, IP0.1
IP1.2, IP0.2
IP1.3, IP0.3
IP1.4, IP0.4
IP1.5, IP0.5
外部中断 0
定时器 0 中断
外部中断 1
定时器 1 中断
串行口 0 中断
定时器 2 中断
0
1
0
1
Level0 (最低)
Level1
Level2
Level3 (最高)
Table 11-4: Groups of priority
Group
串行口 1 中断
实时时钟中断
比较器中断
-
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
54
PWM 中断
SPI 中断
ADC 中断
KBI中断
低压中断
IIC中断
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Table 11-5: Polling sequence
Interrupt source
Sequence
外部中断0
串行口1中断
PWM中断
实时时钟中断
SPI中断
外部中断1
比较器中断
ADC中断
定时器1中断
Polling sequence
定时器0中断
KBI中断
串行口0中断
低压中断
定时器2中断
IIC中断
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
55
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
12. 电源管理单元
电源管理单元提供两种电源管理模式,即IDLE(待机/空闲)和STOP(停止),并为用户提供省电功能。
Mnemonic: PCON
7
6
SMOD MDUF
5
-
4
-
3
-
2
-
1
STOP
Address: 87h
0
Reset
IDLE
40h
STOP: STOP 模式控制位。设置此位将运行 STOP 模式,
STOP 位总是读为 0.
IDLE: IDIE 模式控制位。设置此位将运行 IDLE 模式,
IDLE 位总是读为 0
12.1. 待机模式(空闲模式)
使用IDLE(待机模式(空闲模式))模式可通过对PCON寄存器的IDLE位置位。空闲模式停止MCU的时钟源,但外部的时钟
源依旧保持,由于此时CPU不工作,电源功耗将被降低。当任何一中断信号或者一复位信号时,CPU将退出待机模式(空
闲模式)。
12.2. 停止模式
使用STOP(停止模式)模式可通过对PCON寄存器的STOP位置位。在此模式中,所有的中断源将全部被关闭,CPU将从
一个无时钟的中断(外部中断0/1, 键盘接口中断,低压中断及RTC)或者一个重置(看门狗及低压重置)条件下退出该模式,
内部产生的中断(定时器,串行端口... ),由于它们需要时钟源而会没有任何动作。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
56
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
13. 脉宽调制器(PWM)
SM59R16A5提供四个通道的PWM输出.
中断值为43h.
Mnemonic
Description
Direct
Bit 7
Bit 6
Bit 5
Bit 4
P4SPI
P4UR
1
Bit 3
Bit 2
Bit 1
Bit 0
RESET
AUX
PWMC
PWMD0H
PWMD0L
PWMD1H
PWMD1L
PWMD2H
PWMD2L
PWMD3H
PWMD3L
PWMMDH
PWMMDL
Auxiliary register
PWM Control
register
PWM 0 Data
register high byte
PWM 0 Data
register low byte
PWM 1 Data
register high byte
PWM 1 Data
register low byte
PWM 2 Data
register high byte
PWM 2 Data
register low byte
PWM 3 Data
register high byte
PWM 3 Data
register low byte
PWM Max Data
register high byte
PWM Max Data
register low byte
91h
BRGS
B5h
-
PWMCS[2:0]
BCh
PWMP0
-
-
BDh
P2PW
DPS
M
PWM3E PWM2E PWM1E PWM0E
N
N
N
N
P4IIC
-
-
P0KBI
-
PWMD0[9:8]
PWMD0[7:0]
BEh
PWMP1
-
-
BFh
-
-
PWMP2
-
-
B2h
-
-
-
PWMD1[9:8]
PWMP3
-
-
B4h
-
-
-
PWMD2[9:8]
-
-
-
CFh
-
-
-
PWMD3[9:8]
4
P4UR1
3
P4IIC
2
P0KBI
1
P2PWM
-
PWMMD[9:8]
5
4
-
Address: 91h
0
Reset
DPS
00H
Address: B5h
3
2
1
0
Reset
PWM3EN PWM2EN PWM1EN PWM0EN 00H
PWMCS[2:0]: PWM 时钟源选择.
PWMCS [2:0]
Mode
000
Fosc
001
Fosc/2
010
Fosc/4
011
Fosc/6
100
Fosc/8
101
Fosc/12
110
Timer 0 overflow
111
Timer 0 external input (P3.4/T0)
PWM3EN: PWM 通道 3 使能位.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
57
00H
00H
FFH
P2PWM : P2PWM = 0 – PWM 功能于 P4[3:0].
P2PWM = 1 – PWM 功能于 P2[7:4].
Mnemonic: PWMC
7
6
PWMCS[2:0]
00H
00H
PWMMD[7:0]
Mnemonic: AUX
7
6
5
BRGS
P4SPI
00H
00H
PWMD3[7:0]
CEh
00H
00H
PWMD2[7:0]
B3h
00H
00H
PWMD1[7:0]
B1h
00H
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
PWM3EN = 1 – PWM 通道 3 使能.
PWM3EN = 0 – PWM 通道 3 禁能.
PWM2EN: PWM 通道 2 使能位.
PWM2EN = 1 – PWM 通道 2 使能.
PWM2EN = 0 – PWM 通道 2 禁能.
PWM1EN: PWM 通道 1 使能位.
PWM1EN = 1 – PWM 通道 1 使能.
PWM1EN = 0 – PWM 通道 1 禁能.
PWM0EN: PWM 通道 0 使能位.
PWM0EN = 1 – PWM 通道 0 使能.
PWM0EN = 0 – PWM 通道 0 使能.
Mnemonic: PWMD0H
7
6
5
PWMP0
Mnemonic: PWMD0L
7
6
5
4
-
3
-
4
3
PWMD0[7:0]
2
-
2
Address: BCh
1
0
Reset
PWMD0[9:8]
00H
1
Address: BDh
0
Reset
00h
PWMP0: PWM 通道 0 空闲极性选择.
“0” – PWM 通道 0 于空闲时置低.
“1” – PWM 通道 0 于空闲时置高.
PWMD0[9:0]: PWM 通道 0 数值寄存器.
Mnemonic: PWMD1H
7
6
5
PWMP1
Mnemonic: PWMD1L
7
6
5
4
-
3
-
4
3
PWMD1[7:0]
2
-
2
Address: BEh
1
0
Reset
PWMD1[9:8]
00H
1
Address: BFh
0
Reset
00H
PWMP1: PWM通道1空闲极性选择.
“0” – PWM 通道 1 于空闲时置低.
“1” – PWM 通道 1 于空闲时置高.
PWMD1[9:0]: PWM 通道 1 数值寄存器.
Mnemonic: PWMD2H
7
6
5
PWMP2
Mnemonic: PWMD2L
7
6
5
4
-
3
-
4
3
PWMD2[7:0]
2
-
2
Address: B1h
1
0
Reset
PWMD2[9:8]
00H
1
Address: B2h
0
Reset
00H
PWMP2: PWM 通道2空闲极性选择.
“0” – PWM 通道 2 于空闲时置低.
“1” – PWM 通道 2 于空闲时置高.
PWMD2[9:0]: PWM 通道 2 数值寄存器.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
58
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: PWMD3H
7
6
5
PWMP3
Mnemonic: PWMD3L
7
6
5
4
-
3
-
4
3
PWMD3[7:0]
2
-
2
Address: B3h
1
0
Reset
PWMD3[9:8]
00H
1
Address: B4h
0
Reset
00H
PWMP3: PWM 通道3空闲极性选择.
“0” – PWM 通道 3 于空闲时置低.
“1” – PWM 通道 3 于空闲时置高.
PWMD3[9:0]: PWM 通道 3 数值寄存器.
Mnemonic: PWMMDH
7
6
5
Mnemonic: PWMMDL
7
6
5
4
-
3
-
4
3
PWMMD[7:0]
2
-
2
Address: CEh
1
0
Reset
PWMMD[9:8]
00H
1
Address: CFh
0
Reset
FFH
PWMMD[9:0]: PWM 最大数值寄存器.
PWM 从 0000h 计数至最大数值寄存器 PWMMD[9:0].当 PWM 计数至与最大数值寄存
器数值相等时 PWMMD[9:0]产生溢出.
PWMPx = 0 & PWMDx = 00h
PWMx
Low
PWMPx = 0 & PWMDx ≠ 00h
PWMx
PWMPx = 1 & PWMDx = 00h
PWMx
High
PWMPx = 1 & PWMDx ≠ 00h
PWMx
PWMMD + 1
PWM clock
PWMDx
Leader pulse =
PWM clock
PWM period =
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
59
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
14. IIC 功能
这些IIC模块使用SCL
(时钟)和SDA
(数据)
线来联系其他的IIC界面, 其速度可以由软件设置特殊寄存器(SFR)
中的IICBR[2:
0] ,从而使其高达到400KBpS(最大值). IIC模块可以是主机也可以是从机,,提供两个中断(RXIF,TXIF),并有两个
地址以作数据传输,它将产生开始,在主机模式中,反复启动和停止信号,在从机模式中,它将检测开始,反复启动和停
止信号, 最大沟通的长度及连接设备的数目被一个最大400pF 的电容所限制。
中断值为 6Bh.
Mnemonic
AUX
IICCTL
IICS
IICA1
IICA2
IICRWD
IICS2
Description
Auxiliary register
IIC control
register
IIC status register
IIC Address 1
register
IIC Address 2
register
IIC Read/Write
register
IIC status2
register
Direct
Bit 7
91h
BRGS
F9h
IICEN
F8h
MStart
Bit 6
Bit 5
IIC function
-
RXIF
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
P4SPI
P4UR
1
P4IIC
P0KBI
P2PW
M
DPS
00H
MSS
MAS
RStart
TXIF
RDR
TDR
FAh
IICA1[7:1]
FBh
IICA2[7:1]
FCh
FDh
Mnemonic: AUX
7
6
5
BRGS
P4SPI
RXAK
IICBR[2:0]
04H
TXAK
00H
RW
MATCH1
or RW1
MATCH2
or RW2
IICRWD[7:0]
-
-
4
P4UR1
-
-
AB_EN
3
P4IIC
2
P0KBI
1
P2PWM
3
RStart
2
A0H
60H
00H
BF_E
N
AB_F
BF
00H
Address: 91h
0
Reset
DPS
00H
P4IIC: P4IIC = 0 – IIC 功能于 P1[7:6].
P4IIC = 1 – IIC 功能于 P4[1:0].
Mnemonic: IICCTL
7
6
5
IICEN
MSS
4
MAS
1
IICBR[2:0]
Address: F9h
0
Reset
04h
IICEN: IIC 模式使能
ICEN = 1,使能
IICEN = 0,禁止
MSS: 主\从机模式选择
MSS = 1, 选择主机模式
MSS = 0, 选择从机模式
软件必须在设置其他寄存器之前置位
MAS: 主模式的地址选择(仅在主机模式中)
MAS = 0,使用IICA1
MAS = 1,使用 IICA2
RStart: 重启控制位(仅在主机模式中)
当该位被置位时,模块将产生一个启动条件到 SDA 和 SCL 线路(在当前 ACK 之后),并发送
存储在 IICA1 或者 IICA2 中的呼叫地址(由 MAS 控制位选择),在地址发送出去后,此位将由硬
件清除
IICBR[2:0]: 波特率选择(仅在主机模式)这里的Fosc 为外部晶体或振荡器的频率,系统默认为Fosc/512
以便用户选择
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
60
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
IICBR[2:0]
000
001
010
011
100
101
110
111
Mnemonic: IICS
7
6
MStart
RxIF
5
TxIF
Baud rate
Fosc/32
Fosc/64
Fosc/128
Fosc/256
Fosc/512
Fosc/1024
Fosc/2048
Fosc/4096
4
RDR
3
TDR
2
RxAK
1
TxAK
Address: F8h
0
Reset
RW
00h
MStart: 主机起始控制位(仅在主模式中有效)
如该位被置位时,模块将产生一个启动条件到SDA 和SCL 线,并发送存储在IICA1 或者
IICA2 中的呼叫地址(由MAS 控制位选择)。在软件清除该位后,该模式将产生一个终止
条件至SDA 和SCL。
RxIF: 数据接收中断标志位
在IICRWD(IIC 读写数据缓存)载入一个新的接收数据时被置位;软件清零该位后,IIC 中
断标志位(IICIF)将自动清零。
TxIF: 数据传输中断标志位
当所有位于转换寄存器中的位数据被传输时,该位被置位,来自IICRWD(IIC 读/写数据缓
存)的8位数据被下载至转换寄存器中;软件清零该位后,IIC 中断标志位(IICIF)将自动
清零。.
RDR: 数据传输中断标志位
当新的字节被接收并存储在IICRWD 时,该位将由硬件置位,在获取来自IICRWD 中的
数据之后,该位将被软件清零。只有当该位被清除时,IIC 模筷才可写如新的数据至
IICRWD中。
TDR: 读取数据准备位
当数据进入IICRWD 传输之后,该位需软件置位来通知IIC 模块数据发送出去。在IIC 模
块完成来自IICRWD 的数据发送后,该位将自动被清除。
RxAK: 接收确认位. 置零,这意味着一个确认信号已经收到在完成8位数据传输总线上后.
TxAK: 传输确认位. 当收到完整的8位数据, 此位将设置(NoAck) 或清除(Ack) 并传输到主机显
示接收状态. 事实上, 它是被作为一个字节的传输在第9位如Fig. 14-1.
RW: 从机模式的读取(接收)或写(传输) 在IIC总线. 当此位被清除, 表示从机模式在IIC总线接
收数据.(只从机模式)
th
Fig. 14-1: Acknowledgement bit in the 9 bit of a byte transmission
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
61
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: IICA1
7
6
5
4
3
2
1
IICA1[7:1]
R/W
Address: FAH
0
Reset
Match1 or
A0H
RW1
R or R/W
Slave mode:
IICA1[7:1]: IIC 地址寄存器
这是为从机模式的第一个 7-bit 的地址,它在一个地址(来自主机模式)接收后被检测
Match1: 当 IICA1 和来自主机模式方的接收地址匹配时,该位将被硬件置位,当 IIC 总线讀或寫第一筆資料
時,该位将被自动清除。
Master mode:
IICA1[7:1]: IIC 地址寄存器
显示要与它通讯的从机的 7 位地址
RW1: 如模块被设置为 Mstart 或 Rstart bit,该位将被作为从机方的 RW 发送,它在 IIC 地址之后的抵 8th
位显示,如表 14-2。它用来告诉从属模式中将来的通信的方向。如设置为 1,模块在主模式中为接
收方,如是 0,模块在主模式中为传输方。
th
Fig. 14-2: RW bit in the 8 bit after IIC address
Mnemonic: IICA2
7
6
5
4
IICA2[7:1]
R/W
3
2
1
Address: FBh
0
Reset
Match2 or RW2
60h
R or R/W
Slave mode:
IICA2[7:1]: IIC 地址寄存器
这是为从机模式的第二个 7-bit 的地址, 它在一个地址(来自主机模式)接收后被检测
Match2: 当 IICA2 和来自主机模式方的接收地址匹配时,该位将被硬件置位,当 IIC 总线讀或寫第一筆資料
時,该位将被自动清除。
Master mode:
IICA2[7:1]: IIC 地址寄存器
显示要与它通讯的从机的 7 位地址
RW2: 如模块被设置为 Mstart 或者 Rstart bit,该位将被作为从机方的 RW 发送,它用来告诉从机模式中
将来的通信的方向。如设置为 1,模块在主模式中为接收方,如是 0,模块在主模式中为传输方。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
62
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: IICRWD
7
6
5
4
3
IICRWD[7:0]
2
1
Address: FCh
0
Reset
00h
IICRWD[7:0]: IIC 读写缓存
在接收(读)模式中,接收的字节存储于此
在传输模式中,该字节通过该 SDA 被转换
Mnemonic: IICS2
7
6
-
5
-
4
-
3
AB_EN
2
BF_EN
1
AB_F
Address: FDH
0
Reset
BF
00H
AB_EN: 仲裁失去了使能位. (仅主机模式)
当AB_EN位使能, 硬件将检查仲裁丢失位.一旦发生丢失仲裁, 硬件将返回到空闲状态.
如果此位被清除, 硬件也不会理会仲裁丢失情况.当多主机与从机连接时需设置此位.于单
主机与从机时清除此位.
BF_EN: 总线忙碌使能位. (仅主机模式)
当BF_EN位使能,硬件将不会产生开始信号至总在线直到BF已置低.此位若被清零将永远
产生开始信号至总线当MStart置高.当多主机与从机连接时需设置此位.于单主机与从机时
清除此位.
AB_F: 仲裁丢失位. (仅主机模式)
于多主机状态, 当送出”1”但回应”0”时,总线发生丢失仲裁此位将被置高.在重送资料前软
件需清除此位及需直到检查BF已置低.
BF: 总线忙碌位. (仅主机模式)
当SCL或SDA或总线发出开始信号,此位将被置高.当检查到停止信号一段时间(约4.7us),
此位将被清零. 此位可由软件清零以回到就绪状态
.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
63
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
15. SPI功能
串行外围接口(SPI)是一个同步串行接口,允许主机和从机沟通.
中断向量为4Bh.
SPI 使用4个信号
SPI_MOSI: 在主机模式中数据输出,在从机模式中数据输入。
SPI_MISO: 在主模式中数据输入,在从机模式中数据输出,
SPI_SCK: 从机模式时钟输出,以上数据与同步
SPI_SS: 从机模式中输入.
从机设备检测该信号来判断是否被主模式选择。
在主机模式中,它可选择所需的从机设备的任何IO的值为零。如15-1下图所示的一个例子将显示主机与从机的4路信号之间
的关系
Master
Slave 2
Slave 1
MOSI
MISO
CLK
IO
IO
MOSI
MISO
CLK
MOSI
MISO
CLK
SS
SS
Fig. 15-1: SPI signals between master and slave devices
这仅是单通道SPI的界面,SPI
Mnemonic
Description
SFRs 如下所示:
Direct
Bit 7
Bit 6
Bit 5
SPI function
AUX
Auxiliary register
91h
BRGS
SPIC1
SPI 控制寄存器 1
F1h
SPIEN SPIMSS
控制寄存器 2
状态寄存器
传输数据缓冲
接收数据缓冲
F2h
F5h
F3h
F4h
SPIC2
SPIS
SPITXD
SPIRXD
SPI
SPI
SPI
SPI
-
P4SPI
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
P4UR
1
P4IIC
P0KBI
P2PW
M
DPS
00H
SPISS
SPICKP SPICKE
SPIBR[2:0]
P
SPIFD
TBC[2:0]
RBC[2:0]
SPIMLS SPIOV SPITXIF SPITDR SPIRXIF SPIRDR SPIRS
SPITXD[7:0]
SPIRXD[7:0]
Mnemonic: AUX
7
6
5
BRGS
P4SPI
4
P4UR1
3
P4IIC
2
P0KBI
1
P2PWM
Address: 91h
0
Reset
DPS
00H
P4SPI: P4SPI = 0 – SPI 功能于 P1[7:4].
P4SPI = 1 – SPI 功能于 P4[3:0].
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
64
Ver.H
SM59R16A5
04/2015
08H
00H
40H
00H
00H
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: SPIC1
7
6
SPIEN SPIMSS
5
SPISSP
4
SPICKP
3
SPICKE
2
Address: F1h
1
0
Reset
SPIBR[2:0]
08h
SPIEN: SPI 模式使能位. “1” SPI 功能使能. “0” SPI 功能禁止.
SPIMSS: 主/从机模式选择位
“1” 主机模式.
“0” 从机模式.
SPISSP: 从机选择的极性(仅从机模式有效)
“1” -高电平动作.
“0” -低电平动作.
SPICKP: 时钟空闲极性
“1” –空闲时 SCK 为高电平. Ex :
“0” -空闲时 SCK 为低电平. Ex :
SPICKE: 时钟采样相位选择位.
“1” –数据锁存在上升沿
“0” –数据锁存在下降沿.
*为确保数据锁存的稳定性,SM59R16A5 产生的输出数据,无论对方可锁存稳定的数据是在上升沿
或下降沿,都将作为考虑在以下示例中.
sufficient set-up time
sufficient hold time
SPIBR[2:0]: SPI 速率选择位(仅主机模式有效)
,这里的 Fosc 为外部时钟或振荡器的频率
SPIBR[2:0] Baud rate
0:0:0
Fosc/4
0:0:1
Fosc/8
0:1:0
Fosc/16
0:1:1
Fosc/32
1:0:0
Fosc/64
1:0:1
Fosc/128
1:1:0
Fosc/256
1:1:1
Fosc/512
Mnemonic: SPIC2
7
6
5
SPIFD
TBC[2:0]
4
3
-
2
1
RBC[2:0]
Address: F2h
0
Reset
00h
SPIFD: 全双工通信模式使能位.
“1” : 使能全双工模式.
“0” : 禁止全双工模式.
当此位被置位时,TBC[2;0]和 RBC[2;0]将被重置并归零。也就是说,只有 8 位数据通讯在全双工模
式中被允许,当主机模式通过 MOSI 线传输数据到从机模式中,意味着带有数据输入和输出的全双
工模式在同样的 SCK 时钟中是同步的,如下所示.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
65
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Input Shift register
SPIRXD
Output Shift register
SPITXD
Clock Generator
MISO
MISO
MOSI
MOSI
SCK
SCK
Output Shift register
SPITXD
Input Shift register
SPIRXD
SyncMos Slave
SyncMos Master
TBC[2:0]: SPI 发送数据位,这里 1-8 位数据除了在全双工模式中是被允许的
TBC[2:0]
Bit counter
0:0:0
8 bits output
0:0:1
1 bit output
0:1:0
2 bits output
0:1:1
3 bits output
1:0:0
4 bits output
1:0:1
5 bits output
1:1:0
6 bits output
1:1:1
7 bits output
RBC[2:0]: SPI 接收数据位,这里 1-8 位数据除了在全双工模式中是被允许的
RBC[2:0]
Bit counter
0:0:0
8 bits input
0:0:1
1 bit input
0:1:0
2 bits input
0:1:1
3 bits input
1:0:0
4 bits input
1:0:1
5 bits input
1:1:0
6 bits input
1:1:1
7 bits input
Mnemonic: SPIS
7
6
5
SPIMLS SPIOV
4
SPITXIF
3
SPITDR
2
SPIRXIF
1
SPIRDR
Address: F5h
0
Reset
SPIRS
40h
SPIMLS: MSB 或者 LSB 输入/输出优先
“1” : MSB 输入/输出优先
“0” : LSB 输入/输出优先
SPIOV: 溢出标志位
当 SPIRDR 被置位(SPIRXR 中的一个字节,但未被移除)且下一数据也进入时(这里不具备锁存
功能)
,该标志将被设置并导致在 SPIRXD 接收的数据被溢出毁坏,当 SPIRDR 被清除时,它也被
硬件清除。
SPITXIF: 传输中断标志
当 SPITXD 寄存器的数据被下载到转换寄存器时,该位被置位
SPITDR: 传输数据就绪位
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
66
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
当 MCU 结束对 SPITXD 寄存器读写数据时,MCU 须将改位置位,以通知 SPI 模块发送数据。在
SPI 模块完成从 SPITXD 或 SPITXD 发送数据到下载到转换寄存器后,该位将自动被清除。
SPIRXIF: 接受中断标志位
在 SPIRXD 被装载一个新的接收数据后,该位被置位
SPIRDR: 接收数据就绪位
当一字节被接收时,SPIRDR 被设为一个标志去通知 MCU。在获取来自 SPIRXD 寄存器的数据后,
MCU 须清除该位。如 SPI 模块向传输方写入新的数据至 SPIRXD 中且在该位清零之前,该数据将
随后被覆盖。
SPIRS: 接收起始位
该位被置位以此通知 SPI 模块来接收位于 SPIRXD 寄存器中的数据
Mnemonic: SPITXD
7
6
5
4
3
SPITXD[7:0]
2
1
0
Address: F3h
Reset
00h
SPITXD[7:0]: 传输数据缓冲
Mnemonic: SPIRXD
7
6
5
4
3
SPIRXD[7:0]
2
1
Address: F4h
0
Reset
00h
SPIRXD[7:0]: 接收数据缓冲.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
67
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
16. KBI –键盘接口
键盘接口(KBI) 可被连接一个 8 x n 矩阵键盘或任何普通的设备. 具有8路输入高或低的可编程的中断能力. 该8路接口既
可通过P2口或P0口做输入,又可通过外部中断从IDLE和STOP模式中退出. 且输出相互彼此独立,但共享同一中断向量5Bh.
Input
circuitry
Input
circuitry
Input
circuitry
Input
circuitry
Input
circuitry
Input
circuitry
Input
circuitry
Input
circuitry
KBI0
KBI1
KBI2
KBI3
KBI4
KBI5
KBI6
KBI7
OR
KBIIF: KBI interrupt flag
IEKBI: KBI interrupt enable
Figure 16.1 keyboard interface block diagram
250KHz
0
KBIx
De-bounce
KBF.x
1
KBD[1:0]
KBLS.x
KBE.x
Figure 16.2 keyboard input circuitry
Mnemonic
AUX
KBLS
KBE
KBF
KBD
Description
Auxiliary register
KBI level
selection
KBI input enable
KBI flag
KBI De-bounce
control register
Direct
Bit 7
91h
BRGS
-
93h
KBLS7
94h
95h
96h
Mnemonic: AUX
7
6
5
BRGS
P4SPI
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
P4SPI
P4UR
1
P4IIC
P0KBI
P2PW
M
DPS
00H
KBLS6
KBLS5
KBLS4
KBLS3
KBLS2
KBLS1
KBLS0
00H
KBE7
KBF7
KBE6
KBF6
KBE5
KBF5
KBE4
KBF4
KBE3
KBF3
KBE2
KBF2
KBE1
KBF1
KBE0
KBF0
00H
00H
KBDEN
-
-
-
-
-
KBD1
KBD0
00H
3
P4IIC
2
P0KBI
4
P4UR1
Bit 6
Bit 5
KBI function
1
P2PWM
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
68
Address: 91h
0
Reset
DPS
00H
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
P0KBI: P0KBI = 0 – KBI 功能在 P2.
P0KBI = 1 – KBI 功能在 P0.
Mnemonic: KBLS
7
6
KBLS.7
KBLS.6
5
KBLS.5
4
KBLS.4
3
KBLS.3
2
KBLS.2
1
KBLS.1
Address: 93h
0
Reset
KBLS.0
00h
3
KBE.3
2
KBE.2
1
KBE.1
Address: 94h
0
Reset
KBE.0
00h
KBLS.7: KBI7 电位选择位
0 : 使能 KBI7 低电平检测.
1 : 使能 KBI7 高电平检测.
KBLS.6: KBI6 电位选择位
0 : 使能 KBI6 低电平检测.
1 : 使能 KBI6 高电平检测.
KBLS.5: KBI5 电位选择位
0 : 使能 KBI5 低电平检测.
1 : 使能 KBI5 高电平检测.
KBLS.4: KBI4 电位选择位
0 : 使能 KBI4 低电平检测.
1 : 使能 KBI4 高电平检测.
KBLS.3: KBI3 电位选择位
0 : 使能 KBI3 低电平检测.
1 : 使能 KBI3 高电平检测.
KBLS.2: KBI2 电位选择位
0 : 使能 KBI2 低电平检测.
1 : 使能 KBI2 高电平检测.
KBLS.1: KBI1 电位选择位
0 : 使能 KBI1 低电平检测.
1 : 使能 KBI1 高电平检测.
KBLS.0: KBI0 电位选择位
0 : 使能 KBI0 低电平检测.
1 : 使能 KBI0 高电平检测.
Mnemonic: KBE
7
6
KBE.7
KBE.6
5
KBE.5
4
KBE.4
KBE.7: KBI7 使能位
0 : 使能标准 I/O 口.
1 : 使能 KBF 寄存器中的 KBF.7 位产生一中断请求.
KBE.6: KBI6 使能位
0 : 使能标准 I/O 口.
1 : 使能 KBF 寄存器中的 KBF.6 位产生一中断请求.
KBE.5: KBI5 使能位
0 : 使能标准 I/O 口.
1 : 使能 KBF 寄存器中的 KBF.5 位产生一中断请求.
KBE.4: KBI4 使能位
0 : 使能标准 I/O 口.
1 : 使能 KBF 寄存器中的 KBF.4 位产生一中断请求.
KBE.3: KBI3 使能位
0 : 使能标准 I/O 口.
1 : 使能 KBF 寄存器中的 KBF.3 位产生一中断请求.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
69
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
KBE.2: KBI2 使能位
0 : 使能标准 I/O 口.
1 : 使能 KBF 寄存器中的 KBF.2 位产生一中断请求.
KBE.1: KBI1 使能位
0 : 使能标准 I/O 口.
1 : 使能 KBF 寄存器中的 KBF.1 位产生一中断请求.
KBE.0: KBI0 使能位
0 : 使能标准 I/O 口.
1 : 使能 KBF 寄存器中的 KBF.0 位产生一中断请求.
Mnemonic: KBF
7
6
KBF.7
KBF.6
5
KBF.5
4
KBF.4
3
KBF.3
2
KBF.2
1
KBF.1
Address: 95h
0
Reset
KBF.0
00h
KBF.7: KBI7 标志位
当 KBI7 检测到一编程水平线时,该位由硬件置位.
如 KBE.7 同样被置位时将产生一个 KBI 中断请求,该位须软件清零.
KBF.6: KBI6 标志位
当 KBI6 检测到一编程水平线时,该位由硬件置位.
如 KBE.6 同样被置位时将产生一个 KBI 中断请求,该位须软件清零.
KBF.5: KBI5 标志位
当 KBI5 检测到一编程水平线时,该位由硬件置位.
如 KBE.5 同样被置位时将产生一个 KBI 中断请求,该位须软件清零.
KBF.4: KBI4 标志位
当 KBI4 检测到一编程水平线时,该位由硬件置位.
如 KBE.4 同样被置位时将产生一个 KBI 中断请求,该位须软件清零.
KBF.3: KBI3 标志位
当 KBI3 检测到一编程水平线时,该位由硬件置位.
如 KBE.3 同样被置位时将产生一个 KBI 中断请求,该位须软件清零.
KBF.2: KBI2 标志位
当 KBI2 检测到一编程水平线时,该位由硬件置位.
如 KBE.2 同样被置位时将产生一个 KBI 中断请求,该位须软件清零.
KBF.1: KBI1 标志位
当 KBI1 检测到一编程水平线时,该位由硬件置位.
如 KBE.1 同样被置位时将产生一个 KBI 中断请求,该位须软件清零.
KBF.0: KBI0 标志位
当 KBI0 检测到一编程水平线时,该位由硬件置位.
如 KBE.0 同样被置位时将产生一个 KBI 中断请求,该位须软件清零.
Mnemonic: KBD
7
6
KBDEN
-
5
-
4
-
3
-
2
-
1
KBD.1
Address: 96H
0
Reset
KBD.0
00H
KBDEN: KBI 去反弹使能位. 默认使能.
KBDEN = 0, 使能去反弹功能. 去反弹时间于KBD [1:0] 选择.
KBDEN = 1, 禁能去反弹功能. KBI输入口不需要去反弹机制.
KBD[1:0]: KBI 去反弹时间选择. 当 KBDEN = “0”, 默认去反弹时间为 320 ms.
KBD[1:0] = 00, 去反弹时间为 320 ms.
KBD[1:0] = 01, 去反弹时间为 160 ms.
KBD[1:0] = 10, 去反弹时间为 80 ms.
KBD[1:0] = 11, 去反弹时间为 40 ms.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
70
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
17. LVI –低压中断
中断向量为63h.
Mnemonic: LVC
7
6
5
LVI_EN
LVRXE
4
-
3
-
2
-
1
-
Address: E6h
0
Reset
20H
LVI_EN: 使能低电压中断功能.
LVI_EN = 0 : 禁能低电压检测中断功能.
LVI_EN = 1 : 使能低电压检测中断功能.
LVRXE: 使能外部低电压重置功能.
LVRXE = 0 : 禁能外部低电压重置功能.
LVRXE = 1 : 使能外部低电压重置功能.
Low Voltage Detect Level
SM59R16A5C
SM59R16A5L
LVI
3.5V
2.3V
LVRX
3.1V
2.1V
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
71
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
18. 10位模拟数字转换器(ADC)
The SM59R16A5 2提供了8通道的10位ADC. 数字输出采样的模拟信号放入ADCD[9:0]中,而ADC的中断向量则为53h.
ADC SFRs 如下所示:
Mnemonic
ADCC1
ADCC2
ADCDH
ADCDL
ADCCS
Description
Direct
ADC Control
register 1
ADC Control
register 2
ADC data high
byte
ADC data low
byte
ADC clock select
ABh
Bit 7
Bit 6
Bit 5
ADC
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
ADC7EN ADC6EN ADC5EN ADC4EN ADC3EN ADC2EN ADC1EN ADC0EN
ACh
Start
ADJUST
-
-
-
ADCCH[2:0]
00H
00H
ADh
ADCDH [7:0]
00H
AEh
ADCDL [7:0]
00H
AFh
-
-
-
ADCCS[4:0]
00H
Mnemonic: ADCC1
Address: ABh
7
6
5
4
3
2
1
0
Reset
ADC7EN ADC6EN ADC5EN ADC4EN ADC3EN ADC2EN ADC1EN ADC0EN
00H
ADC7EN: 使能 ADC 通道 7.
ADC7EN = 1 –使能 ADC 通道 7
ADC6EN: 使能 ADC 通道 6.
ADC6EN = 1 –使能 ADC 通道 6
ADC5EN: 使能 ADC 通道 5.
ADC5EN = 1 –使能 ADC 通道 5
ADC4EN: 使能 ADC 通道 4.
ADC4EN = 1 –使能 ADC 通道 4
ADC3EN: 使能 ADC 通道 3.
ADC3EN = 1 –使能 ADC 通道 3
ADC2EN: 使能 ADC 通道 2.
ADC2EN = 1 –使能 ADC 通道 2
ADC1EN: 使能 ADC 通道 1.
ADC1EN = 1 –使能 ADC 通道 1
ADC0EN: 使能 ADC 通道 0.
ADC0EN = 1 –使能 ADC 通道 0
Mnemonic: ADCC2
7
6
5
4
3
Start
ADJUST
-
-
-
2
Address: ACh
Rese
1
0
t
ADCCH[2:0]
00H
Start: 当该位被置位时,ADC 将启动转换.
ADJUST: ADC 数字输出格式调整.
ADJUST = 0: (默认)
ADC 数字输出高字节 ADCD [9:2] = ADCDH [7:0].
ADC 数字输出低字节 ADCD [1:0] = ADCDL [1:0].
ADJUST = 1:
ADC 数字输出高字节 ADCD [9:8] = ADCDH [1:0].
ADC 数字输出低字节 ADCD [7:0] = ADCDL [7:0].
ADCCH[2:0]: ADC 通道选择.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
72
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
通道
0
1
2
3
4
5
6
7
ADCCH [2:0]
000
001
010
011
100
101
110
111
ADJUST = 0:
Mnemonic: ADCDH
Address: ADh
7
6
5
4
3
2
1
0
Reset
ADCD[9] ADCD[8] ADCD[7] ADCD[6] ADCD[5] ADCD[4] ADCD[3] ADCD[2]
00H
Mnemonic: ADCDL
7
6
-
5
-
ADJUST = 1:
Mnemonic: ADCDH
7
6
-
4
-
5
-
4
-
3
-
2
-
3
-
1
ADCD[1]
2
-
Address: AEh
0
Reset
ADCD[0]
00H
Address: ADh
1
0
Reset
ADCD[9] ADCD[8]
00H
Mnemonic: ADCDL
Address: AEh
7
6
5
4
3
2
1
0
Reset
ADCD[7] ADCD[6] ADCD[5] ADCD[4] ADCD[3] ADCD[2] ADCD[1] ADCD[0]
00H
ADCD[9:0]: ADC 数字寄存器.
Mnemonic: ADCCS
7
6
-
5
-
Address: AFh
4
3
2
1
0
Reset
ADCCS[4] ADCCS[3] ADCCS[2] ADCCS[1] ADCCS[0]
00H
ADCCS[4:0]: ADC 时钟选择.
*The ADC 时钟最大为 12.5MHz.
*The ADC 转换率最大为 500KHz.
ADCCS[4:0]
ADC 时钟分频(Hz)
ADC 转换所需时钟数
00000
Fclk/2
46
00001
Fclk/4
92
00010
Fclk/6
138
00011
Fclk/8
184
00100
Fclk/10
230
00101
Fclk/12
276
00110
Fclk/14
322
00111
Fclk/16
368
01000
Fclk/18
414
01001
Fclk/20
460
01010
Fclk/22
506
01011
Fclk/24
552
01100
Fclk/26
598
01101
Fclk/28
644
01110
Fclk/30
690
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
73
Ver.H SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
Fclk/32
Fclk/34
Fclk/36
Fclk/38
Fclk/40
Fclk/42
Fclk/44
Fclk/46
Fclk/48
Fclk/50
Fclk/52
Fclk/54
Fclk/56
Fclk/58
Fclk/60
Fclk/62
Fclk/64
736
782
828
874
920
966
1012
1058
1104
1150
1196
1242
1288
1334
1380
1426
1472
Fclk
2 × ( ADCCS + 1)
ADC_Clock
ADC _ Conversion _ Rate =
23
ADC _ Clock =
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
74
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
19. 在系统编程(Internal ISP)
SM59R16A5 可通过内部硬件电路产生 flash 控制讯号.用户利用 flash 控制寄存器,flash 地址寄存器和 flash 数据寄存器在不
需要将 SM59R16A5 移出系统的情况下实现 ISP 功能. SM59R16A5 提供了可以实现 flash 编程/芯片擦除/页擦除/保护功能
的 flash 控制讯号.用户需要去设计和使用任何 SM59R16A5 可以输入数据的接口,然后利用 ISP 服务程序去实现 flash 的编
程/芯片擦除/页擦除/保护功能.
19.1. ISP 服务程序
ISP 服务程序是由用户自行开发并放置于 ISP 服务程序区的韧件. 用户可依需求决定 ISP 服务程序的大小. 另外用户需
将 ISP 服务程序刻录至 SM59R16A5 芯片中才可使用 ISP 功能.
由于 ISP 服务程序是由用户自行开发,它需包括 flash 数据寄存器的刻录及 SM59R16A5 芯片与上位机的通讯协议. 举
例来说, 使用者使用 SM59R16A5 芯片上之 UART 接口与上位机作数据之传送及接收,则 SM59R16A5 芯片上之 ISP
服务程序内需有波特率设定,为避免数据传输错误需有数据总合检查或同位检查或其他错误检查机制.
于正常动作模式或空闲模式可启动 ISP 服务程序,于停止模式则不行.
19.2. 锁定位(N)
锁定位 N 有两个功能:一是配置服务程序的大小,另一个则是通过 flash 擦除功能锁定 ISP 服务程序的空间.
ISP 服务程序地址位从$F000 到$FFFF.它可被分为 N*256 字节(N=0-16).当 N 为 0 时没有 ISP 功能.所有的 64k flash
都被用来做程序存储.当 N 为 1 时,ISP 服务程序占用 256 字节,剩余的 63,75k flash 可被用做程序存储.ISP 服务程序的
最大空间为 4kB(当 N 为 16 时).在这样的配置下,可用的程序存储空间为 60KB.
在 N 定下来后, SM59R16A5 会从上往下(从最顶端到地址$FFFF)保存 ISP 服务程序空间.ISP 服务程序的开始地址位于
$Fx00(x 为任意数字,以 N 为准,如表 19-1 所示)
锁定位 N 功能不同于 flash 保护功能,flash 擦除功能可以擦除除 ISP 服务程序空间外的所有 flash 记忆体.如 flash 没有
被保护,ISP 服务程序的内容一直可被读.如 flash 被保护,所有的 flash 程序空间包括 ISP 服务程序空间不能被读.
Table 19.1 ISP code area.
N
ISP service program address
0
No ISP service program
1
256 bytes ($FF00h ~ $FFFFh)
2
512 bytes ($FE00h ~ $FFFFh)
3
768 bytes ($FD00h ~ $FFFFh)
4
1.0 K bytes ($FC00h ~ $FFFFh)
5
1.25 K bytes ($FB00h ~ $FFFFh)
6
1.5 K bytes ($FA00h ~ $FFFFh)
7
1.75 K bytes ($F900h ~ $FFFFh)
8
2.0 K bytes ($F800h ~ $FFFFh)
9
2.25 K bytes ($F700h ~ $FFFFh)
10
2.5 K bytes ($F600h ~ $FFFFh)
11
2.75 K bytes ($F500h ~ $FFFFh)
12
3.0 K bytes ($F400h ~ $FFFFh)
13
3.25 K bytes ($F300h ~ $FFFFh)
14
3.5 K bytes ($F200h ~ $FFFFh)
15
3.75 K bytes ($F100h ~ $FFFFh)
16
4.0 K bytes ($F000h ~ $FFFFh)
ISP 服务程序配置于 N*256 byte (N= 0 ~ 16)
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
75
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
19.3. 对 ISP 服务程序编程
在锁定位 N 被设置并 ISP 服务程序被编程后,ISP 服务程序记忆体被自动的保护(锁定).锁定位 N 有它自己的编程/擦除
次数.这不同于 flash 记忆体的编程/擦除次数.因此,被锁定的 ISP 服务程序不可被 flash 擦除功能所擦除.如客户需要擦
除锁定的 ISP 服务程序,他只可以通过烧写器实现.当 SM59R16A5 在系统时,客户不可改变 ISP 服务程序.
19.4. 启动 ISP 服务程序
要启动 ISP 服务程序就是要在 ISP 服务程序的开始地址装载程序计数(PC)并执行它.有四种实现的方法:
(1) 空复位.用首地址为空的硬件复位会在 ISP 服务程序的开始地址装载 PC.硬件复位包括内部(电源或重启)
和外部重置端口复位.
(2) 执行 jump 指令可在 ISP 服务程序的开始地址装载 PC
(3) 通过硬件设置进入 ISP 服务程序.用户可通过设置当硬件复位时,P2.6,P2.7’为低’或 P4.3’为低’,
SM59R16A5 会强行进入 ISP 服务程序.硬件复位包括内部(电源或重启)和外部键盘复位.在应用系统设
计时,用户因该对 P2.6,P2.7 或 P4.3 在复位时间内防止 SM59R16A5 进入 ISP 服务程序.
(4) 通过硬件设置进入 ISP 服务程序.P3.0 在硬件复位时会侦测到 2 个时钟讯号. 硬件复位包括内部(电源
或重启)和外部键盘复位
在硬件复位周期内, 硬件可以侦测 P2.6/P2.7/P4.3/P3.0 状态.如果他们满足了上面的其中一个条件,芯片将会自动跳转
到 ISP 模式.在 ISP 服务程序被执行后,用户需要对 SM59R16A5 进行复位,通过硬件复位或 WDT,或是’JUMP’至地址
$0000 来实现重启程序.
为了用户的不同应用情况,这里有 8 种不同的进入机制.这个进入方法可以在烧路器或 ISP 中选取.
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
首地址为空例如$0000 = 0xFF. 且由内部重置信号触发.
首地址为空例如$0000 = 0xFF. 且由外部重置信号触发.
P2.6 = 0 & P2.7 = 0. 且由内部重置信号触发.
P2.6 = 0 & P2.7 = 0. 且由外部重置信号触发.
P4.3 = 0. 且由内部重置信号触发.
P4.3 = 0. 且由外部重置信号触发.
P3.0 输入 2 个时钟. 且由内部重置信号触发.
P3.0 输入 2 个时钟. 且由外部重置信号触发.
19.5. ISP 寄存器 – TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC
Mnemonic
TAKEY
IFCON
ISPFAH
ISPFAL
ISPFD
ISPFC
Description
Time Access Key
register
Interface Control
register
ISP Flash
Address - High
register
ISP Flash
Address - Low
register
ISP Flash Data
register
ISP Flash Control
register
Direct
Bit 7
Bit 6
Bit 5
ISP function
F7h
8Fh
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
TAKEY [7:0]
ITS
CDPR
-
-
00H
ALEC[1:0]
EMEN
ISPE
00H
E1h
ISPFAH [7:0]
FFH
E2h
ISPFAL [7:0]
FFH
E3h
ISPFD [7:0]
FFH
E4h
EMF1
EMF2
EMF3
EMF4
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
76
-
ISPF.2
Ver.H
ISPF.1
ISPF.0
SM59R16A5
04/2015
00H
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: TAKEY
7
6
5
4
3
TAKEY[7:0]
2
Address: F7H
0
Reset
00H
1
ISP 使能位(ISPE)默认为只读,软件必须连续的对 TAKEY 寄存器写三个特定值 55h,AAH,和 5Ah,使 ISPE 位可写.
这是:
MOV TAKEY, #55h
MOV TAKEY, #AAh
MOV TAKEY, #5Ah
Mnemonic: IFCON
7
6
ITS
CDPR
5
-
4
-
3
2
ALEC[1:0]
Address: 8FH
0
Reset
ISPE
00H
1
EMEN
位 0(ISPE) of IFCON 是 ISP 使能位,用户可通过设置 ISPE 位为 1 使能 SM59R16A5 的全部 ISP 功能,通过设置
ISPE 为 0 来禁止全部 ISP 功能.ISPE 的作用象一个加密匙.用户可禁止所有的 ISP 功能以保护软件程序不被意外
的擦除.ISP 寄存器 ISPFAH,ISPFAL,ISPFD,与 ISPFC 默认为只读.软件必须将 ISPE 位设为 1 以使上述 4 个寄存
器为可写.
Mnemonic: ISPFAH
Address: E1H
7
6
5
4
3
2
1
0
Reset
ISPFAH7 ISPFAH6 ISPFAH5 ISPFAH4 ISPFAH3 ISPFAH2 ISPFAH1 ISPFAH0
FFH
ISPFAH [7:0]: 使用ISP功能之地址高字节
Mnemonic: ISPFAL
7
6
ISPFAL7 ISPFAL6
5
ISPFAL5
4
ISPFAL4
3
ISPFAL3
2
ISPFAL2
1
ISPFAL1
Address: E2H
0
Reset
ISPFAL0
FFH
ISPFAL [7:0]: 使用ISP功能之地址低字节
ISPFAH 与 ISPFAL 提供了 16 位 flash 记忆体地址用做 ISP 功能.这个 flash 记忆体地址不应该包括 ISP 服务程
序空间地址.若 ISPFAH & ISPFAL 寄存器控制的 flash 记忆体地址覆盖了 ISP 服务程序空间的地址.这个 flash 程
序/页擦除等 ISP 功能的执行将会无效.
Mnemonic: ISPFD
7
6
ISPFD7
ISPFD6
5
ISPFD5
4
ISPFD4
3
ISPFD3
2
ISPFD2
1
ISPFD1
Address: E3H
0
Reset
ISPFD0
FFH
ISPFD [7:0]: 使用ISP功能之数值.
The ISPFD provide the 8-bit data register for ISP function.
Mnemonic: ISPFC
7
6
5
EMF1
EMF2
EMF3
4
EMF4
EMF1: 进入机制 (1) 标志位,
EMF2: 进入机制 (2) 标志位,
EMF3: 进入机制 (3) 标志位,
EMF4: 进入机制 (4) 标志位,
ISPF [2:0]: ISP功能选择位.
ISPF[2:0]
3
-
2
ISPF[2]
1
ISPF[1]
Address: E4H
0
Reset
ISPF[0]
00H
由复位信号清除. (仅读)
由复位信号清除. (仅读)
由复位信号清除. (仅读)
由复位信号清除. (仅读)
ISP function
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
77
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
000
001
010
011
100
101
110
111
闪存一页有256字节
Byte program
Chip protect
Page erase
Chip erase
Write option
Read option
Erase option
-
可设定功能选择位如内部复位时间选择(于1.4.1节描述)、时钟源来源选择 (于1.5节描述)、
P4[4:7] 功能选择(于第5章描述)、看门狗功能启动位(于第10章描述)、或 ISP 进入机制
选择(于第19章描述)。
只能读取功能选择位于芯片被加密后.
选择的 ISP 功能在软件对 ISPFC 寄存器写入数据时将会执行一次.
要实现字节编程/页擦除 ISP 功能,用户需要在开始时指定 flash 地址.在实现页擦除功能时,SM59R16A5 将除
ISPFAH 与 ISPFAL 寄存器中显示地址所在的整页.
范例. 闪存地址: $XYMN
将对地址 $XY00 to $XYFF 执行页抹除
要实现芯片擦除 ISP 功能, SM59R16A5 将擦除除 ISP 服务程序外的所有 flash 程序记忆体.要实现芯片保护 ISP
功能, SM59R16A5 flash 内容将被读为#00H.
范例:将对地址$1005H 执行字节写,写入#22H
MOV TAKEY, #55h
MOV TAKEY, #AAh
MOV TAKEY, #5Ah
MOV IFCON, #01H
MOV ISPFAH, #10H
MOV ISPFAL, #05H
MOV ISPFD, #22H
MOV ISPFC, #00H
;
;
;
;
;
;
启动 ISPE 可写入属性
启动 SM59R16A5 ISP 功能
设定闪存高字节地址,10H
设定闪存低字节地址,05H
设定将写入闪存之资料,资料= 22H
开始将写入闪存之资料#22H 写入地址$1005H
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
78
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
20. 内建实时时钟( RTC)功能
RTC的中断向量则为8Bh.
RTC SFRs 如下所示:
Mnemonic
RTCADDR
RTCDATA
Mnemonic
RTCCTRL
Description
Direct
Bit 7
Bit 6
9Eh
9Fh
-
-
RTC 地址
RTC 数据
Description
RTC 控制寄存
器
Address
00h
RTCen
-
RTC
RTC
RTC
RTC
RTC
RTC
RTC
秒寄存器
分寄存器
时寄存器
日寄存器
周寄存器
月寄存器
年寄存器
ALMWEEK
RTC
RTC
RTC
RTC
分示警
时示警
日示警
周示警
01h
02h
03h
04h
05h
06h
07h
08h
09h
10h
11h
ALMMONTH
RTC 月示警
12h
SEC
MIN
HOUR
DAY
WEEK
MONTH
YEAR
ALMMIN
ALMHOUR
ALMDAY
Mnemonic: RTCCTRL
7
6
RTCen
PeriodIF
Bit 7
Bit 6
MINen
HOURen
DAYen
WEEKen
MONTH
en
5
ALARMInten
Bit 5
RTC
-
Bit 4
Bit 3
RTCDATA[7:0]
Bit 5
Bit 4
3
PeriodIntEn
Bit 1
Bit 0
RESET
RTCADDR[3:0]
Bit 3
RTC function
Period ALARMI
ALARMIF
IF
nten
SEC[6:4]
MIN[6:4]
HOUR[5:4]
DAY[5:4]
MONTH[4]
YEAR[7:4]
ALMMIN[6:4]
ALMHOUR[5:4]
ALMDAY[5:4]
ALMMON
TH[4]
4
ALARMIF
Bit 2
Bit 2
-
Bit 0
INT_SEL[2:0]
PeriodIntEn
-
Bit 1
00H
00H
SEC[3:0]
MIN[3:0]
HOUR[3:0]
DAY[3:0]
WEEK[2:0]
MONTH[3:0]
YEAR[3:0]
ALMMIN[3:0]
ALMHOUR[3:0]
ALMDAY[3:0]
ALMWEEK[2:0]
ALMMONTH[3:0]
2
1
INT_SEL[2:0]
Ver.H
Address: 00H
0
Reset
00h
SM59R16A5
00h
00h
00h
00h
01h
06h
01h
00h
00h
00h
00h
00h
00h
RTCen: RTC 电路使能位
0: 禁能
1: 使能
PeriodIF: 周期性中断标志位
1: RTC 中断由周期性中断标志位产生.他必须由软件清零.
ALARMInten: 示警中断使能位
当示警数值与RTC数值相等时将产生示警中断.
0: 示警中断禁能
1: 示警中断使能
ALARMIF: 示警中断标志位
1: RTC 中断由示警中断产生.他必须由软件清零.
PeriodIntEn: 周期性中断使能位
0: 禁能
1: 使能
INT_SEL[2:0]: RTC 周期性中断之周期由INT_SEL[2:0]选择
000: 设定为每经过0.5秒产生周期性中断
001: 设定为每经过1秒产生周期性中断
010: 设定为每经过0.5分产生周期性中断
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
79
RESET
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
011: 设定为每经过1分产生周期性中断
100: 设定为每经过0.5小时产生周期性中断
101: 设定为每经过1小时产生周期性中断
附注: 周期性中断的计数将从RTC寄存器写入的值开始计数.
举例来说,现在时间为 3:23,我们设定INT_SEL[2:0]为0.5小时;第一个周期性中断将在
3:53产生,不是3:30。
Mnemonic: SEC
7
6
5
SEC[6:4]
4
1
Address: 01H
0
Reset
00H
1
MIN[3:0]
Address: 02H
0
Reset
00H
3
2
1
HOUR[3:0]
Address: 03H
0
Reset
00H
3
2
3
2
SEC[3:0]
SEC[6:0]: 以BCD格式显示目前秒数,区间为0~59秒.
SEC[6:4]: 此3位代表秒之十位.
SEC[3:0]: 此4位代表秒之个位.
Mnemonic: MIN
7
6
5
MIN[6:4]
4
3
2
MIN[6:0]: 以BCD格式显示目前分钟数,区间为0~59分钟.
MIN[6:4]: 此3位代表分钟之十位.
MIN[3:0]: 此4位代表分钟之个位.
Mnemonic: HOUR
7
6
5
4
HOUR[5:4]
HOUR[5:0]: 以BCD格式显示目前时数,区间为0~23小时.
HOUR[5:4]: 此2位代表时之十位.
HOUR[3:0]: 此4位代表时之个位.
Mnemonic: DAY
7
6
5
4
DAY[5:4]
Address: 04H
0
Reset
00H
1
DAY[3:0]
DAY[5:0]: 以BCD格式显示目前日期,区间为0~31日.
DAY[5:4]: 此2位代表日期之十位.
DAY[3:0]: 此4位代表日期之个位.
Mnemonic: WEEK
7
6
5
4
3
2
1
WEEK[2:0]
Address: 05H
0
Reset
00H
WEEK[2:0]: 显示目前星期.
此寄存器必须由使用者自行填入,并不会于填入年月日后自动产生.
000: 星期日
001: 星期一
010: 星期二
011: 星期三
100: 星期四
101: 星期五
110: 星期六
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
80
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: MONTH
7
6
5
4
MONTH[4]
3
Address: 06H
0
Reset
00H
2
1
MONTH[3:0]
MONTH[4:0]: 以BCD格式显示目前月份,区间为1~12月.
MONTH[4]: 此位代表月之十位.
MONTH[3:0]: 此4位代表月之个位.
Mnemonic: YEAR
7
6
5
YEAR[7:4]
4
3
2
1
YEAR[3:0]
Address: 07H
0
Reset
00H
3
2
1
ALMMIN[3:0]
Address: 08H
0
Reset
00H
YEAR[7:0]: 以BCD格式显示目前年份,区间为0~99年.
YEAR[7:4]: 此4位代表年之十位.
YAER[3:0]: 此4位代表年之个位.
Mnemonic: ALMMIN
7
6
5
MINen
ALMMIN[6:4]
4
MINen: 分示警使能位
0: 禁能; ALMMIN[6:0]填入值不需与RTC值比较,也不会产生示警中断(ALARM INT).
1: 使能; ALMMIN[6:0]填入值需与RTC值比较,并产生示警中断(ALARM INT).
ALMMIN[6:0]: 以BCD格式设定示警中断之分钟数,区间为0~59分钟.
ALMMIN[6:4]: 此3位设定示警中断分钟之十位.
ALMMIN[3:0]: 此4位设定示警中断分钟之个位.
Mnemonic: ALMHOUR
7
6
5
4
HOURen
ALMHOUR[5:4]
3
2
1
ALMHOUR[3:0]
0
Address: 09H
Reset
00H
HOURen: 时示警使能位
0: 禁能; ALMHOUR[5:0]填入值不需与RTC值比较,也不会产生示警中断(ALARM INT).
1: 使能; ALMHOUR[5:0]填入值需与RTC值比较,并产生示警中断(ALARM INT).
ALMHOUR[5:0]: 以BCD格式设定示警中断之时,区间为0~23时.
ALMHOUR[5:4]: 此2位代表示警中断时之十位.
ALMHOUR[3:0]: 此4位代表示警中断时之个位.
Mnemonic: ALMDAY
7
6
DAYen
-
5
4
ALMDAY[5:4]
3
2
1
ALMDAY[3:0]
0
Address: 10H
Reset
00H
DAYen: 日示警使能位
0: 禁能; ALMDAY[5:0]填入值不需与RTC值比较,也不会产生示警中断(ALARM INT).
1: 使能; ALMDAY[5:0]填入值需与RTC值比较,并产生示警中断(ALARM INT).
ALMDAY[5:0] 以BCD格式设定示警中断之日期,区间为0~31日.
ALMDAY[5:4]: 此2位代表示警中断日期之十位.
ALMDAY[3:0]: 此4位代表示警中断日期之个位.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
81
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Mnemonic: ALMWEEK
7
6
5
WEEKen
4
3
2
1
ALMWEEK[2:0]
0
Address: 11H
Reset
00H
WEEKen: 星期示警使能位
0: 禁能; ALMWEEK[2:0]填入值不需与RTC值比较,也不会产生示警中断(ALARM INT).
1: 使能; ALMWEEK[2:0]填入值需与RTC值比较,并产生示警中断(ALARM INT).
ALMWEEK[2:0] 示警星期设定
000: 星期日
001: 星期一
010: 星期二
011: 星期三
100: 星期四
101: 星期五
110: 星期六
Mnemonic: ALMMONTH
7
6
5
MONTHen
-
4
ALMMONTH[4]
3
2
1
ALMMONTH[3:0]
0
Address: 12H
Reset
00H
MONTHen: 月示警使能位
0: 禁能; ALMMONTH[4:0]填入值不需与RTC值比较,也不会产生示警中断(ALARM INT).
1: 使能; ALMMONTH[4:0]填入值需与RTC值比较,并产生示警中断(ALARM INT).
ALMMONTH[4:0]: 以BCD格式设定示警中断之月份,区间为1~12月.
ALMMONTH[4]: 此位代表示警中断月之十位.
ALMMONTH[3:0]: 此4位代表示警中断月之个位.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
82
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
21. 运算放大器(OPA)/比较器(Comparator)
SM59R16A5 在片内集成了两组运算放大器/比较器.当运算放大器使用时,用户可以将运算放大器的输出值接到模拟数
字转换器(ADC)接脚,以取得相对应之数字输出.当比较器使用时,比较器的非反向输入脚大于反向输入脚时,比较器输出
脚置高,反之比较器输出脚置低.
当运算放大器及比较器都被使能时,运算放大器之优先权高于比较器.
OPA/Comparator SFRs 如下所示:
Mnemonic
OpPin
Cmp0CON
Cmp1CON
Description
OpCmp Pin
Select
Comparator
_0 control
Comparator
_1 control
Addr
Bit 7
Bit 6
Bit 5
Bit 4
Op/Comparator
Bit 3
Bit 2
Bit 1
Bit 0
F6h
Op0_En
FEh
Hys0En Cmp0o
CMF0MS[1:0]
CMF0
--
--
ToADC
00h
FFh
Hys1En Cmp1o
CMF1MS[1:0]
CMF1
--
--
--
00h
Cmp0_E
Cmp1_E C1PosVB
C0PosVBG C0PosPad Op1_En
C1PosPad
n
n
G
Mnemonic: OpPin
Address: F6h
7
6
5
4
3
2
1
0
Reset
Op0_En Cmp0_En C0PosVBG C0PosPad Op1_En Cmp1_En C1PosVBG C1PosPad
00h
Op0_En : 运算放大器 0 使能位.
1: 运算放大器 0 电路使能,并自动将多功能之 I/O P2.5/P2.6/P2.7 切换到运算放大器
0 相应的信号.
Cmp0_En : 比较器 0 使能位.
1: 比较器 0 电路使能,并自动将多功能之 I/O P2.5/P2.6/P2.7 切换到比较器 0 相应的
信号..
C0PosVBG : 非反向输入端参考内部固定电压(1.23V±10%)使能位
1: 使能
C0PosPad: 非反向输入端电压参考外部输入脚电压使能位
1: 使能
Op1_En: 运算放大器 1 使能位.
1: 运算放大器 1 电路使能,并自动将多功能之 I/O P2.2/P2.3/P2.4 切换到运算放大器
1 相应的信号.
Cmp1_En : 比较器 1 使能位.
1: 比较器 1 电路使能,并自动将多功能之 I/O P2.2/P2.3/P2.4 切换到比较器 1 相应的
信号.
C1PosVBG: 非反向输入端参考内部固定电压(1.23V±10%)使能位
1: 使能
C1PosPad: 非反向输入端电压参考外部输入脚电压使能位
1: 使能
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
83
Ver.H
SM59R16A5
04/2015
RESET
00h
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
Opx_En、Cmpx_En、CxPosVBG 及 CxPosPad 设定参考表:
Opx_En
Cmpx_En
CxPosVBG
CxPosPad
OP/Comparator
0
0
0
0
GPIO
0
0
0
1
GPIO
0
0
1
0
GPIO
0
0
1
1
GPIO
0
1
0
0
不允许
0
1
0
1
比较器
0
1
1
0
比较器
0
1
1
1
比较器
1
0
0
0
不允许
1
0
0
1
运算放大器
1
0
1
0
运算放大器
1
0
1
1
不允许
1
1
0
0
不允许
1
1
0
1
运算放大器
1
1
1
0
运算放大器
1
1
1
1
不允许
Mnemonic: Cmp0CON
7
6
5
4
Hys0En Cmp0o
CMF0MS[1:0]
3
CMF0
2
--
1
--
positive input source
N/A
N/A
N/A
N/A
N/A
非反向外部输入脚电压
内部固定电压(1.23V±10%)
内部固定电压(1.23V±10%)
N/A
非反向外部输入脚电压
内部固定电压(1.23V±10%)
N/A
N/A
非反向外部输入脚电压
内部固定电压(1.23V±10%)
N/A
Address:FEh
0
Reset
ToADC
00h
Hys0En: 比较器 0 迟滞功能使能位
0: 禁能
1: 使能
Cmp0o: 比较器 0 结果输出位(仅读)
1: 非反向输入端电压高于反向输入端电压
0: 反向输入端电压高于非反向输入端电压
CMF0MS[1:0] : 选择比较器 0 旗标(CMF0)产生之模式
00: 比较器 0 旗标(CMF0)于比较器 0 输出转换时被置高
01: 比较器 0 旗标(CMF0)于比较器 0 输出为上升沿时被置高
10: 比较器 0 旗标(CMF0)于比较器 0 输出为下降沿时被置高
11: 无动作
CMF0: 比较器 0 旗标位
此位依 CMF0MS[1:0]之选择模式条件符合时被置高.此位需由软件清零.
ToADC: 选择 ADC 输入通道为运算放大器 0 输出值之转换通道
0: ADC 之输入通道由 ADCC2 寄存器 ADCCH[2:0]选择
1: ADC 之输入通道为内建之第九信道(非 ADC 信道 0~7)
Mnemonic: Cmp1CON
7
6
5
4
Hys1En Cmp1o
CMF1MS[1:0]
3
CMF1
2
--
1
--
Address:FFh
0
Reset
-00h
Hys1En: 比较器 1 迟滞功能使能位
0: 禁能
1: 使能
Cmp1o: 比较器 1 结果输出位(仅读)
1: 非反向输入端电压高于反向输入端电压
0: 反向输入端电压高于非反向输入端电压
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
84
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
CMF1MS[1:0] : 选择比较器 1 旗标(CMF1)产生之模式
00: 比较器 1 旗标(CMF1)于比较器 1 输出转换时被置高
01: 比较器 1 旗标(CMF1)于比较器 1 输出为上升沿时被置高
10: 比较器 1 旗标(CMF1)于比较器 1 输出为下降沿时被置高
11: 无动作
CMF1: 比较器 1 旗标位
此位依 CMF1MS[1:0]之选择模式条件符合时被置高.此位需由软件清零.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
85
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
工作环境
Symbol
Description
Min.
Typ.
Max.
Unit.
Remarks
TA
Operating temperature
-40
25
85
℃
Ambient temperature under bias
VDD33
Supply voltage
2.7
3.3
3.6
V
VDD5
Supply voltage
4.5
5.0
5.5
V
DC 电气特性
TA = -40℃ to 85℃, VCC = 5.0V
Symbol
Parameter
Valid
VIL1
Input Low-voltage
Port 0,1,2,3,4,5
VIL2
Input Low-voltage
RES, XTAL1
VIH1
Input High-voltage
Port 0,1,2,3,4,5
VIH2
Input High-voltage
RES, XTAL1
VOL
Output Low-voltage
Port 0,1,2,3,4,5
Output High-voltage
(1) Port 0,1,2,3,4,5
using Strong Pull-up
VOH1
VOH2
IIL
ITL
ILI
RRST
CIO
ICC
Notes:
Output High-voltage
(2)
using Weak Pull-up
Logic 0 Input Current
Logical Transition
Current
Input Leakage Current
Reset Pull-down
Resistor
Pin Capacitance
Port 0,1,2,3,4,5
Min
Max
Units
-0.5
0.8
V
0
0.8
V
2.0
VCC + 0.5
V
70%Vcc VCC + 0.5
V
0.4
Conditions
Vcc=5V
V
IOL=4.9mA
90% VCC
V
IOH= -4.6mA
2.4
V
IOH= -250uA
75% VCC
V
IOH= -162uA
90% VCC
V
IOH= -73uA
Vcc=5V
Port 0,1,2,3,4,5
-75
uA
Vin= 0.45V
Port 0,1,2,3,4,5
-650
uA
Vin= 2.0V
Port 0,1,2,3,4,5
±10
uA
0.45V<Vin<Vcc
300
kΩ
10
pF
Freq= 1MHz, Ta= 25℃
12
mA
Active mode, 12MHz VCC =5V
25 ℃
11
mA
Idle mode, 12MHz
25 ℃
VCC =5V
5
uA
Power down mode
25 ℃
VCC =5V
RES
Power Supply Current VDD
50
1. Port in Push-Pull Output Mode
2. Port in Quasi-Bidirectional Mode
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
86
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
TA = -40℃ to 85℃, VCC = 3.3V
Symbol
Parameter
Valid
VIL1
Input Low-voltage
Port 0,1,2,3,4,5
VIL2
Input Low-voltage
RES, XTAL1
VIH1
Input High-voltage
Port 0,1,2,3,4,5
VIH2
Input High-voltage
RES, XTAL1
VOL
Output Low-voltage
Port 0,1,2,3,4,5
Output High-voltage
(1) Port 0,1,2,3,4,5
using Strong Pull-up
VOH1
VOH2
IIL
ITL
ILI
RRST
CIO
ICC
Notes:
Output High-voltage
(2)
using Weak Pull-up
Logic 0 Input Current
Logical Transition
Current
Input Leakage Current
Reset Pull-down
Resistor
Pin Capacitance
Min
Max
Units
-0.5
0.8
V
0
0.8
V
2.0
VCC + 0.5
V
70%Vcc VCC + 0.5
V
0.4
Conditions
Vcc=3.3V
V
IOL=3.2mA
90% VCC
V
IOH= -2.3mA
2.4
V
IOH= -77uA
90% VCC
V
IOH= -33uA
Vcc=3.3V
Port 0,1,2,3,4,5
Port 0,1,2,3,4,5
-75
uA
Vin= 0.45V
Port 0,1,2,3,4,5
-650
uA
Vin=1.5V
Port 0,1,2,3,4,5
±10
uA
0.45V<Vin<Vcc
300
kΩ
10
pF
Freq= 1MHz, Ta= 25℃
11
mA
Active mode ,12MHz
3.3 V 25 ℃
10
mA
Idle mode, 12MHz
25 ℃
4
uA
Power down mode VCC =3.3V
25 ℃
RES
Power Supply Current VDD
50
VCC =
VCC =3.3V
1. Port in Push-Pull Output Mode
2. Port in Quasi-Bidirectional Mode
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
87
Ver.H
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
OPA / Comparator Characteristics
VCC = 5.0V
Conditions
Symbol
Parameter
Min
Typ
Max
Unit
3
5
mV
VDD - 0.4
V
VDD =5V
VOS
Input Offset Voltage
No load
VOUT
Output Voltage Swing
RL=15KΩ
CL=100pF
VIN+ - VIN- >200mV
0.1
BW
Gain Band Width
Product
RL=10KΩ
CL=100pF
0.4
0.5
0.55
MHz
CMRR
Common Mode
Rejection Ratio
No load
65
70
72
dB
PSRR
Power Supply
Rejection Ratio
No load
75
80
84
dB
SR
Slew Rate at Unity
Gain
No load
0.57
0.7
0.78
V/us
RL
MAX. load
RL=10KΩ
CL=100pF
H
Hysteresis
No load
KΩ
>15
20
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
88
40
60
Ver.H
mV
SM59R16A5
04/2015
SM59R16A5/SM59R09A5/SM59R05A5
内嵌 64KB/36KB/20KB
具有 ISP 功能的闪存
和 2KB RAM 的 8 位控制器
VCC = 3.3V
Conditions
Symbol
Parameter
Min
Typ
Max
Unit
3
5
mV
VDD – 0.4
V
VDD =5V
VOS
Input Offset Voltage
No load
VOUT
Output Voltage Swing
RL=15KΩ
CL=100pF
VIN+ -VIN- >200mV
0.1
BW
Gain Band Width
Product
RL=10KΩ
CL=100pF
0.4
0.5
0.55
MHz
CMRR
Common Mode
Rejection Ratio
No load
60
65
68
dB
PSRR
Power Supply
Rejection Ratio
No load
60
65
68
dB
SR
Slew Rate at Unity
Gain
No load
0.57
0.7
0.78
V/us
RL
MAX. load
RL=10KΩ
CL=100pF
H
Hysteresis
No load
KΩ
>15
20
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M048
89
40
60
Ver.H
mV
SM59R16A5
04/2015