内嵌16KB 的Flash 和1KB RAM 的8 位控制器

SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
产品目录 .............................................................................................................................................................................. 2
描述 ..................................................................................................................................................................................... 2
订货信息 .............................................................................................................................................................................. 2
特征 ..................................................................................................................................................................................... 2
各封装引脚配置 ................................................................................................................................................................... 3
系统方框图 .......................................................................................................................................................................... 6
管脚描述 .............................................................................................................................................................................. 7
特殊功能寄存器(SFR) ......................................................................................................................................................... 8
功能描述 ............................................................................................................................................................................ 11
1.
总特征....................................................................................................................................................................... 11
1.1
嵌入式程序存储器 ............................................................................................................................................ 11
1.2
IO 口 ................................................................................................................................................................ 11
1.3
系统控制标志(SCONF) .................................................................................................................................... 11
2.
指令设置 ................................................................................................................................................................... 12
3.
存储器结构 ............................................................................................................................................................... 16
3.1
程序存储器....................................................................................................................................................... 16
3.2
数据存储器....................................................................................................................................................... 17
3.3
数据内存-低 128 字节(00H 到 7FH) .................................................................................................................. 17
3.4
数据存储器-高 128 字节(80H 到 FFH)............................................................................................................... 17
3.5
存储器-扩展的 768 字节($0000 到 $02FF)....................................................................................................... 17
4.
CPU 结构 .................................................................................................................................................................. 21
4.1
累加器 .............................................................................................................................................................. 21
4.2
B 寄存器 ........................................................................................................................................................... 21
4.3
程序状态字....................................................................................................................................................... 22
4.4
堆栈指针 .......................................................................................................................................................... 22
4.5
数据指针 .......................................................................................................................................................... 22
5.
GPIO 管脚型态 ......................................................................................................................................................... 24
6.
定时器 0 和定时器 1 ................................................................................................................................................. 25
6.1
定时器/计数器模式控制寄存器(TMOD)............................................................................................................ 25
6.2
定时/计数控制寄存器(TCON) .......................................................................................................................... 26
6.3
模式 0 (13 位定时/计数) ................................................................................................................................... 26
6.4
模式 1 (16 位定时/计数) ................................................................................................................................... 27
6.5
模式 2 (8 位自动重载定时/计数) ....................................................................................................................... 27
6.6
模式 3 (两个独立 8 位定时/计数(仅定时器 0)) .................................................................................................. 27
7.
定时器 2 .................................................................................................................................................................... 29
7.1
捕获模式 .......................................................................................................................................................... 30
7.2
自动重装模式(递增/递减计数器) ................................................................................................................. 30
7.3
编程时钟输出 ................................................................................................................................................... 32
8.
串行接口 ................................................................................................................................................................... 34
8.1
串行接口由以下 4 种模式可以设置 .................................................................................................................. 34
8.2
串行接口的多重机通讯 .................................................................................................................................... 36
8.3
波特率发生器 ................................................................................................................................................... 36
9.
中断 .......................................................................................................................................................................... 38
10.
看门狗定时器 ....................................................................................................................................................... 40
11.
电源管理单元 ....................................................................................................................................................... 42
11.1
待机模式(空闲模式) ......................................................................................................................................... 42
11.2
掉电模式 .......................................................................................................................................................... 42
12.
脉宽调制器(PWM)................................................................................................................................................ 43
13.
TWO-WIRE SERIES INTERFACE (TWSI) .......................................................................................................... 45
工作环境 ............................................................................................................................................................................ 48
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
-1-
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
产品目录
特征
SM8954BW40PP,
SM8954BW44JP,
SM8954BW44QP,
描述
SM8954B 产品系列是(内嵌)16KB Flash 和 1KB SRAM 的
8-bit 的微控制器,它是 8052 微处理器的一衍生产品,且
兼容相关设置。
可支持到 36 个 I/O,16KB Flash 可用来存放程序或数
据。并可透过商用编程器烧写。
订货信息
SM8954BihhkL YWW
i: 工艺标志{ W = 2.4V ~ 5.5V}
hh: 封装脚位
k: 封装形式后缀{as table below }
L: 无铅标志
{无文字即含铅,”P” 即无铅}
Y: 年
WW: 周(01~52)
Postfix
P
J
Q


















