SM59R16A2/SM59R08A2 产品目录描述订货信息Features

SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
产品目录
SM59R16A2L25, SM59R16A2C25
SM59R08A2L25, SM59R08A2C25
描述
SM59R16A2/SM59R08A2 是 1T(1 时钟周期
/1 机器周期)的 8-bit 的单片机。它有专为程序而内
嵌的 64K/32k 字节的闪存(flash),并可执行完全
兼容 MCS-51 的所有 ASM51 指令。
Features
z
z
z
z
z
z
z
SM59R16A2/SM59R08A2 有 2K 的片上
SRAM,48 个 GPIOS,多串行接口以及如以下所描
述的多种外部资源,它可通过编程器进行编程,其片
上 ICE 功能为客户在开发初期提供了方便。
z
SM59R16A2/ SM59R08A2 的高性能能在短时
间内完成复杂的动作,大约有 1/3 的指令是 1T,其平
均速度是传统 8051 的 8 倍,是所有 1T 51 系列中
最快的,其良好的 EMI 和 ESD 性能对在许多应用
中都有很好的帮助。
z
z
z
z
z
z
z
z
z
z
z
z
z
订货信息
SM59R16A2(SM59R08A2)ihhkL
yymmv,
i: 工艺标志 {L = 2.7V ~ 3.6V, C = 4.5V ~ 5.5V}
hh: 工作时钟,单位为 MHz {25}
k: 封装形式后缀 {as below table}
L:无铅标志
{无文字即含铅,”P” 即无铅 }
yy: 年,
mm: 月
v: 版本标志{ , A, B,…}
Postfix
W
U
Package
64L TQFP
64L LQFP
Pin / Pad Configuration
Page 2,3
Page 2,3
z
z
z
z
z
工作电压:2.7V~3.6V 或 4.5V~5.5V
高速 1T 架构,最高可达 25MHZ
1T/2T 模式可即时选择
指令设置兼容 MCS-51
内置 OSC, 范围为 1MHz~24MHz
64K/32K 字节的片上程序存储器
外扩 RAM 地址最大可达 64K 字节,为外扩
RAM 存取用的标准 12T 接口
256 字节的标准的 8052 RAM,2K 字节的带有
使能功能的片上外扩 RAM
双 16-bit 数据指针 (DPTR0&DPTR1)
两个全双工通信的串行接口(UART0 &
UART1),
三个 16-bit 的定时器/计数器(计时器 0,1,2)
48 个通用 I/O
具有两级优先权的外部中断 0,1
可编程的看门狗定时器(WDT)
一个 IIC 接口(主/从机模式)
一个 SPI 接口(主/从机模式)
4 路脉宽调制(可选择 12-bit,10-bit,8-bit )
4 路 16bit 比较/抓捕/装载功能
4 路 10bit 模拟数字转换(ADC)
ISP/IAP 功能
EEPROM 功能
片上在线调试功能
快速乘除法器(MDU):16*16 32/16, 16/16,
32-bit L/R 转换以及标准的 32bit
P1 口可为 8 个或更多扩展外部中断的 EEI 接
口
增强用户代码保护
电源管理单元空闲及掉电模式
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
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
1
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
封装图
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
2
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
3
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
系统方框图
WR
RD
RXD0
TXD0
RXD1
TXD1
PWM0 ~ PWM3
ADC0 ~ ADC3
IIC_SCL
IIC_SDA
UART
0
SRAM
2KBytes
UART
1
PWM
ADC
SRAM
256Bytes
Flash 64KBytes
MDU
Watchdog
Interrupt
ICE
ICP
Interface control
IIC
SPI
MISO
MOSI
CLK
SS
KBI
KBI Port
Port 0
Port 0
Port 1
Port 1
Port 2
Port 2
Port 3
Port 3
Port 4
Port 4
Port 5
Port 5
Timer0/1
Timer2
& CCU
Port
Control
Port 0 ~ Port 5
T0
T1
CC0 ~ CC3
T2
T2EX
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
4
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
管脚描述
Pin
1
2
3
4
5
6
7
8
9
10
11
12
Name
P5.2
P5.3
P5.4
P5.5
P5.6
P5.7
VDDIO
VSSIO
P4.0/PWM2
P4.1/PWM3
P4.2
P4.3
I/O
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
Description
P5 口的位 2
P5 口的位 3
P5 口的位 4
P5 口的位 5
P5 口的位 6
P5 口的位 7
IO 线电源
IO 线电源地
P4 口的位 0 &宽脉调制通道 2
P4 口的位 1 &宽脉调制通道 3
P4 口的位 2
P4 口的位 3
13
P4.4/ADC0
i/o
P4 口的位 4 &模数转换通道 0
14
15
16
17
18
19
20
21
22
23
24
25
26
P4.5/ADC1
P4.6/ADC2
P4.7/ADC3
XTAL1
XTAL2
NC
P1.7/IIC_SDA
P1.6/IIC_SCL
P1.5/PWM1/CC1
P1.4/PWM0/CC0
AVDD
AVDD3V
AVSS
i/o
i/o
i/o
i
o
i
i/o
i/o
i/o
i/o
27
P1.3/TXD1/CC3/SPI_MOSI
i/o
28
P1.2/RXD1/CC2/SPI_MISO
i/o
29
P1.1/T2EX/SPI_CLK
i/o
30
P1.0/T2/SPI_SS
i/o
31
32
33
34
35
36
37
38
P2.7/A15
P2.6/A14
P2.5/A13
P2.4/A12
P2.3/A11
P2.2/A10
P2.1/A9
P2.0/A8
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
P4 口的位 5 &模数转换通道 1
P4 口的位 6 &模数转换通道 2
P4 口的位 7 &模数转换通道 3
晶振输入
晶振输出
无连接
P1 口的位 7 & IIC 串行数据线
P1 口的位 6 & IIC 串行时钟线
P1 口的位 5 &宽脉调制通道 1&计时器 2 及抓捕/比较单元通道 1
P1 口的位 4 &宽脉调制通道 0&计时器 2 及抓捕/比较单元通道 0
模拟电源电压 5v
模拟电源电压 3 v.
模拟电源地
P1 口的位 3&串行接口通道 1 &计时器 2 及抓捕/比较单元通道 3
& SPI 接口串行数据输入
P1 口的位 2 &串行接口通道 1 &计时器 2 及抓捕/比较单元通道 2
& SPI 接口串行数据输出
P1 口的位 1 &计时器 2 及捕获触发器
& SPI 接口时钟
P1 口的位 0 & 计时器 2 的外部输入时钟
& SPI 接口从机跳线
P2 口的位 7&外部存储器地址的位 15
P2 口的位 6&外部存储器地址的位 14
P2 口的位 5&外部存储器地址的位 13
P2 口的位 4 &外部存储器地址的位 12
P2 口的位 3&外部存储器地址的位 11
P2 口的位 2&外部存储器地址的位 10
P2 口的位 1&外部存储器地址的位 9
P2 口的位 0&外部存储器地址的位 8
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
5
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Pin
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Name
P3.7/RD
P3.6/WR
P3.5/T1
P3.4/T0
P3.3/INT1
P3.2/INT0
P3.1/TXD0
P3.0/RXD0
P0.7/AD7
P0.6/AD6
P0.5/AD5
P0.4/AD4
P0.3/AD3
P0.2/AD2
P0.1/AD1
P0.0/AD0
VSS
VDD3V
VDD
ICE_ICP_BUSY
ICE_ICP_DATA
ICE_ICP_CLOCK
ALE
RESET
P5.0
P5.1
I/O
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
i/o
o
i/o
i
o
i
i/o
i/o
Description
P3 口的位 7&外部存储器读取信号
P3 口的位 6&外部存储器写入信号
P3 口的位 5 & 计时器 1 外部输出
P3 口的位 4 & 计时器 1 外部输入
P3 口的位 3 & 外部中断 1
P3 口的位 2 & 外部中断 0
P3 口的位 1 & 串行接口通道 0
P3 口的位 0 & 串行接口通道 0
P0 口的位 7&外部存储器地址/数据的位 7
P0 口的位 6&外部存储器地址/数据的位 6
P0 口的位 5&外部存储器地址/数据的位 5
P0 口的位 4&外部存储器地址/数据的位 4
P0 口的位 3&外部存储器地址/数据的位 3
P0 口的位 2&外部存储器地址/数据的位 2
P0 口的位 1&外部存储器地址/数据的位 1
P0 口的位 0&外部存储器地址/数据的位 0
供电电源地
数位电源电压 3v
数位电源电压 5v
ICE 和 ICP 功能的忙碌指标(当内部闪存写入时为低电平)
ICE 和 ICP 功能的指令及数据输入
ICE 和 ICP 功能的时钟输入
地址锁存使能
复位
P5 口的位 0
P5 口的位 1
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
6
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
特殊功能寄存器
特殊功能寄存器分布图如下所示:
Hex\Bin
F8
X000
IICS
X001
IICCTL
X010
IICA1
X011
IICA2
X100
IICRWD
X101
X110
X111
F0
E8
E0
D8
B
P4
ACC
BRGS
SPIC1
MD0
SPIC2
MD1
SPITXD
MD2
SPIRXD
MD3
SPIS
MD4
MD5
ARCON
D0
C8
C0
B8
PSW
T2CON
IRCON
IEN1
CCEN
IP1
B0
A8
A0
98
P3
IEN0
P2
S0CON
90
88
80
P1
TCON
P0
Bin/Hex
FF
F7
EF
E7
DF
D7
CF
C7
BF
CRCL
CCL1
S0RELH
CRCH
CCH1
S1RELH
TL2
CCL2
PWMD0H
TH2
CCH2
PWMD0L
CCL3
PWMD1H
CCH3
PWMD1L
PWMD2H
IP0
PES
S0BUF
PWMD2L
S0RELL
PWMD3H
ADCC1
PWMD3L
ADCC2
PWMC
ADCDH
WDTC
ADCDL
WDTK
CLKR
IEN2
S1CON
S1BUF
S1RELL
B7
AF
A7
9F
P5
TMOD
SP
DPS
TL0
DPL
KBLS
TL1
DPH
KBE
TH0
DPL1
KBF
TH1
DPH1
97
8F
87
IFCON
PCON
注:特殊功能寄存器的重置值在 SM59R16A2/SM59R08A2 中有所描述。
Register
Location
Reset value
Description
P0
SP
80h
81h
FFh
07h
Port 0
Stack Pointer
DPL
82h
00h
Data Pointer 0 low byte
DPH
83h
00h
Data Pointer 0 high byte
DPL1
DPH1
PCON
TCON
TMOD
TL0
TL1
TH0
84h
85h
87h
88h
89h
8Ah
8Bh
8Ch
00h
00h
00h
00h
00h
00h
00h
00h
Data Pointer 1 low byte
Data Pointer 1 high byte
Power Control
Timer/Counter Control
Timer Mode Control
Timer 0, low byte
Timer 1, low byte
Timer 0, high byte
TH1
8Dh
00h
Timer 1, high byte
IFCON
8Fh
00h
Interface control register
P1
90h
FFh
Port 1
P5
91h
FFh
Port 5
DPS
92h
00h
Data Pointer select Register
KBLS
93h
00h
Expanded External Interrupt (EEI) level selector register
KBE
94h
00h
Expanded External Interrupt (EEI) input enable register
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
7
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Register
Location
Reset value
KBF
95h
00h
Expanded External Interrupt (EEI) interrupt flag register
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
P2
A0h
FFh
Port 2
PES
A1h
00h
Program Memory Page Erase Control Register
IEN0
A8h
00h
Interrupt Enable Register 0
IP0
A9h
00h
Interrupt Priority Register 0
S0RELL
AAh
D9h
Serial Port 0, Reload Register, low byte
ADCC1
ABh
00h
ADC control register 1
ADCC2
ACh
00h
ADC control register 2
ADCDH
ADh
00h
ADC high data byte
ADCDL
AEh
00h
ADC low data byte
CLKR
AFh
03h
Clock range register
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
00h
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
03h
Serial Port 0, Reload Register, high byte
S1RELH
BBh
03h
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
CCEN
C1h
00h
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
Description
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
8
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Register
Location
Reset value
Description
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
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
PSW
D0h
00h
Program status word
BRGS
D8h
00h
Baud rate generator switch
ACC
E0h
00h
Accumulator
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
MD4
EDh
00h
Multiplication/Division Register 4
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
IICS
F8h
00h
IIC status register
IICCTL
F9h
04h
IIC control register
IICA1
FAh
A0h
IIC Address 1 register
IICA2
FBh
60h
IIC Address 2 register
IICRWD
FCh
00h
IIC Read/Write register
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
9
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
功能描述
1
总特征
SM59R16A2/SM59R08A2是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详
细定义将在以下章节给出.
1.1 嵌入式程序存储器
可通过编程器或在线编程(ISP)将程序加载到64K/32K的嵌入式闪存体中,其高品质的闪存体具有
100K次的重复可擦写编程并记忆数据,如EEPROM。
1.2 I/O 口
SM59R16A2/SM59R08A2的I/O口和通用的8052完全兼容,P0口是一个8位漏极开路的双向I/O口,
在作输入或者输出高电平时,加上拉电阻是必要的。P1~P5口具有内部上拉电阻. 以下给出的是I/O口
的结构.
Fig. 1-1: IO pad structure
所有的P0~P5口都可通过转化速率来降低EMI。另一种降低EMI的方式是在禁止ALE输出,可通过
特殊功能寄存器(SFR)来进行选择控制,在高静电环境且在人体接触模式中,其I/O口的ESD可达4KV,
并保证SM59R16A2’S的质量在高静电环境。
1.3 2T/1T 的选择
传 统 的 52 系 列 单 片 机 时 钟 周 期 是 12T, 即 12 个 振 荡 器 时 钟 为 1 个 机 器 周 期 .
SM59R16A2/SM59R08A2为2T/1T的微控制器,即机器周期为2个时钟周期或1个时钟周期。换句话说,
执行一条指令可是2个时钟或一个时钟。2T模式与1T模式的差异,请参考以下图表1-2:
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
10
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Fig. 1-2(a): The waveform of internal instruction signal in 2T mode
Fig. 1-2(b): The waveform of internal instruction signal in 1T mode
缺省值为2T模式,在任何时候,如IFCON [7](地址为8Fh)被置位时,就可改变为1T的模式。在一个机
器周期内,并不是每条指令都能被执行的。所有指令的确切机器周期将在下一章节中给出。
1.4
复位
掉电检测也是内部复位的一种类型,以防止来SM59R16A2/SM59R08A2变得不稳定,其状况如1.3
所描述:
1.5 时钟源
默认时钟来自于内部OSC下的的1MHZ时钟信号,其时钟应用于初始化阶段,其主要的工作是确定
时钟源使用的正常运行。
时钟源可来自外部也可来自外部,其外部时钟源来源于晶体振荡器的脚XTAL1和XTAL2,或只通
过振荡器XATL1。在这里需要注意的是,XTAL1在3.3V的应用下无法支持5V,因此建议使用3.3V的振
荡源。
内部时钟源来源于不同分频的内部OSC,如下表格所示:
Table 1-1:时钟源的选择
Clock source
external crystal or internal OSC
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 as default clock used in initialization
对于来源于内部OSC的频率,这将有20%的误差,在应用程序中需要精确的频率时,不推荐使用。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
11
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
2
指令设置
所有SM59R16A2/SM59R08A2的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表
格列出了以SM59R16A2/SM59R08A微控器为核心的指令集的周期的总结,这里的周期表示为机器周
期,且根据IFCON [7]来决定1时钟或2时钟.
Table 2-1: 算术运算
Mnemonic
ADD A, Rn
ADD A, direct
Description
Add register to accumulator
Add direct byte to accumulator
Code
28-2F
25
Bytes
1
2
Cycles
1
2
ADD A, @Ri
Add indirect RAM to accumulator
26-27
1
2
ADD A, #data
ADDC A, Rn
ADDC A, direct
Add immediate data to accumulator
Add register to accumulator with carry flag
Add direct byte to A with carry flag
24
38-3F
35
2
1
2
2
1
2
ADDC A, @Ri
Add indirect RAM to A with carry flag
36-37
1
2
ADDC A, #data
SUBB A, Rn
SUBB A, direct
Add immediate data to A with carry flag
Subtract register from A with borrow
Subtract direct byte from A with borrow
34
98-9F
95
2
1
2
2
1
2
SUBB A, @Ri
Subtract indirect RAM from A with borrow
96-97
1
2
SUBB A, #data
INC A
INC Rn
INC direct
Subtract immediate data from A with borrow
Increment accumulator
Increment register
Increment direct byte
94
04
08-0F
05
2
1
1
2
2
1
2
3
INC @Ri
INC DPTR
DEC A
Increment indirect RAM
Increment data pointer
Decrement accumulator
06-07
A3
14
1
1
1
3
1
1
DEC Rn
Decrement register
18-1F
1
2
DEC direct
DEC @Ri
MUL AB
DIV
DA A
Decrement direct byte
Decrement indirect RAM
Multiply A and B
Divide A by B
Decimal adjust accumulator
15
16-17
A4
84
D4
2
1
1
1
1
3
3
5
5
1
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
12
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Table 2-2: 逻辑运算
Mnemonic
ANL A, Rn
ANL A, direct
Description
AND register to accumulator
AND direct byte to accumulator
Code
58-5F
55
Bytes
1
2
Cycles
1
2
ANL A, @Ri
ANL A, #data
ANL direct, A
ANL direct, #data
AND indirect RAM to accumulator
AND immediate data to accumulator
AND accumulator to direct byte
AND immediate data to direct byte
56-57
54
52
53
1
2
2
3
2
2
3
4
ORL A, Rn
ORL A, direct
ORL A, @Ri
ORL A, #data
OR register to accumulator
OR direct byte to accumulator
OR indirect RAM to accumulator
OR immediate data to accumulator
48-4F
45
46-47
44
1
2
1
2
1
2
2
2
ORL direct, A
ORL direct, #data
XRL A, Rn
XRL A, direct
OR accumulator to direct byte
OR immediate data to direct byte
Exclusive OR register to accumulator
Exclusive OR direct byte to accumulator
42
43
68-6F
65
2
3
1
2
3
4
1
2
XRL A, @Ri
Exclusive OR indirect RAM to accumulator
66-67
1
2
XRL A, #data
XRL direct, A
XRL direct, #data
CLR A
Exclusive OR immediate data to accumulator
Exclusive OR accumulator to direct byte
Exclusive OR immediate data to direct byte
Clear accumulator
64
62
63
E4
2
2
3
1
2
3
4
1
CPL A
RL A
RLC A
RR A
Complement accumulator
Rotate accumulator left
Rotate accumulator left through carry
Rotate accumulator right
F4
23
33
03
1
1
1
1
1
1
1
1
RRC A
SWAP A
Rotate accumulator right through carry
Swap nibbles within the accumulator
13
C4
1
1
1
1
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
13
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Table 2-3: 数据传送
Mnemonic
MOV A, Rn
MOV A, direct
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
MOVC A,@A+DPTR
90
93
3
1
3
3
MOVC A, @A+PC
MOVX A, @Ri
Load data pointer with a 16-bit constant
Move code byte relative to DPTR to
accumulator
Move code byte relative to PC to accumulator
Move Expanded 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 Expanded RAM (16-bit addr.) to A
Move A to Expanded RAM (8-bit addr.)
Move A to Expanded 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-M037
14
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Table 2-4: 程式分支
Mnemonic
ACALL addr11
LCALL addr16
Description
Absolute subroutine call
Long subroutine call
Code
xxx11
12
Bytes
2
3
Cycles
6
6
RET
RETI
AJMP addr11
LJMP addr16
from subroutine
from interrupt
Absolute jump
Long jump
22
32
xxx01
02
1
1
2
3
4
4
3
4
SJMP rel
JMP @A+DPTR
JZ rel
JNZ rel
Short jump (relative addr.)
Jump indirect relative to the DPTR
Jump if accumulator is zero
Jump if accumulator is not zero
80
73
60
70
2
1
2
2
3
2
3
3
JC rel
JNC
JB bit, rel
JNB bit, rel
Jump if carry flag is set
Jump if carry flag is not set
Jump if direct bit is set
Jump if direct bit is not set
40
50
20
30
2
2
3
3
3
3
4
4
JBC bit, direct rel
Jump if direct bit is set and clear bit
10
3
4
CJNE A, direct rel
CJNE A,#data rel
Compare direct byte to A and jump if not equal
Compare immediate to A and jump if not equal
Compare immediate to reg. and jump if not
equal
Compare immediate to indirect and jump if not
equal
Decrement register and jump if not zero
Decrement direct byte and jump if not zero
No operation
B5
B4
3
3
4
4
B8-BF
3
4
B6-B7
3
4
D8-DF
D5
00
2
3
1
3
4
1
Bytes
1
2
Cycles
1
3
CJNE Rn, #data rel
CJNE @Ri, #data rel
DJNZ Rn, rel
DJNZ direct, rel
NOP
Table 2-5: 布尔运算
Mnemonic
CLR C
CLR bit
Clear carry flag
Clear direct bit
Description
Code
C3
C2
SETB C
Set carry flag
D3
1
1
SETB bit
CPL C
CPL bit
Set direct bit
Complement carry flag
Complement direct bit
D2
B3
B2
2
1
2
3
1
3
ANL C, bit
AND direct bit to carry flag
82
2
2
ANL C, /bit
ORL C, bit
ORL C, /bit
AND complement of direct bit to carry
OR direct bit to carry flag
OR complement of direct bit to carry
B0
72
A0
2
2
2
2
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-M037
15
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
3
存储器结构
SM59R16A2/SM59R08A2存储器结构和通用的8051结构相同,也在三个存储空间内操作运算对象,
它们是:1)256Bytes的标准RAM; 2)2K的片上外扩RAM ; 3)作为程序存储器的64K/32K的嵌入式Flash.
3.1 程序存储器
SM59R16A2/SM59R08A2有64KB/32KB的片上Flash存储器,可作为通用的程序存储器,如任何
字节不被做为程序存储器来使用,它即可用来记忆任何数据,如EEPROM,其具体细节在第17章给出.
FFFF
64KB program
memory space
7FFF
32KB program
memory space
0000
Fig. 3-1: 32KB/64KB programmable Flash
3.2 数据存储器
SM59R16A2/SM59R08A2具有2048+256 Bytes的片上SRAM,其中256 Bytes和通用的8052内部存
储器结构一样,外扩的片上2KB的SRAM可以通过访问其外部存储器的方式进行访问(通过MOVX指
令)。当为2KB-64KB(地址0800h-FFFFh)存储器,他们必须被当成外部的内容通过类似于传统接口
(P2,P0作为地址与数据总线, P3 [7:6]表明读或写)的接口存取。如果SFR IFCON [1] = 1,这个芯片上的
2KB SRAM将无法使用,所有访问外部存储器的指令将直接指向外部存储器。即使这个MCU是2T或1T,
这个外部存储器接口依然类似于传统的12T方式,下面给出了一个范例:
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
16
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Fig 3-2 (a):External memory access as read
Fig 3-2 (b):External memory access as write
Fig. 3-3: RAM architecture
3.2.1 数据内存-低128字节($00h到$7Fh)
数据存储器从00h到FFh的地址和在8052中的定义是一样的.00h到7Fh的地址可通过直接或者间接
寻址方式访问.00h到1Fh是寄存器的空间,20h到2Fh是位寻址空间, 30h到7Fh是通用的数据存储区.
3.2.2 数据存储器-高128字节($80h到$FFh)
80h到FFh的地址仅仅能从间接寻址的方式访问,它是一个数据区.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
17
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
3.2.3 存储器-扩展的2048字节($0000 to $07FF)
0000h到07FFh是片内扩展的SRAM区域,共768字节.该空间地址只能通过外部直接寻址的方式进
行访问.(利用MOVX指令)。
如果指令MOVX @DPTR的地址大于07FFh,SM59R16A2将会自动产生外部存储器控制信号。
如果SFR IFCON [1] = 1,这个芯片上的2 KB SRAM在没有这样的内嵌存储器时将无法使用。SFR
IFCON [1]的默认值为0。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
18
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
4
CPU 结构
SM59R16A2/SM59R08A2 引擎由一下四部分组成:
a. 控制单元
b. 算法-逻辑单元
c. 存储器控制单元
d. RAM和SFR控制单元
SM59R16A2/SM59R08A2结构允许接受来自程序存储器的指令并与RAM或SFR做数据处理,一下
各段详细叙述了主要功能寄存器。
Mnemonic
ACC
B
PSW
SP
DPL
DPH
DPL1
DPH1
DPS
IFCON
Description
Direct
Bit 7
Accumulator
B register
Program status
word
Stack Pointer
Data pointer low 0
Data pointer high 0
Data pointer low 1
Data pointer high 1
Data pointer select
Interface control
register
E0h
F0h
ACC.7
B.7
D0h
CY
Bit 6
Bit 5
CPU 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
PSW.
1
ACC.0
B.0
00h
00h
P
00h
-
DPS.0
07h
00h
00h
00h
00h
00h
DMEN
-
00h
F0
RS [1:0]
81h
82h
83h
84h
85h
92h
-
-
-
SP [7:0]
DPL [7:0]
DPH [7:0]
DPL1 [7:0]
DPH1 [7:0]
-
8Fh
ITS
-
-
-
OV
-
ALEC[1:0]
4.1 累加器
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]: A(或 ACC)寄存器为标准的 8051 累加器
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-M037
19
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 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]: 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
4
3
DPL [7:0]
2
1
Address: 82h
0
Reset
00h
4
3
DPH [7:0]
2
1
Address: 83h
0
Reset
00h
DPL[7:0]: Data pointer Low 0
Mnemonic: DPH
7
6
5
DPH [7:0]: Data pointer High 0
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
20
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
4.6 数据指针 1
双数据指针加速了块状数据的运行速度.标准的DPTR 是一个16位的寄存器,是用来寻址外部空间
或者外部存储器. 在SM59R16A2/SM59R08A2中,标准的数据指针称为DPTR,第二个数据指针称为
DPTR1. 选择位用来选择使用的数据指针。.数据指针的选择位位于DPS(DPS.0)寄存器中的LSB中.用
户通过触发DPS寄存器中的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
4
-
2
-
1
-
Address: 92h
0
Reset
DPS.0
00h
1
DMEN
Address: 8Fh
0
Reset
00h
DPL1[7:0]: Data pointer Low 1
Mnemonic: DPH1
7
6
5
DPH1[7:0]: Data pointer High 1
Mnemonic: DPS
7
6
-
5
-
3
-
DPS.0: 数据指针选择位
DPS.0 = 1,选择 DPTR1
4.7 接口控制寄存器
Mnemonic: IFCON
7
6
ITS
-
5
-
4
-
3
2
ALEC[1:0]
ITS: Instruction timing select.
ITS = 0, 2T instruction mode.
ITS = 1, 1T instruction mode.
ALEC[1:0]: ALE output control register.
ALEC[1:0]
ALE Output
00
Always output
01
No ALE output
10
Only Read or Write have ALE output
11
reserved
DMEN: Internal 2K SRAM disable.(default is enable)
DMEN = 0, Enable internal 2K RAM.
DMEN = 1, Disable internal 2K RAM.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
21
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
5
P0 口– P5 口
P0口到P5口是SM59R16A2/SM59R08A2的通用I/O端口,大部份端口都可和其他输入设备一起操
作,如P3[0]也可以在串行口通讯(UART)的应用中被使用。在输入和输出高的条件下,端口0是开漏
的,因此需加外部上拉电阻。至于其他端口,其上拉电阻位于内部。对于通常的应用设置,每个管脚
均可独立设置为高电位或者低电位,如下所示:
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
91h
E8h
B0h
A0h
90h
80h
P5.7
P4.7
P3.7
P2.7
P1.7
P0.7
P5.6
P4.6
P3.6
P2.6
P1.6
P0.6
Mnemonic: P0
7
6
P0.7
P0.6
5
P0.5
Bit 5
Ports
P5.5
P4.5
P3.5
P2.5
P1.5
P0.5
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
FFh
FFh
FFh
FFh
FFh
FFh
4
P0.4
3
P0.3
2
P0.2
1
P0.1
Address: 80h
0
Reset
P0.0
FFh
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: 91h
0
Reset
P5.0
FFh
P0.7~ 0: Port0 [7] ~ Port0 [0]
Mnemonic: P1
7
6
P1.7
P1.6
5
P1.5
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
P5.7
P5.6
5
P5.5
P5.7~ 0: Port5 [7] ~ Port5 [0]
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
22
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
硬件乘除法器(MDU)
6
SM59R16A2/SM59R08A2的算术单元提供了32位除法器,16位成法器,转化和规范等特点。所有
设置均为无符号整数设置。
Mnemonic
PCON
ARCON
MD0
MD1
MD2
MD3
MD4
MD5
Description
Direct
Bit 7
Power control
Arithmetic
Control register
Multiplication/Div
ision Register 0
Multiplication/Div
ision Register 1
Multiplication/Div
ision Register 2
Multiplication/Div
ision Register 3
Multiplication/Div
ision Register 4
Multiplication/Div
ision Register 5
87h
Bit 6
Bit 5
Bit 4
Multiplication Division Unit
SMOD MDUF
PMW
EFh
MDEF
MDOV
Bit 3
Bit 2
Bit 1
Bit 0
RESET
-
-
STOP
IDLE
00h
SLR
SC [4:0]
00h
E9h
MD0 [7:0]
00h
EAh
MD1 [7:0]
00h
EBh
MD2 [7:0]
00h
ECh
MD3 [7:0]
00h
EDh
MD4 [7:0]
00h
EEh
MD5 [7:0]
00h
6.1 乘除法器的设置
乘除法器的设置分为三个阶段:
6.1.1 第一阶段:装载MDx 寄存器,X=0~5:
该类型的MDU的计算,无论MDx寄存器是否被写入都将执行选择的指令。任何情况下,MO0的写入都
将首先被转换,而下一次的写入必须执行以下显示的表格序列,以确保MDU的运作,最后一次的写入将
开始选择的运作。
Table 6-1: MDU registers write sequence(MDU寄存器写入序列)
Operation
First write
Last write
32bit/16bit
MD0 Dividend Low
MD1 Dividend
MD2 Dividend
MD3 Dividend High
MD4 Divisor Low
MD5 Divisor High
16bit/16bit
MD0 Dividend Low
MD1 Dividend High
MD4 Divisor Low
MD5 Divisor High
16bit x 16bit
MD0 Multiplicand Low
MD4 Multiplicator Low
MD1 Multiplicand High
shift/normalizing
MD0 LSB
MD1
MD2
MD3 MSB
MD5 Multiplicator High
ARCON start conversion
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
23
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
6.1.2
第二阶段:执行运算
在执行运算中,MDU运行在拥有CPU并行线上。当MDU执行完毕时,MDUF寄存器将被硬件置位,
其标志位也将在下一次运算中被清除。
Mnemonic: PCON
7
6
SMOD MDUF
5
-
4
PMW
3
-
2
-
1
STOP
Address: 87h
0
Reset
IDLE
00h
MDUF: MDU 完成标志位
当MDU完成运算时,MDUF将被硬件置位且标志位也将在下一次运算中被清除。
下表给出了每一次数学计算中的执行时间
Table 6-2: MDU execution times (MDU执行时间)
Operation
Division 32bit/16bit
Division 16bit/16bit
Multiplication
Shift
Normalize
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
6.1.3 第三阶段:从MDx 寄存器上读取结果.
从第一个MDX 寄存器上读取序列并不重要,但我们必须意识到最后一次的读取(从MD5的除法运
算,或MD3中的乘法,切换和规范)将意味着一次完整的运算结束。
Table 6-3: MDU寄存器读取序列
Operation
First read
Last read
32Bit/16Bit
MD0 Quotient Low
MD1 Quotient
MD2 Quotient
MD3 Quotient High
MD4 Remainder L
MD5 Remainder H
16Bit/16Bit
MD0 Quotient Low
MD1 Quotient High
MD4 Remainder Low
MD5 Remainder High
16Bit x 16Bit
MD0 Product Low
MD1 Product
MD2 Product
shift/normalizing
MD0 LSB
MD1
MD2
MD3 Product High
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
中.
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
24
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
6.2 运行寄存器
该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: 乘除法溢出标志。该溢出标志只可读
只有在以下情况时,该溢出标志被置位:
除以“0”,再乘以一任意数,随后产生 0000FFFFH;
当最重要的 MD3 位被设置位(MD3.7=1)就开始标准化且写入通过 MD0 寄存器
(开始第一阶段),溢出标志被重置
SLR: 转换方向位
SLR=0-转换左操作
SLR=1-转换右操作
SC [4:0]: 转换计数器
当预设与 00000b,标准化被选择,在标准化之后,SC[4;0] 包含正常转换的数
字,当 SC[4:0]≠0 时,转换操作就开始,正常转换的数字由计数器写入 SC[4;0]
决定。SC[4]位 MSB ,SC[0]位 LSB。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
25
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
7
定时器 0 和定时器 1
SM59R16A2/SM59R08A2有三个16bit的定时/计数寄存器: 定时器0, 定时器1和定时器2,所有这
些都可以被设置为定时或计数操作.
在定时器模式中, 定时器0或定时器1在每12个机器周期中得到递增,这意味着在每12个晶体或振荡
信号中,计数会得到增加.
在计数的模式中,当检测到相应的输入脚T0/T1有下降沿产生时,寄存器便得到递增,由于它需要2
个机器周期来识别由1到0的跳变,其最大输入的计数频率为振荡器频率的1/2,从而使得这里没有限制
的占空比,以确定适当的识别为0或1的状态,因此,一个输入信号至少要稳定在1个机器周期。
定时器0和定时器1都有四种操作模式选择,在选择操作模式中,两个特殊功能寄存器(TMOD and
TCON)被应用其中。
Mnemonic
TL0
TH0
TL1
TH1
TMOD
TCON
Description
Direct
Bit 7
Bit 6
Bit 5
Timer 0 and 1
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
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
89h
GATE
C/T
M1
M0
GATE
C/T
M1
M0
00h
88h
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
00h
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
26
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
7.1 定时器/计数器模式控制寄存器(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]: 定时/计数器 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 位定时器/计数
器
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-M037
27
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
8
定时器 2 以及捕捉/比较单元
定时器2不仅仅是一个16位的定时器,也是一个带有比较,捕获及重载功能的4通道单元,这是非常
相似在其他一些微控制器的可编程计数器阵列(PCA),除脉冲宽度调制(PWM)。
Mnemonic
T2CON
CCEN
TL2
TH2
CRCL
CRCH
CCL1
CCH1
CCL2
CCH2
CCL3
CCH3
Description
Direct
Timer 2 control
Compare/Capture
Enable 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
C8h
C1h
CCh
CDh
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Timer 2 and Capture Compare Unit
T2PS CC0FR
T2R[1:0]
COCA COCA
COC
COCA COCA
H3
L3
AH2
L2
H1
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 2
T2CM
COCA
L1
Bit 1
Bit 0
T2I[1:0]
COCA
COC
H0
AL0
RESET
00h
00h
00h
00h
00h
00h
00h
00h
00h
00h
00h
00h
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
28
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Mnemonic: T2CON
7
6
T2PS
CC0FR
5
-
4
3
T2R[1:0]
2
T2CM
1
Address: C8h
0
Reset
T2I[1:0]
00h
T2PS: 分频器选择位
T2PS = 0,定时器 2 的时钟为振荡频率的 1/12
T2PS = 1, 定时器 2 的时钟为振荡频率的 1/24
CC0FR: 选择边沿触发位
CC0FR = 0,下降沿触发
CC0FR = 1,上升沿触发
T2R[1:0]: 定时器 2 重载模式选择位
T2R[1:0] = 0X,重载无效
T2R[1:0] = 10 模式 0
T2R[1:0] = 11 模式 1
T2CM: 定时器 2 比较模式选择位
T2CM = 0 ,模式 0
T2CM = 0 ,模式 1
T2I[1:0]: 定时器 2 输入选择位
T2I[1:0] = 00 ,定时器 2 计数停止
T2I[1:0] = 01 ,输入频率为时钟频率的 1/12 或者 1/24
T2I[1:0] = 10 ,定时器 2 在 T2 脚的外部信号递增
T2I[1:0] = 11 ,门控定时器 2 可为内部时钟输入
Mnemonic: CCEN
7
6
COCAH3 COCAL3
5
COCAH2
4
COCAL2
3
COCAH1
2
COCAL1
1
COCAH0
Address: C1h
0
Reset
COCAL0
00h
COCAH3,COCAL3: 通道 3 的比较/捕获模式
COCAH3
0
0
1
1
COCAL3
0
1
0
1
功
能
禁止比较/捕获功能
捕捉在 CC3 脚的上升沿
使能比较功能
在寄存器 CCL3 中捕获写入操作
COCAH2,COCAL2: 通道 2 的比较/捕获模式
COCAH3
0
0
1
1
COCAL3
0
1
0
1
功
能
禁止比较/捕获功能
捕捉在 CC2 脚的上升沿
使能比较功能
在寄存器 CCL2 中捕获写入操作
COCAH1,COCAL1: 通道 1 的比较/捕获模式
COCAH1
0
0
1
1
COCAL1
0
1
0
1
功
能
禁止比较/捕获功能
捕捉在 CC1 脚的上升沿
使能比较功能
在寄存器 CCL1 中捕获写入操作
COCAH0,COCAL0: 通道 0 的比较/捕获模式
COCAH3
0
0
1
1
COCAL3
0
1
0
1
功
能
禁止比较/捕获功能
捕捉在 CC0 脚的上升沿
使能比较功能
在寄存器 CCL1 中捕获写入操作
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
29
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
8.1 定时器 2 功能
定时器2既可做为定时器,又可做为计数器,或解释为门控定时器。
8.1.1 定时器模式
在此模式中,定时器2在每12个机器周期或每24个机器周期得到递增,并取决与2:1的分频器,而
分频器则由特殊寄存器T2CON中的T2PS位选择。
8.1.2 事件计数模式
在此模式中,当然外部信号T2由1到0的跳变时,定时器得到递增,T2输入在每个周期中得以采样,
定时器2在跳变检测的一个周期中得到递增。
8.1.3 门控定时器模式
在此模式中,定时器2递增的内部时钟是由外部信号T2来控制的。
8.1.4 定时器2的重载
重载(来自CRC寄存器的16位重载)可在以下两种模式中执行:
模式0:重载信号由定时器2溢出产生,即自动重载。
模式1:重载信号由相应的输入脚T2EX负跳变产生。
8.2 比较功能
在四个独立的比较器中,任何比较/捕捉寄存器中的值都和定时器寄存器的内容比较,其比较模式0
或1由位T2CM来选择,在这两种比较模式中,其比较结果在同样的机器周期的P1口的得出使得其内部
比较信号被激活,P1.2到P1.5口为CC0到CC3的输出。
8.2.1 比较模式0
在模式0中,当定时器2的值等同与比较寄存器上的值时,其输出信号由低到高的跳变,并在定时
器溢出时返回低电位。在此模式中,对端口写入无效,因为无法对来自内部总线及暂存器进行操作。
下表数字阐述了比较模式0的功能。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
30
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Fig. 8-1: Compare mode 0 function
8.2.2 比较模式1
在比较模式1中,其输出信号的跳变是由软件来决定的。定时器2的溢出不会导致输出的改变。在
此模式中,两种信号的跳变都是可以控制的,图表8-2显示了在比较模式1中的寄存器/端口结构功能表。
在比较模式1中,其值将首先被写入到“阴影寄存器”中,当比较信号被激活时,其值被传递到输出寄存
器。
Fig. 8-2: Compare mode 1 function
8.3 捕获功能
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
31
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
在一个外部事件(模式0)或一个软件写操作(模式1)上,实际的定时器/计数器的值可以被保存
在寄存器CCx或说CRC中。
8.3.1 捕捉模式0
在模式0中,定时器2的值的捕捉在以下情况进行:
(a) 上升沿输入CC1-CC3。
(b) 上升或下降沿的输入CC0(取决于位CC0FR),定时器2的内容将被对应的捕捉寄存器锁存,
在此模式中,无中断请求产生。
8.3.2 捕捉模式1
在模式1中,定时器2的值的捕捉将导致写入到捕捉寄存器中的低字节无任何价值,其捕捉寄存器的写入
值与改功能无关,定时器2的内容将被对应的捕捉寄存器琐存。在此模式中,无中断请求产生。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
32
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
9
串行接口 0 和 1
SM59R16A2/SM59R08A2有两个数据传输的串行接口,即UART0和UART1。作为传统的UART,
其传输速率可通过SFRs中的波特率来选择,这两个串行缓冲器组成两个单独寄存器,即一个传输缓冲
区和一个接收缓冲区。写入数据到特殊功能寄存器(SFR)SOBUF或S1BUF并设置这些数据在串行输
出缓冲,并开始传输, 来自S0BUF或S1BUF的读取及从串行接收缓冲区读取数据,串行口可同时传输
和接收数据,它也可在接收时缓存1字节,如CPU在第一个字节传输完成之前读取第二个字节,以防接
收数据丢失。
Mnemonic
PCON
BRGS
S0CON
S0RELL
S0RELH
S0BUF
S1CON
S1RELL
S1RELH
S1BUF
Bit 3
Bit 2
Bit 1
Bit 0
RESE
T
-
-
STOP
IDLE
00h
-
-
-
-
-
00h
SM20
REN0
TB80
RB80
TI0
RI0
00h
S0REL
.6
S0REL
.5
S0REL
.4
S0REL
.3
S0REL
.2
-
-
-
-
-
S0REL
.1
S0REL
.9
S0REL
.0
S0REL
.8
Description
Direct
Bit 7
Bit 6
Bit 5
电源控制寄存器
波特率转换发生
器
串行口 0 控制寄
存器
串行口 0 装载寄
存器低字节
串行口 0 装载寄
存器高字节
串行口 0 数据缓
存器
串行口 1 控制寄
存器
串行口 1 装载寄
存器低字节
串行口 1 装载寄
存器高字节
串行口 1 数据缓
存器
87h
SMOD
D8h
BRS
-
-
98h
SM0
SM1
AAh
S0REL
.7
BAh
-
Bit 4
Serial interface 0 and 1
MDUF
PMW
99h
S0BUF[7:0]
SM
-
SM21
REN1
TB81
RB81
TI1
RI1
9Dh
S1REL
.7
S1REL
.6
S1REL
.5
S1REL
.4
S1REL
.3
S1REL
.2
BBh
-
-
-
-
-
-
S1REL
.1
S1REL
.9
S1REL
.0
S1REL
.8
S1BUF[7:0]
00h
00h
9Bh
9Ch
00h
00h
00h
00h
00h
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
33
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Mnemonic: S0CON
7
6
5
SM0
SM1
SM20
4
REN0
3
TB80
2
RB80
1
TI0
Address: 98h
0
Reset
RI0
00h
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: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
34
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
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时,开始从起始位接收串行数据.
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可以用来指定波特率。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
35
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
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将被影响。
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
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
36
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
9.2 串行接口 1
串行接口1可在以下两种模式中设置:
SM
0
1
Mode
A
B
Description
9-bit UART
8-bit UART
Baud Rate
Variable
Variable
9.2.1 模式 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
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
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
37
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
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) 当BRS = 0时,(在SFR BRGS中):
Baud Rate =
2SMOD × FOSC
32 × 12 × (256 − TH1)
(b) 当BRS = 1时,(在SFR BRGS中):
Baud Rate =
2SMOD × FOSC
64 × 210 − S0REL
Baud Rate =
FOSC
32 × 2 − S1REL
(
)
9.4.2 串行接口1的模式A和B
(
10
)
9.5 波特率的时钟源
当串行接口功能被使用时,不推荐使用内部的振荡器作为时钟源的,其原因是先前章节所涉及到的
波特率必须尽可能的准确,而内部的OSC的时钟频率有+5%浮动的差异, 因此,用户可在外部晶体或
振荡器中选择时钟源。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
38
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
10 看门狗定时器
看门狗定时器是一个8位的计数器,它在每一个WDTCLK周期中得到递增。在一外部复位后,该看
门狗定时器将无效且所有寄存器都清零。
在 初 始 化 周 期 , SM59R16A2/SM59R08A2 可 从 信 息 区 域 从 读 出 WDRENB 及 WDTM[3:0].
WDRENB为使能位,当此位为高时,看门狗功能将被禁止。WDTM[3:0]为WDTCLK设置分频,如下表
所示,用户可通过编程器去设置WDTENB及WDTM[3:0]。
Fosc
WDTCLK =
12 × 2WDTM
256
Watchdog reset time =
WDTCLK
看门狗一旦开始工作将无法停止,当WDTM寄存被写入55h时,用户可通过清0来刷新看门狗定时
器。当看门狗定时器溢出时,WDTF标志位将被置1并自动重置复位MCU,该标志位可被软件或外部复
位清除。看门狗定时器必须定时刷新以防来自可变的重置复位请求信号.
Watchdog block diagram
Fclk/12
Power on
External reset
Software write to zero
0
7
WDT counter
WDTCLK
Control
logic
Overflow
WDT reset
Refresh WDT counter
WDTM
WDTEN
WDTF
WDTF = 1
1/2WDTM
WDTF = 0
WDTK = 0x55
Fig. 10-1: Watchdog timer block diagram
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
39
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Mnemonic
WDTC
WDTK
Description
看门狗定时器控制
寄存器
看门狗定时器重置
密钥
Direct
Bit 7
B6h
WDTF
Bit 6
Bit 5
Bit 4
Watchdog Timer
-
-
Bit 2
Bit 1
Bit 0
RESET
-
-
-
-
00h
-
B7h
Mnemonic: WDTC
7
6
WDTF
-
Bit 3
WDTK[7:0]
5
-
4
-
3
-
2
-
1
-
00h
Address: B6h
0
Reset
00h
WDTF: 看门狗定时器复位标志位
当 MCU 被看门狗重置时,WDTF 标志位将被硬件置位,该标志位可被软件或外
部复位清 0。
Mnemonic: WDTK
7
6
5
4
3
WDTK[7:0]
2
1
Address: B7h
0
Reset
00h
WDTK: 看门狗定时器重置密钥
一个程序必须将 0X55 写入到 WDTK 寄存器中,然后看门狗定时器将归零
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
40
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
11 中断
SM59R16A2/SM59R08A2提供11个中断源并带有4级优先权。每一中断源都在特殊寄存器(SFR)
中有自身的请求标志,每个中断请求信号通过相应的标志及特殊寄存器(SFR)中的IEN0,IEN1及IEN2
中的使能位来独自允许或禁止。
当中断发生时,CPU将会跳转预先设定的地址,如11-1图表所示,一旦中断开始执行,就只能被
更高优先级的中断终止,其中断服务会被来自指令RETI的返回所终结。当一RETI被执行时且中断发生
时,处理器将将返回此指令,并执行下一条指令。
当中断条件发生时,该处理器通过设置一个标志位来表示,无论中断使能或禁止,每个中断标志
都将在每个机器周期中采样一次,随后采样由硬件来检测,当中断被使能时,且采样指出相应中断时,
中断请求标志被设置。在随后的指令周期中,中断将被硬件所确定。从而迫使一 LCALL 指向相应的地
址向量。
当中断发生时,中断响应将需要不同的时间,这取决于相关的处理器。如一处理器执行的中断服
务程序同等或更优先,新的中断将不会启用,在其他情况下,响应时间将取决于当前的指令。以最快
的速度回应一个中断是需要7个机器周期,这包括一个检测中断的机器周期和6周期执行LCALL周期。
Table 11-1:中断向量
Interrupt Vector
Address
0003h
000Bh
Interrupt Number
*(use Keil C Tool)
0
1
IE1 – 外部中断 1
0013h
2
TF1 – 定时器 1 中断
RI0/TI0 – 串行口 0 中断
TF2/EXF2 – 定时器 2 中断
001Bh
0023h
002Bh
3
4
5
SPIIF – SPI 中断
004Bh
9
ADCIF – A/D 转换中断
EEIIF – 扩展外部中断
IICIF – IIC 中断
RI1/TI1 – 串行口 1 中断
0053h
005Bh
006Bh
0083h
10
11
13
16
Interrupt Request Flags
IE0 – 外部中断 0
TF0 – 定时器 0 中断
*参考Keil C用户指南中的有关中断功能使用说明
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
41
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Mnemonic
IEN0
IEN1
IEN2
IP0
IP1
Description
Direct
Bit 7
Bit 6
中断使能 0 寄存器
中断使能 1 寄存器
中断使能 2 寄存器
中断优先级 0
中断优先级 0
A8h
B8h
9Ah
A9h
B9h
EA
EXEN2
-
-
-
Bit 5
Interrupt
ET2
IEIIC
IP0.5
IP1.5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
ES0
IP0.4
IP1.4
ET1
IEEEI
IP0.3
IP1.3
EX1
IEADC
IP0.2
IP1.2
ET0
IESPI
IP0.1
IP1.1
EX0
ES1
IP0.0
IP1.0
00h
00h
00h
00h
00h
1
ET0
Address: A8h
0
Reset
EX0
00h
中断使能0寄存器(IEN0)
Mnemonic: IEN0
7
6
EA
-
5
ET2
4
ES0
3
ET1
2
EX1
EA: EA = 0 : 禁止所有中断;
EA = 1 : 使能所有中断
ET2: ET2 = 0 :禁止 Timer2 溢出或外部重载中断
ES0: ES0 = 0 :禁止串行口 0 中断
ET1: ET1 = 0 : 禁止 Timer2 溢出中断
EX1: EX1 = 0 : 禁止外部中断 1
ET0: ET0 = 0 : 禁止 Timer0 溢出中断
EX0: EX0 = 0 : 禁止外部中断 0
中断使能1寄存器(IEN1)
Mnemonic: IEN1
7
6
EXEN2
5
IEIIC
4
-
3
IEEEI
2
IEADC
1
IESPI
Address: B8h
0
Reset
00h
EXEN2: Timer 2 重载中断使能位
EXEN2 = 0 :禁止 Timer 2 外部重载中断
IEIIC: IIC 中断使能位
IEIICS = 0 :禁止 IIC 中断
IEEEI: EEI 中断使能位
IEEEI = 0 :禁止 EEI 中断
IEADC : A/D 转换中断使能位
IEADC = 0 :禁止 ADC 中断
IESPI: SPI 中断使能位
IESPI = 0 :禁止 SPI 中断
中断使能2寄存器(IEN2)
Mnemonic: IE2
7
6
-
5
-
4
-
3
-
2
-
1
-
Address: 9Ah
0
Reset
ES1
00h
ES1: ES1=0 – 禁止串行口 1 中断
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
42
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
中断请求寄存器(IRCON)
Mnemonic: IRCON
7
6
5
EXF2
TF2
IICIF
4
-
3
EEIIF
2
ADCIF
1
SPIIF
Address: C0h
0
Reset
00h
EXF2: Timer 2 外部重载标志位,须软件清零
TF2: Timer 2 溢出标志位,须软件清零
IICIF: IIC 中断标志位;将 IIC 状态寄存器(IICS)中数据接收中断标志位(RxIF)、IICS 数据传输
中断标志位(TxIF)清零后,该位将自动清零
EEIIF: EEI 中断标志位,须软件清零
ADCIF: A/D 转换中断标志位,须软件清零
SPIIF: SPI 中断标志位,须软件清零
11.1 优先权配置
所有中断来源相组合与以下组中:
Table 11-2: Priority level groups
Groups
串行口 1 中断
-
外部中断 0
Timer 0 中断
外部中断 1
Timer1 中断
串行口 0 中断
Timer2 中断
SPI 中断
ADC 中断
EEI 中断
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:优先级
IP1.x
IP0.x
优先级
0
0
1
1
0
1
0
1
0 级别(最低)
级别 1
]级别 2
级别 3(最高)
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
43
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Table 11-4:组合级别
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
Group
串行口 1 中断
-
外部中断 0
Timer 0 中断
外部中断 1
Timer1 中断
串行口 0 中断
Timer2 中断
SPI 中断
ADC 中断
EEI 中断
IIC 中断
Table 11-5:高低序列
Sequence
Polling sequence
中断源
外部中断 0
串行口 1 中断
Timer 0 中断
SPI 中断
外部中断 1
ADC 中断
Timer1 中断
EEI 中断
串行口 0 中断
Timer2 中断
IIC 中断
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
44
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
12 电源管理单元
电源管理单元提供两种电源管理模式,即IDLE(待机/空闲)和STOP(停止),并为用户提供省
电功能。
Mnemonic: PCON
7
6
SMOD MDUF
5
-
4
PMW
3
-
2
-
1
STOP
Address: 87h
0
Reset
IDLE
00h
STOP: STOP 模式控制位。设置此位将运行 STOP 模式,STOP 位总是读为 0.
IDLE: IDIE 模式控制位。设置此位将运行 IDLE 模式,IDLE 位总是读为 0
12.1 待机模式(空闲模式)
使用IDLE(待机模式(空闲模式))模式可通过对PCON寄存器的IDLE位置位。空闲模式停止MCU
的时钟源,但外部的时钟源依旧保持,由于此时CPU不工作,电源功耗将被降低。当任何一中断信号
或者一复位信号时,CPU将退出待机模式(空闲模式)。
12.2 停止模式
使用STOP(停止模式)模式可通过对PCON寄存器的STOP位置位。在此模式中,所有的中断源
将全部被关闭,CPU将从一个无时钟的外部中断或者一个重置条件下退出该模式,内部产生的中断(定
时器,串行端口,看门狗... ),由于它们需要时钟源而无法运行。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
45
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
13 脉宽调制器(PWM)
SM59R16A2/SM59R08A2提供四个通道的PWM输出, 四个通道可同时被使用。但是他们的配置
(计数位数和计数频率)将在一个SFR 中同样的定义。
Mnemonic
PWMC
PWMD0H
PWMD0L
PWMD1H
PWMD1L
PWMD2H
PWMD2L
PWMD3H
PWMD3L
Description
PWM 控制寄存器
PWM0 数据寄存器
高字节
PWM0 数据寄存器
低字节
PWM1 数据寄存器
高字节
PWM1 数据寄存器
低字节
PWM2 数据寄存器
高字节
PWM2 数据寄存器
低字节
PWM3 数据寄存器
高字节
PWM3 数据寄存器
低字节
Direct
Bit 7
Bit 6
B5h
-
-
BCh
-
-
Bit 5
PWM
PWMM[1:0]
-
BDh
BEh
-
-
-
-
-
-
Bit 1
Bit 0
RESET
PWM3
EN
PWM2
EN
PWM1
EN
PWM0
EN
00h
-
PWMD0[11:8]
-
-
-
-
-
-
PWMD1[11:8]
2
PWM2EN
1
PWM1EN
00h
00h
PWMD2[11:8]
00h
00h
PWMD3[11:8]
PWMD3[7:0]
3
PWM3EN
00h
00h
PWMD2[7:0]
B4h
Mnemonic: PWMC
7
6
5
4
PWMM[1:0]
Bit 2
PWMD1[7:0]
B2h
B3h
Bit 3
PWMD0[7:0]
BFh
B1h
Bit 4
00h
00h
Address: B5h
0
Reset
PWM0EN
00h
PWMM[1:0]: PWM 模式选择位
当 PWMM[1:0] = 00 or 11,PWM 输出频率= Fosc/256.
当 PWMM[1:0] = 01,PWM 输出频率= Fosc/1024.
当 PWMM[1:0] = 10,PWM 输出频率= Fosc/4096.
PWMM[1:0]
Mode
00
8-bit mode
01
10-bit mode
10
12-bit mode
11
8-bit mode
这里的 Fosc 为外部晶振或者振荡器的频率。
PWM3EN: PWM 通道 3 使能控制位
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 使能位
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
46
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
PWM0EN = 0 –PWM 通道 0 禁止位
Mnemonic: PWMD0H
7
6
5
Mnemonic: PWMD0L
7
6
5
4
-
3
4
3
PWMD0[7:0]
2
1
PWMD0[11:8]
2
1
Address: BCh
0
Reset
00h
Address: BDh
0
Reset
00h
PWMD0[11:0]: PWM 通道 0 数据寄存器
Mnemonic: PWMD1H
7
6
5
Mnemonic: PWMD1L
7
6
5
4
-
3
4
3
PWMD1[7:0]
2
1
PWMD1[11:8]
2
1
Address: BEh
0
Reset
00h
Address: BFh
0
Reset
00h
PWMD1[11:0]: PWM 通道 1 数据寄存器
Mnemonic: PWMD2H
7
6
5
Mnemonic: PWMD2L
7
6
5
4
-
3
4
3
PWMD2[7:0]
2
1
PWMD2[11:8]
2
1
Address: B1h
0
Reset
00h
Address: B2h
0
Reset
00h
PWMD2[11:0]: PWM 通道 2 数据寄存器
Mnemonic: PWMD3H
7
6
5
Mnemonic: PWMD3L
7
6
5
4
-
3
4
3
PWMD3[7:0]
2
1
PWMD3[11:8]
2
1
Address: B3h
0
Reset
00h
Address: B4h
0
Reset
00h
PWMD3[11:0]: PWM 通道 3 数据寄存器
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
47
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
14 IIC 功能
由于我们已经熟知大部分IIC,而这些IIC模块使用SCL(时钟)和SDA(数据)线来联系其他的IIC
界面, 其速度可以由软件设置特殊寄存器(SFR)中的IICBR[2:0] ,从而使其高达到400KBpS(最大
值)。IIC模块可以是主机也可以是从机,,提供两个中断(RXIF,TXIF),并有两个地址以作数据传
输,它将产生开始,在主机模式中,反复启动和停止信号,在从机模式中,它将检测开始,反复启动
和 停 止 信 号 , 最 大 沟 通 的 长 度 及 连 接 设 备 的 数 目 被 一 个 最 大 400pF 的 电 容 所 限 制 。
SM59R16A2/SM59R08A2 IIC功能完全兼容其他芯片,因此,在它们的相互沟通中并无阻碍。
Mnemonic
Description
Direct
Bit 7
IICEN
MStart
Bit 6 Bit 5
Bit 4
IIC function
BF
MSS
MAS
RXIF TXIF
RDR
Bit 3
Bit 2
RStart
TDR
RXAK
IICCTL
IICS
IIC 控制寄存器
IIC 状态寄存器
F9h
F8h
IICA1
IIC 地址 1 寄存器
FAh
IICA1[7:1]
IICA2
IIC 地址 2 寄存器
FBh
IICA2[7:1]
IICRWD
IIC 读/写寄存器
FCh
Mnemonic: IICCTL
7
6
5
IICEN
BF
MSS
Bit 1
IICBR[2:0]
TXAK
RW
MATCH1
or RW1
MATCH2
or RW2
IICSRWD[7:0]
4
MAS
3
RStart
2
1
IICBR[2:0]
Bit 0
RESET
04h
00h
A0h
60h
00h
Address: F9h
0
Reset
04h
IICEN: IIC 模式使能
ICEN = 1,使能
IICEN = 0,禁止
BF: 总线失效标志位(仅应用于主模式中)
当此模式传输“1”到 SDA 线且检测来自主机模式中的 SDA 线的“0”时,判断失效,该位须由
软件清零。
MSS: 主\从机模式选择
MSS = 1, 选择主机模式
MSS = 0, 选择从机模式
软件必须在设置其他寄存器之前置位
MAS: 主模式的地址选择(仅在主机模式中)
MAS = 0,使用 IICA1
MAS = 1,使用 IICA2
RStart: 重启控制位(仅在主机模式中)
当该位被置位时,模块将产生一个启动条件到 SDA 和 SCL 线路(在当前 ACK 之后)
,并发送存储
在 IICA1 或者 IICA2 中的呼叫地址(由 MAS 控制位选择),在地址发送出去后,此位将由硬件清
除
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
48
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
IICBR[2:0]: 波特率选择(仅在主机模式),这里的 Fosc 为外部晶体或振荡器的频率,系统默认为 Fosc/512
以便用户选择
IICBR[2:0]
Baud rate
000
Fosc/32
001
Fosc/64
010
Fosc/128
011
Fosc/256
100
Fosc/512
101
Fosc/1024
110
Fosc/2048
111
Fosc/4096
Mnemonic: IICS
7
6
MStart
RxIF
5
TxIF
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: 接收确认位
这是一个仅由传输方确定的只读位。如果 IIC 模块在主机模式中,在传输 8 位数据到从机模式中后,
从机模式方将返回到 RxAK。
=0:从机接收数据成功
=1:从机接收数据失败
如 IIC 模块在从模式中,在传输 8 位数据到主机后,主机方将返回到 RxAK
=0:主机接收数据成功(在一些应用中,主机方可能需要更多的数据)
=1:主机接收数据失败,(在一些应用中,主机方可能不需要更多的数据)
TxAK: 传输确认位
在接收方,它是 RxAK 相应的位,代表着接收状态,如 RxAK 解释。实际上,它发送传输中的一个
字节如 9th 位,如 Fig 14-1 所示.
RW: 从机模式读/写
该位在从机模式中只可读,它来自于如下描述的主机方的 IICA1 或者 IICA2 中的位元 0.
=0: 主机方应答 IIC 模块(在主机模式)接收数据(读)
=1:主机方应答 IIC 模块(在从模式)传输数据 (写)
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
49
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Fig. 14-1: Acknowledgement bit in the 9th bit of a byte transmission
Mnemonic: IICA1
7
6
5
4
3
IICA1[7:1]
2
1
Address: FAh
0
Reset
Match1 or RW1
A0h
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,模块在主模式中为传输方。
Fig. 14-2: RW bit in the 8th bit after IIC address
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
50
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
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,模块在主模式中为传输方。
Mnemonic: IICRWD
7
6
5
4
3
IICRWD[7:0]
2
1
Address: FCh
0
Reset
00h
IICRWD[7:0]: IIC 读写缓存
在接收(读)模式中,接收的字节存储于此
在传输模式中,该字节通过该 SDA 被转换
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
51
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
15 SPI 功能
串行外围接口(SPI)是一个同步串行接口,允许主机和从机沟通,在SPI中有四个信号,它们分
别是:
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 SFRs 如下所示
SPI
Description
Direct
Bit 7
Bit 6
F1h
F2h
F5h
F3h
F4h
SPIEN
SPIMSS
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
SPICKP
SPICKE
SPIBR[2:0]
-
RBC[2:0]
Bit 0
RESE
T
SPIRS
08h
00h
40h
00h
00h
SPI function
SPIC1
SPIC2
SPIS
SPITXD
SPIRXD
SPI 控制寄存器 1
SPI 控制寄存器 2
SPI 状态寄存器
SPI 传输数据缓冲
SPI 接收数据缓冲
SPIFD
-
SPISSP
TBC[2:0]
SPIMLS
SPIOV
SPITXIF
SPITDR
SPITXD[7:0]
SPIRXD[7:0]
SPIRXIF
SPIRDR
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
52
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Mnemonic: SPIC1
7
6
5
SPIEN SPIMSS SPISSP
4
SPICKP
Address: F1h
3
2
1
0
SPICKE
SPIBR[2:0]
Reset
08h
SPIEN: SPI 模式使能位
=1,SPI 功能使能
=0,SPI 功能禁止
SPIMSS: 主/从机模式选择位
=1,主机模式
=0,从机模式
SPISSP: 从机选择的极性(仅从机模式有效)
=1,高
=0,低
SPICKP: 时钟空闲极性(仅主机模式有效)
=1, 空闲时 SCK 为高电平
=0,空闲时 SCK 为低电平
SPICKE: 时钟采样相位选择位;
=1,数据锁存在上升沿
=0,数据锁存在下降沿
*为确保数据锁存的稳定性,SM59R16A2/SM59R08A2 产生的输出数据,无论对方可锁存稳定的数
据是在上升沿或下降沿,都将作为考虑在以下示例中。
.
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
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
53
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
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 时钟中是同步的,如下所示;
Input Shift register
SPIRXD
Output Shift register
SPITXD
Clock Generator
MISO
MISO
MOSI
MOSI
SCK
SCK
SyncMos Master
Output Shift register
SPITXD
Input Shift register
SPIRXD
SyncMos Slave
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
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
54
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Mnemonic: SPIS
7
6
5
SPIMLS SPIOV
4
SPITXIF
3
SPITDR
2
SPIRXIF
Address: F5h
0
Reset
SPIRS
40h
1
SPIRDR
SPIMLS: MSB 或者 LSB 输入/输出优先
=1,MSM 输入/输出优先
=0,LSB 输入/输出优先
SPIOV: 溢出标志位
当 SPIRDR 被置位(SPIRXR 中的一个字节,但未被移除)且下一数据也进入时(这里不具备锁存
功能),该标志将被设置并导致在 SPIRXD 接收的数据被溢出毁坏,当 SPIRDR 被清除时,它也被
硬件清除。
SPITXIF: 传输中断标志
当 SPITXD 寄存器的数据被下载到转换寄存器时,该位被置位
SPITDR: 传输数据就绪位
当 MCU 结束对 SPITXD 寄存器读写数据时,MCU 须将改位置位,以通知 SPI 模块发送数据。在
SPI 模块完成从 SPITXD 或 SPITXD 发送数据到下载到转换寄存器后,该位将自动被清除。
SPIRXIF: 接受中断标志位
在 SPIRXD 被装载一个新的接收数据后,该位被置位
SPXDIRDR: 接收数据就绪位
当一字节被接收时,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-M037
55
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
16 外扩中断接口(EEI)
外扩中断接口可被连接一个8Xn矩阵或任意相似的设备,具有8路输入高或低的可编程的中断能力.
该8路接口既可通过P1口做输入,又可通过外部中断从IDLE和STOP模式中退出,且输出相互彼此独立,
但共享同一中断向量。
P1.0
P1.1
P1.2
P1.3
EEIIF: EEI interrupt
OR
P1.4
P1.5
IEEEI: EEI interrupt enable
P1.6
P1.7
Fig. 16-1: Interrupts from EEI 8 inputs
EEI
Description
Direct
Bit 7
KBLS
KBE
KBF
EEI 电位选择寄存器
EEI 输入使能位
EEI 标志位
93h
94h
95h
KBLS7
KBE7
KBF7
Bit 6
Bit 5
Bit 4
EEI function
KBLS6 KBLS5 KBLS4
KBE6
KBE5
KBE4
KBF6
KBF5
KBF4
Bit 3
Bit 2
Bit 1
Bit 0
RESET
KBLS3
KBE3
KBF3
KBLS2
KBE2
KBF2
KBLS1
KBE1
KBF1
KBLS0
KBE0
KBF0
00h
00h
00h
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
56
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
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: EEI接线口7电位选择位
=0,使能 P17 低电平检测
=1,使能 P17 高电平检测
KBLS.6: EEI接线口6电位选择位
=0,使能 P16 低电平检测
=1,使能 P16 高电平检测
KBLS.5: EEI接线口5电位选择位
=0,使能 P15 低电平检测
=1,使能 P15 高电平检测
KBLS.4: EEI接线口4电位选择位
=0,使能 P14 低电平检测
=1,使能 P14 高电平检测
KBLS.3: EEI接线口3电位选择位
=0,使能 P13 低电平检测
=1,使能 P13 高电平检测
KBLS.2: EEI接线口2电位选择位
=0,使能 P12 低电平检测
=1,使能 P12 高电平检测
KBLS.1: EEI接线口1电位选择位
=0,使能 P11 低电平检测
=1,使能 P11 高电平检测
KBLS.0: EEI接线口0电位选择位
=0,使能 P10 低电平检测
=1,使能 P10 高电平检测
Mnemonic: KBE
7
6
KBE.7
KBE.6
5
KBE.5
4
KBE.4
KBE.7: EEI接线口7使能位
=0,使能标准 I/O 口
=1,使能 KBF 寄存器中的 KBF.7 位产生一中断请求
KBE.6: EEI接线口6使能位
=0,使能标准 I/O 口
=1,使能 KBF 寄存器中的 KBF.6 位产生一中断请求
KBE.5: EEI接线口5使能位
=0,使能标准 I/O 口
=1,使能 KBF 寄存器中的 KBF.5 位产生一中断请求
KBE.4: EEI接线口4使能位
=0,使能标准 I/O 口
=1,使能 KBF 寄存器中的 KBF.4 位产生一中断请求
KBE.3: EEI接线口3使能位
=0,使能标准 I/O 口
=1,使能 KBF 寄存器中的 KBF.3 位产生一中断请求
KBE.2: EEI接线口2使能位
=0,使能标准 I/O 口
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
57
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
=1,使能 KBF 寄存器中的 KBF.2 位产生一中断请求
KBE.1: EEI接线口7使能位
=0,使能标准 I/O 口
=1,使能 KBF 寄存器中的 KBF.1 位产生一中断请求
KBE.0: EEI接线口0使能位
=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: EEI 接线口 7 标志位
当 P17 检测到一编程水平线时,该位由硬件置位
如 KBE.7 同样被置位时将产生一个 EEI 中断请求,该位须软件清零
KBF.6: EEI 接线口 6 标志位
当 P16 检测到一编程水平线时,该位由硬件置位
如 KBE.6 同样被置位时将产生一个 EEI 中断请求,该位须软件清零
KBF.5: EEI 接线口 5 标志位
当 P15 检测到一编程水平线时,该位由硬件置位
如 KBE.5 同样被置位时将产生一个 EEI 中断请求,该位须软件清零
KBF.4: EEI 接线口 4 标志位
当 P14 检测到一编程水平线时,该位由硬件置位
如 KBE.4 同样被置位时将产生一个 EEI 中断请求,该位须软件清零
KBF.3: EEI 接线口 3 标志位
当 P13 检测到一编程水平线时,该位由硬件置位
如 KBE.3 同样被置位时将产生一个 EEI 中断请求,该位须软件清零
KBF.2: EEI 接线口 2 标志位
当 P12 检测到一编程水平线时,该位由硬件置位
如 KBE.2 同样被置位时将产生一个 EEI 中断请求,该位须软件清零
KBF.1: EEI 接线口 1 标志位
当 P11 检测到一编程水平线时,该位由硬件置位
如 KBE.1 同样被置位时将产生一个 EEI 中断请求,该位须软件清零
KBF.0: EEI 接线口 0 标志位
当 P10 检测到一编程水平线时,该位由硬件置位
如 KBE.0 同样被置位时将产生一个 EEI 中断请求,该位须软件清零
P1.x
KBFx
KBLSx
KBEx
Fig. 16-2: Block diagram of EEI input
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
58
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
17 EEPROM
对于 64KB/32KB 闪存中的任何字节在未用作编程时都可以用来记录数据,数据可和在内置的
EEPROM 一样被储存和更新。因为它不是真的保存到 EEPROM 中,这也是所谓的“虚拟 EEPROM 的”
功能。该 EEPROM 功能在 SM59R16A2/SM59R08A2 中很容易的被使用。基本上,它由硬件周期来
减少在固件编码中的效果,必要的数据移动,页面擦除以及重复写入等等,都能通过硬件来自动执行。
有必要再次提醒一下EEPROM的位置可以是没有程序代码写入的程序内存中的任何字节。用户必
须很小心的对EEPROM写入,不可在程序区域写入。
用户仅能设置PMW(程序存储器写入)位且通过ACC寄存器来执行EEPROM功能。如PMW=1,
MOVX 指令将直接从闪存中读取/写入数据,从而代替内部或外部的SRAM,其数据覆盖(更新)也同
样被支持,因为硬件电路首先将擦除原始数据,然后写入新的数据。
推荐用户使用EEPROM的功能必须致能低压复位(可以由刻录器或ICP选择)和0℃以上的工作环
境的。
Mnemonic
PCON
PES
CLKR
Description
Direct
Bit 7
Power Control
Program Memory
Page Erase
Control Register
clock range
selection
87h
SMOD
A1h
EPE
Bit 6
Bit 5
Bit 4
EEPROM Function
MDUF
PMW
-
-
Bit 3
Bit 2
Bit 1
Bit 0
RESET
-
-
STOP
IDLE
00h
-
-
-
-
00h
-
AFh
Mnemonic: PCON
7
6
SMOD MDUF
CLK_Range[1:0]
5
-
4
PMW
3
-
2
-
1
STOP
02h
Address: 87h
0
Reset
IDLE
00h
当PMW被清除或重置时,MOVX指令在再次允许读/写数据到数据存储地址空间,软件开或关PMW
位使其可通过内存地址空间,下表显示了PMW位在程序存储器指令中的设置:
Mnemonic
MOVX A,@Ri
MOVX A,@DPTR
MOVX @Ri,A
MOVX @DPTR,A
Mnemonic: PES
7
6
EPE
-
Description
Move program memory data (8-bits addr.) to ACC
Move program memory data (16-bits addr.) to ACC
Move ACC to program memory (8-bits addr.)
Move ACC to program memory (16-bits addr.)
5
-
4
-
3
-
2
-
1
-
Address: A1h
0
Reset
00h
当激活EPE位,页擦除(每页包含512字节)功能可以用下面的指令执行。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
59
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
ORL
MOV
MOV
MOV
MOVX
PCON,#010h
DPTR,#0200h
PES,#080h
A,#0FFH
@DPTR,A
MOV
ANL
PES,#00h
PCON,#0EFh
;
;
;
;
;
;
;
;
Mnemonic: CLKR
7
6
-
Enable Program Memory read/write
Define page erase area from 0x0200 to 0x03FF
Enable Page erase function
Put 0xFF into ACC register
When this instruction execute,The Program Memory 0x0200 to
0X03FF value will all change to 0xFF
Disable Page erase function
Disable Program Memory read/write
5
-
4
-
3
-
2
-
Address: AFh
0
Reset
CLK_Range[1:0]
02h
1
这一个特殊功能寄存器CLKR在AFh可依使用的系统时钟来选择最合适的编程时间.
CLK_Range[1:0]: The clock range selection to adjust the erase and write timing of flash memory
=00 : system clock is lower than 10MHz
=01 : system clock is 10MHz ~ 20MHz
=10 : system clock is 20MHz ~ 30MHz (default)
=11 : system clock is 30MHz ~ 40MHz
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
60
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
18
10位模拟数字转换器(ADC)
SM59R16A2/SM59R08A2提供了4通道的10位ADC,该ADC为具有高精确度的SAR结构。这将表
示当ADC测量时,将不会有大电流激增而影响IO口或其他任何功能. 大电流激增可能影响基准电压,使
其结果不准确。数字输出采样的模拟信号放入ADCD[9:0]中,而ADC的中断向量则为53h
嵌入式4通道ADC是一个在测试范围为0~3.3V的10位分辨的转换器,其4通道位于Port4 [7] ~ Port4
[4].以下表格显示了ADC在实际应用中的精度:
P.S 当ADC模块使用Vdd=5.0V系统时, 用户必须注意以下两点:
1. 在启动ADC转换之前,Port4【7:4】b必须输出为“0000”以清除偏移电压
2.
Fig. 20-1: The precision of 10-b ADC(The VDD=3.3V)
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
61
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
Mnemonic
ADCC1
ADCC2
ADCDH
ADCDL
Description
Direct
Bit 7
Bit 6
ADC 控制器 1
ADC 控制器 2
ADC 数据高字节
ADC 数据低字节
ABh
ACh
ADh
AEh
COM
START
Mnemonic: ADCC1
7
6
-
Bit 5
ADC
ADC8B
Bit 4
-
Bit 3
Bit 2
ADC3E ADC2E
ADCCH[1:0]
-
Bit 1
Bit 0
ADC1E ADC0E
ADCCS[1:0]
ADCDH [1:0]
ADCDL[7:0]
5
-
4
-
3
ADC3E
2
ADC2E
1
ADC1E
RESET
00h
00h
00h
00h
Address: ABh
0
Reset
ADC0E
00h
ADC3E: =0 :没有外部模拟输入的数据可被 ADC 通道 3 接受
=1 :ADC 通道 3 使能位,可通过此位读出模拟输入数据
ADC2E: =0 :没有外部模拟输入的数据可被 ADC 通道 2 接受
=1 :ADC 通道 2 使能位,可通过此位读出模拟输入数据
ADC1E: =0 :没有外部模拟输入的数据可被 ADC 通道 1 接受
=1 :ADC 通道 1 使能位,可通过此位读出模拟输入数据
ADC0E: =0 :没有外部模拟输入的数据可被 ADC 通道 0 接受
=1 :ADC 通道 0 使能位,可通过此位读出模拟输入数据
Mnemonic: ADCC2
7
6
COM
START
5
ADC8B
4
-
3
2
ADCCH[1:0]
Address: ACh
1
0
Reset
ADCCS[1:0]
00h
COM: 当一转换执行时,COM 将通知用户该位被置位。该位将被硬件自动清除,且只可读。
START: 当该位被置位时,ADC 将启动转换。它将被硬件自动清除。
ADC8B: 10 位或 8 位 ADC 转换数据选择位
= 0:(默认)10 位数据转换 ADCD[9:0],ADCD [9:8] = ADCDH [1:0],ADCD [7:0] = ADCDL [7:0]
= 1:8 位数据转换 ADCD[7:0] = ADCDL [7:0]
ADCCH[1:0] 模拟输入信号可通过该位来选择
= 00 : 通道 0 用做输入
= 01 : 通道 1 用做输入
= 10 : 通道 2 用做输入
= 11 : 通道 3 用做输入
用户还必须设置相应的通道来使能 ADCC1 中的描述位
ADCCS[1:0]: 该位用来选择 ADC 模块中的时钟频率
= 00 : ADC 时钟为系统时钟的 1/8
= 01 : ADC 时钟为系统时钟的 1/16
= 10 : ADC 时钟为系统时钟的 1/32
= 11 : ADC 时钟为系统时钟的 1/64
自 ADC 在完成一次转换需要大概 20 系统时钟,因此一次转换最快的速度大概为 160 个系统时钟且
ADCLK=00。
ADC Clock =
Fclk
8 × 2 ADCCS
20
ADC Clock
1
ADC Sample Rate =
ADC Conversion Time
ADC Conversion Time =
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
62
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
*The ADC clock (Fclk/n) maximum 500KHz.
ADCCS[1:0]
00
01
10
11
Mnemonic: ADCDH
7
6
Fclk/8
Fclk/16
Fclk/32
Fclk/64
5
ADC clock
(Fclk: 1MHz ~ 4MHz)
(Fclk: 4MHz ~ 8MHz)
(Fclk: 8MHz ~ 16MHz)
(Fclk: 16MHz ~ 32MHz)
3
2
Address: ADh
1
0
Reset
ADCDH[1:0]
00h
4
3
ADCDL[7:0]
2
1
4
ADCDH[1:0]: ADC 高位数据输出
Mnemonic: ADCDL
7
6
5
Address: AEh
0
Reset
00h
ADCDL[7:0]: ADC 低位数输出
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
63
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
工作环境
Symbol
Description
Min.
Typ.
Max.
Unit.
Remarks
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
(1)
TA
DC 电气特性
(TA = -40 degree C to 85 degree C, Vdd = 3.3V)
Symbol
Parameter
Valid
VIL1
Input Low Voltage
port 0,1,2,3,4,5
Input Low Voltage
RES, XTAL1
VIL2
VIH1
Input High Voltage
port 0,1,2,3,4,5
Input High Voltage
RES, XTAL1
VIH2
VOL1
Output Low Voltage
port 0, ALE
VOL2
Output Low Voltage
port 1,2,3,4,5
Output High Voltage
port 0
VOH1
VOH2
IIL
ITL
ILI
R RES
C IO
Min.
-0.5
0
2.0
70%Vcc
Max.
0.8
0.8
Vcc+0.5
Vcc+0.5
0.45
0.45
Output High Voltage
port 1,2,3,4,5,ALE
Logical 0 Input Current
Logical Transition
Current
Input Leakage Current
Reset Pull-down
Resistance
Pin Capacitance
Power Supply Current
port 1,2,3,4,5
-75
Unit
V
V
V
V
V
V
V
V
V
V
uA
port 1,2,3,4,5
-650
uA
Vin=2.0V
±10
uA
0.45V<Vin<Vcc
300
Kohm
10
25
20
30
pF
mA
mA
uA
2.4
90%Vcc
2.4
90%Vcc
port 0
RES
50
Vdd
I CC
Test Conditions
Vcc=3.3V
IOL=3.2mA
IOL=1.6mA
IOH=-800uA
IOH=-80uA
IOH=-60uA
IOH=-10uA
Vin=0.45V
Freq=1MHz, Ta=25 ℃
Active mode, 16MHz
Idle mode, 16MHz
Power down mode
(1) 当用户使用 EEPROM 或 ISP 功能,建议工作环境 0℃以上。
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
64
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
(TA = -40 degree C to 85 degree C, Vdd = 5.0V)
Symbol
VIL1
VIL2
VIH1
VIH2
VOL1
VOL2
VOH1
VOH2
IIL
ITL
ILI
R RES
C IO
Parameter
Input Low Voltage
Input Low Voltage
Input High Voltage
Input High Voltage
Output Low Voltage
Output Low Voltage
Output High Voltage
Valid
port 0,1,2,3,4,5
RES, XTAL1
port 0,1,2,3,4,5
RES, XTAL1
port 0, ALE
port 1,2,3,4,5
port 0
Output High Voltage
port 1,2,3,4,5,ALE
Logical 0 Input Current
Logical Transition
Current
Input Leakage Current
Reset Pull-down
Resistance
Pin Capacitance
Power Supply Current
port 1,2,3,4,5
port 1,2,3,4,5
Min.
-0.5
0
2.0
70%Vdd
Max.
0.8
0.8
Vdd+0.5
Vdd+0.5
0.45
0.45
-85
Unit
V
V
V
V
V
V
V
V
V
V
uA
IOL=3.2mA
IOL=1.6mA
IOH=-800uA
IOH=-80uA
IOH=-60uA
IOH=-10uA
Vin=0.45V
-650
uA
Vin=2.0V
±10
uA
0.45V<Vin<Vdd
300
Kohm
10
25
20
30
pF
mA
mA
uA
2.4
90%Vdd
2.4
90%Vdd
port 0
RES
50
Vdd
I CC
Test Conditions
Vdd=5.0V
Freq=1MHz, Ta=25 ℃
Active mode, 16MHz
Idle mode, 16MHz
Power down mode
Note1: Under steady state (non-transient) conditions, IOL must be externally
Limited as follows: Maximum IOL per port pin: 10mA
Maximum IOL per 8-bit port: port 0
: 26mA
port 1,2,3,4,5 : 15mA
Maximum total IOL for all output pins : 71mA
如果IOL超过这个条件,VOL可能会超出相关的规格,Pins current 不能保证比当前列出条件更好的。
Icc Active Mode Test Circuit
Icc
VDD
NC
Clock Signal
SM59R16A2
XTAL2
XTAL1
P0
RESET
VSS
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
65
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
应用参考
Valid for SM59R16A2/SM59R08A2
2MHz
47 pF
47 pF
6MHz
35 pF
35 pF
X'tal
C1
C2
16MHz
30 pF
30 pF
25MHz
25 pF
25 pF
10MHz
30 pF
30 pF
12MHz
30 pF
30 pF
Crystal
X'tal
C1
C2
XTAL2
SM59R16A2
(SM59R08A2)
XTAL1
C2
VSS
C1
NOTE:
Oscillation circuit may differ with different crystal or ceramic resonator in higher oscillation frequency which was due to
each crystal or ceramic resonator has its own characteristics.
User should check with the crystal or ceramic resonator manufacture for appropriate value of external components.
Please see SM59R16A2/SM59R08A2 application note for details.
Reset Pin and 3.3V Regulator (VDD = 5V or 3.3V)
VDD3V
5V
10uF
0.1uF
RESET
0.1uF
4.7uF
RESET
VDD
6.8K
SM59R16A2
5V
4.7uF
3.3V
VDD3V
3.3V
10uF
VDDIO
5V
0.1uF
SM59R16A2
AVDD3V
3.3V
0.1uF 4.7uF
0.1uF
VDD
6.8K
VDDIO
0.1uF 4.7uF
0.1uF
5V
AVDD
3.3V
AVDD3V
AVDD
0.1uF
VSSIO
VSS
AVSS
Timing Critical, Requirement of External Clock
VSSIO
VSS
AVSS
(Vss=0.0V is assumed)
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
66
Ver.D SM59R16A2/SM59R08A2 06/2010
SM59R16A2/SM59R08A2
内嵌 64KB/32KB 具有 ISP 功能的 Flash
和 2KB RAM 的 8 位微控制器
芯片刻录器列表
公司名称
研仪科技股份有限公司
台湾省台北县新店市民权路98号7楼
网址:
http://www.aec.com.tw
河洛半导体股份有限公司
台湾省台北市内湖区瑞光路76巷18号4楼
网址:
http://www.hilosystems.com.tw
力浦电子实业股份有限公司
台湾省台北县三重市重新路五段609巷4号6楼
4室
网址:
http://www.leap.com.tw
南京西尔特电子有限公司
江苏省南京市江宁区将军大道2号美之国花园
6-31 211100
网址:
http://www.xeltek-cn.com
广州致远电子有限公司
广州市天河区车陂路黄洲工业区7栋2楼
510660
网址:
http://www.embedtools.com/
天津威磊电子技术有限公司
天津市南开区科研西路12号科技创业中心357
室 300192
网址:
http://www.weilei.com.cn/
联系方式
Tel:02-22182325
Fax:02-22182435
E-mail:
[email protected]
刻录器型号
Lab Tool - 48XP/UXP
Lab Tool – 848/848XP
Tel: 02-87923301
Fax:02-87923285
E-mail:
[email protected]
All - 100 series
Tel: 886-2-29991860
Fax:02-29990015
E-mail:
[email protected]
Leap-48
Tel: + 86-25-52765201,
E-mail:
[email protected]
[email protected]
Superpro 280U
Superpro 580U
Superpro 3000U
Superpro 9000U
TEL: +86-20-28872449
E-mail:
[email protected]
SmartPRO 5000U/X8
TEL: + 86-22-87891218#801
E-mail:
[email protected]
[email protected]
VP-890;VP-980;VP-880;VP-680
VP-480;VP-380;VP-280;VP-190
本说明书如有修改,恕不另行通知,请接洽您的销售代理商以获取最新版本信息。
ISSFD-M037
67
Ver.D SM59R16A2/SM59R08A2 06/2010