SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
目录
目录.......................................................................................................................................... 1
1 总体描述................................................................................................................................ 5
2 主要特色 ............................................................................................................................... 5
3 管脚定义 ............................................................................................................................... 6
3.1 管脚配置 ..................................................................................................................................................... 6
3.2 管脚定义 ..................................................................................................................................................... 7
4 内部方框图 ............................................................................................................................ 9
5 FLASH ROM 和 SRAM 结构 ............................................................................................... 10
5.1 FLASH ROM ............................................................................................................................................ 10
5.2 CODE OPTION 区域(用户烧写设置) ................................................................................................... 11
5.3 SRAM ....................................................................................................................................................... 12
6 特殊功能寄存器(SFR) ......................................................................................................... 14
6.1 SFR 映像 .................................................................................................................................................. 14
6.2 SFR 说明 .................................................................................................................................................. 14
7 电源、复位和时钟 ............................................................................................................... 16
7.1 电源电路 ................................................................................................................................................... 16
7.2 上电复位过程 ........................................................................................................................................... 16
7.3 复位方式 ................................................................................................................................................... 17
7.3.1 外部 RST 复位................................................................................................................................ 17
7.3.2 低电压复位 LVR ............................................................................................................................. 17
7.3.3 上电复位 POR ................................................................................................................................ 18
7.3.4 看门狗复位 WDT ............................................................................................................................ 18
7.3.5 复位初始状态 ................................................................................................................................. 19
7.4 高频系统时钟电路 .................................................................................................................................... 19
7.5 低频时钟定时器 ........................................................................................................................................ 20
7.6 省电模式 STOP ........................................................................................................................................ 21
8 中央处理单元 CPU 及指令系统 ........................................................................................... 21
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
8.1 CPU .......................................................................................................................................................... 21
8.2 寻址方式 ................................................................................................................................................... 21
8.2.1 立即寻址......................................................................................................................................... 21
8.2.2 直接寻址......................................................................................................................................... 21
8.2.3 间接寻址......................................................................................................................................... 21
8.2.4 寄存器寻址 ..................................................................................................................................... 21
8.2.5 相对寻址......................................................................................................................................... 22
8.2.6 变址寻址......................................................................................................................................... 22
8.2.7 位寻址 ............................................................................................................................................ 22
8.3 指令系统 ................................................................................................................................................... 22
9 INTERRUPT 中断 ............................................................................................................... 24
9.1 中断源、向量............................................................................................................................................ 24
9.2 中断结构图 ............................................................................................................................................... 26
9.3 中断优先级 ............................................................................................................................................... 26
9.4 中断处理流程............................................................................................................................................ 27
9.5 中断相关 SFR 寄存器 ............................................................................................................................... 27
10 定时器 TIMER0 、TIMER1 ............................................................................................... 29
10.1 T0 和 T1 相关特殊功能寄存器 ................................................................................................................ 29
10.2 T0 工作模式............................................................................................................................................ 31
10.3 T1 工作模式............................................................................................................................................ 33
11 PWM ................................................................................................................................. 34
11.1 PWM 结构框图 ....................................................................................................................................... 35
11.2 PWM 相关 SFR 寄存器 .......................................................................................................................... 35
11.3 PWM 波形及用法 ................................................................................................................................... 38
11.4 两路互补带死区 PWM 实现方法............................................................................................................. 40
12 GP I/O ............................................................................................................................... 44
12.1 GPIO 结构图 .......................................................................................................................................... 44
12.2 I/O 端口相关寄存器 ................................................................................................................................ 46
12.3 I/O 端口复用 ........................................................................................................................................... 47
Page 2 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
13 高灵敏度触控按键 TOUCH KEY SENSOR ....................................................................... 48
14 UART ................................................................................................................................ 48
14.1 UART 相关寄存器 .................................................................................................................................. 48
14.2 UART 工作模式说明 .............................................................................................................................. 50
15 软件 LCD 驱动 .................................................................................................................. 52
15.1 软件 LCD 驱动相关寄存器 ..................................................................................................................... 52
15.2 软件 LCD 驱动用法说明及注意事项 ....................................................................................................... 53
16 模数转换 ADC ................................................................................................................... 57
16.1 ADC 相关寄存器 .................................................................................................................................... 57
16.2 ADC 转换步骤 ........................................................................................................................................ 59
16.3 ADC 测量 VDD 电压............................................................................................................................... 59
17 IAP .................................................................................................................................... 60
17.1 IAP 操作相关寄存器 ............................................................................................................................... 60
17.2 256B IAP 操作流程和范例程序 .............................................................................................................. 62
17.3 8K 范围 IAP 应用说明 ............................................................................................................................ 62
18 电气特性 ........................................................................................................................... 63
18.1 极限参数 ................................................................................................................................................. 63
18.2 推荐工作条件 ......................................................................................................................................... 63
18.3 直流电气特性 ......................................................................................................................................... 63
18.4 交流电气特性 (VDD = 2.5V ~ 5.5V, TA = 25℃, 除非另有说明) ............................................................. 64
18.5 ADC 电气特性 (TA = 25℃, 除非另有说明) ............................................................................................ 64
19 应用电路 ........................................................................................................................... 65
20 订购信息 ........................................................................................................................... 66
21 封装信息 ........................................................................................................................... 67
Page 3 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
22 规格更改记录 .................................................................................................................... 68
Page 4 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
1 总体描述
SC91F8312 是一颗内置 Ftouch 电容型触摸按键功能的加强型超快速 1T 8051 工业级 Flash 微控制器,指令
系统完全兼容传统 8051 产品系列。SC91F8312 内部集成 12 路高性能触摸按键电路,其它资源还包括:8KB
Flash ROM(内部 256Byte 可作为 EEPROM)、512B SRAM、17 个 GP I/O、所有 IO 可作为软件 LCD 的 COM
或 SEG、2 个 16 位定时器、1 路独立波特率 UART、6 路 12 位高精度 ADC、3 路外部双沿中断口、2 路 8 位
PWM,其中 PWM0 可通过选择输出至 2 个不同的 IO、内部 1%高精度 16/8MHz 振荡器、内置 32k 振荡器。
为提高可靠性及简化客户电路,SC91F8312 内部也集成有 4 级可选电压 LVR、2.4V 基准 ADC 参考电压、
VDD 电压内部检测电路、WDT 等高可靠电源电路。SC91F8312 具有非常优异的抗干扰性能和抗 EMI 能力,非常
适合应用于智能家电、智能家居和消费类产品如:空调、洗衣机、微波炉、电磁炉、油烟机、消毒柜、电饭煲、
电压力锅、面包机等智能家电、智能家居系统等应用领域。
2 主要特色
工作电压:
2.4V~5.5V
工作温度:
封装:
内核:
存储器:
系统时钟:
-40 ~ 85℃
SOP20
超快速的 1T 8051
8KB Flash ROM(MOVC 禁止寻址 0000H~00FFH), 其中包含 256B 可 IAP
512B SRAM
内建 16MHz 振荡器
IC 工作的系统时钟,可通过编程器选择设定为 16/8MHz
频率误差: 跨越 (4.5~5.5V) 及 (-20℃~85℃)应用环境,不超过 ±1%
低电压复位(LVR):
复位电压有 4 级可选:分别是: 3.65V、3.50V、2.75V、2.60V
缺省值为用户烧写 Code Option 所选值
Flash 烧写: 4 线串口烧写接口
中断(INT):
TIMER0、TIMER1、INT1~3、ADC、PWM、UART、TKS、X32K 共 10 个中断源
INT1/2/3 可设为上升沿、下降沿、双沿中断
两级中断优先级可设
数字外围:
12 路 Touch Key 电路
17 个 GP I/O,4 种模式可设,P1/2 有大灌电流能力
16 位 WDT,可选时钟分频比
2 个标准 80C51 16 位定时器 TIMER0 及 TIMER1
2 路共用周期、单独可调占空比的 8 位 PWM,PWM0 可切换输出至两个不同的 IO 口
1 路自带波特率发生器的 UART
1 路源于内部 32k 振荡的 Base Timer,用于定时唤醒功能以节省耗电
LCD 功能,所有 IO 可以输出 1/2VDD、1/3VDD、2/3VDD 电压,用作 LCD 的 COM 或
SEG 输出
模拟外围:
6 路 12 位 ADC
1) 内建基准的 2.4V 参考电压
2) ADC 的参考电压有 2 种选择,分别是 VDD 和 内部 2.4V
3) AIN0 内部可接到 1/3VDD,配合内部 2.4V 参考电压用于测量 VDD 电压
4) AIN1~AIN4 和 AIN7 可由外部输入
省电模式:
STOP MODE, 可由 INT1~3、内部 32k 振荡器、外部 RSTN 唤醒 STOP MODE
Page 5 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
3 管脚定义
3.1 管脚配置
1
20
P00 / TK0 / PWM0A
CMOD
2
19
P01 / TK1 / PWM1A
VSS
3
18
P02 / TK2
ENB / RSTN / P11
4
17
P03 / TK3
CLK / RXD / P12
5
16
P04 / TK4
TXD / INT1 / P13
6
15
P05 / TK5
DIO / PWM0 / INT2 / P14
7
14
P20 / T0 / TK8
CEN / AIN7 / INT3 / P15
8
13
P21 / T1 / TK9
AIN4 / TK15 / P27
9
12
P24 / TK12 / AIN1
AIN3 / TK14 / P26
10
11
P25 / TK13 / AIN2
SC91F8312
VDD
Page 6 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
3.2 管脚定义
管脚编号
管脚名称
管脚
功能说明
类型
1
VDD
Power
2
CMOD
I
3
VSS
Power
4
P1.1/RSTN/ENB
I/O
5
P1.2/RXD/CLK
I/O
6
P1.3/INT1/TXD
I/O
7
P1.4/INT2/PWM0/ DIO
I/O
8
P1.5/INT3/AIN7/CEN
I/O
9
P2.7/TK15/AIN4
I/O
10
P2.6/TK14/AIN3
I/O
11
P2.5/TK13/AIN2
I/O
电源
Touch Key 触控外接电容
接地
1) P1.1 :
GPIO P1.1 大灌电流口
2) RSTN :
复位管脚
3) ENB :
烧录管脚 ENB
1) P1.2 :
GPIO P1.2 大灌电流口
2) RXD :
UART RXD
3) CLK :
烧录管脚 CLK
1) P1.3 :
GPIO P1.3 大灌电流口
2) INT1:
外部中断输入 1
3) TXD :
UART TXD
1) P1.4:
GPIO P1.4 大灌电流口
2) INT2:
外部中断输入 2
3) PWM0:
PWM0 输出口之一
4) DIO:
烧录管脚 DIO
1) P1.5 :
GPIO P1.5 大灌电流口
2) INT3:
外部中断输入 3
3) AIN7:
ADC 输入通道 7
4) CEN :
烧录管脚 CEN
1) P2.7 :
GPIO P2.7 大灌电流口
2) TK15 :
TK 的通道 15
3) AIN4 :
ADC 输入通道 4
1) P2.6 :
GPIO P2.6 大灌电流口
2) TK14 :
TK 的通道 14
3) AIN3 :
ADC 输入通道 3
1) P2.5 :
Page 7 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
2)
3)
12
P2.4/TK12/AIN1
I/O
1)
2)
3)
13
P2.1 /T1/TK9
I/O
1)
2)
3)
14
P2.0 /T0/TK8
I/O
1)
2)
3)
15
P0.5/TK5
I/O
1)
2)
16
P0.4/TK4
I/O
1)
2)
17
P0.3/TK3
I/O
1)
2)
18
P0.2/TK2
I/O
1)
2)
19
P0.1/TK1/PWM1A
I/O
1)
2)
3)
20
P0.0/TK0/PWM0A
I/O
1)
2)
3)
GPIO P2.5 大灌电流口
TK13 :
TK 的通道 13
AIN2 :
ADC 输入通道 2
P2.4 :
GPIO P2.4 大灌电流口
TK12 :
TK 的通道 12
AIN1 :
ADC 输入通道 1
P2.1 :
GPIO P2.1 大灌电流口
T1 :
Timer1 外部输入口
TK9 :
TK 的通道 9
P2.0 :
GPIO P2.0 大灌电流口
T0 :
Timer0 外部输入口
TK8 :
TK 的通道 8
P0.5 :
GPIO P0.5
TK5 :
TK 的通道 5
P0.4 :
GPIO P0.4
TK4 :
TK 的通道 4
P0.3 :
GPIO P0.3
TK3 :
TK 的通道 3
P0.2 :
GPIO P0.2
TK2 :
TK 的通道 2
P0.1 :
GPIO P0.1
TK1 :
TK 的通道 1
PWM1A
PWM1 输出口
P0.0 :
GPIO P0.0
TK0 :
TK 的通道 0
PWM0A
PWM0 输出口之一
Page 8 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
4 内部方框图
LDO
&
Power Manager
BandGap
Voltage
Reference
LVD
512B
RAM
LVR
Controller
reset
EEPROM
WDT
WAKECNT
32K IRC
IRC
Regulator
IRC
Voltage
Reference
Controller
16MHz
IRC
Clock
Controller
clock
ADC
Controller
1T 8051 CORE
2.4V
REG
ADC
Touch Key
Controller
8KB
Program
ROM
(Flash)
UART
+
BaudRate
Generator
TIMER0
TIMER1
LCD
Bias Voltage
Generator
PWM
I/O
interrupt
Touch Key
Sensor
Interrupt Controller
IO PADS
SC91F8312 BLOCK DIAGRAM
Page 9 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
5 FLASH ROM 和 SRAM 结构
SC91F8312 的 Flash ROM 和 SRAM 结构如下:
1FFFh
00FFh
外部RAM
EEPROM
(通过MOVX/DPTR寻址)
1F00h
0000h
RAM
Flash ROM
For Program
(间接寻址)
FFh
80h
7Fh
0000h
00h
SFR
(直接寻址)
RAM
(直接寻址或间接寻址)
Flash ROM和SRAM结构图
5.1 FLASH ROM
SC91F8312 有 8KB 的 Flash ROM,ROM 地址为 0000H~1FFFH,其中地址为 1F00H~1FFFH 的 256Byte
Flash 可以作为 EEPROM 使用(即支持用户在程式中擦写,详细操作请看 IAP 章节)。此 8KB Flash ROM 可反
复擦写 10 万次,可通过 SinOneChip 提供的专用 ICP 烧写器(量产脱机工具 Pro51/Pro52,在线开发工具
DPT51/DPT52)来进行编程及擦除。为程序保密,地址为 0000H~00FFH 地址的 256B 区间 MOVC 指令不可寻址。
SC91F8312 的 8KB Flash ROM 能提供查空 BLANK、编程 PROGRAM、校验 VERIFY 的功能,但不提供读
取 READ 的功能。特别提出,此 Flash 写入前无需执行擦除 ERASE。
注意:
SC91F8312 的 8KB Flash ROM 最高 4 Byte 地址(地址 1FFCH~1FFFH)存放有 IC 出厂参数,用户在使用
过程中需避免对这些地址进行操作,以防修改出厂参数引起 MCU 功能异常。
SC91F8312 的 Flash ROM 通过 Pin4(ENB)、Pin8(CEN)、Pin5(CLK)、Pin7(DIO)、VDD、VSS
来进行编程,具体连接关系如下:
Page 10 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
SOC
Pro51/Pro52
MCU
VDD
ENB
CEN
CLK
DIO
GND
用户应用电路
Jumper
ICP模式 Flash Writer编程连接示意图
5.2 CODE OPTION 区域(用户烧写设置)
SC91F8312 内部有单独的一块 Flash 区域用于保存客户的上电初始值设置,此区域称为 Code Option 区域。
用户在烧写 IC 时将此部分代码写入 IC 内部,IC 在复位初始化时,就会将此设置调入 SFR 作为初始设置。
IFB
Bit-7
Bit-6
Bit-5
IFB1
IFB2
IFB3
-
-
-
IFB1 编号
4
符号
DISLVR
3~0
LVRS [3:0]
IFB2 编号
3
符号
IAPS
IFB3 编号
4
符号
ENWDT
2
Vrefs
Bit-4
DISLVR
ENWDT
Bit-3
Bit-2
Bit-1
Bit-0
LVRS[3:0]
IAPS
-
Vrefs
-
IRCFS[1:0]
说明
LVR 开关
0:LVR 有效
1:LVR 无效
LVR 电压选择控制
1011: 3.65V 复位
1010: 3.50V 复位
0110: 2.75V 复位
0101: 2.60V 复位
此电压点的值为常温值,实际值随温度会发生一些变化(约±0.1V@40~85℃),具体表现为温度越高 LVR 电压点会下降,温度越低 LVR 电
压点会抬高。
说明
IAP 空间范围选择
0:仅 1F00H~1FFFH 范围内可以 IAP 操作
1:8K 范围内可以 IAP 操作
说明
WDT 开关
0:WDT 无效
1:WDT 有效(但 IC 在执行 IAP 过程中 WDT 停止计数)
ADC 参考电压选择
Page 11 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
0
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
IRCFS[1:0]
0:内部 VDD
1:内部精准的 2.4V
IRC 频率选择控制
00: IRC 频率为 16MHz
01: IRC 频率为 8MHz
10: 保留
11: 保留
5.3 SRAM
SC91F8312 单片机内部集成了 512B 的 SRAM,分为内部 RAM 和外部 RAM。内部 RAM 的地址范围为
00H~FFH,其中高 128B(地址 80H~FFH)只能间接寻址,低 128B(地址 00H~7FH)可直接寻址也可间接寻
址。
特殊功能寄存器 SFR 的地址也是 80H~FFH。但 SFR 同内部高 128B SRAM 的区别是:SFR 寄存器是直接寻
址,而内部高 128B SRAM 只能是间接寻址。
外部 RAM 的地址为 00H~FFH,但需通过 MOVX 指令来寻址。
内部 256B SRAM:
内部低 128B SRAM 区可分为三部分:①工作寄存器组 0~3,地址 00H~1FH,程序状态字寄存器 PSW 中的
RS0、RS1 组合决定了当前使用的工作寄存器,使用工作寄存器组 0~3 可加快运算的速度;②位寻址区 20H~2FH,
此区域用户可以用作普通 RAM 也可用作按位寻址 RAM;按位寻址时,位的地址为 00H~7FH,(此地址按位编地
址,不同于通用 SRAM 按字节编地址),程序中可由指令区分;③用户 RAM 和堆栈区,SC91F8312 复位过后,
8 位的堆栈指针指向堆栈区,用户一般会在初始化程序时设置初值,建议设置在 E0H~FFH 的单元区间。
FFH
FFH
高128B RAM
(只能间接寻址)
特殊功能寄存器SFR
(直接寻址)
80H
80H
7FH
低128B RAM
(可直接寻址;也可间接寻址)
00H
内部256B RAM结构图
内部低 128B RAM 结构如下:
Page 12 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
7FH
用户RAM及堆栈RAM区
30H
2FH
位寻址RAM区
20H
1FH
工作寄存器组3
18H
17H
工作寄存器组2
10H
0FH
工作寄存器组1
7F
7E
7D
7C
7B
7A
79
78
2FH
77
76
75
74
73
72
71
70
2EH
6F
6E
6D
6C
6B
6A
69
68
2DH
67
66
65
64
63
62
61
60
2CH
5F
5E
5D
5C
5B
5A
59
58
2BH
57
56
55
54
53
52
51
50
2AH
4F
4E
4D
4C
4B
4A
49
48
29H
47
46
45
44
43
42
41
40
28H
3F
3E
3D
3C
3B
3A
39
38
27H
37
36
35
34
33
32
31
30
26H
2F
2E
2D
2C
2B
2A
29
28
25H
27
26
25
24
23
22
21
20
24H
1F
1E
1D
1C
1B
1A
19
18
23H
17
16
15
14
13
12
11
10
22H
0F
0E
0D
0C
0B
0A
09
08
21H
07
06
05
04
03
02
01
00
20H
08H
07H
工作寄存器组0
00H
SRAM结构图
外部 256B SRAM:
外部 256B SRAM 支持传统的访问外部 RAM 方法。使用 MOVX A, @Ri 或 MOVX @Ri, A 来访问外部 256 字节
RAM;也可以用 MOVX A, @DPTR 或 MOVX @DPTR﹐A 来访问外部 256 字节 RAM。
Page 13 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
6 特殊功能寄存器(SFR)
6.1 SFR 映像
SC91F8312 系列有一些特殊功能寄存器,我们称为 SFR。这些 SFR 寄存器的地址位于 80H~FFH,有些可以
位寻址,有些不能位寻址。能够进行位寻址操作的寄存器的地址末位数都是“0”或“8”,这些寄存器在需要改变单个
位的数值时非常方便。所有的 SFR 特殊功能寄存器都必须使用直接寻址方式寻址。
SC91F8312 的特殊功能寄存器名称及地址如下表:
0/8
1/9
2/A
3/B
4/C
5/D
6/E
7/F
F8h
PWMCR
PWMPRD
PWMDTY1
PWMDTY0
PWMCFG
-
-
-
F0h
B
-
-
-
-
-
RSTCFG
-
E8h
-
-
IAPKEY
IAPADH
IAPADL
IAPDAT
IAPCTL
-
E0h
ACC
-
-
-
-
-
-
-
D8h
-
-
-
-
-
-
-
-
D0h
PSW
-
-
-
-
-
-
-
C8h
-
WDTCR
X32CTL
-
-
-
-
-
C0h
-
-
-
-
ADCCFG
ADCCR
ADCVH
ADCVL
B8h
IP
-
-
-
-
-
-
-
B0h
-
-
EXIE
EXIP
-
-
A8h
IE
-
-
-
-
-
-
LCDVOS
A0h
P2
P2CFG1
P2CFG0
P0LCDVO
P1LCDVO
P2LCDVO
-
-
98h
SCON
SBUF
BAUDGL
BAUDGH
-
-
-
-
90h
P1
P1CFG1
P1CFG0
P1IT
-
-
-
-
88h
TCON
TMOD
TL0
TL1
TH0
TH1
TMCON
-
80h
P0
SP
DPL
DPH
P0CFG1
P0CFG0
-
PCON
可位寻址
不可位寻址
说明:
1.SFR 寄存器中空的部分代表没有此寄存器 RAM,不建议用户使用。
2.SFR 中的 C3H、F7H、FEH、FFH 为系统配置使用的特殊功能寄存器,用户使用可能会导致系统异常,用
户在初始化系统时,不能对此 4 个寄存器进行清零或其它操作。
6.2 SFR 说明
特殊功能寄存器 SFR 的具体解释说明如下:
符号
地址
说明
7
6
5
4
-
-
P0.5
P0.4
3
2
1
0
P0.3
P0.2
P0.1
P0.0
上电初始值
P0
80H P0 口数据寄存器
SP
81H 堆栈指针
DPL
DPH
P0CFG1
84H P0 口模式设定寄存器 1
-
-
P05M[1:0]
P04M[1:0]
xxxx1010b
P0CFG0
85H P0 口模式设定寄存器 0
P03M[1:0]
P02M[1:0]
P01M[1:0]
P00M[1:0]
10101010b
PCON
87H 电源管理控制寄存器
TCON
88H 定时器控制寄存器
xx111111b
SP[7:0]
00000111b
82H DPTR 数据指针低位
DPL[7:0]
00000000b
83H DPTR 数据指针高位
DPH[7:0]
00000000b
-
-
-
-
-
-
STOP
-
xxxxxx0xb
TF1
TR1
TF0
TR0
-
-
-
-
0000xxxxb
GATE1
C/T1
M11
M01
GATE0
C/T0
M10
M00
00000000b
TMOD
89H 定时器工作模式寄存器
TL0
8AH 定时器 0 低 8 位
TL0[7:0]
00000000b
TL1
8BH 定时器 1 低 8 位
TL1[7:0]
00000000b
TH0
8CH 定时器 0 高 8 位
TH0[7:0]
Page 14 of 68
深圳市赛元微电子有限公司
00000000b
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
TH1
8DH 定时器 1 高 8 位
TMCON
8EH 定时器频率控制寄存器
-
-
-
-
-
-
T1FD
T0FD
xxxxxx00b
P1
90H P1 口数据寄存器
-
-
P1.5
P1.4
P1.3
P1.2
P1.1
-
xx11111xb
P1CFG1
91H P1 口模式设定寄存器
-
-
P15M[1:0]
P14M[1:0]
xxxx1010b
P1CFG0
92H P1 口模式设定寄存器
P13M[1:0]
P12M[1:0]
P11M[1:0]
-
101010xxb
P1IT
93H INT1/2/3 中断类型寄存器
SCON
98H 串口控制寄存器
TH1[7:0]
-
-
SM0
-
00000000b
INT3ES[1:0]
SM2
INT2ES[1:0]
REN
TB8
INT1ES[1:0]
RB8
TI
RI
xx000000b
0x000000b
SBUF
99H 串口数据缓存寄存器
SBUF[7:0]
00000000b
BAUDGL
9AH 波特率发生寄存器 L
BAUDG[7:0]
00000000b
BAUDGH
9BH 波特率发生寄存器 H
P2
A0H P2 口数据寄存器
P2CFG1
A1H P2 口模式设定寄存器
P27M[1:0]
P26M[1:0]
P25M[1:0]
P24M[1:0]
P2CFG0
A2H P2 口模式设定寄存器
-
-
P21M[1:0]
P20M[1:0]
P0LCDVO
A3H P0 LCD Bias 输出寄存器
P1LCDVO
A4H P1 LCD Bias 输出寄存器
P2LCDVO
A5H P2 LCD Bias 输出寄存器
ENBAUDG
-
P2.7
P2.6
-
BAUDG[13:8]
P2.5
P2.4
-
0x000100b
-
P2.1
P2.0
1111xx11b
10101010b
xxxx1010b
-
P05VO
P04VO
P03VO
P02VO
P01VO
P00VO
xx000000b
-
-
P15VO
P14VO
P13VO
P12VO
P11VO
-
xx00000xb
P27VO
P26VO
P25VO
P24VO
-
-
P21VO
P20VO
0000xx00b
ET1
E32K
ET0
ETK
00000000b
-
VOS
xxxx00x0b
IE
A8H 中断控制寄存器
EA
EADC
EPWM
EUART
LCDVOS
AFH LCD 电压输出控制寄存器
-
-
-
-
EXIE
B4H 外部中断使能控制寄存器
-
-
-
-
EINT3
EINT2
EINT1
-
xxxx000xb
EXIP
B5H 外部中断优先权设定寄存器
-
-
-
-
IPEX3
IPEX2
IPEX1
-
xxxx000xb
IP
B8H 中断优先权控制寄存器
-
IPADC
IPPWM
IPUART
IPT1
IP32K-
IPT0
IPTK
x0000000b
ADCCFG
C4H P1/2 口 ADC 配置寄存器
P15AIN7
-
-
P27AIN4
P26AIN3
P25AIN2
P24AIN1
VREFS
0xx0000nb
ADCCR
C5H ADC 控制寄存器
ADCEN
ADCS
LOWSP
EOC/
-
VOIRS[1:0]
ADCIS[2:0]
0000x000b
ADCIF
ADCVH
C6H ADC 结果寄存器, 储存转化后的结
ADCV[11:4]
xxxxxxxxb
果 ADCV[11:4]
ADCVL
C7H ADC 结果寄存器, 储存转化后的结
ADCV[3:0]
-
-
-
-
-
果 ADCV[3:0]
WDTCR
C9H WDT 控制寄存器
X32CTL
CAH 低频定时器控制寄存器
PSW
D0H 程序状态字寄存器
ACC
E0H 累加器
IAPKEY
EAH IAP 保护寄存器
IAPADH
EBH IAP 地址高位寄存器
IAPADL
ECH IAP 地址低 8 位寄存器
IAPDAT
EDH IAP 数据寄存器
IAPCTL
EEH IAP 控制寄存器
B
F0H B 寄存器
RSTCFG
F6H 复位设置寄存器
ENWDT
-
-
CLRWDT
-
CLKS
ENX32
ENCNT
X32IF
-
CY
AC
F0
RS1
RS0
WDTCKS[1:0]
X32IFS[2:0]
OV
-
P
-
00000000b
IAPADR[12:8]
xxx11111b
IAPADR[7:0]
11111111b
IAPDAT[7:0]
-
-
-
-
11111111b
PAYTIMES[1:0]
CMD[1:0]
B[7:0]
-
-
DISRST
DISLVR
ENPWM
PWMIF
PWM1OS
PWM0OS
000000x0b
00000000b
IAPKEY[7:0]
-
nxx0xx00b
0000x000b
ACC[7:0]
-
xxxxxxxxb
xxxx0000b
00000000b
LVRS[3:0]
xxnnnnnnb
设定门限电压及复位使能
PWMCR
F8H PWM 控制寄存器
PWMPRD
F9H PWM 周期设置寄存器
PWMPRD[7:0]
11111111b
PWMDTY1
FAH PWM1 高电平设置寄存器
PWMDTY1[7:0]
00000000b
PWMDTY0
FBH PWM0 高电平设置寄存器
PWMDTY0[7:0]
PWMCFG
FCH PWM 设置寄存器
-
-
INV1
INV0
DTY18
-
ENPWM1O
DTY08
ENPWM0O
00000000b
00000000b
PWMCKS[2:0]
xx00x000b
8051 CPU 内核常用特殊功能寄存器介绍:
1. 程序计数器 PC
程序计数器 PC 不属于 SFR 寄存器。PC 有 16 位,是用来控制指令执行顺序的寄存器。单片机上电或者复位
后,PC 值为 0000H,也即是说单片机程序从 0000H 地址开始执行程序。
2. 累加器 ACC(E0H)
累加器 ACC 是 8051 内核单片机的最常用的寄存器之一,指令系统中采用 A 作为助记符。常用来存放参加计
算或者逻辑运算的操作数及结果。
Page 15 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
3. B 寄存器(F0H)
B 寄存器在乘除法运算中必须与累加器 A 配合使用。乘法指令 MUL A,B 把累加器 A 和寄存器 B 中的 8 位无
符号数相乘,所得的 16 位乘积的低位字节放在 A 中,高位字节放在 B 中。除法指令 DIV A,B 是用 A 除以 B,整
数商放在 A 中,余数放在 B 中。寄存器 B 还可以作为通用的暂存寄存器使用。
4. 堆栈指针 SP(81H)
堆栈指针是一个 8 位的专用寄存器,它指示出堆栈顶部在通用 RAM 中的位置。单片机复位后,SP 初始值为
07H,即堆栈会从 08H 开始向上增加。08H~1FH 为工作寄存器组 1~3。
5. PSW(D0h) 程序状态字寄存器
7
6
5
4
3
2
1
0
位编号
CY
AC
F0
RS1
RS0
OV
P
符号
0
0
0
0
0
0
x
0
上电初始值
位编号
7
位符号
CY
6
AC
5
4~3
F0
RS1、RS0
2
0
OV
P
说明
标志位
1:加法运算最高位有进位,或者减法运算最高位有借位时
0:加法运算最高位无进位,或者减法运算最高位无借位时
进位辅助标志位(可在 BCD 码加减法运算时方便调整)
1:加法运算时在 bit3 位有进位,或减法运算在 bit3 位有借位时
0:无借位、进位
用户标志位
工作寄存器组选择位:
RS1
RS0
当前使用的工作寄存器组 0~3
0
0
组 0 (00H~07H)
0
1
组 1 (08H~0FH)
1
0
组 2 (10H~17H)
1
1
组 3 (18H~1FH)
溢出标志位
奇偶标志位。此标志位为累加器 ACC 中 1 的个数的奇偶值。
1:ACC 中 1 的个数为奇数
0:ACC 中 1 的个数为偶数(包括 0 个)
保留位
1
保留位
6. 数据指针 DPTR (82H、83H)
数据指针 DPTR 是一个 16 位的专用寄存器,由低 8 位 DPL(82H)和高 8 位 DPH(83H)组成。DPTR 是
以传统 8051 内核单片机中唯一可以直接进行 16 位操作的寄存器,也可以分别对 DPL 和 DPH 按 Byte 进行操作。
7 电源、复位和时钟
7.1 电源电路
SC91F8312 电源核心包括了 BG、LDO、POR、LVD/LVR 等电路,可实现在 2.4~5.5V 范围内可靠工作。此
外,IC 内建了一个经过调校的精准 2.4V 电压, 可用作 ADC 内部参考电压。用户可在 ADC 章节查找具体设置内容。
7.2 上电复位过程
SC91F8312 上电后, 在客户端软件执行前, 会经过以下的过程:
复位阶段
调入信息阶段
正常操作阶段
复位阶段
是指 SC91F8312 会一直处于复位的情况, 直到供应给 SC91F8312 的电压高过某一电压, 内部才开始有效的
Clock。复位阶段的时间长短和外部电源的上升速度有关,外部电源一定要高过用户编程 IC 时选定的 LVR 电压后,
复位阶段才会完成。
调入信息阶段
Page 16 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
在 SC91F8312 内部有一个预热计数器。在复位阶段期间,此预热计数器一直被清为 0,直到电压过了最高的
LVR 门坎后,该预热计数器开始计数。当内部的预热计数器计数到一定数目后, 每隔一定数量个 IRC clock 就会从
Flash ROM 中的 IFB(包含 Code Option)读出一个 byte 数据存放到内部系统寄存器中。直到预热完成后,该复
位信号才会结束。
正常操作阶段
结束调入信息阶段后, SC91F8312 开始从 Flash 中读取指令代码即进入正常操作阶段。这时的 LVR 电压值是
用户写入 Code Option 的设置值。
7.3 复位方式
SC91F8312 有 4 种复位方式:①外部 RST 复位②低电压复位 LVR③上电复位 POR④看门狗 WDT 复位。
7.3.1 外部 RST 复位
外部 RST 复位就是从外部 RST 给 SC91F8312 一定宽度的复位脉冲信号,来实现 SC91F8312 的复位。
RSTN/P1.1 管脚在上电时作为复位管脚使用,用户可以在复位结束后通过软件来将其修改为 P1.1 使用。修改
方法参考下面 LVR 部分关于 RSTCFG(F6H)的使用说明。
7.3.2 低电压复位 LVR
SC91F8312 内建了一个低电压复位电路。而复位的门限电压有 4 种选择, 缺省值 Default 是用户写入的 Option
值, 共有 4 种电压选择 3.65V、3.50V、2.75V、2.60V。
RSTCFG (F6h)复位设置寄存器(读/写)
7
6
5
4
3
2
1
0
位编号
DISRST
DISLVR
LVRS[3:0]
符号
读/写
读/写
读/写
读/写
x
x
0
n
n
n
n
n
上电初始值
位编号
7,6
5
位符号
保留位
DISRST
4
DISLVR
3~0
LVRS [3:0]
说明
保留位
IO/RST 复位切换控制
0 :P1.1 当复位脚使用
1 :P1.1 当正常的 I/O 管脚使用
LVR 使能设置
0:LVR 正常使用
1:LVR 无效
LVR 电压选择控制
1011: 3.65V 复位
1010: 3.50V 复位
0110: 2.75V 复位
0101: 2.60V 复位
其它值:保留
Page 17 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
SC91F8312 的复位部分电路结构图如下:
RSTN
pin
De-Bounce
3.65V
3.50V
LVD 2.75V
2.60V
De-Bounce (~2uS)
RESET
Code option
SFR
POR
(Power-Up Reset)
WatchDogTimer
Overflow
SC91F8312复位电路图
7.3.3 上电复位 POR
SC91F8312 内部有上电复位电路,当电源电压 VDD 上升到复位电压点时,系统自动复位。
7.3.4 看门狗复位 WDT
SC91F8312 有一个 16 位的 WDT,其时钟源为内部的 16MHz 振荡器。其系统结构如下图所示:
Fosc
Fosc / 64
Fosc / 16
Fosc / 8
Fosc / 2
16-bit Counter
Overflow
Reset
WDTCR[1:0] (WDTCKS[1:0])
WDTCR[7] (ENWDT)
ClearUp
WDTCR[4] (CLRWDT)
WDT系统结构图
WDTCR (C9h) 看门狗控制寄存器(读/写)
7
6
5
位编号
ENWDT
符号
读/写
读/写
0
x
x
上电初始值
位编号
7
位符号
ENWDT
4
CLRWDT
4
CLRWDT
读/写
0
3
x
2
x
1
0
WDTCKS[1:0]
读/写
0
0
说明
WDT 开关(此位由系统将用户 Code Option 所设的值调入)
1: WDT 开始工作
0: WDT 关闭
WDT 清“0”位(写 1 有效)
1 :WDT 计数器从 0 开始计数
Page 18 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
1,0
WDTCKS [1:0]
6,5,3,2
保留位
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
此位由系统硬件自动置 0
看门狗时钟选择(表中按照 16MHz 系统频率给出 WDT 的参考时间,如
使用其他时钟的用户,请同比例计算)
WDTCKS.1 WDTCKS.0 WDT 时钟频率 WDT 溢出时间
(@16MHz)
0
0
Fosc/64
262.144ms
0
1
Fosc/16
65.536ms
1
0
Fosc/8
32.768ms
1
1
Fosc/2
8.192ms
保留位
7.3.5 复位初始状态
当 SC91F8312 处于复位状态时,多数寄存器会回到其初始状态。看门狗 WDT 处于关闭的状态,PORT 口寄
存器为 FFh。程序计数器 PC 初始值为 0000h,堆栈指针 SP 初始值为 07h。“热启动”的 Reset(如 WDT、LVR、
软件复位等)不会影响到 SRAM,SRAM 值始终是复位前的值。SRAM 内容的丢失会发生在电源电压低到 RAM
无法保存为止。
SFR 寄存器的上电复位初始值如下表:
SFR 名称
ACC
B
PSW
SP
DPL
DPH
PCON
IE
IP
P0
P1
P2
P0CFG0
P0CFG1
P1CFG0
P1CFG1
P2CFG0
P2CFG1
TCON
TMOD
TH0
TL0
TH1
TL1
TMCON
EXIE
EXIP
初始值
00000000b
00000000b
000000x0b
00000111b
00000000b
00000000b
xxxxxx0xb
00000000b
x0000000b
xx111111b
xx11111xb
1111xx11b
10101010b
xxxx1010b
101010xxb
xxxx1010b
xxxx1010b
10101010b
0000xxxxb
00000000b
00000000b
00000000b
00000000b
00000000b
xxxxxx00b
xxxx000xb
xxxx000xb
SFR 名称
P1IT
SCON
SBUF
BAUDGL
BAUDGH
P0LCDVO
P1LCDVO
P2LCDVO
LCDVOS
ADCCFG
ADCCR
ADCVH
ADCVL
WDTCR
X32CTL
IAPKEY
IAPADH
IAPADL
IAPDAT
IAPCTL
RSTCFG
PWMCR
PWMPRD
PWMDTY1
PWMDTY0
PWMCFG
初始值
xx000000b
0x000000b
00000000b
00000000b
0x000100b
xx000000b
xx00000xb
0000xx00b
xxxx00x0b
0xx00000b
0000x000b
xxxxxxxxb
xxxxxxxxb
nxx0xx00b
0000x000b
00000000b
xxx11111b
11111111b
11111111b
xxxx0000b
xxnnnnnnb
00000000b
11111111b
00000000b
00000000b
xx00x000b
7.4 高频系统时钟电路
SC91F8312 内建了一个振荡频率可调的高精度 IRC 作为系统时钟, 出厂时被精确地调校至 16MHz@5V/25℃,
用户可以通过编程器的 Code Option 将系统时钟设置为 16/8MHz 使用。调校过程是过滤掉制程上的偏差对精度所
造成的影响。此 IRC 受工作的环境温度和工作电压影响会有一定的漂移,对于压漂(4.5V~5.5V)以及(-20℃
~85℃)的温漂一般状况会在 ±1% 以内。
Page 19 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
7.5 低频时钟定时器
SC91F8312 内建一个低频定时器电路 Base Timer,可选择内置 32k 振荡电路作为时钟源。该振荡器直接
连接一个 16-bit 的 Base Timer, 可以把 CPU 从 STOP mode 唤醒, 并且产生中断。用内部 32k 振荡器可实现
CPU 定时从 STOP 唤醒,实现省电。此振荡器都不会参与系统时钟运行。
32k Base Timer 内部振荡选择关系图如下:
内部32K IRC
振荡源
选择开关
Basetimer
Counter
CLKS
X32KIF
ENCNT
32K Base Timer 结构图
X32CTL (CAh) 低频定时器控制寄存器(读/写)
7
6
5
4
位编号
CLKS
ENX32
ENCNT
X32IF
符号
读/写
读/写
读/写
读/写
读/写
0
0
0
0
上电初始值
位编号
7
位符号
CLKS
6
ENX32
5
ENCNT
4
X32IF
2~0
X32IFS[2:0]
3
x
2
1
0
0
X32IFS[2:0]
读/写
0
0
说明
低频时钟定时器时钟源选择
0:时钟源为 32k IRC
1:保留
32k OSC 启动控制
0:所选择的 32kHz 振荡器关闭
1:所选择的 32kHz 振荡器起振
注意: 当设定 ENX32 为 1 后, 32kHz 的 Crystal Oscillator 可能需要耗费
10ms~25ms 的时间才能真正启动。 而当设定 ENX32 为 0 时, 内部的
Base Timer 会被清为 0。 所以, 第一次的 Base Timer 中断或许会慢一
点, 但是只要 ENX32 固定在 1 的情况下, 第二次以后的中断就会非常准
确。
32k Base Timer 计数器使能
0:计数器不计数
1:计数器开始计数
32k Base Timer 中断申请标志
当 CPU 接受 Base Timer 的中断后, 此标志位会被硬件自动清除。
用户也可以用软件清除.
低频时钟中断频率选择(32k Interrupt Frequency Selection)
000:每 15.625ms 产生一个中断
001:每 31.25ms 产生一个中断
010:每 62.5ms 产生一个中断
011:每 125ms 产生一个中断
100:每 0.25 s 产生一个 中断
Page 20 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
3
保留位
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
101:每 0.5 s 产生一个 中断
110:每 1.0 s 产生一个 中断
111:每 2.0 s 产生一个 中断
说明:使用内部 32k 振荡器,中断时间一般会有±20%以内的偏差。
保留位
注意事项:
1. 要改变 X32IFS[2:0] 前, 必须把 IE[2] 及 X32CTL[6] (ENX32) 设定成 0, 否则可能发生宕机的情况。
7.6 省电模式 STOP
SC91F8312 提供了一个特殊功能寄存器 PCON。只要对该寄存器 PCON.1 写入 1, 内部的高频系统时钟就会
停止, 进到 STOP 模式 , 达到省电功能。在 STOP 模式下, 用户可以通过外部中断 INT1~ INT3 把 SC91F8312 唤
醒,也可以通过外部复位将 STOP 唤醒。
PCON (87h) 电源控制寄存器(只写、*不可读 *)
7
6
5
4
3
2
1
0
位编号
STOP
符号
读/写
只写
x
x
x
x
x
x
0
x
上电初始值
位编号
1
位符号
STOP
说明
STOP 模式控制
0: 正常操作模式
1: 节能模式,内部高频晶振停止工作
8 中央处理单元 CPU 及指令系统
8.1 CPU
SC91F8312 所用的 CPU 是一个 超快速的 1T 标准 8051 内核,其指令完全兼容传统 8051 内核单片机。
8.2 寻址方式
SC91F8312 的 1T 8051 CPU 指令的寻址方式有:①立即寻址②直接寻址③间接寻址④寄存器寻址⑤相对寻
址⑥变址寻址⑦位寻址
8.2.1 立即寻址
立即寻址也称为立即数,它是在指令操作数中直接给出参加运算的操作数,指令举例如下:
MOV A, #50H (这条指令是将立即数 50H 送到累加器 A 中)
8.2.2 直接寻址
在直接寻址方式中,指令操作数域给出的是参加运算操作数的地址。直接寻址方式只能用来表示特殊功能寄
存器、内部数据寄存器和位地址空间。其中特殊功能寄存器和位地址空间只能用直接寻址方式访问。举例如下:
ANL 50H,#91H (表示 50H 单元中的数与立即数 91H 相“与”,结果存放在 50H 单元中。其中 50H 为直
接地址,表示内部数据寄存器 RAM 中的一个单元。)
8.2.3 间接寻址
间接寻址采用 R0 或 R1 前添加“@”符号来表示。假设 R1 中的数据是 40H,内部数据存储器 40H 单元的数据为
55H,则指令为
MOV A, @R1 ( 把数据 55H 传送至累加器 A)。
8.2.4 寄存器寻址
寄存器寻址时对选定的工作寄存器 R7~R0、累加器 A、通用寄存器 B、地址寄存器和进位 C 中的数进行操
作。其中寄存器 R7~R0 由指令码的低 3 位表示,ACC、B、DPTR 及进位位 C 隐含在指令码中。因此,寄存器寻
址也包含一种隐含寻址方式。寄存器工作区的选择由程序状态字寄存器 PSW 中的 RS1、RS0 来决定。指令操作
数指定的寄存器均指当前工作区的寄存器。
INC R0
是指(R0)+1→R0
Page 21 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
8.2.5 相对寻址
相对寻址是将程序计数器 PC 中的当前值与指令第二字节给出的数相加,其结果作为转移指令的转移地址。
转移地址也成为转移目的地址,PC 中的当前值成为基地址,指令第二字节给出的数成为偏移量。由于目的地址是
相对于 PC 中的基地址而言,所以这种寻址方式成为相对寻址。偏移量为带符号的数,所能表示的范围为+127~128.这种寻址方式主要用于转移指令。
JC $+50H
表示若进位位 C 为 0,则程序计数器 PC 中的内容不改变,即不转移。若进位位 C 为 1,则以 PC 中的当前
值及基地址,加上偏移量 50H 后所得到的结果作为该转移指令的目的地址。
8.2.6 变址寻址
在变址寻址方式中,指令操作数制定一个存放变址基址的变址寄存器。变址寻址时,偏移量与变址基值相加,
其结果作为操作数的地址。变址寄存器有程序计数器 PC 和地址寄存器 DPTR。
MOVC A, @A+DPTR
表示累加器 A 为偏移量寄存器,其内容与地址寄存器 DPTR 中的内容相加,其结果作为操作数的地址,取出
该单元中的数送入累加器 A 中。
8.2.7 位寻址
位寻址是指对一些可进行位操作的内部数据存储器 RAM 和特殊功能寄存器进行位操作时的寻址方式。在进行
位操作时,借助于进位位 C 作为位操作累加器,指令操作数直接给出该位的地址,然后根据操作码的性质对该位
进行位操作。位地址与字节直接寻址中的字节地址编码方式完全一样,主要由操作指令的性质加以区分,使用时
应特别注意。
MOV C, 20H
(将地址为 20H 的位操作寄存器值送入进位位 C 中。)
8.3 指令系统
1T 8051 指令系统
助记符
功能说明
字节
周期
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
1
1
1
1
2
1
1
1
1
1
2
2
2
1
2
2
2
1
2
2
2
1
2
3
3
1
2
3
3
1
2
6
3
1
2
1
1
2
2
算术操作指令
ADD A, Rn
ADD A, direct
ADD A, @Ri
ADD A, #data
ADDC A, Rn
ADDC A, direct
ADDC A, @Ri
ADDC A, #data
SUBB A, Rn
SUBB A, direct
SUBB A, @Ri
SUBB A, #data
INC A
INC Rn
INC direct
INC @Ri
DEC A
DEC Rn
DEC direct
DEC @Ri
INC DPTR
MUL AB
DIV AB
DA A
ANL A, Rn
ANL A, direct
ANL A, @Ri
寄存器内容加到累加器 A
直接地址单元中的数据加到累加器 A
间接 RAM 中的数据加到累加器 A
立即数加到累加器 A
寄存器带进位加到累加器
直接地址单元的内容带进位加到累加器
间接 RAM 内容带进位加到累加器
立即数带进位加到累加器
累加器带借位减寄存器内容
累加器带借位减直接地址单元的内容
累加器带借位减间接 RAM 中的内容
累加器带借位减立即数
累加器加 1
寄存器加 1
直接地址单元加 1
间接 RAM 单元加 1
累加器减 1
寄存器减 1
直接地址单元减 1
间接 RAM 单元减 1
地址寄存器 DPTR 加 1
A 乘以 B
A 除以 B
累加器十进制调整
逻辑操作指令
累加器与寄存器相“与”
累加器与直接地址单元相“与”
累加器与间接 RAM 单元相“与”
Page 22 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
ANL A, #data
ANL direct, A
ANL direct, #data
ORL A, Rn
ORL A, direct
ORL A, @Ri
ORL A, #data
ORL direct, A
ORL direct, #data
XRL A, Rn
XRL A, direct
XRL A, @Ri
XRL A, #data
XRL direct, A
XRL direct, #data
CLR A
CPL A
RL A
RLC A
RR A
RRC A
SWAP A
CLR C
CLR bit
SETB C
SETB bit
CPL C
CPL bit
ANL C, bit
ANL C,/bit
ORL C,bit
ORL C,/bit
MOV C, bit
MOV bit, C
JC rel
JNC rel
JB bit, rel
JNB bit, rel
JBC bit, rel
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
A, Rn
A, direct
A, @Ri
A, #data
Rn, A
Rn, direct
Rn, #data
direct, A
direct, Rn
direct1,direct2
direct, @Ri
direct, #data
@Ri, A
@Ri, direct
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
累加器与立即数相“与”
直接地址单元与累加器相“与”
直接地址单元与立即数相“与”
累加器与寄存器相“或”
累加器与直接地址单元相“或”
累加器与间接 RAM 单元相“或”
累加器与立即数相“或”
直接地址单元与累加器相“或”
直接地址单元与立即数相“或”
累加器与寄存器相“异或”
累加器与直接地址单元相“异或”
累加器与间接地址单元相“异或”
累加器与立即数相“异或”
直接地址单元与累加器相“异或”
直接地址单元与立即数相“异或”
累加器清“0”
累加器求反
累加器循环左移
累加器带进位位循环左移
累加器循环右移
累加器带进位位循环右移
累加器内高低半字节交换
布尔变量操作指令
清 0 进位位
清 0 直接地址位
进位位置 1
直接地址位置 1
进位位求反
直接地址位求反
进位位和直接地址为相“与”
进位位和直接地址位的反码相“与”
进位位和直接地址位相“或”
进位位和直接地址位反码相“或”
直接地址位送入进位位
进位位送入直接地址位
进位位为 1 则转移
进位位为 0 则转移
直接地址位为 1 则转移
直接地址位为 0 则转移
直接地址位为 1 则转移,该位清 0
数据传送类指令
寄存器内容送入累加器
直接地址单元中的数据送入累加器
间接 RAM 中的数据送入累加器
立即数送入累加器
累加器内容送入寄存器
直接地址单元中的数据送入寄存器
立即数送入寄存器
累加器内容送入直接地址单元
寄存器内容送入直接地址单元
直接地址单元中的数据送入另一个直接地址单元
间接 RAM 中的数据送入直接地址单元
立即数送入直接地址单元
累加器内容送间接 RAM 单元
直接地址单元数据送入间接 RAM 单元
Page 23 of 68
深圳市赛元微电子有限公司
2
2
3
1
2
1
2
2
3
1
2
1
2
2
3
1
1
1
1
1
1
1
2
3
3
1
2
2
2
3
3
1
2
2
2
3
3
1
1
1
1
1
1
1
1
2
1
2
1
2
2
2
2
2
2
2
2
2
3
3
3
1
3
1
3
1
3
2
2
2
2
2
3
3
3
5
5
5
1
2
1
2
1
2
2
2
2
3
2
3
1
2
1
2
2
2
1
3
2
2
2
3
3
3
2
3
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
2
立即数送入间接 RAM 单元
3
16 位立即数送入 DPTR
1
以 DPTR 为基地址变址寻址单元中的数据送入累加器
1
以 PC 为基地址变址寻址单元中的数据送入累加器
1
逻辑上在外部的片内扩展 RAM(8 位地址),送入累加器
1
累加器送入逻辑上在外部的片内扩展 RAM(8 位地址)
1
逻辑上在外部的片内扩展 RAM(16 位地址),送入累加器
1
累加器送入逻辑上在外部的片内扩展 RAM(16 位地址)
2
直接地址单元中的数据压入堆栈
2
栈底数据弹出送入直接地址单元
1
寄存器与累加器交换
2
直接地址单元与累加器交换
1
间接 RAM 与累加器交换
1
间接 RAM 的低半字节与累加器交换
控制转移类指令
ACALL address11
2
绝对(短)调用子程序
LCALL address16
3
长调用子程序
RET
1
子程序返回
RETI
1
中断返回
AJMP address11
2
绝对(短)转移
LJMP address16
3
长转移
SJMP rel
2
相对转移
JMP @A+DPTR
1
相对于 DPTR 的间接转移
JZ rel
2
累加器为 0 转移
JNZ rel
2
累加器非 0 转移
CJNE A, direct, rel
3
累加器与直接地址单元比较,不相等则转移
CJNE A, #data, rel
3
累加器与立即数比较,不相等则转移
CJNE Rn, #data, rel
3
寄存器与立即数比较,不相等则转移
CJNE @Ri, #data, rel
3
间接 RAM 单元与立即数比较,不相等则转移
DJNZ Rn, rel
2
寄存器减 1,非 0 转移
DJNZ direct, rel
3
直接地址单元减 1,非 0 转移
NOP
1
空操作
SC91F8312 的 MOVC 指令禁止寻址 0000~00FFH 地址,具体使用说明请参考《赛元 MCU 应用注意事项》
MOV @Ri, #data
MOV DPTR,#data16
MOVC A,@A+DPTR
MOVC A,@A+PC
MOVX A,@Ri
MOVX @Ri,A
MOVX A,@DPTR
MOVX @DPTR,A
PUSH direct
POP direct
XCH A, Rn
XCH A, direct
XCH A, @Ri
XCHD A, @Ri
2
3
5
4
3
4
2
3
3
2
2
3
3
3
4
4
4
4
3
4
3
5
4
4
5
4
4
5
4
5
1
9 INTERRUPT 中断
SC91F8312 单片机提供了 10 个中断源: Timer0、Timer1、PWM、ADC、UART、TK、X32K、INT1、
INT2、INT3。这 10 个中断源分为 2 个中断优先级,并可以单独分别设置为高优先级或者低优先级。每个中断分
别有独立的优先级设置位、中断标志、中断向量和使能位,总的使能位 EA 可以实现所有中断的打开或者关闭。
9.1 中断源、向量
SC91F8312 的中断源、中断向量、及相关控制位列表如下:
中断源
TK
Timer0
X32K
Timer1
UART
中断发生
中断标志
时间
Touch Key TKSTA[0]
计数器溢出
TKIF
Timer0 溢
TCON[5]
(TF0)
出
低频 32k 定 X32CTL[4]
(X32IF)
时器溢出
Timer1 溢
TCON[7]
(TF1)
出
接收或发送 SCON[1:0]
(TI/RI)
完成
中断使能 中断优先权
中断向量 查询优先级
控制
控制
IE[0]
IP[0]
0003H
1 (高)
(ETK)
IE[1]
IP[1]
000BH
2
(ET0)
IE[2]
IP[2]
0013H
3
(E32K)
中断号
(C51)
标志清除
方式
能否唤醒
STOP
0
H/W Auto
不能
1
H/W Auto
不能
2
H/W Auto
能
IE[3]
(ET1)
IP[3]
001BH
4
3
H/W Auto
不能
IE[4]
IP[4]
0023H
5
4
必须用户
清除
不能
Page 24 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
PWM
ADC
INT1
INT2
INT3
PWM 溢出
PWMCR[7]
(PWMIF)
ADC 转换 ADCCR[4]
(EOC/ADCIF)
完成
下降沿
上升沿
隐藏式
双沿
下降沿
上升沿
隐藏式
双沿
下降沿
上升沿
隐藏式
双沿
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
IE[5]
(EPWM)
IE[6]
(EADC)
必须用户
清除
必须用户
清除
不能
IP[5]
002BH
6
5
IP[6]
0033H
7
6
EXIE[1]
EXIP[1]
0043H
8
8
H/W Auto
能
EXIE[2]
EXIP[2]
004BH
9
9
H/W Auto
能
EXIE[3]
EXIP[3]
0053H
10 (低)
10
H/W Auto
能
不能
在 EA=1 及各中断使能控制为 1 的情况下,各中断发生情况如下:
定时器中断:Timer0 和 Timer1 溢出时会产生中断并将中断标志 TF0 和 TF1 置为“1”,当单片机执行该定时器
中断时,中断标志 TF0 和 TF1 会被硬件自动清“0”。
PWM 中断:当 PWM 计数器溢出时(也就是说: 计数器数到超过 PWMPRD 时), PWMIF 位(PWM Interrupt Flag)
会被硬件自动置“1”,PWM 中断产生。在 PWM 中断发生后, 硬件并不会自动清除 PWMIF 位, 此 bit 必须由使用者
的软件负责清除。
X32K 中断:32k Base Timer 在用户设置对应的溢出时间后发生溢出并将中断标志 X32IF 置为“1”,当单片机
执行该 32k 中断时,中断标志 X32IF 会被硬件自动清“0”。
ADC 中断:ADC 中断的发生时间为 ADC 转换完成时,其中断标志就是 ADC 转换结束标志 EOC/ADCIF
(ADCCR.4)。当使用者设定 ADCS 开始转换后, EOC 会被硬件自动清除为 “0” ; 当转换完成后, EOC 会被硬件
自动置为 “1” 。使用者在 ADC 中断发生之后,进入中断服务程序时,必须用软件去清除它。
外部中断 INTx(x=1~3):外部中断 INT1~3 有单独的中断向量,当外部中断口有中断条件发生时,外部中断就
发生了。这 3 个外部中断标志是系统隐藏式的,不需要用户做处理,硬件会自动清除。其中 NT1/2/3 初始值为下
降沿的外部中断,如果用户需要双沿或者上升沿中断,可通过设置 SFR (P1IT)来实现。用户可通过 EXIP 寄存
器来设置每个中断的优先级级别。外部中断 INT1~3 还可以唤醒单片机的 STOP。
Page 25 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
9.2 中断结构图
SC91F8312 的中断结构如下图所示:
IE[7] (EA)
TK
IE[0](ETKSI)
Interrupt to
03h
Interrupt to
0Bh
Interrupt to
13h
Interrupt to
1Bh
Interrupt to
23h
Interrupt to
2Bh
Interrupt to
33h
Interrupt to
43h
Interrupt to
4Bh
Interrupt to
53h
TKSSTA[0] (TKSIF)
IE[7] (EA)
Timer-0
IE[1] (ET0)
TCON[5] (TF0)
IE[7] (EA)
X32K
IE[2] (E32K)
X32CTL[4](X32IF)
IE[7] (EA)
Timer-1
IE[3] (ET1)
TCON[7] (TF1)
IE[7] (EA)
UART
IE[4] (EUART)
SCON[1:0] (TI/RI)
IE[7] (EA)
PWM
IE[5] (EPWMI)
PWMCR[6] (PWMIF)
IE[7] (EA)
ADC
IE[6] (EADC)
ADCCR[6] (EOC)
IE[7] (EA)
Int-1
EXIE[1] (EX1I)
隐藏式FLAG (INT1IF)
IE[7] (EA)
Int-2
EXIE[2] (EX2I)
隐藏式FLAG (INT2IF)
IE[7] (EA)
Int-3
EXIE[3] (EX3I)
隐藏式FLAG (INT3IF)
SC91F8312中断结构和向量
9.3 中断优先级
SC91F8312 单片机的中断具有两个中断优先级,这些中断源的请求可编程为高优先级中断或者低优先级中
断,即可实现两级中断服务程序的嵌套。一个正在执行的低优先级中断能被高优先级中断请求所中断,但不能被
另一个同一优先级的中断请求所中断,一直执行到结束,遇到返回指令 RETI,返回主程序后再执行一条指令才能
响应新的中断请求。
Page 26 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
也就是说
① 低优先级中断可被高优先级中断请求所中断,反之不能;
② 任何一种中断,在响应过程中,不能被同一优先级的中断请求所中断。
中断查询顺序:SC91F8312 单片机的同一优先级中断,如果同时来几个中断,则中断响应的优先顺序同 C51
中的中断查询号相同,即查询号小的会优先响应,查询号大的会慢响应。
9.4 中断处理流程
当一个中断产生并且被 CPU 响应,则主程序运行被中断,将执行下述操作
1, 当前正在执行的指令执行完;
2, PC 值被压入堆栈,保护现场;
3, 中断向量地址载入程序计数器 PC;
4, 执行相应的中断服务程序;
5, 中断服务程序结束并 RETI;
6, 将 PC 值退栈,并返回执行中断前的程序。
在此过程中,系统不会立即执行其它同一优先级的中断,但会保留所发生的中断请求,在当前中断处理结束
后,转去执行新的中断请求。
9.5 中断相关 SFR 寄存器
IE (A8h) 中断使能寄存器(读/写)
7
6
位编号
EA
EADC
符号
读/写
读/写
读/写
0
0
上电初始值
位编号
7
位符号
EA
6
EADC
5
EPWM
4
EUART
3
ET1
2
E32K
1
ET0
0
ETK
IP (B8h) 中断优先权寄存器(读/写)
7
6
位编号
5
4
3
2
1
0
EPWM
读/写
0
EUART
读/写
0
ET1
读/写
0
E32K
读/写
0
ET0
读/写
0
ETK
读/写
0
说明
中断使能的总控制
0: 关闭所有的中断
1: 打开所有的中断
ADC 中断使能控制
0:关闭 ADC 中断
1:允许 ADC 转换完成时产生中断
PWM 中断使能控制
0:关闭 PWM 中断
1:允许 PWM 计数溢出(数到 PWMPRD)时产生中断
UART 中断使能控制
0:关闭 UART 中断
1:允许 UART 中断
Timer1 中断使能控制
0:关闭 TIMER1 中断
1:允许 TIMER1 中断
外部低频 32k 计数器中断使能控制
0:关闭低频 32k 计数器中断
1:打开低频 32k 计数器中断
Timer0 中断使能控制
0:关闭 TIMER0 中断
1:允许 TIMER0 中断
Touch Key 中断使能控制
0:关闭 Touch Key 中断
1:打开 Touch Key 中断
5
4
Page 27 of 68
深圳市赛元微电子有限公司
3
2
1
0
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
符号
读/写
上电初始值
位编号
6
x
IPADC
读/写
0
位符号
IPADC
5
IPPWM
4
IPUART
3
IPT1
2
IP32K
1
IPT0
0
IPTK
7
保留位
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
IPPWM
读/写
0
位符号
EINTx
(x=1~3)
7~4,0
保留位
位符号
IPEXn
(n=1~3)
7~4,0
保留位
IP32K
读/写
0
IPT0
读/写
0
IPTK
读/写
0
说明
4
3
2
1
0
x
EINT3
读/写
0
EINT2
读/写
0
EINT1
读/写
0
x
说明
外部中断使能控制
0: 关闭外部中断 INTx(x=1~3) 的中断
1: 允许外部中断 INTx(x=1~3) 发生中断
保留位
EXIP (B5h) 外部中断优先权寄存器(读/写)
7
6
5
位编号
符号
读/写
x
x
x
上电初始值
位编号
3~1
IPT1
读/写
0
ADC 中断优先权选择
0:ADC 中断优先权为低
1:ADC 中断优先权为高
PWM 中断优先权选择
0:PWM 中断优先权为低
1:PWM 中断优先权为高
UART 中断优先权选择
0:UART 中断优先权为低
1:UART 中断优先权为高
Timer1 中断优先权选择
0:Timer1 中断优先权为低
1:Timer1 中断优先权为高
32k 计数器中断优先权选择
0:32k 计数器中断优先权为低
1:32k 计数器中断优先权为高
Timer0 中断优先权选择
0:Timer0 中断优先权为低
1:Timer0 中断优先权为高
Touch Key 中断优先权选择
0:Touch Key 中断优先权为低
1:Touch Key 中断优先权为高
保留位
EXIE (B4h) 外部中断使能寄存器(读/写)
7
6
5
位编号
符号
读/写
x
x
x
上电初始值
位编号
3~1
IPUART
读/写
0
4
3
2
1
0
x
IPEX3
读/写
0
IPEX2
读/写
0
IPEX1
读/写
0
x
说明
外部中断优先权选择
0 : 外部中断 INTn(n=1~3) 的中断优先级是 “低”
1: 外部中断 INTn(n=1~3) 的中断优先级是 “高”
保留位
Page 28 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
P1IT (93h) INT1/2/3 外部中断类型寄存器(读/写)
7
6
5
4
位编号
INT3ES[1:0]
符号
读/写
读/写
读/写
x
x
0
0
上电初始值
位编号
5~0
位符号
INTnES[1:0]
7~6
保留位
3
2
1
INT2ES[1:0]
读/写
读/写
0
0
0
INT1ES[1:0]
读/写
读/写
0
0
说明
INTn(n=1、2、3) Edge Selction ,外部中断类型选择
00:下降沿中断
01:无中断
10:双沿中断
11:上升沿中断
保留位
10 定时器 TIMER0 、TIMER1
SC91F8312 单片机内部有两个 16 位定时器/计数器分别称为 T0 和 T1,它们具有计数方式和定时方式两种工
作模式。特殊功能寄存器 TMOD 中有一个控制位 C/Tx 来选择 T0 和 T1 是定时器还是计数器。它们本质上都是一
个加法计数器,只是计数的来源不同。定时器的来源为系统时钟或者其分频时钟,但计数器的来源为外部管脚的
输入脉冲。GATEx 和 TRx 是 T0 和 T1 在定时器/计数器模式计数的开关控制,只有在 GATEx=0 且 TRx=1 的时
候,T0 和 T1 才会被打开计数。
计数器模式下,P2.0/T0 和 P2.1/T1 管脚上的每一个脉冲,T0 和 T1 的计数值分别增加 1。
定时器模式下,可通过特殊功能寄存器 TMCON 来选择 T0 和 T1 的计数来源是 Fosc/12 或 Fosc/4。
定时器/计数器 T0 有 4 种工作模式,定时器/计数器 T1 有 3 种工作模式(模式三不存在):
①模式 0:13 位定时器/计数器模式
②模式 1:16 位定时器/计数器模式
③模式 2: 8 位自动重载模式
④模式 3:两个 8 位定时器/计数器模式。
在上述模式中,T0 和 T1 的模式 0、1、2 都相同,模式 3 不同。
10.1 T0 和 T1 相关特殊功能寄存器
符号
TCON
地址
88H
说明
定时器控制寄存器
TMOD
89H
定时器工作模式寄存器
TL0
TL1
TH0
TH1
TMCON
8AH
8BH
8CH
8DH
8EH
定时器 0 低 8 位
定时器 1 低 8 位
定时器 0 高 8 位
定时器 1 高 8 位
定时器频率控制寄存器
各寄存器的解释说明如下:
TCON (88h) 定时器控制寄存器
7
6
位编号
符号
TF1
TR1
读/写
读/写
读/写
0
0
上电初始值
位编号
7
6
5
4
3
2
1
TF1 TR1 TF0 TR0
GATE
GATE
C/T1 M11 M01
C/T0 M10
1
0
-
-
-
-
-
-
0
-
Reset 值
0000xxxxb
M00
00000000b
00000000b
00000000b
00000000b
00000000b
T1FD T0FD xxxxxx00b
5
4
3
2
1
0
TF0
读/写
0
TR0
读/写
0
x
x
x
x
位符号
说明
Page 29 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
7
TF1
6
TR1
5
TF0
4
TR0
3~0
保留位
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
T1 溢出中断请求标志。T1 产生溢出,发生中断时,硬件将 TF1 置为
“1”,申请中断,CPU 响应时,硬件清“0”。
定时器 T1 的运行控制位。此位由软件置 1 和清 0。当 GATE1
TMOD[7]=0,TR1=1 时,允许 T1 开始计数。TR1=0 时禁止 T1 计数。
T0 溢出中断请求标志。T0 产生溢出,发生中断时,硬件将 TF0 置为
“1”,申请中断,CPU 响应时,硬件清“0”。
定 时 器 T0 的 运 行 控 制 位 。 此 位 由 软 件 置 位 和 清 0 。 当 GATE0
TMOD[3]=0,TR0=1 时,允许 T0 开始计数。TR0=0 时禁止 T0 计数。
保留位
TMOD (89h) 定时器工作模式寄存器(读/写)
7
6
5
位编号
符号
GATE1
C/T1
M11
读/写
读/写
读/写
读/写
0
0
0
上电初始值
T1
位编号
7
6
位符号
GATE1
C/T1
5,4
M11,M01
3
2
GATE0
C/T0
1,0
M10,M00
4
3
2
1
0
M01
读/写
0
GATE0
读/写
0
C/T0
读/写
0
M10
读/写
0
M00
读/写
0
T0
说明
TMOD[7]控制定时器 1,置 0 且 TR1 置 1 时才打开 T1
TMOD[6]控制定时器 1
0:定时器,T1 计数来源于 Fosc 分频
1:计数器,T1 计数来源于外部管脚 T1/P2.1
定时器/计数器 1 模式选择
00 : 13 位定时器/计数器,TL1 高 3 位无效
01 : 16 位定时器/计数器,TL1 和 TH1 全
10 : 8 位自动重载定时器,溢出时将 TH1 存放的值自动重装入 TL1
11 : 定时器/计数器 1 无效(停止计数)
TMOD[3]控制定时器 0,置 0 且 TR0 置 1 时才打开 T0
TMOD[2]控制定时器 0
0:定时器,T0 计数来源于 Fosc 分频
1:计数器,T0 计数来源于外部管脚 T0/P2.0
定时器/计数器 0 模式选择
00 : 13 位定时器/计数器,TL0 高 3 位无效
01 : 16 位定时器/计数器,TL0 和 TH0 全
10 : 8 位自动重载定时器,溢出时将 TH0 存放的值自动重装入 TL0
11 : 定时器 0 此时作为双 8 位定时器/计数器。TL0 作为一个 8 位定时器
/计数器,通过标准定时器 0 的控制位控制;TH0 仅作为一个 8 位定时器,
由定时器 1 的控制位控制。
TMOD 寄存器中 TMOD[0]~TMOD[3]是设置 T0 的工作模式;TMOD[4]~TMOD[7]是设置 T1 的工作模式。
定时器和计数器 Tx 功能由特殊功能寄存器 TMOD 的控制位 C/Tx 来选择,M0x 和 M1x 都是用来选择 Tx 的工
作模式。GATEx 和 TRx 作为 T0 和 T1 的开关控制,只有在 GATEx=0 且 TRx=1 是 T0 和 T1 才打开。
TMCON (8Eh) 定时器频率控制寄存器(读/写)
7
6
5
位编号
符号
读/写
x
x
x
上电初始值
位编号
1
位符号
T1FD
4
3
2
1
0
x
x
x
T1FD
读/写
0
T0FD
读/写
0
说明
T1 输入频率选择控制
Page 30 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
0
T0FD
7~2
保留位
IE (A8h) 中断使能寄存器(读/写)
7
6
位编号
EA
EADC
符号
读/写
读/写
读/写
0
0
上电初始值
位编号
3
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
0:T1 频率源自于 Fosc/12
1:T1 频率源自于 Fosc/4
T0 输入频率选择控制
0:T0 频率源自于 Fosc/12
1:T0 频率源自于 Fosc/4
保留位
5
4
3
2
1
0
ESIF
读/写
0
EPWM
读/写
0
ET1
读/写
0
E32K
读/写
0
ET0
读/写
0
ETK
读/写
0
3
2
1
0
IPT1
读/写
0
E32K
读/写
0
IPT0
读/写
0
ETK
读/写
0
位符号
ET1
说明
Timer1 中断使能控制
0: 关闭 TIMER1 中断
1: 允许 TIMER1 中断
ET0
1
Timer0 中断使能控制
0: 关闭 TIMER0 中断
1: 允许 TIMER0 中断
IP (B8h) 中断优先级寄存器(读/写)
7
6
5
4
位编号
IPADC
IPSIF
EPWM
符号
读/写
读/写
读/写
读/写
x
0
0
0
上电初始值
位编号
3
位符号
IPT1
1
IPT0
说明
Timer1 中断优先权
0:设定 Timer 1 的中断优先权是 “低”
1:设定 Timer 1 的中断优先权是 “高”
Timer0 中断优先权
0:设定 Timer 0 的中断优先权是 “低”
1:设定 Timer 0 的中断优先权是 “高”
10.2 T0 工作模式
通过对寄存器 TMOD 中的 M10、M00(TMOD[1]、TMOD[0])的设置,定时器/计数器 0 可实现 4 种不同的
工作模式 。
工作模式 0: 13 位计数器/定时器。
TH0 寄存器存放 13 位计数器/定时器的高 8 位(TH0.7~TH0.0), TL0 存放低 5 位(TL0.4~TL0.0)。TL0 的
高三位(TL0.7~TL0.5)是不确定值,读取时应被忽略掉。当 13 位定时器/计数器递增溢出时,系统会将定时器溢
出标志 TF0 置 1。如果定时器 0 中断被允许,将会产生一个中断。
C/T0 位选择计数器/定时器的时钟输入源。如果 C/T0=1,定时器 0 输入脚 T0(P2.0)的电平从高到低的变
化,会使定时器 0 数据寄存器加 1。如果 C/T0=0,选择系统时钟的分频为定时器 0 的时钟源。
当 GATE0=0,TR0 置 1 打开定时器 T0。TR0 置 1 并不强行复位定时器,意味着如果 TR0 置 1,定时器寄存
器将从上次 TR0 清 0 时的值开始计数。所以,在允许定时器之前,应该设定定时器寄存器的初始值。
当作为定时器应用时,可配置 T0FD 来选择时钟源的分频比例。
Page 31 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
/12
/4
Fosc
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
T0FD=0
T0FD=1
TMOD.2=0
(C/T0)
T0=P2.0
(TF0)
TL0
5 bit
TH0
8 bit
TMOD.2=1
(C/T0)
(GATE0)
TMOD.3
TCON.5
T0中断请求
(TR0)
TCON.4
定时器/计数器工作模式0: 13位定时器/计数器
工作模式 1:16 位计数器/定时器
除了使用 16 位(TL0 的 8 位数据全部有效)计数器/定时器之外,模式 1 和模式 0 的运行方式相同。打开和
配置计数器/定时器方式也相同。
Fosc
/12
/4
T0FD=0
T0FD=1
TMOD.2=0
(C/T0)
T0=P2.0
(TF0)
TL0
8 bit
TH0
8 bit
TMOD.2=1
(C/T0)
(GATE0)
TMOD.3
TCON.5
T0中断请求
(TR0)
TCON.4
定时器/计数器工作模式1: 16位定时器/计数器
工作模式 2: 8 位自动重载计数器/定时器
在工作模式 2 中, 定时器 0 是 8 位自动重载计数器/定时器。TL0 存放计数值,TH0 存放重载值。当在 TL0
中的计数器溢出至 0x00 时,定时器溢出标志 TF0 被置 1,寄存器 TH0 的值被重载入寄存器 TL0 中。如果定时
器中断使能,当 TF0 置 1 时将产生一个中断,但在 TH0 中的重载值不会改变。在允许定时器正确计数开始之
前,TL0 必须初始化为所需要的值。
除了自动重载功能外,工作模式 2 中的计数器/定时器的使能和配置方式同模式 0 和 1 是相同的。
当作为定时器应用时,可配置寄存器 TMCON.0(T0FD)来选择定时器时钟源被系统时钟 Fosc 分频的比例。
Page 32 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
Fosc
/12
/4
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
T0FD=0
T0FD=1
TMOD.2=0
(C/T0)
T0=P2.0
(TF0)
TL0
8 bit
TCON.5
T0中断请求
TMOD.2=1
(C/T0)
Set
(TR0)
TCON.4
(GATE0)
TMOD.3
TH0
8 bit
定时器/计数器工作模式2: 自动重载的8位定时器/计数器
工作模式 3:两个 8 位计数器/定时器(仅限于定时器 0)
在工作模式 3 中,定时器 0 用作两个独立的 8 位计数器/定时器,分别由 TL0 和 TH0 控制。TL0 通过定时器
0 的控制位(在 TCON 中)和状态位(在 TMOD 中):TR0、C/T0、GATE0、TF0 控制。定时器 0 可通过 T0
的 TMOD.2(C/T0)来选择是定时器模式还是计数器模式。
TH0 通过定时器 1 的控制 TCON 来设置相关的控制,但 TH0 仅被限定为定时器模式,无法通过
TMOD.1(T1FD)来设定为计数器模式。TH0 由定时器控制位 TR1 的控制使能,需设定 TR1=1。当发生溢出及产
生中断时,TF1 会置 1,并按 T1 发生中断来进行相应的处理。
在 T0 被设为工作模式 3 时,TH0 定时器占用了 T1 的中断资源及 TCON 中寄存器,T1 的 16 位计数器会停
止计数,相当于“TR1=0”。当采用 TH0 定时器工作时,需设置 TR1=1。
10.3 T1 工作模式
通过对寄存器 TMOD 中的 M11、M01(TMOD[5]、TMOD[4])的设置,定时器/计数器 1 可实现 3 种不同的
工作模式 。
工作模式 0: 13 位计数器/定时器。
TH1 寄存器存放 13 位计数器/定时器的高 8 位(TH1.7~TH1.0);TL1 存放低 5 位(TL1.4~TL1.0)。TL1 的
高三位(TL1.7~TL1.5)是不确定值,读取时应被忽略掉。当 13 位定时器计数器递增溢出时,系统会将定时器溢
出标志 TF1 置 1。如果定时器 1 中断被允许,将会产生一个中断。C/T1 位选择计数器/定时器的时钟源。
如果 C/T1=1,定时器 1 输入脚 T1(P2.1)的电平从高到低的变化,会使定时器 1 数据寄存器加 1。如果
C/T1=0,选择系统时钟的分频为定时器 1 的时钟源。
当 GATE1=0, TR1 置 1 打开定时器。TR1 置 1 并不强行复位定时器,意味着如果 TR1 置 1,定时器寄存器
将从上次 TR1 清 0 时的值开始计数。所以,在允许定时器之前,应该设定定时器寄存器的初始值。
当作为定时器应用时,可配置 T1FD 来选择时钟源的分频比例。
Fosc
/12
/4
T1FD=0
T1FD=1
TMOD.6=0
(C/T1)
T1=P2.1
(TF1)
TL1
5 bit
TH1
8 bit
TMOD.6=1
(C/T1)
(GATE1)
TMOD.7
TCON.7
T1中断请求
(TR1)
TCON.6
定时器/计数器工作模式0: 13位定时器/计数器
Page 33 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
工作模式 1:16 位计数器/定时器
除了使用 16 位(TL1 的 8 位数据全部有效)计数器/定时器之外,模式 1 和模式 0 的运行方式相同。打开和
配置计数器/定时器方式也相同。
/12 TFD=0
/4
T1FD=1
Fosc
TMOD.6=0
(C/T1)
T1=P2.1
(TF1)
TL1
8 bit
TH1
8 bit
TCON.7
TMOD.6=1
(C/T1)
(GATE1)
TMOD.7
T1中断请求
(TR1)
TCON.6
定时器/计数器工作模式1: 16位定时器/计数器
工作模式 2: 8 位自动重载计数器/计数器
在工作模式 2 中, 定时器 1 是 8 位自动重载计数器/定时器。TL1 存放计数值,TH1 存放重载值。当在 TL1
中的计数器溢出至 0x00 时,定时器溢出标志 TF1 被置 1,寄存器 TH1 的值被重载入寄存器 TL1 中。如果定时
器中断使能,当 TF1 置 1 时将产生一个中断,但在 TH1 中的重载值不会改变。在允许定时器正确计数开始之
前,TL1 必须初始化为所需要的值。
除了自动重载功能外,工作模式 2 中的计数器/定时器的使能和配置方式同方式 0 和 1 是相同的。
当作为定时器应用时,可配置寄存器 TMCON.4(T1FD)来选择定时器时钟源被系统时钟 Fosc 分频的比例。
/12
/4
Fosc
T1FD=0
T1FD=1
TMOD.6=0
(C/T1)
T1=P2.1
TL1
8 bit
TCON.7
T1中断请求
TMOD.6=1
(C/T1)
Set
(GATE1)
TMOD.7
(TR1)
TCON.6
TH1
8 bit
定时器/计数器工作模式2: 自动重载的8位定时器/计数器
11 PWM
SC91F8312 提供了一个独立的计数器, 它可以支持两路的 PWM 输出:PWM0 及 PWM1。
SC91F8312 的 PWM 具有的功能为:
① 8 位 PWM 精度
② PWM0/PWM1 周期相同,但占空比可单独设置
③ 输出可设置正反向
④ 提供 1 个 PWM 溢出的中断
⑤ PWM0 可以切换输出至两个不同的 IO 口
SC91F8312 的 PWM 可支持周期及占空比的调整,寄存器 PWMCR 控制 PWM0 和 PWM1 相关设置,
PWMCFG 设置 PWM 计数器计数时钟源及输出电平,PWMPRD 设置两个 PWM 共同的周期,PWMDTY0 和
Page 34 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
PWMDTY1 分别控制 PWM0 和 PWM1 的占空比。
11.1 PWM 结构框图
P1.4
P0.0
PWM0
P0.1
PWM1
PWM0OS
PWM1OS
ENPWM0O
ENPWM1O
PWMDTY0
INV0
PWMDTY1
重装
INV1
重装
缓存器
缓存器
DTY08
DTY18
Q
R
比较器
比较器
R
S
Fosc
S
/1
/2
.
.
.
CKS
Q
计数器
/256
PWMIF
比较器
ENPWM
共用周期模块
缓存器
重装
PWMPRD
SC91F8312 PWM结构框图
11.2 PWM 相关 SFR 寄存器
PWMCR (F8h)PWM 控制寄存器 (读/写)
7
6
5
位编号
ENPWM
PWMIF
PWM1O
符号
4
3
2
1
0
PWM0O
DTY18
ENPWM1
DTY08
ENPWM0
Page 35 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
读/写
上电初始值
读/写
0
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
读/写
0
位编号
7
位符号
ENPWM
6
PWMIF
5
PWM1OS
4
PWM0OS
3
DTY18
2
ENPWM1O
1
DTY08
0
ENPWM0O
S
读/写
0
S
读/写
0
读/写
0
O
读/写
0
读/写
0
O
读/写
0
说明
PWM 模块开关控制(Enable PWM)
1: 允许 Clock 进到 PWM 单元, 开始 PWM 的工作
0:关闭 PWM 单元的工作, 主要是为了省电
PWM 中断请求标志位(PWM Interrupt Flag)
当 PWM 计数器溢出时(也就是说: 数到超过 PWMPRD 时), 此位会被
硬件自动设定成 1。如果此时 IE[5] (EPWM) 也是被设定成 1, PWM
的 中断产生 。在 PWM 中断发生后, 硬件并不会自动清除此位, 此位必
须由使用者的软件负责清除。
PWM1 输出脚选择
0:保留
1:PWM1 输出至 P0.1
PWM0 输出脚选择
0:PWM0 输出至 P1.4
1:PWM0 输出至 P0.0
强制 PWM1 固定输出高(Force PWM1 as HIGH)
1:强制把 PWM1 的输出固定为 1
0:PWM1 的输出由 PWM 计数器以及 PWMDTY1 来决定
PWM1 功能开关
1:PWM1 输出到 IO
0:PWM1 不输出到 IO, P0.1 为 GPIO
强制 PWM0 固定输出高(Force PWM0 as HIGH)
1:强制把 PWM0 的输出固定为 1
0:PWM0 的输出由 PWM 计数器以及 PWMDTY0 来决定
PWM0 功能开关
1:PWM0 输出到 IO
0:PWM0 不输出到 IO,P1.4/P0.0 为 GPIO
SFR PWMPRD[7:0] 是两路 PWM 共享的周期设置控制器。 每当 PWM 计数器数到 PWMPRD[7:0]预先设置
的值时, 下一个 PWM CLK 到来时该计数器会跳数到 00h, 也就是说 PWM1 及 PWM0 的周期都是 (PWMPRD[7:0]
+ 1 )*PWM 时钟。
PWMPRD (F9h) PWM 周期设置寄存器(读/写)
7
6
5
4
3
2
1
0
位编号
PWMPRD[7:0]
符号
读/写
读/写
读/写
读/写
读/写
读/写
读/写
读/写
读/写
1
1
1
1
1
1
1
1
上电初始值
位编号
7~0
位符号
PWMPRD[7:0]
说明
PWM0 和 PWM1 共用的周期设置;
此数值代表 PWM0 和 PWM1 输出波形的 (周期 – 1); 也就是说 PWM 输
出的周期值为(PWMPRD[7:0] + 1 )* PWM 时钟;
PWM 计数器的计数时间可由 PWMCFG[2:0] 所控制, 分别可以选择不同个数的系统时钟去计数一个单位(prescalar selector),即选择 PWM 计数器时钟源被系统时钟 Fosc 分频的分频比。PWM1 和 PWM0 还可以被
PWMCFG[5:4]中的 INV1 和 INV0 来选择,PWM 输出是否反向。
PWMCFG (FCh) PWM 设置寄存器(读/写)
7
6
5
4
3
2
1
0
位编号
Page 36 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
符号
读/写
上电初始值
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
-
-
INV1
INV0
-
x
x
读/写
0
读/写
0
x
位编号
5
位符号
INV1
4
INV0
2~0
CKS
7/6/3
保留位
CKS[2:0]
位符号
PWMDTY1[7:0]
位符号
PWMDTY0[7:0]
IE (A8h) 中断使能寄存器(读/写)
7
6
位编号
EA
EADC
符号
读/写
读/写
读/写
0
0
上电初始值
位编号
5
位符号
EPWM
2
1
0
读/写
0
读/写
0
读/写
0
说明
PWM1 占空比长度设置;
PWM1 的高电平宽度 是 (PWMDTY1[7:0])个 PWM 时钟
PWMDTY0 (FBh) PWM0 高电平设置寄存器(读/写)
7
6
5
4
3
位编号
PWMDTY0[7:0]
符号
读/写
读/写
读/写
读/写
读/写
读/写
0
0
0
0
0
上电初始值
位编号
7~0
0
说明
PWM1 输出反向控制(INVerse PWM1 Output)
0 :PWM1 的输出不反向
1 :PWM1 的输出反向
PWM0 输出反向控制(INVerse PWM0 Output)
0 :PWM0 的输出不反向
1 :PWM0 的输出反向
PWM 时钟源选择(PWM ClocK source Selector)
000:Fosc
001:Fosc/2
010:Fosc/4
011:Fosc/8
100:Fosc/32
101:Fosc/64
110:Fosc/128
111:Fosc/256
保留位
PWMDTY1 (FAh) PWM1 高电平设置寄存器(读/写)
7
6
5
4
3
位编号
PWMDTY1[7:0]
符号
读/写
读/写
读/写
读/写
读/写
读/写
0
0
0
0
0
上电初始值
位编号
7~0
读/写
0
0
2
1
0
读/写
0
读/写
0
读/写
0
说明
PWM0 占空比长度设置;
PWM10 的高电平宽度 是 (PWMDTY0[7:0])个 PWM 时钟
5
4
3
2
1
0
EPWM
读/写
0
EUART
读/写
0
ET1
读/写
0
E32K
读/写
0
ET0
读/写
0
ETK
读/写
0
说明
PWM 中断使能控制
Page 37 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
0:关闭 PWM 中断
1:允许 PWM 计数器溢出时产生中断
IP (B8h) 中断优先权寄存器(读/写)
7
6
位编号
IPADC
符号
读/写
读/写
x
0
上电初始值
位编号
5
位符号
IPPWM
5
4
3
2
1
0
IPPWM
读/写
0
IPUART
读/写
0
IPT1
读/写
0
IP32K
读/写
0
IPT0
读/写
0
IPTK
读/写
0
说明
PWM 中断优先权选择
0:设定 PWM 的中断优先级是 “低”
1:设定 PWM 的中断优先级是 “高”
注意事项:
1. ENPWM 位能控制 PWM 模块是否工作。
2. ENPWMxO 位能选择 PWMx 口作为 GPIO 还是作为 PWMx 输出。
3. EPWM(IE.5)位能控制 PWM 是否被允许产生中断。
4. 如果 ENPWM 置 1,PWM 模块被打开,但 PWMxO=0,两个 PWM 输出被关闭并作为 GPIO 口。此时 PWM 模
块可以作为一个 8 位 Timer 使用,此时 EPWM(IE.5)被置 1,PWM 仍然会产生中断。
5. 两个 PWM 共用周期,溢出时产生 PWM 中断是同一中断向量。
11.3 PWM 波形及用法
各 SFR 参数改变对 PWM 波形影响如下所述:
①DTYX8 变化特性
DTYX8=1
DTYX8=0
DTYX8
PWMX输出
周期1
周期2
周期3
周期4
周期5
周期6
DTYX8改变图
当 PWMX 输出波形时,若 DTYx8(PWMCR.1/ PWMCR.3)改变,PWMX 波形会立即改变。如上图所示,在周
期 2 中使 DTYx8 置 1,PWMX 会立即响应,固定输出高;在周期 4 某处 DTYx8 清 0,PWMX 立即响应,取消固定
输出。
②占空比变化特性
Page 38 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
初始值:PWMDTYX=n
(PWMPRD=t)
执行指令:
指令1
n
n
指令1:设置PWMDTYX=m
指令2:设置PWMDTYX=k
指令2
n
m
m
m
t+1
t+1
t+1
k
k
k
PWM波形:
PWM周期:
t+1
t+1
t+1
t+1
t+1
t+1
占空比变化特性图
当 PWMx 输出波形时,若需改变占空比,可通过改变高电平设置寄存器(PWMDTYx)的值实现。但需要注意,
更改 PWMDTYx 的值,占空比不会立即改变,而是等待本周期结束,在下个周期发生改变。相关波形输出如上图
所示。
③周期变化特性
初始值:PWMDTYX=h
(PWMPRD=n)
执行指令:
指令1
h
h
h
指令1:设置PWMPRD=m
指令2:设置PWMPRD=k
指令2
h
h
h
h
h
h
k+1
k+1
k+1
PWM波形:
PWM周期:
n+1
n+1
n+1
m+1
m+1
m+1
周期变化特性图
当 PWMx 输出波形时,若需改变周期,可通过改变周期设置寄存器 PWMPRD 的值实现。同改变占空比一样,
更改 PWMPRD 的值,周期不会立即改变,而是等待本周期结束,在下个周期改变,参考上图所示。
④周期和占空比的关系
Page 39 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
1
2
...
3
周期
PWM时钟单元
周期=PWMPRD+1
Low
PWMDTYX=00H
High
PWMDTYX=01H
Low
PWMDTYX=02H
High
Low
High
PWMDTYX=PWMPRD
Low
High
PWMDTYX≥PWMPRD+1
周期与占空比关系图
周期和占空比的关系如上图所示。该结果的前提是 PWMx(x=0,1) 输出反向控制(INVx)初始为 0,若需得到
相反结果,可置 PWMCFG.5(INV1)和 PWMCFG.4(INV0)为 1。需要注意 INVx 的变化特性也与 DTYx8 相同,更
改则立即响应。
11.4 两路互补带死区 PWM 实现方法
大功率电机、变频器的末端都是由大功率管、IGBT(绝缘栅极型功率管)等元件组成的 H 桥。每个桥的上半
桥和下半桥是绝对不能同时导通的。但由于 IGBT 等功率器件都存在一定的结电容,会形成器件导通关断的延迟
现象,导致某个半桥元件在应该关断时没有关断,烧毁功率元件。
为了使 H 桥或半 H 桥的上下管不会因为开关速度问题发生同时导通,需要在电平翻转时插入一个时间间隔,
这个时间间隔就是 PWM 输出时的死区。
SC91F8312 可以通过两路独立的 PWM0 和 PWM1 输出互补带死区的 PWM 波形。
下面以输出两路频率为 200kHz,占空比约为 50%的互补 PWM 方波,并产生一个不小于 5nS 的死区为例说
明具体的实现方法(IC 工作频率 16MHz,VDD 为 5V,外围器件 M 的 VIH 为 0.7VDD,VIL 为 0.3VDD)。
Page 40 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
PWM1_IN
PWM1
M
PWM0_IN
PWM0
SC91F8312
R=100Ω
C=330pF
GND
PWM0输出端增加RC延时电路
①输出两路互补的,频率为 200kHz,占空比 1:2 的 PWM 方波:
void PWMinit(void)
{
PWMCFG = 0x20;
PWMPRD = 79;
PWMDTY0 = 40;
PWMDTY1 = 40;
PWMCR = 0xB5;
// PWM0 输出到 P0.0,PWM1 反向输出到 P0.1
//选择 PWM 时钟源为 fosc = 16MHz
// PWM 周期 T=(79+1)*(1/16M)=5μs,200kHz
// PWM0 的 Duty 设为 1:2
// PWM1 的 Duty 设为 1:2
// 打开 PWM 电源,使能 PWM0 和 PWM1
// PWM0 输出到 P0.0,PWM1 输出到 P0.1
}
PWM0
周期T=5us
PWM1
PWM0及PWM1输出波形图
②修改 PWMDTY0 调节 PWM0 占空比,形成后死区延时 t1
PWMDTY0 = 39;
// PWM0 的 Duty 设为 39:80 形成后死区延时
PWM 的时钟源为 16MHz,则每一个 Duty 可调节:
Page 41 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
1
62.5ns
16M
PWMDTY0 由 40 变为 39,PWM0 输出高电平的时间减少了 62.5ns。
后死区
t1=62.5nS
PWM0
周期T=5us
PWM1
PWM0及PWM1输出波形图
③在 PWM0 上加上 RC 电路,其中 R=100Ω,C=330pF
则有:
100 330 pF 33ns
上升沿延时:
5V
t up = ln
5V 0.7 5V
= 33ns 1.2 39.6ns
下降沿延时:
5V
t down ln
0.3 5V
33ns 1.2 39.6ns
此时后死区延时变为:
t1 tdown 62.5ns 39.6ns 22.9ns
Page 42 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
前死区
tup =39.6nS
后死区
t1-tdown=22.9nS
ton =0.7VDD
PWM0
toff=0.3VDD
周期T=5us
PWM0_IN
PWM1
PWM1_IN
PWM0及PWM1输出波形图
由此得到两路前死区延时约 39.6ns,后死区延时约 22.9ns 的互补 PWM 方波。
死区延时的取值
死区时间大,系统工作更加可靠,但是会引起输出波形失真并降低工作效率;死区时间小,则效率高,但是
会降低可靠性。一般功率器件的输入端死区延时都控制在几十 ns 或者根据管子特性作调整。
Page 43 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
12 GP I/O
SC91F8312 提供了最多 17 个 GPIO 端口,此 17 个 IO 同其他功能复用, 其中 P1 和 P2 这 11 个 IO 口的灌电
流驱动能力约是其它 IO 口的 2 倍(可达 35mA 以上),可用来作为 LED 显示的 COM 驱动。SC91F8312 的 I/O
口和标准 8051 的 I/O 口一样,是带强推挽输出的双向 IO 口,有四种 IO 模式可以选择:准双向 IO 模式、强推挽
输出模式、高阻输入、N 型开漏输出模式。所有 IO 上电的缺省模式为高阻输入模式。
准双向 IO 结构:也就是说, 当对一个 I/O 口写 “0” 时, 它有很强 (>15mA)的推低(Sink)能力, 并且使用者此时应
该把该 I/O 口视为输出”Output”, 但是如果对该 I/O 口写”1”后, 该 I/O 口会有短暂的强上拉(两个 clock 周期), 之后就
一直以弱上拉的状况保持该 I/O 口为高输出, 而此时允许使用者从外部输入信号, 盖过该弱上拉. 简单说, 写”0”代表
强的”Output”, 写”1”代表”Input”。
强推挽结构:若是有特别的强推挽输出需要, 使用者可以设定对应的寄存器 PxCFGn, 让 I/O 口输出很强的”1”,
而非 “允许被盖过的 1”, 且具有较强的电流驱动能力。
高阻输入结构:高阻态,仅作为输入口使用。
N 型开漏输出结构:IC 内部的上拉电阻断开,需要外接上拉电阻。
12.1 GPIO 结构图
1. 准双向模式(Quasi-Bi)
准双向口有 3 个上拉的 MOS 管以适应不同的需要,分别称为“弱(Weak)上拉”、“极弱(Very weak)上拉”
和“强(Strong)上拉”。
在 3 个上拉 MOS 管中,有 1 个上拉 MOS 管称为“弱上拉”,当口线寄存器为 1 且引脚本身也为 1 时打开。此
上拉提供基本驱动电流使准双向口输出为 1。如果 1 个引脚输出为 1 而由外部装置下拉到低时,弱上拉关闭而“极
弱上拉”维持开状态,为了把这个引脚强拉为低,外部装置必须有足够的灌电流能力使引脚上的电压降到门槛电压
以下。
第 2 个上拉 MOS 管称为“极弱上拉”,当口线锁存为 1 时打开。当引脚悬空时,这个极弱的上拉源产生很弱的
电流将引脚上拉为高电平。
第 3 个上拉 MOS 管称为“强上拉”,当口线锁存器由 0 跳变为 1 时,这个上拉用来加快准双向口由逻辑 0 到逻
辑 1 转换。当发生这种情况时,强上拉打开约 2 个机器周期以使引脚能迅速地上拉到高电平。
准双向模式的端口结构示意图如下:
VDD
VDD
强
2 Clocks
Delay
极弱
P
VDD
弱
P
P
PORT
N
Output
register
Input
准双向口结构
(Standard 8051 I/O)
Page 44 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
2.强推挽输出模式
强推挽输出配置的下拉结构与开漏输出与准双向口的下拉结构相同,但当锁存器为 1 时能提供持续的强上拉,
即能够提供持续的大电流驱动(大于 15mA)的输出高。
强推挽输出模式的端口结构示意图如下:
VDD
P
PORT
N
Output
register
Input
强推挽输出结构
(Strong Output)
3.高阻输入模式(Input only)
此种模式仅有输入,没有输出能力。高阻输入模式的端口结构示意图如下所示:
PxyM[1:0]==10
(Pure Input)
Input
PAD
高阻输入结构
(Input only)
4.开漏输出模式(Open Drain)
此种模式没有输出高的能力。如果需要输出高,用户必须外接上拉电阻。此时外加引脚的电压不能超过
VDD+0.3V。开漏输出模式的端口结构示意图如下:
Page 45 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
PxyM[1:0]==11
(N-type Open Drain)
PAD
N
Output
register
Input
开漏输出结构
(Open drain)
12.2 I/O 端口相关寄存器
P0CFG1 (84h) P0 口模式配置寄存器(读/写)
7
6
5
4
位编号
符号
读/写
x
x
x
x
上电初始值
P0CFG0 (85h) P0 口模式配置寄存器(读/写)
7
6
5
4
位编号
P03M[1:0]
P02M[1:0]
符号
读/写
读/写
读/写
读/写
读/写
1
0
1
0
上电初始值
P1CFG1 (91h) P1 口模式配置寄存器(读/写)
7
6
5
4
位编号
符号
读/写
x
x
x
x
上电初始值
P1CFG0 (92h) P1 口模式配置寄存器(读/写)
7
6
5
4
位编号
P13M[1:0]
P12M[1:0]
符号
读/写
读/写
读/写
读/写
读/写
1
0
1
0
上电初始值
P2CFG1 (A1h) P2 口模式配置寄存器(读/写)
7
6
5
4
位编号
P27M[1:0]
P26M[1:0]
符号
读/写
读/写
读/写
读/写
读/写
1
0
1
0
上电初始值
P2CFG0 (A2h) P2 口模式配置寄存器(读/写)
7
6
5
位编号
符号
读/写
4
-
Page 46 of 68
深圳市赛元微电子有限公司
3
2
P05M[1:0]
读/写
读/写
1
0
3
2
P01M[1:0]
读/写
读/写
1
0
3
2
P15M[1:0]
读/写
读/写
1
0
3
2
P11M[1:0]
读/写
读/写
1
0
3
2
P25M[1:0]
读/写
读/写
1
0
3
2
P21M[1:0]
读/写
读/写
1
0
P04M[1:0]
读/写
读/写
1
0
1
0
P00M[1:0]
读/写
读/写
1
0
1
0
P14M[1:0]
读/写
读/写
1
0
1
0
x
x
1
0
P24M[1:0]
读/写
读/写
1
0
1
0
P20M[1:0]
读/写
读/写
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
上电初始值
x
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
x
位编号
5~0
位符号
P0xM[1:0]
(x=0~5)
5~1
P1xM[1:0]
(x=1~5)
7~4,1~0
P2xM[1:0]
(x=0~1,4~7)
P0 (80h) P0 口数据寄存器(读/写)
7
6
位编号
符号
读/写
x
x
上电初始值
P1 (90h) P1 口数据寄存器(读/写)
7
6
位编号
符号
读/写
x
x
上电初始值
P2 (A0h) P2 口数据寄存器(读/写)
7
6
位编号
P2.7
P2.6
符号
读/写
读/写
读/写
1
1
上电初始值
位编号
5~0
5~1
7~4,1~0
位符号
P0.x
(x=0~5)
P1.x
(x=1~5)
P2.x
(x=0~1,4~7)
x
x
1
0
1
0
说明
P0 口模式配置
00:P0x 的特性同标准 8051 MCU 的 I/O 口,即是准双向 IO 口
01:强制 P0x 口 有很强的输出高驱动能力
10:P0x 为高阻输入模式(上电初始值)
11:P0x 为 N 型开漏模式
P1 口模式配置
00:P1x 的特性同标准 8051 MCU 的 I/O 口,即是准双向 IO 口
01:强制 P1x 口 有很强的输出高驱动能力
10:P1x 为高阻输入模式(上电初始值)
11:P1x 为 N 型开漏模式
P2 口模式配置
00:P2x 的特性同标准 8051 MCU 的 I/O 口,即是准双向 IO 口
01:强制 P2x 口 有很强的输出高驱动能力
10:P2x 为高阻输入模式(上电初始值)
11:P2x 为 N 型开漏模式
5
4
3
2
1
0
P0.5
读/写
1
P0.4
读/写
1
P0.3
读/写
1
P0.2
读/写
1
P0.1
读/写
1
P0.0
读/写
1
5
4
3
2
1
0
P1.5
读/写
1
P1.4
读/写
1
P1.3
读/写
1
P1.2
读/写
1
P1.1
读/写
1
x
5
4
3
2
1
0
P2.5
读/写
1
P2.4
读/写
1
x
x
P2.1
读/写
1
P2.0
读/写
1
说明
P0 口锁存寄存器数据
P1 口锁存寄存器数据
P2 口锁存寄存器数据
12.3 I/O 端口复用
(略)
Page 47 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
13 高灵敏度触控按键 TOUCH KEY SENSOR
SC91F8312 内建一个 12 通道的高灵敏度电容触控按键 Touch Key Sensor 电路,可实现隔空按键触控、接近
感应等操作。用户通过使用赛元提供的高灵敏度触控按键库文件,可快速简单实现隔空按键、接近感应等功能。
此高灵敏度电容触控按键的主要特点为:
① 可隔空操作,通常隔空距离不超过 6.5mm;
② 最多 12 个通道的 Touch Key;
③ 内置多种抗干扰电路,抗干扰能力强:EFT 4KV 可正常操作;
④ 面板厚度几乎无影响;
高灵敏度电容触控电路框图:
VCC
超强抗干扰
电路
Cx(0~15)
高可靠性
电源电路
高精密度电容放大测量电路
Cmod
14 UART
SC91F8312 内置一个自带波特率发生器的硬件串口通讯 UART 电路,可方便用于同其它器件或者设备的连
接,例如 Wifi 模块电路或其它驱动芯片等。此 UART 具有标准 UART 的部分实用功能:
① 通讯模式为传统 UART 的模式 1 和模式 3;
② 自带波特率发生器,时钟源为 Fosc/4;
③ 发送和接收完成可产生中断;
14.1 UART 相关寄存器
SCON (98h) 串口控制寄存器(读/写)
7
6
5
位编号
SM0
SM2
符号
读/写
读/写
读/写
0
x
0
上电初始值
4
REN
读/写
0
Page 48 of 68
深圳市赛元微电子有限公司
3
TB8
读/写
0
2
RB8
读/写
0
1
TI
读/写
0
0
RI
读/写
0
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
位编号
7
位符号
SM0
5
SM2
4
REN
3
2
1
TB8
RB8
TI
0
RI
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
说明
串行通信模式控制位 0
0: 模式 1,10 位全双工异步通信,由 1 个起始位,8 个数据位和 1 个
停止位组成,通信波特率可变;
1: 模式 3,11 位全双工异步通信,由 1 个起始位,8 个数据位,一个
可编程的第 9 位和 1 个停止位组成,通信波特率可变;
串行通信模式控制位 1,此控制位只对模式 3 有效
0:每收到一个完整的数据帧就置位 RI 产生中断请求;
1:收到一个完整的数据帧时,只有当 RB8=1 时才会置位 RI 产生中断
请求;
接收允许控制位
0:不允许接收数据;
1:允许接收数据;
发送数据的第 9 位,只对模式 3 有效。
接收数据的第 9 位,只对模式 3 有效。
发送中断标志位
0:由软件清 0
1:由硬件置 1,发送停止位时执行
接收中断标志位
0:由软件清 0
1:由硬件置 1,接收停止位时执行
SBUF (99h) 串口数据缓存寄存器(读/写)
7
6
5
位编号
符号
读/写
读/写
读/写
读/写
0
0
0
上电初始值
位编号
7~0
位符号
SBUF[7:0]
位符号
BAUDG[7:0]
1
0
读/写
0
读/写
0
读/写
0
4
3
BAUDG[7:0]
读/写
读/写
0
0
2
1
0
读/写
0
读/写
0
读/写
0
1
0
读/写
0
读/写
0
说明
波特率发生定时器低 8 位
BAUDGH (9Bh) 波特率发生寄存器 H(读/写)
7
6
5
位编号
ENBAUDG
符号
读/写
读/写
读/写
0
x
0
上电初始值
位编号
2
说明
串口数据缓存寄存器
SBUF 包含两个寄存器:一个发送移位寄存器和一个接收锁存器
写入 SBUF 的数据将送至发送移位寄存器,并启动发送流程;
读取 SBUF 时将返回接收锁存器中的内容。
BAUDGL (9Ah) 波特率发生寄存器 L(读/写)
7
6
5
位编号
符号
读/写
读/写
读/写
读/写
0
0
0
上电初始值
位编号
7~0
4
3
SBUF[7:0]
读/写
读/写
0
0
4
读/写
0
位符号
3
2
BAUDG[13:8]
读/写
读/写
0
1
说明
Page 49 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
7
ENBAUDG
5~0
BAUDG[13:8]
波特率发生器控制位
0:波特率发生器关闭;
1:波特率发生器打开;
波特率发生定时器高 6 位
串口通信的波特率:
𝐵𝑎𝑢𝑑𝑅𝑎𝑡𝑒 =
𝑓𝑜𝑠𝑐/4
𝐵𝐴𝑈𝐷𝐺[13: 0] + 1
14.2 UART 工作模式说明
SC91F8312 有两种工作模式:模式 1 和模式 3。模式 1 为 10 位可变波特率全双工异步通信,模式 3 为 11 位
可变波特率全双工异步通信。UART 工作模式列表及说明如下:
SM0
SM2
工作模式
类型
帧长度
起始位
停止位
第9位
波特率
0
0
1
模式 1
异步
10 位
无
可设
1
0/1
0
1
0/1
模式 3
异步
11 位
可设
UART 工作模式 1:10 位通信,8 位数据,可变波特率,异步全双工。
模式 1 提供 10 位全双工异步通信,10 位由 1 个起始位(0),8 个数据位(bit0 为第一位),和一个停止位
(1)组成。在接收时,8 位数据位存储在寄存器 SBUF 中。
任何写入 SBUF 的数据都会启动发送,数据发送操作是从波特率发生器计数器的下一次跳变的系统时钟开始
的,因此与 Fosc/4 是同步的,与对 SBUF 的写操作不同步。发送时序图如下图所示:
Write to SBUF
TxD
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
Shift CLK
TI
模式1:发送时序图
只有 REN 置 1 时才允许接收。当 RXD 引脚检测到下降沿时,串行口开始接收串行数据。系统时钟一直对 RXD
的电平进行采样,直到确认 RXD 为可靠 0 并确认起始位有效后开始启动 8 位数据的接收,并装入 SBUF 中。如果
满足以下条件:RI=0 和接收的停止位=1 时,RI 被置 1,一次接收完成。否则接收的数据会丢失,硬件重新启动对
RXD 的电平检测,此时用户必须用软件清除 RI,才能再次接收。接收时序如下图:
Page 50 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
RxD
Start
D0
D1
D2
D3
D4
D5
D6
D7
Stop
Bit Sample
Shift CLK
RI
模式1:接收时序图
UART 工作模式 3:11 位通信,9 位数据,可变波特率,异步全双工。
模式 3 提供 11 位全双工异步通信,11 位由 1 个起始位(0),9 个数据位(bit0 为第一位),和一个停止位
(1)组成。在接收时,8 位数据存储在寄存器 SBUF 中,第 9 位数据放入 RB8。在数据传送时,第 9 位数据 TB8
可以写为 0 或者 1,例如可写入 PSW 中的奇偶位 P,或者用作多机通信中的数据/地址标志位。
任何写入 SBUF 的数据都会启动发送,同时将 TB8 载入到发送移位寄存器的第 9 位中。数据发送操作是从波
特率发生器计数器的下一次跳变的系统时钟开始的,因此与 Fosc/4 是同步的,与对 SBUF 的写操作不同步。起始
位先从 TxD 引脚移出,最后是第 9 位数据,停止位在 TxD 引脚上移出开始发送时 TI 标志置 1。发送时序图如下图
所示:
Write to SBUF
TxD
Start
D0
D1
D2
D3
D4
D5
D6
D7
D8
Stop
Shift CLK
TI
模式3:发送时序图
只有 REN 置 1 时才允许接收。当 RXD 引脚检测到下降沿时,串行口开始接收串行数据。系统时钟一直对 RXD
的电平进行采样,直到确认 RXD 为可靠 0 并确认起始位有效后开始启动 9 位数据的接收,并装入 SBUF 和 RB8
中。如果满足以下条件:RI=0 和接收的停止位=1 时,RI 被置 1,一次接收完成。否则接收的数据会丢失,硬件重
新启动对 RXD 的电平检测,此时用户必须用软件清除 RI,才能再次接收。接收时序如下图:
Page 51 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
RxD
Start
D0
D1
D2
D3
D4
D5
D6
D8
D7
Stop
Bit Sample
Shift CLK
RI
模式3:接收时序图
15 软件 LCD 驱动
SC91F8312 所有 IO 可作为软件 LCD 的 COM 或者 SEG,每个 IO 除了正常 IO 功能外,还可有两组输出电
压可选择:1/3VDD、2/3VDD;1/2VDD。用户可根据使用情况,选择任意 IO 作为 LCD 驱动的 COM 或者 SEG。
15.1 软件 LCD 驱动相关寄存器
LCD 驱动相关 SFR 寄存器说明:
符号
地址 说明
P0LCDVO
P1LCDVO
P2LCDVO
LCDVOS
A3H
A4H
A5H
AFH
7
6
5
4
3
2
1
0
P05VO P04VO P03VO P02VO P01VO P00VO
P0 口 LCD 电压输出
P15VO P14VO P13VO P12VO P11VO
P1 口 LCD 电压输出
P2 口 LCD 电压输出 P27VO P26VO P25VO P24VO
P21VO P20VO
LCD 电压输出值选择
VOIRS[1:0]
VOS
Reset 值
xx000000
xx00000x
0000xx00
xxxx00x0
P0LCDVO(A3H) P0 口 LCD 电压输出寄存器(读/写)
7
6
5
4
位编号
P05VO
P04VO
符号
读/写
读/写
读/写
x
x
0
0
上电初始值
3
2
1
0
P03VO
读/写
0
P02VO
读/写
0
P01VO
读/写
0
P00VO
读/写
0
P1LCDVO(A4H) P1 口 LCD 电压输出寄存器(读/写)
7
6
5
4
位编号
P15VO
P14VO
符号
读/写
读/写
读/写
x
x
0
0
上电初始值
3
2
1
0
P13VO
读/写
0
P12VO
读/写
0
P11VO
读/写
0
x
3
2
1
0
x
x
P21VO
读/写
0
P20VO
读/写
0
P2LCDVO(A5H) P2 口 LCD 电压输出寄存器(读/写)
7
6
5
4
位编号
P27VO
P26VO
P25VO
P24VO
符号
读/写
读/写
读/写
读/写
读/写
0
0
0
0
上电初始值
位编号
7~0
位符号
PxyVO
(x=0~2, y=0~7)
说明
打开 Pxy 口 LCD 电压输出
0:关闭 Pxy 口的 LCD 电压输出功能
1:打开 Pxy 口的 LCD 电压输出功能
LCDVOS(AFH) LCD 电压输出值选择寄存器(读/写)
Page 52 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
位编号
符号
读/写
上电初始值
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
7
6
5
4
3
x
x
x
x
读/写
0
位编号
3~2
位符号
VOIRS[1:0]
0
VOS
2
1
-
VOS
读/写
0
x
读/写
0
VOIRS[1:0]
0
说明
LCD 电压输出口分压电阻选择(根据 LCD 屏大小选择适合的驱动)
00:关闭内部分压电阻(省电)
01:设定内部分压电阻约为 25K
10:设定内部分压电阻约为 50K
11:设定内部分压电阻约为 100K
LCD 电压输出口输出电压选择
当 PxyVO=1 时,IO 的 LCD 功能打开,不同设置下的 IO 输出 LCD 电
压关系如下表:
PxyM[10]=10,
PxyM[10]=10,
IO Pxy 的 LCD 电压输出
Px.y=0
Px.y=1
VOS=0
1/2VDD
VOS=1
1/3VDD
2/3VDD
注:Px.y 为 Pxy 口的输出寄存器 Px 的 bit y 的值;
15.2 软件 LCD 驱动用法说明及注意事项
LCD 的 SEG/COM 的驱动信号为交流模拟信号,LCD 像素点的显示对比度取决于此显示点上的 COM 电压减
去 SEG 电压 Vcom-Vseg 的有效值,当此电压差大于 LCD 的饱和电压就能打开此点的显示,小于 LCD 的饱和电
压就能关闭此 LCD 点的显示。这需要每个 COM/SEG 在一个扫描周期内根据用户需要在选通和非选通电压之间切
换。SC91F8312 工作在非选通电压(1/2VDD@1/2Bias;1/3VDD、2/3VDD@1/3Bias)时需将 IO 的状态设置为
高阻输入,工作在选通电压(VDD、VSS)时需将 IO 的状态设置为强推挽输出。
当 LCD 从选通电压切换为非选通电压时,需要先将 IO 的状态设置为高阻输入,1/3Bias 需要再设置 IO 的输
出值,最后配置 PXLCDVO 将 IO 设置为 LCD 输出;
当 LCD 从非选通电压切换为选通电压时,需要先配置 PxLCDVO 将 IO 设置为 GPIO 输出,要再设置 IO 的输
出值,最后将 IO 设置为强推挽输出。
1/2Bias LCD 应用
1/2Bias LCD 时 COM 的波形图:
Page 53 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
1 Frame
1 Frame
VDD
COM0
1/2 VDD
VSS
VDD
COM1
1/2 VDD
VSS
VDD
COM2
1/2 VDD
VSS
VDD
COM3
1/2 VDD
VSS
1/2Bias LCD COM0~COM3 一轮扫描的 COM&SEG 电平和显示关系:
COM0
COM1
COM2
COM3
SEGn 点亮
VDD
1/2VDD
1/2VDD
1/2VDD
VSS
VSS
1/2VDD
1/2VDD
1/2VDD
VDD
1/2VDD
VDD
1/2VDD
1/2VDD
VSS
1/2VDD
VSS
1/2VDD
1/2VDD
VDD
1/2VDD
1/2VDD
VDD
1/2VDD
VSS
1/2VDD
1/2VDD
VSS
1/2VDD
VDD
1/2VDD
1/2VDD
1/2VDD
VDD
VSS
1/2VDD
1/2VDD
1/2VDD
VSS
VDD
SEGn 不亮
VDD
VSS
VDD
VSS
VDD
VSS
VDD
VSS
以 1/2Bias 为例,用 P00 作为其中一个 COM 输出 3 级电压的设置步骤如下:
① 设置 LCDVOS=0x04;选择 1/2Bias 输出,设定内部最小的分压电阻
② 输出 VDD:设置 P0LCDVO=0x00;再设置 P0=0x01;最后设置 P0CFG0=0x01;
③ 输出 1/2VDD:设置 P0CFG0=0x02;再设置 P0=0x01;最后设置 P0LCDVO=0x01;
④ 输出 VSS:设置 P0LCDVO=0x00;再设置 P0=0x00;最后设置 P0CFG0=0x01;
1/3Bias LCD 应用
1/3Bias LCD 选通和非选通电压:
Page 54 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
1/4 DUTY 1/3 BIAS
SELECT
UNSELECT
VDD
2/3 VDD
COM
1/3 VDD
VSS
SELECT
UNSELECT
VDD
2/3 VDD
SEG
1/3 VDD
VSS
1/3Bias LCD 应用中 COM 和 SEG 的波形图:
Page 55 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
1 Frame
1 Frame
VDD
2/3 VDD
COM0
1/3 VDD
VSS
VDD
2/3 VDD
COM1
1/3 VDD
VSS
VDD
2/3 VDD
COM2
1/3 VDD
VSS
VDD
2/3 VDD
COM3
1/3 VDD
VSS
VDD
2/3 VDD
SEGn
1/3 VDD
VSS
1/3Bias 直流电压电平选择关系表如下:
项目
直流分压电平
COM
前半扫描周期
SEG
后半扫描周期
COM
选通电平
非选通电平
选通电平
非选通电平
选通电平
Page 56 of 68
深圳市赛元微电子有限公司
1/3Bias LCD
VDD
2/3VDD
1/3VDD
VSS
VDD
1/3VDD
VSS
2/3VDD
VSS
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
非选通电平
选通电平
非选通电平
SEG
2/3VDD
VDD
1/3VDD
以 1/3Bias 为例,P00 输出 4 级电压的设置步骤如下:
① 设置 LCDVOS=0x05;选择 1/3Bias 输出,设定内部最小的分压电阻
② 输出 VDD:设置 P0LCDVO=0x00;再设置 P0=0x01;最后设置 P0CFG0=0x01;
③ 输出 1/3VDD:设置 P0CFG0=0x02;再设置 P0=0x00;最后设置 P0LCDVO=0x01;
④ 输出 VSS:设置 P0LCDVO=0x00;再设置 P0=0x00;最后设置 P0CFG0=0x01;
⑤ 输出 2/3VDD:设置 P0CFG0=0x02;再设置 P0=0x01;最后设置 P0LCDVO=0x01;
特别注意:IO 输出的 1/2VDD 和 1/3VDD、2/3VDD 都是 IC 内部 VDD 经过分压输出(分压电阻值为用户设
定 VOIRS),如果 IO 有复用其它功能,请确保 IO 其他功能不会将此电压拉偏。
赛元提供标准的软件 LCD 程序,用户可通过简单地配置即可实现 LCD 功能,如有需要可联络赛元微电子
工程师获取。
16 模数转换 ADC
SC91F8312 内建一个 12-bit 6 通道的高精度逐次逼近型 ADC ,此 ADC 和 IO 口的其它功能复用。
此 ADC 的基本功能为:
① 12 位分辨率;
② 10 位以上精度;
③ 内部一个通道 AIN0 可接内部 1/3VDD 分压,用来测量 VDD 电压;
④ 外部 5 个通道 AIN1~4 和 AIN7 用于外部信号测量;
⑤ 内置 2.4V 参考电压;
⑥ 测量完成后产生中断;
ADC 的参考电压可以有 2 种选择:
① 是 VDD 管脚(即直接是内部的 VDD);
② 是内部 Regulator 输出的参考电压精准的 2.4V;
16.1 ADC 相关寄存器
ADCCFG (C4h) ADC 配置寄存器(读/写)
7
6
5
位编号
P15AIN7
符号
读/写
读/写
0
x
x
上电初始值
位编号
7,4~1
位符号
PyzAINx
(x= 1~4,7)
0
VREFS
ADCCR (C5h) ADC 控制寄存器
7
6
位编号
ADCEN
ADCS
符号
4
3
P27AIN4
读/写
0
P26AIN3
读/写
0
2
P25AIN2
读/写
0
1
P24AIN1
读/写
0
0
VREFS
读/写
n
说明
P2/P1 口 ADC 设置寄存器
0:设定 PyzAINx 为 IO 口
1:设定 PyzAINx 为 ADC 输入,并自动将上拉电阻移除。
参考电压选择(初始值从 Code Option 调入,用户可修改设置)
0:设定 ADC 的 VREF 为 VDD
1:设定 ADC 的 VREF 为 内部准确的 2.4V
5
4
3
LOWSP
EOC/
-
Page 57 of 68
深圳市赛元微电子有限公司
2
1
0
ADCIS[2:0]
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
读/写
上电初始值
读/写
0
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
读/写
0
位编号
7
位符号
ADCEN
6
ADCS
5
LOWSP
4
EOC /ADCIF
2~0
ADCIS[2:0]
3
保留位
读/写
0
ADCIF
读/写
0
读/写
0
x
ADCVL (C7h) ADC 转换数值寄存器(低 4 位) (读/写)
7
6
5
4
位编号
ADCV[3:0]
符号
读/写
读/写
读/写
读/写
读/写
x
x
x
x
上电初始值
位符号
ADCV[11:4]
ADCV[3:0]
读/写
0
说明
启动 ADC 的电源
0:关闭 ADC 模块电源
1:开启 ADC 模块电源
ADC 开始触发控制(ADC Start)
对此 bit 写 “1”, 开始做一次 ADC 的转换,即该位只是 ADC 转换的触发
信号。此位只可写入 1 有效。
ADC 时钟频率选择(ADC Clocks Selector)
0:设定 ADC 所使用的 clock 频率为 2MHz
1:保留
ADC 转化需要 20 个 ADC CLOCK 完成
转换完成/ADC 中断请求标志(End Of Conversion / ADC Interrupt Flag)
0:转换尚未完成
1:ADC 转换完成。需用户软件清除
ADC 转换完成标志 EOC:当使用者设定 ADCS 开始转换后, 此位会被硬
件自动清除为 0; 当转换完成后, 此位会被硬件自动置为 1 ;
ADC 中断请求标志 ADCIF:
此位同时也当作是 ADC 中断的中断请求标志,如果用户使能 ADC 中
断, 那么在 ADC 的 中断 发生后, 用户必须用软件清除此位。
ADC 输入通道选择(ADC Input Selector)
000:1/3 VDD, 可用于测量电源电压
001:选用 P2.4 当作 ADC 的输入
010:选用 P2.5 当作 ADC 的输入
011:选用 P2.6 当作 ADC 的输入
100:选用 P2.7 当作 ADC 的输入
101:保留
110:保留
111:选用 P1.5 当作 ADC 的输入
保留位
ADCVH (C6h)ADC 转换数值寄存器(高 8 位)(读/写)
7
6
5
4
3
位编号
ADCV[11:4]
符号
读/写
读/写
读/写
读/写
读/写
读/写
x
x
x
x
x
上电初始值
位编号
7~0
7~4
读/写
0
3
x
2
1
0
读/写
x
读/写
x
读/写
x
2
x
1
x
0
x
说明
ADC 转换值的高 8 位数值
ADC 转换值的低 4 位数值
IE (A8h) 中断使能寄存器(读/写)
Page 58 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
位编号
符号
读/写
上电初始值
位编号
6
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
7
6
5
4
3
2
1
0
EA
读/写
0
EADC
读/写
0
EPWM
读/写
0
EUART
读/写
0
ET1
读/写
0
E32K
读/写
0
ET0
读/写
0
ETK
读/写
0
位符号
EADC
IP (B8h) 中断优先权寄存器(读/写)
7
6
位编号
IPADC
符号
读/写
读/写
x
0
上电初始值
位编号
6
位符号
IPADC
说明
ADC 中断使能控制
0: 不允许 EOC/ADCIF 产生中断
1: 允许 EOC/ADCIF 产生 中断
5
4
3
2
1
0
IPPWM
读/写
0
IPUART
读/写
0
IPT1
读/写
0
IP32K
读/写
0
IPT0
读/写
0
IPTK
读/写
0
说明
ADC 中断优先权选择
0:设定 ADC 的中断优先级是 “低”
1:设定 ADC 的中断优先级是 “高”
16.2 ADC 转换步骤
用户实际进行 ADC 转换所需要的操作步骤如下:
① 设定 ADC 输入管脚;(设定 PyzAINx 对应的位为 ADC 输入,通常 ADC 管脚会预先固定);
② 设定 ADC 参考电压 Vref,设定 ADC 转换所用的频率;
③ 开启 ADC 模块电源;
④ 选择 ADC 输入通道;(设置 ADCIS 位,选择 ADC 输入通道);
⑤ 启动 ADCS,转换开始;
⑥ 等待 EOC/ADCIF=1,如果 ADC 中断使能,则 ADC 中断会产生,用户需要软件清 0 EOC/ADCIF 标志;
⑦ 从 ADCVH、ADCVL 获得 12 位数据,先高位后低位,一次转换完成;
⑧ 如不换输入通道,则重 5~7 的步骤,进行下一次转换;
注意事项:
1. 在设定 IE[6](EADC)前, 使用者最好用软件先清除 EOC/ADCIF, 并且在 ADC 中断服务程序执行完时, 也清
除该 EOC/ADCIF, 以避免不断的产生 ADC 中断。
16.3 ADC 测量 VDD 电压
SC91F8312 除了测量外部电压信号外,也可通过内部 ADC 通道 AIN0 来测量 VDD 电压,可作为电源电压检
测电路或者低电压检测 LPD 使用。测试条件为:设置内部 2.4V 为 ADC 参考电压;ADC 输入通道选择 AIN0 通道
0;配置 LCDVOS(AFH)=0X05,即打开 1/3VDD 分压电路。设置完成后按照正常 ADC 转换流程,通过 ADC 转
换结果值 ADCV 即可计算出准确的 VDD 电压。
如下图所示,VDD 的电压值 VDD=2.4*ADCV*3/4096,其中 ADCV 为 ADC 转换结果值。
Page 59 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
内部2.4V ADC
参考电压
12bit ADC
转换电路
VDD
1/3VDD
电压分压
ADCV
转换结果值
ADCIF
AIN0
设置AFH寄存器
LCDVOS=0x05
VDD电压检测电路
17 IAP
SC91F8312 的 IAP 操作空间范围有两种模式可选:
1. 内部最高位地址的 256B Flash(地址 1F00H~1FFFH)可以进行 In Application Programming(IAP)操
作, 即作为 EEPROM 使用。
2. IC 整个 ROM 空间的 8KB 范围内都可进行 IAP 操作,主要用作远程程序更新使用。
注意:
SC91F8312 的 8KB Flash ROM 最高 4 Byte 地址(地址 1FFCH~1FFFH)存放有 IC 出厂参数,用户在使
用过程中需避免对这些地址进行操作,以防修改出厂参数引起 MCU 功能异常。
IAP 操作空间选择作为 Code Option 在编程器写入 IC 时选择:
IFB
Bit-7
Bit-6
Bit-5
Bit-4
Bit-3
Bit-2
Bit-1
Bit-0
IFB2
-
-
-
-
IAPS
-
-
-
IAPS=0,仅提供 256B 的 IAP 功能;
IAPS=1,可提供 8KB 范围的 IAP 功能;
*重点提醒:8KB 范围的 IAP 有风险,需要软硬件配合以保证安全,请谨慎选择!
17.1 IAP 操作相关寄存器
IAP 相关 SFR 寄存器说明:
符号
地址
说明
IAPKEY EAH
IAP 保护寄存器
IAPADH EBH
IAP 地址高位
IAPADL ECH
IAP 地址低位
IAPDAT EDH
IAP 写入/读出 资料
IAPCTL
EEH
IAP 命令
7
6
-
-
-
-
IAPKEY(EAH) IAP 保护寄存器(读/写)
7
6
5
位编号
符号
读/写
读/写
读/写
读/写
0
0
0
上电初始值
位编号
7~0
位符号
IAPKEY[7:0]
5
-
4
3
2
1
0
IAPKEY[7:0]
IAPADR[12:8]
IAPADR[7:0]
IAPDAT[7:0]
PAYTIMES
CMD[1:0]
[1:0]
4
3
IAPKEY[7:0]
读/写
读/写
0
0
Reset 值
00000000b
xxx11111b
11111111b
11111111b
xxxx0000b
2
1
0
读/写
0
读/写
0
读/写
0
说明
打开 IAP 功能及 IAP 操作时限设置
写入一个非零值 n,则代表意思为:①打开 IAP 功能;②n 个系统时钟
Page 60 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
后如果接收不到 IAP 写入命令,则 IAP 功能被重新关闭;
IAPADH(EBH)IAP 写入地址高 5 位寄存器
7
6
5
位编号
符号
读/写
x
x
x
上电初始值
位编号
4~0
位符号
IAPADR[12:8]
位符号
IAPADR[7:0]
IAPDAT(EDH)IAP 数据寄存器
7
6
位编号
符号
读/写
读/写
读/写
1
1
上电初始值
位编号
7~0
位符号
IAPDAT
IAPCTL(EEH)IAP 控制寄存器
7
6
位编号
符号
读/写
x
x
上电初始值
位编号
3~2
位符号
PAYTIMES[1:0]
1~0
CMD[1:0]
读/写
1
3
读/写
1
2
1
IAPADR[12:8]
读/写
读/写
1
1
0
读/写
1
说明
IAP 写入地址的高 5 位
IAPADL(ECH)IAP 写入地址低 8 位寄存器
7
6
5
位编号
符号
读/写
读/写
读/写
读/写
1
1
1
上电初始值
位编号
7~0
4
4
3
IAPADR[7:0]
读/写
读/写
1
1
2
1
0
读/写
1
读/写
1
读/写
1
2
1
0
读/写
1
读/写
1
读/写
1
2
1
0
说明
IAP 写入地址的低 8 位
5
读/写
1
4
3
IAPDAT[7:0]
读/写
读/写
1
1
说明
IAP 写入的数据
5
4
-
-
x
x
3
PAYTIMES[1:0]
读/写
读/写
0
0
CMD[1:0]
读/写
读/写
0
0
说明
IAP 写入操作时,CPU Hold Time 时间长度设定
00 :设定 CPU HOLD TIME 4mS@16/8MHz
01 :设定 CPU HOLD TIME 2mS@16/8MHz
10 :设定 CPU HOLD TIME 1mS@16/8MHz
11 :保留
说明:CPU Hold 的是 PC 指针,其他功能模块继续工作;中断标志会被
保存,并在 Hold 结束后进入中断,但多次的中断只能保留最后一次。
选择建议:VDD 在 2.7V~5.5V,可选择 10
VDD 在 2.4V~5.5V,可选择 01 或者 00
IAP 写入操作命令
00 : 保留
01 : 保留
10 : 写入
11 : 保留
Page 61 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
17.2 256B IAP 操作流程和范例程序
SC91F8312 的 256B 范围 IAP 的 写入流程如下:
① 写入 IAPDAT[7:0](准备好 IAP 写入的数据);
② 写入 {IAPADR[12:8], IAPADR[7:0]}(准备好 IAP 操作的目标地址,IAPADR[12:8]固定为 1);
③ 写入 IAPKEY[7:0] 写入一个非 0 的值 n(打开 IAP 保护,且在 n 个系统时钟内没收到写入命令 IAP 会被
关闭);
④ 写入 IAPCTL[3:0](设定 CPU Hold 时间,写入 CMD[1:0]为 1、0,CPU Hold 并启动 IAP 写入);
⑤ IAP 写入结束,CPU 继续后续操作;
注意事项:
1. 利用 MOVC 指令,用户可以读取此部分 IAP 写入的数据。
SC91F8312 的 256B 范围 IAP 范例程序如下:
#include ”intrins.h”
unsigned char code *POINT=0x1F00;
unsigned char DATA1,ADDR1;
IAP 写操作 C 的 Demo 程序:
IAPDAT=DATA1;
IAPADH=0x1f;
IAPADL=ADDR1;
IAPKEY=0xf0;
IAPCTL=0x0a;
_nop_();
_nop_();
_nop_();
_nop_();
//送数据 DATA1 到 IAP 数据寄存器
//写入 IAP 目标地址高位
//写入 IAP 目标地址低位值 ADDR1
//此值可根据实际调整;需保证本条指令执行后到对 IAPCTL 赋值前,
//时间间隔需小于 240(0xf0)个系统时钟,否则 IAP 功能关闭;
// 开启中断时要特别注意
//执行 IAP 写入操作,1ms@16M/8M;
//等待(至少需要 1 个_nop_())
IAP 读操作 C 的 Demo 程序:
DATA1=*(POINT+ADDR1);
//读取 ADDR1 的值到 DATA1
IAP 读操作汇编的 Demo 程序:
MOV DPTR,#1F00H;
MOV A, ADDR1;
MOVC A, @A+DPTR;
//DPTR 赋初值
//地址值送 A
//读取 ADDR1 的值到 A
17.3 8K 范围 IAP 应用说明
8KB 范围内的操作有一定的风险,需要用户在软件中做相应的安全处理措施,如若操作不当可能会造成用户
程序被改写!除非用户必需此功能(比如用于远程程序更新等),不建议用户使用。
SC91F8312 的 8KB Flash ROM 最高 4 Byte 地址(地址 1FFCH~1FFFH)存放有 IC 出厂参数,用户在使用
过程中需避免对这些地址进行操作,以防修改出厂参数引起 MCU 功能异常。
Page 62 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
18 电气特性
18.1 极限参数
符号
VDD/VSS
Voltage ON any
Pin
TA
参数
直流供电电压
任一管脚输入/输出电压
最小值
-0.3
-0.3
最大值
5.5
VDD+0.3
UNIT
V
V
工作环境温度
-40
85
℃
TSTG
储存温度
-55
125
℃
参数
工作电压
工作环境温度
最小值
2.4
-40
最大值
5.5
85
UNIT
V
18.2 推荐工作条件
符号
VDD
TA
℃
18.3 直流电气特性
(VDD = 5V, TA = +25℃, 除非另有说明)
符号
参数
最小值
典型值
最大值
单位
测试条件
Iop1
Iop2
Ipd1
工作电流
工作电流
待机电流
(Power Down 模式)
Touch key 工作电流
-
8.0
5.3
0.1
10
7.0
1.0
mA
mA
μA
IRC=16MHz
IRC=8MHz
1.6
2.4
mA
IRC=16MHz
-
VDD+0.5
0.3VDD
VDD
1.5
13
24
23
43
60
V
V
V
V
mA
mA
mA
mA
μA
VPin=0.4V
VPin=0.8V
VPin=0.4V
VPin=0.8V
Vpin=4.7V
12
mA
Vpin=4.3V
5.5
mA
Vpin=4.7V
电流
Itk1
IO 口特性
VIH
VIL
VIH,RSTN
VIL,RSTN
IOL1
IOL2
IOL3
IOL4
IOH1
输入高电压
输入低电压
输入高电压, RSTN 脚
输入低电压, RSTN 脚
灌电流 P0
灌电流 P0
灌电流 P1/P2
灌电流 P1/P2
输出高的电流(准双向口
模式)P0/P1/P2
IOH2
输出高的电流(强推挽模
式)P0/P1/P2
IOH3
输出高的电流(强推挽模
式)P0/P1/P2
做为 ADC 参考电压的内部基准 2.4V
VDD24
内部基准 2.4V 电压输出
0.7VDD
-0.5
2.0
-0.2
2.37
2.40
2.45
V
TA=-40~85℃
最小值
典型值
最大值
单位
测试条件
10
5.8
1
mA
mA
μA
IRC=16MHz
IRC=8MHz
-
8.0
4.6
0.1
(VDD = 3.3V, TA = +25℃, 除非另有说明)
符号
参数
Iop3
Iop4
Ipd2
工作电流
工作电流
待机电流
电流
Page 63 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
Itk2
IO 口特性
VIH
VIL
VIH,RSTN
VIL,RSTN
IOL5
IOL6
IOL7
IOL8
IOH4
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
(Power Down 模式)
Touch key 工作电流
输入高电压
输入低电压
输入高电压, RSTN 脚
输入低电压, RSTN 脚
灌电流 P0
灌电流 P0
灌电流 P1/P2
灌电流 P1/P2
输出高的电流(准双向口
模式)P0/P1/P2
IOH5
输出高的电流(强推挽模
式)P0/P1/P2
做为 ADC 参考电压的内部基准 2.4V
VDD24
内部基准 2.4V 电压输出
1.25
1.80
mA
IRC=16MHz
-
VDD+0.5
0.3VDD
VDD
1.5
9
16
17
30
40
V
V
V
V
mA
mA
mA
mA
μA
VPin=0.4V
VPin=0.8V
VPin=0.4V
VPin=0.8V
Vpin=3.0V
3.7
mA
Vpin=3.0V
2.45
V
TA=-40~85℃
典型值
60
最大值
80
单位
μs
16
16.16
μs
MHz
测试条件
IRC=16MHz
VDD=5V
低电平有效
VDD=4.5~5.5V
TA=-20~85 ℃
0.7VDD
-0.5
2.0
-0.2
2.37
2.40
18.4 交流电气特性 (VDD = 2.5V ~ 5.5V, TA = 25℃, 除非另有说明)
符号
Tosc
参数
振荡器起振时间
最小值
Treset
FIRC
复位脉冲宽度
RC 振荡稳定性
18
15.84
18.5 ADC 电气特性 (TA = 25℃, 除非另有说明)
符号
VAD
NR
VAIN
RAIN
Rref
ZAIN
IADC1
参数
供电电压
精度
ADC 输入电压
ADC 输入电阻
Vref 输入阻抗
模拟电压源推荐阻抗
ADC 转换电流 1
IADC2
ADC 转换电流 2
DNL
最小值
2.4
典型值
5.0
12
0.55
5
0.75
单位
V
bit
V
M
K
K
mA
0.50
0.70
mA
微分非线性误差
±2
LSB
INL
积分非线性误差
±3
LSB
EAD
总绝对误差
±3
LSB
TADC
ADC 转换时间
GND
1
最大值
5.5
VDD
13.5
20
Page 64 of 68
深圳市赛元微电子有限公司
测试条件
GND≤VAIN≤VREF
VIN=5V
ADC 模块打开
VDD=5V
ADC 模块打开
VDD=3.3V
VDD=5V,
VREF=5V
VDD=5V,
VREF=5V
VDD=5V,
VREF=5V
tAD
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
19 应用电路
烧录接口
1
2
3
4
5
6
VCC
ENB
CEN
CLK
DIO
U1
1
2
C1
10uF/16V
C2
104
Cadj1
103
ENB
CLK
GND
DIO
CEN
3
4
5
6
7
8
9
10
VDD
CMOD
P00/TK0/PWM0A
P01/TK1/PWM1A
P02/TK2
P03/TK3
P04/TK4
P05/TK5
VSS
P11/RSTN/ENB
P12/RXD /CLK
P13/INT1/TXD
P14/INT2/PWM0 /DIO
P15/INT3/AIN7/CEN
P20/TK8/T0
P21/TK9/T1
P24/TK12/AIN1
P25/TK13/AIN2
P27/TK15/AIN4
P26/TK14/AIN3
20
19
18
17
16
15
14
13
12
11
510R
TK1
510R
TK2
510R
TK3
510R
TK4
510R
TK5
510R
TK6
SC91F8312
LED*4
a
a
a
b
c f
b f
b
g
g
d
e e
c e
c
d
d
f
g
com1
com2
a
f
e
g
d
com3
a
b
f
c
e
g
d
b
c
com4
Page 65 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
20 订购信息
产品编号
SC91F8312M20U
封装
SOP20
Page 66 of 68
深圳市赛元微电子有限公司
包装
管装
V 1.4
http://www.socmcu.com
SC91F8312
SinOne
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
21 封装信息
SOP20L(300mil)外形尺寸 单位:毫米
20
11
e1
HE
E
~
~
L
1
10
Detail F
e1
D
Seating Plane
b
LE
A1
e
S
A
A2
c
D
y
See Detail F
最小
mm(毫米)
正常
最大
A
2.465
2.515
2.565
A1
0.100
0.150
0.200
A2
2.100
2.300
2.500
b
0.356
0.406
0.456
符号
C
0.254(BSC)
D
12.500
12.700
12.900
E
7.400
7.450
7.500
HE
10.206
10.306
10.406
1.27(BSC)
e
L
0.800
0.864
0.900
LE
1.303
1.403
1.503
0
-
10
S
0.660(BSC)
Page 67 of 68
深圳市赛元微电子有限公司
V 1.4
http://www.socmcu.com
SinOne
SC91F8312
高灵敏度电容触控按键 ADC/LCD 8KB Flash MCU
22 规格更改记录
版本
V1.4
V1.3
V1.2
V1.1
V1.0
记录
增加禁止操作 ROM 最高 4byte 的注意事项
修改系统时钟频率为 16M/8M
修正直流电气特性中 IO 口特性的部分电流值
增加中断部分的 X32K 中断发生情况说明
修正 SRAM 部分的描述错误
初版
Page 68 of 68
深圳市赛元微电子有限公司
日期
2017 年 6 月
2017 年 1 月
2016 年 12 月
2016 年 10 月
2016 年 4 月
V 1.4
http://www.socmcu.com