工作电压: 2.4 ~ 5.5V,最高可达 40MHz
兼容通用的 8052
12 时钟周期 / 机器周期
指令设置兼容 MCS-51
16KB 字节的片上闪存程序存储器
256B 字节的标准的 8052 RAM,加 768 字节的片上
扩展 SRAM。
16-bit 数据指针 (DPTR)
一个标准串口(UART)
3 个 16bit 的计时器/计数器(计时器 0,1,2)
4 个 8bit I/O 外加 1 个 4bit I/O
具有 2 级优先权的外部中断 0&外部中断 1
看门狗定时器(WDT)
一个 IIC 接口(主/从机模式)
2 路 8 位/5 位脉宽调制(PWM)
具有 7 個中断源及两个优先级
管脚 ESD 性能超过 4KV
增强用户代码保护
电源管理单元空闲及掉电模式
Package
PDIP
PLCC
PQFP
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
-2-
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
各封装引脚配置
40 Pin PDIP
1
40
VDD
T2EX/P1.1
2
39
P0.0/AD0
PWM0/P1.2
3
38
P0.1/AD1
PWM1/P1.3
4
37
P0.2/AD2
P1.4
5
36
P0.3/AD3
P1.5
6
35
P0.4/AD4
SCL/P1.6
7
34
P0.5/AD5
SDA/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
SM8954BihhPP
YWW
(40L PDIP Top View)
T2/P1.0
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
-3-
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
P1.2/PWM0
P1.1/T2EX
P1.0/T2
P4.2
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
SM8954B
ihhJP
YWW
(44L PLCC Top View)
29 30 31 32 33 34 35 36 37 38 39
P1.3/PWM1
42
A8/P2.0
T1/P3.5
43
P4.0
T0/P3.4
44
VSS
INT1/P3.3
1
XTAL1
INT0/P3.2
2
XTAL2
TXD/P3.1
3
RD/P3.7
P4.3
4
WR/P3.6
9
RESET
RXD/P3.0
5
7
SDA/P1.7
17 16 15 14 13 12 11 10
SCL/P1.6
6
8
P1.5
P1.4
44 Pin PLCC
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
EA
P4.1
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-M084
Ver D SM8954B 08/07/2015
-4-
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
EA
P4.1
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
VDD 38
18
P2.0/A8
17
P4.0
16
VSS
15
XTAL1
14
XTAL2
13
P3.7/RD
12
P3.6/WR
PWM0/P1.2 42
SM8954B
ihhQP
YWW
PWM1/P1.3 43
(44L PQFP Top View)
P4.2 39
T2/P1.0 40
T2EX/P1.1 41
3
4
5
6
7
8
9
SDA/P1.7
RESET
RXD/P3.0
P4.3
TXD/P3.1
INT0/P3.2
INT1/P3.3
T1/P3.5 11
2
SCL/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-M084
Ver D SM8954B 08/07/2015
-5-
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
系统方框图
P2.0 ~ P2.7
RAM ADDR
Register
B Register
RAM256
P0.0 ~ P0.7
Port2 Driver
Port0 Driver
Port2 Latch
Port0 Latch
ACC
Stack Pointer
TMP2
ISP
TMP1
Timer0/1
Timer2
ALU
PSW
Flash ROM
Address
Generator
UART
WDT
Program
Counter
DPTR
#PSEN
ALE
#EA
RESET
Port1 Latch
Control
Unit
Port4 Latch
AUXRAM
(768 byte)
Port1 Driver
XTAL1
Port3 Latch
Port3 Driver
Port4 Driver
TWSI
( I2C )
XTAL2
P1.0 ~ P1.7
P3.0 ~ P3.7
P4.0 ~ P4.3
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
-6-
SM8954B
内嵌 16KB 的 Flash
和 1KB 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
44L
PLCC
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
41
42
43
44
44L
PQFP
39
40
41
42
43
44
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
代号
I/O
P4.2
P1.0/T2
P1.1/T2EX
P1.2/PWM0
P1.3/PWM1
P1.4
P1.5
P1.6/SCL
P1.7/SDA
RESET
P3.0/RXD
P4.3
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
XTAL2
XTAL1
VSS
P4.0
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
P4.1
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/O
I
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
O
O
I/O
I
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I
描述
P4口的位2
P1口的位0 & 定时器2外部输入时钟
P1口的位1 & 定时器2捕获触发器
P1口的位2 & PWM 通道0
P1口的位3 & PWM 通道1
P1口的位4
P1口的位5
P1口的位6 & IIC串行时钟线
P1口的位7 & IIC串行数据线
复位
P3口的位0 &串行接口输入
P4口的位3
P3口的位1 &串行接口输出
P3口的位2 &外部中断0
P3口的位3 &外部中断1
P3口的位4 &定时器0外部输入
P3口的位5 &定时器1外部输入
P3口的位6 &外部内存写入信号
P3口的位7 &外部内存读取信号
晶振输出
晶振输入
供电电源地
P4口的位0
P2口的位0 &外部内存地址的位8
P2口的位1 &外部内存地址的位9
P2口的位2 &外部内存地址的位10
P2口的位3 &外部内存地址的位11
P2口的位4 &外部内存地址的位12
P2口的位5 &外部内存地址的位13
P2口的位6 &外部内存地址的位14
P2口的位7 &外部内存地址的位15
程序启发使能
地址锁存使能
P4口的位1
外部程序内存使能
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-M084
Ver D SM8954B 08/07/2015
-7-
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
特殊功能寄存器(SFR)
80h 到 FFh 的地址是 SM8954B 特殊功能寄存器的位置。这些地址只能通过直接寻址的方式寻址。下面这张表给出了
SFRs,部分特殊功能寄存器的位置与通用的 8052 系列相同:
Hex\Bin
X000
X001
X010
X011
X100
X101
X110
X111
Bin/Hex
F8
F0
FF
B
F7
E8
E0
ACC
EF
E7
D8
P4
DF
D0
PSW
C8
C0
T2CON
TWSIS
T2MOD
TWSIA
B8
IP
IP1
B0
P3
A8
A0
IE
P2
IE1
98
SCON
SBUF
90
P1
88
80
Hex\Bin
TCON
P0
X000
RCAP2L
TWSIC1
PWMC0
PWMC1
RCAP2H
TWSIC2
TL2
TWSITXD
D7
CF
C7
TH2
TWSIRXD
BF
SCONF
PWDD0
B7
PWMD1
AF
A7
IFR
P1CON
9F
WDTC
97
TMOD
SP
X001
TL0
DPL
X010
TL1
DPH
X011
TH0
X100
TH1
RCON
X101
DBANK
X110
PCON
X111
8F
87
Bin/Hex
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
-8-
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
注:SM8954B 特殊功能寄存器的重置值在下表描述
寄存器
地址
重置值
描述
1
2
P0
SP
80H
81H
FFH
07H
Port 0
Stack Pointer
3
4
5
6
7
8
9
DPL
DPH
RCON
DBANK
PCON
TCON
TMOD
82H
83H
85H
86H
87H
88H
89H
00H
00H
00H
01H
00H
00H
00H
Data Pointer 0 low byte
Data Pointer 0 high byte
RAM Control
Data RAM bank select
Power Control
Timer/Counter Control
Timer Mode Control
10
11
12
13
14
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
15
SCON
98H
00H
Serial Port 0, Control Register
16
SBUF
99H
00H
Serial Port 0, Data Buffer
17
P1CON
9BH
00H
P1 control
18
WDTC
9FH
00H
Watch Dog Timer Control
19
P2
A0H
FFH
Port 2
20
IE
A8H
00H
Interrupt Enable
21
IE1
A9H
00H
Interrupt Enable 1
22
IFR
AAH
00H
Interrupt Flag for read
23
P3
B0H
FFH
Port 3
24
PWMD0
B3H
00H
PWM Data 0
25
PWMD1
B4H
00H
PWM Data 1
26
IP
B8H
00H
Interrupt Priority
27
IP1
B9H
00H
Interrupt Priority 1
28
SCONF
BFH
02H
System Control Register
29
TWSIS
C0H
00H
TWSI Status
30
TWSIA
C1H
A0H
TWSI Address
31
TWSIC1
C2H
01H
TWSI Control 1
32
TWSIC2
C3H
00H
TWSI Control 2
33
TWSITXD
C4H
FFH
TWSI Transmit Data
34
TWSIRXD
C5H
00H
TWSI Receive Data
35
T2CON
C8H
00H
Timer 2 Control
36
37
T2MOD
C9H
00H
Timer 2 Mode
RCAP2L
CAH
00H
Timer2 Capture Low
38
RCAP2H
CBH
00H
Timer2 Capture High
39
TL2
CCH
00H
Timer 2, low byte
40
TH2
CDH
00H
Timer 2, high byte
41
PSW
D0H
00H
Program Status Word
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
-9-
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
42
PWMC0
D3H
00H
PWM Control 0
43
PWMC1
D4H
00H
PWM Control 1
44
P4
D8H
xFH
Port 4
45
ACC
E0H
00H
Accumulator
46
B
F0H
00H
B Register
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 10 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
功能描述
1. 总特征
SM8954B是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详细定义将在以下章节给出。
1.1
嵌入式程序存储器
商用编程器(commercial writer)将程序加载到16K的嵌入式程序存储器中。
1.2
IO 口
SM8954B的I/O口和通用的8052完全兼容,P0口是一个8位漏极开路的双向I/O口,在作输入或者输出高电平时,加上拉
电阻是必要的。P1~P4口具有内部上拉电阻。
1.3
系统控制标志(SCONF)
Mnemonic: SCONF
7
6
WDR
-
5
-
4
PDWUE
3
-
2
-
1
OME
Address: BFh
0
Reset
ALEI
02h
WDR: 看门狗定时器复位。
当系统被看门狗定时器发生溢位时,WDR 将被设为 1。
使用者可读取 WDR 确认是否曾发生看门狗复位。
PDWUE: 掉电模式唤醒使能位。
设为 1 时始能 INT0/INT1 可唤醒掉电模式的功能。
OME: 外扩的片上 768B 的 SRAM 使能位。
OME = 1,使能片上 768B 的 SRAM。
OME = 0,禁能片上 768B 的 SRAM。
ALEI: ALE 输出使能位。
ALEI = 1,禁止 ALE 输出。
ALEI = 0,允许 ALE 输出。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 11 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
2. 指令设置
所有SM8954B的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表格列出了以SM8954B微控器为核心
的指令集的周期的总结,这里的周期表示为机器周期。
符号
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-M084
Ver D SM8954B 08/07/2015
- 12 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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
字节
1
周期
1
55
2
2
AND indirect RAM to accumulator
56-57
1
2
ANL A,#data
ANL direct,A
AND immediate data to accumulator
AND accumulator to direct byte
54
52
2
2
2
3
ANL direct,#data
AND immediate data to direct byte
53
3
4
ORL A,Rn
OR register to accumulator
48-4F
1
1
ORL A,direct
ORL A,@Ri
OR direct byte to accumulator
OR indirect RAM to accumulator
45
46-47
2
1
2
2
ORL A,#data
OR immediate data to accumulator
44
2
2
ORL direct,A
OR accumulator to direct byte
42
2
3
ORL direct,#data
XRL A,Rn
OR immediate data to direct byte
Exclusive OR register to accumulator
43
68-6F
3
1
4
1
XRL A,direct
Exclusive OR direct byte to accumulator
65
2
2
XRL A,@Ri
Exclusive OR indirect RAM to accumulator
66-67
1
2
XRL A,#data
Exclusive OR immediate data to accumulator
64
2
2
XRL direct,A
XRL direct,#data
Exclusive OR accumulator to direct byte
Exclusive OR immediate data to direct byte
62
63
2
3
3
4
CLR A
Clear accumulator
E4
1
1
CPL A
Complement accumulator
F4
1
1
RL A
RLC A
Rotate accumulator left
Rotate accumulator left through carry
23
33
1
1
1
1
RR A
Rotate accumulator right
03
1
1
RRC A
Rotate accumulator right through carry
13
1
1
SWAP A
Swap nibbles within the accumulator
C4
1
1
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 13 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 14 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
符号
ACALL addr11
表 2-4: Program branches
描述
Absolute subroutine call
代码
xxx11
LCALL addr16
Long subroutine call
RET
字节
2
周期
6
12
3
6
from subroutine
22
1
4
RETI
AJMP addr11
from interrupt
Absolute jump
32
xxx01
1
2
4
3
LJMP addr16
Long iump
02
3
4
SJMP rel
Short jump (relative addr.)
80
2
3
JMP @A+DPTR
JZ rel
Jump indirect relative to the DPTR
Jump if accumulator is zero
73
60
1
2
2
3
JNZ rel
Jump if accumulator is not zero
70
2
3
JC rel
Jump if carry flag is set
40
2
3
JNC
JB bit,rel
Jump if carry flag is not set
Jump if direct bit is set
50
20
2
3
3
4
JNB bit,rel
Jump if direct bit is not set
30
3
4
JBC bit,direct rel
Jump if direct bit is set and clear bit
10
3
4
CJNE A,direct rel
Compare direct byte to A and jump if not equal
B5
3
4
CJNE A,#data rel
CJNE Rn,#data rel
Compare immediate to A and jump if not equal
Compare immed. to reg. and jump if not equal
B4
B8-BF
3
3
4
4
CJNE @Ri,#data rel
Compare immed. to ind. and jump if not equal
B6-B7
3
4
DJNZ Rn,rel
Decrement register and jump if not zero
D8-DF
2
3
DJNZ direct,rel
NOP
Decrement direct byte and jump if not zero
No operation
D5
00
3
1
4
1
字节
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-M084
Ver D SM8954B 08/07/2015
- 15 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
3. 存储器结构
SM8954B存储器结构和通用的8051结构相同,它们是作为程序存储器的16KB的嵌入式闪存。
3.1
程序存储器
SM8954B有16KB的嵌入式闪存,如以下图 3-1,可做为通用的程序存储,这16K的地址从$0000 to $3FFF。
3FFF
16K Program
Memory space
Flash
0000
图 3-1: SM8954B programmable Flash
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 16 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
3.2
数据存储器
SM8954B具有256B Bytes的片上SRAM,如以下 图 3-2,256 Bytes和通用的8052内部存储器结构一样,同时扩大768
字节片上 SRAM 可以访问外部内存寻址(由指令 MOVX)。
02FF
Expanded 768 Bytes
(Accessed by direct
external addressing mode
by instruction MOVX)
FF
FF
SFR (Accessed by direct addressing
mode only)
Higher 128 Bytes (Accessed by
indirect addressing mode only)
80
80
7F
Lower 128 Bytes (Accessed by
direct & indirect addressing mode )
0000
00
图 3-2: RAM architecture
3.3
数据内存-低 128 字节(00h 到 7Fh)
数据存储器从 00h 到 FFh 的地址和在 8052 中的定义是一样的。
00h 到 7Fh 的地址可通过直接或者间接寻址方式访问。
00h 到 1Fh 是寄存器的空间。
20h 到 2Fh 是位寻址空间。
30h 到 7Fh 是通用的数据存储区。
3.4
数据存储器-高 128 字节(80h 到 FFh)
80h 到 FFh 的地址仅仅能从间接寻址的方式访问,它是一个数据区。
3.5
存储器-扩展的 768 字节($0000 到 $02FF)
从外部地址为 0000h 到 02FFh 是片上扩大的 SRAM 区域,一共768字节。这一区域可以是由访问外部直接寻址模式
(MOVX 指令)。
符号
SCONF
RCON
DBANK
描述
System
Configuration
Register
Internal RAM
Control Register
Data Bank
Control Register
地址
Bit 7
Bit 6
Bit 3
Bit 2
Bit 1
Bit 0
重置值
BFh
WDR
-
-
PDWU
E
-
-
OME
ALEI
02H
85h
-
-
-
-
-
-
RAMS
1
RAMS
0
00H
86h
BSE
-
-
-
BS3
BS2
BS1
BS0
01H
Bit 5
Bit 4
Expanded RAM
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 17 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
符号: SCONF
7
6
WDR
-
5
-
4
PDWUE
3
-
2
-
1
OME
地址: BFh
0
Reset
ALEI
02H
OME: 外扩的片上 768B 的 SRAM 使能位。
设 1 使能片上 768B 的 SRAM。
有两个方法可以存取片上扩展的768B 的 SRAM 。一种为使用MOVX指令,另一种为使用特殊的地址库切换并结合MOV
指令使用。
方法1: 使用MOVX指令
如果OME始能,使用MOVX @DPTR指令,若超过768字节将会自动改为存取外挂的SRAM。如果OME禁能,使用
MOVX @DPTR,IC将完全存取外挂的SRAM。OME默认值为1。
扩展的768B 的 SRAM也可以透过MOVX @Ri指令存取。RCON此功能是在定义扩展内存的页,使用RAMS1、RAMS0
这2个bit去选择哪个page。
符号: RCON
7
6
-
5
-
4
-
3
-
2
-
1
RAMS1
地址: 85h
0
Reset
RAMS0
00H
RAMS[1:0]: 初始值设定为 00H(page 0) 。 RAM 的一个 page 的资料为 256 字节。
OME
1
1
1
RAMS1
0
0
1
RAMS0
0
1
0
Mapped on-chip expanded RAM address
$0000 - $00FF
$0100 - $01FF
$0200 - $02FF
1
1
1
-
0
x
x
-
Note
Mapped to off-chip RAM
address {P2 , Ri}
Mapped to off-chip RAM
address {P2 , Ri}
表3-1 : Mapped address for on-chip expanded RAM
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 18 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
A[9:0]
DPTR
{RAMS1,RAMS0,@Ri}
Bank 2 (256B)
MUX
{DBANK[3:0],direct
address}
Bank 1 (256B)
768
Bytes
READ
Bank 0 (256B)
WRITE
On-chip 768B expanded RAM
OME
MOVX @Ri instrcution
MOVX @DPTR instrcution
DPTR
SEL
Control Logic
Chip selection of on-chip expanded RAM
{RAMS1,RAMS0}
DBANK[7]
图 3-3: Access on-chip expanded RAM scheme
方法2: 使用MOV指令
此区块映像表格,使用者能设定$040到$07F区块范围,对映到1K RAM的任何地址,以直接寻址方式存取扩展RAM的
(64 byte)资料。
程序范例:
例如,使用者欲将 #30h值写到 RAM 0x101地址,使用DBANK方式映像:
MOV SCONF, #02H ; 768 bytes RAM为开启状态
MOV DBANK, #88H ; 开启DBANK,查表二设定$040~$07f区块映像到0x 0100~0x 013f 地址
MOV A, # 30H ; 将 #30H值储存到A
MOV 41H, A ; 将 A值写入到0x0101地址
例如,使用者定义RCON切至到01page:
MOV RCON, #01H ; 定义RCON切至到01page (0x100~0x1FF)
MOV R0,#55H ; R0指到低地址55H
MOVX A,@R0 ; 以间接寻址法取得155H内容值
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 19 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
A[9:0]
DPTR
{RAMS1,RAMS0,@Ri}
Bank 12-15 (64B x 4)
MUX
{DBANK[3:0],direct
address}
768
Bytes
Bank 8-11 (64B x 4)
On-chip 768B expanded RAM
READ
Bank 4-7 (64B x 4)
1KB memory Space
WRITE
Bank 0-3 (64B x 4)
Scratchpad RAM
OME
MOVX @Ri instrcution
SEL
MOVX @DPTR instrcution
Control Logic
DPTR
Chip selection of on-chip expanded RAM and Scratchpad RAM
{RAMS1,RAMS0}
DBANK[7]
图 3-4: Access on-chip expanded RAM and scratchpad RAM with both in single 1KB addressing space scheme
符号: DBANK
7
6
BSE
-
5
-
4
-
3
BS3
2
BS2
1
BS1
Address: 86h
0
Reset
BS0
01H
BSE: 数据区块选择致能位。设 1 启动数据区块映像功能。
BS[3:0]: 将设定区块 $040~$07F 对映到 1K RAM 的任一个地址。
BSE
BS3
BS2
BS1
BS0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
x
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
x
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
x
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
x
Mapped window : $40 - $7F
Logically addressed range in 1K memory space
$000 – $03F
$040 – $07F
$080 – $0BF
$0C0 – $0FF
$100 – $13F
$140 – $17F
$180 – $1BF
$1C0 – $1FF
$200 – $23F
$240 – $27F
$280 – $2BF
$2C0 – $2FF
$300 – $33F
$340 – $37F
$380 – $3BF
$3C0 – $3FF
Mapping is off
表 3-2: Bank mapping address
Physical address
Scratchpad RAM
( $00 – $FF )
Expanded RAM
( $000 – $2FF)
Mapping is off
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 20 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
4. CPU结构
SM8954B结构由以下四部分组成:
(1) 控制单元
(2) 算法-逻辑单元
(3) 存储器控制单元
(4) RAM 和 SFR 控制单元
SM8954B结构允许接受来自程序存储器的指令并与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-M084
Ver D SM8954B 08/07/2015
- 21 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 22 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 23 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
5. GPIO管脚型态
P0口~P4口是此款微型控制器的通用的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
0
P0.0
地址: 80h
Reset
FFh
4
P1.4
3
P1.3
2
P1.2
1
P1.1
0
P1.0
地址: 90h
Reset
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
-
3
P4.3
2
P4.2
1
P4.1
Address: D8h
0
Reset
P4.0
xFh
P0.7~ 0: Port0 [7] ~ Port0 [0]
符号: P1
7
6
P1.7
P1.6
5
P1.5
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]
符号: P4
7
-
6
-
5
-
P4.3~ 0: Port4 [3] ~ Port4 [0]
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 24 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
6. 定时器0 和定时器1
SM8954B有三个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
0
M0
0
Mode
Mode0
0
1
1
0
Mode1
Mode2
1
1
Mode3
Function
13bit计数器/定时器, 包含TL0/TL1寄存器的低5
位及TH0/TL1寄存器的全部8位,其TL0/TL1寄
存器的高3位可设置为0。
16 位计数器/定时器。
8 位自动重载的计数器/定时器,自动重载的值
保留在TH0 和TH1。同时TL0 或者TL1 在每个
机器周期内都会递增。当溢出时,将THx 存放
的值装入TLx。
如定时器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-M084
Ver D SM8954B 08/07/2015
- 25 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 26 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 27 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
图 6-4: 模式 3 -两个独立 8 位定时/计数(仅定时器 0)
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 28 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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
Timer 2
Bit 4
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
00h
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 无效。
TR2: 定时器 2 启动/停止控制位,置 1 时启动定时器。
C/ T2 : 定时器2 定时器/计数器选择。
0=内部定时器 12时钟模式为OSC/12;6时钟模式为OSC/6。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 29 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
1=外部事件计数器下降沿触发。
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位重新装载可通过溢出或
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 30 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
T2EX从1到0的跳变实现,此跳变同时将EXF2置位,此跳变同时将EXF2置位,如被使能,则当TF2或EXF2置1时产生中
断。
如图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-M084
Ver D SM8954B 08/07/2015
- 31 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 32 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 33 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 34 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 35 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 36 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 37 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
9. 中断
SM8954B提供7个中断源并带有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 中断
000Bh
1
3
IE1 – 外部中断 1
0013h
2
4
TF1 – 定时器1 中断
001Bh
3
5
RI/TI – 串行口中断
0023h
4
6
TF2/EXF2 – 定时器2 中断
Two Wire Serial Interface
002Bh
5
003Bh
7
7
Interrupt Number
*(use Keil C Tool)
0
*参考Keil C用户指南中的有关中断功能使用说明
符号
IE
IE1
IP
IP1
描述
Interrupt Enable
Register
Interrupt Enable
Register 1
Interrupt Priority
Register
Interrupt Priority
Register 1
地址
Bit 7
Bit 6
Bit 5
Bit 4
Interrupt
Bit 3
Bit 2
Bit 1
Bit 0
重置值
A8H
EA
-
ET2
ES
ET1
EX1
ET0
EX0
00H
A9H
-
-
-
-
-
-
ETWSI
-
00H
B8H
-
-
PT2
PS
PT1
PX1
PT0
PX0
00H
B9H
-
-
-
-
-
-
PTWSI
-
00H
3
ET1
2
EX1
符号: IE
7
EA
6
-
5
ET2
4
ES0
1
ET0
0
EX0
地址: A8h
Reset
00h
EA: EA=0 –禁能所有中断。
EA=1 –使能所有中断。
ET2: ET2=0 –禁能定时器 2 中断。
ET2=1 –使能定时器 2 中断。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 38 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
ES: ES=0 –禁能串行口中断。
ES=1 –使能串行口中断。
ET1: ET1=0 –禁能定时器 1 中断。
ET1=1 –使能定时器 1 中断。
EX1: EX1=0 –禁能外部中断 1。
EX1=1 –使能外部中断 1。
ET0: ET0=0 –禁能定时器 0 中断。
ET0=1 –使能定时器 0 中断。
EX0: EX0=0 –禁能外部中断 0。
EX0=1 –使能外部中断 0。
符号: IE1
7
-
6
-
5
-
4
-
3
-
2
-
1
ETWSI
0
-
地址: A9h
Reset
00h
3
PT1
2
PX1
1
PT0
0
PX0
地址: B8h
Reset
00H
0
-
地址: B9h
Reset
00H
ETWSI: ETWSI =0 –禁能 TWSI 中断。
ETWSI =1 –使能 TWSI 中断。
符号: IP
7
-
6
-
5
PT2
4
PS
PT2: 定时器 2 中断优先位,当 PT2=1 时,最高优先权。
PS: 串行口中断优先位,当 PS=1 时候,最高优先权。
PT1: 定时器 1 中断优先位,当 PT1=1 时,最高优先权。
PX1: 外部中断 1 优先位,当 PX1=1 时候,最高优先权。
PT0: 定时器 0 中断优先位,当 PT0=1 时,最高优先权。
PX0: 外部中断 0 优先位,当 PX0=1 时候,最高优先权。
符号: IP1
7
-
6
-
5
-
4
-
3
-
2
-
1
PTWSI
PTWSI: TWSI 中断优先位,当 TWSI=1 时候,最高优先权。
IP.x
1
0
Interrupt Priority Table
Priority Level
1
(highest)
2
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 39 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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
WDTC
WDT time-out
reset
Refresh
WDT Counter
WDTEN
CLR
图. 10-1: Watchdog timer block diagram
符号
WDTC
SCONF
描述
Watchdog timer
control register
System Control
Register
地址
Bit 7
9FH
WDTE
-
CLEAR
-
-
BFH
WDR
-
-
PDWUE
-
Bit 6
Bit 5
Bit 4
Watchdog Timer
Bit 3
Bit 2
Bit 1
Bit 0
PS [2:0]
-
OME
重置值
00H
ALEI
02H
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 40 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
符号: WDTC
7
6
WDTE
-
5
CLEAR
4
-
3
-
2
1
PS [2:0]
0
地址: 9Fh
Reset
00H
WDTE: 看门狗定时器使能位。
CLEAR: 设置看门狗定时器的清除位。
如果设定为 1,WDT 被清除并重新启动开始计数。
PS[2:0]: 看门狗定时器溢出周期标志位。
符号: SCONF
7
6
WDR
-
5
PDWUE
4
-
3
-
2
-
1
OME
地址: BFh
0
Reset
ALEI
02H
WDR: 看门狗重置旗标。
此旗标于芯片之复位信号是由看门狗重置产生时由硬件自动设置。此旗标可由软件清零。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 41 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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将僅能以硬件重置退出该模式。
符号: SCONF
7
6
WDR
-
5
-
4
PDWUE
3
-
2
-
1
OME
地址: BFh
0
Reset
ALEI
02H
PDWUE: 掉电模式唤醒使能位。
设为 1 时始能 INT0/INT1 可唤醒掉电模式的功能。
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-M084
Ver D SM8954B 08/07/2015
- 42 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
12. 脉宽调制器(PWM)
SM8954B有2路PWM通道。可依据PWMCn中的PBS位设定成8位或5位PWM分辨率。
System clock
PWMPS
(2-bit timer)
4
MUX
PWMCLK
PWMTB
(8-bit timer)
COUNT[7:0]
8-bit or 5-bit Logic
Comparator
CMPOUT
PWMOUTn
To P1.2 and P1.3
2
{ PFS1,PFS0 }
PBS
( 1 for 5-bit PWM)
PWMDn[7:5]
PWMDn[4:0]
n=0,1
Figure : PWMn functional block
符号
P1CON
PWMC0
PWMC1
PWMD0
PWMD1
描述
P1 Control
Register
PWM Control
Register 0
PWM Control
Register 1
PWM Data
Register 0
PWM Data
Register 1
地址
Bit 7
Bit 6
9BH
SDAE
SCLE
-
D3H
-
-
D4H
-
B3H
B4H
符号: P1CON
7
6
SDAE
SCLE
Bit 3
Bit 2
Bit 1
Bit 0
重置值
-
PWM1E
PWM0E
-
-
00H
-
-
-
PBS
PFS1
PFS0
00H
-
-
-
-
PBS
PFS1
PFS0
00H
D0.7
D0.6
D0.5
D0.4
D0.3
D0.2
D0.1
D0.0
00H
D1.7
D1.6
D1.5
D1.4
D1.3
D1.2
D1.1
D1.0
00H
5
-
Bit 5
Bit 4
PWM
4
-
3
PWM1E
2
PWM0E
1
-
2
PBS
1
PFS1
0
-
地址: 9BH
Reset
00h
PWM1E: 设 1 可将 P1[3]当 PWM 通道 1 输出。
PWM0E: 设 1 可将 P1[3]当 PWM 通道 0 输出。
符号: PWMC[0:1]
7
6
-
5
-
4
-
3
-
地址: D3h & D4h
0
Reset
PFS0
00h
PBS: 设 1 时 PWM 为 5 位分辨率。
PFS [1:0]: PWM 时钟除频选择:
PFS1
0
0
1
1
PFS0
0
1
0
1
PWM clock divider select
2
4
8
16
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 43 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
符号: PWMD[0:1]
7
6
Dn.7
Dn.6
5
Dn.5
4
Dn.4
3
Dn.3
2
Dn.2
1
Dn.1
地址: B3h & B4h
0
Reset
Dn.0
00h
n=0 或1。
当PWM设为8位时,Dn.7 ~ Dn.0为8位PWM数值寄存器。
当PWM设为5位时,Dn.4 ~ Dn.0为5位PWM数值寄存器。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 44 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
13. Two-Wire Series Interface (TWSI)
两线串口传输 (TWSI) 相容于IIC规范,可使用SCL(时钟)和SDA(数据)线来联系其它的IIC界面。
符号
P1CON
TWSIS
TWSIA
TWSIC1
TWSIC2
TWSITXD
TWSIRXD
IFR
描述
P1 Control
Register
TWSI Status
Register
TWSI Address
Register
TWSIC Control
Register 1
TWSIC Control
Register 2
TWSI TX Data
Register
TWSI RX Data
Register
Interrupt Flag
Register
地址
Bit 7
Bit 6
Bit 5
TWSI
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
重置值
9BH
SDAE
SCLE
-
-
PWM1
E
PWM0
E
-
-
00H
C0H
RXIF
TXIF
TFAIL
NAKIF
-
RXACK
MST
TXACK
00H
C1H
ADR.6
ADR.5
ADR.4
ADR.3
ADR.2
ADR.1
ADR.0
C2H
TWSIE
-
-
-
TWSIF
S2
TWSIF
S1
C3H
MATC
H
SRW
-
-
Bus
Busy
RESTA
RT
ADR
MK
TWSIF
S0
-
-
MRW
00H
C4H
TXD.7
TXD.6
TXD.5
TXD.4
TXD.3
TXD.2
TXD.1
TXD.0
FFH
C5H
RXD.7
RXD.6
RXD.5
RXD.4
RXD.3
RXD.2
RXD.1
RXD.0
00H
AAH
-
-
-
-
-
-
TWSIIF
-
00H
5
-
4
-
符号: P1CON
7
6
SDAE
SCLE
3
PWM1E
2
PWM0E
1
-
3
-
2
RXACK
1
MST
0
-
地址: 9Bh
Reset
00h
SDAE: 设 1 可将 P1[7]当 SDA 脚。
SCLE: 设 1 可将 P1[6]当 SCL 脚。
符号: TWSIS
7
6
RXIF
TXIF
5
TFAIL
4
NAKIF
地址: C0h
0
Reset
TXACK
00h
RXIF: 数据接收中断标志位,在 TWSIRXD 载入一个新的接收数据时被置位。
TXIF: 数据传输中断标志位,当所有位于转换寄存器中的位数据被传输时,该位被置
位。
TFAIL: 当传输数据失败时此标志会设为 1。(仅主机模式)
NAKIF: NACK 中断标志位。(仅主机模式)
RXACK: 接收确认位。置零,这意味着一个确认信号已经收到在完成 8 位数据传输总线
上后。(只读)
MST: 设 1 工作在主机模式。
TXACK: 传输确认位。当收到完整的 8 位数据,此位将设置(NACK) 或清除(ACK) 并传输
到主机显示接收状态。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 45 -
A0H
01H
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
符号: TWSIA
7
6
ADR.6
ADR.5
5
ADR.4
4
ADR.3
3
ADR.2
2
ADR.1
地址: C1h
0
Reset
ADRMK
A0h
1
ADR.0
ADR[6:0]: 从机地址寄存器。
ADRMK: 地址屏蔽位。若设为 1 仅比对 4 位的 MSB,ADR.2 – ADR.0 将被排除,指比对
ADR.6-ADR.3 是否正确。
符号: TWSIC1
7
6
TWSIE
-
5
-
4
-
3
BusBusy
2
TWSIFS2
1
TWSIFS1
地址: C2h
0
Reset
TWSIFS0
01h
TWSIE: TWSI 功能始能位。
BusBusy: 当 TWSI 总线被侦测到“START”条件,这个标志位将会被设为 1。当 TWSI 总线
被侦测到“STOP” 条件,这个标志位将会被清除为 0。(只读)
TWSIFS[2:0]: TWSI 时钟速率选择。(仅主机模式)
SCL 频率
Xtal/32
Xtal/64 (默认值)
Xtal/128
Xtal/256
Xtal/512
Xtal/1024
Xtal/2048
Xtal/4096
TWSIFS[2:0]
000
001
010
011
100
101
110
111
符号: TWSIC2
7
6
MATCH
SRW
5
-
4
-
3
RESTART
2
-
地址: C3h
0
Reset
MRW
00h
1
-
MATCH: 当来自主机模式方的接收地址匹配时,该位将被硬件置位。(只读 & 仅从机模
式)
SRW: 当从机为传送时,该标志位会设为 1。当从机为接收时,该标志位会设为 0。
(只读 & 仅从机模式)
RESTART: 当主机传出“START” 条件,主机接收到 ACK 讯号后,该标志位将设为 1。如果
NAKIF 被设为 1 时(即接收到 NAK 讯号),该标志位将被清除为 0。(仅主机
模式)
MRW: 它用来告诉从属模式中将来的通信的方向。如设置为 1,模块在主模式中为接收
方,如是 0,模块在主模式中为传输方。(仅主机模式)
符号: TWSITXD
7
6
TXD.7
TXD.6
5
TXD.5
4
TXD.4
3
TXD.3
2
TXD.2
1
TXD.1
0
TXD.0
地址: C4h
Reset
FFh
TWSITXD: 在传输模式中,该字节通过该 SDA 被转换。
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 46 -
SM8954B
内嵌 16KB 的 Flash
和 1KB RAM 的 8 位控制器
符号: TWSIRXD
7
6
RXD.7
RXD.6
5
RXD.5
4
RXD.4
3
RXD.3
2
RXD.2
1
RXD.1
0
RXD.0
1
TWSIIF
0
-
地址: C5h
Reset
00h
TWSIRXD: 在接收(读)模式中,接收的字节存储于此。
符号: IFR
7
-
6
-
5
-
4
-
3
-
2
-
地址: AAh
Reset
00h
TWSIIF: 若 RXIF、TXIF、TFIF 与 NAKIF 任一个标志位设为 1。(只读)
Specifications subject to change without notice contact your sales representatives for the most recent information.
ISSFD-M084
Ver D SM8954B 08/07/2015
- 47 -
SM8954B
内嵌 16KB 的 Flash
和 1KB 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-M084
Ver D SM8954B 08/07/2015
- 48 -