和256 RAM 的8 位控制器

SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
产品目录 .............................................................................................................................................................................. 2
描述 ..................................................................................................................................................................................... 2
订货信息 .............................................................................................................................................................................. 2
特征 ..................................................................................................................................................................................... 2
各封装引脚配置 ................................................................................................................................................................... 3
系统方框图 .......................................................................................................................................................................... 6
管脚描述 .............................................................................................................................................................................. 7
特殊功能寄存器(SFR) ......................................................................................................................................................... 8
功能描述 ............................................................................................................................................................................ 10
1.
总特征....................................................................................................................................................................... 10
1.1
嵌入式程序存储器 ............................................................................................................................................ 10
1.2
IO 口 ................................................................................................................................................................ 10
1.3
系统控制标志(SCONF) .................................................................................................................................... 10
2.
指令设置 ................................................................................................................................................................... 11
3.
存储器结构 ............................................................................................................................................................... 15
3.1
程序存储器....................................................................................................................................................... 15
3.2
数据存储器....................................................................................................................................................... 16
3.3
数据内存-低 128 字节(00H TO 7FH) .................................................................................................................. 16
3.4
数据存储器-高 128 字节(80H TO FFH) .............................................................................................................. 16
4.
CPU 结构 .................................................................................................................................................................. 17
4.1
累加器 .............................................................................................................................................................. 17
4.2
B 寄存器 ........................................................................................................................................................... 17
4.3
程序状态字....................................................................................................................................................... 18
4.4
堆栈指针 .......................................................................................................................................................... 18
4.5
数据指针 .......................................................................................................................................................... 18
5.
GPIO 管脚型态 ......................................................................................................................................................... 20
6.
定时器 0 和定时器 1 ................................................................................................................................................. 21
6.1
定时器/计数器模式控制寄存器(TMOD)............................................................................................................ 21
6.2
定时/计数控制寄存器(TCON) .......................................................................................................................... 22
6.3
模式 0 (13 位定时/计数) ................................................................................................................................... 22
6.4
模式 1 (16 位定时/计数) ................................................................................................................................... 23
6.5
模式 2 (8 位自动重载定时/计数) ....................................................................................................................... 23
6.6
模式 3 (两个独立 8 位定时/计数(仅定时器 0)) .................................................................................................. 23
7.
定时器 2 .................................................................................................................................................................... 25
7.1
捕获模式 .......................................................................................................................................................... 26
7.2
自动重装模式(递增/递减计数器) ................................................................................................................. 26
7.3
编程时钟输出 ................................................................................................................................................... 28
8.
串行接口 ................................................................................................................................................................... 30
8.1
串行接口由以下 4 种模式可以设置 .................................................................................................................. 30
8.2
串行接口的多重机通讯 .................................................................................................................................... 32
8.3
波特率发生器 ................................................................................................................................................... 32
9.
中断 .......................................................................................................................................................................... 34
10.
看门狗定时器 ....................................................................................................................................................... 36
11.
电源管理单元 ....................................................................................................................................................... 38
11.1
待机模式(空闲模式) ......................................................................................................................................... 38
11.2
掉电模式 .......................................................................................................................................................... 38
工作环境 ............................................................................................................................................................................ 39
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
-1-
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
产品目录
特征
SM8952BW40PP,
SM8952BW44JP,
SM8952BW44QP,
描述
SM8952B 产品系列是(内嵌)8KB Flash 和 256 Byte
SRAM 的 8-bit 的 微控制器,它是 8052 微处理器的一衍
生产品,且兼容相关设置。
可支持到 32 个 I/O,8KB Flash 可用来存放程序或数据。
并可透过商用编程器烧写。
订货信息
SM8952BihhkL YWW
i: 工艺标志{ W = 2.4V ~ 5.5V}
hh: 封装脚位
k: 封装形式后缀{as table below }
L: 无铅标志
{无文字即含铅,”P” 即无铅}
Y: 年
W: 周(01~52)
Postfix
P
J
Q
















