SAMSUNG S3F8275_S3F8278_S3F8274

S3C8275X S3F8275X
S3C8278X S3F8278X
S3C8274X S3F8274X
8-位CMOS单片机
中文用户手册
版本号1.4
SAMSUNG ELECTRONICS MCU
PM:
刘志勇 Steven Liu
YOSUN SHANGHAI CORP.LTD
Tel: 021-58365838 Ext.7835
Fax: 021-58355878
H P: 13818363447
QQ: 52647598
SKYPE: FVSTEVEN
MSN: [email protected]
E-Mail: [email protected]
版本信息
制成者:
产品名称:
文档名称:
三星电子,LSI 开发组, 器兴,韩国
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X 8 位CMOS MCU
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X 用户手册,版本号1.4
文档编号:
起效日期:
2009年12月
DIRECTIONS:
Revision 1.4
SAMSUNG ELECTRONICS MCU
PM:
刘志勇 Steven Liu
YOSUN SHANGHAI CORP.LTD
Tel: 021-58365838 Ext.7835
Fax: 021-58355878
H P: 13818363447
QQ: 52647598
SKYPE: FVSTEVEN
MSN: [email protected]
E-Mail: [email protected]
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
1
产品概述
产品概述
S3C8-系列MCU
三星 S3C8 系列单片机向用户提供了高效快速的CPU,丰富的外设接口,以及各种大小的可编程ROM。其中重要的
CPU特性包括:
— 高效的寄存器结构
— 可选的CPU时钟源
— 可由中断唤醒的 IDLE 和 STOP 低功耗模式
— 内置有看门狗功能的Basic Timer
精心设计的中断结构支持8个中断优先级,每个中断优先级支持一个或多个中断源及中断向量。任意指定的中断优
先级都可以实现快速中断(最少只需4个CPU时钟)。
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X MCU
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X MCU 由先进的 CMOS 工艺制造,并基于三星最新的 CPU
架构。
S3C8275X/C8278X/C8274X 是一款嵌入16/8/4K字节mask ROM的微控制器。
S3F8275X/F8278X/F8274X 是一款嵌入16/8/4K字节可多次编程 Flash ROM的微控制器。
通过成熟的模块化设计方法,和基于强大的SAM8内核,在S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中成功地集成了以下外围模块:

7个可编程I/O口,包括6个8位I/O口,1个4位I/O口,共52个管脚。

8个供外部中断使用的位可编程管脚。

1个可用于振荡稳定和看门狗(系统复位)的8位 basic timer。

2个可选工作模式的8位timer/counter。

可用作实时时钟的Watch timer。
FLASH
S3F8275X/F8278X/F8274X 是S3C8275X/C8278X/C8274X的 FLASH 版本。 S3F8275X/F8278X/F8274X具有片
上 FLASH ROM 而不是 mask ROM, S3F8275X/F8278X/F8274X与S3C8275X/C8278X/C8274X在所有的功能和
管脚分配上都是兼容的,其中 S3F8275X 为 full flash 产品,full flash 产品在程序中可以使用指令对ROM写入数
据。
1-1
产品概述
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
特性
CPU
钟表定时器 (Watch Timer)


SAM88RC CPU 内核
存储器


程序存储器 (ROM)
- 16K8位 程序存贮器(S3C8275X/F8275X)
- 8K8位 程序存贮器(S3C8278X/F8278X)
- 4K8位 程序存贮器(S3C8274X/F8274X)
- 内部flash 存贮器(程序存贮器)
√扇区(Sector): 128 字节
√10 年数据保留
√快速编程:
+ 整片擦除: 50ms
+ 扇区擦除: 10ms
+ 字节编程: 30us
√ 用户通过‘LDC’ 指令编程
√ 寿命: 10,000 次可擦除/编程
√ 扇区(128-字节)擦除
√ 字节编程
√ 支持外部串行编程
TM
√ 可扩展的 OBP (在板编程)扇区
数据存储器 (RAM)
-包括 LCD 显示数据存储器
- 544  8 位数据存储器(S3C8275X/F8275X)
- 288  8 位数据存储器(S3C8278X/F8278X)
- 288  8 位数据存储器(S3C8274X/F8274X)
指令集


78 条指令
用于低功耗模式的Idle 和 Stop指令
52 个 I/O 口


I/O: 16 个
I/O: 36 个 (与LCD 信号复用)
中断


8个中断级,12个中断源
支持快速中断处理
8 位 Basic Timer


看门狗功能
4种可选时钟源
2 个 8 位 Timer/Counters



1-2
可编程定时timer
外部事件计数功能
可设置为一个16 位的 timer/counter

时间间隔: 3.91mS, 0.25S, 0.5S或1S
(32.768 kHz)
0.5/1/2/4 kHz 可选的蜂鸣器输出
LCD 控制/驱动器



32个段,4个公共端
静态,1/2, 1/3, 1/4 和1/8 占空比可选
内置LCD偏置需要的电阻分压电路
8 位串行输入输出接口




8 位 发送/接收模式
8 位仅接收模式
LSB 优先或MSB 优先发送可选
内部或外部时钟源
电池电压检测


3 种可选电压阈值 (2.2V, 2.4V, 2.8V)
根据功耗要求,软件使能或禁止
低电压复位(LVR)


电压阈值: 2.2V
通过smart option (ROM 地址: 3FH) 使能/禁止
2 种低功耗模式


Idle: 仅停止CPU 时钟
Stop: 停止被选中的系统时钟和CPU 时钟
振荡源
• 主时钟可选石英晶振,陶瓷振荡器或者RC
•
主时钟频率:0.4 MHz – 8.0 MHz
•
副时钟选用32.768 kHz 晶体振荡电路
指令执行时间

fx = 8.0 MHz 时,最快500nS
工作电压范围
• 2.0 V – 3.6 V (0.4 – 4.2 MHz)
• 2.5V – 3.6 V (0.4 – 8.0 MHz)
工作温度范围
• –25C – +85C
封装形式

64-QFP-1420F, 64-LQFP-1010
Smart Option
•
低电压复位 (LVR) 的使能/禁止及复位电压可由硬
件选择 (ROM 地址 3FH)
•
ISP 相关设置选择 (ROM 地址 3EH)
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
PRODUCT OVERVIEW
内部模块框图
TAOUT/P0.4
T1CLK/P0.3
TBOUT/P0.5
8-Bit Timer/
Counter A
8-Bit Timer/
Counter B
P0.0/INT0
P0.1/INT1
P0.2/INT2
P0.3/T1CLK
P0.4/TAOUT
P0.5/TBOUT
P0.6/CLKOUT
P0.7/BUZ
16-Bit
Timer/
Counter 1
XIN
nRESET XTIN
XOUT
XTOUT
VREG
Watchdog
Timer
Basic Timer
Low Voltage
Reset
Port I/O and Interrupt Control
I/O Port 0
Clock Out
Block
CLKOUT/P0.6
Battery Level
Detector
VBLDREF/
P2.0/SEG31
Watch Timer
BUZ/P0.7
COM0-COM3/P6.0-P6.3
P1.0/SCK
P1.1/SO
P1.2/SI
P1.3/INT3
P1.4/INT4
P1.5/INT5
P1.6/INT6
P1.7/INT7
SEG8-SEG15/P4.7-P4.0
LCD
Driver
I/O Port 1
SEG16-SEG23/P3.7-P3.0
SEG24-SEG30/P2.7-P2.1
SEG31/P2.0/VBLDREF
544/288 Byte
Register File
P2.0/SEG31/VBLDREF
SEG0-SEG7/P5.7-P5.0
SAM88RC CPU
VLC0-VLC2
16/8/4-Kbyte
ROM
P1.0/SCK
P1.1/SO
P1.2/SI
I/O Port 2
SIO
P3.0-P3.7/SEG23-SEG16
I/O Port 3
I/O Port 6
P6.0-P6.3/
COM0-COM3
I/O Port 5
P4.0-P4.7/SEG15-SEG8
I/O Port 4
P5.0-P5.7/
SEG7-SEG0
P2.1-P2.7/SEG30-SEG24
图 1-1. 内部模块框图
1-3
产品概述
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
64
63
62
61
60
59
58
57
56
55
54
53
52
SEG1/P5.6
SEG2/P5.5
SEG3/P5.4
SEG4/P5.3
SEG5/P5.2
SEG6/P5.1
SEG7/P5.0
SEG8/P4.7
SEG9/P4.6
SEG10/P4.5
SEG11/P4.4
SEG12/P4.3
SEG13/P4.2
管脚分布图
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
S3C8275X/F8275X
S3C8278X/F8278X
S3C8274X/F8274X
(64-QFP-1420F)
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
SEG14/P4.1
SEG15/P4.0
SEG16/P3.7
SEG17/P3.6
SEG18/P3.5
SEG19/P3.4
SEG20/P3.3
SEG21/P3.2
SEG22/P3.1
SEG23/P3.0
SEG24/P2.7
SEG25/P2.6
SEG26/P2.5
SEG27/P2.4
SEG28/P2.3
SEG29/P2.2
SEG30/P2.1
SEG31/P2.0/VBLDREF
P1.7/INT7
P0.2/INT2
P0.3/T1CLK
P0.4/TAOUT
P0.5/TBOUT
P0.6/CLKOUT
P0.7/BUZ
P1.0/SCK
P1.1/SO
P1.2/SI
P1.3/INT3
P1.4/INT4
P1.5/INT5
P1.6/INT6
20
21
22
23
24
25
26
27
28
29
30
31
32
SEG0/P5.7
COM0/P6.0
COM1/P6.1
COM2/P6.2
COM3/P6.3
VLC0
VLC1
VLC2
VDD
VSS
XOUT
XIN
TEST
XTIN
XTOUT
nRESET
VREG
P0.0/INT0
P0.1/INT1
图 1-2. S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X管脚分布图(64-QFP-1420F 封装)
1-4
PRODUCT OVERVIEW
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
SEG1/P5.6
SEG2/P5.5
SEG3/P5.4
SEG4/P5.3
SEG5/P5.2
SEG6/P5.1
SEG7/P5.0
SEG8/P4.7
SEG9/P4.6
SEG10/P4.5
SEG11/P4.4
SEG12/P4.3
SEG13/P4.2
SEG14/P4.1
SEG15/P4.0
SEG16/P3.7
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
S3C8275X/F8275X
S3C8278X/F8278X
S3C8274X/F8274X
(64-LQFP-1010)
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
SEG17/P3.6
SEG18/P3.5
SEG19/P3.4
SEG20/P3.3
SEG21/P3.2
SEG22/P3.1
SEG23/P3.0
SEG24/P2.7
SEG25/P2.6
SEG26/P2.5
SEG27/P2.4
SEG28/P2.3
SEG29/P2.2
SEG30/P2.1
SEG31/P2.0/VBLDREF
P1.7/INT7
VREG
P0.0/INT0
P0.1/INT1
P0.2/INT2
P0.3/T1CLK
P0.4/TAOUT
P0.5/TBOUT
P0.6/CLKOUT
P0.7/BUZ
P1.0/SCK
P1.1/SO
P1.2/SI
P1.3/INT3
P1.4/INT4
P1.5/INT5
P1.6/INT6
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SEG0/P5.7
COM0/P6.0
COM1/P6.1
COM2/P6.2
COM3/P6.3
VLC0
VLC1
VLC2
VDD
VSS
XOUT
XIN
TEST
XTIN
XTOUT
nRESET
图 1-3. S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X管脚分布图(64-LQFP-1010 封装)
1-5
产品概述
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
管脚特性描述
表1-1. S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X 管脚特性
管脚名称
输入/
输出
管脚特性描述
可对该口的每一位进行功能设定,可以设定为
施密特触发器输入、推挽式输出或开漏输出。
通过软件设定上拉电阻。
管脚类
型
管脚号
复用功能
E-4
1820
21
22
23
24
25
INT0INT2
T1CLK
TAOUT
TBOUT
CLKOUT
BUZ
E-4
26
27
28
2933
SCK
SO
SI
INT3INT7
P0.0P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
I/O
P1.0
P1.1
P1.2
P1.3P1.7
I/O
P2.0
P2.1P2.7
I/O
可对该口的每一位进行功能设定,可以设定为
施密特触发器输入、推挽式输出或开漏输出。
通过软件设定上拉电阻。
H-10
H-8
34
3541
SEG31/VBLDREF
SEG30SEG24
P3.0P3.7
I/O
可对该口的每一位进行功能设定,可以设定为
施密特触发器输入、推挽式输出或开漏输出。
通过软件设定上拉电阻。
H-8
4249
SEG23SEG16
P4.0P4.7
P5.0P5.7
P6.0P6.3
I/O
可对该口的每一位进行功能设定,可以设定为
施密特触发器输入、推挽式输出或开漏输出。
通过软件设定上拉电阻。
H-9
5057
5864, 1
25
SEG15SEG8
SEG7SEG0
COM0COM3
1-6
P0.0 - P0.2 也可用作外部中断输入 (噪声滤波器, 中
断使能和标志位控制).
可对该口的每一位进行功能设定,可以设定为
施密特触发器输入、推挽式输出或开漏输出。
通过软件设定上拉电阻。
P1.3 – P1.7 也可用作外部中断输入 (噪声滤波器, 中
断使能和标志位控制).
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
PRODUCT OVERVIEW
表 1-1. S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X 管脚特性 (续)
管脚名称
VLC0VLC2
输入/
输出

管脚特性描述
LCD 电源
管脚类
型
管脚号
复用功能

68

INT0INT2
INT3INT7
I/O
外部中断输入管脚.
E-4
1820
2933
P0.0P0.2
P1.3P1.7
T1CLK
I/O
Timer 1/A 外部时钟输入.
E-4
21
P0.3
TAOUT
I/O
Timer 1/A 时钟输出.
E-4
22
P0.4
TBOUT
I/O
Timer B时钟输出.
E-4
23
P0.5
CLKOUT
I/O
系统时钟输出.
E-4
24
P0.6
BUZ
I/O
蜂鸣器信号输出管脚
E-4
25
P0.7
SCK, SO, SI
I/O
串行时钟,串行数据输出,串行数据输入
E-4
26,27,28
P1.0, P1.1, P1.2
COM0–COM3
I/O
LCD公共端信号输出.
H-9
25
P6.0P6.3
SEG0–SEG15
SEG16–SEG30
SEG31
I/O
LCD 段信号输出.
H-9
H-8
H-10
1,64 50
4935
34
P5.7P4.0
P3.7P2.1
P2.0/VBLDREF
VBLDREF
I/O
电池电压检测参考电压输入管脚
H-10
34
P2.0/SEG31
VREG
O
使用副时钟时,稳压器电压输出(需接0.1F电容)

17

nRESET
I
系统复位管脚
B
16

XTIN, XTOUT

副时钟晶振管脚

14, 15

XIN, XOUT

主振荡器管脚

12, 11

TEST
I
测试输入:必须接到 VSS

13

VDD, VSS

电源输入管脚

9, 10

1-7
产品概述
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
管脚电路
VDD
VDD
Pull-Up
Resistor
P-Channel
In
In
N-Channel
Schmitt Trigger
图 1-5. 管脚电路类型B (nRESET)
图 1-4. 管脚电路类型A
VDD
VDD
Pull-up
Resistor
Resistor
Enable
Open
Drain
P-CH
I/O
Data
N-CH
Output
Disable
Schmitt Trigger
图 1-6. 管脚电路类型 E-4 (P0, P1)
1-8
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
PRODUCT OVERVIEW
VLC0
VLC1
COM/SEG
Out
Output
Disable
VLC2
VSS
图 1-7. 管脚电路类型H-4
VDD
VDD
Pull-Up
Resistor
Resistor
Enable
Open Drain
P-CH
Data
I/O
Output
Disable 1
N-CH
SEG
Output
Disable 2
Circuit
Type H-4
图 1-8. 管脚电路类型(P2.1–P2.7, P3)
1-9
产品概述
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
VDD
VDD
Pull-Up
Resistor
Resistor
Enable
P-CH
Data
I/O
Output
Disable 1
N-CH
COM/SEG
Output
Disable 2
Circuit
Type H-4
图 1-9. 管脚电路类型H-9 (P4, P5, P6)
1-10
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
PRODUCT OVERVIEW
VDD
VDD
Pull-Up
Resistor
Resistor
Enable
Open-Drain
P-CH
Data
I/O
Output
Disable 1
SEG
Alternative
Function
N-CH
Circuit
Type H-4
BLDEN
BLD Select
To BLD
图 1-10. 管脚电路类型H-10 (P2.0)
1-11
产品概述
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
1-12
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
2
地址空间
地址空间
概述
S3C8275X/C8278X/C8274X MCU有两类地址空间:
— 内部 程序存储空间 (ROM)
— 内部寄存器卷
MCU 通过16位的地址总线访问程序存储空间,通过独立的8位地址线和数据线访问内部寄存器卷。
S3C8275X内集成了16K字节的掩模可编程(mask-programmable) 存储器。S3C8278X内集成了8K字节的掩模可编
程(mask-programmable) 存储器。 S3C8274X内集成了4K字节的掩模可编程(mask-programmable) 存储器。
256字节的物理寄存器空间通过不同的寻址方式被扩展成可寻址的320字节的空间。
内建一个16字节的 LCD 显示寄存器卷。
在内部寄存器卷中,共有605个寄存器。其中,528个字节的通用寄存器(包括16个字节的工作寄存器,2个192个字
节的主寄存器区以及两个64个字节的Set区)。 13个字节用于CPU 和系统控制寄存器,48个字节用于外设控制和数
据寄存器,19个字节未使用。
2-1
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
程序存储空间 (ROM)
程序存储空间 (ROM) 保存程序代码或表格数据。S3C8275X有16K字节的内部掩模可编程程序存储空间,
S3C8278X有8K字节的内部掩模可编程程序存储空间,S3C8274X有4K字节的内部掩模可编程程序存储空间。
ROM (0H–0FFH)中初始 256 字节预留作中断入口地址。未使用的地址都可用作普通的程序存储空间。在使用中断
地址区域作为程序代码空间时,注意不可覆盖中断入口地址。
在 ROM 中程序的复位地址是 0100H。
在S3F8275X(Full-Flash 产品)中,ROM复位后开始运行的起始地址可以通过smart option进行修改。详细信息请参
考第16章:嵌入式闪存接口
(Decimal)
(HEX)
3FFFH
16,383
(Decimal)
(HEX)
1FFFH
8,191
16K-bytes
Internal
Program
Memory
Area
(Decimal)
4K-bytes
Internal
Program
Memory
Area
8FFH
255
FFH
255
FFH
Smart Option Area
3CH
3CH
S3C8275X/F8275X
00H
0
S3C8278X/F8278X
图 2-1. 程序存储地址空间
2-2
3FH
Smart Option Area
00H
FFH
Interrupt Vector Area
3FH
3FH
Smart Option Area
0
255
Interrupt Vector Area
Interrupt Vector Area
0FFFH
4,095
8K-bytes
Internal
Program
Memory
Area
Available
ISP Sector Area
(HEX)
3CH
00H
0
S3C8274X/F8274X
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SMART OPTION
ROM Address: 003EH
MSB
.7
.6
.5
.4
.3
.2
.1
ISP reset vector address selection bit:
00 = 200H (ISP area size: 256 byte)
01 = 300H (ISP area size: 512 byte)
10 = 500H (ISP area size: 1024 byte)
11 = 900H (ISP area size: 2048 byte)
LSB
ISP protection size selection: (note)
00 = 256 bytes
01 = 512 bytes
10 = 1024 bytes
11 = 2048 bytes
Not used
ISP reset vector change enable/disable bit:
0 = OBP reset vector address
1 = Normal vector (address 0100H)
.0
ISP protection enable/disable bit:
0 = Enable (not erasable by LDC)
1 = Disable (erasable by LDC)
ROM Address: 003FH
MSB
.7
.6
.5
.4
.3
.2
.1
Not used
.0
LSB
LVR enable/disable bit
(criteria voltage: 2.2V):
0 = Disable LVR
1 = Enable LVR
These bits should be
always logic "110b".
ROM Address: 003CH
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
.1
.0
LSB
Not used
ROM Address: 003DH
MSB
.7
.6
.5
.4
.3
.2
Not used
注释:
1. 在选择ISP保护区间和ISP复位向量地址后,不要选择高于ISP区间的地址。
2. 无论用LDC指令对 Smart Option 区域 (003CH-003FH) 写入任何值,都不能改变 Smart Option 的值,
Smart Option 区域 (003CH-003FH) 的值应该通过 OTP/MTP 工具 (SPW2+ 单芯片烧写器或者GWPRO2 多芯片烧写器) 烧写。
图 2-2. Smart Option
2-3
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Smart Option 是用来初始化芯片的ROM选项,决定了芯片的启动状态。ROM 中用于 Smart Option 的地址范围为
003CH ~ 003FH。
Smart option(003EH)的ISP功能只有在S3F8275X中有效。ROM的003EH地址的默认值为FFH。在使用
S3C8275X/C8278X/F8278X/C8274X/F8274X时, ROM的003EH地址的值应始终保持为FFH。
Smart option(003FH)LVR 的选择功能对所有器件都有效。S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X,
ROM的003FH地址的默认值为FFH。
2-4
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
寄存器结构
在 S3C8275X/C8278X/C8274X 中,寄存器卷的高 64 字节被扩展为两个 64 字节区域,叫做 set 1 和 set 2。
Set 1 的高 32 字节区域又进一步扩展为两个 32 字节寄存器块(bank 0 和 bank 1),低 32 字节是独立的公共存
储区域。
S3C8275X可寻址的8位寄存器个数为605。其中包含,13字节的CPU和系统控制寄存器,16字节的 LCD 数据寄存
器,48字节的外设控制和数据寄存器,16字节的共享工作寄存器以及page 0-page 1中的512个通用寄存器 (在
S3C8278X/C8274X中只有page 0)。
不管当前选的是哪个寄存器页,都可以对 set 1 的寄存器进行寻址。但只能通过寄存器寻址模式进行。
通过不同寻址模式的限制,bank 选择指令(SB0,SB1),以及寄存器页面指针(PP),得以将寄存器空间扩展为各个独
立的可寻址区域(set, bank 和 page)。
表 2-1中总结了内部寄存器卷中特殊功能寄存器类型和所占字节数。
表 2-1. S3C8275X寄存器类型总结
寄存器类型
所占字节数
通用寄存器 (包括 16字节的通用工作寄存器卷,2个192字
节的主寄存器卷 (包括外设控制寄存器), 以及2个64字节的
set 2 卷)
LCD 数据寄存器
CPU 和系统控制寄存器
时钟、外设、I/O 控制和数据映射寄存器
528
所有可寻址的字节数
605
16
13
48
表 2-2. S3C8278X/C8274X寄存器类型总结
寄存器类型
所占字节数
通用寄存器 (包括 16字节的通用工作寄存器卷,1个192字
节的主寄存器卷 (包括外设控制寄存器), 以及1个64字节的
set 2 卷)
LCD 数据寄存器
CPU 和系统控制寄存器
时钟、外设、I/O 控制和数据映射寄存器
272
所有可寻址的字节数
349
16
13
48
2-5
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Set1
FFH
Bank 1
FFH
64
Bytes
FFH
Bank
0 and
System
Peripheral Control
System
and
Registers
Peripheral Control
Registers
(Register Addressing Mode)
32
Bytes
E0H
DFH
Page 0
Set 2
General-Purpose
Data Registers
E0H
(Indirect Register, Indexed
Mode, and Stack
Operations)
System Registers
(Register Addressing Mode)
D0H
CFH
Page 1
256
Bytes
C0H
BFH
General Purpose Register
(Register Addressing Mode)
Page 0
C0H
Page 2
~
0FH
192
Bytes
Prime
Data Registers
16
Bytes
~
~
Prime
Data Registers
(All Addressing Modes)
~
(All addressing modes)
LCD Display Reigster
00H
00H
图 2-3. 内部寄存器卷的地址空间(S3C8275X)
2-6
~
~
~
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Set1
Bank 1
FFH
E0H
64
Bytes
FFH
Bank
0 and
System
Peripheral Control
System
and
Registers
Peripheral Control
Registers
(Register Addressing Mode)
32
Bytes
DFH
Page 0
Set 2
General-Purpose
Data Registers
E0H
(Indirect Register, Indexed
Mode, and Stack
Operations)
System Registers
(Register Addressing Mode)
D0H
CFH
C0H
BFH
General Purpose Register
(Register Addressing Mode)
C0
H
256
Bytes
Page 0
Page 2
~
0FH
192
Bytes
Prime
Data Registers
16
Bytes
~
~
Prime
Data Registers
~
(All Addressing Modes)
~
(All addressing modes)
LCD Display Reigster
00H
00H
注释: 在 S3C8278X/C8274X中 , 只有第 0页 和 第 2 页.
第 2 页是16个字节的 LCD显示寄存器卷 .
图 2-4. 内部寄存器卷的地址空间(S3C8278X/C8274X)
2-7
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
寄存器页面指针(PP)
S3C8- 系列 MCU 支持对物理上 256 字节的内部寄存器页(page)进行逻辑扩展(通过 8 位数据总线),最多可实
现16个可独立寻址的寄存器页。页面寻址由寄存器页面指针(PP, 地址:DFH)来控制。
S3C8275X/C8278X/C8274X中将LCD数据寄存器扩展成页文件,所以访问其他页面时要改变寄存器页面指针。
复位之后,页面指针的源页(低四位)和目标页(高四位)数值缺省为“0000B”, 自动选择页面 0 作为源和目标
页来进行寄存器寻址。
Register Page Pointer (PP)
DFH, Set 1, R/W
MS
B
.7
.6
.5
.4
.3
.2
.1
.0
LSB
Source register page selection bits:
0000
0001
0010
others
Source: Page 0
Source: Page 1 (Not used for the S3C8278X/C8274X)
Source: Page 2
Not used for the S3C8275X/C8278X/C8274X
Destination register page selection bits:
0000
0001
0010
others
Destination: Page 0
Destination: Page 1 (Not used for the S3C8278X/C8274X)
Destination: Page 2
Not used for the S3C8275X/C8278X/C8274X
注释 :
1. 在S3C8275X 中,内部寄存器卷有三个页 (Pages 0-2).
第 0-1 页用于通用寄存器卷 , 第 2 页 为 LCD显示寄存器 或通用寄存器
2.
在 S3C8278X/C8274X 中, 内部寄存器卷有两个 Page (Pages 0, 2).
第0 页 用于通用寄存器卷 , 第 2 页为 LCD显示寄存器 或通用寄存器
3.
复位后,4位源地址和 4 位目的地址被初始化为0,当访问其它页时,需要修改此寄存器的值
图 2-5. 寄存器页面指针(PP)

2-8
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
 编程实例 — 在清RAM时使用页面指针 (Page 0, Page 1)

RAMCL0
RAMCL1
; 目标  0, 源  0
LD
PP,#00H
SRP
#0C0H
LD
CLR
DJNZ
CLR
R0,#0FFH
@R0
R0,RAMCL0
@R0
; 开始对页 0 进行 RAM 清零
LD
PP,#10H
; 目标  1, 源  0
LD
CLR
DJNZ
CLR
R0,#0FFH
@R0
R0,RAMCL1
@R0
; 开始对页 1 进行 RAM 清零
; R0 = 00H
; R0 = 00H
注释: DJNZ 指令的用法详见第6-39页。
2-9
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
寄存器SET 1
Set 1 指的是寄存器卷中的高 64 字节,地址为 C0H–FFH。
这 64 字节空间(E0H-FFH)的高 32 字节又被扩展为两个 32 字节的寄存器块,bank 0 和 bank 1。通过指令 SB0 或
SB1 来访问 bank 0 或 bank 1。硬件复位后默认选择 bank 0进行寻址。
Set 1(E0H-FFH)的两个高 32 字节区域(bank0 和 bank1)包含48个系统和外设控制寄存器,低 32 字节区域包含
16 个系统寄存器(D0H-DFH)和 16 字节的通用工作寄存器(C0H-CFH)。在其它寄存器空间执行的数据操作,
也可以通过工作寄存器。
Set 1 中的寄存器可以随时通过寄存器寻址模式进行访问。16 字节的工作寄存器区域,则只能使用工作寄存器寻址
模式(更多关于工作寄存器寻址的信息,请查阅第 3 章,―寻址方式‖)。
寄存器SET 2
对 set 1 的 64 字节地址空间(C0H-FFH)进行逻辑复制,以增加额外的 64 字节寄存器空间。这个扩展的空间被称
为 set 2。在 S3C8275X中, page 0 -1可对 set 2 的地址空间 (C0H-FFH) 进行寻址。
在 S3C8278X/C8274X中, page 0可对 set 2 的地址空间 (C0H-FFH) 进行寻址。
通过寻址模式的限制,得以实现 set 1 和 set 2 的逻辑分割。Set 1 只支持寄存器寻址模式,而对 set 2 的寻址只能
采用寄存器间接寻址模式或偏址寻址模式。
Set 2 寄存器区常用作堆栈操作。
2-10
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
主寄存器区
S3C8275X/C8278X/C8274X 有1或2个寄存器页,每页有256个字节,其中低192字节 (00H–BFH) 称为主寄存器
区。主寄存器区可通过七种寻址模式中的任何一种进行访问(详见第 3 章,―寻址方式‖)。
第0页的主寄存器区在复位之后就可寻址。为访问第0,1 或 2页的主寄存器区,必须对寄存器页面指针(PP)的源
和目标进行正确设置。
FFH
Set 1
Bank 0
Bank 1
FFH
FFH
Page 1
Page 0
Set 2
Set 2
FCH
E0H
D0H
C0H
BFH
C0H
Page 0
Prime
Space
CPU and system control
Page 2
0FH
General-purpose
LCD Data
Register Area
Peripheral and I/O
LCD data register
注释 :
00H
00H
在 S3C8278X/C8274X 中, 只有 第 0 页和 第 2 页. 第 2 页 的16个字节为 LCD 显示RAM
图 2-6. Set 1, Set 2, 主寄存器区和 LCD 数据寄存器
2-11
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
工作寄存器
指令可通过 4 位或 8 位地址来访问指定的 8 位寄存器或者 16 位寄存器对。当使用 4 位工作寄存器寻址模式时,
256 字节的寄存器卷可以被看成是由 32 个 8 字节寄存器组或―片 (slice) ‖组成的。每个片包含 8 个 8 位寄存器。
通过两个 8 位寄存器指针 RP1 和 RP0,可以随时选择两个工作寄存器片组成一个 16 字节的工作寄存器块。使用这
两个指针,可以将 16 字节的寄存器块移动到除 set 2 以外的任何可寻址空间。
在本手册中,术语―片(slice)‖和―块(block)‖用来帮助理解工作寄存器空间的大小和相对位置:
— 一个工作寄存器―片‖是 8 个字节(8 个 8 位寄存器,R0-R7 或 R8-R15)
— 一个工作寄存器―块‖是 16 个字节(16 个 8 位寄存器,R0-R15)
所有 8 字节的工作寄存器―片‖中,寄存器地址的高 5 位数值完全相同。这使得各个寄存器指针都可以指向寄存器卷
中除 set 2 以外的 32 个寄存器―片‖中任何一个。寄存器指针 RP0 和 RP1 中存放的是选定的两个 8 位寄存器―片‖的
起始地址。
系统复位后,RP0 和 RP1 总是指向 Set 1 中的 16 字节公共空间(C0H-CFH)。
FFH
F8H
F7H
F0H
Slice 32
Slice 31
1 1 1 1 1 X X X
Set 1
Only
RP1 (Registers R8-R15)
Each register pointer points to
one 8-byte slice of the register
space, selecting a total 16-byte
working register block.
CFH
C0H
~
~
0 0 0 0 0 X X X
RP0 (Registers R0-R7)
Slice 2
Slice 1
图 2-7. 8字节工作寄存器区 (Slices)
2-12
10H
FH
8H
7H
0H
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
使用寄存器指针
寄存器指针 RP0 和 RP1 (地址:D6H 和 D7H,Set 1),用于选择寄存器卷中两个可移动的 8 字节工作寄存器片。
复位后,RP# 指向工作寄存器的公共空间:RP0 指向地址 C0H-C7H,RP1指向 C8H-CFH。
通过 SRP 或 LD 指令可以改变寄存器指针 RP0/ RP1 的值 (如图2-8 和 图2-9).。
用工作寄存器寻址方式,只能访问当前 RP0 和 RP1 指定的两个 8 字节的工作寄存器片。但不能用寄存器指针来选
择 set 2 (C0-FFH) 中的工作寄存器,因为这些地址空间只支持间接寄存器寻址模式和偏址寻址模式。
16 字节的工作寄存器块通常由两个相邻的 8 字节工作寄存器片组成。编程时,一般建议将 RP0 指向―低‖地址的
片,而 RP1 指向―高‖地址的片(如图 2-8)。某些情况下,可能需要将工作寄存器定义在不同的(不相邻的)寄存
器空间中(如图 2-9),RP0 指向―高‖地址的片,而 RP1 指向―低‖地址的片 。
由于寄存器指针可以指向两个工作寄存器片中的任意一个,用户可根据程序需求灵活定义工作寄存器空间。
编程实例 — 设置寄存器指针
SRP
SRP1
SRP0
CLR
LD
#70H
#48H
#0A0H
RP0
RP1,#0F8H
;
;
;
;
;
RP0
RP0
RP0
RP0
RP0





70H, RP1  78H
no change, RP1  48H,
A0H, RP1  no change
00H, RP1  no change
no change, RP1  0F8H
Register File
Contains 32
8-Byte Slices
0 0 0 0 1 X X X
RP1
0 0 0 0 0 X X X
FH (R15)
8-Byte Slice
8H
7H
8-Byte Slice
0H (R0)
16-Byte
Contiguous
Working
Register block
RP0
图 2-8. 相邻的 16 字节工作寄存器块
2-13
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
F7H (R7)
8-Byte Slice
F0H (R0)
1 1 1 1 0
X X X
Register File
Contains 32
8-Byte Slices
X X X
8-Byte Slice
16-Byte
Contiguous
working
Register block
RP0
7H (R15)
0 0 0 0 0
0H (R0)
RP1
图 2-9. 非相邻的 16 字节工作寄存器块
编程实例 — 使用 RP 对寄存器 80H-85H 的内容求和
用寄存器指针来对寄存器 80H–85H 中的内容求和。寄存器 80H-85H 中的存放数据分别为 10H,11H,12H,
13H,14H和15H:
SRP0
#80H
; RP0  80H
ADD
R0,R1
; R0  R0 + R1
ADC
R0,R2
; R0  R0 + R2 + C
ADC
R0,R3
; R0  R0 + R3 + C
ADC
R0,R4
; R0  R0 + R4 + C
ADC
R0,R5
; R0  R0 + R5 + C
6 个寄存器的和 (6FH) 存放在 R0(80H)中。例子中的指令共占用 12 字节的代码长度,执行时间为 36 个时钟周
期。如果不用寄存器指针,那就得按照下面的指令顺序来做:
ADD
80H,81H
; 80H  (80H) + (81H)
ADC
80H,82H
; 80H  (80H) + (82H) + C
ADC
80H,83H
; 80H  (80H) + (83H) + C
ADC
80H,84H
; 80H  (80H) + (84H) + C
ADC
80H,85H
; 80H  (80H) + (85H) + C
现在,6 个寄存器的和依然放在 80H 当中,但是所有指令总共占用了 15 字节的代码长度而非 12 字节,且执行时间
为 50 个时钟周期而非 36 个。
2-14
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
寄存器寻址
S3C8- 系列单片机的寄存器结构提供了一种效率高的工作寄存器寻址方式,该方式充分利用了短指令格式以缩短程
序执行时间。
在寄存器寻址模式中,操作数存放在某个特定的寄存器或寄存器对中。用寄存器寻址模式可以访问寄存器空间中除
set 2 以外的任何地址。使用工作寄存器寻址时,通过寄存器指针指定一个 8 字节的工作寄存器空间和该空间内的一
个 8 位寄存器。
寄存器寻址时,既可以视其为单独的 8 位寄存器,也可以视为成对的 16 位寄存器空间。在 16 位寄存器对中,第一
个8位寄存器的地址总是偶数,而另一个寄存器地址则是奇数。16 位数据的高位字节存放在偶地址寄存器中,低位
字节存放在邻近的 (+1) 奇地址寄存器中。
工作寄存器寻址模式与寄存器寻址模式的不同之处在于,它通过寄存器指针来指定一个 8 字节工作寄存器空间,以
及其中的某个 8 位工作寄存器。
MSB
LSB
Rn
Rn+1
n = Even address
图 2-10. 16位工作寄存器结构
2-15
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Special-Purpose Registers
Bank 1
General-Purpose Register
Bank 0
FFH
FFH
Control
Registers
E0H
Set 2
Syste
m
Registers
D0H
CFH
C0
H
C0H
BFH
RP1
Register
Pointers
RP0
Each register pointer (RP) can independently point
to one of the 24 8-byte "slices" of the register file
(other than set 2). After a reset, RP0 points to
locations C0H-C7H and RP1 to locations C8H-CFH
(that is, to the common working register area).
Prime
Registers
LCD Data
Registers
注释: 对于 S3C8275X/C8278X/C8274X ,可操作页 0-2;页 0-2 包含
内部寄存器卷里所有可寻址的寄存器。
00H
Page 0
Register Addressing Only
Can be Pointed by Register Pointer
图 2-11. 寄存器卷寻址模式
2-16
All
Addressing
Modes
Page 0
Indirect Register,
All
Indexed
Addressing
Addressing
Modes
Modes
Can be Pointed to
By register Pointer
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
通用工作寄存器区 (C0H–CFH)
系统复位后,寄存器指针 RP0 和 RP1 自动指向 set 1中两个 8 字节的寄存器片(C0H-CFH),组成 16 字节的寄存器
块:
RP0  C0H–C7H
RP1  C8H–CFH
这 16 字节的地址空间称为通用工作寄存器区。就是说无论当前操作所要访问的是哪个页面,都可以把该空间的寄
存器作为工作寄存器使用。典型地,在不同页面间进行数据交换操作时,可使用工作寄存器作为临时存储。
FFH
Set 1
FFH
FFH
Page 0
Set 2
FCH
Set 2
E0
H
D0
H
C0
H
C0
BF
H
H
Following a hardware reset, register
pointers RP0 and RP1 point to the
common working register area,
locations C0H-CFH.
RP0 =
1100
0000
RP1 =
1100
1000
注释 :
Page 1
Page 0
~
Prime
Space
~
~
Page 2
0FH
LCD Data
Registers
00H
00H
在 S3C8278X/C8274X 中, 只有 第 0 页 和 第 2 页. 第 2 页的16个字节为 LCD 显示RAM
图 2-12. 通用工作寄存器区
2-17
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
编程实例 — 访问通用工作寄存器区
如下例所示,要访问通用工作寄存器(C0H-CFH),只能采用工作寄存器寻址模式:
例1:
LD
0C2H,40H
; 非法寻址模式!
改为工作寄存器寻址模式:
SRP
#0C0H
LD
R2, 40H
; R2 (C2H)  地址 40H 中存放的值
ADD
0C3H, #45H
; 非法寻址模式!
例2:
改为工作寄存器寻址模式:
SRP
#0C0H
ADD
R3, #45H
; R3 (C3H)  R3 + 45H
4 位工作寄存器寻址方式
每个寄存器指针定义了一个可移动的 8 字节寄存器片,其中的地址信息作为一扇寻址的―窗‖,使得指令只须 4 位地
址就可以实现对工作寄存器的有效访问。在工作寄存器寻址时,8 位地址是采用下述方法构成的:
— 4 位地址的最高位选择一个寄存器指针(―0‖ 选择 RP0, ―1‖ 选择 RP1)
— 寄存器指针的高 5 位选择寄存器卷中的某个 8 字节寄存器片
— 指令中 4 位地址的低 3 位选定 8 字节寄存器片中的一个
如图 2-13,操作的结果是,寄存器指针的高 5 位和指令地址的低 3 位一起组成完整的 8 位寄存器地址。只要寄存器
指针中保存的地址不变,指令中 4 位地址的低 3 位总是指向同一个 8 字节寄存器片。
图 2-14 给出了一个典型的 4 位工作寄存器寻址实例。指令―INC R6‖的最高位是―0‖,这将选择 RP0。RP0 的高 5 位
(01110B)与指令中 4 位地址的低 3 位(110B)一起组成了寄存器地址 76H(01110110B)。
2-18
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RP0
RP1
Selects
RP0 or RP1
Address
OPCODE
4-bit address
provides three
low-order bits
Register pointer
provides five
high-order bits
Together they create an
8-bit register address
图 2-13. 4位工作寄存器寻址方式
RP0
0 1 1 1 0
RP1
0 0 0
0 1 1 1 1
0 0 0
Selects RP0
0 1 1 1 0
1 1 0
Register
address
(76H)
R6
OPCODE
0 1 1 0
1 1 1 0
Instruction
'INC R6'
图 2-14. 4位工作寄存器寻址实例
2-19
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
8 位工作寄存器寻址方式
还可以通过 8 位工作寄存器寻址方式来访问工作寄存器区。首先,指令地址的高 4 位必须是―1100B‖,这 4 位数据
(1100B) 表示余下的 4 位与 4 位工作寄存器寻址方式相同。
如图 2-15,8 位地址的低阶位形成机制与4位工作寄存器寻址时类似:第 3 位选择 RP0 或 RP1,用来产生最终地址
的高 5 位;而最终地址的低 3 位则由原始指令提供。
图 2-16 给出了一个典型的 8 位工作寄存器寻址实例。指令地址的高 4 位 (1100B) 表明寻址方式为 8 位寄存器寻
址。第 3 位(―1‖)选择 RP1,所以 RP1中的高 5 位(10101B)成为寄存器地址的高 5 位,寄存器地址的低 3 位
(011B)则由 8 位指令地址的低 3 位提供。RP1 中的 5 个地址位和指令中的 3 个地址位组合,形成了完整的寄存
器地址,0ABH(10101011B)。
RP0
RP1
Selects
RP0 or RP1
Address
These address
bits indicate 8-bit
working register
addressing
1
1
0
8-bit logical
address
0
Register pointer
provides five
high-order bits
Three low-order bits
8-bit physical address
图 2-15. 8位工作寄存器寻址方式
2-20
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RP0
0 1 1 0 0
RP1
0 0 0
1 0 1 0 1
0 0 0
1 0 1 0 1
0 1 1
Selects RP1
R11
1 1 0 0
1
0 1 1
8-bit address
form instruction
'LD R11, R2'
Register
address
(0ABH)
Specifies working
register addressing
图 2-16. 8位工作寄存器寻址实例
2-21
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
系统和用户栈
S3C8- 系列单片机通过栈来处理数据存储,子程序调用和返回。PUSH 和 POP 指令用于控制栈操作。
S3C8275X/C8278X/C8274X 支持在内部寄存器卷中进行栈操作。
栈操作
栈用来储存程序调用以及中断的返回地址,也用来储存数据。CALL 指令将 PC 的值压入栈,而 RET 指令将其从栈
中弹出。当中断发生时,PC 和 FLAGS 寄存器的值被压入栈,指令 IRET 则将这些值弹出到它们原来的地址。栈指
针总是在 PUSH 操作之前先减―1‖,在 POP 操作之后加―1‖。栈指针(SP)总是指向栈的顶端,如图 2-17 所示。
High Address
PCL
PCL
Top of
stack
PCH
PCH
Top of
stack
Stack contents
after a call
instruction
Flags
Stack contents
after an
interrupt
Low Address
图 2-17. 栈操作
用户自定义栈
可以在内部寄存器卷中堆栈自由定义栈数据储存区域。指令 PUSHUI,PUSHUD,POPUI,POPUD 支持用户自定
义栈操作。
栈指针 (SPL, SPH)
寄存器地址 D8H 和 D9H 存放用于栈操作的 16 位栈指针(SP)。SP 的高字节地址,SP15–SP8,存放在 SPH 寄存
器(D8H)中;低字节地址,SP7–SP0,存放在 SPL 寄存器(D9H)中。系统复位后,SP 的值不确定。
由于 S3C8275X/C8278X/C8274X只有内部存储空间,SPL 必须被初始化成介于 00H-FFH 之间的 8 位数值,而
SPH 则用不到,需要时可以把它作为通用寄存器使用。
当 SPH 寄存器用作通用数据寄存器时,如果因为 SPL 寄存器中正常的栈操作,如栈地址增加或减少而导致溢出发
生,将会影响到 SPH 寄存器,并覆盖当前存储的数据。为了避免 SPH 寄存器被覆盖的情况发生,最好把 SPL的初
始值设为―FFH‖而非―00H‖。S
2-22
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
编程实例 — 用 PUSH 和 POP 实现标准栈操作
下面的例子演示了在内部寄存器卷中如何通过 PUSH 和 POP 指令进行栈操作:
SPL,#0FFH
; SPL  FFH
; (通常 SPL 被初始化为 0FFH )
PUSH
PP
; 栈地址 0FEH  PP
PUSH
RP0
; 栈地址 0FDH  RP0
PUSH
RP1
; 栈地址 0FCH  RP1
PUSH
R3
; 栈地址 0FBH  R3
POP
R3
; R3  栈地址 0FBH
POP
RP1
; RP1  栈地址 0FCH
POP
RP0
; RP0  栈地址 0FDH
POP
PP
; PP  栈地址 0FEH
LD
•
•
•
•
•
•
2-23
地址空间
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
2-24
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
3
寻址模式
寻址模式
概述
通过程序指针(PC)读取程序存储空间的指令然后执行。指令隐含着要进行的操作和操作数。寻址模式是用于确定操
作数地址的一种方法。SAM88RC 指令中的操作数可以是条件代码、立即数,或者寄存器卷、程序存储区、数据存
储区的地址。
S3C8- 系列的指令集支持 7 种寻址模式,但这些寻址模式并非适用于所有指令。7 种寻址模式和它们的符号表示:
— 寄存器寻址模式(R)
— 间接寄存器寻址模式(IR)
— 偏址寻址模式(X)
— 直接寻址模式(DA)
— 间接寻址模式(IA)
— 相对地址寻址模式(RA)
— 立即数寻址模式(IM)
3-1
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
寄存器寻址模式(R)
寄存器寻址模式(R)中,操作数是具体寄存器或寄存器对中的内容,如图 3-1。
工作寄存器寻址模式与寄存器寻址模式不同。因为工作寄存器是通过一个 16 位的寄存器指针,来指定 8 字节的工
作寄存器空间,和空间内的某个 8 位寄存器,如图 3-2。
Program Memory
8-bit Register
File Address
dst
OPCODE
One-Operand
Instruction
(Example)
Register File
Point to One
Register in Register
File
OPERAND
Value used in
Instruction Execution
Sample Instruction:
DEC
CNTR
;
Where CNTR is the label of an 8-bit register address
图 3-1. 寄存器寻址模式
Register File
MSB Point to
RP0 ot RP1
RP0 or RP1
Selected
RP points
to start
of working
register
block
Program Memory
4-bit
Working Register
dst
3 LSBs
src
Point to the
Working Register
(1 of 8)
OPCODE
Two-Operand
Instruction
(Example)
OPERAND
Sample Instruction:
ADD
R1, R2
;
Where R1 and R2 are registers in the currently
selected working register area.
图 3-2. 工作寄存器寻址模式
3-2
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
间接寄存器寻址模式(IR)
在间接寄存器寻址模式中,指定寄存器或寄存器对中存放的是操作数的地址。根据所用的指令,物理地址可能是寄
存器卷中的寄存器、程序存储器(ROM),或者外部数据存储器(如图 3-3 至 3-6)。
可以用任意的 8 位寄存器来访问其它的寄存器,也可以用任意的 16 位寄存器组来访问其它的存储空间。但要注
意,不能通过间接寄存器寻址模式对 Set 1 中地址段 C0H-FFH 进行访问。
Program Memory
8-bit Register
File Address
dst
OPCODE
One-Operand
Instruction
(Example)
Register File
Point to One
Register in Register
File
ADDRESS
Address of Operand
used by Instruction
Value used in
Instruction Execution
OPERAND
Sample Instruction:
RL
@SHIFT
;
Where SHIFT is the label of an 8-bit register address
图 3-3. 寄存器卷中的间接寄存器寻址模式
3-3
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
间接寄存器寻址模式(续)
Register File
Program Memory
Example
Instruction
References
Program
Memory
dst
OPCODE
Register
Pair
Points to
Register Pair
Program Memory
Sample Instructions:
CALL
JP
@RR2
@RR2
Value used in
instruction
OPERAND
图 3-4. 程序存储空间的间接寄存器寻址
3-4
16-Bit
Address
Points to
Program
Memory
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
间接寄存器寻址模式(续)
Register File
MSB Points to
RP0 or RP1
RP0 or RP1
Program Memory
4-bit
Working
Register
Address
dst
src
OPCODE
~
~
3 LSBs
Point to the
Working Register
(1 of 8)
ADDRESS
~
Sample Instruction:
OR
R3, @R6
Value used in
Instruction
Selected
RP points
to start fo
working register
block
~
OPERAND
图 3-5. 寄存器卷中的间接寄存器寻址
3-5
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
间接寄存器寻址模式(续)
Register File
MSB Points to
RP0 or RP1
RP0 or RP1
Selected
RP points
to start of
working
register
block
Program Memory
4-bit Working
Register Address
Example Instruction
References either
Program Memory or
Data Memory
dst
src
OPCODE
Next 2-bit Point
to Working
Register Pair
(1 of 4)
LSB Selects
Value used in
Instruction
Register
Pair
Program Memory
or
Data Memory
OPERAND
Sample Instructions:
LCD
LDE
LDE
R5,@RR6
R3,@RR14
@RR4, R8
; Program memory access
; External data memory access
; External data memory access
图 3-6. 工作寄存器间接访问程序存储器或数据存储器
3-6
16-Bit
address
points to
program
memory
or data
memory
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
偏址寻址模式(X)
在指令执行时,偏址寻址模式(X)是在基地址的基础上加上一个偏移地址量,计算出有效的操作数地址(如图 37)。偏址寻址可以用来访问内部寄存器卷或外部数据存储器空间。但要注意,不能通过它对 Set 1 中地址段 C0HFFH 进行寻址。
在短指令寻址模式下,8 位的偏移量被认为是介于 -128 到 +127 之间的一个有符号整数,这只用于外部存储器访问
(如图 3-8)。
对寄存器卷寻址时,指令提供的 8 位基地址与工作寄存器中的 8 位偏移地址相加得到操作数地址。对外部存储器访
问时,基地址存放在指令指示的 16 位工作寄存器中,指令中给出的 8 位或 16 位偏移地址加到基地址上,得到操作
数地址(如图 3-9)。
支持对寄存器卷进行偏址寻址的指令只有 Load(LD)。LDC 和 LDE 支持内部程序存储器和外部数据存储器(如果
存在)的偏址寻址模式。
Register File
RP0 or RP1
~
Value used in
Instruction
+
Program Memory
Two-Operand
Instruction
Example
Base Address
dst/src
x
3 LSBs
Point to One of the
Woking Register
(1 of 8)
OPCODE
~
Selected RP
points to
start of
working
register
block
OPERAND
~
~
INDEX
Sample Instruction:
LD
R0, #BASE[R1]
;
Where BASE is an 8-bit immediate value
图 3-7. 寄存器空间的偏址寻址模式
3-7
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
偏址寻址模式(续)
Register File
MSB Points to
RP0 or RP1
RP0 or RP1
~
~
Program Memory
4-bit Working
Register Address
OFFSET
dst/src
x
OPCODE
Selected
RP points
to start of
working
register
block
NEXT 2 Bits
Point to Working
Register Pair
(1 of 4)
LSB Selects
+
8-Bits
Register
Pair
Program Memory
or
Data Memory
16-Bit
address
added to
offset
16-Bits
16-Bits
OPERAND
Value used in
Instruction
Sample Instructions:
LDC
R4, #04H[RR2]
LDE
R4,#04H[RR2]
; The values in the program address (RR2 + 04H)
are loaded into register R4.
; Identical operation to LDC example, except that
external program memory is accessed.
图 3-8. 偏址寻址模式中短格式访问程序或数据存储空间
3-8
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
偏址寻址模式(续)
Register File
MSB Points to
RP0 or RP1
RP0 or RP1
Program Memory
~
~
OFFSET
4-bit Working
Register Address
OFFSET
dst/src
src
OPCODE
Selected
RP points
to start of
working
register
block
NEXT 2 Bits
Point to Working
Register Pair
LSB Selects
+
16-Bits
Register
Pair
Program Memory
or
Data Memory
16-Bit
address
added to
offset
16-Bits
16-Bits
OPERAND
Value used in
Instruction
Sample Instructions:
LDC
R4, #1000H[RR2]
LDE
R4,#1000H[RR2]
; The values in the program address (RR2 + 1000H)
are loaded into register R4.
; Identical operation to LDC example, except that
external program memory is accessed.
图 3-9. 偏址寻址模式中长格式访问程序或数据存储空间
3-9
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
直接寻址模式(DA)
在直接寻址模式中,指令提供操作数的 16 位存储器地址。执行 Jump(JP) 和 Call(CALL) 指令时,就是采用这种寻
址模式指定 16 位目标地址并将其装入PC。
LDC 和 LDE 指令即运用直接寻址模式为数据传送操作提供源地址或目标地址,LDC 访问程序存储空间,LDE 访问
外部数据存储空间。
Program or
Data Memory
Program Memory
Memory
Address
Used
Upper Address Byte
Lower Address Byte
dst/src
"0" or "1"
OPCODE
LSB Selects Program
Memory or Data Memory:
"0" = Program Memory
"1" = Data Memory
Sample Instructions:
LDC
R5,1234H
;
LDE
R5,1234H
;
The values in the program address (1234H)
are loaded into register R5.
Identical operation to LDC example, except that
external program memory is accessed.
图 3-10. Load 指令的直接寻址
3-10
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
直接寻址模式(续)
Program Memory
Next OPCODE
Memory
Address
Used
Upper Address Byte
Lower Address Byte
OPCODE
Sample Instructions:
JP
CALL
C,JOB1
DISPLAY
;
;
Where JOB1 is a 16-bit immediate address
Where DISPLAY is a 16-bit immediate address
图 3-11. Call, Jump 的直接寻址
3-11
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
间接寻址模式(IA)
在间接寻址模式中,须指定程序存储空间中低 256 字节中的某个地址,其中放有要执行的下一条指令地址。只有
CALL 指令支持间接寻址模式。
由于间接寻址模式规定操作数只能存放在程序存储空间的低 256 字节中,所以指令中只有一个 8 位地址;目标地址
的高 8 位全部为 0。
Program Memory
Next Instruction
LSB Must be Zero
Current
Instruction
dst
OPCODE
Lower Address Byte
Upper Address Byte
Program Memory
Locations 0-255
Sample Instruction:
CALL
#40H
; The 16-bit value in program memory addresses 40H
and 41H is the subroutine start address.
图 3-12. 间接寻址模式
3-12
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
相对地址寻址模式(RA)
在相对寻址模式中,指令的调转范围只能在有符号数 -128 到 +127 之间。偏移量加上当前 PC 值,即为下一条要执
行指令的地址。在加偏移量之前,PC 中的内容是紧跟着当前指令的后一条指令地址。
程序控制指令用相对寻址模式来实现条件跳转。支持相对寻址模式的指令有: BTJRF, BTJRT, DJNZ, CPIJE,
CPIJNE 和 JR 。
Program Memory
Next OPCODE
Program Memory
Address Used
Current Instruction
Displacement
OPCODE
Current
PC Value
+
Signed
Displacement Value
Sample Instructions:
JR
ULT,$+OFFSET
;
Where OFFSET is a value in the range +127 to -128
图 3-13. 相对寻址
3-13
寻址模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
立即数寻址模式(IM)
立即数寻址模式中,操作数本身就包含在指令当中。根据指令的不同,操作数的长度可以是一个字节或一个字。立
即数寻址模式常用来将常量赋值给寄存器。
Program Memory
OPERAND
OPCODE
(The Operand value is in the instruction)
Sample Instruction:
LD
R0,#0AAH
图 3-14. 立即数寻址模式
3-14
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
4
控制寄存器
概述
本章中,S3C8275X/C8278X/C8274X控制寄存器的详细描述以易读方式排列。可以将本章视为编程时的快速参考
资源。表4-1 列出了标准寄存器描述的重要参数。
控制寄存器描述按照寄存器代表符号的字母顺序排列。更多有关控制寄存器的信息在本手册第二部分硬件资源描述
中。
数据和计数寄存器没有在本章中详细列出。关于外设寄存器的更多内容详见本手册第二部分的相关外设章节。
表 4-1 列举了S3C8275X/C8278X/C8274X所有映射寄存器的位置和读/写特性。每个映射寄存器的硬件复位值在第
八章“复位和省电模式”中描述。
表 4-1. Set 1 寄存器
寄存器名
助记标号
地址
十进制
R/W
十六进制
地址空间 D0H – D2H 未映射
Basic Timer 控制寄存器
BTCON
211
D3H
R/W
CLKCON
212
D4H
R/W
FLAGS
213
D5H
R/W
寄存器指针 0
RP0
214
D6H
R/W
寄存器指针 1
RP1
215
D7H
R/W
堆栈指针(高字节)
SPH
216
D8H
R/W
堆栈指针(低字节)
SPL
217
D9H
R/W
指令指针(高字节)
IPH
218
DAH
R/W
指令指针(低字节)
IPL
219
DBH
R/W
中断请求寄存器
IRQ
220
DCH
R
中断屏蔽寄存器
IMR
221
DDH
R/W
系统模式寄存器
SYM
222
DEH
R/W
PP
223
DFH
R/W
系统时钟控制寄存器
系统标志寄存器
寄存器页指针
4-1
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 4-2. Set 1, Bank 0 寄存器
寄存器名
助记标号
地址
R/W
十进制
十六进制
时钟 控制寄存器
OSCCON
224
E0H
R/W
SIO 控制寄存器
SIOCON
225
E1H
R/W
SIO 数据寄存器
SIODATA
226
E2H
R/W
SIOPS
227
E3H
R/W
P0 口控制寄存器(高字节)
P0CONH
228
E4H
R/W
P0 口控制寄存器(低字节)
P0CONL
229
E5H
R/W
P0PUR
230
E6H
R/W
P1 口控制寄存器(高字节)
P1CONH
231
E7H
R/W
P1 口控制寄存器(低字节)
P1CONL
232
E8H
R/W
P1PUR
233
E9H
R/W
P2 口控制寄存器(高字节)
P2CONH
234
EAH
R/W
P2 口控制寄存器(低字节)
P2CONL
235
EBH
R/W
P2PUR
236
ECH
R/W
P3 口控制寄存器(高字节)
P3CONH
237
EDH
R/W
P3 口控制寄存器(低字节)
P3CONL
238
EEH
R/W
P3PUR
239
EFH
R/W
P0 口数据寄存器
P0
240
F0H
R/W
P1 口数据寄存器
P1
241
F1H
R/W
P2 口数据寄存器
P2
242
F2H
R/W
P3 口数据寄存器
P3
243
F3H
R/W
P4 口数据寄存器
P4
244
F4H
R/W
P5 口数据寄存器
P5
245
F5H
R/W
P6 口数据寄存器
P6
246
F6H
R/W
EXTIPND
247
F7H
R/W
外部中断控制寄存器(高字节)
EXTICONH
248
F8H
R/W
外部中断控制寄存器(低字节)
EXTICONL
249
F9H
R/W
251
FBH
R/W
253
FDH
R
255
FFH
R/W
SIO 预处理寄存器
P0 口上拉电阻使能控制寄存器
P1 口上拉电阻使能控制寄存器
P2 口上拉电阻使能控制寄存器
P3 口上拉电阻使能控制寄存器
外部中断标志寄存器
FAH 地址空间未映射
STOP 控制寄存器
STPCON
FCH 地址空间未映射
Basic timer 计数器
BTCNT
FEH 地址空间未映射
中断优先级寄存器
4-2
IPR
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 4-3. Set 1, Bank 1 寄存器
寄存器名
助记标号
地址
R/W
十进制
十六进制
LCON
224
E0H
R/W
钟表定时器 控制寄存器
WTCON
225
E1H
R/W
Timer A 计数器
TACNT
226
E2H
R
Timer B 计数器
TBCNT
227
E3H
R
Timer A 数据寄存器
TADATA
228
E4H
R/W
Timer B 数据寄存器
TBDATA
229
E5H
R/W
Timer 1/A 控制寄存器
TACON
230
E6H
R/W
Timer B 控制寄存器
TBCON
231
E7H
R/W
时钟输出控制寄存器
CLOCON
232
E8H
R/W
P4 口控制寄存器(高字节)
P4CONH
233
E9H
R/W
P4 口控制寄存器(低字节)
P4CONL
234
EAH
R/W
P5 口控制寄存器(高字节)
P5CONH
235
EBH
R/W
P5 口控制寄存器(低字节)
P5CONL
236
ECH
R/W
P6 口控制寄存器
P6CON
237
EDH
R/W
LCD 控制寄存器
EEH – EFH 地址空间未映射
闪存控制寄存器
FMCON
240
F0H
R/W
闪存用户可编程使能寄存器
FMUSR
241
F1H
R/W
闪存扇区地址寄存器(高字节)
FMSECH
242
F2H
R/W
闪存扇区地址寄存器(低字节)
FMSECL
243
F3H
R/W
电池电压检测控制寄存器
BLDCON
244
F4H
R/W
E5H – FFH 地址空间未映射
注释:
1. “x” 表示该位的值复位后不确定
2. “–“表示该位不使用或未映射,但读取该位时,读到的值为 “0”.
4-3
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Bit number(s) that is/are appended to
the register name for bit addressing
Register ID
Name of individual
bit or related bits
Register location
in the internal
register file
Register address
(hexadecimal)
Full Register name
FLAGS - System Flags Register
D5H
Set 1
Bit Identifier
.7
.6
.5
.4
.3
.2
.1
.0
Reset Value
x
x
x
x
x
x
x
0
Read/Write
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit Addressing
Register addressing mode only
Mode
.7
Carry Flag (C)
.6
0
Operation does not generate a carry or borrow condition
1
Operation generates carry-out or borrow into high-order bit 7
Zero Flag (Z)
0
Operation result is a non-zero value
1
Operation result is zero
.5
Sign Flag (S)
0
Operation generates positive number (MSB = "0")
1
Operation generates negative number (MSB = "1")
R = Read-only
W = Write-only
R/W = Read/write
'-' = Not used
Description of the
effect of specific
bit settings
Type of addressing
that must be used to
address the bit
(1-bit, 4-bit, or 8-bit)
nRESET value notation:
'-' = Not used
'x' = Undetermined value
'0' = Logic zero
'1' = Logic one
图 4-1. 寄存器描述格式
4-4
Bit number:
MSB = Bit 7
LSB = Bit 0
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BLDCON —电池电压检测控制寄存器
F4H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
–
–
0
0
0
0
0
0
读/写
–
–
R/W
R
R/W
R/W
R/W
R/W
寻址模式
仅寄存器寻址模式
.7–.6
S3C8275X/C8278X/C8274X 不使用
.5
VIN源选择位
.4
.3
.2–.0
0
内部源
1
外部源
电池电压检测结果输出位 (只读)
0
VIN > VREF (使能BLD时)
1
VIN < VREF (使能BLD时)
BLD使能/禁止位
0
禁止 BLD
1
使能 BLD
检测电压阀值选择
0
0
0
VBLD = 2.2V
1
0
1
VBLD = 2.4V
0
1
1
VBLD = 2.8V
其它
不可用
4-5
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BTCON — Basic Timer 控制寄存器
D3H
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
读/写
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
寻址模式
仅寄存器寻址模式
.7–.4
看门狗时钟功能使能位 (系统复位)
1
0
1
0
其它
.3–.2
.1
.0
禁止看门狗时钟功能
使能看门狗时钟功能
Basic Timer 输入时钟选择位(3)
0
0
fxx/4096
0
1
fxx/1024
1
0
fxx/128
1
1
fxx/16
Basic Timer计数器清 0 控制位(1)
0
没有作用
1
清除 Basic Timer 计数器值
Basic Timer 和 Timer/Counters 分频器清 0(2)
0
没有作用
1
2者的分频器清 0
注释:
1. 当写”1”到 BTCON.1 时,Basic Timer 计数器被清0,之后该位也自动清0。
2. 当写”1”到 BTCON.0 时,相应的分频器被清0,之后该位也自动清0。
3. fxx 为选定的系统时钟(主时钟或副时钟)。
4-6
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CLKCON — 系统时钟控制寄存器
D4H
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
–
–
0
0
–
–
–
R/W
–
–
R/W
R/W
–
–
–
读/写
寻址模式
仅寄存器寻址模式
.7
振荡器 IRQ 唤醒功能位
0
使能省电模式下的 IRQ 唤醒主时钟
1
禁止省电模式下的 IRQ 唤醒主时钟
.6–.5
S3C8275X/C8278X/C8274X 不使用
.4–.3
CPU 时钟 (系统时钟) 选择位 (注)
.2–.0
0
0
fxx/16
0
1
fxx/8
1
0
fxx/2
1
1
fxx/1
S3C8275X/C8278X/C8274X 不使用
注释: 复位后,选择最慢时钟(16分频)作为系统时钟。可通过向 CLKCON.3 和 CLKCON.4 位写合适的值选择更快的时钟
速率。
4-7
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CLOCON — 时钟输出控制寄存器
E8H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
–
–
–
–
–
–
0
0
读/写
–
–
–
–
–
–
R/W
R/W
寻址模式
仅寄存器寻址模式
.7–.2
S3C8275X/C8278X/C8274X 不使用
.1–.0
输出频率选择位
4-8
0
0
选择 fxx/64
0
1
选择fxx/16
1
0
选择fxx/8
1
1
选择fxx/4
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
EXTICONH — 外部中断控制寄存器(高字节)
F8H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P1.7 外部中断(INT7) 设置位
.5–.4
.3–.2
.1–.0
0
0
禁止中断
0
1
使能下降沿中断
1
0
使能上升沿中断
1
1
使能上升沿和下降沿中断
P1.6外部中断(INT6) 设置位
0
0
禁止中断
0
1
使能下降沿中断
1
0
使能上升沿中断
1
1
使能上升沿和下降沿中断
P1.5外部中断(INT5) 设置位
0
0
禁止中断
0
1
使能下降沿中断
1
0
使能上升沿中断
1
1
使能上升沿和下降沿中断
P1.4外部中断(INT4) 设置位
0
0
禁止中断
0
1
使能下降沿中断
1
0
使能上升沿中断
1
1
使能上升沿和下降沿中断
4-9
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
EXTICONL — 外部中断控制寄存器 (低字节)
F9H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P1.3 外部中断(INT3) 设置位
.5–.4
.3–.2
.1–.0
4-10
0
0
禁止中断
0
1
使能下降沿中断
1
0
使能上升沿中断
1
1
使能上升沿和下降沿中断
P0.2 外部中断(INT2) 设置位
0
0
禁止中断
0
1
使能下降沿中断
1
0
使能上升沿中断
1
1
使能上升沿和下降沿中断
P0.1外部中断(INT1) 设置位
0
0
禁止中断
0
1
使能下降沿中断
1
0
使能上升沿中断
1
1
使能上升沿和下降沿中断
P0.0外部中断(INT0) 设置位
0
0
禁止中断
0
1
使能下降沿中断
1
0
使能上升沿中断
1
1
使能上升沿和下降沿中断
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
EXTIPND — 外部中断标志寄存器
F7H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
P1.7/INT7 中断标志位
.6
.5
.4
.3
.2
.1
.0
0
无中断请求,写入0清除中断标志
1
中断请求置起(读此位时)
P1.6/INT6 中断标志位
0
无中断请求,写入0清除中断标志
1
中断请求置起(读此位时)
P1.5/INT5中断标志位
0
无中断请求,写入0清除中断标志
1
中断请求置起(读此位时)
P1.4/INT4中断标志位
0
无中断请求,写入0清除中断标志
1
中断请求置起(读此位时)
P1.3/INT3中断标志位
0
无中断请求,写入0清除中断标志
1
中断请求置起(读此位时)
P0.2/INT2中断标志位
0
无中断请求,写入0清除中断标志
1
中断请求置起(读此位时)
P0.1/INT1中断标志位
0
无中断请求,写入0清除中断标志
1
中断请求置起(读此位时)
P0.0/INT0中断标志位
0
无中断请求,写入0清除中断标志
1
中断请求置起(读此位时)
4-11
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
FLAGS — 系统标志寄存器
D5H
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
x
x
x
x
x
x
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
Carry Flag (C)
.6
.5
.4
.3
.2
.1
.0
4-12
0
操作没有产生进位或借位
1
操作产生进位或者借位
Zero Flag (Z)
0
操作结果不是“0”
1
操作结果是“0”
Sign Flag (S)
0
操作产生正数(MSB = “0”)
1
操作产生负数(MSB = “1”)
Overflow Flag (V)
0
操作结果在 -128 ~ + 127 之间
1
操作结果不在 -128 ~ + 127 之间,即溢出
Decimal Adjust Flag (D)
0
加操作完成
1
减操作完成
Half-Carry Flag (H)
0
加法操作时第 3 位未产生进位或减法操作时第 3 位未产生借位
1
加法操作时第 3 未产生进位或减法操作时第 3 位未产生借位
Fast Interrupt Status Flag (FIS)
0
中断返回(IRET)正在进行(读此位时)
1
快速中断服务程序正在进行(读此位时)
Bank Address Selection Flag (BA)
0
选择 Bank 0
1
选择 Bank 1
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
FMCON — 闪存控制寄存器
F0H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
–
–
0
R/W
R/W
R/W
R/W
R
–
–
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.4
闪存模式选择位
0
1
0
1
(字节) 编程模式
1
0
1
0
扇区擦除模式
0
1
1
0
Hard Lock 模式
其它
.3
不可用
扇区擦除状态位 (只读)
0
扇区擦除成功
1
扇区擦除失败
.2–.1
S3C8275X/C8278X/C8274X 不使用
.0
闪存操作启动位
0
操作停止
1
操作开始
4-13
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
FMSECH — 闪存扇区地址寄存器 (高字节)
F2H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.0
闪存扇区地址位(高字节)
Flash ROM 扇区选择高8位(第15 ~ 8位)。
注释: 高字节 flash 扇区地址指针指向16位指针地址的高8位。
FMSECL — 闪存扇区地址寄存器 (低字节)
F3H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
闪存扇区地址位(低字节)
Flash ROM 扇区选择第 7 位。
.6–.0
S3C8275X/C8278X/C8274X 不使用
注释: 低字节 flash 扇区地址指针指向16位指针地址的低8位。
4-14
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
FMUSR — 闪存用户可编程使能寄存器
F1H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.0
闪存用户可编程使能位
1
0
1
0
0
其它
1
0
1
使能用户编程模式
禁止用户编程模式
4-15
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
IMR — 中断屏蔽寄存器
DDH
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
x
x
x
x
x
x
x
x
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
中断优先级7 (IRQ7) 使能位;外部中断 P1.4–1.7
.6
.5
.4
.3
.2
.1
.0
0
禁止(屏蔽)
1
使能(未屏蔽)
中断优先级6 (IRQ6) 使能位;外部中断 P1.3
0
禁止(屏蔽)
1
使能(未屏蔽)
中断优先级5 (IRQ5) 使能位;外部中断 P0.2
0
禁止(屏蔽)
1
使能(未屏蔽)
中断优先级4 (IRQ4) 使能位;外部中断 P0.1
0
禁止(屏蔽)
1
使能(未屏蔽)
中断优先级3 (IRQ3) 使能位;外部中断 P0.0
0
禁止(屏蔽)
1
使能(未屏蔽)
中断优先级2 (IRQ2) 使能位;钟表定时器 溢出
0
禁止(屏蔽)
1
使能(未屏蔽)
中断优先级1 (IRQ1) 使能位;SIO 中断
0
禁止(屏蔽)
1
使能(未屏蔽)
中断优先级0 (IRQ0) 使能位; Timer 1/A 匹配, Timer B 匹配
0
禁止(屏蔽)
1
使能(未屏蔽)
注释: 当某个中断级被屏蔽,任何发起的中断请求都不能被 CPU 识别。
4-16
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
IPH — 指令指针 (高字节)
DAH
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
x
x
x
x
x
x
x
x
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.0
指令指针地址(高字节)
高字节指令指针指向 16 位指令指针地址的高 8 位(IP15-IP8)。IP 地址的低字节在
IPL 寄存器(地址:DBH)中。
IPL —指令指针(低字节)
DBH
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
x
x
x
x
x
x
x
x
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.0
指令指针地址(低字节)
低字节指令指针指向 16 位指令指针地址的低 8 位(IP7-IP0)。IP 地址的高字节在
IPH 寄存器(地址:DAH)中。
4-17
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
IPR — 中断优先级寄存器
FFH
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
x
x
x
x
x
x
x
x
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7, .4, and .1
中断 A、B 和 C 组优先级控制位
.6
.5
.3
.2
.0
0
0
0
组优先级未定义
0
0
1
B > C > A
0
1
0
A > B > C
0
1
1
B > A > C
1
0
0
C > A > B
1
0
1
C > B > A
1
1
0
A > C > B
1
1
1
组优先级未定义
中断 C 子分组优先级控制位
0
IRQ6 > IRQ7
1
IRQ7 > IRQ6
中断 C 组优先级控制位
0
IRQ5 > (IRQ6, IRQ7)
1
(IRQ6, IRQ7) > IRQ5
中断 B 子分组优先级控制位
0
IRQ3 > IRQ4
1
IRQ4 > IRQ3
中断 B 组优先级控制位
0
IRQ2 > (IRQ3, IRQ4)
1
(IRQ3, IRQ4) > IRQ2
中断 A 组优先级控制位
0
IRQ0 > IRQ1
1
IRQ1 > IRQ0
注释: 中断 A 组 - IRQ0, IRQ1
中断 B 组 - IRQ2, IRQ3, IRQ4
中断 C 组 - IRQ5, IRQ6, IRQ7
4-18
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
IRQ — 中断请求寄存器
DCH
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
读/写
R
R
R
R
R
R
R
R
寻址模式
仅寄存器寻址模式
.7
中断级 7 (IRQ7)请求标志位;外部中断 P1.4–1.7
.6
.5
.4
.3
.2
.1
.0
0
没有中断
1
标志位置位
中断级 6 (IRQ6)请求标志位;外部中断 P1.3
0
没有中断
1
标志位置位
中断级 5 (IRQ5)请求标志位;外部中断 P0.2
0
没有中断
1
标志位置位
中断级 4 (IRQ4)请求标志位;外部中断 P0.1
0
没有中断
1
标志位置位
中断级 3 (IRQ3)请求标志位;外部中断 P0.0
0
没有中断
1
标志位置位
中断级 2 (IRQ2)请求标志位;钟表定时器 溢出
0
没有中断
1
标志位置位
中断级 1 (IRQ1)请求标志位;SIO 中断
0
没有中断
1
标志位置位
中断级 0 (IRQ0)请求标志位;Timer 1/A 匹配, Timer B 匹配
0
没有中断
1
标志位置位
4-19
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LCON — LCD 控制寄存器
E0H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
–
0
R/W
R/W
R/W
R/W
R/W
R/W
–
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
内部 LCD 分压电阻使能位
.6–.5
.4–.2
0
使能LCD内部分压电阻
1
禁止LCD内部分压电阻
LCD 时钟源选择位
0
0
fw/29 (64 Hz)
0
1
fw/28 (128 Hz)
1
0
fw/27 (256 Hz)
1
1
fw/26 (512 Hz)
LCD 占空比和偏置选择位
0
0
0
1/4 占空比, 1/3 偏置
0
0
1
1/3 占空比, 1/3 偏置
0
1
0
1/3 占空比, 1/2 偏置
0
1
1
1/2 占空比, 1/2 偏置
1
x
x
静态
注释:
1. "x" 表示值可以为任意值.
2. 当选择 1/2 偏置时,偏置电压可设为 VLC0, VLC1 (VLC2), 和 VSS.
.1
S3C8275X/C8278X/C8274X 不使用
.0
LCD 显示控制位
4-20
0
关闭显示(关闭 P-Tr)
1
打开显示 (打开 P-Tr)
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
OSCCON — 时钟控制寄存器
E0H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
–
–
–
0
0
–
0
R/W
–
–
–
R/W
R/W
–
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
副时钟电路选择位
0
初始状态
1
副振荡器省电模式选择
(当副振荡器停止时自动清 "0")
注释:
1. 副振荡器工作时 OSCCON.7 必须保持 “1” 。
2. 在VREG 和 GND 之间需要加一个电容 (0.1uF)。
.6–.4
不使用,必须保持 „0‟
.3
主振荡器控制位
.2
0
主振荡器工作
1
主振荡器停止
副振荡器控制位
0
副振荡器工作
1
副振荡器停止
.1
S3C8275X/C8278X/C8274X 不使用
.0
系统时钟选择位
0
使用主振荡器作系统时钟
1
使用副振荡器作系统时钟
4-21
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P0CONH — P0 口控制寄存器 (高字节)
E4H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P0.7/BUZ 设置位
.5–.4
.3–.2
.1–.0
4-22
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能 (BUZ)
P0.6/CLKOUT设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(CLKOUT)
P0.5/TBOUT设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(TBOUT)
P0.4/TAOUT设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(TAOUT)
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P0CONL — P0 口控制寄存器 (低字节)
E5H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P0.3/T1CLK 设置位
.5–.4
.3–.2
.1–.0
0
0
施密特输入模式(T1CLK)
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
P0.2/INT2 设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
P0.1/INT1 设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
P0.0/INT0 设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
4-23
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P0PUR — P0 口上拉电阻使能控制寄存器
E6H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
P0.7 上拉电阻使能控制位
.6
.5
.4
.3
.2
.1
.0
注释:
4-24
0
禁止上拉电阻
1
使能上拉电阻
P0.6上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P0.5上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P0.4上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P0.3上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P0.2上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P0.1上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P0.0上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
当相应的口设为推挽输出或复用功能时,其上拉电阻自动禁止。
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P1CONH — P1 口控制寄存器 (高字节)
E7H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P1.7/INT7 设置位
.5–.4
.3–.2
.1–.0
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
P1.6/INT6设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
P1.5/INT5设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
P1.4/INT4设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
4-25
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P1CONL — P1 口控制寄存器(低字节)
E8H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P1.3/INT3设置位
.5–.4
.3–.2
.1–.0
4-26
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
P1.2/SI设置位
0
0
施密特输入模式 (SI)
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
S3C8275X/C8278X/C8274X 不使用
P1.1/SO设置位
0
0
施密特输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SO)
P1.0/SCK 设置位
0
0
施密特输入模式 (SCK)
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SCK)
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P1PUR — P1 口上拉电阻使能控制寄存器
F9H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
P1.7上拉电阻使能控制位
.6
.5
.4
.3
.2
.1
.0
0
禁止上拉电阻
1
使能上拉电阻
P1.6上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P1.5上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P1.4上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P1.3上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P1.2上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P1.1上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P1.0上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
注释: 当相应的口设为推挽输出或复用功能时,其上拉电阻自动禁止。
4-27
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P2CONH — P2 口控制寄存器 (高字节)
EAH
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P2.7/SEG24 设置位
.5-.4
.3–.2
.1–.0
4-28
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG24)
P2.6/SEG25设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG25)
P2.5/SEG26设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG26)
P2.4/SEG27设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG27)
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P2CONL — P2 口控制寄存器 (低字节)
EBH
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P2.3/SEG28设置位
.5–.4
.3–.2
.1–.0
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG28)
P2.2/SEG29设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG29)
P2.1/SEG30设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG30)
P2.0/SEG31/VBLDREF设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG31 或 VBLDREF)
4-29
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P2PUR — P2 口上拉电阻使能控制寄存器
ECH
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
P2.7上拉电阻使能控制位
.6
.5
.4
.3
.2
.1
.0
0
禁止上拉电阻
1
使能上拉电阻
P2.6上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P2.5上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P2.4上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P2.3上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P2.2上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P2.1上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P2.0上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
注释: 当相应的口设为推挽输出或复用功能时,其上拉电阻自动禁止。
4-30
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P3CONH — P3 口控制寄存器
(高字节)
EDH
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P3.7/SEG16 设置位
.5–.4
.3–.2
.1–.0
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG16)
P3.6/SEG17设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG17)
P3.5/SEG18设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG18)
P3.4/SEG19设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG19)
4-31
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P3CONL — P3 口控制寄存器 (低字节)
EEH
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P3.3/SEG20设置位
.5–.4
.3–.2
.1–.0
4-32
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG20)
P3.2/SEG21设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG21)
P3.1/SEG22设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG22)
P3.0/SEG23设置位
0
0
输入模式
0
1
N 沟道开漏输出
1
0
推挽输出模式
1
1
复用功能(SEG23)
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P3PUR — P3 口上拉电阻使能控制寄存器
EFH
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
P3.7上拉电阻使能控制位
.6
.5
.4
.3
.2
.1
.0
0
禁止上拉电阻
1
使能上拉电阻
P3.6上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P3.5上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P3.4上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P3.3上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P3.2上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P3.1上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
P3.0上拉电阻使能控制位
0
禁止上拉电阻
1
使能上拉电阻
注释: 当相应的口设为推挽输出或复用功能时,其上拉电阻自动禁止。
4-33
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P4CONH — P4 口控制寄存器 (高字节)
E9H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P4.7/SEG8 设置位
.5–.4
.3–.2
.1–.0
4-34
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG8)
P4.6/SEG9设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG9)
P4.5/SEG10设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG10)
P4.4/SEG11设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG11)
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P4CONL — P4 口控制寄存器 (低字节)
EAH
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P4.3/SEG12设置位
.5–.4
.3–.2
.1–.0
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG12)
P4.2/SEG13设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG13)
P4.1/SEG14设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG14)
P4.0/SEG15设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG15)
4-35
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P5CONH — P5 控制寄存器(高字节)
EBH
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P5.7/SEG0设置位
.5–.4
.3–.2
.1–.0
4-36
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG0)
P5.6/SEG1设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG1)
P5.5/SEG2设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG2)
P5.4/SEG3设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG3)
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P5CONL — P5 控制寄存器 (低字节)
ECH
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P5.3/SEG4设置位
.5–.4
.3–.2
.1–.0
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG4)
P5.2/SEG5设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG5)
P5.1/SEG6设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG6)
P5.0/SEG7设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(SEG7)
4-37
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P6CON — P6 口控制寄存器
EDH
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.6
P6.3/COM3设置位
.5–.4
.3–.2
.1–.0
4-38
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(COM3)
P6.2/COM2设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(COM2)
P6.1/COM1设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(COM1)
P6.0/COM0设置位
0
0
输入模式
0
1
输入上拉模式
1
0
推挽输出模式
1
1
复用功能(COM0)
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
PP — 寄存器页指针
DFH
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.4
目的寄存器页选择位
0
0
0
0
目的寄存器: 第 0 页
0
0
0
1
目的寄存器: 第 1 页(S3C8278X/C8274X 不使用)
0
0
1
0
目的寄存器: 第 2 页
其它
.3– .0
S3C8275X/C8278X/C8274X 不使用
源寄存器页选择位
0
0
0
0
源寄存器:第 0 页
0
0
0
1
源寄存器:第 1 页(S3C8278X/C8274X 不使用)
0
0
1
0
源寄存器:第 2 页
其它
S3C8275X/C8278X/C8274X 不使用
注释:
1. S3C8275X内部寄存器卷分为3页 (页0-2).
页 0-1 作为通用寄存器卷使用, 页 2 作为 LCD 数据寄存器和通用寄存器使用
2. S3C8278X/C8274X内部寄存器卷分为2页 (页0,2).
页 0 作为通用寄存器卷使用, 页 2 作为 LCD 数据寄存器和通用寄存器使用
4-39
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RP0 — 寄存器指针 0
D6H
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
1
1
0
0
0
–
–
–
R/W
R/W
R/W
R/W
R/W
–
–
–
读/写
寻址模式
仅寄存器寻址模式
.7–.3
寄存器指针 0 地址值
寄存器指针 0 可以单独指向寄存器卷中的某个 256 字节工作寄存器区域。通过使用寄
存器指针 RP0 和 RP1 同时选择 2 个 8 字节寄存器组作为有效的工作寄存器空间。复
位后,RP0 指向寄存器 Set 1 的 C0H 地址,选择从C0H 到 C7H 的 8 位工作寄存器。
.2–.0
RP1 — 寄存器指针
S3C8275X/C8278X/C8274X 不使用
1
D7H
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
1
1
0
0
1
–
–
–
R/W
R/W
R/W
R/W
R/W
–
–
–
读/写
寻址模式
仅寄存器寻址模式
.7– .3
寄存器指针 1 地址值
寄存器指针 1 可以单独指向寄存器卷中的某个 256 字节工作寄存器区域。通过使用寄
存器指针 RP0 和 RP1 同时选择 2 个 8 字节寄存器组作为有效的工作寄存器空间。复
位后,RP1 指向寄存器 Set 1 的 C8H 地址,选择从C8H 到 CFH 的 8 位工作寄存器。
.2– .0
4-40
S3C8275X/C8278X/C8274X 不使用
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SIOCON — SIO 控制寄存器
E1H
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
SIO 移位时钟选择位
.6
.5
.4
.3
.2
.1
.0
0
内部时钟 (P.S 时钟)
1
外部时钟 (SCK)
数据方向控制为
0
MSB优先模式
1
LSB优先模式
SIO 模式选择位
0
只接收模式
1
发送/接收模式
移位时钟边沿选择位
0
下降沿 Tx,上升沿 Rx
1
上升沿 Tx,下降沿 Rx
SIO 计数器清 0 和移位启动位
0
没有作用
1
3位计数器清0,并启动移位
SIO 移位操作时能位
0
禁止移位和时钟计数
1
使能移位和时钟计数
SIO 中断使能位
0
禁止 SIO 中断
1
使能 SIO 中断
SIO 中断标志位
0
无中断标志 (读此位时), 清除中断标志 (写此位时)
0
中断标志位置位 (读此位时)
4-41
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SPH — 堆栈指针 (高字节)
D8H
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
x
x
x
x
x
x
x
x
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.0
堆栈指针地址 (高字节)
高字节堆栈指针的值是 16 位堆栈指针地址(SP15–SP8)的高 8 位。低字节堆栈指针
的值位于寄存器 SPL(D9H)中。复位后,堆栈指针(SP)的值不确定。
SPL — 堆栈指针 (低字节)
D9H
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
x
x
x
x
x
x
x
x
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.0
堆栈指针地址(低字节)
低字节堆栈指针的值是 16 位堆栈指针地址(SP7–SP0)的低 8 位。高字节堆栈指针
的值位于寄存器 SPH(D8H)中。复位后,堆栈指针(SP)的值不确定。
4-42
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
STPCON — Stop 控制寄存器
FBH
Set 1, Bank 0
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7–.0
STOP 控制位
10100101
使能 使用 stop 指令
其它值
禁止 使用 stop 指令
注释: 在执行 STOP 指令前,需要将 STPCON 寄存器设置为“10100101B”,否则,STOP 指令不会被执行,同时系统会复位
4-43
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SYM — 系统模式寄存器
DEH
Set 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
–
–
x
x
x
0
0
R/W
–
–
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
始终保持逻辑 "0"
.6–.5
S3C8275X/C8278X/C8274X 不使用
.4–.2
快速中断优先级选择位 (1)
.1
.0
0
0
0
IRQ0
0
0
1
IRQ1
0
1
0
IRQ2
0
1
1
IRQ3
1
0
0
IRQ4
1
0
1
IRQ5
1
1
0
IRQ6
1
1
1
IRQ7
快速中断使能位 (2)
0
禁止快速中断
1
使能快速中断
全局中断使能位 (3)
0
禁止所有中断
1
使能所有中断
注释:
1. 一次只能选择一个中断优先级作为快速中断。
2. 将 SYM.1 设为“1”使能 SYM.2-SYM.4 选择的快速中断。
3. 复位后,必须通过执行 EI 指令使能全局中断(而不是往 SYM.0 写“1”)。
4-44
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
TACON — Timer 1/A 控制寄存器
E6H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
Timer 1 运行模式选择位
.6–.4
.3
.2
.1
.0
0
两个8 位 timer 模式 (timer A/B)
1
一个16位 timer 模式 (timer 1)
Timer 1/A 时钟选择位
0
0
0
fxx/512
0
0
1
fxx/256
0
1
0
fxx/64
0
1
1
fxx/8
1
0
0
fxx (系统时钟)
1
0
1
fxt (副时钟)
1
1
0
T1CLK (外部时钟)
1
1
1
不可用
Timer 1/A 计数器清0位
0
没有作用
1
清除 timer 1/A 的计数器 (当写此位时,计数器清为"0"后该位自动清"0")
Timer 1/A 计数器运行使能位
0
停止计数器计数
1
使能计数器计数
Timer 1/A 中断使能位
0
禁止中断
1
使能中断
Timer 1/A 中断标志位Interrupt Pending Bit
0
无中断标志 (读此位时), 清除中断标志 (写此位时)
1
中断标志位置位 (读此位时)
4-45
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
TBCON — Timer B 控制寄存器
E7H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
–
0
0
0
0
0
0
0
读/写
–
R/W
R/W
R/W
R/W
R/W
R/W
R/W
寻址模式
仅寄存器寻址模式
.7
S3C8275X/C8278X/C8274X 不使用
.6–.4
Timer B 始终选择位
0
0
0
fxx/512
0
0
1
fxx/256
0
1
0
fxx/64
0
1
1
fxx/8
1
0
0
fxt (副时钟)
其它
.3
.2
.1
.0
4-46
不可用
Timer B 计数器清0位
0
没有作用
1
清除 timer B 的计数器 (当写此位时,计数器清为"0"后该位自动清为 "0")
Timer B 计数器运行使能位
0
停止计数器计数
1
使能计数器计数
Timer B 中断使能位
0
禁止中断
1
使能中断
Timer B 中断标志位
0
无中断标志 (读此位时), 清除中断标志 (写此位时)
1
中断标志位置位 (读此位时)
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
WTCON — 钟表定时器 控制寄存器
E1H
Set 1, Bank 1
位
.7
.6
.5
.4
.3
.2
.1
.0
复位值
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
读/写
寻址模式
仅寄存器寻址模式
.7
钟表定时器时钟选择位
.6
.5–.4
.3–.2
.1
.0
0
主时钟27 分频(fx/128)
1
副时钟 (fxt)
钟表定时器 中断使能位
0
禁止钟表定时器 中断
1
使能 钟表定时器 中断
蜂鸣器信号选择位
0
0
0.5 kHz
0
1
1 kHz
1
0
2 kHz
1
1
4 kHz
钟表定时器 速度选择位
0
0
钟表定时器中断时间: 1s
0
1
钟表定时器中断时间: 0.5s
1
0
钟表定时器中断时间:0.25s
1
1
钟表定时器中断时间:0.91ms
钟表定时器 使能位
0
禁止钟表定时器; 分频电路清0
1
使能钟表定时器
钟表定时器 中断标志位
0
无中断标志 (读此位时), 清除中断标志 (写此位时)
1
中断标志位置位 (读此位时)
注释: 假设 钟表定时器 的时钟频率 (fw) 为 32.768 kHz.
4-47
控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
4-48
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
5
中断结构
中断结构
概述
S3C8- 系列的中断结构由三个基本部分组成:中断级,中断向量和中断源。SAM8RC CPU 最多可以识别 8 个中
断级和 128 个中断向量。当多个中断向量同属于一个中断级时,这几个向量的优先级由硬件决定。从芯片设计的
角度来看,单个或多个中断源可以共用同一个中断向量地址。
中断级 (Levels)
中断级是优先级分配和识别的主要单元。所有的外设和 I/O 模块都可以发出中断请求。换句话说,外设和 I/O 模
块的操作都是中断驱动的(interrupt-driven)。一共有 8 个可能的中断级:IRQ0–IRQ7,也被称为优先级 0 ~ 优
先级 7。每个中断级直接与中断请求号 (IRQn) 关联。每款芯片的中断级数量不同。S3C8275X/C8278X/C8274X
的中断结构中就有 8 个中断级。
中断级序号 0~7 仅仅是一个标号,并不直接表示优先级。相对优先级由中断优先级寄存器 IPR 中的设置决定。
IPR中,中断组和子分组结构更细化了各个中断级之间的优先级定义。
中断向量 (Vectors)
每一个中断级中可以包括一个或多个中断向量,又或者没有任何中断地址。每个中断级最多支持 128 个中断向量
(但 S3C8- 系列产品中实际用到的向量个数往往远小于 128)。当一个中断级有多个中断地址时,优先级由硬件
决定。S3C8275X/C8278X/C8274X 里有 12 个中断向量。
中断源 (Sources)
中断源可以是任何产生中断的外设。可以是外部管脚或者计数器溢出。多个中断源可以共用一个中断向量。
S3C8275X/C8278X/C8274X的中断结构中有 12 个中断源。
当中断服务程序开始之后,必须清除相应的中断标志位,如果不是硬件自动清零,就必须软件手动清零。标志位类
型是由中断源的标志位产生/清除机制决定的。
5-1
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中断类型
之前介绍的 S3C8 系列中断结构的三个组成部分 — 中断级,中断向量和中断源 — 充分使用了芯片的中断逻
辑,一起决定了芯片的中断结构。中断结构一共有三种可能的组合,分别称为 Type1,2,3。三者之间的区别在
于分配给每个中断级的中断向量和中断源的个数不同。(详见图 5-1)
Type 1:
一个中断级 (IRQn) + 一个中断向量 (V1) + 一个中断源 (S1)
Type 2:
一个中断级(IRQn) + 一个中断向量 (V1) + 多个中断源(S1 – Sn)
Type 3:
一个中断级(IRQn) + 多个中断向量(V1 – Vn) + 多个中断源 (S1 – Sn , Sn+1 – Sn+m)
S3C8275X/C8278X/C8274X只使用了上述两种 Type。
Type
1:
Levels
Vectors
Sources
IRQ
n
V1
S1
S1
Type
2:
IRQ
n
V1
S2
S3
Sn
Type
3:
IRQ
n
V1
S1
V2
S2
V3
S3
Vn
Sn
S
注释 :
1. S n 和 Vn 中的 n 是可扩展的.
2. 在 S3C8275X/C8278X/C8274X 中 ,使用的是中断类型 1 和 3
图 5-1. S3C8-系列中的中断类型
5-2
S
S
n
+
n
+
n
+
1
2
m
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
S3C8275X/C8278X/C8274X 中断结构
S3C8275X/C8278X/C8274X支持 12 个中断源,每一个中断源都有对应的中断向量地址。在这款芯片中,CPU
可以响应 8 个中断级 (参见图 5-2)。
多个中断级同时发出中断请求时,中断优先级寄存器(IPR)中的值决定了哪一个竞争中的中断级先被 CPU 响
应。如果同一个中断级中的多个中断源同时发出中断请求,中断向量地址最小的那个中断源拥有最高优先级,首先
被响应(同一中断级内中断源优先级顺序由硬件决定)。
当 CPU 响应某个中断请求以后,中断处理就开始了。此时所有的其他中断都处于禁止状态,PC 和 FLAGS 的
值被压入堆栈。从中断向量地址中获取中断服务程序的起始地址(16 位地址由中断向量地址处的 8 位和向量地
址之后的 8位数据一起构成),程序跳转而后开始执行中断服务程序。
Levels
Vectors
Sources
Reset/Clear
RESET
100H
Basic timer overflow
H/W
F0H
Timer 1/A match
S/W
F2H
Timer B match
S/W
IRQ1
F4H
SIO interrupt
S/W
IRQ2
F6H
Watch timer overflow
S/W
IRQ3
E0H
P0.0 external interrupt
S/W
IRQ4
E2H
P0.1 external interrupt
S/W
IRQ5
E4H
P0.2 external interrupt
S/W
IRQ6
E6H
P1.3 external interrupt
S/W
E8H
P1.4 external interrupt
S/W
EAH
P1.5 external interrupt
S/W
ECH
P1.6 external interrupt
S/W
EEH
P1.7 external interrupt
S/W
IRQ0
IRQ7
注释:
1. 在给定的中断级中,越低的中断向量地址中断优先级越高
例如:在IRQ0中,F0H 比 F2H 优先级高,
同一中断级内部的优先级顺序出厂时已确定。
2. 外部中断由上升沿或下降沿触发,触发方式由相应的控制寄存器决定
图 5-2. S3C8275X/C8278X/C8274X 中断结构
5-3
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中断向量地址
S3C8275X/C8278X/C8274X中断结构的所有中断向量地址都位于内部16K字节程序存储空间 (0H–3FFFH,详见图
5-3) 的向量地址区。
没有被用作中断向量的地址空间可以当作普通的程序存储空间。此时要小心千万不能与中断向量区交叠 (表 5-1
列出了所有的向量地址)。
ROM中的程序复位地址为 0100H。
S3F8275X ROM (Full Flash 产品)中的复位地址可在 smart option 中修改。详情参见第16章 嵌入式 Flash存储器
接口。
(Decimal)
(HEX)
16,383
3FFFH
16-Kbyte
1FFFH
8,191
8-Kbyte
0FFFH
4,095
4-Kbyte
Internal
Program Memory
(ROM) Area
255
Interrupt Vector Area
Smart Option Area
100H
FFH
3FH
3CH
0
00H
图 5-3. ROM 中断向量地址区
5-4
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 5-1. 中断向量
向量地址
中断源
中断请求
复位/清除
十进制值
十六进制值
中断优先级 级内优先级
硬件
软件
256
100H
Basic timer 溢出
Reset

242
F2H
Timer B 匹配
IRQ0
1

240
F0H
Timer 1/A匹配
0

244
F4H
SIO 中断
IRQ1


246
F6H
钟表定时器溢出
IRQ2


224
E0H
P0.0 外部中断
IRQ3


226
E2H
P0.1 外部中断
IRQ4


228
E4H
P0.2 外部中断
IRQ5


230
E6H
P1.3 外部中断
IRQ6


238
EEH
P1.7 外部中断
IRQ7
3

236
ECH
P1.6 外部中断
2

234
EAH
P1.5 外部中断
1

232
E8H
P1.4 外部中断
0


注释:
1. 中断优先级标注是反向的:"0" 的优先级最高,"1" 第二高,依次往下。
2. 若2个或多个同级中断同时发生,则向量地址较低的中断具有较高的优先级。同级中断的优先级由硬件决定。
5-5
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
使能/禁止中断的指令 (EI, DI)
执行使能中断指令 (EI) 使能全局中断结构。然后,所有的中断按照既定的优先级顺序执行。
注释
复位后,在初始化程序中应该包含 EI 指令来使能全局中断结构。
在正常的操作中,可以执行 DI (禁止中断)指令随时禁止全局中断处理。EI 和 DI 指令会改变寄存器 SYM 的
第 0 位状态。
系统级中断控制寄存器
除了特定中断源的控制寄存器外,4 个系统级寄存器也控制中断处理:
— 中断屏蔽寄存器,IMR,使能 (解除屏蔽) 或者 禁止 (屏蔽) 中断级。
— 中断优先级控制寄存器,IPR, 控制各个中断级之间的相对优先级。
— 中断请求寄存器,IRQ,包含每个中断级的中断标志位 (不同于中断源的标志位)。
— 系统模式控制寄存器,SYM,使能或者禁止全局中断处理 ( SYM 的设置还可以使能快速中断并在硬件支持的
情况下控制外部接口).
表 5-2. 中断控制寄存器描述
控制寄存器
ID
R/W
功能描述
中断屏蔽寄存器
IMR
R/W
IMR 寄存器中的位设置可以使能或禁止 IRQ0–IRQ7 中任意一
个中断级的中断处理。
中断优先级寄存器
IPR
R/W
控制各个中断级间的相对优先级。S3C8275X/C8278X/C8274X
中的 7 个中断级被分作 3 个组:A,B 和C 组。A组包括
IRQ0 和 IRQ1,B组包括IRQ2,IRQ3 和 IRQ4,C 组包括
IRQ5,IRQ6 和 IRQ7。
中断请求寄存器
IRQ
R
包含每个中断级的中断标志位
系统模式控制寄存器
SYM
R/W
包含每个中断级的中断标志位
注释: IMR 寄存器改变成任何值前,都必须禁止所有中断。建议使用 DI 指令。
5-6
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中断处理控制要点
中断处理控制可以通过两种方式来完成:全局或者特定中断级和中断源控制。系统级的中断结构控制要点如下:
— 全局中断的使能/禁止 (通过 EI 和 DI 指令或直接操作 SYM.0)
— 中断级使能/禁止 (通过寄存器 IMR)
— 中断级优先级设置 (通过寄存器 IPR)
— 通过相应的外设控制寄存器使能/禁止中断源
注释
包含中断处理的应用程序中,务必确保包含必须的寄存器文件地址 (寄存器指针) 信息。
EI
S
nRESET
R
Q
Interrupt Request Register
(Read-only)
Polling
Cycle
IRQ0-IRQ7,
Interrupts
Interrupt Priority
Register
Vector
Interrupt
Cycle
Interrupt Mask
Register
Global Interrupt Control (EI,
DI or SYM.0 manipulation)
图 5-4. 中断功能框图
5-7
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
外设中断控制寄存器
每一个中断源都有一个或多个对应的外设控制寄存器来控制相关外设产生的中断。(详见表 5-3)
表 5-3. 中断源控制和数据寄存器
中断源
中断级
寄存器
Set 1寄存器地址
Timer B 匹配
Timer 1/A匹配
IRQ0
TBCON, TBDATA, TBCNT
TACON, TADATA, TACNT
E7H, E5H, E3H, bank 1
E6H, E4H, E2H, bank 1
SIO 中断
IRQ1
SIOCON
SIODATA
SIOPS
E1H, bank 0
E2H, bank 0
E3H, bank 0
钟表定时器 溢出
IRQ2
WTCON
E1H, bank 1
P0.0 外部中断
IRQ3
P0CONL
EXTICONL
EXTIPND
E5H, bank 0
F9H, bank 0
F7H, bank 0
P0.1 外部中断
IRQ4
P0CONL
EXTICONL
EXTIPND
E5H, bank 0
F9H, bank 0
F7H, bank 0
P0.2 外部中断
IRQ5
P0CONL
EXTICONL
EXTIPND
E5H, bank 0
F9H, bank 0
F7H, bank 0
P1.3 外部中断
IRQ6
P1CONL
EXTICONL
EXTIPND
E8H, bank 0
F9H, bank 0
F7H, bank 0
外部中断
外部中断
外部中断
外部中断
IRQ7
P1CONH
EXTICONH
EXTIPND
E7H, bank 0
F8H, bank 0
F7H, bank 0
P1.7
P1.6
P1.5
P1.4
注释: 若某一中断在 IMR 寄存器中未被屏蔽 (使能中断级),则其中断标志位和使能位必须在DI 指令之后写入。
5-8
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
系统模式寄存器 (SYM)
系统模式寄存器 SYM (地址:DEH,Set 1) 可以用来使能/禁止全局中断处理,控制快速中断处理。(参见图55)
复位时清0 SYM.1 和 SYM.0,快速中断级选择位 SYM.4–SYM.2 的值不确定。
EI 和 DI 指令可以使能或禁止全局中断处理,相应的,也可以通过修改 SYM.0 得到同样效果。为使能中断处
理,复位后应该在初始化程序中包含 EI 指令。尽管可以通过操作 SYM.3 位直接使能或禁止中断,但还是建议用
EI 指令或 DI 指令。
System Mode Register (SYM)
DEH, Set 1, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
Global interrupt enable bit:
0 = Disable all interrupts processing
1 = Enable all interrupts processing
Always logic "0"
Not used for the
S3C8275X/C8278X/C8274X
Fast interrupt level
selection bits:
0 0 0 = IRQ0
0 0 1 = IRQ1
0 1 0 = IRQ2
0 1 1 = IRQ3
1 0 0 = IRQ4
1 0 1 = IRQ5
1 1 0 = IRQ6
1 1 1 = IRQ7
Fast interrupt enable bit:
0 = Disable fast interrupts processing
1 = Enable fast interrupts processing
注释 :
1. 任何时刻只能有一个中断级被设定为快速中断.
2. 设置 SYM.1 为 "1" 使能由 SYM.2-SYM.4选择的中断级为快速中断
3. 复位后,必须执行一次 EI 指令以使能系统的中断处理模块 (而不是写 "1" 到 SYM.0)
图 5-5. 系统模式寄存器 (SYM)
5-9
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中断屏蔽寄存器 (IMR)
中断屏蔽寄存器 IMR (地址:DDH,Set 1) 可用来使能或禁止各个中断级的中断处理。复位后,IMR 的所有位都
是不确定的,所以必须在初始化程序中根据应用设置该寄存器。
IMR 中的每一位都对应一个中断级,第 1 位对应于 IRQ1,第 2 位对应于 IRQ2,以此类推。当 IMR 中的某位
被清―0‖后,与之对应的中断级的中断处理就被禁止(屏蔽)了。当设置为―1‖时,相应中断级的中断处理就被使能
(解除屏蔽)了。
IMR 寄存器映射于 set 1 的DDH 地址。可通过指令使用寄存器寻址模式对每一位进行读写。
Interrupt Mask Register (IMR)
DDH, Set 1, R/W
MSB
.7
.6
.5
.4
.3
.2
IRQ2
IRQ7
注释:
IRQ6
IRQ5
IRQ4
.1
IRQ1
LSB
IRQ0
IRQ3
Interrupt level enable :
0 = Disable (mask) interrupt level
1 = Enable (un-mask) interrupt level
改变IMR 寄存器的值之前,必须禁止所有中断。建议使用 DI 指令。
图 5-6. 中断屏蔽寄存器 (IMR)
5-10
.0
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中断优先级寄存器 (IPR)
中断优先级控制寄存器 IPR (地址:FFH,Set 1,Bank 0) 可以用来设置 MCU 中断结构中各个中断级的相对优
先级。复位后,IPR 的所有位都是不确定的,所以必须在初始化程序中根据应用设置该寄存器。
当多个中断源同时发出中断请求时,优先级最高的那个中断源首先被 CPU 响应。如果同一中断级中的多个中断源
同时发出中断请求,中断向量地址最小的那个最先被响应。
为支持相对中断优先级编程,中断逻辑将中断级分为组和子组。请注意,这些组 (子组) 仅供 IPR 逻辑定义 IP
寄存器的优先级。(详见图 5-7):
Group A
IRQ0, IRQ1
Group B
IRQ2, IRQ3, IRQ4
Group C
IRQ5, IRQ6, IRQ7
IPR
Group A
A1
IPR
Group B
A2
B1
B2
B21
IRQ0
IRQ1
IPR
Group C
IRQ2 IRQ3
C1
B22
IRQ4
C2
C21
IRQ5 IRQ6
C22
IRQ7
图 5-7. 中断请求优先级组
如图 5-8 所示,IPR.7,IPR.4 和 IPR.1 控制中断组 ABC的相对优先级。例如,当这3位设置为―001B‖时,这 3
个中断组的优先级顺序为 B > C > A;设置为―101B‖时,这3个中断组的优先级顺序为C > B > A。
IPR 其他位控制功能描述如下:
— IPR.5 控制中断组C 内中断级的相对优先级。
— 中断组C 包含一个子组,内部的中断级5,6,7有额外的优先级。子组的优先级由 IPR.6 的值决定。IPR.5 控
制中断组C。
— IPR.0 控制 IRQ0 和 IRQ1 的相对优先级。
5-11
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Interrupt Priority Register (IPR)
FFH, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
Group priority:
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
= Undefined
=B>C>A
=A>B>C
=B>A>C
=C>A>B
=C>B>A
=A>C>B
= Undefined
Group B:
0 = IRQ2 > (IRQ3, IRQ4)
1 = (IRQ3, IRQ4) > IRQ2
Subgroup B:
0 = IRQ3 > IRQ4
1 = IRQ4 > IRQ3
Group C:
0 = IRQ5 > (IRQ6, IRQ7)
1 = (IRQ6, IRQ7) > IRQ5
Subgroup C:
0 = IRQ6 > IRQ7
1 = IRQ7 > IRQ6
图 5-8. 中断优先级寄存器 (IPR)
5-12
LSB
Group A:
0 = IRQ0 > IRQ1
1 = IRQ1 > IRQ0
D7 D4 D1
0
0
0
0
1
1
1
1
.0
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中断请求寄存器 (IRQ)
可以通过查询中断请求寄存器 IRQ (地址:DCH,Set 1) 的每一位监视所有中断级的中断请求情况。寄存器中的
每一位都对应于一个同序号的中断级:第 0 位对应于 IRQ0,第 1 位对应于 IRQ1,以此类推。 ―0‖ 代表目前该
中断级没有中断发生, ―1‖ 代表该中断级中的某个中断源发出了中断请求。
IRQ 寄存器是只读的。可随时使用位或字节方式访问 IRQ 寄存器来读取 (测试) 某一中断级当前的中断请求。复
位后,所有状态位清0。
即使是执行 DI 指令后,即全局中断处理禁止的情况下,仍然可以查询 IRQ 的内容。 此时如果有中断发生,
CPU 并不会做出任何响应。但是仍然可以通过查询 IRQ 确定中断发生情况。可在全局中断屏蔽的情况下,使用
上述方法判断事件的发生。
Interrupt Request Register (IRQ)
DCH, Set 1, Read-only
MSB
.7
IRQ7
.6
.5
IRQ6
IRQ5
.4
IRQ4
.3
IRQ3
.2
IRQ2
.1
IRQ1
.0
LSB
IRQ0
Interrupt level request pending bits:
0 = Interrupt level is not pending
1 = Interrupt level is pending
图 5-9. 中断请求寄存器 (IRQ)
5-13
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中断标志位类型
概述
有两种类型的中断标志位:一种会在中断服务程序执行完毕后硬件自动清零,一种必须在中断服务程序中软件清
零。
硬件自动清零的标志位
对于硬件自动清零的标志位来说,当有中断请求时,中断逻辑置高相应的标志位。然后触发 IRQ 脉冲告知 CPU
有一个中断正等待处理。CPU 随后发送 IACK 给中断源确认接受请求,然后执行服务程序,最后清除标志位。这
种类型的标志位没有被映射,所以不能在软件中对其进行读写。
中断服务程序中清零的标志位
第二类标志位必须用软件清零。中断服务程序必须在中断返回(IRET)前清除标志位。可通过对中断源的模式或
控制寄存器中的相应标志位清―0‖来实现。
 编程实例 — 如何清除中断标志位

如下例所示,应使用 load 指令来清除中断标志位。
例:
1.
SB0
LD



IRET
5-14
EXTIPND, #11111011B
; P0.2中断标志为清0
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中断结构
中断源查询顺序
中断请求查询和响应的步骤如下:
1. 某一中断源通过置位中断请求位产生中断请求。
2. CPU 查询程序识别该中断源的中断挂起状态。
3. CPU 检查该中断源的中断级。
4. CPU 产生中断确认信号。
5. 中断逻辑决定中断的向量地址。
6. 中断服务程序启动并将该中断源的标志位清0。(硬件清0或软件清0)
7. CPU 继续查询中断请求。
中断服务程序
中断处理前,必须满足以下条件:
— 全局中断处理使能 (EI)
— 该中断源所处的中断级处于使能状态(IMR 寄存器)
— 若有多个中断请求,该中断级必须具有最高优先级
— 该中断源处于使能状态 (外设控制寄存器)
当所有的条件都满足之后,中断请求会在指令周期的最后被确认。随后,CPU 将开始中断处理并完成下列操作:
1. SYM
寄存器的 SYM.0 位清零,以禁止所有后续的中断。.
2. 把程序计数器 PC 和状态寄存器压入堆栈。
3. 跳转到中断向量,获取中断服务程序地址。
4. 跳转执行中断服务程序
中断服务程序完成以后,CPU 发出中断返回指令 (IRET)。中断返回指令 IRET 会将堆栈中的 PC 和 状态寄存
器重置,同时置位SYM.0,使 CPU 能响应后续的中断请求。
5-15
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
中断向量地址的生成
ROM (00H–FFH) 中的中断向量区域,包含了中断结构中的每一级对应的中断服务程序的入口地址。向量化的中断
处理流程如下:
1. 程序计数器 PC 低字节压入堆栈
2. 程序计数器 PC 高字节压入堆栈
3. FLAGS 寄存器压入堆栈
4. 从中断向量地址中取出中断服务程序入口地址 (高字节)
5. 从中断向量地址中取出中断服务程序入口地址 (低字节)
6. 跳转执行 16 位中断向量地址所确定的中断服务程序
注释
16 位向量地址始终起始于 ROM 空间 00H ~ FFH 中的某个偶数地址。
中断嵌套
可以在一个低优先级中断请求的处理过程中,嵌套一个高优先级的中断请求。为此,必须遵循如下步骤:
1. 将当前的8位 IMR 寄存器压栈。
2. 重置 IMR,仅使能那个有较高优先级的中断。
3. 执行 EI 使能中断处理 (较高优先级的中断一旦发生就可被响应)
4. 在较低优先级的中断服务处理程序最后,将 IMR 寄存器弹栈,恢复进入中断前的状态。
5. 执行中断返回指令 IRET。
可根据不同的应用,简化上述步骤。
指令指针 (IP)
S3C8- 全系列都采用了指令指针 (IP) 以支持高速中断处理,又称作快速中断 (fast interrupts) 。IP实际是个寄存
器对,高 8 位 IPH (IP15–IP8) 和低 8 位 IPL (IP7–IP0) 分别位于地址单元 DAH 和 DBH。
快速中断处理
一般的中断处理需要 16 个CPU 时钟周期,而一旦将给定中断级设为快速中断,只需要大概 6 个 CPU 时钟周
期就可以完成整个中断处理。通过写 SYM.4–SYM.2 可以将快速中断处理应用于某一个中断级。然后需要置位
SYM.1 使能快速中断处理。
5-16
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
快速中断处理 (续)
快速中断处理用到其他2个系统寄存器:
— 指令指针 (IP) 包含了快速中断服务程序的起始地址 (中断处理后会和 PC 交换完成中断返回)
— 当快速中断发生时,FLAGS 寄存器的内容会自动载入一个没有地址映射的专用寄存器,称为 FLAGS’
注释
对于 S3C8275X/C8278X/C8274X,8个中断级 IRQ0–IRQ7 中的任何一个都可以选择为快速中断处理的
对象。
快速中断初始化步骤
以下步骤初始化快速中断:
1. 将中断服务程序的起始地址载入指令指针 (IP)。
2. 将中断级编号 (IRQn) 载入快速中断选择区 (SYM.4–SYM.2)。
3. 在 SYM
寄存器的快速中断使能位中写 "1"。
快速中断服务程序
当指定为快速中断的中断级中出现中断请求时,如下事件发生:
1. PC 和 IP 交换内容
2. FLAGS 寄存器值载入 FLAGS'
3. FLAGS 寄存器中的快速中断状态位置高
4. 开始中断服务
5. 若快速中断标志位被置高,当中断服务程序结束后,PC 和 IP 再次交换内容
6. FLAGS’ 寄存器的值自动复制回 FLAGS 寄存器
7. FLAGS 寄存器中的快速中断标志位自动清0
中断标志位类型间关系
如前所述,有2种中断标志位:1种在中断服务程序被识别并执行之后由硬件自动清0;另一种必须由中断服务程序
软件清0。可为快速中断处理选择任一种类型的中断标志位清0 – 硬件清0或软件清0。
编程指导
切记使能/禁止快速中断的唯一方法是置位/清0 SYM 寄存器中的快速中断使能位 SYM.1。执行 EI 或 DI 指令使
能或禁止全局中断处理,包括快速中断。若使用快速中断,务必要在快速中断服务程序的最后,在IP 中写入一个
新的起始地址。
5-17
中断结构
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
5-18
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
6
指令集
指令集
概述
SAM88RC 指令集支持对大容量寄存器卷的操作,一共包含 78 条指令,具有强大的数据处理能力。指令集特性如
下:
— 实现了所有 8 位算术和逻辑操作,包括乘法和除法
— 没有专门的输入/输出指令(输入/输出控制寄存器和数据寄存器直接映射到寄存器卷中)
— 十进制调整,包括 BCD 操作
— 16 位(字)数据可自增或自减
— 灵活的位寻址、循环和移位指令
数据类型
SAM8 CPU 可以实现位操作、字节操作、BCD 数字操作和双字节操作。寄存器的每个位可以被置 1、清 0、取反和
测试。一个字节的各位按从 7 到 0 编号,其中 0 位是最低位 (在最右边)。
寄存器访问
为访问寄存器,应指定寄存器卷中地址为 0 – 255 之间 的 8 位地址或工作寄存器的 4 位地址。工作寄存器中,寄存
器对可以访问 16 位程序存储空间和数据存储空间。关于寄存器访问的详细描述,请参考第 2 章―地址空间‖。
寻址模式
有 7 种寻址模式:寄存器寻址(R),间接寄存器寻址(IR),偏址寻址(X),直接寻址(DA),相对地址寻址(RA),立即
数寻址(IM)和间接寻址(IA)。有关寻址模式的详细描述,请参考第 3 章“寻址模式”。
6-1
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 6-1. 指令集简介
助记符
操作数
指令介绍
数据传送类指令
CLR
dst
清零
LD
dst,src
传送数据
LDB
dst,src
传送位数据
LDE
dst,src
传送数据(访问外部数据存储空间)
LDC
dst,src
传送数据(访问程序存储空间)
LDED
dst,src
传送数据后地址减 1(访问外部数据存储空间)
LDCD
dst,src
传送数据后地址减 1(访问程序存储空间)
LDEI
dst,src
传送数据后地址加 1(访问外部数据存储空间)
LDCI
dst,src
传送数据后地址加 1(访问程序存储空间)
LDEPD
dst,src
传送数据前地址减 1(访问外部数据存储空间)
LDCPD
dst,src
传送数据前地址减 1(访问程序存储空间)
LDEPI
dst,src
传送数据前地址加 1(访问外部数据存储空间)
LDCPI
dst,src
传送数据前地址加 1(访问程序存储空间)
LDW
dst,src
传送字数据
POP
dst
出栈
POPUD
dst,src
弹出用户栈(减 1)
POPUI
dst,src
弹出用户栈(加 1)
PUSH
src
压栈
PUSHUD
dst,src
压入用户栈(减 1)
PUSHUI
dst,src
压入用户栈(加 1)
注释: LDE, LDED, LDEI, LDEPP 和 LDEPI 指令可用来读/写 64 K字节的外部数据存储空间。
6-2
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 6-1. 指令集简介(续)
助记符
操作数
指令描述
算术操作类指令
ADC
dst,src
带进位加法
ADD
dst,src
不带进位加法
CP
dst,src
比较指令
DA
dst
十进制调整
DEC
dst
字节减 1
DECW
dst
字减 1
DIV
dst,src
除法指令
INC
dst
字节加 1
INCW
dst
字加 1
MULT
dst,src
乘法指令
SBC
dst,src
带借位减法
SUB
dst,src
不带借位减法
AND
dst,src
逻辑与
COM
dst
取反
OR
dst,src
逻辑或
XOR
dst,src
逻辑异或
逻辑操作类指令
6-3
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 6-1. 指令集简介(续)
助记符
操作数
指令描述
程序控制指令
BTJRF
dst,src
位测试,如果为 0 跳转
BTJRT
dst,src
位测试,如果为 1 跳转
CALL
dst
调用子程序
CPIJE
dst,src
比较,如果相等跳转
CPIJNE
dst,src
比较,如果不等跳转
DJNZ
r,dst
寄存器减 1,不为 0 跳转
ENTER
进入
EXIT
跳出
IRET
中断返回
JP
cc,dst
有条件跳转
JP
dst
无条件跳转
JR
cc,dst
有条件相对跳转
NEXT
Next 指令
RET
子程序返回
WFI
等待中断
位操作指令
BAND
dst,src
位与
BCP
dst,src
位比较
BITC
dst
位取反
BITR
dst
位清零
BITS
dst
位置 1
BOR
dst,src
位或
BXOR
dst,src
位异或
TCM
dst,src
取反后位测试
TM
dst,src
位测试指令
6-4
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 6-1. 指令集简介(续)
助记符
操作数
指令描述
循环和移位指令
RL
dst
循环左移
RLC
dst
带进位循环左移
RR
dst
循环右移
RRC
dst
带进位循环右移
SRA
dst
算术右移
SWAP
dst
交换
CPU控制指令
CCF
进位标志取反
DI
屏蔽全局中断
EI
使能全局中断
IDLE
进入 IDLE 模式
NOP
空操作
RCF
进位标志清零
SB0
选择寄存器块 bank 0
SB1
选择寄存器块 bank 1
SCF
进位标志置 1
SRP
src
设置寄存器指针
SRP0
src
设置寄存器指针 0
SRP1
src
设置寄存器指针 1
STOP
进入 STOP 模式
6-5
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
标志寄存器(FLAGS)
8 位标志寄存器 FLAGS 描述当前 CPU 的操作状态。其中的 4 位(FLAGS.4–FLAGS.7)可以用于测试和条件转移
指令;另外两个标志位 FLAGS.3 和标志位 FLAGS.2 用于 BCD 算术操作。
还有一个标志位 FLAGS.1 用于指示快速中断处理;FLAGS.0 表示当前正在寻址的 Bank 地址状态,是 Bank 0 还是
Bank 1。
只要结果不影响到状态位,FLAGS 寄存器可以通过指令(如 LOAD 指令)置 1 或者清 0。 逻辑和算术类操作指
令,例如与、或、异或、加法和减法操作,会影响到标志位寄存器。例如,AND 指令会根据结果改变 Zero, Sign 和
Overflow (Z、S、O)标志。如果 AND 指令使用 FLAGS 作为目标寄存器,将会同时发生两次 FLAGS 寄存器的写
操作,造成不可预知的后果。
System Flags Register (FLAGS)
D5H ,Set 1, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
Bank address
status flag (BA)
Carry flag (C)
Fast interrupt
status flag (FS)
Zero flag (Z)
Sign flag (S)
Overflow flag (V)
Half-carry flag (H)
Decimal adjust flag (D)
图 6-1. 系统标志寄存器(FLAGS)
6-6
LSB
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
指令集
标志位描述
C
进(借)位标志 (FLAGS.7)
如果算术操作后,最高位产生进位或借位,则此标志位为 1 。移位、循环移位操作之后,此位保存最后移
出的那一位值。指令可以对此位置 1、清 0、取反操作。
Z
零标志位(FLAGS.6)
如果算术、逻辑操作的结果为 0 ,则此标志位为 1 。位测试指令、移位指令、循环移位指令都会影响此标
志位,如果结果为逻辑 0,则此标志位为 1 。
S
符号标志位 (FLAGS.5)
算术、逻辑、循环、移位操作之后,操作结果最高位的状态反映在符号位。逻辑 0 表示操作结果是正数,
逻辑 1 表示操作数结果是负数。
V
溢出标志 (FLAGS.4)
当操作结果大于 + 127 或 小于 – 128 时,溢出标志将会置 1。逻辑操作之后,它将会被清 0。
D
十进制调整标志 (FLAGS.3)
DA 标志用于指明 BCD 操作中何种类型的指令是最后被执行的,因此随后的十进制调整指令可以正确执
行。编程者通常不能访问 DA 位,也不能用来做测试的条件码。
H
半字节进(借)位标志 (FLAGS.2)
当加法操作时第 3 位产生进位或减法操作时向第 4 位发生借位,H标志将被置 1。通常用在DA指令中,将
前一次的加法或减法结果(二进制码)转化为十进制结果(BCD)。程序通常不会直接用到 H 标志。
FIS
快速中断状态标志 (FLAGS.1)
在快速中断执行期间,FIS 位被置 1;快速中断返回时,FIS 位被清 0。当 FIS 被置 1 时,将禁止所有中
断,直到 IRET 指令被执行后,才重新打开快速中断。
BA
寄存器块地址标志 (FLAGS.0)
BA 标志表明内部寄存器卷 Set 1 中哪个寄存器块被选中,是 bank 0 还是 bank 1。当执行 SB0 指令,BA
标志被清零(选择 bank 0);当执行 SB1 指令,BA 标志被置 1(选择 bank 1)。
6-7
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
指令集符号
表 6-2. 标志位符号
标志位
描述
C
进(借)位标志
Z
零标志
S
符号标志
V
溢出标志
D
十进制调整标志
H
半字节进(借)位标志
0
清为逻辑 0
1
置为逻辑 1
*
根据相应操作置 1 或清 0
–
不受影响
x
不确定
表 6-3. 指令集符号
符号
dst
目的操作数
src
源操作数
@
间接寄存器地址前缀
PC
程序计数器
IP
指令指针
FLAGS
RP
标志寄存器(D5H)
寄存器指针
#
立即数或寄存器访问的前缀
H
十六进制后缀
D
十进制后缀
B
二进制后追
opc
6-8
描述
指令代码
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 6-4. 指令符号的定义
符号
描述
实际操作范围
条件码
参考表格 6-6
r
工作寄存器
Rn (n = 0–15)
rb
工作寄存器的位 b
Rn.b (n = 0–15, b = 0–7)
r0
工作寄存器的位 0,最低位
Rn (n = 0–15)
rr
工作寄存器对
RRp (p = 0, 2, 4, ..., 14)
R
寄存器或者工作寄存器
reg or Rn (reg = 0–255, n = 0–15)
Rb
寄存器或者工作寄存器的位 b
reg.b (reg = 0–255, b = 0–7)
RR
寄存器对或工作寄存器对
reg or RRp (reg = 0–254, 只能是偶数
p = 0, 2, ..., 14)
IA
间接寻址模式
addr (addr = 0–254, 只能是偶数)
Ir
间接工作寄存器寻址
@Rn (n = 0–15)
IR
间接工作寄存器寻址或间接寄存器寻址
@Rn or @reg (reg = 0–255, n = 0–15)
Irr
间接工作寄存器对
@RRp (p = 0, 2, ..., 14)
间接寄存器对或间接工作寄存器对
@RRp or @reg (reg = 0–254, 只能是偶数
p = 0, 2, ..., 14)
基址寻址模式
#reg [Rn] (reg = 0–255, n = 0–15)
XS
短偏址寻址模式
#addr [RRp] (addr = 范围 –128 to +127,
p = 0, 2, ..., 14)
xl
长偏址寻址模式
#addr [RRp] (addr = 范围 0–65535,
p = 0, 2, ..., 14)
da
直接寻址模式
addr (addr = 范围 0–65535)
ra
相对地址寻址模式
addr (addr = 在 +127 到 -128 范围内的数字)
im
立即数寻址模式
#data (data = 0–255)
iml
长立即数寻址模式
#data (data = 范围 0–65535)
cc
IRR
X
6-9
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 6-5. 指令代码快速参考
指令代码对照图
LOWER NIBBLE(HEX)
–
0
1
2
3
4
5
6
7
U
0
DEC
R1
DEC
IR1
ADD
r1,r2
ADD
r1,Ir2
ADD
R2,R1
ADD
IR2,R1
ADD
R1,IM
BOR
r0–Rb
P
1
RLC
R1
RLC
IR1
ADC
r1,r2
ADC
r1,Ir2
ADC
R2,R1
ADC
IR2,R1
ADC
R1,IM
BCP
r1.b, R2
P
2
INC
R1
INC
IR1
SUB
r1,r2
SUB
r1,Ir2
SUB
R2,R1
SUB
IR2,R1
SUB
R1,IM
BXOR
r0–Rb
E
3
JP
IRR1
SRP/0/1
IM
SBC
r1,r2
SBC
r1,Ir2
SBC
R2,R1
SBC
IR2,R1
SBC
R1,IM
BTJR
r2.b, RA
R
4
DA
R1
DA
IR1
OR
r1,r2
OR
r1,Ir2
OR
R2,R1
OR
IR2,R1
OR
R1,IM
LDB
r0–Rb
5
POP
R1
POP
IR1
AND
r1,r2
AND
r1,Ir2
AND
R2,R1
AND
IR2,R1
AND
R1,IM
BITC
r1.b
N
6
COM
R1
COM
IR1
TCM
r1,r2
TCM
r1,Ir2
TCM
R2,R1
TCM
IR2,R1
TCM
R1,IM
BAND
r0–Rb
I
7
PUSH
R2
PUSH
IR2
TM
r1,r2
TM
r1,Ir2
TM
R2,R1
TM
IR2,R1
TM
R1,IM
BIT
r1.b
B
8
DECW
RR1
DECW
IR1
PUSHUD
IR1,R2
PUSHUI
IR1,R2
MULT
R2,RR1
MULT
IR2,RR1
MULT
IM,RR1
LD
r1, x, r2
B
9
RL
R1
RL
IR1
POPUD
IR2,R1
POPUI
IR2,R1
DIV
R2,RR1
DIV
IR2,RR1
DIV
IM,RR1
LD
r2, x, r1
L
A
INCW
RR1
INCW
IR1
CP
r1,r2
CP
r1,Ir2
CP
R2,R1
CP
IR2,R1
CP
R1,IM
LDC
r1, Irr2, xL
E
B
CLR
R1
CLR
IR1
XOR
r1,r2
XOR
r1,Ir2
XOR
R2,R1
XOR
IR2,R1
XOR
R1,IM
LDC
r2, Irr2, xL
C
RRC
R1
RRC
IR1
CPIJE
Ir,r2,RA
LDC
r1,Irr2
LDW
RR2,RR1
LDW
IR2,RR1
LDW
RR1,IML
LD
r1, Ir2
H
D
SRA
R1
SRA
IR1
CPIJNE
Irr,r2,RA
LDC
r2,Irr1
CALL
IA1
LD
IR1,IM
LD
Ir1, r2
E
E
RR
R1
RR
IR1
LDCD
r1,Irr2
LDCI
r1,Irr2
LD
R2,R1
LD
R2,IR1
LD
R1,IM
LDC
r1, Irr2, xs
X
F
SWAP
R1
SWAP
IR1
LDCPD
r2,Irr1
LDCPI
r2,Irr1
CALL
IRR1
LD
IR2,R1
CALL
DA1
LDC
r2, Irr1, xs
6-10
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 6-5. 指令代码快速参考(续)
指令代码对照图
LOWER NIBBLE(HEX)
–
8
9
A
B
C
D
E
F
U
0
LD
r1,R2
LD
r2,R1
DJNZ
r1,RA
JR
cc,RA
LD
r1,IM
JP
cc,DA
INC
r1
NEXT
P
1







ENTER
P
2
EXIT
E
3
WFI
R
4
SB0
5
SB1
N
6
IDLE
I
7
B
8
DI
B
9
EI
L
A
RET
E
B
IRET
C
RCF
H
D
E
E
X
F














STOP
SCF
CCF
LD
r1,R2
LD
r2,R1
DJNZ
r1,RA
JR
cc,RA
LD
r1,IM
JP
cc,DA
INC
r1
NOP
6-11
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
条件码
条件转移指令通常包含 4 位条件转移操作判断(cc)。这些条件转移操作判断的结果将决定程序的跳转方向。例如,
比较操作后的“相等”条件转移,只有在两个操作数相等时该条件转移操作才会跳转。条件码列举在表格 6-6。
C、Z、S、V 等标志位用作条件转移判断位。指令将会根据这些标志位决定跳转方向。
表 6-6. 条件码
二进制
助记符
描述
标志位设置
0000
F
逻辑假
–
1000
T
逻辑真
–
0111 (1)
C
有进位或借位
C=1
1111 (1)
NC
无进位或借位
C=0
0110 (1)
Z
结果为 0
Z=1
NZ
结果不为 0
Z=0
1101
PL
正数
S=0
0101
MI
负数
S=1
0100
OV
溢出
V=1
1100
NOV
没有溢出
V=0
0110 (1)
EQ
相等
Z=1
1110 (1)
NE
不相等
Z=0
1001
GE
大于等于
(S XOR V) = 0
0001
LT
小于
(S XOR V) = 1
1010
GT
大于
(Z OR (S XOR V)) = 0
0010
LE
小于等于
(Z OR (S XOR V)) = 1
1111 (1)
UGE
无符号大于等于
C=0
0111 (1)
ULT
无符号小于
C=1
1011
UGT
无符号大于
(C = 0 AND Z = 0) = 1
0011
ULE
无符号小于等于
(C OR Z) = 1
1110
(1)
注释:
1. 一次算术操作的结果可能同时影响两个标志位。例如,Z 符号位被置起时,Z、EQ 都为真。但是 ADD 指令操作之后,可能
会用到 Z ;而 CP 指令操作之后,EQ 可能被用到。
2. 如果操作数涉及到无符号数,必须使用 UGE, ULT, UGT, ULE 等条件代码。
6-12
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
指令集
指令集描述
本章详细介绍了 S3C8- 系列单片机的指令操作,同时给出了具体的编程实例。为便于参阅和快速查找,在介绍指令
时采用了统一的格式。对每条指令,采用了如下的描述方法:
— 指令名称(标号)
— 指令全称
— 源操作数/目的操作数的格式
— 具体指令的解释
— 每条指令操作的具体描述
— 每条指令对标志寄存器的影响
— 指令格式、执行周期和访问模式的详细介绍
— 每条指令的编程实例
6-13
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
ADC — 带进位加法 (Add with Carry)
ADC
dst,src
操作:
dst  dst + src + c
目的操作数加上源操作数和 C 位,所得结果保存在目的操作数。源操作数不受影响。在多字节加法
中,该指令允许把低字节的进位加到高字节的加法运算中。
标志位:
C:
Z:
S:
V:
D:
H:
如果加法运算中产生进位,则此位置 1;否则,清 0
如果运算结果为 0,则该位置 1;否则,清 0
如果运算结果为负,则该位置 1;否则,清 0
如果运算结果产生溢出,该位置 1;否则,清 0
总是被清 0
如果运算结果的低4位有进位,该位置 1;否则,清 0
格式:
opc
dst | src
opc
src
opc
编程实例:
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
2
4
12
r
r
6
13
r
lr
6
14
R
R
6
15
R
IR
6
16
R
IM
3
3
寻址模式
dst
src
假设: R1 = 10H, R2 = 03H, C flag =“1”, 寄存器 01H = 20H, 寄存器 02H = 03H, 和寄存器
03H = 0AH:
ADC
R1,R2

R1 = 14H, R2 = 03H
ADC
R1,@R2

R1 = 1BH, R2 = 03H
ADC
01H,02H

寄存器 01H = 24H, 寄存器 02H = 03H
ADC
01H,@02H

寄存器 01H = 2BH, 寄存器 02H = 03H
ADC
01H,#11H

寄存器 01H = 32H
在第一个例子中,目的寄存器R1内容为 10H,进位标志位为 1,源寄存器 R2 为 03H。语句“ADC
R1,R2”把03H和进位位(“1”)累加到目的数 10H,结果为 14H,保存在 R1。
6-14
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
ADD
ADD
操作:
— 加法 (Add)
dst,src
dst  dst + src
源操作数和目的操作数相加,结果保存在目的操作数,源操作数不受影响。
标志位:
C:
Z:
S:
V:
D:
H:
如果结果的最高位有进位,被置 1;否则,被清 0
如果结果为 0,被置 1;否则,被清 0
如果结果是负数,被置 1;否则,被清 0
如果有溢出,被置 1,也就是说,两个操作数符号相同,运算结果是相反的符号;否则,被清0
总是被清 0
如果结果的低4位有进位,被置 1;否则,被清 0
格式:
opc
dst | src
opc
src
opc
编程实例:
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
2
4
02
r
r
6
03
r
lr
6
04
R
R
6
05
R
IR
6
06
R
IM
3
3
寻址模式
dst
src
假设: R1 = 12H, R2 = 03H, 寄存器 01H = 21H, 寄存器 02H = 03H, 寄存器 03H = 0AH:
ADD
R1,R2

R1 = 15H, R2 = 03H
ADD
R1,@R2

R1 = 1CH, R2 = 03H
ADD
01H,02H

寄存器 01H = 24H, 寄存器 02H = 03H
ADD
01H,@02H

寄存器 01H = 2BH, 寄存器 02H = 03H
ADD
01H,#25H

寄存器 01H = 46H
在第一个例子中,目的工作寄存器 R1 内容为12H,源工作寄存器 R2 内容为 03H。语句“ADD
R1,R2”执行 03H+12H,结果为 15H,保存在寄存器 R1。
6-15
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
AND
AND
操作:
— 逻辑与 (Logical AND)
dst,src
dst  dst AND src
源操作数与目的操作数执行逻辑与操作,结果保存在目的操作数。只有当两个操作数的对应位都为
1时,结果的相应位才是 1;否则,该位为 0。源操作数不受影响。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果为 0,被置 1;否则,被清 0
如果结果是负数,被置 1;否则,被清 0
总是被清零
不受影响
不受影响
格式:
opc
dst | src
opc
src
opc
编程实例:
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
2
4
52
r
r
6
53
r
lr
6
54
R
R
6
55
R
IR
6
56
R
IM
3
3
寻址模式
dst
src
假设: R1 = 12H, R2 = 03H, 寄存器 01H = 21H, 寄存器 02H = 03H, 寄存器 03H = 0AH:
AND
R1,R2

R1 = 02H, R2 = 03H
AND
R1,@R2

R1 = 02H, R2 = 03H
AND
01H,02H

寄存器 01H = 01H, 寄存器 02H = 03H
AND
01H,@02H

寄存器 01H = 00H, 寄存器 02H = 03H
AND
01H,#25H

寄存器 01H = 21H
在第一个例子中,目的操作数 R1为 12H,源操作数 R2 为 03H,指令“AND R1,R2”对 03H 和
12H 进行逻辑与操作,结果为 02H,保存在寄存器 R1。
6-16
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BAND
— 位与 (Bit AND)
BAND
dst,src.b
BAND
dst.b,src
操作:
dst(0)  dst(0) AND src(b)
or
dst(b)  dst(b) AND src(0)
源操作数(或者目的操作数)的特定位与目的操作数(或者源操作数)的最低位进行逻辑与操作,
结果保存在目的操作数的特定位。目的操作数的其他位不受影响。源操作数不受影响。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果为 0,被置 1;否则,被清 0
总是被清零
不确定
不受影响
不受影响
格式:
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
src
opc
dst | b | 0
src
3
6
67
r0
Rb
opc
src | b | 1
dst
3
6
67
Rb
r0
注释: 在 3 字节指令各式的第二个字节中,目的或者源操作数地址是 4 位,位地址是 3 位。
编程实例:
假设: R1 = 07H 和寄存器 01H = 05H:
BAND R1,01H.1

R1 = 06H, 寄存器 01H = 05H
BAND 01H.1,R1

寄存器 01H = 05H, R1 = 07H
在第一个例子中,源寄存器 01H 的内容是 05H,目的寄存器 R1 的内容是 07H,指令“BAND
R1,01H.1”将源寄存器的位 1 和目的寄存器 R1 的位 0 进行逻辑与操作,结果为 06H,保存在寄存
器 R1。
6-17
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BCP — 位比较 (Bit Compare)
BCP
操作:
dst,src.b
dst(0) – src(b)
源操作数的特定位与目的操作数的最低位做比较,如果相等,零标志位被置 1,否则被清 0。两个
操作数都不受影响。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果为 0,被置 1;否则,被清 0
总是被清零
不确定
不受影响
不受影响
格式:
opc
dst | b | 0
src
字节数
时钟周期
指令代码
(Hex)
3
6
17
寻址模式
dst
src
r0
Rb
注释: 在 3 字节指令各式的第二个字节中,目的操作数地址是 4 位,位地址是 3 位。
编程实例:
假设: R1 = 07H 和寄存器 01H = 01H:
BCP
R1,01H.1

R1 = 07H, 寄存器 01H = 01H
如果目的寄存器 R1 内容为 07H,源寄存器 01H 的内容为 01H,指令“BCP R1,01H.1”比较源寄
存器(01H)的位 1 和目的寄存器 R1 的位 0。因为两个位是不相等的,所以标志位寄存器的 Z 标
志位被清零。
6-18
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BITC
— 位反 (Bit Complement)
BITC
dst.b
操作:
dst(b)  NOT dst(b)
这个指令对目的操作数的特定位取反而不影响其他位。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果为 0,被置 1;否则,被清 0
总是被清零
不确定
不受影响
不受影响
格式:
opc
dst | b | 0
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
57
rb
注释: 在指令的第二个字节中,目的操作数地址是 4 位,位地址是 3 位。
编程实例:
假设: R1 = 07H
BITC
R1.1

R1 = 05H
工作寄存器 R1 内容为 07H,指令“BITC R1.1“对 R1 的位 1 取反,并将结果(05H)保存在 R1。
因为结果不是“0”,所以标志位寄存器的 Z 标志被清零。
6-19
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BITR — 位清零 (Bit Reset)
BITR
dst.b
操作:
dst(b)  0
BITR 指令将目的操作数的特定位清零,而不影响其它的位。
标志位:
没有任何标志位受影响
格式:
opc
注释:
编程实例:
dst | b | 0
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
77
rb
在指令的第二个字节中,目的操作数地址是 4 位,位地址是 3 位。
假设: R1 = 07H:
BITR
R1.1

R1 = 05H
工作寄存器 R1 的内容是 07H,指令“BITR R1.1”对目标寄存器 R1 的位 1 清零,结果为 05H。
6-20
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BITS — 位置1 (Bit Set)
BITS
dst.b
操作:
dst(b)  1
BITS 指令将目的操作数的特定位设置为 1,而不影响其它的位。
标志位:
没有标志位受影响
格式:
opc
注释:
编程实例:
dst | b | 1
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
77
rb
在指令的第二个字节中,目的操作数地址是 4 位,位地址是 3 位。
假设: R1 = 07H:
BITS
R1.3

R1 = 0FH
工作寄存器 R1 的内容是 07H,指令“BITS R1.3”将目标寄存器 R1 的位 3 置为 1,结果为
0FH。
6-21
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BOR — 位或 (Bit OR)
BOR
dst,src.b
BOR
dst.b,src
操作:
dst(0)  dst(0) OR src(b)
或
dst(b)  dst(b) OR src(0)
源操作数(或者目的操作数)的特定位与目的操作数(源操作数)的最低位进行逻辑或,运算结果
保存在目的操作数的特定位,目的操作数的其它位不受影响。源操作数不受影响。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果为 0,被置 1;否则,被清 0
总是被清零
不确定
不受影响
不受影响
格式:
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
src
opc
dst | b | 0
src
3
6
07
r0
Rb
opc
src | b | 1
dst
3
6
07
Rb
r0
注释: 在 3 字节指令格式的第二个字节中,目的操作数地址是 4 位,位地址是 3 位。
编程实例:
假设: R1 = 07H 和寄存器 01H = 03H:
BOR
R1, 01H.1

R1 = 07H, 寄存器 01H = 03H
BOR
01H.2, R1

寄存器 01H = 07H, R1 = 07H
在第一个例子里面,目的寄存器 R1 的内容为 07H,源寄存器 01H 的内容是 03H,指令“BOR
R1,01H.1”将寄存器 01H 的位 1 与 R1 的位 0 进行逻辑或运算,结果(还是 07H )保存在 R1 中。
在第二个例子里面,目的寄存器 01H 的内容为 03H,源寄存器 R1 的内容是 07H,指令“BOR
01H.2,R2”将 01H 的位 2 与寄存器 R1 的位 0 进行逻辑或运算,结果(07H)保存在寄存器 01H
中。
6-22
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BTJRF
— 位测试,若为假相对跳转 (Bit Test, Jump Relative on False)
BTJRF
dst,src.b
操作:
如果目标操作数的位 b 为“0”, 那么 PC  PC + dst
测试源原操作数的特定位,如果为“0”,则将相对地址累加到程序计数器(PC),并从新的 PC 地
址开始执行程序;否则,执行 BTJRF 后面的指令。
标志位:
没有标志受影响。
格式:
字节数
时钟周期
指令代码
(Hex)
3
10
37
(注释 1)
opc
src | b | 0
dst
寻址模式
dst
src
RA
rb
注释: 在 3 字节指令各式的第二个字节中,目的操作数地址是 4 位,位地址是 3 位。
编程实例:
假设: R1 = 07H:
BTJRF SKIP,R1.3

PC 跳转到 SKIP 地址处
如果工作寄存器 R1 的内容是 07H,指令“BTJRF SKIP,R1.3”测试 R1 的位 3。因其为“0”,相
对地址将累加到 PC,然后 PC 跳转到 SKIP 地址处。(记住地址跳转的范围必须在 +127 至 -128
之间)
6-23
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BTJRT — 位测试,若为真,相对跳转 (Bit Test, Jump Relative on True)
BTJRT
dst,src.b
操作:
如果目标操作数的位 b 为“1”, 那么 PC  PC + dst
测试源操作数的特定位,如果为“1”,则将相对地址累加到程序计数器(PC),并从新的 PC 地址
开始执行程序;如果为“0”,执行 BTJRT 后面的指令。
标志位:
没有标志位受影响。
格式:
字节数
时钟周期
指令代码
(Hex)
3
10
37
(注释 1)
opc
src | b | 1
dst
寻址模式
dst
src
RA
rb
注释: 在 3 字节指令各式的第二个字节中,目的操作数地址是 4 位,位地址是 3 位。
编程实例:
假设: R1 = 07H:
BTJRT
SKIP,R1.1
工作寄存器 R1 的内容是 07H,指令“BTJRT SKIP,R1.1”测试寄存器 R1 的位 1。因该位为
“1”,相对地址将被叠加到 PC,并跳转到新的 PC 地址 SKIP 处。(记住跳转范围必须在 +127
至 -128 之间)
6-24
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BXOR — 位异或 (Bit XOR)
BXOR
dst,src.b
BXOR
dst.b,src
操作:
dst(0)  dst(0) XOR src(b)
或
dst(b)  dst(b) XOR src(0)
源操作数(或者目的操作数)的特定位与目的操作数(源操作数)的最低位进行逻辑异或运算。结
果保存在目的寄存器的特定位中。其他位不受影响。源操作数不受影响。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果为 0,被置 1;否则,被清 0
总是被清零
不确定
不受影响
不受影响
格式:
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
src
opc
dst | b | 0
src
3
6
27
r0
Rb
opc
src | b | 1
dst
3
6
27
Rb
r0
注释: 在 3 字节指令各式的第二个字节中,目的操作数地址是 4 位,位地址是 3 位。
编程实例:
假设:R1 = 07H (00000111B) 和寄存器 01H = 03H (00000011B):
BXOR R1,01H.1

R1 = 06H, 寄存器 01H = 03H
BXOR 01H.2,R1

寄存器 01H = 07H, R1 = 07H
在第一个例子中,目的寄存器 R1 的内容是 07H,源寄存器 01H 的内容是 03H,指令“BXOR
R1,01H.1”将源寄存器 01H 的位 1 和 R1 的位 0 进行逻辑异或,结果保存在 R1 的位 0,将 R1 的
值从 07H 改写为 06H。源寄存器 01H 的值不受影响。
6-25
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CALL — 程序调用 (Call Procedure)
CALL
dst
操作:
SP
@SP
SP
@SP
PC





SP – 1
PCL
SP –1
PCH
dst
PC 的当前内容被压入堆栈,也就是紧跟 CALL 指令之后的指令地址。然后,指定的目标地址被送
给PC,指向子程序的第一条指令地址。在子程序末尾,用返回指令 RET 返回到原来的程序流程,
继续执行主程序。RET 指令的执行,将 PC 值从堆栈顶部弹出。
标志位:
没有标志位受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
3
14
F6
DA
opc
dst
2
12
F4
IRR
opc
dst
2
14
D4
IA
假设: R0 = 35H, R1 = 21H, PC = 1A47H, 和SP = 0002H:
CALL
3521H 
SP = 0000H
(存储器 0000H = 1AH, 0001H = 4AH,
4AH 是指令后面的地址)
CALL
@RR0 
CALL
#40H

SP = 0000H (0000H = 1AH, 0001H = 49H)
SP = 0000H (0000H = 1AH, 0001H = 49H)
在第一个例子中,如果 PC 值为 1A47H,堆栈指针内容为 0002H,指令“CALL 3521H”将当前的
PC 数值压入堆栈顶,堆栈指针现在指向 0000H,然后 PC 装载入 3521H,从子程序的第一条指令
地址开始顺序执行。
如果 PC 和 SP 的内容与第一个例子相同,指令“CALL @RP0”运行的结果基本相同,除了堆栈
0001H 的内容是 49H(因为是 2 字节指令),然后 PC 装载数值 3521H,并顺序执行指令。如果
PC 和堆栈指针的内容与第一个例子相同,如果程序抵制 0040H 的内容为 35H,41H 的内容为
21H,指令“CALL #40H”产生和第二个例子相同的结果。
6-26
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CCF — 进位标志位取反 (Complement Carry Flag)
CCF
操作:
C  NOT C
进位标志 C 取反。如果C=“1”,进位标志变成 0;如果C=“0”,进位标志变成 1。
标志位:
C: 取反.
其他的标志位不受影响
格式:
opc
编程实例:
字节数
时钟周期
指令代码
(Hex)
1
4
EF
假设:进位标志C=“0”:
CCF
如果进位标志 C=“0”,指令 CCF 对该标志为取反,在标志位寄存器中,该位从“0”变成
“1”。
6-27
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CLR — 清零 (Clear)
CLR
dst
操作:
dst  "0"
目的操作数被清零。
标志位:
没有标志位受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
B0
R
4
B1
IR
假设: 寄存器 00H = 4FH, 寄存器 01H = 02H, 和寄存器 02H = 5EH:

CLR
00H
CLR
@01H 
寄存器 00H = 00H
寄存器 01H = 02H, 寄存器 02H = 00H
在寄存器寻址模式中,指令“CLR 00H”把目的寄存器 00H 的内容清零。在第二个例子中,指令
“CLR @01H”使用间接寄存器寻址模式,把寄存器 02H 清零。
6-28
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
COM — 取反 (complement)
COM
dst
操作:
dst  NOT dst
对目标地址的内容取反,所有的“1”变成“0”,所有的“0”变成“1”。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果为 0,被置 1;否则,被清 0
如果结果是负数,被置 1;否则,被清 0
总是被清 0
不受影响
不受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
60
R
4
61
IR
假设: R1 = 07H 和寄存器 07H = 0F1H:
COM
R1

R1 = 0F8H
COM
@R1

R1 = 07H, 寄存器 07H = 0EH
在第一个例子中,目的寄存器 R1 的内容是 07H,指令“COM R1”对R1的所有位取反,所有的逻
辑“1”变成逻辑“0”,所有的逻辑“0”变成逻辑“1”,结果为 0F8H。
在第二个例子中,应用间接寄存器寻址模式对目的寄存器 07H 的内容取反,结果为 0EH。
6-29
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CP — 比较 (Compare)
CP
dst,src
操作:
dst – src
源操作数和目的操作数作比较(相减),根据结果设置适当的标志位。源操作数和目的操作数均不受
影响。
标志位:
C:
Z:
S:
V:
D:
H:
如果源操作数大于目的操作数,被置 1;否则,被清 0
如果结果为 0,被置 1;否则,被清 0
如果结果是负数,被置 1;否则,被清 0
总是被清零
不受影响
不受影响
格式:
opc
dst |
src
opc
src
opc
编程实例:
dst
dst
字节数
时钟周期
指令代码
(Hex)
2
4
A2
r
r
6
A3
r
lr
6
A4
R
R
6
A5
R
IR
6
A6
R
IM
3
src
3
寻址模式
dst
src
1. 假设: R1 = 02H 和 R2 = 03H:
CP
R1,R2 
对 C 和 S 标志位置 1
目的寄存器 R1 的内容为 02H,源寄存器 R2 的内容为 03H,指令“CP R1,R2”把 R1 减去 R2,
因为产生了借位,结果是负数,所以 C 和 S 被置 1。
2. 假设: R1 = 05H 和 R2 = 0AH:
SKIP
CP
JP
INC
LD
R1,R2
UGE,SKIP
R1
R3,R1
在这个例子中,目的寄存器 R1 的内容是 05H,小于源寄存器 R2 的内容 0AH。指令“CP
R1,R2”使得 C =“1”,JP 指令没有跳转到 SKIP 处。当执行完指令“LD R3,R1”,寄存器 R3
的内容为 06H。
6-30
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CPIJE — 比较,增加一,若相等跳转 (Compare, Increment, and Jump on Equal)
CPIJE
dst,src,RA
操作:
If dst – src = "0", PC  PC + RA
Ir  Ir + 1
源操作数与目的操作数作比较 (相减)。若结果为“0”,则相对地址被叠加到 PC 上,从 PC 指向
的新地址开始执行程序。否则,继续执行 CPIJE 后面的指令。无论哪种情况下,在执行下一条指
令前,源指针增加 1。
标志位:
没有标志位受影响
格式:
opc
注释:
编程实例:
src
dst
RA
字节数
时钟周期
指令代码
(Hex)
3
12
C2
寻址模式
dst
src
r
Ir
执行时间是 18 个时钟周期(跳转)或者 16 个时钟周期(无跳转)
假设: R1 = 02H, R2 = 03H, 和寄存器 03H = 02H:
CPIJE R1,@R2,SKIP 
R2 = 04H, PC 跳转到地址 SKIP 处
在这个例子中,工作寄存器 R1 的内容是 02H,工作寄存器 R2 的内容是 03H,寄存器 03H 的内容
是 02H,指令“CPIJE R1,@R2,SKIP”比较@ R2 的内容 02H 和 02H,因为比较的结果是相等
的,跳转到新的 PC 地址 SKIP 处。源寄存器 R2 加 1 变成 04H。
记住 CPIJE 指令跳转的地址范围须介于 +127 至 -128 之间。
6-31
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CPIJNE — 比较,增加一,不等跳转 (Compare, Increment, Jump on Non-Equal)
CPIJNE
dst,src,RA
操作:
If dst – src "0", PC  PC + RA
Ir  Ir + 1
源操作数与目的操作数作比较(相减),如果结果不为“0”,则将相对地址叠加到 PC 上,从 PC 指
向的新地址开始执行程序。否则,继续执行 CPIJE 后面的指令。无论在哪种情况下,在执行下一
条指令前,源指针增加 1。
标志位:
没有标志位受影响
格式:
opc
注释:
编程实例:
src
dst
RA
字节数
时钟周期
指令代码
(Hex)
3
12
D2
寻址模式
dst
src
r
Ir
执行时间是 18 个时钟周期(跳转)或者 16 个时钟周期(无跳转)
假设: R1 = 02H, R2 = 03H, 和寄存器 03H = 04H:
CPIJNE R1,@R2,SKIP 
R2 = 04H, PC 跳转到地址 SKIP
在这个例子中,工作寄存器 R1 的内容是 02H,工作寄存器 R2 的内容是 03H,寄存器 03H 的内容
是 04H,指令“CPIJE R1,@R2,SKIP”比较 @R2 的内容 04H 和 02H,因为比较的结果是不相等
的,跳转到新的 PC 地址 SKIP 处。源寄存器 R2 加 1 变成 04H。
记住 CPIJNE 指令跳转的地址范围须介于 +127 至 -128 之间。
6-32
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
DA — 十进制调整 (Decimal Adjust)
DA
dst
操作:
dst  DA dst
在加法或者减法运算后,将结果调整为 2 个 4 位 BCD 码。对于加法(ADD,ADC)或者减法
(SUB,SBC)下面的表格指明了操作如何进行。
指令
DA前的
位7-4
进位标志
(十六进制)
0
0–9
0
0–9
00
0
0
0–8
0
A–F
06
0
0
0–9
1
0–3
06
0
ADD
0
A–F
0
0–9
60
1
ADC
0
9–F
0
A–F
66
1
0
A–F
1
0–3
66
1
1
0–2
0
0–9
60
1
1
0–2
0
A–F
66
1
1
0–3
1
0–3
66
1
0
0–9
0
0–9
00 = – 00
0
SUB
0
0–8
1
6–F
FA = – 06
0
SBC
1
7–F
0
0–9
A0 = – 60
1
1
6–F
1
6–F
9A = – 66
1
标志位:
C:
Z:
S:
V:
D:
H:
位3-0
DA前H标志
要增加的数字
(十六进制)
DA后的
进位标志
如果发生进位,被置 1;否则,被清 0
如果结果为 0,被置 1;否则,被清 0
如果结果是负数,被置 1;否则,被清 0
没有定义
不受影响
不受影响
格式:
opc
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
40
R
4
41
IR
6-33
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
DA — 十进制调整 (Decimal Adjust)
DA
(续)
编程实例:
假设:工作寄存器R0的内容是15(BCD),工作寄存器 R1 的内容是 27(BCD),地址 27H 的内
容是 46(BCD):
ADD
DA
R1,R0
R1
C  "0", H  "0", Bits 4–7 = 3, bits 0–3 = C, R1  3CH
R1  3CH + 06
;
;
如果用 BCD 数值 15 和 27 进行加法运算,结果是 27。然而结果是不对的,当加法的时候,使用的
是标准的二进制运算:
0001
+ 0010
0101
0111
0011
1100
15
27
=
3CH
DA 指令调整了运算结果,进而得到正确的结果:
0011
+ 0000
1100
0110
0100
0010
=
42
假设同样的数值,指令:
SUB
27H,R0 ;
C  "0", H  "0", Bits 4–7 = 3, bits 0–3 = 1
DA
@R1
@R1  31–0
;
执行的结果为 31(BCD),保存在地址 27H(@R1)。
6-34
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
DEC — 字节减1 (Decrement)
DEC
dst
操作:
dst  dst – 1
目的操作数的内容减 1
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果为 0,被置 1;否则,被清 0
如果结果是负数,被置 1;否则,被清 0
如果结果溢出,被置 1;否则,被清 0
不受影响
不受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
00
R
4
01
IR
假设: R1 = 03H 和寄存器 03H = 10H:
DEC
R1

R1 = 02H
DEC
@R1

寄存器 03H = 0FH
在第一个例子中,如果工作寄存器 R1 的内容是 03H,值令“DEC R1”将该 16 进制数减 1,结果
为 02H。在第二个例子中,“DEC @R1”将数值 10H 减 1,得到 0FH,保存在地址 03H。
6-35
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
DECW — 字减1 (Decrement Word)
DECW
dst
操作:
dst  dst – 1
目的地址(须为偶数)的内容减 1,把操作数视为 16 位数据。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果为 0,被置 1;否则,被清 0
如果结果是负数,被置 1;否则,被清 0
如果有溢出,被置 1;否则,被清 0
不受影响
不受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
8
80
RR
8
81
IR
假设:R0 = 12H, R1 = 34H, R2 = 30H, 寄存器 30H = 0FH, 和寄存器 31H = 21H:
DECW RR0

R0 = 12H, R1 = 33H
DECW @R2

寄存器 30H = 0FH, 寄存器 31H = 20H
在第一个例子中,目的寄存器 R0 内容是 12H,寄存器 R1 内容 34H,指令“DECW RR0”把
R1,R0 当作 16 位数,减 1 以后,得到的结果为 33H。
注释:
当 DECW 指令与 Z 标志一起使用时,可能导致系统错误。为避免这个问题,推荐按照如下方法来
使用 DECW 指令:
LOOP: DECW RR0
6-36
LD
R2,R1
OR
R2,R0
JR
NZ,LOOP
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
DI — 屏蔽全局中断 (Disable Interrupts)
DI
操作:
SYM (0)  0
系统模式控制寄存器的位 0,SYM.0 被清零,将禁止全局中断。中断请求仍然会置起相应的中断悬
挂标志,但 CPU 不会响应中断服务程序,因为中断处理被屏蔽了。
标志位:
没有标志位受影响
格式:
opc
编程实例:
字节数
时钟周期
指令代码
(Hex)
1
4
8F
假设: SYM = 01H:
DI
如果 SYM 寄存器的值是 01H,指令 DI 将清零 SYM.0,屏蔽所有的中断处理。
在改变 IMR、中断标志位、中断源控制寄存器之前,确保 DI 状态。
6-37
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
DIV — 无符号除法(Unsigned Divide)
DIV
dst,src
操作:
dst ÷ src
dst (UPPER)  REMAINDER
dst (LOWER)  QUOTIENT
目的操作数(16 位)除以源操作数(8 位),商(8 位)保存在目的操作数的低字节,余数(8
位)则保存在目的操作数的高字节。如果商  28,保存在目的操作数高低字节的商和余数是不正确
的。所有的操作数都是无符号整数。
标志位:
C:
Z:
S:
V:
D:
H:
如果V标志被设置并且商在 28 和 29 –1范围之间,被置 1;否则,被清 0。
如果除数或者商 =“0”,被置 1;否则,被清 0。
如果商的最高位 =“1”,被置 1;否则,被清 0。
如果商  28 或者除数 =“0”,被置 1;否则,被清 0。
不受影响
不受影响。
格式:
opc
src
dst
字节数
时钟周期
指令代码
(Hex)
3
26/10*
94
RR
R
26/10*
95
RR
IR
26/10*
96
RR
IM
*注释:
如果除数为 0,运行时间需要 10 个时钟周期;其他情况下,执行时间为 26 个时钟周期。
编程实例:
假设: R0 = 10H, R1 = 03H, R2 = 40H, 寄存器 40H = 80H:
DIV
RR0,R2

R0 = 03H, R1 = 40H
DIV
RR0,@R2

R0 = 03H, R1 = 20H
DIV
RR0,#20H

R0 = 03H, R1 = 80H
寻址模式
dst
src
在第一个例子中,目的寄存器 RR0 的内容是 10H(R0)和 03H(R1),寄存器 R2 的内容是
40H。指令“DIV RR0,R2”将 16 位 RR0 被除数除以 8 位除数 R2,除法运算后,R0 内容为
03H,R1 的内容为 40H。8 位余数保存在目的寄存器 RR0 的上半部分(R0),商则保存在下半部分
(R1)。
6-38
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
DJNZ — 减1,如果非零,跳转 (Decrement and Jump if Non-Zero)
DJNZ
r,dst
操作:
r  r – 1
If r  0, PC  PC + dst
作为计数器的工作寄存器值首先减 1,如果结果不为“0”,相对地址被累加到 PC,然后程序跳转
到新的地址执行。相对地址的范围是 +127 至 -128,PC 的初始值是紧跟在 DJNZ 指令后面的指令
地址。
注释:
使用 DJNZ 指令的时候,被用来做计数器的工作寄存器必须通过 SRP,SRP0,SRP1 指令设置为
0C0H~0C1H 中的一个。
标志位:
没有标志位受影响
格式:
字节数
r | opc
dst
2
时钟周期
8 (jump taken)
8 (no jump)
编程实例:
假设:
R1 = 02H 和 LOOP 是相对地址的地址标志符:
LOOP
SRP
#0C0H
DJNZ
R1,LOOP
指令代码
(Hex)
rA
寻址模式
dst
RA
r = 0 to F
指令 DJNZ 经常被用在循环程序中。大多数情况下,用地址标号而非数字相对地址来做目的操作
数。在这个例子中,工作寄存器 R1 内容是 02H,LOOP 是相对地址的标号。
指令“DJNZ R1, LOOP”首先将寄存器 R1 减 1,得到结果 01H,因为减 1 后 R1 的内容非
“0”,程序将跳转到标号 LOOP 指向的地址执行。
6-39
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
EI — 使能全局中断 (Enable Interrupts)
EI
操作:
SYM (0)  1
EI 指令对系统模式寄存器(SYM)的最低位 SYM.0 置 1,这将允许响应中断服务程序(假定该中断具
有最高优先级)。如果中断处理被屏蔽(通过执行 DI)时,又发生中断,可通过执行EI指令,来执
行中断服务程序。
标志位:
没有标志位受影响
格式:
Opc
编程实例:
字节数
时钟周期
指令代码
(Hex)
1
4
9F
假设: SYM = 00H:
EI
如果 SYM 寄存器的内容是 00H,也就是说,全局中断被屏蔽,执行指令“EI”将把SYM寄存器设
置为 01H,使能所有中断(SYM.0 是全局中断的使能位)。
6-40
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
ENTER — 进入 (Enter)
ENTER
操作:
SP
@SP
IP
PC
IP





SP – 2
IP
PC
@IP
IP + 2
这条指令在执行线性代码语言时非常有用。指令指针的内容压入堆栈,然后把程序计数器(PC)
的值写入指令指针,程序存储器中指令指针所指向的字数据载入 PC,并且指令指针的值增加 2。
标志位:
没有标志位受影响
格式:
字节数
时钟周期
指令代码
(Hex)
1
14
1F
opc
编程实例:
下图给出了一个如何使用 ENTER 指令的例子。
Before
Address
IP
After
Data
Address
0050
IP
Address
PC
0040
SP
0022
22
Data
Stack
40
41
42
43
Data
0043
Data
Enter
Address H
Address L
Address H
Memory
1F
01
10
Address
PC
0110
SP
0020
20
21
22
IPH
IPL
Data
40
41
42
43
00
50
110
Data
Enter
Address H
Address L
Address H
1F
01
10
Routine
Memory
Stack
6-41
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
EXIT — 退出 (Exit)
EXIT
操作:




IP
SP
PC
IP
@SP
SP + 2
@IP
IP + 2
这条指令在执行线性代码语言时非常有用。被压入堆栈的值弹出并载入指令指针,程序存储器中被
指令指针指向的字数据载入程序计数器,并且指令指针的值增加 2。
标志位:
没有标志位受影响
格式:
字节数
时钟周期
指令代码 (Hex)
1
14 (内部堆栈)
2F
opc
16 (外部堆栈)
编程实例:
下图给出了一个如何使用 EXIT 指令的例子。
Before
Address
IP
After
Data
Address
0050
IP
Address
PC
SP
0022
20
21
22
IPH
IPL
Data
Stack
Address
PC
140
6-42
Data
0040
50
51
00
50
Data
0052
PCL old
PCH
Exit
Memory
Data
0060
60
00
60
SP
0022
22
Data
Main
2F
Stack
Memory
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
IDLE — 空闲指令 (Idle Operation)
IDLE
操作:
(见描述)
IDLE 指令将停止 CPU 时钟但允许系统时钟继续工作。IDLE 模式可以被中断请求(IRQ)或者是
外部复位操作唤醒。
在应用程序中,IDLE 指令后必须立即执行至少 3 个 NOP 指令。这是为了保证在下一条指令执行之
前,系统时钟有足够的时间间隔来稳定时钟信号。如果在 IDLE 指令后没有 3 个或更多个的 NOP
指令,内部总线的悬浮状态将导致漏电流的产生。
标志位:
没有标志位受影响
格式:
opc
编程实例:
字节数
时钟周期
指令代码
(Hex)
1
4
6F
寻址模式
dst
src
–
–
指令
IDLE
NOP
NOP
NOP
; 停止 CPU 时钟但不停系统时钟
6-43
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
INC — 加1 (Increment)
INC
dst
操作:
dst  dst + 1
目标操作数的内容增加1
标志位:
没有影响
如果结果为“0”则置 1;否则清零
如果结果为负数则置 1;否则清零
如果发生溢出则置 1;否则清零
没有影响
没有影响
C:
Z:
S:
V:
D:
H:
格式:
dst | opc
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
1
4
rE
r
r = 0 到
F
opc
编程实例:
dst
2
假如:
R0 = 1BH, 寄存器 00H = 0CH, 寄存器 1BH = 0FH:
INC
R0

R0 = 1CH
INC
00H

寄存器 00H = 0DH
INC
@R0

R0 = 1BH, 寄存器 01H = 10H
4
20
R
4
21
IR
在第一个例子中,如果目标工作寄存器R0的值为1BH,那么语句“INC R0”将 R0 的值变为1CH。
第二个例子演示了 INC 指令对寄存器 00H 产生的效果,假定寄存器的值为 0CH。
第三个例子中,INC 指令用在间接寄存器(IR)寻址模式中,将寄存器 1BH 的值由 0FH 变为
10H。
6-44
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
INCW — 字加1 (Increment Word)
INCW
dst
操作:
dst  dst + 1
目标操作数(必须是偶地址)中的一个字节和下一地址中的字节数据合在一起作为一个 16 位数
据,整个 16 位的数据增加 1
标志位:
C:
Z:
S:
V:
D:
H:
没有影响
如果结果为“0”则置 1;否则清零
如果结果为负数则置 1;否则清零
如果发生溢出则置 1;否则清零
没有影响
没有影响
格式:
opc
编程实例:
假如:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
8
A0
RR
8
A1
IR
R0 = 1AH, R1 = 02H, 寄存器 02H = 0FH, 寄存器 03H = 0FFH:
INCW RR0

R0 = 1AH, R1 = 03H
INCW @R1

寄存器 02H = 10H, 寄存器 03H = 00H
在第一个例子中,工作寄存器对 RR0 的内容是 1AH(R0) 和 02H(R1)。语句“INCW RR0”将16
位的目标数据加 1,使寄存器 R1 的值变为 03H。第二个例子中,语句“INCW @R1”用间接寄存
器(IR)寻址模式将寄存器 03H 的值从 0FFH 变为 00H,寄存器 02H 的值从 0FH 变为 10H。
注释:
如果 Zero(Z)标志位(标志位.6)与 INCW 指令一起使用,可能会发生冲突而导致系统错误。为
了避免这个问题,建议按下面的方法使用 INCW 指令:
LOOP:
INCW
LD
OR
JR
RR0
R2,R1
R2,R0
NZ,LOOP
6-45
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
IRET — 中断返回 (Interrupt Return)
IRET
IRET (正常)
IRET (快速)
操作:
标志位  @SP
SP  SP + 1
PC  @SP
SP  SP + 2
SYM(0)  1
PC  IP
标志位  标志位'
FIS  0
该指令用在中断服务程序的末尾。该指令将恢复标志寄存器和程序计数器的值,同时重新使能全局
中断。只有在快速中断状态位(FIS,标志位寄存器位 1,0D5H)被清零时(=“0”),才执行
“正常IRET”。快速中断产生时,对于在中断服务程序开始时被置 1 的 FIS 位,IRET 会将其清
零。
标志位:
所有标志位恢复到初始状态(即中断发生以前的状态)
格式:
IRET
(正常)
字节数
时钟周期
指令代码 (Hex)
Opc
1
10 (内部堆栈)
BF
12 (外部堆栈)
编程实例:
IRET
(快速)
字节数
时钟周期
指令代码 (Hex)
opc
1
6
BF
在下图中,中断使能之前,在主程序中将指令指针初始化为 100H。中断发生时,程序计数器和指
令指针的内容相交换,这使得 PC 跳转到地址 100H 而IP则保存返回地址。中断服务程序的最后一
条指令通常是跳转到地址 FFH 处的 IRET。
这将使指令指针“重新”被赋值为 100H,且程序计数器跳回到主程序。现在,下一个中断可以发
生了,IP 寄存器的值仍然为 100H。
0H
FFH
100H
IRET
Interrupt
Service
Routine
JP to FFH
FFFFH
注释:
6-46
上面快速中断的例子中,如果最后的指令不是跳转到 IRET,那么必须注意最后两条指令的顺序。
在 IRET 指令之后,不可紧跟用于中断状态清除的指令(例如 IPR 寄存器清 0)。
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
JP — 跳转 (Jump)
JP
cc,dst
(条件跳转)
JP
dst
(无条件跳转)
操作:
如果 cc 为真,PC  dst
如果转移条件为真,那么条件跳转指令把系统控制交给目标地址;否则执行紧跟 JP 指令之后的指
令。无条件跳转指令只是简单的用目标地址替换 PC 的内容,然后程序控制交给由 PC 指定的语
句。
标志位:
没有标志位受影响
格式: (1)
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
3
8
ccD
DA
(2)
cc | opc
dst
cc = 0 to F
opc
dst
2
8
30
IRR
注释:
1. 3 字节格式用于条件跳转,2 字节格式用于无条件跳转
2. 在 3 字节指令格式(条件跳转)的第一字节中,条件码和指令代码各占 4 位
编程实例:
假如:
进位标志 (C) =“1”, 寄存器 00 = 01H, 寄存器 01 = 20H:
JP
C,LABEL_W

LABEL_W = 1000H, PC = 1000H
JP
@00H

PC = 0120H
第一个例子是条件跳转 JP。假定进位标志为“1”,指令“JP C,LABEL_W”将 PC 的值替换为
1000H 并且跳转到该地址。如果标志位没有被置 1,那么程序将立即转到紧跟 JP 后的那条指令。
第二个例子为无条件跳转 JP。指令“JP @00”将 PC 的内容替换为寄存器对 00H 和 01H 的值,
亦即 0120H。
6-47
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
JR — 相对跳转指令 (Jump Relative)
JR
cc,dst
操作:
如果 cc 为真,PC  PC + dst
如果转移条件为真,那么程序计数器值加上相对地址,并把程序控制转到该地址处的指令;否则执
行紧跟 JR 指令后的那条指令(见本章:转移条件码列表)。
相对地址的范围是 -128 ~ +127,并且程序计数器的初值被认为是紧跟JR指令之后的第一条指令地
址。
标志位:
没有标志位受影响
格式:
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
6
ccB
RA
(1)
cc | opc
dst
cc = 0 到 F
注释:
编程实例:
2 字节指令格式中的第一个字节中,条件码和指令代码各占 4 位
假如: 进位标志位 = “1” 并且 LABEL_X = 1FF7H:
JR
C,LABEL_X

PC = 1FF7H
如果进位标志位为“1”(也就是,转移条件为真),指令“JR C,LABEL_X”会将程序控制交给
当前 PC 指向的地址;否则,执行紧跟 JR 后的程序指令。
6-48
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LD — 传送数据 (Load)
LD
dst,src
操作:
dst  src
源操作数的内容将赋给目标操作数。源操作数的内容不受影响。
标志位:
没有标志位受影响
格式:
dst | opc
src | opc
src
dst
字节数
时钟周期
指令代码
(Hex)
2
4
rC
r
IM
4
r8
r
R
4
r9
R
r
2
寻址模式
dst
src
r=0到F
opc
opc
opc
dst | src
src
dst
2
dst
src
3
3
4
C7
r
lr
4
D7
Ir
r
6
E4
R
R
6
E5
R
IR
6
E6
R
IM
6
D6
IR
IM
opc
src
dst
3
6
F5
IR
R
opc
dst | src
x
3
6
87
r
x [r]
opc
src | dst
x
3
6
97
x [r]
r
6-49
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LD — 传送数据 (Load)
LD
(续)
编程实例:
假如: R0 = 01H, R1 = 0AH, 寄存器 00H = 01H, 寄存器 01H = 20H,
寄存器 02H = 02H, LOOP = 30H, 寄存器 3AH = 0FFH:
6-50
LD
R0,#10H

R0 = 10H
LD
R0,01H

R0 = 20H, 寄存器 01H = 20H
LD
01H,R0

寄存器 01H = 01H, R0 = 01H
LD
R1,@R0

R1 = 20H, R0 = 01H
LD
@R0,R1

R0 = 01H, R1 = 0AH, 寄存器 01H = 0AH
LD
00H,01H

寄存器 00H = 20H, 寄存器 01H = 20H
LD
02H,@00H

寄存器 02H = 20H, 寄存器 00H = 01H
LD
00H,#0AH

寄存器 00H = 0AH
LD
@00H,#10H

寄存器 00H = 01H, 寄存器 01H = 10H
LD
@00H,02H

寄存器 00H = 01H, 寄存器 01H = 02, 寄存器 02H = 02H
LD
R0,#LOOP[R1] 
R0 = 0FFH, R1 = 0AH
LD
#LOOP[R0],R1 
寄存器 31H = 0AH, R0 = 01H, R1 = 0AH
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LDB — 传送位数据 (Load Bit)
LDB
dst,src.b
LDB
dst.b,src
操作:
dst(0)  src(b)
或
dst(b)  src(0)
源操作数的指定位载入目标操作数的最低位,或者源操作数的最低位载入目标操作数的指定位。目
标操作数的其它位都不受影响,源操作数也不受影响。
标志位:
没有标志位受影响
格式:
时钟周期
指令代码
(Hex)
寻址模式
dst
src
opc
dst | b | 0
src
3
6
47
r0
Rb
opc
src | b | 1
dst
3
6
47
Rb
r0
注释:
编程实例:
字节数
指令格式的第二个字节中,目标(或源)地址占 4 位,位地址“b”占 3 位,LSB 地址值占 1 位
假如: R0 = 06H ,通用寄存器 00H = 05H:
LDB
R0,00H.2

R0 = 07H, 寄存器 00H = 05H
LDB
00H.0,R0

R0 = 06H, 寄存器 00H = 04H
第一个例子中,目标工作寄存器 R0 的值为 06H,源寄存器 00H 的值为 05H。指令“ R0,00h.2”
将寄存器 00H 中的第二位(bit 2)载入寄存器 R0 的最低位,R0 的值变为 07H。
第二个例子中,目标寄存器是 00H。指令“LD 00H.0,R0”将工作寄存器 R0 的最低位载入目标寄
存器 00H 的指定位(bit 0),寄存器 00H 的值变为 04H。
6-51
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LDC/LDE — 传送程序/外部数据存储器数据 (Load Memory)
LDC/LDE
dst,src
操作:
dst  src
这条指令从程序或外部数据存储器中装载一个字节数据到工作寄存器,或者相反。源操作数不受影
响。指令 LDC 用作程序存储器,LDE 用作外部数据存储器。对于程序存储器,编译器将“Irr”或
“rr”的值编译成偶地址,而对于外部数据存储器则编译成奇地址。
标志位:
没有标志位受影响
格式:
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
src
1.
opc
dst | src
2
10
C3
r
Irr
2.
opc
src | dst
2
10
D3
Irr
r
3.
opc
dst | src
XS
3
12
E7
r
XS [rr]
4.
opc
src | dst
XS
3
12
F7
XS [rr]
r
5.
opc
dst | src
XLL
XLH
4
14
A7
r
XL [rr]
6.
opc
src | dst
XLL
XLH
4
14
B7
XL [rr]
r
7.
opc
dst | 0000
DAL
DAH
4
14
A7
r
DA
8.
opc
src | 0000
DAL
DAH
4
14
B7
DA
r
9.
opc
dst | 0001
DAL
DAH
4
14
A7
r
DA
10.
opc
src | 0001
DAL
DAH
4
14
B7
DA
r
注释:
1. 格式 5 和 6 的源操作数 [src] 或工作寄存器对 [rr] 不能使用工作寄存器对 0–1
2. 格式 3 和 4 的目标地址“XS[rr]”和源地址“XS[rr]”均为一个字节
3. 格式 3 和 4 的目标地址“XL[rr]”和源地址“XL[rr]”均为两个字节
4. 格式 7 和 8 的 DA 和 r 源操作数值用于访问程序存储器,格式 9 和 10 则用于访问外部数据存储器
5. LDE 指令可用于读/写 64K 字节的外部数据存储器。
6-52
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
指令集
LDC/LDE — 传送程序/外部数据存储器数据 (Load Memory)
LDC/LDE
(续)
编程实例:
假如: R0 = 11H, R1 = 34H, R2 = 01H, R3 = 04H; 程序存储器空间中
0103H = 4FH, 0104H = 1A, 0105H = 6DH, 1104H = 88H. 外部数据存储空间中
0103H = 5FH, 0104H = 2AH, 0105H = 7DH, 1104H = 98H:
LDC
R0,@RR2
; R0  程序存储器地址 0104H 的内容
; R0 = 1AH, R2 = 01H, R3 = 04H
LDE
R0,@RR2
; R0  外部数据存储器地址 0104H 的内容
; R0 = 2AH, R2 = 01H, R3 = 04H
LDC (注释) @RR2,R0
; 11H (R0 的内容) 载入程序存储器地址 0104H (RR2)
; 工作寄存器 R0, R2, R3  没有变化
LDE
@RR2,R0
; 11H (R0 的内容) 载入外部数据存储器地址 0104H (RR2)
; 工作寄存器 R0, R2, R3  没有变化
LDC
R0,#01H[RR2]
; R0  程序存储器地址 0105H 的内容
; (01H + RR2),
; R0 = 6DH, R2 = 01H, R3 = 04H
LDE
R0,#01H[RR2]
; R0  外部数据存储器地址 0105H 的内容
; (01H + RR2), R0 = 7DH, R2 = 01H, R3 = 04H
LDC (注释) #01H[RR2],R0
; 11H (R0 的内容) 载入程序存储器地址
; 0105H (01H + 0104H)
LDE
#01H[RR2],R0
; 11H (R0 的内容) 载入外部数据存储器地址
; 0105H (01H + 0104H)
LDC
R0,#1000H[RR2] ; R0  程序存储器地址 1104H 的内容
; (1000H + 0104H), R0 = 88H, R2 = 01H, R3 = 04H
LDE
R0,#1000H[RR2] ; R0  外部数据存储器地址 1104H 的内容
; (1000H + 0104H), R0 = 98H, R2 = 01H, R3 = 04H
LDC
R0,1104H
; R0  程序存储器地址 1104H 的内容, R0 = 88H
LDE
R0,1104H
; R0  外部数据存储器地址 1104H 的内容
; R0 = 98H
LDC (注释) 1105H,R0
; 11H (R0 的内容) 载入程序存储器地址
; 1105H, (1105H)  11H
LDE
; 11H (R0 的内容) 载入外部数据存储器地址
; 1105H, (1105H)  11H
注释:
1105H,R0
掩膜 ROM 类型的器件不支持 LDC/LDE 指令。
6-53
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LDCD/LDED — 传送数据之后地址减1 (Load Memory and Decrement)
LDCD/LDED
dst,src
操作:
dst  src
rr  rr – 1
该指令用于用户栈或在程序/数据存储器与寄存器卷之间批量传送数据。存储器的地址由工作寄存器
对指定。源地址的内容载入目标地址,然后存储器地址自动减1,源操作数的内容不变。
LDCD 对应程序存储器,而 LDED 对应外部数据存储器。对于程序存储器,编译器将“Irr”或
“rr”的值编译成偶地址,对于数据存储器则编译成奇地址。
标志位:
没有标志位受影响
格式:
opc
编程实例:
dst | src
字节数
时钟周期
指令代码
(Hex)
2
10
E2
寻址模式
dst
src
r
假如: R6 = 10H, R7 = 33H, R8 = 12H, 程序存储器地址 1033H = 0CDH, 外部数据存储地址
1033H = 0DDH:
LDCD
R8,@RR6
; 0CDH (程序存储器 1033H 的内容) 载入R8
; RR6 减1
; R8 = 0CDH, R6 = 10H, R7 = 32H (RR6  RR6 – 1)
LDED
R8,@RR6
; 0DDH (数据存储器地址 1033H 的内容) 载入R8
; RR6 减1 (RR6  RR6 – 1)
; R8 = 0DDH, R6 = 10H, R7 = 32H
6-54
Irr
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LDCI/LDEI — 传送数据后地址加1 (Load Memory and Increment)
LDCI/LDEI
dst,src
操作:
dst  src
rr  rr + 1
该指令用于用户栈或在程序/数据存储器与寄存器卷之间批量传送数据。存储器的地址由工作寄存器
对指定。源地址的内容载入目标地址,然后存储器地址自动加 1,源操作数的内容不变。
LDCI 对应程序存储器,而 LDEI 对应外部数据存储器。对于程序存储器,编译器将“Irr”或“rr”
的值编译成偶地址,对于数据存储器则编译成奇地址。
标志位:
没有标志位受影响
格式:
opc
编程实例:
dst | src
字节数
时钟周期
指令代码
(Hex)
2
10
E3
寻址模式
dst
src
r
Irr
假如: R6 = 10H, R7 = 33H, R8 = 12H, 程序存储器地址 1033H = 0CDH, 1034H = 0C5H;
外部数据存储器地址 1033H = 0DDH, 1034H = 0D5H:
LDCI
R8,@RR6
; 0CDH (程序存储器地址 1033H 的内容) 载入R8
; RR6 加1 (RR6  RR6 + 1)
; R8 = 0CDH, R6 = 10H, R7 = 34H
LDEI
R8,@RR6
; 0DDH (数据存储器地址 1033H 的内容) 载入R8
; RR6 加1 (RR6  RR6 + 1)
; R8 = 0DDH, R6 = 10H, R7 = 34H
6-55
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LDCPD/LDEPD — 传送数据前地址减1 (Load Memory with Pre-Decrement)
LDCPD/
LDEPD
dst,src
操作:
rr  rr – 1
dst  src
该指令用于用户栈或在程序/数据存储器和寄存器卷之间批量传送数据。存储器的地址由工作寄存器
对指定并首先减 1。之后源地址的内容送入目标地址,源操作数的内容不变。
LDCPD 对应程序存储器,LDEPD 对应外部数据存储器。对于程序存储器,编译器将“Irr”或
“rr”的值编译成偶地址,而对于数据存储器则编译成奇地址。
标志位:
没有标志位受影响
格式:
opc
编程实例:
6-56
src | dst
字节数
时钟周期
指令代码
(Hex)
2
14
F2
寻址模式
dst
src
Irr
r
假如: R0 = 77H, R6 = 30H, R7 = 00H:
LDCPD
@RR6,R0
; (RR6  RR6 – 1)
; 77H (R0 的内容) 载入程序存储器地址 2FFFH (3000H – 1H)
; R0 = 77H, R6 = 2FH, R7 = 0FFH
LDEPD
@RR6,R0
; (RR6  RR6 – 1)
; 77H (R0 的内容) 载入外部数据存储器地址 2FFFH (3000H – 1H)
; R0 = 77H, R6 = 2FH, R7 = 0FFH
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LDCPI/LDEPI — 传送数据前地址加1 (Load Memory with Pre-Increment)
LDCPI/
LDEPI
dst,src
操作:
rr  rr + 1
dst  src
该指令用于用户栈或在程序/数据存储器与寄存器卷之间批量传送数据。存储器的地址由工作寄存器
对指定并首先加 1。之后源地址的内容载入目标地址,源操作数的内容不变。
LDCPI 对应程序存储器,LDEPI 对应外部数据存储器。对于程序存储器,编译器将“Irr”或“rr”
的值编译成偶地址,而对于数据存储器则编译成奇地址。
标志位:
没有标志位受影响
格式:
opc
编程实例:
src | dst
字节数
时钟周期
指令代码
(Hex)
2
14
F3
寻址模式
dst
src
Irr
r
假如: R0 = 7FH, R6 = 21H, R7 = 0FFH:
LDCPI
@RR6,R0
; (RR6  RR6 + 1)
; 7FH (R0 的内容) 载入程序存储器地址 2200H (21FFH + 1H)
; R0 = 7FH, R6 = 22H, R7 = 00H
LDEPI
@RR6,R0
; (RR6  RR6 + 1)
; 7FH (R0 的内容) 载入外部数据存储器地址 2200H (21FFH + 1H)
; R0 = 7FH, R6 = 22H, R7 = 00H
6-57
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LDW — 传送字数据 (Load Word)
LDW
dst,src
操作:
dst  src
源操作数的内容(字)载入目标操作数。源操作数内容不变。
标志位:
没有标志位受影响
格式:
opc
opc
编程实例:
src
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
3
8
C4
RR
RR
8
C5
RR
IR
8
C6
RR
IML
4
寻址模式
dst
src
假如: R4 = 06H, R5 = 1CH, R6 = 05H, R7 = 02H, 寄存器 00H = 1AH,
寄存器 01H = 02H, 寄存器 02H = 03H, 寄存器 03H = 0FH:
LDW
RR6,RR4

R6 = 06H, R7 = 1CH, R4 = 06H, R5 = 1CH
LDW
00H,02H

寄存器 00H = 03H, 寄存器 01H = 0FH,
寄存器 02H = 03H, 寄存器 03H = 0FH
LDW
RR2,@R7

R2 = 03H, R3 = 0FH,
LDW
04H,@01H

寄存器 04H = 03H, 寄存器 05H = 0FH
LDW
RR6,#1234H

R6 = 12H, R7 = 34H
LDW
02H,#0FEDH

寄存器 02H = 0FH, 寄存器 03H = 0EDH
第二个例子中,请注意指令“LDW 00H,02H”将源寄存器 02H 和 03H 中的内容载入目标寄存器
00H和 01H,使通用寄存器 00H 中的值变为 03H,01H 中的值变为 0FH。
其它的例子演示了如何通过不用的寻址模式和格式来使用 LDW 指令。
6-58
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
MULT — 无符号数乘法 ( Unisigned Multiply)
MULT
dst,src
操作:
dst  dst  src
8 位目标操作数(寄存器对中的偶地址寄存器)与源操作数(8位)相乘,乘积(16位)保存在目
标地址指定的寄存器对中。两个操作数都为无符号整型数据。
标志位:
C:
Z:
S:
V:
D:
H:
如果结果 >255 则置 1;否则清零
如果结果为“0”则置 1;否则清零
如果结果的最高为“1”则置1;否则清零
清零
不受影响
不受影响
格式:
opc
编程实例:
src
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
src
3
22
84
RR
R
22
85
RR
IR
22
86
RR
IM
假如: 寄存器 00H = 20H, 寄存器 01H = 03H, 寄存器02H = 09H, 寄存器 03H = 06H:
MULT
00H, 02H

寄存器 00H = 01H, 寄存器 01H = 20H, 寄存器 02H = 09H
MULT
00H, @01H

寄存器 00H = 00H, 寄存器 01H = 0C0H
MULT
00H, #30H

寄存器 00H = 06H, 寄存器 01H = 00H
第一个例子中,指令“MULT 00H,02H”将 8 位目标操作数(寄存器对 00H,01H 中的 00H)与
源寄存器 02H 中的操作数(09H)相乘。16 位的乘积,0120H,保存在寄存器对 00H,01H中。
6-59
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
NEXT — Next 指令
NEXT
PC  @ IP
操作:
IP  IP + 2
NEXT 指令在执行线性代码语言时非常有用。程序存储器中指令指针所指向的字送入 PC,并且指
令指针增加 2。
标志位:
没有标志位受影响
格式:
字节数
时钟周期
指令代码
(Hex)
1
10
0F
opc
编程实例:
下图是一个如何使用 NEXT 指令的例子。
Before
Address
1P
After
Data
Address
0043
1P
Address
PC
0120
43
44
45
120
Data
Address H
Address L
Address H
Next
Memory
6-60
Data
0045
01
30
Address
PC
0130
43
44
45
130
Data
Address H
Address L
Address H
Routine
Memory
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
NOP — 空操作 (No Operation)
NOP
操作:
CPU 执行这条指令时,不做任何操作。通常用顺序执行一个或多个 NOP 指令来实现一定时长的延
时。
标志位:
没有标志位受影响
格式:
opc
编程实例:
字节数
时钟周期
指令代码
(Hex)
1
4
FF
在程序中执行 NOP 指令时,没有任何操作发生,只是一个指令执行时间的延时。
6-61
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
OR — 逻辑或 (Logical OR)
OR
dst,src
操作:
dst  dst OR src
源操作数与目标操作数进行逻辑或,结果存放在目标操作数。源操作数的值不受影响。只要两个操
作数中任一个的相应位为“1”,那么或的结果就是“1”,否则为“0”。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果是“0”则置 1;否则清零
如果结果的第 7 位(bit 7)为“1”则置 1;否则清零
总是清零
不受影响
不受影响
格式:
opc
opc
opc
编程实例:
dst | src
src
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
2
4
42
r
r
6
43
r
lr
6
44
R
R
6
45
R
IR
6
46
R
IM
3
3
寻址模式
dst
src
假如: R0 = 15H, R1 = 2AH, R2 = 01H, 寄存器 00H = 08H, 寄存器 01H = 37H, 寄存器
08H = 8AH:
OR
R0,R1

R0 = 3FH, R1 = 2AH
OR
R0,@R2

R0 = 37H, R2 = 01H, 寄存器 01H = 37H
OR
00H,01H

寄存器 00H = 3FH, 寄存器 01H = 37H
OR
01H,@00H

寄存器 00H = 08H, 寄存器 01H = 0BFH
OR
00H,#02H

寄存器 00H = 0AH
第一个例子中,如果工作寄存器 R0 的值是 15H,寄存器 R1 的值是 2AH,指令“OR R0,R1”将
寄存器 R0 和 R1 的内容进行逻辑或,并将结果(3FH)存在目标寄存器 R0。
其他的例子演示了如何通过不同的寻址模式和格式来使用逻辑或指令。
6-62
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
POP — 出栈 (Pop from Stack)
POP
dst
操作:
dst  @SP
SP  SP + 1
堆栈指针指定地址的内容被装入目标操作数,然后堆栈指针加1。
标志位:
没有标志位受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
8
50
R
8
51
IR
假如: 寄存器 00H = 01H, 寄存器 01H = 1BH, SPH (0D8H) = 00H, SPL (0D9H) = 0FBH,
堆栈寄存器 0FBH = 55H:
POP
00H

寄存器 00H = 55H, SP = 00FCH
POP
@00H

寄存器 00H = 01H, 寄存器 01H = 55H, SP = 00FCH
第一个例子中,通用寄存器 00H 的值为 01H。指令“POP 00H”将地址 00FBH 中的值(55H)送
入目标寄存器 00H,然后堆栈指针加 1。寄存器 00H 的值变为 55H,并且 SP 指向地址 00FCH。
6-63
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
POPUD — 弹出用户栈 (自减) (Pop User Stack (Drementing))
POPUD
dst,src
操作:
dst  src
IR  IR – 1
该指令用于寄存器卷中的用户自定义栈。用户栈指针指定地址的内容被载入目标寄存器,然后用户
栈指针减 1。
标志位:
没有标志位受影响
格式:
opc
编程实例:
src
dst
字节数
时钟周期
指令代码
(Hex)
3
8
92
寻址模式
dst
src
R
IR
假如: 寄存器 00H = 42H (用户栈指针寄存器), 寄存器 42H = 6FH, 寄存器 02H = 70H:
POPUD
02H,@00H

寄存器 00H = 41H, 寄存器 02H = 6FH, 寄存器 42H = 6FH
如果通用寄存器 00H 的值为42H,寄存器 42H 的值为 6FH,那么指令“POPUD 02H,@00H”将
寄存器 42H 的内容载入目标寄存器 02H,然后用户栈指针减 1,变成 41H。
6-64
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
POPUI — 弹出用户栈 (自增) (Pop User Stack (Incrementing))
POPUI
dst,src
操作:
dst  src
IR  IR + 1
该指令用于寄存器卷中的用户自定义栈。用户栈指针指定地址的内容载入目标寄存器,然后用户栈
指针加1。
标志位:
没有标志位受影响
格式:
opc
编程实例:
src
字节数
时钟周期
指令代码
(Hex)
3
8
93
dst
寻址模式
dst
src
R
IR
假如: 寄存器 00H = 01H, 寄存器 01H = 70H:
POPUI
02H,@00H

寄存器 00H = 02H, 寄存器 01H = 70H, 寄存器 02H = 70H
如果通用寄存器 00H 的值为 01H,寄存器 01H 的值为 70H,那么语句“POPUI 02H,@00H”将值
70H 载入目标通用寄存器 02H,然后用户栈指针(寄存器00H)加1,从 01H 变为 02H。
6-65
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
PUSH — 压栈 (Push to Stack)
PUSH
src
操作:
SP  SP – 1
@SP  src
PUSH 指令先将栈指针减 1,然后再将源操作数的内容载入减 1 后的栈地址。此操作将在栈顶置入
新的数值。
标志位:
没有标志位受影响
格式:
opc
src
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
8 (内部时钟)
70
R
71
IR
8 (外部时钟)
8 (内部时钟)
8 (外部时钟)
编程实例:
假如: 寄存器 40H = 4FH, 寄存器 4FH = 0AAH, SPH = 00H, SPL = 00H:
PUSH
40H

寄存器 40H = 4FH, 堆栈寄存器 0FFH = 4FH,
SPH = 0FFH, SPL = 0FFH
PUSH
@40H

寄存器 40H = 4FH, 寄存器 4FH = 0AAH, 堆栈寄存器
0FFH = 0AAH, SPH = 0FFH, SPL = 0FFH
第一个例子中,如果栈指针包含的内容为 0000H,通用寄存器 40H 的内容为 4FH,语句“PUSH
40H”使栈指针从 0000H 减为 0FFFFH,然后将寄存器 40H 的值载入地址 0FFFFH 中,即将这个
新的数值加入栈顶。
6-66
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
PUSHUD — 压入用户栈 (自减) Push User Stack (Decrementing)
PUSHUD
dst,src
操作:
IR  IR – 1
dst  src
该指令用于寄存器卷中的用户自定义栈。PUSHUD 先将用户栈指针减 1,然后将源操作数的内容载
入减1后的栈指针指向的寄存器。
标志位:
没有标志位受影响
格式:
opc
编程实例:
dst
src
字节数
时钟周期
指令代码
(Hex)
3
8
82
寻址模式
dst
src
IR
R
假如: 寄存器 00H = 03H, 寄存器 01H = 05H, 寄存器 02H = 1AH:
PUSHUD @00H,01H

寄存器 00H = 02H, 寄存器 01H = 05H, 寄存器 02H = 05H
如果用户栈指针(例如寄存器 00H)的值为 03H,语句“PUSHUD @00H,01H”使用户栈指针减
1,变为 02H。而寄存器 01H 的值,05H,则载入减 1 后的用户栈指针所指向的寄存器。
6-67
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
PUSHUI — 压入用户栈 (自增) Push User Stack (Incrementing)
PUSHUI
dst,src
操作:
IR  IR + 1
dst  src
该指令用于寄存器卷中的用户自定义栈。PUSHUI 先将用户栈指针加 1,然后将源操作数的内容载
入加1后的栈指针指向的寄存器。
标志位:
没有标志位受影响
格式:
opc
编程实例:
dst
src
字节数
时钟周期
指令代码
(Hex)
3
8
83
寻址模式
dst
src
IR
R
假如: 寄存器 00H = 03H, 寄存器 01H = 05H, 寄存器 04H = 2AH:
PUSHUI
@00H,01H

寄存器 00H = 04H, 寄存器 01H = 05H, 寄存器 04H = 05H
如果用户栈指针(例如寄存器 00H)的值为 03H,语句“PUSHUI @00H,01H”使用户栈指针加
1,变为 04H。而寄存器 01H 的值,05H,则载入加 1 后的用户栈指针所指向的寄存器。
6-68
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RCF — C清0 (Reset Carry Flag)
RCF
RCF
操作:
C  0
进/借位标志位被无条件清零。
标志位:
清除为“0”.
C:
其他标志位都不受影响
格式:
opc
编程实例:
字节数
时钟周期
指令代码
(Hex)
1
4
CF
假如: C =“1” 或 “0”:
指令 RCF 将进/借位标志位(C)清零。
6-69
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RET — 子程序返回 (Return)
RET
操作:
PC  @SP
SP  SP + 2
RET 指令通常被用来从 CALL 指令所调用的子程序中返回。栈指针指向的地址内容被弹出到程序计
数器中,下一条要执行的指令地址由程序计数器的新值指定。
标志位:
没有标志位被影响
格式:
opc
字节数
时钟周期
指令代码 (Hex)
1
8 (内部堆栈)
AF
10 (外部堆栈)
编程实例:
假如: SP = 00FCH, (SP) = 101AH, PC = 1234:
RET

PC = 101AH, SP = 00FEH
指令“RET”将堆栈指针 00FCH 中的内容(10H)弹出到程序计数器的高字节中,00FDH 中的内
容(1AH)弹出到 PC 的低字节,地址 101AH 中的指令被执行。堆栈指针现在指向地址 00FEH。
6-70
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RL — 左移(Rotate Left)
RL
dst
操作:
C  dst (7)
dst (0)  dst (7)
dst (n + 1)  dst (n), n = 0–6
目标操作数的内容左移一位,原来的第 7 位(bit 7)移到第0位(LSB)和C标志位中,如下图示:
7
0
C
标志位:
C:
Z:
S:
V:
D:
H:
如果从最高位(bit 7)移出的数为“1”,则置 1
如果结果为“0”则置1;否则清零
如果结果的第 7 位(bit 7)为“1”则置 1;否则清零
如果发生溢出则置 1;否则清零
不受影响
不受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
90
R
4
91
IR
假如: 寄存器 00H = 0AAH, 寄存器 01H = 02H, 寄存器 02H = 17H:
RL
00H

寄存器 00H = 55H, C =“1”
RL
@01H

寄存器 01H = 02H, 寄存器 02H = 2EH, C =“0”
第一个例子中,如果通用寄存器 00H 的值为 0AAH(10101010B),语句“RL 00H”将 0AAH 左
移一位,变为 55H(01010101B),并将进位和溢出标志置 1。
6-71
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RLC — 带进位左移(Rotate Left Through Carry)
RLC
dst
操作:
dst (0)  C
C  dst (7)
dst (n + 1)  dst (n), n = 0–6
目标操作数的内容通过 C 标志位左移一位,原来的第 7 位(bit 7)移到 C 标志位中,原来的 C 标
志位则移至第 0 位(LSB)。
7
0
C
标志位:
C:
Z:
S:
V:
D:
H:
如果从最高位(bit 7)移出的为“1”则置 1
如果结果为“0”则置 1;否则清零
如果结果的第 7 位(bit 7)为“1”则置 1;否则清零
如果发生溢出,也就是目标操作数的符号在移位中发生改变,则置 1;否则清零
不受影响
不受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
10
R
4
11
IR
假如: 寄存器 00H = 0AAH, 寄存器 01H = 02H, 寄存器 02H = 17H, C =“0”:
RLC
00H

寄存器 00H = 54H, C =“1”
RLC
@01H

寄存器 01H = 02H, 寄存器 02H = 2EH, C =“0”
第一个例子中,如果通用寄存器的值为 0AAH(10101010B),语句“RLC 00H”将 0AAH 左移一
位。原来的第 7 位(bit 7)将进位标志置 1,C 标志位原来的值则移至寄存器 00H 的第 0 位
(LSB),使寄存器的值变为 55H(01010101B)。寄存器 00H 的最高位 MSB 重新置 C 标志位
为“1”,并且将溢出标志位置 1。
6-72
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RR — 右移(Rotate Right)
RR
dst
操作:
C  dst (0)
dst (7)  dst (0)
dst (n dst (n + 1), n = 0–6
目标操作数的内容右移一位,原来的第 0 位(LSB)移到第 7 位(MSB)和 C 标志位中。
7
0
C
标志位:
C:
Z:
S:
V:
D:
H:
如果从第 0 位(LSB)移出的为“1”,则置 1
如果结果为“0”则置 1;否则清零
如果结果的第 7 位(bit 7)为“1”则置 1;否则清零
如果发生溢出,也就是目标操作数的符号在移位中发生改变,则置 1;否则清零
不受影响
不受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
E0
R
4
E1
IR
假如: 寄存器 00H = 31H, 寄存器 01H = 02H, 寄存器 02H = 17H:
RR
00H

寄存器 00H = 98H, C =“1”
RR
@01H

寄存器 01H = 02H, 寄存器 02H = 8BH, C =“1”
第一个例子中,如果通用寄存器 00H 的值为 31H(00110001B),语句“RR 00H”将 00H 的值
右移一位,原来第 0 位移至第 7 位,目标寄存器的值变为 98H(10011000B)。原来的第 0 位将
C 标志位置“1”,同时符号标志和溢出标志也被置“1”。
6-73
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RRC — 带进位右移(Rotate Right Through Carry)
RRC
dst
操作:
dst (7)  C
C  dst (0)
dst (n)  dst (n + 1), n = 0–6
目标操作数的内容通过 C 标志位右移一位,原来的第 0 位(LSB)移到C标志位中,原来的 C 标志
位则移至第 7 位(MSB)。
7
0
C
标志位:
C:
Z:
S:
V:
D:
H:
如果从最低位(bit 0)移出的为“1”,则置 1
如果结果为“0”则置 1;否则清零
如果结果的第 7 位(bit 7)为“1”则置 1;否则清零
如果发生溢出,也就是说目标操作数的符号在移位中发生改变,则置 1;否则清零
不受影响
不受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
C0
R
4
C1
IR
假如: 寄存器 00H = 55H, 寄存器 01H = 02H, 寄存器 02H = 17H, C = "0":
RRC
00H

寄存器 00H = 2AH, C =“1”
RRC
@01H

寄存器 01H = 02H, 寄存器 02H = 0BH, C =“1”
第一个例子中,如果通用寄存器 00H 的值为 55H(01010101B),语句“RRC 00H”将 00H 的值
右移一位,原来第 0 位(“1”)移至进位标志位,原来的 C 标志位(“1”)移至第 7 位,将目
标寄存器 00H 的变为 2AH(00101010B)。符号标志和溢出标志都被清零。
6-74
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SB0 — 选择 Bank 0 (Select Bank 0)
SB0
操作:
BANK  0
SB0 指令将标志位寄存器(FLAGS)中的 bank 地址标志(FLAGS.0)清零,在寄存器卷的 set 1区
域选择 bank 0 。
标志位:
没有标志位受影响
格式:
opc
编程实例:
字节数
时钟周期
指令代码
(Hex)
1
4
4F
语句 SB0 将 FLAGS.0 清零,选择 bank 0 中的寄存器进行寻址。
6-75
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SB1 — 选择 Bank 1 (Select Bank 1)
SB1
操作:
BANK  1
SB1 指令将标志位寄存器(FLAGS)中的 bank 地址标志(FLAGS.0)置 1,在寄存器卷的 set 1区域
中选择 bank 1 。
注释:某些 S3C8- 系列的单片机没有 Bank 1。
标志位:
没有标志位受影响
格式:
opc
编程实例:
6-76
字节数
时钟周期
指令代码
(Hex)
1
4
5F
指令 SB1 将 FLAGS.0 清零,选择 bank 1 的寄存器进行寻址 (如果存在 bank 1)。
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SBC — 带进位减法(Subtract with Carry)
SBC
dst,src
操作:
dst  dst – src – c
目标操作数减去源操作数和当前 C 标志位的值,结果存在目标操作数中。源操作数不受影响。减法
操作是通过将源操作数的补码加到目标操作数来完成的。在多次进行的精确运算中,指令允许低阶
的操作数向高阶的操作数“借位”。
标志位:
C:
Z:
S:
V:
D:
H:
如果借位操作发生(src>dst)则置 1;否则清零
如果结果是“0”则置 1;否则清零
如果结果为负则置 1;否则清零
如果发生溢出,也就是说如果操作数符号相反而差值与源操作数符号相同,则置1;否则清零
总是被置 1
如果从结果低4位的最高位有进位则清零;否则置 1,表示有“借位”发生。
格式:
opc
opc
opc
编程实例:
dst | src
src
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
2
4
32
r
r
6
33
r
lr
6
34
R
R
6
35
R
IR
6
36
R
IM
3
3
寻址模式
dst
src
假如: R1 = 10H, R2 = 03H, C =“1”, 寄存器 01H = 20H, 寄存器 02H = 03H, 寄存器
03H = 0AH:
SBC
R1,R2

R1 = 0CH, R2 = 03H
SBC
R1,@R2

R1 = 05H, R2 = 03H, 寄存器 03H = 0AH
SBC
01H,02H

寄存器 01H = 1CH, 寄存器 02H = 03H
SBC
01H,@02H

寄存器 01H = 15H, 寄存器 02H = 03H, 寄存器 03H = 0AH
SBC
01H,#8AH

寄存器 01H = 95H; C, S, V =“1”
第一个例子中,如果工作寄存器 R1 的值为 10H,R2 的值为 03H,语句“SBC R1,R2”从目标操
作数(10H)中减去源操作数(03H)和 C 标志的值(“1”),然后将结果(0CH)存放在寄存
器 R1 中。
6-77
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SCF — C置1 (Set Carry Flag)
SCF
操作:
C  1
将进位标志位(C)无条件置 1。
标志位:
C: 置为“1”
其它标志位都不受影响
格式:
opc
编程实例:
6-78
语句 SCF 将进位标志置 1。
字节数
时钟周期
指令代码
(Hex)
1
4
DF
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SRA — 算术右移 (Shift Right Arithmetic)
SRA
dst
操作:
dst (7)  dst (7)
C  dst (0)
dst (n)  dst (n + 1), n = 0–6
将目标操作数算数右移一位,第 0 位(LSB)移至 C 标志,第 7 位(bit 7,符号位)不改变并且移
到第 6 位。
7
6
0
C
标志位:
C:
Z:
S:
V:
D:
H:
如果从第 0 位(LSB)移出的是“1”则置 1;否则清零
如果结果是“0”则置 1;否则清零
如果结果是负数则置 1;否则清零
总是清零
不受影响
不受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
D0
R
4
D1
IR
假如: 寄存器 00H = 9AH, 寄存器 02H = 03H, 寄存器 03H = 0BCH, C =“1”:
SRA
00H

寄存器 00H = 0CD, C =“0”
SRA
@02H

寄存器 02H = 03H, 寄存器 03H = 0DEH, C =“0”
第一个例子中,如果通用寄存器 00H 的值为 9AH(10011010B),语句“SRA 00H”将寄存器
00H 右移一位,第 0 位(“0”)清除 C 标志,第7位(“1”)移至第 6 位(第 7 位保持不变),
目标寄存器 00H 的值变为 0CDH(11001101B)。
6-79
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SRP/SRP0/SRP1 — 设置寄存器指针 (Set Register Pointer)
SRP
src
SRP0
src
SRP1
src
操作:
如果 src (1) = 1 且 src (0) = 0 那么: RP0 (3–7)

src (3–7)
如果 src (1) = 0 且 src (0) = 1 那么: RP1 (3–7)

src (3–7)
如果 src (1) = 0 且 src (0) = 0 那么: RP0 (4–7)

src (4–7),
RP0 (3)

0
RP1 (4–7)

src (4–7),
RP1 (3)

1
源操作数的第 1 位和第 0 位(LSB)决定写入 2 个寄存器指针中的 1 个还是 2 个一起写入。如果
两个寄存器指针都被选择,那么选择的寄存器指针的 3 到 7 位被写入,然后 RP0.3 清零,RP1.3
置 1。
标志位:
没有标志位受影响
格式:
opc
编程实例:
src
字节数
时钟周期
指令代码
(Hex)
寻址模式
src
2
4
31
IM
语句
SRP #40H
将地址为 0D6H 的寄存器指针 0(RP0)设定在 40H,地址为 0D7H 的寄存器指针 1(RP1)设定
在 48H。
语句“SRP0 #50H”将 RP0 设为 50H,而语句“SRP1 #68H”将 RP1 设为 68H。
6-80
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
STOP — Stop 操作 (Stop Operation)
STOP
操作:
STOP 指令同时停止 CPU 时钟和系统时钟,使单片机进入 STOP 模式。在 STOP 模式下,CPU
寄存器、外设寄存器、I/O 口的控制和数据寄存器内容都保持不变。STOP 模式可以被外部的复位
操作或者外部中断唤醒。对于复位操作,RESET 引脚的低电平必须保持足够长的时间,以保证晶
振稳定所需的时间间隔。
在应用程序中,STOP 指令后必须跟有 3 个 NOP 指令,以保证在下条指令执行之前有足够长的时
间间隔来稳定晶振。如果 STOP 后没有使用 3 个或者多个 NOP 指令,内部总线的悬浮状态将会产
生漏电流。
标志位:
没有标志位受影响
格式:
opc
编程实例:
时钟周期
指令代码
(Hex)
1
4
7F
寻址模式
dst
src
–
–
语句
STOP
NOP
NOP
NOP
注释:
字节数
; 停止所有单片机操作
在执行 STOP 指令之前,必须设置 STPCON 寄存器值为“10100101b”,否则 STOP 指令不会执行。
6-81
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SUB — 减法 (Subtract)
SUB
dst,src
操作:
dst  dst – src
目标操作数减去源操作数,结果存放在目标操作数中。源操作数的内容不受影响。减法操作是将源
操作数的补码加到目标操作数来完成的。
标志位:
C:
Z:
S:
V:
D:
H:
如果“借位”发生则置 1;否则清零
如果结果是“0”则置 1;否则清零
如果结果是负数则置 1;否则清零
如果发生溢出,也就是如果操作数符号相反而结果与源操作数的符号相同,则置 1;否则清零
总是被置 1
如果从结果低 4 位的最高位有进位则清零;否则置 1,表示有“借位”发生。
格式:
opc
opc
opc
编程实例:
dst |
src
src
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
2
4
22
r
r
6
23
r
lr
6
24
R
R
6
25
R
IR
6
26
R
IM
3
3
寻址模式
dst
src
假如: R1 = 12H, R2 = 03H, 寄存器 01H = 21H, 寄存器 02H = 03H, 寄存器 03H = 0AH:
SUB
R1,R2

R1 = 0FH, R2 = 03H
SUB
R1,@R2

R1 = 08H, R2 = 03H
SUB
01H,02H

寄存器 01H = 1EH, 寄存器 02H = 03H
SUB
01H,@02H

寄存器 01H = 17H, 寄存器 02H = 03H
SUB
01H,#90H

寄存器 01H = 91H; C, S, V =“1”
SUB
01H,#65H

寄存器 01H = 0BCH; C 和 S = “1”, V =“0”
在第一个例子中,如果工作寄存器 R1 的值为12H,R2 为 03H,语句“SUB R1,R2”将源操作数
(03H)从目标操作数(12H)中减去,并将结果(0FH)存在目标寄存器 R1 中。
6-82
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SWAP — 交换 (Swap Nibbles)
SWAP
dst
操作:
dst (0 – 3)  dst (4 – 7)
目标操作数的低四位和高四位互相交换。
7
标志位:
C:
Z:
S:
V:
D:
H:
4 3
0
没有定义
如果结果是“0”则置 1;否则清零
如果结果的第 7 位(bit 7)为“1”则置 1;否则清零
没有定义
不受影响
不受影响
格式:
opc
编程实例:
dst
字节数
时钟周期
指令代码
(Hex)
寻址模式
dst
2
4
F0
R
4
F1
IR
假如: 寄存器 00H = 3EH, 寄存器 02H = 03H, 寄存器 03H = 0A4H:
SWAP
00H

寄存器 00H = 0E3H
SWAP
@02H

寄存器 02H = 03H, 寄存器 03H = 4AH
第一个例子中,如果通用寄存器 00H 的值为 3EH(00111110B),语句“SWAP 00H”将其高四
位和低四位交换,使寄存器 00H 的值变为 0E3H(11100011B)。
6-83
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
TCM — 取反后位测试(Test Complement Under Mask)
TCM
dst,src
操作:
(NOT dst) AND src
该指令用于测试目标操作数中特定位是否为逻辑1。被测试的位通过将源操作数中相应位设为“1”
(屏蔽)来指定。TCM 语句将目标操作数取反,然后与源操作数进行与操作。通过检查零标志位
(Z)来确定结果。目标操作数和源操作数不受影响。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果是“0”则置 1;否则清零
如果结果的第 7 位(bit 7)为“1”则置 1;否则清零
总是清零
不受影响
不受影响
格式:
opc
opc
opc
编程实例:
dst | src
src
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
2
4
62
r
r
6
63
r
lr
6
64
R
R
6
65
R
IR
6
66
R
IM
3
3
寻址模式
dst
src
假如: R0 = 0C7H, R1 = 02H, R2 = 12H, 寄存器 00H = 2BH, 寄存器 01H = 02H, 寄存器
02H = 23H:
TCM
R0,R1

R0 = 0C7H, R1 = 02H, Z =“1”
TCM
R0,@R1

R0 = 0C7H, R1 = 02H, 寄存器 02H = 23H, Z =“0”
TCM
00H,01H

寄存器 00H = 2BH, 寄存器 01H = 02H, Z =“1”
TCM
00H,@01H

寄存器 00H = 2BH, 寄存器 01H = 02H,
寄存器 02H = 23H, Z =“1”
TCM
00H,#34

寄存器 00H = 2BH, Z =“0”
第一个例子中,如果工作寄存器 R0 的值为 0C7H(11000111B),寄存器 R1 为 02H
(00000010B),语句“TCM R0,R1”测试目标寄存器的第 1 位(bit 1)是否为“1”。由于屏蔽
值与对应的测试位一致,Z 标志被置 1,可用来确定 TCM 操作的结果。
6-84
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
TM — 位测试(Test Under Mask)
TM
dst,src
操作:
dst AND src
该指令用于测试目标操作数中特定位是否为逻辑 0。被测试的位通过将源操作数中相应位设为
“1”(屏蔽)来指定,然后目标操作数与源操作数进行与操作。通过检查零标志位(Z)来确定结
果。目标操作数和源操作数不受影响。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果是“0”则置 1;否则清零
如果结果的第 7 位为“1”则置 1;否则清零
总是清零
不受影响
不受影响
格式:
opc
opc
opc
编程实例:
dst | src
src
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
2
4
72
r
r
6
73
r
lr
6
74
R
R
6
75
R
IR
6
76
R
IM
3
3
寻址模式
dst
src
假如: R0 = 0C7H, R1 = 02H, R2 = 18H, 寄存器 00H = 2BH, 寄存器 01H = 02H, 寄存器
02H = 23H:
TM
R0,R1

R0 = 0C7H, R1 = 02H, Z =“0”
TM
R0,@R1

R0 = 0C7H, R1 = 02H, 寄存器 02H = 23H, Z =“0”
TM
00H,01H

寄存器 00H = 2BH, 寄存器 01H = 02H, Z =“0”
TM
00H,@01H

寄存器 00H = 2BH, 寄存器 01H = 02H,
寄存器 02H = 23H, Z =“0”
TM
00H,#54H

寄存器 00H = 2BH, Z =“1”
第一个例子中,如果工作寄存器 R0 的值为 0C7H(11000111B),寄存器 R1 的值为 02H
(00000010B),语句“TM R0,R1” 测试目标寄存器的第1位是否为“0”。由于屏蔽值与对应的
的测试位不匹配,Z 标志被清零,可以用来确定 TM 操作的结果。
6-85
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
WFI — 等待中断 (Wait for Interrupt)
WFI
操作:
在等待状态时,CPU 被暂停直到中断发生,只有 DMA 传送仍然可以工作。WFI 状态可以由内部中
断,包括快速中断唤醒。
标志位:
没有标志位受影响
格式:
字节数
opc
编程实例:
1
时钟周期
指令代码
(Hex)
4n
3F
( n = 1, 2, 3, … )
以下实例程序的结构表示了“WFI”指令执行后的一系列操作:
Main program
.
.
.
EI
WFI
(Next instruction)
(Enable global interrupt)
(Wait for interrupt)
.
.
.
Interrupt occurs
Interrupt service routine
.
.
.
Clear interrupt flag
IRET
Service routine completed
6-86
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
XOR — 逻辑异或(Logical Exclusive OR)
XOR
dst,src
操作:
dst  dst XOR src
源操作数与目标操作数进行逻辑异或,结果存在目标操作数中。如果两个操作数中对应的位不相
同,那么异或的结果为“1”;否则为“0”。
标志位:
C:
Z:
S:
V:
D:
H:
不受影响
如果结果是“0”则置 1;否则清零
如果结果的第 7 位(bit 7)为“1”则置 1;否则清零
总是清零
不受影响
不受影响
格式:
opc
opc
opc
编程实例:
dst | src
src
dst
dst
src
字节数
时钟周期
指令代码
(Hex)
2
4
B2
r
r
6
B3
r
lr
6
B4
R
R
6
B5
R
IR
6
B6
R
IM
3
3
寻址模式
dst
src
假如: R0 = 0C7H, R1 = 02H, R2 = 18H, 寄存器 00H = 2BH, 寄存器 01H = 02H, 寄存器
02H = 23H:
XOR
R0,R1

R0 = 0C5H, R1 = 02H
XOR
R0,@R1

R0 = 0E4H, R1 = 02H, 寄存器 02H = 23H
XOR
00H,01H

寄存器 00H = 29H, 寄存器 01H = 02H
XOR
00H,@01H

寄存器 00H = 08H, 寄存器 01H = 02H, 寄存器 02H = 23H
XOR
00H,#54H

寄存器 00H = 7FH
第一个例子中,如果工作寄存器 R0 的值为 0C7H,R1 的值为 02H,语句“XOR R0,R2”将R1和
R0 的值进行逻辑异或,并将结果(0C5H)存在目标寄存器 R0 中。
6-87
指令集
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
6-88
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
7
时钟电路
时钟电路
概述
S3C8275X/C8278X/C8274X有2个振荡器电路:主时钟电路和副时钟电路。CPU、外设等硬件在此电路提供的系
统时钟频率下工作。S3C8275X/C8278X/C8274X的最大CPU 时钟频率由CLKCON 寄存器的设置决定。
系统时钟电路
系统时钟电路由下列部分组成:

外部晶振,陶瓷谐振器,RC 振荡源或外部时钟源

振荡器停止和唤醒功能

CPU 时钟可通过编程进行分频 (fxx 1, 2, 8, 16分频)

系统时钟控制寄存器 CLKCON

时钟控制寄存器 OSCCON 和 STOP 控制寄存器 STPCON

时钟输出控制寄存器 CLOCON
CPU 时钟助记符
本文档中,下列助记符用来描述 CPU 时钟:
fx: 主时钟
fxt: 副时钟
fxx: 选定的系统时钟
7-1
时钟电路
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
主振荡器电路
副振荡器电路
32.768 kHz
XTIN
XIN
XTOUT
XOUT
104
图 7-1. 石英晶体/陶瓷振荡器 (fx)
VREG
图 7-4. 石英晶体振荡器 (fxt)
XTIN
XIN
XOUT
XTOUT
图 7-5. 外部振荡器 (fxt)
图 7-2. 外部振荡器 (fx)
XIN
R
XOUT
图 7-3. RC 振荡器 (fx)
7-2
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CLOCK CIRCUIT
省电模式下时钟状态
两种省电模式,STOP 模式和 IDLE 模式,分别对时钟振荡产生如下影响:

在STOP模式下,主振荡器停止工作。在复位操作或具有RC延时噪声滤波器的外部中断被触发下,CPU会退出
STOP模式,振荡器重新起振。副振荡器工作且watch timer的时钟源是副时钟时,CPU也能退出STOP模式。

在IDLE模式下,内部时钟信号进入CPU的通路被切断,但中断及Timer仍然工作。复位或中断 (外部中断或内
部中断) 都可以使CPU退出IDLE模式。
Stop Release
INT
Main-System
Oscillator
Circuit
fx
fxt
Sub-system
Oscillator
Circuit
Watch Timer
LCD Controller
Selector 1
fXX
Stop
OSCCON.3
Stop
OSCCON.0
OSCCON.2
1/1-1/4096
STOP OSC
inst.
Basic Timer
Timer/Counters
STPCON
Watch Timer
Frequency
Dividing
Circuit
LCD Controller
SIO
BLD
1/1
1/2
1/8
1/16
System Clock
CLKCON.4-.3
Selector 2
CPU Clock
IDLE Instruction
图 7-6. 系统时钟电路框图
7-3
CLOCK CIRCUIT
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
系统时钟控制寄存器 (CLKCON)
系统时钟控制寄存器CLKCON的地址是set 1的D4H,可读/写,有如下功能:
— 禁止/使能IRQ唤醒系统时钟功能
— 系统时钟分频系数选择
CLKCON 寄存器控制外部中断能否用来唤醒stop (IRQ唤醒功能), IRQ唤醒功能的使能位是CLKCON.7。
主振荡器建立以后,fOSC /16(最慢时钟速度)被选择为CPU时钟。如有需要,也可提高CPU时钟速度至fOSC,
fOSC/2 或 fOSC /8。
System Clock Control Register (CLKCON)
D4H, Set 1, R/W
MSB
.7
.6
.5
.4
Oscillator IRQ wake-up function bit:
0 = Enable IRQ for main wake up in
power down mode
1 = Disable IRQ for main wake up in
power down mode
Not used for S3C8275X/C8278X/C8274X
(must keep always 0)
.3
.2
.1
LSB
Not used for S3C8275X/C8278X/C8274X
(must keep always 0)
Divide-by selection bits for
CPU clock frequency:
00 = fxx/16
01 = fxx/8
10 = fxx/2
11 = fxx/1 (non-divided)
图 7-7. 系统时钟控制寄存器 (CLKCON)
7-4
.0
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CLOCK CIRCUIT
时钟输出控制寄存器(CLOCON)
时钟输出控制寄存器,CLOCON的地址是 E8H, Set 1, Bank 1,可读写,有如下功能:

时钟输出频率选择
复位后,CLOCON.1.0的值为"00b",选择fxx/64作为时钟输出的频率,
Clock Output Control Register (CLOCON)
E8H, Set 1, Bank 1, R/W
MSB
.7
.6
.5
.4
.3
Not used for S3C8275X/C8278X/C8274X
(must keep always "0")
.2
.1
.0
LSB
Clock output frequency selection bits:
00 = Select fxx/64
01 = Select fxx/16
10 = Select fxx/8
11 = Select fxx/4
图 7-8. 时钟输出控制寄存器 (CLOCON)
CLOCON.1-.0
P0CONH.5-.4
fxx/64
fxx/16
fxx/8
CLKOUT/P0.6
MUX
fxx/4
图 7-9. 时钟输出模块框图
7-5
CLOCK CIRCUIT
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
时钟控制寄存器 (OSCCON)
时钟控制寄存器 OSCCON的地址是 E0H, set 1, bank 0,可读写,有如下功能:

System clock selection系统时钟选择

Main oscillator control 主振荡器控制

Sub oscillator control 副振荡器控制

Sub oscillator circuit selection 副振荡器电路选择
OSCCON.0控制位选择系统时钟为主振荡器或副振荡器。复位后,OSCCON.0 的值为 "0",因此选择主振荡器为
系统时钟。
设置OSCCON.3可以使主振荡器停止或起振。
设置OSCCON.2可以使副振荡器停止或起振。
Oscillator Control Register (OSCCON)
E0H, Set 1, Bank 0, R/W
MS
B
.7
.6
.5
.4
.3
.2
.1
注释:
Not used for S3C8275X/C8278X/C8274X
Sub oscillator control bit:
0 = Sub oscillator RUN
1 = Sub oscillator STOP
1. 副振荡器工作时,必须保持 OSCCON.7 为 "1"。
2. VREG 和 GNDA 之间需加一个 0.1uF 电容。.
Main oscillator control bit:
0 = Main oscillator RUN
1 = Main oscillator STOP
图 7-10. 时钟控制寄存器 (OSCCON)
7-6
LSB
System clock selection bit:
0 = Main oscillator select
1 = Sub oscillator select
Not used for S3C8275X/
C8278X/C8274X
Sub oscillator circuit selection bit:
0 = Initial state
1 = Power saving circuit for sub oscillator
(Automatically cleared to "0" when the sub
oscillator is stopped by OSCCON.2)
.0
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
CLOCK CIRCUIT
CPU时钟切换
载入振荡器控制寄存器OSCCON 的值,决定了CPU时钟选择主时钟或副时钟;设置CLKCON寄存器,决定时钟
分频。这就实现了在主副时钟之间动态切换以及工作频率的改变。
OSCCON.0 为CPU时钟选择主时钟(fx) 或副时钟(fxt)。OSCCON .3启动或停止主时钟振荡,OSCCON.2启动或
停止副时钟振荡。CLKCON.4–.3控制分频电路,将选定的fxx时钟1, 2, 8, 16分频。
例如,需要将CPU时钟从默认值fx (普通工作模式,主时钟为fx/16),切换到副时钟并停止主时钟。为此,可将
CLKCON.4-.3设置为"11",将OSCCON.0 设置为―1‖,同时将OSCCON.3 设置为―1‖。这就把时钟从fx切换到fxt,
并停止了主时钟振荡。
从副时钟切换到主时钟时,必须遵循以下步骤:首先,将OSCCON.3 设为―0‖以使能主时钟振荡。然后,在特定的
机器周期之后,将OSCCON.0 设置为―0‖来选择主时钟。
 编程指南 — CPU时钟切换

1. 本例为如何从主时钟切换到副时钟:
MA2SUB
LD
OSCCON,#01H
; 切换到副时钟
; 停止主时钟振荡
RET
2. 本例为如何从副时钟切换到主时钟:
SUB2MA
DLY16
DEL
AND
CALL
AND
RET
SRP
LD
NOP
DJNZ
RET
OSCCON,#07H
DLY16
OSCCON,#06H
; 启动主时钟振荡
; 延时 16 ms
; 切换到主时钟
#0C0H
R0,#20H
R0,DEL
7-7
CLOCK CIRCUIT
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
STOP Control Register (STPCON)
FBH, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
STOP control bits:
Other values = Disable STOP instruction
10100101 = Enable STOP instruction
注释:
执行 STOP 指令前,必须将 STPCON 寄存器设为
"10100101b"。否则将不执行 STOP 指令,而且系统会
发生复位。
图 7-11. STOP 控制寄存器 (STPCON)
7-8
复位和省电模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
8
复位和省电模式
系统复位
概述
上电复位时,VDD电压上升到高电平而RESET管脚被强制拉到低电平。RESET信号通过一个施密特触发器电路输
入,并与CPU时钟同步。这个过程将S3C8275X/C8278X/C8274X带入既定的工作状态。
接电源后,复位管脚必须维持低电平一段时间,以允许内部 CPU 时钟振荡达到稳定。复位操作的最小振荡稳定
时间为 1ms。
正常工作模式下,VDD 和 nRESET 均为高电平。当 nRESET 管脚变为低电平时,将会导致系统复位。复位后,
系统和外围控制寄存器均恢复为默认值。
总的来说,复位后,各事件会按如下顺序依次发生:
— 禁止所有中断。
— 看门狗功能启动 (basic timer)。
— P0-6 设为输入模式,所有I/O口的上拉电阻禁止。
— 外设控制和数据寄存器设置被禁止,并复位成默认值。
— 程序计数器 (PC) 被置为ROM中的程序复位地址 0100H。
— 当设定的振荡稳定时间结束以后,正常模式下ROM地址0100H (以及 0101H)中的指令被取值和执行。
— 在S3F8275X(Full-Flash产品)中, ROM中的复位地址可在Smart Option中改变。详情请参考第16章 嵌入式闪
存接口。
正常模式复位操作
正常模式下,Test管脚接到VSS。复位后,16/8/4K字节片上ROM访问被使能(外部接口非自动配置)。
注释
为改变振荡稳定时间,可在进入STOP模式前,将合适的配置写入basic timer 控制寄存器BTCON中。同
样,若不使用basic timer 的看门狗功能 (当basic timer计数器溢出时,系统复位),可在BTCON的高位写
入"1010B"来禁止该功能。
8-1
复位和省电模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
硬件复位值
表8-1,8-2,8-3列出了复位操作后CPU和系统寄存器,外设控制寄存器,以及外设数据寄存器的复位值。 用以下
的助记符来代表复位值:
— "1" 或 "0" 代表复位后该位的值相应的为逻辑1或逻辑0。
— "x" 代表复位后该位的值不确定。
— 横线 ("–") 代表该位未使用或者未映射,但读取的值为0。
表 8-1. S3C8275X/C8278X/C8274X Set 1 寄存器及其复位后初始值
寄存器名
助记标号
地址
Dec
Hex
复位后各位的值
7
6
5
4
3
2
1
0
D0H–D2H 地址空间未映射
Basic Timer 控制寄存器
BTCON
211
D3H
0
0
0
0
0
0
0
0
CLKCON
212
D4H
0


0
0



FLAGS
213
D5H
x
x
x
x
x
x
0
0
寄存器指针 0
RP0
214
D6H
1
1
0
0
0



寄存器指针 1
RP1
215
D7H
1
1
0
0
1



堆栈指针(高字节)
SPH
216
D8H
x
x
x
x
x
x
x
x
堆栈指针(低字节)
SPL
217
D9H
x
x
x
x
x
x
x
x
指令指针(高字节)
IPH
218
DAH
x
x
x
x
x
x
x
x
指令指针(低字节)
IPL
219
DBH
x
x
x
x
x
x
x
x
中断请求寄存器
IRQ
220
DCH
0
0
0
0
0
0
0
0
中断屏蔽寄存器
IMR
221
DDH
x
x
x
x
x
x
x
x
系统模式寄存器
SYM
222
DEH
0


x
x
x
0
0
PP
223
DFH
0
0
0
0
0
0
0
0
系统时钟控制寄存器
系统标志寄存器
寄存器页指针
8-2
复位和省电模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 8-2. S3C8275X/C8278X/C8274X Set 1, Bank 0寄存器及其复位后初始值
寄存器名
助记标记
地址
复位后各位的值
Dec
Hex
7
6
5
4
3
2
1
0
时钟控制寄存器
OSCCON
224
E0H
0



0
0

0
SIO 控制寄存器
SIOCON
225
E1H
0
0
0
0
0
0
0
0
SIO 数据寄存器
SIODATA
226
E2H
0
0
0
0
0
0
0
0
SIOPS
227
E3H
0
0
0
0
0
0
0
0
P0 口控制寄存器(高字节)
P0CONH
228
E4H
0
0
0
0
0
0
0
0
P0 口控制寄存器(低字节)
P0CONL
229
E5H
0
0
0
0
0
0
0
0
P0PUR
230
E6H
0
0
0
0
0
0
0
0
P1 口控制寄存器(高字节)
P1CONH
231
E7H
0
0
0
0
0
0
0
0
P1 口控制寄存器(低字节)
P1CONL
232
E8H
0
0
0
0
0
0
0
0
P1PUR
233
E9H
0
0
0
0
0
0
0
0
P2 口控制寄存器(高字节)
P2CONH
234
EAH
0
0
0
0
0
0
0
0
P2 口控制寄存器(低字节)
P2CONL
235
EBH
0
0
0
0
0
0
0
0
P2PUR
236
ECH
0
0
0
0
0
0
0
0
P3 口控制寄存器(高字节)
P3CONH
237
EDH
0
0
0
0
0
0
0
0
P3 口控制寄存器(低字节)
P3CONL
238
EEH
0
0
0
0
0
0
0
0
P3PUR
239
EFH
0
0
0
0
0
0
0
0
P0 口数据寄存器
P0
240
F0H
0
0
0
0
0
0
0
0
P1 口数据寄存器
P1
241
F1H
0
0
0
0
0
0
0
0
P2 口数据寄存器
P2
242
F2H
0
0
0
0
0
0
0
0
P3 口数据寄存器
P3
243
F3H
0
0
0
0
0
0
0
0
P4 口数据寄存器
P4
244
F4H
0
0
0
0
0
0
0
0
P5 口数据寄存器
P5
245
F5H
0
0
0
0
0
0
0
0
P6 口数据寄存器
P6
246
F6H




0
0
0
0
EXTIPND
247
F7H
0
0
0
0
0
0
0
0
外部中断控制寄存器(高字节)
EXTICONH
248
F8H
0
0
0
0
0
0
0
0
外部中断控制寄存器(低字节)
EXTICONL
249
F9H
0
0
0
0
0
0
0
0
FBH
0
0
0
0
0
0
0
0
FDH
0
0
0
0
0
0
0
0
FFH
x
x
x
x
x
x
x
x
SIO 预处理寄存器
P0 口上拉电阻使能控制寄存器
P1 口上拉电阻使能控制寄存器
P2 口上拉电阻使能控制寄存器
P3 口上拉电阻使能控制寄存器
外部中断标志寄存器
FAH 地址空间未映射.
STOP 控制寄存器
STPCON
251
FCH 地址空间未映射
Basic timer 计数器
BTCNT
253
FEH 地址空间未映射
中断优先级寄存器
IPR
255
8-3
复位和省电模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Table 8-3. S3C8275X/C8278X/C8274X Set 1, Bank 1寄存器及其复位后初始值
寄存器名
助记标记
地址
复位后各位的值
Dec
Hex
7
6
5
4
3
2
1
0
LCON
224
E0H
0
0
0
0
0
0

0
钟表定时器控制寄存器
WTCON
225
E1H
0
0
0
0
0
0
0
0
Timer A 计数器
TACNT
226
E2H
0
0
0
0
0
0
0
0
Timer B 计数器
TBCNT
227
E3H
0
0
0
0
0
0
0
0
Timer A 数据寄存器
TADATA
228
E4H
1
1
1
1
1
1
1
1
Timer B 数据寄存器
TBDATA
229
E5H
1
1
1
1
1
1
1
1
Timer 1/A 控制寄存器
TACON
230
E6H
0
0
0
0
0
0
0
0
Timer B 控制寄存器
TBCON
231
E7H

0
0
0
0
0
0
0
时钟输出控制寄存器
CLOCON
232
E8H






0
0
P4 口控制寄存器(高字节)
P4CONH
233
E9H
0
0
0
0
0
0
0
0
P4 口控制寄存器(低字节)
P4CONL
234
EAH
0
0
0
0
0
0
0
0
P5 口控制寄存器(高字节)
P5CONH
235
EBH
0
0
0
0
0
0
0
0
P5 口控制寄存器(低字节)
P5CONL
236
ECH
0
0
0
0
0
0
0
0
P6 口控制寄存器
P6CON
237
EDH
0
0
0
0
0
0
0
0
LCD 控制寄存器
EEH – EFH 地址空间未映射
闪存控制寄存器
FMCON
240
F0H
0
0
0
0
0


0
闪存用户可编程使能寄存器
FMUSR
241
F1H
0
0
0
0
0
0
0
0
闪存扇区地址寄存器(高字节)
FMSECH
242
F2H
0
0
0
0
0
0
0
0
闪存扇区地址寄存器(低字节)
FMSECL
243
F3H
0
0
0
0
0
0
0
0
电池电压检测控制寄存器
BLDCON
244
F4H


0
0
0
0
0
0
F5H – FFH 地址空间未映射
8-4
复位和省电模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
省电模式
STOP 模式
STOP 指令(指令码 7FH)将会使系统进入 STOP 模式。在 STOP 模式下,CPU 和所有外设将停止工作。也
就是说,片上主振荡器会停止,芯片消耗电流将减小到 3A 以下。当时钟冻结时,所有的系统功能停止,但存储
在内部寄存器卷中的数据仍然保留。可以通过 2 种方式退出 STOP 模式:复位或中断(详见图7-6)。
注释
使用外部时钟源时,不能使用STOP模式。因为 XIN 或 XTIN 管脚必须内部连接到 VSS 以减小漏电流。
使用 nRESET 退出 STOP 模式
nRESET 信号被释放并恢复高电平时,退出STOP模式:所有系统和外设控制寄存器恢复为默认值,数据寄存器
仍被保持。因为 CLKCON.3 和 CLKCON.4 被清除为―00B‖,CPU 时钟选择最慢频率(fxx/16)。振荡稳定时间
间隔之后,CPU调入ROM地址 0100H (以及0101H)的指令开始系统初始化。
使用外部中断退出 STOP 模式
具有 RC 延迟噪声滤波电路的外部中断可以让系统退出 STOP 模式。CPU当前的内部工作模式决定了退出STOP
可用的中断类型。S3C8275X/C8278X/C8274X中断结构中可用作的退出 STOP 模式的外部中断为:
— 外部中断 P0.0–P0.2 (INT0INT2) 和 P1.3P1.7 (INT3INT7)
关于STOP 模式的退出请注意以下条件:
— 若使用外部中断退出STOP 模式,除了STPCON 寄存器之外的所有系统和外设控制寄存器都不发生改变。
— 若使用内部或外部中断退出STOP 模式,也可对振荡稳定时间进行编程。但必须在进入STOP模式之前将控制
和时钟设置成合适的值。
— 当使用外部中断退出STOP 模式时,CLKCON.4 和 CLKCON.3 的设置不发生改变,当前选择的时钟值也将
保留。
— 在退出 STOP 模式时,系统处理外部中断服务程序。中断返回后,执行紧接着 STOP 令的下一条指令。
如何进入STOP 模式
先写STPCON 寄存器然后写 STOP 指令(保持这个顺序) 。
LD
STPCON,#10100101B
STOP
NOP
NOP
NOP
8-5
复位和省电模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
IDLE 模式
IDLE 指令(指令码 6FH)将会使系统进入 IDLE 模式。在 IDLE 模式下,CPU 停止但某些外设仍然工作。
IDLE 模式下,内部时钟信号无法进入CPU,但所有外设的时钟仍然有效。I/O 口仍然保持进入IDLE模式以前的状
态(输入或输出)。
有2种方式可以退出 IDLE 模式:
1. 执行复位操作。所有的系统和外设控制寄存器复位至默认值,但所有数据寄存器的值保持不变。因为
CLKCON.3 和 CLKCON.4 清除为―00B‖,复位自动选择慢时钟(fxx/16)。如果中断被屏蔽,则复位是退出
IDLE 模式的唯一方法。
2. 激活任意使能的中断,退出 IDLE 模式。当用中断退出 IDLE 模式,CLKCON.3 和 CLKCON.4 寄存器的值
保持不变,当前选择的时钟值也不变。系统会先处理中断服务程序。中断返回后,执行紧接着 IDLE 指令的下
一条指令。
8-6
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
9
I/O 口
概述
S3C8275X/C8278X/C8274X有7个位可编程的 I/O 口,P0–P6。其中,P1 – P5 口是8位口,P6 口是 4位口。
一共有52个I/O管脚。每个口都可以灵活配置以满足应用的需要。
CPU通过直接读写口寄存器访问 I/O口。不需要特别的I/O口指令。S3C8275X/C8278X/C8274X 的所有 I/O口都可
以设为输入或输出模式。P2P6口和 LCD 信号复用
表9-1 给出了S3C8275X/C8278X/C8274X I/O 口的功能概述。
表 9-1. S3C8275X/C8278X/C8274X 口配置描述
I/O 口
设置选项
0
可对该口的每一位进行功能设定,可以设定为施密特触发器输入、推挽式输出或开漏输出。通过
软件设定上拉电阻。
P0.0 - P0.2 也可用作外部中断输入,P0.3-P0.7可以用作T1CLK, TAOUT, TBOUT, CLKOUT,
和BUZ。
1
可对该口的每一位进行功能设定,可以设定为施密特触发器输入、推挽式输出或开漏输出。通过
软件设定上拉电阻。
P1.3 – P1.7 也可用作外部中断输入,P1.0-P1.2可以用作SCK, SO, 和SI。
2
可对该口的每一位进行功能设定,可以设定为输入、推挽式输出或开漏输出。通过软件设定上拉
电阻。
P2 也可用作LCD SEG信号
3
可对该口的每一位进行功能设定,可以设定为输入、推挽式输出或开漏输出。通过软件设定上拉
电阻。
P3 也可用作LCD SEG信号
4
可对该口的每一位进行功能设定,可以设定为输入或推挽式输出。通过软件设定上拉电阻。
P4 也可用作LCD SEG信号
5
可对该口的每一位进行功能设定,可以设定为输入或推挽式输出。通过软件设定上拉电阻。
P5 也可用作LCD SEG信号
6
可对该口的每一位进行功能设定,可以设定为输入或输出。通过软件设定上拉电阻。
P6.0P6.3 也可用作LCD COM信号
9-1
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
口控制寄存器
表 9-2 总结了S3C8275X/C8278X/C8274X所有I/O 口数据寄存器的位置。P0, 1, 2, 3, 4, 5, 6口的数据寄存器大致
格式如图 9-1所示。
表 9-2. 端口数据寄存器
寄存器名称
助记标号
十进制
十六进制
位置
R/W
P0 口数据寄存器
P0
240
F0H
Set 1, Bank 0
R/W
P1 口数据寄存器
P1
241
F1H
Set 1, Bank 0
R/W
P2 口数据寄存器
P2
242
F2H
Set 1, Bank 0
R/W
P3 口数据寄存器
P3
243
F3H
Set 1, Bank 0
R/W
P4 口数据寄存器
P4
244
F4H
Set 1, Bank 0
R/W
P5 口数据寄存器
P5
245
F5H
Set 1, Bank 0
R/W
P6 口数据寄存器
P6
246
F6H
Set 1, Bank 0
R/W
S3C8275X/C8278X/C8274X I/O Port Data Register Format (n = 0-6)
MSB
.7
.6
.5
.4
.3
.2
.1
.0
Pn.7
Pn.6
Pn.5
Pn.4
Pn.3
Pn.2
Pn.1
Pn.0
LSB
图 9-1. S3C8275X/C8278X/C8274X I/O口数据寄存器格式
9-2
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
I/O 口
P0 口
P0 口是一个8位都可单独配置的I/O口。可通过直接读写P0口数据寄存器P0 (地址:F0H, set 1, bank 0) 来访问P0
口。P0.0–P0.7 可用作输入,输出(推挽或开漏)或设置成如下的复用功能:
— 低字节(P0.0–P0.3): INT0–INT2, T1CLK
— 高字节(P0.4–P0.7): TAOUT, TBOUT, CLKOUT, BUZ
P0 口控制寄存器 (P0CONH, P0CONL)
P0 有2个8位控制寄存器:控制P0.4-P0.7的P0CONH寄存器和控制P0.0-P0.3的P0CONL寄存器。复位后,
P0CONH 和 P0CONL 寄存器被清除为 "00H",设置P0.0P0.2 为带中断的输入模式,P0.3P0.7为输入模式。
可以通过控制寄存器来设置各个管脚为输入或输出(推挽或开漏)或其复用功能:
对该口编程时,请记住在P0口控制寄存器中设置外设I/O 复用功能的同时,必须在相应的外设模块中使能该功能。
P0 口上拉电阻使能控制寄存器 (P0PUR)
使用P0 口上拉电阻使能控制寄存器 P0PUR (E6H, set 1, bank 0)可以设置P0口各位的上拉电阻。
P0 口中断控制寄存器(EXTICONL.5.0, EXTIPND.2.0)
需要将P0 作为外部中断来使用时,需要设置另外两个外部中断控制寄存器:EXTICONL.5.0 (F9H, set 1, bank 0)
和EXTIPND.2.0 (F7H, set 1, bank 0)
外部中断标志寄存器EXTIPND.2.0可以用来在软件中检查中断标志位和清除中断标志。应用程序可以周期性的查
询中断标志位EXTIPND.2.0来检测中断请求。
当使能了P0口的任一个管脚的中断时,则该管脚上的电平的上升沿或下降沿就会产生中断。相应的中断标志位被
置为"1",同时相应的中断级会给CPU发出中断请求。当CPU响应中断请求后,应用程序必须在软件中给相应的中
断标志位EXTIPND位写"0"来清除中断标志。
9-3
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Port 0 Control Register, High Byte (P0CONH)
E4H, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
P0.7/BUZ
.3
.2
.1
.0
LSB
P0.5/TBOUT
P0.6/CLKOUT
P0.4/TAOUT
P0CONH bit-pair pin configuration settings:
00
Schmitt trigger input mode
01
N-channel open-drain output mode
10
Push-pull output mode
11
Alternative function
(BUZ, CLKOUT, TBOUT, TAOUT)
图 9-2. P0 口控制寄存器高字节 (P0CONH)
Port 0 Control Register, Low Byte (P0CONL)
E5H, Set 1, Bank 0, R/W
MSB
.7
.6
P0.3/T1CLK
.5
.4
P0.2/INT2
.3
.2
P0.1/INT1
.1
.0
P0.0/INT0
P0CONL bit-pair pin configuration settings:
00
Schmitt trigger input mode (T1CLK)
01
N-channel open-drain output mode
10
Push-pull output mode
11
Not available
图 9-3. P0 口控制寄存器低字节 (P0CONL)
9-4
LSB
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Port 0 Pull-up Control Register (P0PUR)
E6H, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
LSB
P0PUR bit configuration settings:
0
Disable pull-up resistor
1
Enable pull-up resistor
注释 : 当相应的管脚被设置为推挽输出或其复用功能时 ,其上拉电阻自动
被禁止
图 9-4. P0 口上拉电阻使能控制寄存器 (P0PUR)
External Interrupt Control Register, Low Byte (EXTICONL)
E9H, Set 1, Bank 0, R/W
MSB
.7
.6
P1.3/INT3
.5
.4
P0.2/INT2
.3
.2
P0.1/INT1
.1
.0
LSB
P0.0/INT0
EXTICONL bit configuration settings:
00
Disable interrupt
01
10
Enable interrupt by falling edge
Enable interrupt by rising edge
11
Enable interrupt by both falling and rising edge
图 9-5. 外部中断控制寄存器,低字节 (EXTICONL)
9-5
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
External Interrupt Pending Register (EXTIPND)
F7H, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
P1.7 P1.6 P1.5 P1.4 P1.3 P0.2 P0.1 P0.0
(INT7) (INT6) (INT5) (INT4) (INT3) (INT2) (INT1) (INT0)
EXTIPND bit configuration settings:
0
No interrupt pending (when read), clear pending bit (when write)
1
Interrupt is pending (when read)
图 9-6. 外部中断标志寄存器(EXTIPND)
9-6
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
I/O 口
P1 口
P1 口是一个8位都可单独配置的I/O口。可通过直接读写P1口数据寄存器P0 (地址:F1H, set 1, bank 0) 来访问P1
口。P1.0–P1.7 可用作输入(上拉/无上拉),输出(推挽或开漏)或设置成如下的复用功能:
— 低字节(P1.0P1.3): SCK, SO, SI, INT3
— 高字节(P1.4P1.7): INT4INT7
P1 口控制寄存器 (P1CONH, P1CONL)
P1 有2个8位控制寄存器:控制P1.4P1.7的P1CONH寄存器和控制P1.0P1.3的P1CONL寄存器。复位后,
P1CONH和 P1CONL寄存器被清除为 "00H",设置P1.3P1.7 为带中断的输入模式,P1.3P1.7为输入模式。可
以通过控制寄存器来设置各个管脚为输入或输出(推挽输出或开漏输出)或其复用功能:
对该口编程时,请记住在P1口控制寄存器中设置外设I/O 复用功能的同时,必须在相应的外设模块中使能该功能。
P1 口上拉电阻使能控制寄存器 (P1PUR)
使用P1 口上拉电阻使能控制寄存器 P1PUR (E9H, set 1, bank 0)可以设置P1口各管脚的上拉电阻。
P1 口中断控制寄存器(EXTICONH, EXTICONL.7.6, EXTIPND.7.3)
需要将P1 作为外部中断来使用时,需要设置另外三个外部中断控制寄存器:EXTICONH/EXTICONL.5.0
(F8H/F9H, set 1, bank 0) 和EXTIPND.7.3 (F7H, set 1, bank 0)
外部中断标志寄存器EXTIPND.7.3可以用来在软件中检查中断标志位和清除中断标志。应用程序可以周期性的查
询中断标志位EXTIPND.7.3来检测中断请求。
当使能了P1口的任一个管脚的中断时,则该管脚上的电平的上升沿或下降沿就会产生中断。相应的中断标志位被
置为"1",同时相应的中断级会给CPU发出中断请求。当CPU响应中断请求后,应用程序必须在软件中给相应的中
断标志位EXTIPND位写"0"来清除中断标志。
9-7
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Port 1 Control Register, High Byte (P1CONH)
E7H, Set 1, Bank 0, R/W
MSB
.7
.6
P1.7/INT7
.5
.4
P1.6/INT6
.3
.2
P1.5/INT5
.1
.0
LSB
P1.4/INT4
P1CONH bit-pair pin configuration settings:
00
Schmitt trigger input mode
01
N-channel open-drain output mode
10
Push-pull output mode
11
Not available
图 9-7. P1 口控制寄存器高字节 (P1CONH)
Port 1 Control Register, Low Byte (P1CONL)
E8H, Set 1, Bank 0, R/W
MSB
.7
.6
P1.3/INT3
.5
.4
P1.2/SI
.3
.2
P1.1/SO
.1
.0
P1.0/SCK
P1CONL bit-pair pin configuration settings:
00
Schmitt trigger input mode (SI, SCK)
01
N-channel open-drain output mode
10
Push-pull output mode
11
Alternative function (SCK, SO)
图 9-8. P1 口控制寄存器低字节 (P1CONL)
9-8
LSB
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Port 1 Pull-up Control Register (P1PUR)
E9H, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
LSB
P1PUR bit configuration settings:
0
Disable pull-up resistor
1
Enable pull-up resistor
注释 : 当相应的管脚被设置为推挽输出或 其复用功能时 ,其上拉电阻自动
被禁止
图 9-9. P1 上拉电阻使能控制寄存器 (P1PUR)
External Interrupt Control Register, High Byte (EXTICONH)
F8H, Set 1, Bank 0, R/W
MSB
.7
.6
P1.7/INT7
.5
.4
P1.6/INT6
.3
.2
P1.5/INT5
.1
.0
LSB
P1.4/INT4
EXTICONH bit configuration settings:
00
Disable interrupt
01
10
Enable interrupt by falling edge
Enable interrupt by rising edge
11
Enable interrupt by both falling and rising edge
图 9-10. 外部中断控制寄存器, 高字节 (EXTICONH)
9-9
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
External Interrupt Control Register, Low Byte (EXTICONL)
F9H, Set 1, Bank 0, R/W
MSB
.7
.6
P1.3/INT3
.5
.4
P0.2/INT2
.3
.2
P0.1/INT1
.1
.0
LSB
P0.0/INT0
EXTICONL bit configuration settings:
00
Disable interrupt
01
10
Enable interrupt by falling edge
Enable interrupt by rising edge
11
Enable interrupt by both falling and rising edge
图 9-11. 外部中断控制寄存器, 低字节 (EXTICONL)
External Interrupt Pending Register (EXTIPND)
F7H, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
P1.7 P1.6 P1.5 P1.4 P1.3 P0.2 P0.1 P0.0
(INT7) (INT6) (INT5) (INT4) (INT3) (INT2) (INT1) (INT0)
EXTIPND bit configuration settings:
0
No interrupt pending (when read), clear pending bit (when write)
1
Interrupt is pending (when read)
图 9-12. 外部中断标志寄存器 (EXTIPND)
9-10
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P2 口
P2 口是一个8位都可单独配置的I/O口。可通过直接读写P2口数据寄存器P2 (地址:F2H, set 1, bank 0) 来访问P2
口。P2.0–P2.7 可用作输入(上拉/无上拉),输出(推挽或开漏)或设置成如下的复用功能:
— 低字节(P2.0-P2.3):SEG31SEG28, VBLDREF
— 高字节(P2.4-P2.7) :SEG27SEG24
P2 口控制寄存器 (P2CONH, P2CONL)
P2 有2个8位控制寄存器:控制P2.4-P2.7的P2CONH寄存器和控制P2.0P2.3的P2CONL寄存器。复位后,
P2CONH和 P2CONL寄存器被清除为 "00H",设置所有管脚为输入模式。可以通过控制寄存器来设置各个管脚为
输入或输出(推挽输出或开漏输出)或其复用功能:
对该口编程时,请记住在P2口控制寄存器中设置外设I/O 复用功能的同时,必须在相应的外设模块中使能该功能。
P2 口上拉电阻使能控制寄存器 (P2PUR)
使用P2 口上拉电阻使能控制寄存器 P2PUR (ECH, set 1, bank 0)可以设置P2口各管脚的上拉电阻。
Port 2 Control Register, High Byte (P2CONH)
EAH, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
P2.7/SEG24 P2.6/SEG25 P2.5/SEG26 P2.4/SEG27
P2CONH bit-pair pin configuration settings:
00
Input mode
01
N-channel open-drain output mode
10
Push-pull output mode
11
Alternative function (SEG24-SEG27)
图 9-13. P2 口控制寄存器高字节 (P2CONH)
9-11
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Port 2 Control Register, Low Byte (P2CONL)
EBH, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
P2.3/SEG28 P2.2/SEG29 P2.1/SEG30
.0
LSB
P2.0/SEG31/VBLDREF
P2CONL bit-pair pin configuration settings:
00
Input mode
01
N-channel open-drain output mode
10
Push-pull output mode
11
Alternative function (SEG28-SEG31/VBLDREF)
图 9-14. P2 口控制寄存器低字节 (P2CONL)
Port 2 Pull-up Control Register (P2PUR)
ECH, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
LSB
P2PUR bit configuration settings:
0
Disable pull-up resistor
1
Enable pull-up resistor
注释 : 当相应的管脚被设置为推挽输出或其复用功能时 ,其上拉电阻自动
被禁止
图 9-15. P2 口上拉电阻使能控制寄存器 (P2PUR)
9-12
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P3 口
P3 口是一个8位都可单独配置的I/O口。可通过直接读写P3口数据寄存器P3 (地址:F3H, set 1, bank 0) 来访问P3
口。P3.0–P3.7 可用作输入(上拉/无上拉),输出(推挽或开漏)或设置成如下的复用功能:
— 低字节(P3.0-P3.3): SEG23-SEG20
— 高字节(P3.4-P3.7): SEG19-SEG16
P3 口控制寄存器 (P3CONH, P3CONL)
P3 有2个8位控制寄存器:控制P3.4-P3.7的P3CONH寄存器和控制P3.0P3.3的P3CONL寄存器。复位后,
P3CONH和 P3CONL寄存器被清除为 "00H",设置所有管脚为输入模式。可以通过控制寄存器来设置各个管脚为
输入或输出(推挽输出或开漏输出)或其复用功能:
对该口编程时,请记住在P3口控制寄存器中设置外设I/O 复用功能的同时,必须在相应的外设模块中使能该功能。
P3 口上拉电阻使能控制寄存器 (P3PUR)
使用P3 口上拉电阻使能控制寄存器 P3PUR (EFH, set 1, bank 0)可以设置P3口各管脚的上拉电阻。
Port 3 Control Register, High Byte (P3CONH)
EDH, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
P3.7/SEG16 P3.6/SEG17 P3.5/SEG18 P3.4/SEG19
P3CONH bit-pair pin configuration settings:
00
Input mode
01
N-channel open-drain output mode
10
Push-pull output mode
11
Alternative fumction (SEG16-SEG19)
图 9-16. P3 口控制寄存器高字节 (P3CONH)
9-13
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Port 3 Control Register, Low Byte (P3CONL)
EEH, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
P3.3/SEG20 P3.2/SEG21 P3.1/SEG22 P3.0/SEG23
P3CONL bit-pair pin configuration settings:
00
Input mode
01
N-channel open-drain output mode
10
Push-pull output mode
11
Alternative function (SEG20-SEG23)
图 9-17. P3 控制寄存器低字节(P3CONL)
Port 3 Pull-up Control Register (P3PUR)
EFH, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
LSB
P3PUR bit configuration settings:
0
Disable pull-up resistor
1
Enable pull-up resistor
注释 : 当相应的管脚被设置为推挽输出或其复用功能时 ,其上拉电阻自动
被禁止
图 9-18. P3 上拉电阻使能控制寄存器 (P3PUR)
9-14
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P4 口
P4 口是一个8位都可单独配置的I/O口。可通过直接读写P4口数据寄存器P4 (地址:F4H, set 1, bank 0) 来访问P4
口。P4.0–P4.7 可用作输入(上拉/无上拉),推挽输出或设置成如下的复用功能:
— 低字节(P4.0-P4.3): SEG15-SEG12
— 高字节(P4.4-P4.7): SEG11-SEG8
P4 口控制寄存器 (P4CONH, P4CONL)
P4有2个8位控制寄存器:控制P4.4-P4.7的P4CONH寄存器和控制P4.0P4.3的P4CONL寄存器。复位后,
P4CONH和 P4CONL寄存器被清除为 "00H",设置所有管脚为输入模式。可以通过控制寄存器来设置各个管脚为
输入(上拉/无上拉)或推挽输出或其复用功能:
对该口编程时,请记住在P4口控制寄存器中设置外设I/O 复用功能的同时,必须在相应的外设模块中使能该功能。
Port 4 Control Register, High Byte (P4CONH)
E9H, Set 1, Bank 1, R/W
MSB
.7
.6
P4.7/SEG8
.5
.4
.3
.2
.1
.0
LSB
P4.6/SEG9 P4.5/SEG10 P4.4/SEG11
P4CONH bit-pair pin configuration settings:
00
Input mode
01
Input with pull-up resistor
10
Push-pull output mode
11
Alternative function (SEG8-SEG11)
图 9-19. P4 口控制寄存器高字节(P4CONH)
9-15
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Port 4 Control Register, Low Byte (P4CONL)
EAH, Set 1, Bank 1, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
P4.3/SEG12 P4.2/SEG13 P4.1/SEG14 P4.0/SEG15
P4CONH bit-pair pin configuration settings:
00
Input mode
01
Input with pull-up resistor
10
Push-pull output mode
11
Alternative function (SEG12-SEG15)
图 9-20. P4 控制寄存器低字节 (P4CONL)
9-16
LSB
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P5 口
P5 口是一个8位都可单独配置的I/O口。可通过直接读写P5口数据寄存器P5 (地址:F5H, set 1, bank 0) 来访问P5
口。P5.0–P5.7 可用作输入(上拉/无上拉),推挽输出或设置成如下的复用功能:
— 低字节(P5.0-P5.3): SEG7SEG4
— 高字节(P5.4-P5.7): SEG3SEG0
P5 口控制寄存器 (P5CONH, P5CONL)
P5有2个8位控制寄存器:控制P5.4-P5.7的P5CONH寄存器和控制P50P5.3的P5CONL寄存器。复位后,
P5CONH和 P5CONL寄存器被清除为 "00H",设置所有管脚为输入模式。可以通过控制寄存器来设置各个管脚为
输入(上拉/无上拉) 或 推挽输出 或 其复用功能:
对该口编程时,请记住在P5口控制寄存器中设置外设I/O 复用功能的同时,必须在相应的外设模块中使能该功能。
Port 5 Control Register, High Byte (P5CONH)
EBH, Set 1, Bank 1, R/W
MSB
.7
.6
P5.7/SEG0
.5
.4
P5.6/SEG1
.3
.2
P5.5/SEG2
.1
.0
LSB
P5.4/SEG3
P5CONH bit-pair pin configuration settings:
00
Input mode
01
Input with pull-up resistor
10
Push-pull output mode
11
Alternative function (SEG0-SEG3)
图 9-21. P5 口控制寄存器高字节 (P5CONH)
9-17
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Port 5 Control Register, Low Byte (P5CONL)
ECH, Set 1, Bank 1, R/W
MSB
.7
.6
P5.3/SEG4
.5
.4
P5.2/SEG5
.3
.2
P5.1/SEG6
.1
P5.0/SEG7
P5CONL bit-pair pin configuration settings:
00
Input mode
01
Input with pull-up resistor
10
Push-pull output mode
11
Alternative function (SEG4-SEG7)
图 9-22. P5 控制寄存器低字节 (P5CONL)
9-18
.0
LSB
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
P6 口
P6 口是一个4位都可单独配置的I/O口。可通过直接读写P6口数据寄存器P6 (地址:F6H, set 1, bank 0) 来访问P6
口。P6.0–P6.3 可用作输入(上拉/无上拉),推挽输出或设置成如下的复用功能:
— 低字节(P6.0-P6.3): COM0COM3
P6 口控制寄存器 (P6CON)
P6有1个8位控制寄存器P6CON, 控制P6.0-P6.3。复位后,P6CON寄存器被清除为 "00H",设置所有管脚为输入
模式。可以通过控制寄存器来设置各个管脚为输入(上拉/无上拉) 或 推挽输出 或 其复用功能:
对该口编程时,请记住在P6口控制寄存器中设置外设I/O 复用功能的同时,必须在相应的外设模块中使能该功能。
Port 6 Control Register (P6CON)
EDH, Set 1, Bank 1, R/W
MSB
.7
.6
P6.3/COM3
.5
.4
P6.2/COM2
.3
.2
P6.1/COM1
.1
.0
LSB
P6.0/COM0
P6CON bit-pair pin configuration settings:
00
Input mode
01
Input with pull-up resistor
10
Push-pull output mode
11
Alternative function (COM3-COM0)
图 9-23. P6 口控制寄存器 (P6CON)
9-19
I/O 口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
9-20
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
10
BASICT IMER
BASIC TIMER
概述
Basic Timer 主要应用在两个方面:
— 当系统出现异常时,Basic Timer 作为看门狗定时器,自动复位芯片。
— 在复位或退出 STOP 模式后,用于延时以稳定振荡。
Basic Timer 单元包含以下几个部分:
— 时钟分频器(fosc/4096/1024/128/16)
— 8 位 Basic Timer 计数器 BTCNT (地址:FDH,Set 1, Bank 0,只读)
— Basic Timer 控制寄存器 BTCON (地址:D3H,Set 1,可读/写)
10-1
BASIC TIMER
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BASIC TIMER控制寄存器 (BTCON)
Basic Timer 控制寄存器 BTCON,用于选择输入时钟频率、清除 BT 计数器和分频器、禁止或使能看门狗功能。它
的物理地址位于D3H,set 1,可通过寄存器寻址模式进行读/写。
复位后,BTCON 被清零为“00H”,该选项将使能看门狗功能,并选择 BT 的时钟为 fxx/4096。如果想禁用看门狗
功能,必须将 Basic Timer 控制寄存器的高四位 BTCON.7–BTCON.4 设置为“1010B”。
在正常操作情况下,可以写“1”到 BTCON.1 来清零 8 位 Basic Timer 计数器 BTCNT (set 1, bank 0, FDH)。也可
以写“1”到BTCON.0 位,来清除 Basic Timer 输入时钟的分频器。
Basic Timer Control Register (BTCON)
D3H, Set 1, R/W
MSB
.7
.6
.5
.4
.3
Watchdog function enable bits:
= Disable watchdog timer
1010B
Other values = Enable watchdog timer
.2
.1
.0
LSB
Divider clear bit for all timers:
0 = No effect
1 = Clear divider
Basic timer counter clear bit:
0 = No effect
1 = Clear BTCNT
Basic timer input clock selection bits:
00 = fXX/4096
01 = fXX/1024
10 = fXX/128
11 = fXX/16
图 10-1. Basic Timer 控制寄存器 (BTCON)
10-2
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BASICT IMER
BASIC TIMER功能描述
看门狗定时器功能
可通过向 BTCON.7–BTCON.4 写入非―1010B‖的任意值(―1010B‖ 将禁用看门狗功能),来对basic timer溢出信号
(BTOVF)进行编程控制,以产生系统复位。复位时 BTCON清零,自动允许看门狗功能。同时选择 Basic Timer 的时
钟信号为 fxx/4096。
无论什么时候 BT 计数器溢出,都将产生复位。正常情况下,应用程序须防止计数器溢出,为此,每隔一段时间要
清除看门狗计数器 (写“1”到 BTCON.1)。
如果由于电路噪声或其它原因造成系统失灵,Basic Timer 的清零操作不会被执行,看门狗将复位芯片。换言之,在
正常运行期间,必须通过 BTCNT 的清零操作来打破 Basic Timer 的溢出循环(8位basic timer计数器BTCNT的第7位
溢出)。如果发生异常,自动产生复位。
振荡稳定功能
还可以用 Basic Timer 对复位或 STOP 模式唤醒时的振荡稳定时间进行定时。
在 STOP 模式下,每当复位或者外部中断发生,振荡电路开始运行。然后 BTCNT 寄存器按照 fxx/4096 的频率(复
位时)或者按照预设时钟 (对外部中断)开始计数。当 BTCNT.4 溢出时,将产生一个信号表明振荡稳定时间到,
CPU开始在稳定的时钟下开始工作。
总之,当系统从 STOP 模式退出时,以下的事件会依次发生:
1. 上电复位或外部中断产生,系统从 STOP 模式唤醒,振荡器起振。
2. 如果是复位操作,BTCNT 将以默认的时钟频率 fxx/4096 进行计数。如果是外部中断,BTCNT 寄存器按照预设
时钟频率计数。
3. 振荡稳定间隔计时开始,直到BTCNT第4位溢出为止。
4. 当BTCNT.4 溢出发生时,CPU 开始正常工作。
10-3
BASIC TIMER
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
RESET or STOP
Bit 1
Bits 3, 2
Basic Timer Control Register
(Write '1010xxxxB' to Disable)
Data Bus
fXX/4096
Clear
fXX/1024
fXX
DIV
fXX/128
fXX/16
R
MUX
8-Bit Up Counter
(BTCNT, Read-Only)
OVF
RESET
Start the CPU (NOTE)
Bit 0
注释: 上电复位期间,CPU在振荡稳定时间到来之前处于IDLE状态,直到basic timer计数器第4位溢出。
图 10-2. Basic Timer 模块框图
10-4
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
11
TIMER 1
TIMER 1
一个16位TIMER 模式 (TIMER 1)
16位timer 1可以用作1个16位 timer 或者2个8位timers 模式。如果TACON.7 设为"1", timer 1 用作一个16位
timer。如果TACON.7设为"0", timer 1用作 2个8位timers。

1个16位timer模式 (Timer 1)

2个8位timers模式(Timer A and B)
概述
这个16位Timer 是一个16位的通用timer/counter。Timer 1 通过设置T0CON寄存器可以选择任定时工作模式。
Timer 1 有如下的功能模块:
— 带多路复用的时钟分频器 (fxx /512,fxx /256,fxx C/64,fxx C/8,fxx /1和外部时钟:T1CLK)
— 1个16位计数器 (TACNT, TBCNT),1个16 位比较器以及16位数据寄存器 (TADATA, TBDATA)
— 产生Timer 1中断 (IRQ0, 中断向量地址 F0H)
— Timer 1 控制寄存器TACON (set 1, bank 1, E6H, 读/写)
功能描述
定时模式
Timer 1可产生一种中断,匹配中断(T1INT)。T0INT中断等级为IRQ0,分配了独立的向量地址F0H。
中断响应以后,T1INT标志位应该软件清零。T1INT标志位必须通过在应用子程序里给TACON.0写"0"来清零。
在定时模式中,当计数器的值与Timer 1参考数据寄存器TADATA, TBDATA的值相等时,生成一个匹配信号。匹配
信号生成一个Timer 1匹配中断 (T1INT,向量地址 F0H) 同时计数器清零。
例如,如果分别写32H和10H 到TADATA, TBDATA,TACON写8EH,计数器计数到3210H,产生T1中断请求,计
数器值复位,开始重新计数。
11-1
TIMER 1
Timer 1 控制寄存器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X TIMER 1
(TACON)
Timer 1 控制寄存器TACON可以:
— 选择Timer 1工作模式 (定时模式)
— 选择Timer 1 输入时钟频率
— 清零Timer 1 计数器 TACNT , TBCNT
— 使能Timer 1中断
— 清零Timer 1中断标志位
TACON 位于set 1,Bank 1的地址E6H,可以通过寄存器寻址模式读/写。
复位操作将置TACON为“00H”,这将设置Timer 1 禁止定时模式,选择输入的时钟频率为fxx/512,并禁止所有
Timer 1 中断。可以通过写“1” 到TACON.3随时清l零Timer 1计数器。
要是能Timer 1中断(IRQ 0, 中断向量 F0H),必须写“1”到TACON.7, TACON.2和TACON.1。为了产生精确的定
时,必须写"10B" 到TACON.3 和 TACON.0 ,这将清零计数器和中断标志寄存器。当中断响应后,必须通过软
件对中断标志位TACON.0写“0”来清除中断标志。
Timer 1/A Control Register (TACON)
E6H, Set 1, Bank 1, R/W
MSB
.7
.6
.5
Timer 1 operating mode selection bit:
0 = Two 8-bit timers mode (Timer A/B)
1 = One 16-bit timer mode (Timer 1)
Timer 1 clock selection bits:
000 = fxx/512
001 = fxx/256
010 = fxx/64
011 = fxx/8
100 = fxx
101 = fxt (sub clock)
110 = T1CLK (external clock)
111 = Not available
.4
.3
.2
.1
.0
Timer 1 interrupt pending bit:
0 = No interrupt pending (when read)
Clear pending bit (when write)
1 = Interrupt is pending (when read)
No effect (when write)
Timer 1 interrupt enable bit:
0 = Disable interrupt
1 = Enable interrupt
Timer 1 counter operating enable bit:
0 = Disable counting operation
1 = Enable counting operation
Timer 1 counter clear bit:
0 = No affect
1 = Clear the timer 1 counter (when write)
图 11-1. Timer 1/A 控制寄存器 (TACON)
11-2
LSB
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BTCON.0
R
TIMER 1
TACON.6-.4
1/512
Data Bus
1/256
fxx
(XIN or XTIN)
1/64
DIV
TACON.3
TACON.2
M
LSB
1/8
U
TBCNT
MSB
TACNTR
1/1
TACON.1
Match
X
fxt
Clear
16-Bit Comparator
T1INT
TACON.0
T1CLK
TAOUT
LSB
MSB
TBDATA TADATA
Buffer
Buffer
Match Signal
T1CLR
TBDATA TADATA
Data Bus
注释:一个16 位 timer 模式 ( TACON.7 <- "1": Timer 1)
图11-2. Timer 1 方框图 (一个16位Timer模式)
11-3
TIMER 1
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X TIMER 1
2个8位TIMERS模式 (TIMER A 和 B)
概述
8位timer A和B 都是通用8位timers. Timer A和B 通过设置寄存器TACON和TBCON来选择定时模式。
Timer A和B包括以下几个部分:
— 带多路复用的时钟分频器


对于timer A :fxx /512,fxx /256,fxx /64,
对于timer B :fxx /512,fxx /256,fxx /64,
fxx /8,fxx /1, fxt, 和外部时钟T1CLK
fxx /8 和 fxt
— 8位计数器 (TACNT, TBCNT), 8位比较器,和8位参考数据寄存器 (TADATA, TBDATA))
— Timer A 匹配输出(TAOUT)
— Timer A 匹配中断(IRQ 0, 中断向量F0H)
— Timer A 控制寄存器 TACON (set 1, bank 1, E6H, 读/写)
— Timer B 匹配输出(TBOUT)
— Timer B 匹配中断(IRQ 0, 中断向量F2H)
— Timer B 控制寄存器 TBCON (set 1, bank 1, E7H, 读/写)
功能描述
定时模式
Timer A和B可以产生timer A匹配中断(TAINT)和timer B匹配中断(TBINT)。TAINT的中断优先级为IRQ0, 分配了单
独的中断向量F0H. TBINT的中断优先级为IRQ0, 分配的单独的中断向量F2H.
中断响应以后,Timer A和B中断标志位必须通过软件清零。
在定时模式中,当计数器的值与TA或TB参考数据寄存器TADATA和TB0DATA的值相等时,生成一个匹配信号。匹
配信号生成一个匹配中断 (TAINT, 向量地址F0H; TBINT, 向量地址 F2H) 同时计数器清零。
例如,如果写"10H" 到 TBDATA,TACON.7写"0",TBCON写0EH,计数器计数到“10H”,产生timer B中断请求,
计数器值复位,开始重新计数。
Timer A和B 控制寄存器 (TACON, TBCON)
通过配置 Timer A 和 B 控制寄存器 TACON 和TBCON 可以实现:
— 使能 Timer A (计时器模式) 和 B 工作 (计时器模式)
— 选择Timer A和B 时钟源
— 清零 Timer A 和B计数器TACNT 和 TBCNT
— 使能 Timer A 和 B 中断
— 清零Timer A 和 B 中断标志位
11-4
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
TIMER 1
TACON 和 TBCON 地址分别为E6H 和 E7H, Set1 Bank1, 可用寄存器寻址模式读写访问。
复位后,TACON 为 "00H"。 这将会禁止Timer A定时模式,选择输入时钟频率为fxx/512,禁止Timer A 中断。
可以写"1"到 TACON.3在正常工作的任何时候清零Timer A 计数器。
复位后,TBCON 为 "00H"。这将会禁止Timer B定时模式,选择输入时钟频率为fxx/512,禁止Timer B 中断。
可以写"1"到 TBCON.3在正常工作的任何时候清零Timer A 计数器。
必须写"0"到TACON.7,写"1"到TACON.2(TBCON.2)和TACON.1(TBCON.1)来使能Timer A 中断 (TAINT) 和
Timer B(TBINT) 中断。为了产生精确的计时,应该写TACON.3(TBCON.3) 和 TACON.0 (TBCON.0) 来清零计数
器和中断标志位。当相应的中断服务子程序响应以后,中断标志位必须软件清零。可以通过写 "0" 到 TACON.1
和TBCON.0实现。
Timer 1/A Control Register (TACON)
E6H, Set 1, Bank 1, R/W
MSB
.7
.6
.5
Timer A operating mode selection bit:
0 = Two 8-bit timers mode (Timer A/B)
1 = One 16-bit timer mode (Timer 1)
Timer A clock selection bits:
000 = fxx/512
001 = fxx/256
010 = fxx/64
011 = fxx/8
100 = fxx
101 = fxt (sub clock)
110 = T1CLK (external clock)
111 = Not available
.4
.3
.2
.1
.0
LSB
Timer A interrupt pending bit:
0 = No interrupt pending (when read)
Clear pending bit (when write)
1 = Interrupt is pending (when read)
No effect (when write)
Timer A interrupt enable bit:
0 = Disable interrupt
1 = Enable interrupt
Timer A counter operating enable bit:
0 = Disable counting operation
1 = Enable counting operation
Timer A counter clear bit:
0 = No affect
1 = Clear the timer A counter (when write)
图 11-3. Timer 1/A 控制寄存器 (TACON)
11-5
TIMER 1
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Timer B Control Register (TBCON)
E7H, Set 1, Bank 1, R/W
MSB
.7
.6
.5
Not used for
S3C8275X/C8278X/C8274X
Timer B clock selection bits:
000 = fxx/512
001 = fxx/256
010 = fxx/64
011 = fxx/8
100 = fxt (sub clock)
Others = Not available
.4
.3
.2
.1
.0
LSB
Timer B interrupt pending bit:
0 = No interrupt pending (when read)
Clear pending bit (when write)
1 = Interrupt is pending (when read)
No effect (when write)
Timer B interrupt enable bit:
0 = Disable interrupt
1 = Enable interrupt
Timer B counter operating enable bit:
0 = Disable counting operation
1 = Enable counting operation
Timer B counter clear bit:
0 = No affect
1 = Clear the timer B counter (when write)
图 11-4. Timer B 控制寄存器 (TBCON)
11-6
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BTCON.0
R
TIMER 1
TACON.6-.4
1/512
1/256
fxx
(XIN or XTIN)
Data Bus
DIV
TACON.3
TACON.2
1/64
M
1/8
U
LSB
MSB
TACNT
8-bit up counter R
1/1
TACON.1
Match
X
fxt
Clear
8-Bit Comparator
TACON.0
TAINT
TAOUT
T1CLK
LSB
MSB
TADATA Buffer
Match Signal
TACLR
TADATA Register
Data Bus
注释:2个 8 位 timers 模式 ( TACON.7 <- "0": Timer A)
图 11-5. Timer A 框图 (2个8位timer模式)
11-7
TIMER 1
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
BTCON.0
R
TBCON.6-.4
1/512
Data Bus
1/256
fxx
(XIN or XTIN)
DIV
1/64
1/8
M
U
TBCON.3
TBCON.2
LSB
MSB
8-Bit timer counter
R
TBCNT
X
fxt
Clear
TBCON.1
Match
8-Bit Comparator
TBCON.0
TBINT
TBOUT
LSB
MSB
TBDATA Buffer
Match Signal
TBCLR
TBDATA Register
Data Bus
注释:2个 8 位 timers 模式 (TACON.7 <- "0": Timer B)
图 11-6. Timer B 框图 (2个8位timer模式)
11-8
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
12
钟表定时器
钟表定时器
概述
钟表定时器的功能包括实时时钟,时间测量以及为系统时钟提供间隔定时。为了启动钟表定时器,将控制寄存器的
第 1 位(WTCON.1)设置为 "1"。如果希望使用钟表定时器的溢出中断(IRQ 2, 地址E6H),还要将WTCON.1设
置为"1"。
钟表定时器溢出中断标志(WTCON.0)必须在应用程序中进行软件清零,也就是向WTCON.0写入"0"。
钟表定时器启动之后经过一段时间,中断标志会被自动置"1",中断请求以3.91ms, 0.25s, 0.5s 或 1s的间隔发生,
这由钟表定时器的速度设置(WTCON.3–.2) 决定。
钟表定时器可以产生 稳定的0.5 kHz, 1 kHz, 2 kHz 或4 kHz信号,送到蜂鸣器输出管脚 (BUZ)。将WTCON.3 和
WTCON.2 设置为"11b",钟表定时器将工作于高速模式,每隔 1.955ms 产生一次中断。在程序调试时可使用高速
模式来对事件定时。
同时,可以通过设置WTCON.7来选择钟表定时器的时钟源。
钟表定时器为LCD控制器提供时钟频率(fLCD)。因此,如果禁止watch timer,LCD控制器将不能工作。
钟表定时器包含以下组成部分:
— 实时时钟和时间测量
— 时钟源可使用主系统时钟或副系统时钟(主时钟分频系数 27(fx/128) 或 副时钟(fxt))
— LCD控制器时钟 (fLCD)生成
— 蜂鸣器频率输出引脚(P0.7, BUZ)
— 高速模式下的时序测试
— 钟表定时器溢出中断(IRQ2, 地址 F6H) 发生
— 钟表定时器控制寄存器, WTCON (set 1, bank 0, E1H, 读/写)
12-1
钟表定时器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
钟表定时器控制寄存器 (WTCON: R/W)
钟表定时器控制寄存器,WTCON,用于选择定时器中断间隔和蜂鸣器信号、使能或禁止watch timer功能。它位于
set 1,bank 1,地址E1H,可通过寄存器寻址模式进行读/写。
复位后WTCON 清零,这将禁用钟表定时器功能。
所以,如果想使用钟表定时器,必须对WTCON寄存器写入适当的值。
Watch Timer Control Register (WTCON)
E1H, Set 1, Bank 1, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
Buzzer signal selection bits:
00 = 0.5 kHz
01 = 1 kHz
10 = 2 kHz
11 = 4 kHz
Watch timer Enable/Disable bit:
0 = Disable watch timer;
clear frequency dividing circuits
1 = Enable watch timer
Watch timer speed selection bits:
00 = Set watch timer interrupt to 1 s
01 = Set watch timer interrupt to 0.5 s
10 = Set watch timer interrupt to 0.25 s
11 = Set watch timer interrupt to 3.91 ms
图12-1. 钟表定时器控制寄存器(WTCON)
14-2
LSB
Watch timer interrupt pending bit:
0 = Interrupt request is not pending
(Clear pending bit when write"0")
1 = Interrupt request is pending
Watch timer clock selection bit:
0 = Select main clock divided by 27 (fx/128)
1 = Select sub clock (fxt)
Watch timer INT Enable/Disable bit:
0 = Disable watch timer INT
1 = Enable watch timer INT
.0
钟表定时器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
钟表定时器电路图
WTCON.7
WTCON.6
WT INT Enable
BUZ (P0.7)
WTCON.6
WTCON.5
8
MUX
WTCON.4
WTCON.3
WTCON.2
WTCON.1
WTINT
fW/64 (0.5 kHz)
fW/32 (1 kHz)
fW/16 (2 kHz)
fW/8 (4 kHz)
Enable/Disable
Selector
Circuit
WTCON.0
WTCON.0
(Pending Bit)
Clock
Selector
fW
32.768 kHz
Frequency
Dividing
Circuit
fW/27
fW/213
fW/214
fW/215 (1 Hz)
fLCD = 2048 Hz
fxt
fx/128
fX = Main clock (where fx = 4.19 MHz)
fxt = Sub clock (32.768 kHz)
fW = Watch timer frequency
图 13-2. 钟表定时器电路框图
12-3
钟表定时器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
14-4
LCD 控制器/驱动器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
13
LCD 控制器/驱动器
概述
S3C8275X/C8278X/C8274X 微控制器可以直接驱动最多 128 点阵 (32 segments x 4 commons)的 LCD 面板。
LCD 模块包括以下部分:
— LCD 控制器/驱动器
— 存储显示数据的显示RAM
(00H0FH, 第2页)
— 32 个segment 输出管脚 (SEG0–SEG31)
— 4 个common 输出管脚 (COM0–COM3)
— 3 个LCD供电电压管脚(VLC0–VLC2)
— LCD内部/外部电阻偏压
LCD控制寄存器LCON用来打开/关断LCD显示,选择帧频率,选择占空比和偏压比,控制流向用于LCD显示分压电
阻的电流。LCD对比度控制寄存器用来选择VLCD电压。写到LCD显示RAM里的数据自动传输到segment信号管
脚,不需要程序控制。
当选择副振作为LCD时钟源时,即使在主时钟STOP或者IDLE模式下LCD仍可以显示。
VLC0-VLC2
Data BUS
3
8
LCD
Controller/
Driver
COM0-COM3
4
SEG0-SEG31
32
图 13-1. LCD功能框图
13-1
LCD 控制器/驱动器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LCD 电路框图
SEG31/P2.0
Port
Latch
SEG/Port
Driver
SEG16/P3.7
SEG15/P4.0
Data BUS
SEG0/P5.7
LCD
Display
RAM
(200H-20FH)
COM/Port
Driver
fLCD
COM3/P6.3
COM2/P6.2
COM0/P6.0
Timing
Controller
LCON
LCD
Voltage
Controller
图 13-2. LCD 电路框图
13-2
VLC0
VLC1
VLC2
LCD 控制器/驱动器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LCD RAM 地址空间
RAM的第2页中的空间被用作LCD数据存储。当某个显示段的值为 "1",LCD显示打开;当某个显示段的值为
"0",LCD显示关闭。
COM0 b0 b4
COM1 b1 b5
COM2 b2 b6
COM3 b3 b7
SEG30
SEG31
SEG28
SEG29
SEG26
SEG27
SEG8
SEG9
SEG6
SEG7
SEG4
SEG5
SEG2
SEG3
SEG0
SEG1
显示RAM区的数据采用与信号FLCD 同步的直接内存访问(DMA)方式,通过管脚SEG0-SEG31送出。如果这些
RAM地址没有用作LCD显示,也可以用作一般用途。
b0 b4 b0 b4 b0 b4 b0 b4
b1 b5 b1 b5 b1 b5 b1 b5
b0 b4 b0 b4 b0 b4
b1 b5 b1 b5 b1 b5
b2 b6 b2 b6 b2 b6 b2 b6
b3 b7 b3 b7 b3 b7 b3 b7
b2 b6 b2 b6 b2 b6
b3 b7 b3 b7 b3 b7
200H 201H 202H 203H 204H
20DH 20EH 20FH
图 13-3. LCD 显示数据 RAM 结构图
表 13-1. LCD 时钟信号帧频
LCDCK 频率 (fLCD)
静态
1/2 占空比
1/3占空比
1/4占空比
64 Hz
64
32
21
16
128 Hz
128
64
43
32
256Hz
256
128
85
64
512 Hz
512
256
171
128
13-3
LCD 控制器/驱动器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LCD 控制寄存器 (LCON)
LCON 位于 set 1, bank 1, E0H, 可读写,寄存器寻址模式。它包含以下功能:

LCD 占空比、偏压比选择

LCD 时钟选择

LCD 显示控制

内部/外部分压电阻偏压选择
LCON 寄存器可以控制打开关断 LCD 显示,可以选择占空比和偏压比,可以选择 LCD 时钟和控制LCD分压电
阻的电流流向。复位后, LCON 的值被清零。LCD 显示关断,占空比选择1/4,偏压比选择 1/3,LCD 时钟选择
64Hz并使能LCD分压电阻。
The LCD时钟频率决定了每个segment输出COM信号的扫描频率。也被认为是LCD的帧频。既然LCD时钟由watch
timer(fw)产生,LCD显示打开的时候必须使能watch timer。
LCD Control Register (LCON)
E0H, Set 1, Bank 1, R/W
MS
B
.7
.6
.5
.4
.3
.2
Internal LCD dividing register enable bit:
0 = Enable internal LCD dividing resistors
1 = Disable internal LCD dividing resistors
LCD clock selection bits:
00 = fw/2 9 (64 Hz)
01 = fw/2 8 (128 Hz)
10 = fw/2 7 (256 Hz)
11 = fw/2 6 (512 Hz)
.0
LSB
LCD display control bit:
0 = Turn display off
(Turn off the P-Tr)
1 = Turn display on
(Turn on the P-Tr)
Not used for S3C8275X/C8278X/C8274X
LCD duty and bias selection bits:
000 = 1/4 duty, 1/3 bias
001 = 1/3 duty, 1/3 bias
010 = 1/3 duty, 1/2 bias
011 = 1/2 duty, 1/2 bias
1xx = Static
注释:
1. "x" 表示无关.
2. 当选择1/2偏压比时,偏压由VLC0, V LC1(VLC2 ), 和VSS 决定。
图 13-4. LCD 控制寄存器 (LCON)
13-4
.1
LCD 控制器/驱动器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
LCD 分压电阻
Static and 1/3 Bias
1/2 Bias
S3C8275X/C8278X/C8274X
S3C8275X/C8278X/C8274X
VDD
VDD
LCON.0
LCON.7 = 0: Enable internal resistors
VLC0
VLC1
VLC2
R
R
LCON.0
VLC1
VLCD
LCON.7 = 0: Enable internal resistors
VLC0
VLC2
R
R
R
VLCD
R
VSS
VSS
Voltage Dividing Resistor Adjustment
S3C8275X/C8278X/C8274X
VDD
LCON.0
LCON.7 = 1: Disable internal resistors
VLC0
R'
R'
VLC1
VLC2
VLCD
R'
VSS
注释:
1. R = 内部分压电阻。 电阻可由 LCON.7 断开。
2. R' = 外部分压电阻
图 13-5. 内部分压电阻连接
13-5
LCD 控制器/驱动器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
COMMON (COM) 信号
根据占空比选择不同的COM信号。
— 1/4 占空比,选择 COM0-COM3
— 1/3 占空比,选择 COM0-COM2
— 1/2 占空比,选择 COM0-COM1
SEGMENT (SEG) 信号
32个LCD segment 信号管脚连到RAM的第2页的相应显示区。RAM区的显示位与COM信号输出管脚同步。
当RAM区的显示位为 "1"时,相应的segment被选中。 当显示位为"0"时,说明相应的segment没有被选中。
Select
Non-Select
FR
1 Frame
COM
VLC0
VSS
SEG
VLC0
VSS
VLC0
VSS
-VLC0
COM-SEG
图 13-6. 静态显示模式下选中/非选中信号
13-6
LCD 控制器/驱动器
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Select
Non-Select
FR
1 Frame
VLC 0
VLC1, 2
COM
Vss
VLC 0
VLC1, 2
SEG
Vss
VLC 0
VLC1, 2
COM-SEG
Vss
-VLC1, 2
-VLC 0
图 13-7. 1/2占空比, 1/2偏压比显示模式下选中/非选中信号
Select
Non-Select
FR
1 Frame
COM
VLC0
VLC1
VLC2
VSS
SEG
VLC0
VLC1
VLC2
VSS
VLC0
VLC1
VLC2
VSS
-VLC2
-VLC1
-VLC0
COM-SEG
图 13-8. 1/3占空比, 1/3偏压比显示模式下选中/非选中信号
13-7
LCD 控制器/驱动器
3
0
1
2
3
SEG1.4 x C0
1 Frame
13-8
SEG5
0 1 1 0
.4 .5 .6 .7
SEG4
Data Register page 4, address B2H
LD B2H, #63h
1 1 0 0
SEG3
.0 .1 .2 .3
1 1 1 0
SEG2
图 13-9. 1/4占空比, 1/3 偏压比显示模式的LCD 信号和波形图示例
.4 .5 .6 .7
COM1
-SEG1
VLC0
VLC1
VLC2
VSS
-VLC2
-VLC1
-VLC0
0 1 0 1
COM1
-SEG0
VLC0
VLC1
VLC2
VSS
-VLC2
-VLC1
-VLC0
Data Register page 4, address B1H
LD B1H, #7Ah
COM0
-SEG1
VLC0
VLC1
VLC2
VSS
-VLC2
-VLC1
-VLC0
SEG1
COM0
-SEG0
VLC0
VLC1
VLC2
VSS
-VLC2
-VLC1
-VLC0
.0 .1 .2 .3
VLC0
VLC1
VLC2
VSS
1 1 0 0
SEG1
SEG1.7 x C3
SEG0
SEG0
VLC0
VLC1
VLC2
VSS
SEG0.3
SEG2.1 x C3
C1
.4 .5 .6 .7
VLC0
VLC1
VLC2
VSS
0 1 1 1
COM3
.0 .1 .2 .3
VLC0
VLC1
VLC2
VSS
SEG0.1 x C1
SEG2.0 x C2
SEG1.6
C0
COM2
SEG1.5 x C1
COM1
VLC0
VLC1
VLC2
VSS
SEG0.2 x C2
VLC0
VLC1
VLC2
VSS
SEG0.0 x C0
COM0
Data Register page 4, address B0H
LD B0H, #3Eh
2
COM2
COM3
FR
1
COM0
COM1
0
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
14
串行输入输出接口
串行输入输出接口
概述:
串行输入输出接口(SIO) 可以与各种外设进行串行数据通讯。SIO 模块主要包括:
— 8 位控制寄存器(SIOCON)
— 时钟选择逻辑
— 8 位数据缓冲器 (SIODATA)
— 8 位预分频器
— 3 位串行时钟计数器
— 串行数据输入/输出引脚 (SI, SO)
— 外部时钟输入引脚 (SCK)
SIO 模块可以接收和发送8位数据,其接收、发送速率由寄存器设定。为了实现灵活的数据传输速率,可以选择内
部或者外部时钟源。
编程流程:
SIO 模块的编程遵循以下基本的步骤:
1. 通过设置寄存器P1CONL寄存器,设置port 1中SIO对应的I/O口为SO, SCK, SI
2. 设置寄存器SIOCON,正确的配置SIO模块。SIOCON.2 必须设置为’1’以使能数据的移位。
3. 需要中断时,将中断使能位 (SIOCON.1) 置为 ‘1’。
4. 发送数据时,将要发送的数据写到数据缓冲器 SIODATA,并将 SIOCON.3 设为’1’,则开始发送数据。
5. 当数据接收/发送完成后, SIO中断标志位(SIOCON.0)置为’1’, 同时产生SIO中断请求。
14-1
串行输入输出接口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SIO控制寄存器 (SIOCON)
SIO 控制寄存器,SIOCON,地址为E1H,Set 1,Bank 0.设置SIO模块的以下功能:
— 时钟源选择 (内部或者外部)
— 中断使能控制
— 移位操作的边沿选择
— 清除3位计数器并开始移位操作
— 使能移位操作(发送)
— 模式选择(发送/接收 或 只接收)
— 数据方向选择 (高位在前或低位在前)
复位后,SIOCON的初始值为’00H’, 默认SIO选择内部时钟,工作在仅接收模式下,3位时钟计数器清零。禁止数
据移位操作(发送)和中断,选择数据方向为高位在前。
Serial I/O Module Control Register (SIOCON)
E1H, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
SIO shift clock selection bit:
0 = Internal clock (P.S Clock)
1 = External clock (SCK)
Data direction control bit:
0 = MSB-first mode
1 = LSB-first mode
SIO mode selection bit:
0 = Receive only mode
1 = Transmit/receive mode
Shift clock edge selection bit:
0 = TX at falling edges, Rx at rising edges
1 = TX at rising edges, Rx at falling edges
.3
.2
.1
.0
SIO interrupt pending bit:
0 = No interrupt pending
0 = Clear pending condition
(when write)
1 = Interrupt is pending
SIO interrupt enable bit:
0 = Disable SIO interrupt
1 = Enable SIO interrupt
SIO shift operation enable bit:
0 = Disable shifter and clock counter
1 = Enable shifter and clock counter
SIO counter clear and shift start bit:
0 = No action
1 = Clear 3-bit counter and start shifting
图 14-1.SIO 接口控制寄存器 (SIOCON)
14-2
LSB
串行输入输出接口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SIO 预分频寄存器 (SIOPS)
SIO 预分频寄存器,SIOPS,地址为 E3H,Set 1, Bank 0。SIOPS寄存器的值决定了SIO数据传输的波特率:
波特率 = 输入时钟频率(fxx/4) / (预分频值+ 1), 或外部输入时钟频率
SIO Pre-scaler Register (SIOPS)
E3H, Set 1, Bank 0, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
Baud rate = (fXX/4)/(SIOPS + 1)
图 14-2. SIO 预分频寄存器 (SIOPS)
SIO 模块框图
CLK
SIO INT
3-Bit Counter
Clear
SIOCON.0
Pending
SIOCON.1
(Interrupt Enable)
SIOCON.3
SIOCON.7
SIOCON.4
(Edge Select)
M
SCK
SIOPS (E3H, set 1, bank 0)
fxx/2
SIOCON.2
(Shift Enable)
8-bit P.S.
1/2
U
X
SIOCON.5
(Mode Select)
CLK 8-Bit SIO Shift Buffer
(SIODATA, E2H, set 1, bank 0)
8
SO
SIOCON.6
(LSB/MSB First
Mode Select)
SI
Data Bus
图 14-3. SIO 功能模块框图
14-3
串行输入输出接口
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
SIO 时序图 (SIO)
SCK
SI
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
SO
DO7
DO6
DO5
DO4
DO3
DO2
DO1
DO0
Transmit
Complete
SIO INT
Set SIOCON.3
图 14-4. SIO串行发送-接收模式 (下降沿发送,SIOCON.4 = 0)
SCK
SI
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
SO
DO7
DO6
DO5
DO4
DO3
DO2
DO1
DO0
Transmit
Complete
SIO INT
Set SIOCON.3
图 14-5. SIO串行发送-接收模式 (上升沿发送,SIOCON.4 = 1)
14-4
电池电压检测
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
15
电池电压检测
概述
S3C8275X/C8278X/C8274X内建一个BLD(电池电压检测)电路,用于检测电源电压跌落或者软件方式检测外部
输入电平。BLD电路的开关可由软件控制。因为BLD工作时的电流很大,所以建议非必要时将BLD保持关闭。BLD
阈值电压可以由软件设置。阈值电压可以设置成下列3种之一:
2.2 V, 2.4 V 或 2.8V (VDD 参考电压), 或者外部输入电平(外部参考电压)
BLD仅当BLDCON.3 置‘1’时工作。如果VDD 电平低于由BLDCON.2–.0位选择的参考电压时,BLDCON.4 将被置
‘1’。如果VDD 电平高于参考电压时,BLDCON.4 将被清零. 低功耗应用时,关闭BLD模块。
VDD Pin
fBLD
BLDCON.5
Battery
Level
Detector
BLDCON.4
BLD Out
MUX
BLDCON.3
VBLDREF/P2.0
Battery
Level
Setting
BLD Run
P2CONL.1-.0
BLDCON.2-0
ExtRef Input
Enable
Set the Level
图 15-1. 电池电压检测模块图
15-1
电池电压检测
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
电池电压检测控制寄存器 (BLDCON)
BLDCON.3 位控制电池电压检测的开关。系统初始化后VBLD 的值为2.2 V,通过选择电池电压检测控制寄存器
(BLDCON) 可将VBLD 设置成其它2个值。当向BLDCON中写入 3位数据时,内建的电阻串被选通并由此确定VBLD
的值。表 15-1显示了3个不同的VBLD 值。
Resistor String
Battery Level Detector Control Register
F4H, Set 1, Bank 1, R/W, Reset : 00H
MSB
.7
.6
.5
.4
.3
.2
.1
.0
Not used
RBLD
VIN
Mux
+
Comparator
BLD
OUT
VREF
Bias
VBAT
VBLDREF
fBLD
BANDGAP
BLD Enable/Disable
P2CONL.1-.0
注释:
1. BLDCON 的初始值为 #00H.
2. VREF 大约为 1 volt.
图 15-2. 电池电压检测电路和模块图
表 15-1. BLDCON 值和检测电压
BLDCON .2.0
0
0
0
2.2 V
1
0
1
2.4 V
0
1
1
2.8 V
其它
15-2
VBLD
不可用
LSB
嵌入式闪存接口
S3F8275X
16
嵌入式闪存接口
概述
本章只针对S3F8275X,因为只有S3F8275X有片上Full Flash。该Flash支持‗LDC‘指令访问。编程的最小单位是字
节,擦除的最小单位是扇区。用户可在任何时间往闪存里写数据。S3F8275X 16K字节闪存有两种工作模式:
— 用户编程模式:仅限于 S3F8275X
— 工具编程模式:参考第 19 章,S3F8275X/F8278X/F8274X FLASH MCU.
16-1
嵌入式闪存接口
S3F8275X
用户编程模式
用户编程模式支持扇区擦除、字节编程、字节读取和一种保护模式(Hard Lock 保护)。只有在工具编程模式下才
可以启动读保护,所以用户需要在编程工具上勾选读保护项,使得编程完成后的芯片进入读保护状态。
S3F8275X 内部集成了自升压电路,可以产生高电压。因此,不需要在VPP (Test)管脚另加12.5V的编程电压,只是
利用芯片内部逻辑电平就可以完成对闪存的操作。用户编程模式下的片上闪存编程是通过几个专用控制寄存器来实
现的。
闪存控制寄存器(用户编程模式)
闪存控制寄存器 (FMCON)
FMCON 寄存器只支持用户编程模式下选择闪存操作模式:扇区擦除、字节编程、和设置硬件锁。
Flash Memory Control Register (FMCON)
F0H, Set 1, Bank 1, R/W
MSB
.7
.6
.5
.4
.3
Flash memory mode selection bits:
0101 = Programming mode
1010 = Sector erase mode
0110 = Hard lock mode
others = Not available
.2
.1
.0
LSB
Flash operation start bit:
0 = Operation stop
1 = Operation start
(This bit will be cleared automatically
just after the corresponding operation
completed).
Not used for S3F8275X
Sector erase status bit:
0 = Success sector erase
1 = Fail sector erase
图 16-1. 闪存控制寄存器 (FMCON)
FMCON.0 是擦除和 Hard Lock 保护操作的开始位。因此,设置 FMCON.0 为―1‖,则开始擦除或 Hard Lock 保
护操作。在执行扇区擦除或Hard Lock后,需要等待一段时间才可以用‘LDC‘ 指令读或者写同一扇区的单元。闪存的
读写则不需要用到这一控制位。
扇区擦除状态位是只读的。在执行扇区擦除的过程中,即使在IMR寄存器中禁止了所有中断源,但是只要具体模块
的中断处于使能状态,并且满足中断触发条件而置起中断标志位,仍然会向CPU发出中断请求,此时扇区擦除操作
停止,CPU响应中断请求。所以,为了操作的可靠性,必须在擦除操作结束后检查扇区擦除状态位,如果为‘0‘ 则
表示操作成功,为‘1‘ 则表示操作失败,需要重新擦除。
注释:
当向FMUSR中写入"A5H" 后, FMCON的误操作或者程序跑飞都可能启动闪区擦除,用户编程或Hard Lock保护。需
要小心避免上述情况的发生。
16-2
嵌入式闪存接口
S3F8275X
闪存用户编程使能寄存器 (FMUSR)
FMUSR 寄存器是为闪存的安全操作设置的。当 CPU 由于电噪声或其它原因致使程序跑飞时,这个寄存器的状态
可以避免闪存的误操作。
复位后,由于FMUSR 的值为 ―00000000B‖,用户编程模式处于禁止状态。如需操作闪存,可通过设置 FMUSR
的值为 ―10100101B‖ 来使能用户编程模式。除 ―10100101B‖ 外的其它值,将禁止用户编程模式。
Flash Memory User Programming Enable Register (FMUSR)
F1H, Set 1, Bank 1, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
Flash memory user programming enable bits:
10100101: Enable user programming mode
Other values: Disable user programming mode
图 16-2. 闪存用户编程使能寄存器 (FMUSR)
16-3
嵌入式闪存接口
S3F8275X
闪存扇区地址寄存器
擦除或编程闪存需要两个8位扇区地址寄存器来指定操作地址。FMSECL(闪存扇区地址寄存器低字节)存储被操
作扇区基址的低 8 位地址,FMSECH(闪存扇区地址寄存器高字节)存储高8 位地址。
S3F8275X 8里有128个扇区,所以需要用到FMSECH。一个扇区由 128 个字节组成。每个扇区的起始地址不是
XX00H 就是 XX80H。所以 FMSECL 的低 7 位数据没有意义。但从操作的简单性来考虑,我们建议用户还是直
接向FMSECH 和 FMSECL 寄存器写入完整的扇区基址。
当编程闪存时,用户应该在确定扇区基址后再进行编程。如果下一个操作也是写入一字节数据,用户应该核对下一
个目的地址是否位于同一个扇区内。如果不在同一扇区,用户应该重新向 FMSECH 和 FMSECL 寄存器中写入新
的扇区基址。
Flash Memory Sector Address Register, High Byte (FMSECH)
F2H, Set 1, Bank 1, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
LSB
Flash Memory Setor Address (High Byte)
图 16-3. 闪存扇区地址寄存器高字节 (FMSECH)
Flash Memory Sector Address Register, Low Byte (FMSECL)
F3H, Set 1, Bank 1, R/W
MSB
.7
.6
.5
.4
.3
.2
.1
.0
Don't care
Flash Memory Sector Address (Low Byte)
图 16-4. 闪存扇区地址寄存器低字节 (FMSECL)
16-4
LSB
嵌入式闪存接口
S3F8275X
ISPTM (在板编程) 扇区
ISPTM 扇区可以用于存放在板编程代码(通过 I/O 接口实现软件升级的 Boot 代码)。出于安全考虑,―LDC‖指令
擦除或编程操作不会影响 ISPTM 扇区的内容,但是这要通过使能 ISP 保护来实现。
用户可以通过设置 Smart Option 中ISP使能禁止位为―0‖来使能芯片的 ISP 功能。如果不想使用 ISP 扇区,只要
将 Smart Option 中 ISP 使能禁止位设为―1‖,此时这个区域可以用作普通的程序存储空间。工具模式下,ISP 扇
区会失去保护,即通过串行编程工具还是可以擦除或编程该区域。
ISP 扇区的大小可以通过 Smart Option 来设置。根据在板编程代码的大小选择合适的 ISP 扇区尺寸。
(Decimal)
16,383
(HEX)
3FFFH
16K-bytes
Internal Program
Memory Area
8FFH
255
Available
ISP Sector Area
FFH
Interrupt Vector Area
3FH
Smart Option Area
3CH
0
00H
S3F8275X
图 16-5. 程序存储地址空间
16-5
嵌入式闪存接口
S3F8275X
表 17-1. ISP 扇区大小
Smart Option (003EH) ISP扇区大小选择位
注释:
位 2
位 1
位 0
1
0
0
0
0
x
0
0
1
1
x
0
1
0
1
ISP 扇区
ISP 扇区大小
0
100H – 1FFH
100H – 2FFH
100H – 4FFH
100H – 8FFH
0
256 Bytes
512 Bytes
1024 Bytes
2048 Bytes
在用户模式下,通过 Smart Option 位(3E.2-3E.0)设置的 ISP 扇区空间内,用 LDC 指令实现的擦除和编程操作都
是无效的。
ISP复位向量和 ISP 扇区大小的关系
用户使能ISP 保护功能(3EH.2 = 0)并且选择了 OBP 复位向量(3EH.7 = 0)后,需要通过设置 ISP 复位向量
地址选择位(3E.7-.5)来选择恰当的 CPU 复位地址(参考表 16-2)。
表 17-2. 复位向量地址
Smart Option (003EH)
ISP 复位向量地址选择
位 7
位 6
位 5
1
0
0
0
0
x
0
0
1
1
x
0
1
0
1
上电复位后的复位向
量地址
存放ISP代码的空间
ISP 扇区大小
0100H
0200H
0300H
0500H
0900H
0
100H – 1FFH
100H – 2FFH
100H – 4FFH
100H – 8FFH
0
256 Bytes
512 Bytes
1024 Bytes
2048 Bytes
注释: Smart Option 中 ISP 复位向量选择位(003EH.7 – 003EH.5)和 ISP 保护扇区选择(003EH.2 – 003EH.0)是相互独
立的。所以设置的时候要注意一致性。
16-6
嵌入式闪存接口
S3F8275X
扇区擦除
用户只能在用户编程模式下利用扇区擦除操作来部分擦除闪存。在用户编程模式下,擦除闪存的唯一单元是扇区。
S3F8275X的 16K 字节闪存空间分为 128 个扇区。 每个扇区大小为 128 个字节。因此,在对闪存内单个或多个
字节进行编程前,必须先擦除目的地址所在的扇区。在设置完被擦扇区的扇区地址并置高擦除起始位(FMCON.0)
开始擦除后,至少需要 10 ms 来完成擦除操作。工具编程模式不支持扇区擦除(MDS 模式工具或编程工具)。
3FFFH
Sector 127 (128 Byte)
Sector 126 (128 Byte)
3F7FH
3EFFH
1FFFH
Sector 63 (128 Byte)
1F7FH
05FFH
Sector 11 (128 Byte)
057FH
Sector 10 (128 Byte)
Sector 0-9
(128 byte x 10)
0500H
04FFH
0000H
S3F8275X
图 16-6. 用户编程模式下的扇区
16-7
嵌入式闪存接口
S3F8275X
用户编程模式下扇区擦除流程
1. 设置闪存用户编程使能寄存器 (FMUSR) 为―10100101B‖。
2. 设置闪存扇区地址寄存器 (FMSECH 和 FMSECL)。
3. 设置闪存控制寄存器 (FMCON) 为―10100001B‖。
4. 设置闪存用户编程使能寄存器 (FMUSR) 为―00000000B‖。
5. 检查 "扇区擦除状态位" 判断扇区擦除操作是否成功。
编程实例 — 扇区擦除


reErase:
SB1
LD
LD
LD
CP
JR
LD
NOP
NOP
LD
TM
JR
FMUSR,#0A5H
; 使能用户擦除模式
FMSECH,#10H
FMSECL,#00H
; 设置扇区地址 (1000H  107FH)
UserID_Code,#User_value ; 检查用户ID (用户自设)
; User_value 可以是用户设定的任何值
NE,Not_ID_Code
; 如果不相等,跳转到Not_ID_Code
FMCON,#10100001B
; 开始扇区擦除
; 必须的空指令
; 必须的空指令
FMUSR,#0
; 关闭用户模式
FMCON,#00001000B
; 检查 "Sector erase status bit"
NZ,reErase
; 擦除失败则跳转 reErase




Not_ID_Code:
SB1
LD




16-8
FMUSR,#0
; 关闭用户模式
嵌入式闪存接口
S3F8275X
编程
扇区擦除后,闪存编程操作是以一个字节为单位来进行的。从代码安全的角度考虑,必须在编程前必须在FMSECH
和FMSECL设置合适的值。
由―LDC‖指令开始编程写操作。
在不改变 FMSECH 和 FMSECL 的值之前,最多可连续写128个字节, 因为扇区大小就是128字节.
所以如果一次编程字节超多128 字节则必须重新设置寄存器 FMSECH 和 FMSECL的值。
用户编程模式下的编程流程
1. 编程前必须保证编程地址中的值为―FFH‖(可以通过扇区擦除来实现)。
2. 设置闪存用户编程使能寄存器 (FMUSR) 为―10100101B‖。
3. 设置闪存扇区地址寄存器 (FMSECH 和 FMSECL) 为要写数据的扇区基地址的值
4. 把闪存的高位地址放进对工作寄存器的高地址寄存器中。
5. 把闪存的低位地址放进对工作寄存器的低地址寄存器中。
6. 把要发送的数据放到一个工作寄存器中。
7. 检查用户ID
(用户自设)
8. 设置闪存控制寄存器 (FMCON) 为―01010001B‖。
9. 用―LDC‖指令,通过间接寻址方式把要发送的数据写入闪存地址区。
10. 设置闪存用户编程使能寄存器 (FMUSR) 为―00000000B‖,以关闭用户编程模式。
16-9
嵌入式闪存接口
S3F8275X
编程实例 — 编程



SB1
LD
LD
LD
LD
LD
LD
CP
JR
LD
LDC
NOP
LD
FMUSR,#0A5H
; 使能用户编程模式
FMSECH,#17H
FMSECL,#80H
; 设置扇区地址(1780H17FFH)
R2,#17H
; 设置目标地址(同一扇区)
R3,#84H
R4,#78H
; 临时数据
UserID_Code,#User_value ; 检查用户ID (用户自设)
; User_value 可以是用户设定的任何值
NE,Not_ID_Code
; 不相同则跳转到Not_ID_Code
FMCON,#01010001B
; 开始编程
@RR2,R4
; 写入数据
; 必须的空指令
FMUSR,#0
; 关闭用户编程模式




Not_ID_Code:
SB1
LD




16-10
FMUSR,#0
; 关闭用户编程模式
嵌入式闪存接口
S3F8275X
读
由―LDC‖指令开始读操作。
用户编程模式下编程流程
1.
把闪存的高位地址放进对工作寄存器的高地址寄存器中
2.
把闪存的低位地址放进对工作寄存器的低地址寄存器中
3.
用―LDC‖指令,通过间接寻址方式从闪存区读取数据。
编程实例 — 读


LOOP:
LD
LD
LDC
R2,#3H
R3,#0
R0,@RR2
INC
CP
JP
R3
R3,#0H
NZ,LOOP
; 把闪存的高位地址放进工作寄存器对的高地址寄存器中
; 低位地址放进工作寄存器对的低地址寄存器中
; 从闪存区读数据
; (在 300H 和 3FFH之间)




16-11
嵌入式闪存接口
S3F8275X
HARD LOCK 保护
用户可通过写 ‗0110B‘ 到 FMCON7-4 开启 Hard Lock 保护。这个功能可以防止闪存区数据的变化。如果启用这
个功能,用户就不能往闪存里写或擦除数据。可通过在工具编程模式下,执行片擦除操作来接触这种保护。
在用户编程模式下,设置 Hard Lock 保护的流程如下。工具模式下,工具的制造商通过编程选项支持硬件保护。
具体请参照制造商提供的编程工具用户说明书。
用户编程模式下的编程流程
1.
设置闪存用户编程使能寄存器 (FMUSR) 为―10100101B‖。
2.
检查设置闪存控制寄存器 (FMCON) 为―01100001B‖。
3.
检查用户ID
4.
设置闪存用户编程使能寄存器 (FMUSR) 为―00000000B‖。
(用户自设)
编程实例 — Hard Lock 保护



SB1
LD
CP
JR
LD
NOP
LD
FMUSR,#0A5H
; 使能用户编程模式
UserID_Code,#User_value ; 检查用户ID (用户自设)
; User_value 可以是用户设定的任何值
NE,Not_ID_Code
; 如果不相等,则跳转 Not_ID_Code
FMCON,#01100001B
; 选择Hard Lock 模式并开始保护
; 必须的空指令
FMUSR,#0
; 关闭用户编程模式




Not_ID_Code:
SB1
LD




16-12
FMUSR,#0
; 关闭用户编程模式
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
17
电气参数
电气参数
概述
本章将以表格或图表的方式提供 S3C8275X/C8278X/C8274X的电气参数。按如下顺序排列:

芯片极限物理特性

直流电气特性

STOP 模式下,RAM数据保持电压

外部中断唤醒Stop 模式时序

Stop 模式下复位时序

输入/ 输出电容

交流电气特性

外部中断输入时序

复位信号时序

SIO 时序

BLD 电气特性

LVR 复位时序

振荡器特性

振荡器稳定时间

工作电压范围

内部 Flash ROM 电气特性
17-1
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 17-1. 芯片极限物理特性
(TA =
25 C)
参数
标号
条件
供电电压
VDD

输入电压
VI
输出电压
VO
I/O 口输出电流
I OH
I/O 口输入电流
I OL
范围
 0.3
P0–6 口

单位
 + 4.6
V
 0.3
 VDD + 0.3
V
 0.3

V
VDD + 0.3
单个 I/O 口工作
 15
所有 I/O 口工作
 60
单个 I/O 口工作
+ 30 (峰值)
所有的 I/O 口的电流之和
+ 100 (峰值)
mA
mA
工作温度
TA

 25

+ 85
C
储藏温度
TSTG

 65

+ 150
C
表 17-2. 直流电气特性
(TA =
 25 C
参数
工作电压
输入高电平
输入低电平
输出高电平
输出低电平

+ 85 C, VDD =
标号
VDD
2.0 V

3.6 V)
条件
最小值
典型值
最大值
单位
fx = 0.4  4.2MHz, fxt = 32.8kHz
2.0

3.6
V
fx = 0.4  8.0MHz
2.5

3.6

VDD
VIH1
除VIH2, VIH3外所有输入管脚
0.7 VDD
VIH2
P0-1 口, nRESET
0.8 VDD
VDD
VIH3
XIN, XOUT 以及 XTIN, XTOUT
VDD – 0.1
VDD
VIL1
除VIL2, VIL3外所有输入管脚


0.3 VDD
VIL2
P0-1 口, nRESET


0.2 VDD
VIL3
XIN, XOUT, 以及XTIN, XTOUT


0.1
VOH
VDD = 2.7  3.6 V;
所有输出管脚; IOH =
VDD – 1.0

–
V
V
V
1 mA
VOL1
VDD = 2.7  3.6 V
IOL = 15mA
P0-1 口


1.0
V
VOL2
VDD = 2.7  3.6 V
IOL = 10mA


1.0
V


3
A
除 VOL1外所有输出管脚
输入高电平漏电流
17-2
ILIH1
VI = VDD
除 ILIH2外所有输入管脚
ILIH2
VI = VDD
XIN, XOUT, XTIN, XTOUT
20
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 17-2. 直流电气特性 (续)
(TA =
 25C

+ 85C, VDD =
参数
标号
输入低电平漏电流
ILIL1
2.0 V

3.6 V)
最小值
典型值
最大值
单位
VI = 0 V;
除 nRESET, ILIL2外所有输入管
脚


–3
A
ILIL2
VI = 0 V;
XIN, XOUT, XTIN, XTOUT


–20
输出高电平漏电流
ILOH
VO = VDD
所有输出管脚


3
输出低电平漏电流
ILOL
VO = 0 V
所有输出管脚


–3
上拉电阻
RL1
VI = 0 V; VDD = 3V, TA = 25C
P0–6 口
40
70
100
RL2
VI = 0 V; VDD = 3V, TA = 25C
nRESET
220
360
500
ROSC1
VDD = 3 V, TA = 25 C
XIN = VDD, XOUT = 0V
600
1700
3000
ROSC2
VDD = 3 V, TA = 25 C
XTIN = VDD, XTOUT = 0 V
2000
4000
8000
振荡器反馈电阻
条件
k
k
LCD 分压电阻
RLCD
TA = 25 C
60
110
160
k
VLCD-COMi
压降
(i = 0-3)
VDC
每个Common 管脚  15 A


120
mV
VLCD-SEGx压降
(x = 0–31)
VDS
每个Segment 管脚  15 A


120
VLC1
VDD = 2.7 V 到 3.6 V, 1/3 偏置
LCD 时钟= 0Hz, VLC0 = VDD
2/3VDD–0.2
2/3VDD
2/3VDD+ 0.2
1/3VDD–0.2
1/3VDD
1/3VDD+ 0.2
中间输出电压
(1)
VLC2
注释:
V
当VLC0 开路时的中间输出电压。
17-3
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 17-2. 直流电气特性 (续)
(TA =
 25C
参数
供电电流
(1)

+ 85C, VDD =
2.0 V
标号
IDD1(2)
IDD2(2)

3.6 V)
条件
最小值
典型值
最大值
单位

3.0
6.0
mA
Run 模式:
VDD = 3.3 V  0.3 V
8.0 MHz
石英晶体振荡器
C1 = C2 = 22pF
4.0 MHz
1.5
3.0
Idle模式:
VDD = 3.3 V  0.3 V
8.0 MHz
0.5
1.6
石英晶体振荡器
C1 = C2 = 22pF
4.0 MHz
0.4
1.2
IDD3(3)
Run 模式: VDD = 3.3 V  0.3 V,
32 kHz石英晶体振荡器
TA = 25 C, OSCCON.7=1
12.0
25.0
IDD4(3)
Idle模式: VDD = 3.3 V  0.3 V,
32 kHz 石英晶体振荡器
TA = 25 C, OSCCON.7=1
2.0
4.0
IDD5(4)
Stop 模式;
VDD = 3.3 V  0.3 V
0.2
2.0

10
TA = 25 C
TA = 25 C ~
+85 C
注释:
1. 供电电流不包括内部上拉电阻,LCD分压电阻,LVR模块消耗电流以及外部输出电流负载。
2. IDD1 和 IDD2 包含副时钟振荡的功耗。
3. IDD3 和 IDD4 是主时钟振荡停止,副时钟使用 (OSCCON.7 = 1) 时的电流。
4. IDD5 是主时钟和副时钟振荡都停止时的电流。
5. 表中所有值都是在系统时钟控制寄存器 (CLKCON.4–.3) 的位4-3设置成11B时的结果。
17-4
A
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 17-3.Stop 模式下数据保持电压
(TA
=
 25 C

+ 85 C)
参数
标号
条件
最小值
典型值
最大值
单位
数据保持所需的供电电压
VDDDR

2.0

3.6
V
数据保持所需的供电电流
IDDDR


1
A
Stop 模式, TA = 25 C
VDDDR = 2.0 V
禁止LVR 模块
Idle Mode
(Basic Timer Active)
~
~
Stop Mode
Normal
Operating Mode
Data Retention Mode
~
~
VDD
VDDDR
Execution of
STOP Instruction
0.8 VDD
tWAIT
注释 :
tWAIT 相当于 16 x 1/BT .
图 17-1. 外部中断唤醒Stop模式时序
17-5
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Oscillation
Stabilization
TIme
RESET
Occurs
~
~
Stop Mode
Normal
Operating Mode
Data Retention Mode
~
~
VDD
VDDDR
Execution of
STOP Instrction
nRESET
0.8 VDD
0.2 VDD
注释 :
tWAIT
tWAIT 相当于 16 1/BT.
图 17-2. Stop 模式下复位时序
表 17-4. 输入/输出电容
(TA =
25 C ~ + 85 C, VDD = 0 V)
参数
标号
条件
最小值
典型值
最大值
单位
输入电容
CIN
f = 1 MHz; 不测试的管脚接
VSS


10
pF
输出电容
COUT
I/O 口电容
17-6
CIO
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 17-5. 交流电气特性
(TA =
 25C

+ 85C, VDD = 2.0 V
参数
SCK 周期
SCK 高、低电平宽度
相对于SCK 高电平的SI建立时间
相对于SCK 高电平的SI保持时间
相对于SO的SCK 输出延时

3.6 V)
标号
条件
最小值
典型值
最大值
单位
tKCY
外部 SCK 源
1,000


ns
内部 SCK 源
1,000
外部 SCK 源
500
内部 SCK 源
tKCY/250
外部 SCK 源
250
内部 SCK 源
250
外部 SCK 源
400
内部 SCK 源
400
外部 SCK 源


300
ns
tKH, tKL
tSIK
tKSI
tKSO
内部 SCK 源
250
中断输入高、低电平宽度
tINTH,
tINTL
所有外部中断
VDD = 3 V
500
700

ns
nRESET 输入低电平宽度
tRSL
输入
VDD = 3 V
10


s
tINTL
External
Interrupt
tINTH
0.8 VDD
0.2 VDD
注释 : 单位 tCPU 表示一个 CPU 时钟周期 .
图 17-3. 外部中断时序
17-7
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
tRSL
nRESET
0.2 VDD
图 17-4. RESET输入时序
tKCY
tKL
tKH
SCK
0.8VDD
0.2VDD
tSIK
tKSI
0.8VDD
SI
0.2VDD
tKSO
SO
Output Data
图 17-5. 串行数据传输时序
17-8
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 17-6. 电池电压检测电气特性
(TA =
25C,
VDD = 2.0 V
参数
BLD工作电压

3.6 V)
标号
条件
最小值
典型值
最大值
单位
VDDBLD

2.0

3.6
V
BLDCON.2-.0 = 000b
2.0
2.2
2.4
BLDCON.2-.0 = 101b
2.15
2.4
2.65
BLDCON.2-.0 = 011b
2.5
2.8
3.1
VDD = 3.3 V

70
120
VDD = 2.2 V

50
100
VBLD
BLD电压
电流消耗
IBLD
A
BLD时滞电压
V
BLDCON.2-0 = 000b,
101b, 011b

10
100
mV
BLD 电路响应时间
TB
Fw = 32.768 kHz


1
ms
最小值
典型值
最大值
单位
2.0
2.2
2.4
V
表 17-7. LVR (低电压复位) 电气特性
(TA =
25C)
参数
LVR 电压
标号
VLVR
条件
TA = 25 C
VDD 电压上升时间
tR

10


s
VDD 电压关断时间
tOFF

0.5


s
V


10
100
mV

70
120
A
LVR 时滞电压
电流消耗
IDDPR
VDD = 3.3 V
注释:
1. 在 “Smart Option” 中使能LVR后,LVR电路就有电流消耗。
2.
只要芯片内部具有LVR,就会消耗一定的电流
tOFF
tR
VDD
0.9 VDD
0.1 VDD
图 17-6. LVR (低电压复位) 时序
17-9
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 17-8. 主振荡器特性
(TA
=
 25C

振荡器
+
85C)
时钟配置
石英振荡器
参数
主振荡器频率
C1
测试条件
最小
值
典型
值
最大
值
单位
2.5 V  3.6 V
0.4

8
MHz
2.0 V  3.6 V
0.4

4.2
2.5 V  3.6 V
0.4

8
2.0 V  3.6 V
0.4

4.2
2.5 V  3.6 V
0.4

8
2.0 V  3.6 V
0.4

4.2
3.3 V
0.4

1
MHz
XIN
XOUT
陶瓷振荡器
主振荡器频率
C1
XIN
XOUT
外部时钟源
XIN 管脚输入频率
XIN
XOUT
RC 振荡器
频率
XIN
R
XOUT
表 17-9. 副振荡器特性
(TA
=
 25C

振荡器
石英振荡器
+
85C)
时钟配置
参数
C1
测试条件
最小
值
典型值
最大
值
单位
副振荡频率
2.0 V  3.6 V
32
32.768
35
kHz
XTIN 管脚输入
频率
2.0 V  3.6 V
32

100
XTIN
XTOUT
VREG
104
外部时钟
XTIN
XTOUT
17-10
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 17-10. 主振荡器稳定时间
(TA
=
 25 C

+ 85 C, VDD = 2.0 V
振荡器
石英振荡器

3.6 V)
测试条件
fx > 1 MHz
最小值
典型值
最大值
单位


40
ms


10
ms
62.5

1250
ns
VDD 满足最小起振电压时振荡稳定。
陶瓷振荡器
外部时钟源
XIN 输入高低电平宽度 (tXH, tXL)
1/fx
tXL
tX
XIN
VDD-0.1 V
0.1 V
图 17-7. XIN 上测得的时钟时序
17-11
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 17-11. 副振荡稳定时间
(TA
=
 25 C
振荡器

+ 85 C, VDD = 2.0 V

测试条件
最小值
典型值
最大值
单位
–


10
s
5

15
s
石英振荡器
外部时钟源
3.6 V)
XTIN 输入高低电平宽度 (tXH, tXL)
1/fxt
tXTL
tXTH
XTIN
VDD-0.1 V
0.1 V
图 17-8. XTIN 上测得的时钟时序
17-12
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
Instruction Clock
fx (Main/Sub oscillation frequency)
2 MHz
8 MHz
1.05 MHz
4.2 MHz
6.25 kHz(main)/8.2 kHz(sub)
400 kHz (main)/32.8 kHz(sub)
1
2
3
2.5
3.6
4
Supply Voltage (V)
指令执行频率 = 1/4n x 振荡器频率 (n = 1, 2, 8, 16)
图 17-9. 工作电压范围
表17-12. 内部Flash ROM 电气特性
(TA
=
 25 C
参数

+ 85 C, VDD = 2.2 V

3.6 V)
标号
条件
最小值
典型值
最大值
单位
编程时间 (1)
Ftp

30


s
芯片擦除时间 (2)
Ftp1

50


ms
扇区擦除时间 (3)
Ftp2

10


ms
读频率
FtRS


25

ns
FNwe



10,000(4)
Times
写/擦除次数
注释:
1. 编程时间是编程一字节(8 位)所需要的时间。
2. 芯片擦除时间是擦除整个16K 字节所需要的时间。
3. 扇区擦除时间是擦除一个扇区内所有128 字节所需要的时间。
4. Full-flash(S3F8275X) 的最大擦写次数是10,000次,half flash的最大擦写次数是100次
5. 芯片擦除只在工具编程模式下可用。
17-13
电气参数
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
17-14
机械尺寸
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
18
机械尺寸
OVERVIEW概述
S3C8275X/C8278X/C8274X 现有的封装为 64管脚 QFP 和 LQFP 封装
23.90 0.30
0-8
20.00 0.20
14.00 0.20
+ 0.10
- 0.05
0.10 MAX
64-QFP-1420F
0.80 0.20
17.90 0.30
0.15
#64
#1
1.00
+ 0.10
0.40 - 0.05
0.15 MAX
0.05 MIN
(1.00)
2.650.10
3.00 MAX
0.80 + 0.20
注释:标注尺寸为毫米 (mm)。
图 18-1. 64管脚 QFP 封装尺寸 (64-QFP-1420F)
18-1
机械尺寸
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
12.00 BSC
10.00 BSC
0-7
10.00 BSC
0.08 MAX
64-LQFP-1010
0.45~0.75
12.00 BSC
0.09~0.20
#64
#1
0.20
+ 0.07
- 0.03
0.50 BSC
0.100.05
1.40 0.05
1.60 MAX
注释:标注尺寸为毫米 (mm)。
图 18-2. 64管脚 LQFP 封装尺寸 (64-LQFP-1010)
18-2
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
19
S3F8275X/F8278X/F8274X FLASH MCU
S3F8275X/F8278X/F8274X FLASH MCU
概述
S3F8275X/F8278X/F8274X 单片CMOS MCU是 S3C8275X/C8278X/C8274X 的Flash MCU版本。它具有片上
16K/8K/4K 字节闪存空间,可以通过串行数据格式访问。
S3F8275X/F8278X/F8274X 和S3C8275X/C8278X/C8274X 在功能和管脚上都是完全兼容的。因为编程简单可重
复,所以S3F8275X/F8278X/F8274X 非常适合用作S3C8275X/C8278X/C8274X的评估芯片。
注释
本章介绍Flash MCU 的工具编程模式。如需了解用户编程模式,请参考第 16 章” 嵌入式闪存
接口” 。
19-1
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
64
63
62
61
60
59
58
57
56
55
54
53
52
SEG1/P5.6
SEG2/P5.5
SEG3/P5.4
SEG4/P5.3
SEG5/P5.2
SEG6/P5.1
SEG7/P5.0
SEG8/P4.7
SEG9/P4.6
SEG10/P4.5
SEG11/P4.4
SEG12/P4.3
SEG13/P4.2
S3F8275X/F8278X/F8274X FLASH MCU
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
S3F8275X
S3F8278X
S3F8274X
(64-QFP-1420F)
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
SEG14/P4.1
SEG15/P4.0
SEG16/P3.7
SEG17/P3.6
SEG18/P3.5
SEG19/P3.4
SEG20/P3.3
SEG21/P3.2
SEG22/P3.1
SEG23/P3.0
SEG24/P2.7
SEG25/P2.6
SEG26/P2.5
SEG27/P2.4
SEG28/P2.3
SEG29/P2.2
SEG30/P2.1
SEG31/P2.0/VBLDREF
P1.7/INT7
P0.2/INT2
P0.3/T1CLK
P0.4/TAOUT
P0.5/TBOUT
P0.6/CLKOUT
P0.7/BUZ
P1.0/SCK
P1.1/SO
P1.2/SI
P1.3/INT3
P1.4/INT4
P1.5/INT5
P1.6/INT6
20
21
22
23
24
25
26
27
28
29
30
31
32
SEG0/P5.7
COM0/P6.0
COM1/P6.1
COM2/P6.2
COM3/P6.3
VLC0
SDAT/VLC1
SCLK/VLC2
VDD/VDD
VSS/VSS
XOUT
XIN
VPP/TEST
XTIN
XTOUT
nRESET/nRESET
VREG
P0.0/INT0
P0.1/INT1
图 19-1. S3F8275X/F8278X/F8274X 管脚分配(64-QFP-1420F)
19-2
S3F8275X/F8278X/F8274X FLASH MCU
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
SEG1/P5.6
SEG2/P5.5
SEG3/P5.4
SEG4/P5.3
SEG5/P5.2
SEG6/P5.1
SEG7/P5.0
SEG8/P4.7
SEG9/P4.6
SEG10/P4.5
SEG11/P4.4
SEG12/P4.3
SEG13/P4.2
SEG14/P4.1
SEG15/P4.0
SEG16/P3.7
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
S3F8275X
S3F8278X
S3F8274X
(64-LQFP-1010)
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
SEG17/P3.6
SEG18/P3.5
SEG19/P3.4
SEG20/P3.3
SEG21/P3.2
SEG22/P3.1
SEG23/P3.0
SEG24/P2.7
SEG25/P2.6
SEG26/P2.5
SEG27/P2.4
SEG28/P2.3
SEG29/P2.2
SEG30/P2.1
SEG31/P2.0/VBLDREF
P1.7/INT7
VREG
P0.0/INT0
P0.1/INT1
P0.2/INT2
P0.3/T1CLK
P0.4/TAOUT
P0.5/TBOUT
P0.6/CLKOUT
P0.7/BUZ
P1.0/SCK
P1.1/SO
P1.2/SI
P1.3/INT3
P1.4/INT4
P1.5/INT5
P1.6/INT6
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SEG0/P5.7
COM0/P6.0
COM1/P6.1
COM2/P6.2
COM3/P6.3
VLC0
SDAT/VLC1
SCLK/VLC2
VDD/VDD
VSS/VSS
XOUT
XIN
VPP/TEST
XTIN
XTOUT
nRESET/nRESET
图 19-2. S3F8275X/F8278X/F8274X 管脚分配(64-LQFP-1010)
19-3
S3F8275X/F8278X/F8274X FLASH MCU
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 19-1. 闪存读写管脚描述
主芯片
编程过程中
管脚名
管脚名称
管脚 No.
I/O
功能
VLC1
SDAT
7
I/O
串行数据管脚(读时为输出脚,写入时为输入
脚),管脚可设置为输入和推挽式输出模式。
VLC2
SCLK
8
I/O
串行时钟管脚(仅为输入管脚)。
TEST
VPP
13
I
S3F8278X/F8274X: Flash ROM单元读写供电管
脚。管脚检测到12.5V时进入Flash 写模式,检测
到3.3V时进入Flash 写模式。
S3F8275X: Flash ROM单元读写供电管脚。因为
内部自升压电路,所以无论Flash写或者读模式,
都只需要3.3V 。所以TEST管脚接到VDD即可。
nRESET
nRESET
16
I
芯片初始化。
VDD/VSS
VDD/VSS
9 / 10
I
逻辑供电管脚
表 19-2. S3F8275X/F8278X/F8274X 和 S3C8275X/C8278X/C8274X 特性比较
特性
S3F8275X/F8278X/F8274X
S3C8275X/C8278X/C8274X
程序存储空间
16/8/4-K字节Flash ROM
工作电压 (VDD)
2.0 V
Flash ROM 编程模式
VDD = 3.3 V, VPP(TEST)=12.5V
管脚配置(封装)
64-QFP, 64-LQFP
64-QFP, 64-LQFP
Flash ROM可编程性
用户可多次编程
工厂烧程序
注释:
19-4
~
3.6 V
S3F8275X中,VPP (Test) 管脚必须连到VDD。
16/8/4-K字节 掩模ROM
2.0 V
~
3.6 V

S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
S3F8275X/F8278X/F8274X FLASH MCU
编程工作模式特性
当在S3F8275X/F8278X/F8274X 的VPP(TEST)管脚上加上12.5V电压时,Flash ROM即进入编程模式。
编程工作模式(读,写,读保护)由下表控制信号选择。
表 19-3. 编程工作模式选择
VDD
VPP (TEST)
REG/MEM
地址
模式
R/W
(A15-A0)
3.3 V
3.3 V
0
0000H
1
Flash ROM 读
12.5 V
0
0000H
0
Flash ROM 编程(写)
12.5 V
1
0E3FH
0
Flash ROM 读保护
注释:
1. S3F8275X中,VPP (Test) 管脚必须连到VDD。
2.
"0" 表示逻辑低电平; "1" 代表逻辑高电平。
19-5
S3F8275X/F8278X/F8274X FLASH MCU
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
19-6
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
20
开发工具
开发工具
概述
三星提供了一套强大易用的开发工具,该开发工具由一个主系统,一套调试工具和相应的支持软件组成。所谓主系
统,即任何一台使用 Win95/98/2000/XP 操作系统的标准电脑。成熟的调试工具包含了硬件和软件:一个强大的电
路仿真器,SMDS2+ 或OPENice,支持所有的 S3C7-, S3C9- 和 S3C8- MCU 家族。SMDS2+为SMDS2的最新
版本。三星同时可提供各种支持仿真器的软件,包括调试器、汇编编译器和仿真器安装设置程序。
SHINE
三星的在线仿真器主机接口,SHINE,是一个支持多窗口的SMDS2+调试器。SHINE可以提供上拉和弹出菜单,支
持鼠标操作,功能热键,和基于文本的超链接帮助。它具有先进的,多窗口的用户界面,强调用户体验。每一个窗
口都可调节大小、移动,高亮、增加或完全移除。
SAMA 编译器
三星的可调节微控制器汇编器,SAMA,是一个通用的汇编器,可以产生标准的hex格式的目标文件。汇编程序代码
包括程序数据目标文件和所需的SMDS程序控制数据。汇编程序时,SAMA需要一个源文件和一个包括产品特定信
息的辅助定义文件(DEF)
SASM88
SASM88是一个可重定位的适用于三星S3C8系列微控制器的汇编器。SASM88将一个包括汇编语言的源文件汇编后
生成源代码,目标代码及注释。SASM88支持宏和条件编译。它在MS-DOS模式下运行。它仅产生可重定位的目标
文件。因此用户需要链接目标文件。一个目标文件可以和另一个目标文件进行链接后装载到存储器中。
HEX2ROM
HEX2ROM将由汇编器产生的hex格式的文件转换生成可执行的存储器代码。ROM代码需要烧写到掩模ROM中。在
生产ROM 代码时,ROM中未使用的字节用"FF"来填充以达到适合目标芯片的最大的存储器大小。
目标板
S3C8 - 系列 MCU 调试时需要目标板,该板上提供了所有需要的目标系统连线和调试接口。
20-1
开发工具
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
IBM-PC AT or Compatible
RS-232C
SMDS2+
Target
Application
System
PROM/OTP Writer Unit
RAM Break/Display Unit
BUS
Probe
Adapter
Trace/Timer Unit
SAM8 Base Unit
POD
Power Supply Unit
图 20-1. 开发系统配置 (SMDS2+)
20-2
TB8275/8/4
Target
Board
EVA
Chip
开发工具
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
TB8275/8/4 目标板
TB8275/8/4 是 S3C8275X/C8278X/C8274X 专用目标板。支持SMDS2+.
TB8275/8/4
IDLE
+
OFF
STOP
+
To User_VCC
ON
25
40
GND
VDD
VLC0
VLC1
VLC2
External
LCD Bias
MDS
JP6
Y1(sub-clock)
XTAL
7411
VCC
X-TAL
RESET
1
41
J101
160 QFP
S3E8270
EVA Chip
1
2
41
40
79
42
121
80
Device Selection
120
Select Smart Option Source
Low: S3F8278/4
Low: Internal
High: S3F8275
High: External
39
80
SW1
Smart Option
40-pin connector
81
1
J102
40-pin connector
100-pin connector
160
SMDS2
SMDS2+
图 20-2. TB8275/8/4 目标板配置
20-3
开发工具
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 20-1. TB8275/8/4电源选择设置
"To User_Vcc" 设置
工作模式
Off
SMDS2/SMDS2+ 提供VCC 给
TB8275
TB8278
TB8274
To User_VCC
On
注释
VSS
Target
System
目标板 (评估芯片)和目标系
统。
Target
System
SMDS2/SMDS2+只提供VCC
给目标板 (评估芯片).
目标系统必需有自己的电源.
VCC
VCC
SMDS2/SMDS2+
TB8275
TB8278
TB8274
To User_VCC
Off
On
External
VCC
VSS
VCC
SMDS2/SMDS2+
NOTE: 下面的标记 "To User_Vcc" 表示两点之间短接:
表 20-2. TB8275/8/4主时钟选择控制
主时钟设置
工作模式
XIN
MDS
XTAL
注释
当把目标板链接到
SMDS2/SMDS2+. 时,设定XI
切换到 “MDS”
EVA Chip
S3E8270
XIN
XOUT
No Connection
100 Pin Connector
SMDS2/SMDS2+
设定 XI 切换到 “XTAL”,使用
目标板上自身的时钟源
XIN
XTAL
MDS
EVA Chip
S3E8270
XIN
XOUT
XTAL
Target Board
20-4
开发工具
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 20-3. TB8275/8/4的Smart Option源设置
"Smart Option Source"
Settings
Operating Mode
Select Smart
Option Source
Internal
TB8275/8/4
External
Select Smart
Option Source
Internal
TB8275/8/4
External
Comments
Smart Option 由外部开关来选
择(SW1)
Target
System
Smart Option 由芯片内部的
smart option 区域决定 (ROM
的003EH–003FH). 但是此选
择不可用。
Target
System
表 20-4. TB8275/8/4的Smart Option设置
"Smart Option" Settings
Smart Option
SW1
Low : "0"
Comments
Smart Option 由此开关的状态确定。B2–B0 对应 003EH.2–.0. B7–B5
对应 003EH.7–.5. B8 对应 003FH.0. B 4–B3 没有连接。
B0
B1
B2
B3
B4
B5
B6
B7
B8
High: "1"
20-5
开发工具
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
表 20-5. TB8275/8/4的芯片选择
"Device Selection"
Settings
Operating Mode
Comments
选择 TB8275
Device Selection
S3F8278/4
S3F8275
TB8275
Target
System
选择 TB8278/4
Device Selection
S3F8278/4
S3F8275
TB8278/4
Target
System
SMDS2+ 选择 (SAM8)
为了实现SMDS2+的向程序存储器中写入数据的功能,目标板连接到SMDS2+后,需要对开关进行如下的设置。否
则,此功能不可用。
表 20-6. SMDS2+ 工具选择设置
"JP2" 设置
工作模式
JP2
SMDS2
SMDS2+
R/W
SMDS2+
IDLE LED
黄色的 LED 亮时表示 评估芯片(S3E8270)进入了idle 模式.
STOP LED
红色的 LED 亮表示评估芯片(S3E8270) 进入了stop 模式.
20-6
R/W
Target
System
开发工具
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
J101
P6.0/COM0
P6.2/COM2
VLC0
VLC2
VSS
N.C
N.C
nRESET
P0.0/INT0
P0.2/INT2
P0.4/TAOUT
P0.6/CLKOUT
P1.0/SCK
P1.2/SI
P1.4/INT4
P1.6/INT6
N.C
N.C
N.C
N.C
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
INT7/P1.7
SEG30/P2.1
SEG28/P2.3
SEG26/P2.5
SEG24/P2.7
SEG22/P3.1
SEG20/P3.3
SEG18/P3.5
SEG16/P3.7
SEG14/P4.1
SEG12/P4.3
SEG10/P4.5
SEG8/P4.7
SEG6/P5.1
SEG4/P5.3
SEG2/P5.5
N.C
N.C
N.C
N.C
33
35
37
39
41
43
45
47
49
51
53
55
57
59
61
63
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
40-Pin DIP Connector
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
40-Pin DIP Connector
SEG31/P2.0/VBLDREF
SEG29/P2.2
SEG27/P2.4
SEG25/P2.6
SEG23/P3.0
SEG21/P3.2
SEG19/P3.4
SEG17/P3.6
SEG15/P4.0
SEG13/P4.2
SEG11/P4.4
SEG9/P4.6
SEG7/P5.0
SEG5/P5.2
SEG3/P5.4
SEG1/P5.6
N.C
N.C
N.C
N.C
图 20-3. TB8275/8/4的40脚接口(J101, J102)
Target Board
J101
40-Pin Connector
1
Target Board
J102
2 33
J102
34
J101
33
34 1
2
63
64 31
32
Target Cable for 40-pin Connector
31
32 63
64
40-Pin Connector
SEG0/P5.7
COM1/P6.1
COM3/P6.3
VLC1
VDD
N.C
TEST
N.C
VREG
INT1/P0.1
T1CLK/P0.3
TBOUT/P0.5
BUZ/P0.7
SO/P1.1
INT3/P1.3
INT5/P1.5
N.C
N.C
N.C
N.C
J102
图 20-4.专为64-QFP封装的S3E8270的数据线
20-7
开发工具
S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X
注释
20-8
SAMSUNG ELECTRONICS MCU
PM:
刘志勇 Steven Liu
YOSUN SHANGHAI CORP.LTD
Tel: 021-58365838 Ext.7835
Fax: 021-58355878
H P: 13818363447
QQ: 52647598
SKYPE: FVSTEVEN
MSN: [email protected]
E-Mail: [email protected]