工作电压: 2.4 ~ 5.5V,最高可达 40MHz
兼容通用的 8052
12 时钟周期 / 机器周期
指令设置兼容 MCS-51
8KB 字节的片上闪存程序存储器
256B 字节的标准的 8052 RAM
16-bit 数据指针 (DPTR)
一个标准串口(UART)
3 个 16bit 的计时器/计数器(计时器 0,1,2)
4 个 8bit I/O
具有 2 级优先权的外部中断 0&外部中断 1
看门狗定时器(WDT)
具有 6 個中断源及两个优先级
管脚 ESD 性能超过 4KV
增强用户代码保护
电源管理单元空闲及掉电模式
Package
PDIP
PLCC
PQFP
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
-2-
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
各封装引脚配置
40 Pin PDIP
1
40
VDD
T2EX/P1.1
2
39
P0.0/AD0
P1.2
3
38
P0.1/AD1
P1.3
4
37
P0.2/AD2
P1.4
5
36
P0.3/AD3
P1.5
6
35
P0.4/AD4
P1.6
7
34
P0.5/AD5
P1.7
8
33
P0.6/AD6
RESET
9
32
P0.7/AD7
31
EA
30
ALE
29
PSEN
28
P2.7/A15
27
P2.6/A14
T1/P3.5 15
26
P2.5/A13
WR/P3.6 16
25
P2.4/A12
RD/P3.7 17
24
P2.3/A11
XTAL2 18
23
P2.2/A10
XTAL1 19
22
P2.1/A9
VSS 20
21
P2.0/A8
RXD/P3.0 10
TXD/P3.1 11
INT0/P3.2 12
INT1/P3.3 13
T0/P3.4 14
SM8952BihhPP
YWW
(40L PDIP Top View)
T2/P1.0
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
-3-
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
P1.2
P1.1/T2EX
P1.0/T2
NC
VDD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
41
40
18
19
20
21
22
23
24
25
26
27
28
A9/P2.1
A10/P2.2
A11/P2.3
A12/P2.4
SM8952B
ihhJP
YWW
(44L PLCC Top View)
29 30 31 32 33 34 35 36 37 38 39
P1.3
42
A8/P2.0
T1/P3.5
43
NC
T0/P3.4
44
VSS
INT1/P3.3
1
XTAL1
INT0/P3.2
2
XTAL2
TXD/P3.1
3
RD/P3.7
NC
4
WR/P3.6
9
RESET
RXD/P3.0
5
7
P1.7
17 16 15 14 13 12 11 10
P1.6
6
8
P1.5
P1.4
44 Pin PLCC
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
EA
NC
ALE
PSEN
P2.7/A15
P2.6/A14
P2.5/A13
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
-4-
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
EA
NC
ALE
PSEN
P2.7/A15
P2.6/A14
P2.5/A13
33
32
31
30
29
28
27
26
25
24
23
44 Pin PQFP
AD3/P0.3 34
22
P2.4/A12
AD2/P0.2 35
21
P2.3/A11
AD1/P0.1 36
20
P2.2/A10
AD0/P0.0 37
19
P2.1/A9
18
P2.0/A8
VDD 38
17
NC
16
VSS
15
XTAL1
P1.2 42
SM8952B
ihhQP
YWW
14
XTAL2
P1.3 43
(44L PQFP Top View)
13
P3.7/RD
12
P3.6/WR
NC 39
T2/P1.0 40
T2EX/P1.1 41
3
4
5
6
7
8
9
P1.7
RESET
RXD/P3.0
NC
TXD/P3.1
INT0/P3.2
INT1/P3.3
T1/P3.5 11
2
P1.6
T0/P3.4 10
1
P1.5
P1.4 44
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
-5-
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
RESET
Reset Circuit
TXD
RXD
系统方框图
UART
SRAM
256Bytes
XTAL2
XTAL1
Flash 8KBytes
EA
PSEN
ALE
Port 0
Port 0
Port 1
Port 1
Port 2
Port 2
Port 3
Port 3
Timer 0/1
T0
T1
CPU
WDT
Interrupt
Timer2
T2
T2EX
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
-6-
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
管脚描述
40L
PDIP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
40L
PLCC
2
3
4
5
6
7
8
9
10
11
13
14
15
16
17
18
19
20
21
22
24
25
26
27
28
29
30
31
32
33
35
36
37
38
39
40
41
42
43
44
40L
PQFP
40
41
42
43
44
1
2
3
4
5
7
8
9
10
11
12
13
14
15
16
18
19
20
21
22
23
24
25
26
27
29
30
31
32
33
34
35
36
37
38
Symbol
P1.0/T2
P1.1/T2EX
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RESET
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
XTAL2
XTAL1
VSS
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
PSEN
ALE
EA
P0.7/AD7
P0.6/AD6
P0.5/AD5
P0.4/AD4
P0.3/AD3
P0.2/AD2
P0.1/AD1
P0.0/AD0
VDD
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
O
O
I
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I
Description
P1口的位0 & 定时器2外部输入时钟
P1口的位1 & 定时器2捕获触发器
P1口的位2
P1口的位3
P1口的位4
P1口的位5
P1口的位6
P1口的位7
复位
P3口的位0 &串行接口输入
P3口的位1 &串行接口输出
P3口的位2 &外部中断0
P3口的位3 &外部中断1
P3口的位4 &定时器0外部输入
P3口的位5 &定时器1外部输入
P3口的位6 &外部内存写入信号
P3口的位7 &外部内存读取信号
晶振输出
晶振输入
供电电源地
P2口的位0 &外部内存地址的位8
P2口的位1 &外部内存地址的位9
P2口的位2 &外部内存地址的位10
P2口的位3 &外部内存地址的位11
P2口的位4 &外部内存地址的位12
P2口的位5 &外部内存地址的位13
P2口的位6 &外部内存地址的位14
P2口的位7 &外部内存地址的位15
程序启发使能
地址锁存使能
外部程序内存使能
P0口的位7 &外部内存地址/数据的位7
P0口的位6 &外部内存地址/数据的位6
P0口的位5 &外部内存地址/数据的位5
P0口的位4 &外部内存地址/数据的位4
P0口的位3 &外部内存地址/数据的位3
P0口的位2 &外部内存地址/数据的位2
P0口的位1 &外部内存地址/数据的位1
P0口的位0 &外部内存地址/数据的位0
数字电源电压
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
-7-
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
特殊功能寄存器(SFR)
80h 到 FFh 的地址是 SM8952B 特殊功能寄存器的位置。这些地址只能通过直接寻址的方式寻址。下面这张表给出了
SFRs,部分特殊功能寄存器的位置与通用的 8052 系列相同:
Hex\Bin
X000
X001
X010
X011
X100
X101
X110
X111
F8
F0
E8
E0
Bin/Hex
FF
B
F7
ACC
EF
E7
D8
DF
D0
PSW
D7
C8
C0
T2CON
B8
IP
B0
P3
B7
A8
A0
IE
P2
AF
A7
98
SCON
90
P1
88
80
Hex\Bin
TCON
P0
X000
T2MOD
RCAP2L
RCAP2H
TL2
CF
C7
TH2
SCONF
SBUF
WDTC
BF
9F
97
TMOD
SP
X001
TL0
DPL
X010
TL1
DPH
X011
TH0
TH1
X100
X101
X110
PCON
X111
8F
87
Bin/Hex
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
-8-
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
注:SM8952B 特殊功能寄存器的重置值在下表描述
Register
Location
Reset value
1
2
P0
SP
80H
81H
FFH
07H
Port 0
Stack Pointer
3
DPL
DPH
PCON
TCON
TMOD
82H
83H
87H
88H
89H
00H
00H
00H
00H
00H
Data Pointer 0 low byte
Data Pointer 0 high byte
Power Control
Timer/Counter Control
Timer Mode Control
9
10
11
12
TL0
TL1
TH0
TH1
P1
8AH
8BH
8CH
8DH
90H
00H
00H
00H
00H
FFH
Timer 0, low byte
Timer 1, low byte
Timer 0, high byte
Timer 1, high byte
Port 1
13
SCON
98H
00H
Serial Port 0, Control Register
14
SBUF
99H
00H
Serial Port 0, Data Buffer
16
P2
A0H
FFH
Port 2
17
IE
A8H
00H
Interrupt Enable
18
P3
B0H
FFH
Port 3
4
5
6
7
8
Description
19
IP
B8H
00H
Interrupt Priority
20
SCONF
BFH
02H
System Control Register
21
T2CON
C8H
00H
Timer 2 Control
22
T2MOD
C9H
00H
Timer 2 Mode
23
RCAP2L
CAH
00H
Timer2 Capture Low
24
RCAP2H
CBH
00H
Timer2 Capture High
25
TL2
CCH
00H
Timer 2, low byte
26
TH2
CDH
00H
Timer 2, high byte
27
PSW
D0H
00H
Program Status Word
28
ACC
E0H
00H
Accumulator
29
B
F0H
00H
B Register
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
-9-
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
功能描述
1. 总特征
SM8952B是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详细定义将在以下章节给出。
1.1
嵌入式程序存储器
商用编程器(commercial writer)将程序加载到8K的嵌入式程序存储器中。
1.2
IO 口
SM8952B的I/O口和通用的8052完全兼容,P0口是一个8位漏极开路的双向I/O口,在作输入或者输出高电平时,加上拉
电阻是必要的。P1~P3口具有内部上拉电阻。
1.3
系统控制标志(SCONF)
Mnemonic: SCONF
7
6
WDR
-
5
-
4
-
3
-
2
-
1
-
Address: BFh
0
Reset
ALEI
00h
WDR: 看门狗定时器复位
当系统被看门狗定时器发生溢位时,WDR 将被设为 1。
使用者可读取 WDR 确认是否曾发生看门狗复位。
ALEI: ALE 输出使能位
ALEI = 1,禁止 ALE 输出
ALEI = 0,允许 ALE 输出
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 10 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
2. 指令设置
所有SM8952B的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表格列出了以SM8952B微控器为核心
的指令集的周期的总结,这里的周期表示为机器周期。
符号
ADD A,Rn
表 2-1: Arithmetic operations
描述
Add register to accumulator
代码
28-2F
ADD A,direct
Add direct byte to accumulator
ADD A,@Ri
字节
1
周期
1
25
2
2
Add indirect RAM to accumulator
26-27
1
2
ADD A,#data
ADDC A,Rn
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
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 11 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
符号
ANL A,Rn
表 2-2: Logic operations
描述
AND register to accumulator
代码
58-5F
ANL A,direct
AND direct byte to accumulator
ANL A,@Ri
ANL A,#data
ANL direct,A
字节
1
周期
1
55
2
2
AND indirect RAM to accumulator
56-57
1
2
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
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 12 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
符号
MOV A,Rn
MOV A,direct
表 2-3: Data transfer
描述
Move register to accumulator
Move direct byte to accumulator
代码
E8-EF
E5
字节
1
2
周期
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
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 13 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
符号
ACALL addr11
表 2-4: Program branches
描述
Absolute subroutine call
代码
xxx11
LCALL addr16
Long subroutine call
RET
RETI
AJMP addr11
字节
2
周期
6
12
3
6
from subroutine
22
1
4
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
字节
1
周期
1
CLR C
表 2-5: Boolean manipulation
描述
Clear carry flag
代码
C3
CLR bit
Clear direct bit
C2
2
3
SETB C
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
符号
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 14 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
3. 存储器结构
SM8952B存储器结构和通用的8051结构相同,它们是作为程序存储器的8KB的嵌入式闪存。
3.1
程序存储器
SM8952B有8KB的嵌入式闪存,如以下图 3-1,
1FFF
8K Program
Memory space
Flash
0000
图 3-1: SM8952B programmable Flash
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 15 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
3.2
数据存储器
SM8952B具有256B Bytes的片上SRAM,如以下 图 3-2,256 Bytes和通用的8052内部存储器结构一样。
FF
FF
Higher 128 Bytes (Accessed by
indirect addressing mode only)
SFR (Accessed by direct addressing
mode only)
80
80
7F
Lower 128 Bytes (Accessed by
direct & indirect addressing mode )
00
图 3-2: RAM architecture
3.3
数据内存-低 128 字节(00h to 7Fh)
数据存储器从 00h 到 FFh 的地址和在 8052 中的定义是一样的。
00h 到 7Fh 的地址可通过直接或者间接寻址方式访问。
00h 到 1Fh 是寄存器的空间。
20h 到 2Fh 是位寻址空间。
30h 到 7Fh 是通用的数据存储区。
3.4
数据存储器-高 128 字节(80h to FFh)
80h 到 FFh 的地址仅仅能从间接寻址的方式访问,它是一个数据区。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 16 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
4. CPU结构
SM8952B结构由以下四部分组成:
(1) 控制单元
(2) 算法-逻辑单元
(3) 存储器控制单元
(4) RAM 和 SFR 控制单元
SM8952B结构允许接受来自程序存储器的指令并与RAM或SFR做数据处理,以下各段详细叙述了主要功能寄存器。
符号
描述
ACC
B
Accumulator
B register
Program status
word
Stack Pointer
Data pointer low
Data pointer high
PSW
SP
DPL
DPH
4.1
地址
Bit 7
E0h
F0h
ACC.7
B.7
D0h
CY
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
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
83h
SP[7:0]
DPL[7:0]
DPH[7:0]
07H
00H
00H
累加器
ACC是一个累加器,大部分单操作指令的一个操作数取自累加器。
符号: ACC
7
6
ACC.7 ACC.6
5
ACC05
4
ACC.4
3
ACC.3
2
ACC.2
1
ACC.1
0
ACC.0
地址: E0h
Reset
00h
0
B.0
地址: F0h
Reset
00h
ACC[7:0]: The A (or ACC) register is the standard 8052 accumulator。
4.2
B 寄存器
B寄存器被用于乘法或除法指令,也可作为一般寄存器以存储临时数据。
符号: B
7
B.7
6
B.6
5
B.5
4
B.4
3
B.3
2
B.2
1
B.1
B[7:0]: The B register is the standard 8052 register that serves as a second accumulator.
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 17 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
4.3
程序状态字
符号: PSW
7
6
CY
AC
5
F0
4
3
RS [1:0]
2
OV
1
F1
0
P
地址: D0h
Reset
00h
CY: 进位标志位
AC: 为 BCD 辅助进位标志位
F0: 用户设置标志位 0
RS[1:0]
00
01
10
11
Bank Selected
Bank 0
Bank 1
Bank 2
Bank 3
Location
00h – 07h
08h – 0Fh
10h – 17h
18h – 1Fh
OV: 溢出标志位
F1: 用户设置标志位 1
P: 奇偶校验位,受硬件影响,显示累加器中的奇偶的 1 位,即奇偶校验
4.4
堆栈指针
堆栈指针是一个1字节的寄存器,在复位后初始化值为07h。此寄存器在执行PUSH和CALL指令之前增值,使得堆栈指针
在08h开始执行。
符号: SP
7
6
5
4
3
2
1
0
SP [7:0]
地址: 81h
Reset
07h
SP[7:0]: 堆栈指针储存了暂时寄存器的地址,该地址是堆栈指针的起始位置.换言之,它总是指向堆栈指
针的顶端。
4.5
数据指针
数据指针为2字节,低位为DPL,高位为DPH。它可以作为一个2字节的寄存器(MOV DPTR,#data16)来使用,或者作为
两个寄存器(例如 MOV DPL,#data8) ,它通常被用作是运行外部程序或者是数据空间(如 MOVC A,@ A+DPTR 或者各自
的MOVX A, @ DPTR) 。
符号: DPL
7
6
5
4
3
DPL [7:0]
2
1
0
地址: 82h
Reset
00h
DPL[7:0]: 数据指针低字节
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 18 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
符号: DPH
7
6
5
4
3
DPH [7:0]
2
1
0
地址: 83h
Reset
00h
DPH [7:0]: 数据指针高字节
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 19 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
5. GPIO管脚型态
P0口~P3口是此款微型控制器的通用的IO口。大部份端口都可和其他输入设备一起操作,如P3[0]也可以当RXD在串行口
通讯(UART)的应用中被使用。在输入和输出高的条件下,端口0是开漏的,因此需加外部上拉电阻。至于其他端口,
其上拉电阻位于内部。对于通常的应用设置,每个管脚均可独立设置为高电位或者低电位,如下所示:
符号: P0
7
6
P0.7
P0.6
5
P0.5
4
P0.4
3
P0.3
2
P0.2
1
P0.1
地址: 80h
0
Reset
P0.0
FFh
4
P1.4
3
P1.3
2
P1.2
1
P1.1
0
P1.0
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
P0.7~ 0: Port0 [7] ~ Port0 [0]
符号: P1
7
6
P1.7
P1.6
5
P1.5
地址: 90h
Reset
FFh
P1.7~ 0: Port1 [7] ~ Port1 [0]
符号: P2
7
6
P2.7
P2.6
5
P2.5
P2.7~ 0: Port2 [7] ~ Port2 [0]
符号: P3
7
6
P3.7
P3.6
5
P3.5
P3.7~ 0: Port3 [7] ~ Port3 [0]
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 20 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
6. 定时器0 和定时器1
SM8952B有三个16bit的定时/计数寄存器:定时器0、定时器1与定时器2。所有这些都可以被设置为定时或计数操作。
在计时模式,定时器 0 或定时器 2 缓存器每个机械周期将加 1,由于每 12 个时钟为 1 个机械周期,故计数频率为
Fosc/12。
这些定时和计数功能体现在同一个单元中。"定时"或者"计数"功能可通过特殊功能寄存器的TMOD中的C/ T 位来选择。定
时器0和1有四种操作模式,它们可通过特殊功能寄存器的TMOD的(M1,M0)进行选择。模式0,1,2对于定时器和计数器是
一样的,模式3 则有所不同。四种工作模式描述如下:
符号
TL0
TH0
TL1
TH1
TMOD
TCON
6.1
描述
地址
Timer 0 , low byte
Timer 0 , high byte
Timer 1 , low byte
Timer 1 , high byte
Timer Mode Control
Timer/Counter
Control
Bit 7
Bit 6
Bit 5
Timer 0 and 1
8Ah
8Ch
8Bh
8Dh
89h
GATE
C/T
88h
TF1
TR1
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
重置值
M1
TL0[7:0]
TH0[7:0]
TL1[7:0]
TH1[7:0]
M0
GATE
C/T
M1
M0
00H
00H
00H
00H
00H
TF0
TR0
IT1
IE0
IT0
00H
IE1
定时器/计数器模式控制寄存器(TMOD)
符号: TMOD
7
6
5
GATE
C/T
M1
Timer 1
4
M0
3
GATE
2
1
C/T
M1
Timer 0
0
M0
地址: 89h
Reset
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 位定时器/计数
器.
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 21 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
6.2
定时/计数控制寄存器(TCON)
符号: TCON
7
6
TF1
TR1
5
TF0
4
TR0
3
IE1
2
IT1
1
IE0
0
IT0
地址: 88h
Reset
00h
TF1: 定时器 1 溢出标志。定时器/计数器溢出时由硬件置位。中断执行时硬件清
零,或由软件清零
TR1: 定时器 1 运行控制位。 如置位/清零, 关闭定时器/计数器 1.
TF0: 定时器 0 溢出标志。定时器/计数器溢出时由硬件置位。中断执行时硬件自动
清零,或由软件清零
TR0: 定时器 0 运行控制位。如置位/清零,关闭定时器/计数器 0
IE1: 中断 1 边沿标志。当检测到外部中断 1 边沿/低电平时由硬件置位该标志。中
断处理时由硬件清零,或通过软件清零
IT1: 中断 1 类型控制位,通过软件置位/清零该位来选择外部中断 1 以下降沿/低电
平方式触发
IE0: 中断 0 边沿标志。当检测到外部中断 0 边沿/低电平时由硬件置位该标志。中
断处理时由硬件清零,或通过软件清零
IT0: 中断 0 类型控制位。通过软件置位/清零该位来选择外部中断 0 以下降沿/低电
平方式触发
6.3
模式 0 (13 位定时/计数)
在这种模式中,定时寄存器是配置成一个 13 位的寄存器,以定时器 1 为例,当计数值由全 1 变成全 0 时,定时器中断
标志 TF1 置位.当 TR1=1 和 GATE=0 或者 INT 1 =1,计数输入到计时有效。当 GATE=1 时,外部输入 INT 1 控制定时
器,定时器可用来测量脉冲宽度)。TR1 是 SFR TCON 中的一个控制位,而 GATE 则是 TMOD 寄存器中的一位。
该 13 位寄存器由 TH1 的 8 位和 TL1 的低 5 位组成。TL1 的高 3 位不确定,可被忽略置位运行标志(TR1)不会清零寄
存器。
定时器 0 和定时器 1 的模式 0 操作相同。因此为了最后一章的相关计时器 1 信号替换 TR0,TR1 以及 INT 0 。我们可以
知道定时器 0 的工作模式 1。但是它们有两个不同的 GATE 位。一个用于定时器 1,(TMOD.7)另一个用于定时器
0(TMOD.3)。
图 6-1: 模式 0 -13 位定时器/计数器操作
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 22 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
6.4
模式 1 (16 位定时/计数)
除定时器寄存器为16 位外,模式1的操作与模式0完全相同。
图 6-2: 模式 1 -16 位定时器/计数器操作
6.5
模式 2 (8 位自动重载定时/计数)
定时 1,模式 2 中,定时器寄存器配置一个 8 位的计数器(TL1),具有自动重装功能,TL1 的溢出不仅使 TF1 置位,
而且将 TH1 的内容重新装入 TL1,TH1 的值由软件预先设置。重装时 TH1 的内容不变。定时器 0 的模式 2 操作也同样
如此。
图 6-3: 模式 2 -8 位自动重载定时/计数
6.6
模式 3 (两个独立 8 位定时/计数(仅定时器 0))
模式 3 中,定时器 1 的计数值保持不变,等效于 TR1=0。
模式 3 中,定时器 0 将 TL0 和 TH0 分成 2 个独立的计数器 TL0 使用定时器 0 控制位:C/ T , GATE, TR0, INT 0
和 TF0。TH0 锁定成定时器以用来计数机器周期,占用定时器 1 的 TR1 和 TF1 位。这样,TH0 就控制着定时器 1 的中
断。
模式 3 用在需要一个额外的 8 位定时器的场合。当定时器 0 工作在模式 3 时,定时器 1 可通过进入/退出模式 3 来启动
/关闭。定时器 1 还可用作串口的波特率发生器或用在不需要中断的应用中。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 23 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
图 6-4: 模式 3 -两个独立 8 位定时/计数(仅定时器 0)
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 24 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
7. 定时器2
定时器2是一个16位的定时器/计数器,可用作定时器或事件计数器,由特殊功能寄存器T2CON 的C/ T 2 位选择。
符号
TL2
TH2
RCAP2L
RCAP2H
T2MOD
T2CON
描述
地址
Timer 2 , low
byte
Timer 2 , high
byte
Reload and
capture data low
byte
Reload and
capture data
high byte
Timer 2 mode
Timer 2 control
register
Bit 7
Bit 6
Bit 5
Bit 4
Serial interface 0 and 1
Bit 3
Bit 2
Bit 1
Bit 0
重置值
CCh
TL2[7:0]
00h
CDh
TH2[7:0]
00h
CAh
RCAP2L[7:0]
00h
CBh
RCAP2H[7:0]
00h
C9h
-
-
-
-
C8h
TF2
EXF2
RCLK
TCLK
3
-
2
-
符号: T2MOD
7
6
-
5
-
4
-
EXEN
2
1
T2OE
-
T2OE
TR2
C/ T2
DCEN
CP/
RL2
x0h
00h
地址: 98h
0
Reset
DCEN
00H
T2OE: 定时器 2 输出使能位
DCEN: 该位置位时,定时器 2 可配置成递增/递减计数器
符号: T2CON
7
6
TF2
EXF2
5
4
3
2
1
RCLK
TCLK
EXEN2
TR2
C/ T2
0
CP/
地址: 98h
Reset
RL2
00H
TF2: 定时器 2 溢出标志。该位由定时器 2 溢出时置位,必须由软件清除。当 RCLK=0 或
TCLK=1 时,TF2 将不会置位。
EXF2: 定时器 2 外部标志。当 EXEN2=1 且 T2EX 的跳变产生捕获或重装时,EXF2 置位。定时
器 2 中断使能时,EXF2=1 将使 CPU 从中断向量处执行定时器 2 中断子程序。EXF2 位必
须用软件清零,在递增/递减计数器模式 DCEN =1 中,EXF2 不会引起中断。
RCLK: 接收时钟标志。RCLK 置位时,定时器 2 的溢出脉冲作为串行口模式 1 和模式 3 的接收时
钟。RCLK =0 时将定时器 1 的溢出脉冲作为接收时钟。
TCLK: 发送时钟标志。TCLK 置位时,定时器 2 的溢出脉冲作为串行口模式 1 和模式 的发送时
钟。TCLK =0 时将定时器 1 的溢出脉冲作为发送时钟。
EXEN2: 定时器 2 外部使能标志。当其置位且定时器 2 未作为串行口时钟时,允许 T2EX 的跳变产
生捕获或重装。EXEN2=0 时 T2EX 的跳变对定时器 2 无效。
C/ T2 : 定时器2 定时器/计数器选择。
0=内部定时器 12时钟模式为OSC/12;6时钟模式为OSC/6。
1=外部事件计数器下降沿触发。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 25 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
CP/ RL2 : 捕获/重装标志。该位置位时,如果 EXEN2=1,T2EX 上出现跳变时捕获。该位被清零
时,如果 EXEN2=1,当定时器 2 溢出或 T2EX 上出现跳变时自动重装。当 RCLK=1 或
TCLK=1 时,该位被忽略,定时器 2 溢出时被强制自动重装。
RCLK + TCLK
x
1
0
0
0
7.1
CP/RL2
x
x
1
0
0
表 7-1 : Timer 2 Operating Modes
TR2
DCEN
Mode
0
x
OFF
1
0
Baud-Rate Generation
1
0
Capture
1
0
Auto-Reload Up-only
1
1
Auto-Reload Up/Down
捕获模式
在捕获模式中,可通过T2CON中的位EXEN2有两种任选择,如果EXEN2=0,定时器2用作一个16位的定时器或计数
器,溢出时置位TF2,此位可用来产生中断。如果EXEN2=1,计时器2仍继续以上工作,但外部输入T2EX由1变0时将定
时器2 中TL2和TH2的当前值各自捕获到RCAP2L和RCAP2H。另外,T2EX的负跳变使T2CON中的EXF2置位, EXF2也
象TF2 一样能够产生中断。
Fosc/12
C/T2=0
T2 pin
TL2
(8 BITS)
C/T2=1
TH2
(8 BITS)
TF2
TR2
Timer2 Interrupt
RCAP2L RCAP2H
Transition
Detector
T2 EX pin
EXF2
EXEN2
Timier2 in Capture Mode
图7-1: Timer 2 in capture mode
7.2
自动重装模式(递增/递减计数器)
16位自动重装模式中定时器2,编程控制递增/递减计数计数的方向是由DCEN 递减计数使能位确定的DCEN位于特殊功
能寄存器T2MOD中。在复位后,当DCEN=0时,定时器2 默认为向上计数当DCEN =1时,定时器2可通过T2EX确定递增
或递减计数。
图7-2显示了当DCEN=0时计数器2的自动递增计数功能,在该模式中,通过对T2CON中的位EXEN2设置,可有两种任意
的选择。如果EXEN2=0,定时器2 递增计数到0FFFFH并在溢出后将TF2置位然后将RCAP2L和RCAP2H中的16位值作
为重新装载值装入定时器2。RCAP2L和RCAP2H的值是通过软件预设的如果EXEN2=1,16位重新装载可通过溢出或
T2EX从1到0的跳变实现,此跳变同时将EXF2置位,此跳变同时将EXF2置位,如被使能,则当TF2或EXF2置1时产生中
断。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 26 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
如图7-3所示,设定DCEN位后,定时器2可递增或递减计数,在该模式中,T2EX控制计数的方向。当T2EX置1时,计时
器2递增计数,计数到0FFFFH后溢出并置位TF2,定时器2的溢出将使RCAP2L 和RCAP2H中的16位值作为重新装载值
放入TL2和TH2。
当T2EX置零时,将使定时器2递减计数。当TL2和TH2计数到等于RCAP2L和RCAP2H时,定时器产生溢出,定时器2溢
出,置位TF2并将0FFFFH重新装入TL2和TH2。
无论定时器2递增或者递减,产生溢出时,外部标志位EXF2 翻转。如果需要,可将EXF2位作为第17位使用,在此模式
中EXF2 标志不会产生中断。
Fosc/12
C/T2=0
T2 pin
TL2
(8 BITS)
C/T2=1
TR2
TH2
(8 BITS)
TF2
RELOAD
Timer2 Interrupt
RCAP2L RCAP2H
Transition
Detector
T2 EX pin
EXF2
EXEN2
Timier2 in Auto Reload Mode
(DCEN=0)
图7-2:Timer 2 in auto reload mode (DCEN=0)
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 27 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
FFH
FFH
EXF2
Fosc/12
C/T2=0
TH2
TL2
T2 pin
TF2
C/T2=1
Timer2
interrupt
Count Direction
1 = UP
0 = DOWN
TR2
RCAP2L
RCAP2H
T2EX PIN
Timier2 in Auto Reload Mode
(DCEN=1)
图7-3: Timer 2 in auto reload mode (DCEN=1)
7.3
编程时钟输出
通过编程,可从 P1.0 输出占空比为 50﹪的时钟信号。P1.0 口,除用作通用 I/O 口外,还含有 2 个附加功能, P1.0 口可
编程为:(1)定时器/计数器 2 的外部时钟输入;(2)输出占空比为 50﹪的时钟信号。例如:如 12T 模式中,在
16MHz 的工作频率下,时钟信号的频率范围为 61Hz 到 4MHz。
通过清零位C/ T 2 (T2CON.1)和置位T2MOD的T2OE位来将定时器/计数器2配置成一个时钟发生器。通过置位TR2 位
(T2CON.2)就可启动定时器的运行。
系统时钟输出频率取决于晶振频率和定时器2 捕获寄存器(RCAP2H,RCAP2L)的重装值,见下列等式:
Clock-Out Frequency =
Oscillator Frequency
4 × (65536 − RCAP 2 H , RCAP 2 L)
在时钟输出模式中,定时器2 计数器的循环翻转不会产生中断。这与定时器2用作波特率发生器时一致。将定时器2同时
作为鲍率生成器和时钟生成器是可能的,然而需要注意的是波特率和时钟输出频率不能各自独立决定,因为它们都使用
RCAP2H和RCAP2L。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 28 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
图7-4: Timer 2 in clock-out mode
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 29 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
8. 串行接口
两个串行缓冲器组成两个单独寄存器,即一个传输缓冲区和一个接收缓冲区。
写入数据到特殊功能寄存器(SFR)SBUF并设置这些数据在串行输出缓冲,并开始传输, 来自SBUF的读取及从串行接
收缓冲区读取数据,串行口可同时传输和接收数据,它也可在接收时缓存1字节,如CPU在第一个字节传输完成之前读取
第二个字节,以防接收数据丢失。
符号
描述
地址
Bit 7
PCON
Power control
Serial Port control
register
Serial Port data
buffer
87H
SMOD
98H
SM0
SCON
SBUF
Bit 6
Bit 5
Serial interface
-
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
重置值
-
GF1
GF0
PD
IDLE
00H
SM1
REN
TB8
RB8
TI
RI
00H
SM2
99H
SBUF[7:0]
Mnemonic: SCON
7
6
5
SM0
SM1
SM2
4
REN
3
TB8
2
RB8
1
TI
00H
Address: 98h
0
Reset
RI
00H
SM0, SM1: 串行口模式选择。
SM0
0
0
1
1
SM1 Mode
0
0
1
1
0
2
1
3
在 UART 的 4 种模式中,模式 0~3 稍后解释。
SM2: 多处理机通信使能位。
REN: 如置位,串行接收使能,软件清除禁止接收。
TB8: 在模式 2 和 3 中,发送的第 9 位数据位,置位或清零取决与它执行的功能,如奇偶校验功
能, 多处理机通信等。
RB8: 在模式 2 和 3 中,RB8 为接收的第 9 位数据位。在模式 1 中,如 SM2=0,RB8 为停止
位。在模式 0 中,此位不被使用。须由软件清除。
TI: 发送中断标志位.在完成串行传输后由硬件置位,须由软件清除。
RI: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除。
8.1
串行接口由以下 4 种模式可以设置
SM0
0
0
1
1
SM1
0
1
0
1
Mode
0
1
2
3
描述
Shift register
8-bit UART
9-bit UART
9-bit UART
Board Rate
Fosc/12
Variable
Fosc/32 or Fosc/64
Variable
这里的Fosc是晶体或振荡器的频率。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 30 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
8.1.1
模式 0
引脚RXD充当输入和输出。TXD输出时钟。每次发送或接收以LSB最低位作首位,每次8位。波特率固定为的晶体的频率
1/12,接收通过以下的在SCON中的设置标志在模式0中初始化:RI = 0及REN = 1。在其它模式中,当REN=1时,开始
从起始位接收串行数据。
图 8-1: 发送模式 0
图 8-2: 接收模式 0
8.1.2
模式 1
引脚RXD充当输入,TXD充当串行输出,无任何外部时钟被使用,每次数据为10位:一个起始位(=0),8个数据位(LSB
位在前),及一个停止位(=1)。在接收据数据时, 起始位将被同步传输,8个数据位可通过SBUF来读取, 一个停止位存于
特殊功能寄存器SCON的设置标志RB8内,在模式1中,无论是内部的波特率发生器或定时器1可以用来指定波特率。
图 8-3: 发送模式 1
图 8-4: 接收模式 1
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 31 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
8.1.3
模式 2
该模式和模式1类似,但有两点不同。波特率被固定在振荡器的频率的1/32(SMOD=1)或1/64(SMOD=0),且有11
位数据被传输或接收: 1个起始位(=0),8个数据位(LSB在前),一个可编程的第9位及一个停止位(=1),9位可以
用来控制串行接口的奇偶性。在传输中,SCON中的TB8输出第9位,在接收中,SCON中的RB8将被影响。
8.1.4
模式 3
模式2和3的唯一不同之处在于:在模式3中,无论是内部的波特率发生器或定时器1可以用来指定波特率。
图 8-5: 传输模式 2 和模式 3
图 8-6: 接收模式 2 和 3 中
8.2
串行接口的多重机通讯
在串行接口的模式2 和3,接收9 位的功能, 可用于多处理器的通讯。在这种情况下,从机在SCON 中的位SM2被置位为
1。当主机输出从机的地址时,Bit9 将被置1,从而在所有的从机中导致串行口接收中断。从机将接收到的字节和它们的
网络地址比较,如匹配,其从机将清除SM2,并接收其余的信息,其它的从机将远离SM2无效,并忽略此信息。在解决
从机后,其主机在Bit9 清0 时将输出剩余部分的信息,因此,没有串口接收中断会产生在未选中的处理机中。
8.3
8.3.1
波特率发生器
模式 0
Baud Rate =
8.3.2
Fosc
12
模式 2
Baud Rate =
2 SMOD
× (Fosc)
64
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 32 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
8.3.3
8.3.3.1
模式 1 与模式 3
使用定时器 1 作波特率发生器
2 SMOD
2 SMOD
Fosc
Baud Rate =
× (Timer 1 overflow rate) =
×
32
32
12 × [256 − TH 1]
8.3.3.2
使用计时器 2 来生成波特率
Baud Rate =
Timer 2 overflow rate
Fosc
=
32
32 × [65536 - (RCAP2H, RCAP2L)]
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 33 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
9. 中断
SM8952B提供6个中断源并带有2级优先权. 每一中断源都在特殊寄存器(SFR)中有自身的请求标志,每个中断请求信号
通过相应的标志及特殊寄存器(SFR)IE中的使能位来独自允许或禁止。
当中断发生时,CPU将会跳转预先设定的地址,如表 9-1 表所示,一旦中断开始执行,就只能被更高优先级的中断终
止,其中断服务会被来自指令RETI的返回所终结。当一RETI被执行时且中断发生时,处理器将将返回此指令,并执行下
一条指令。
当中断条件发生时,该处理器通过设置一个标志位来表示,无论中断使能或禁止,每个中断标志都将在每个机器周期中
采样一次,随后采样由硬件来检测,当中断被使能时,且采样指出相应中断时,中断请求标志被设置。在随后的指令周
期中,中断将被硬件所确定。从而迫使一个LCALL 指向相应的地址向量。
当中断发生时,中断响应将需要不同的时间,这取决于相关的处理器。如一处理器执行的中断服务程序同等或更优先,
新的中断将不会启用,在其它情况下,响应时间将取决于当前的指令。
1
表 9-1: 中断向量
Interrupt Vector
Interrupt Request Flags
Address
0003h
IE0 – 外部中断0
2
TF0 – 定时器0 中断
3
4
Interrupt Number
*(use Keil C Tool)
0
000Bh
1
IE1 – 外部中断 1
0013h
2
TF1 – 定时器1 中断
001Bh
3
5
RI/TI – 串行口中断
0023h
4
6
TF2/EXF2 – 定时器2 中断
002Bh
5
*参考Keil C用户指南中的有关中断功能使用说明
符号
IE
IP
描述
Interrupt Enable
register
Interrupt priority
register
符号: IE
7
EA
6
-
地址
Bit 7
Bit 6
A8H
EA
-
B8H
-
-
5
ET2
4
ES0
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
重置值
ET2
ES
ET1
EX1
ET0
EX0
00H
PT2
PS
PT1
PX1
PT0
PX0
00H
Bit 5
Interrupt
3
ET1
2
EX1
1
ET0
0
EX0
地址: A8h
Reset
00h
EA: EA=0 –禁能所有中断
EA=1 –使能所有中断
ET2: ET2=0 –禁能定时器 2 中断
ET2=1 –使能定时器 2 中断
ES: ES=0 –禁能串行口中断
ES=1 –使能串行口中断
ET1: ET1=0 –禁能定时器 1 中断
ET1=1 –使能定时器 1 中断
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 34 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
EX1: EX1=0 –禁能外部中断 1
EX1=1 –使能外部中断 1
ET0: ET0=0 –禁能定时器 0 中断
ET0=1 –使能定时器 0 中断
EX0: EX0=0 –禁能外部中断 0
EX0=1 –使能外部中断 0
符号: IP
7
-
6
-
5
PT2
4
PS
3
PT1
2
PX1
1
PT0
0
PX0
地址: B8h
Reset
00H
PT2: 定时器 2 中断优先位,当 PT2=1 时,最高优先权
PS: 串行口中断优先位,当 PS=1 时候,最高优先权
PT1: 定时器 1 中断优先位,当 PT1=1 时,最高优先权
PX1: 外部中断 1 优先位,当 PX1=1 时候,最高优先权
PT0: 定时器 0 中断优先位,当 PT0=1 时,最高优先权
PX0: 外部中断 0 优先位,当 PX0=1 时候,最高优先权
Interrupt Priority Table
IP.x
Priority Level
1
1
(highest)
0
2
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 35 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
10. 看门狗定时器
看门狗定时器是一个16位的计数器并会在计数器溢出时产生复位讯号。WDT在噪音、电源干扰或断电等导致软件死循环
或跑飞程序等情况下非常有用。WDT功能可以帮助拥护的软件从不正常的软件状态中恢复正常。WDT不同于通用的
8052的计时器0、1、2。为了防止WDT复位,可以通过软件定时清除WDT计数器。当不可预料的复位发生时,用户应该
检查SCONF寄存器的WDR位。在一外部复位后,该看门狗定时器将无效且所有寄存器都清零。
看门狗定时器是频率是由系统晶振提供,有可选择的分频,要选择分频,由WDTC寄存器的PS [2:0] ,請參考表10-1。
在正常的运行状态,一个WDT超时(如使能)将导致MCU复位。当看门狗定时器溢出时,WDR标志位将被置1,同时将
MCU复位,该标志位可被软件、外部复位、或上电复位清零。
表 10-1: WDT time-out period
Divider
(dividing of Fosc)
8
16
32
64
128
256
512
1024
PS[2:0]
000
001
010
011
100
101
110
111
Clear
WDTF = 0
1. Power on reset
2. External reset
3. Software write “0”
Fosc
Time period @ 40MHz
13.1ms
26.21ms
52.42ms
104.8ms
209.71ms
419.43ms
838.86ms
1677.72ms
WDR
Set WDR = 1
WDTCLK
1
2 PS[2:0]+3
PS[2:0]
WDT
time-out
select
WDT
Counter
Enable/Disable
WDT
Refresh
WDT Counter
WDTEN
WDTC
WDT time-out
reset
CLR
图. 10-1: Watchdog timer block diagram
Mnemonic
WDTC
SCONF
Description
Watchdog timer
control register
System Control
Register
Dir.
Bit 7
Bit 6
Bit 5
Watchdog Timer
9FH
WDTE
-
BFH
WDR
-
Bit 4
Bit 3
CLEAR
-
-
-
-
-
Bit 2
Bit 1
Bit 0
PS [2:0]
-
-
RST
00H
ALEI
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 36 -
00H
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
Mnemonic: WDTC
7
6
5
WDTE
CLEAR
4
-
3
-
2
1
PS [2:0]
Address: 9Fh
0
Reset
00H
WDTE: 看门狗定时器使能位
CLEAR: 设置看门狗定时器的清除位
如果设定为 1,WDT 被清除并重新启动开始计数。
PS[2:0]: 看门狗定时器溢出周期标志位
Mnemonic: SCONF
7
6
WDR
-
5
-
4
-
3
-
2
-
1
-
Address: BFh
0
Reset
ALEI
00H
WDR: 看门狗重置旗标
此旗标于芯片之复位信号是由看门狗重置产生时由硬件自动设置。此旗标可由软件清零。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 37 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
11. 电源管理单元
电源管理单元提供两种电源管理模式,即IDLE(待机/空闲)和Power down(掉电),并为用户提供省电功能。
符号: PCON
7
6
SMOD
-
5
-
4
-
3
GF1
2
GF0
1
PD
0
IDLE
地址: 87h
Reset
00h
GF1: 通用标志位 1
GF0: 通用标志位 0
PD: 当 PD=1 时,MCU 进入掉电模式(Power-down Mode)
IDLE: 当 IDLE=1 时,MCU 进入空闲模式(IDLE mode)
11.1 待机模式(空闲模式)
使用IDLE(待机模式(空闲模式))模式可通过对PCON寄存器的IDLE位置位。空闲模式停止MCU的时钟源,但外部的时
钟源依旧保持,由于此时CPU不工作,电源功耗将被降低。当任何一中断信号或者一复位信号时,CPU将退出待机模式
(空闲模式)。
11.2 掉电模式
使用PD(掉电模式)模式可通过对PCON寄存器的PD位置位。在此模式中,系统晶振将停下来,CPU内部的动作完全
停止,但内部RAM之值可被保留,所有的中断源将全部被关闭,CPU将僅能以硬件重置退出该模式。
Pin Status in IDLE Mode and Power-Down Mode
Mode
Idle
Idle
Power-Down
Power-Down
Program Memory
Internal
External
Internal
External
ALE
1
1
0
0
PSEN
1
1
0
0
Port0
Data
Float
Data
Float
Port1
Data
Data
Data
Data
Port2
Data
Address
Data
Data
Port3
Data
Data
Data
Data
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 38 -
SM8952B
内嵌 8KB Flash
和 256 RAM 的 8 位控制器
工作环境
Symbol
Description
TA
VDD
Min.
Typ.
Max.
Unit.
Operating temperature
-40
25
85
℃
Supply voltage
2.4
5.5
V
Remarks
Ambient temperature under bias
DC电气特性
TA = -40℃ to 85℃, VCC = 5.0V
Symbol
Parameter
VIL1
Input Low Voltage
VIL2
Input Low Voltage
VIH1
Input High Voltage
VIH2
Input High Voltage
VOL1 Output Low Voltage
VOL2 Output Low Voltage
VOH1 Output High Voltage
VOH2
IIL
ITL
ILI
R RES
C IO
I CC
Output High Voltage
Logical 0 Input Current
Logical Transition
Current
Input Leakage Current
Reset Pull-down
Resistance
Pin Capacitance
Power Supply Current
Valid
port 0,1,2,3,#EA
RES, XTAL1
port 0,1,2,3,#EA
RES, XTAL1
port 0, ALE, #PSEN
port 1,2,3,
port 0
port
1,2,3,ALE,#PSEN
port 1,2,3
Min.
-0.5
0
2.0
70%Vcc
port 0, #EA
Vdd
-75
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<Vcc
300
Kohm
10
20
6.5
15
pF
mA
mA
uA
2.4
90%Vcc
2.4
90%Vcc
port 1,2,3
RES
Max.
0.8
0.8
Vcc+0.5
Vcc+0.5
0.45
0.45
50
Test Conditions
Freq=1MHz, Ta=25 ℃
Active mode, 16MHz
Idle mode, 16MHz
Power down mode
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M078
Ver D SM8952B 08/07/2015
- 39 -