ETC STC12C4052AD

 STC12C2052AD 系列单片机器件手册
--- 1 个时钟 / 机器周期 8051
---无法解密
---低功耗,超低价
--- 高速,高可靠
--- 强抗静电,强抗干扰
STC12C0552, STC12C0552AD
STC12C1052, STC12C1052AD
STC12C2052, STC12C2052AD
STC12C3052, STC12C3052AD
STC12C4052, STC12C4052AD
STC12C5052, STC12C5052AD
STC12LE0552,
STC12LE1052,
STC12LE2052,
STC12LE3052,
STC12LE4052,
STC12LE5052,
STC12LE0552AD
STC12LE1052AD
STC12LE2052AD
STC12LE3052AD
STC12LE4052AD
STC12LE5052AD
技术支援:宏晶科技(深圳)
www.MCU-Memory.com support@MCU-Memory.com
Update date: 2005-10-4 (草案,请随时注意更新)
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
领导业界革命 覆盖市场需求
STC 12C2052AD 系列 1T 8051 单片机
1 个时钟 / 机器周期,高速、高可靠,相当于普通 8051 0~420MHz
宏晶科技是新一代增强型 8051 单片机标准的制定者,致力于提供满足中国市场需求的世界级高性能单片机技术,在业内处于领先地位,销售网络覆盖全国。
在保证质量的基础上, 以极低的价格和完善的服务赢得了客户的长期信赖。目前, 全力推出“1 个时钟 / 机器周期”的单片机, 全面提升 8 0 5 1 单片机
性能。欢迎海内外厂家前来洽谈合作! 新客户请直接联系深圳, 以获得更好的技术支持与服务。
DIP-20,SOP-20 超小封装 8051 单片机
单时钟 1T
8051 CPU
高
速
2K/4K 字节
高
可
靠
选择 S T C 12C2052AD 系列单片机的理由:
UART
★ 加密性强, 无法解密
★超 强 抗 干 扰 :
Flash 程序存储器
256 字节
数据 RAM
Timer 0
Timer 1
宽
电
压
1K 字节
E2PROM
CCU/PCA/PWM
捕获 / 比较单元
低
功
耗
WDT
硬件看门狗
8 通道
高精度 8 位 A/D
超
强
抗
干
扰
电源监控
(上电复位,
掉电复位 )
片内
RC 振荡器
晶体或
谐振器
SPI
XTAL2
XTAL1 可配置振荡器
CPU 时钟
Port1
可配置 I/O 口
Port3
可配置 I/O 口
无
法
解
密
★ 1 个时钟 / 机器周期,可用低频晶振,大幅降低 E M I
★ 超低功耗:
1 、掉电模式: 典型功耗 <0.1 μ A
2 、空闲模式: 典型功耗 <1mA
3 、正常工作模式: 典型功耗 4mA - 7mA
4 、掉电模式可由外部中断唤醒,适用于电池
供电系统,如水表、气表、便携设备等。
★ 在系统可编程, 无需编程器, 可远程升级
★ 可送 S T C - I S P 下载编程器, 1 万片 / 人 / 天
★ 内部集成 M A X 8 1 0 专用复位电路,原复位电路可以
保留,也可以不用,不用时 R E S E T 脚直接短到地
STC12C2052/STC12C4052 主要性能:
●高速:1 个时钟 / 机器周期,R I S C 型 C P U 内核,速度比普通 8 0 5 1 快 1 2 倍
●宽电压:3 . 4~5 . 5 V,2 . 0~3 . 8 V(STC12LE2052AD 系列)
●低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)
●工作频率:0~35MHz,相当于普通 8051:0~420MHz
●时钟:外部晶体或内部 R C 振荡器可选
● 512/1K/2K/3K/4K/5K 片内 Flash 程序存储器,擦写次数 10 万次以上
● 256 字节片内 RAM 数据存储器
●芯片内 E 2 PROM 功能
● ISP / IAP,在系统可编程
● 2 个模拟比较器
● 8 通道高精度 8 位 ADC
● 2 通道捕获 / 比较单元(CCU/PCA/PWM),提供 PWM 功能
● 2 个硬件 16 位定时器,兼容普通 8051 的定时器
●硬件看门狗(W D T )
●高速 SPI 通信端口
●全双工异步串行口(UART),兼容普通 8051 的串口
●先进的 R I S C 精简指令集结构,兼容普通 8 0 5 1 指令集
111 条功能强大的指令,有 12 条指令只需 1 个时钟就可完成
片内集成硬件乘法器和硬件除法器(执行速度为 4 个时钟周期)
4 组 8 个 8 位通用工作寄存器(共 32 个通用寄存器)
无
1 、高 抗 静 电 ( E S D 保 护 )
2 、轻松过 4KV 快速脉冲干扰(EFT 测试)
3 、宽 电 压 , 不 怕 电 源 抖 动
4 、宽 温 度 范 围, - 4 0 ℃ ~ 8 5 ℃
5 、I / O 口 经 过 特 殊 处 理
6 、单 片 机 内 部 的 电 源 供 电 系 统 经 过 特 殊处理
7 、单 片 机 内 部 的 时 钟 电 路 经 过 特 殊 处 理
8 、单 片 机 内 部 的 复 位 电 路 经 过 特 殊 处 理
9 、单 片 机 内 部 的 看 门 狗 电 路 经 过 特 殊 处 理
1 个时钟 / 机器周期,超小封装 8 0 5 1 单片机
RST 1 20 VCC
RxD/P3.0 2 19 P1.7/SCLK/ADC7
TxD/P3.1 3 18 P1.6/MISO/ADC6
XTAL2 4 17 P1.5/MOSI/ADC5
XTAL1 5 16 P1.4/SS/ADC4
INT0/P3.2 6 15 P1.3/ADC3
INT1/P3.3 7 14 P1.2/ADC2
ECI/T0/P3.4 8 13 P1.1/ADC1
PWM1/PCA1/T1/P3.5 9 12 P1.0/ADC0
Gnd 10 11 P3.7/PCA0/PWM0
DIP-20,SOP-20,(超小封装 TSSOP-20 定货)
STC12C2052、STC12C4052 不带 A/D 转换
STC12C2052AD、STC12C4052AD 带 A/D 转换
技术支持:13922805190 网址:www.MCU-Memory.com
专业单 片 机 、存 储 器 供应商
新客户请直接联系深圳以获得更好的技术支持和服务
欢迎海内外厂家前来洽谈合作
深 圳:Tel:0755-82948409 82948410 Fax:0755-82944243 82905966
免费索取
上海办:Tel:021-53560136 53560138 Fax:021-53080587
北京办:Tel:010-62538687 62634001 Fax:010-62538683
从网上下载样品申请单,
南京办:Tel:025-86893767 86893566 Fax:025-86893757
传真至深圳申请 STC 单片机
广州办:Tel:020-38851405 38850557 Fax:020-38850581
样片及 ISP 下载线 / 编程工具
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
2
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC12C2052AD 系列 1T 单片机简介
STC12C2052 系列单片机是单时钟 / 机器周期(1T)的兼容 8051 内核单片机,是高速 / 低
功耗的新一代 8051 单片机,全新的流水线 / 精简指令集结构。
特点:
1.增强型 1T 流水线 / 精简指令集结构 8051 CPU
2.工作电压:2.4V - 3.8V / 3.4V - 5.5V
3.工作频率范围:0 - 35 MHz,相当于普通 8051 的 0~420MHz
4.用户应用程序空间 512 / 1K / 2K / 3K / 4K / 5K 字节
5.片上集成 256 字节 RAM
6.15 个通用 I/O 口,复位后为: 准双向口 / 弱上拉
可设置成四种模式:准双向口 / 弱上拉,推挽 / 强上拉,仅为输入 / 高阻,开漏
7.EEPROM 功能
8.共 2 个 16 位定时器 / 计数器
9 . P W M ( 2 路)/ P C A (可编程计数器阵列)
10.ADC, 8 路 8 位精度
11. 通用异步串行口(UART)
12. SPI 同步通信口, 主模式 / 从模式
13.看门狗
14.内部集成 R/C 振荡器,精度要求不高时可省外部晶体
15.ISP/IAP
16.工作温度范围: 0 - 75℃ / -40 - +85℃
17.封装: PDIP-20,SOP-20(宽体),TSSOP-20(超小封状,定货)
18.供货:现已开始批量供货(PDIP-20/SOP-20),欢迎提前定货(2-4 周)
STC12C2052AD 系列的后续产品是 STC12C1254AD 系列
1.内部 RAM 增加到 512 字节
2.内部 I/O 口 增加到 23 个(PDIP-28/SOP-28)
, PLCC-32 为 27 个
3.内部 PCA/PWM 模块 增加到 4 个
4.内部 A/D 模块 提升到 10 位 精度
5.内部 Flash 程序空间为 1K / 2K / 4K / 6K / 8K / 10K / 12K
6.封装:PDIP-28(窄体),SOP-28,PLCC-32,PDIP-20,SOP-20
7.供货:2005-12-1 开始提供样品(PDIP-28/SOP-28),2005 年 12 月底批量供货
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
3
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC12C2052AD 系列单片机管脚图及封装尺寸
RST 1 20 VCC
RxD/P3.0 2 19 P1.7/SCLK
TxD/P3.1 3 18 P1.6/MISO
XTAL2 4 17 P1.5/MOSI
XTAL1 5 16 P1.4/SS
INT0/P3.2 6 15 P1.3
INT1/P3.3 7 14 P1.2
ECI/T0/P3.4 8 13 P1.1
PWM1/CEX1/T1/P3.5 9 12 P1.0
Gnd 10 11 P3.7/CEX0/PWM0
RST 1 20 VCC
RxD/P3.0 2 19 P1.7/SCLK/ADC7
TxD/P3.1 3 18 P1.6/MISO/ADC6
XTAL2 4 17 P1.5/MOSI/ADC5
XTAL1 5 16 P1.4/SS/ADC4
INT0/P3.2 6 15 P1.3/ADC3
INT1/P3.3 7 14 P1.2/ADC2
ECI/T0/P3.4 8 13 P1.1/ADC1
PWM1/CEX1/T1/P3.5 9 12 P1.0/ADC0
Gnd 10 11 P3.7/CEX0/PWM0
STC12C2052AD
STC12C2052
20P3, 20-lead, 0.300" Wide, Plastic Dual Inline
Package (PDIP-20)
Dimensions in Inches and (Millimeters)
20S, 20-lead, 0.300" Wide, Plastic Gull WIng Small
Outline (SOIC-20)
Dimensions in Inches and (Millimeters)
JEDEC STANDARD MS-001 AD
0.020 (0.508)
0.013 (0.330)
1.060 (26.9)
0.980 (24.9)
PIN1
0.299 (7.60)
0.291 (7.39)
0.280 (7.11)
0.240 (6.10)
PIN1
0.090(2.29)
MAX
0.900(22.86) REF
0.210(5.33)
MAX
0.393 (9.98)
0.050 (1.27)BSC
0.005(0.127)
MIN
SEATING
PLANE
0.513 (13.0)
0.497 (12.6)
0.015(0.381)MIN
0.150 (3.81)
0.105 (2.67)
0.092 (2.34)
0.022 (0.559)
0.115 (2.92)
0.014 (0.356)
0.110 (2.79)
0.070(1.78)
0.090 (2.29)
0.045(1.13)
0.325(8.26)
0.300(7.62)
0.014(0.356)
0.008(0.203)
0.420 (10.7)
0
15
0.012 (0.305)
0.003 (0.076)
0
REF
8
0.013 (0.330)
0.009 (0.229)
REF
0.430(10.92)MAX
0.035 (0.889)
0.015 (0.381)
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
4
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC12LE4052AD 提供 TSSOP-20 封装,其它型号此封装定货
6.4mm
E(4.5mm)
E2(3.2mm)
PACKAGE:PLASTIC SHRINK SMALL OUTLINE(TSSOP-20)
A
D
Φ
A1
e(0.65mm)
B(0.19mm~0.30mm)
DIMENSIONS
in inches (mm)
Minimum/Maximum
A
A1
B
D
E
e
L(0.50mm~0.75mm)
20-PIN
- /0.043
(- /1.10)
0.002/0.006
(0.05/0.15mm)
0.007/0.012
(0.19/0.30mm)
0.252/0.260
(6.40/6.60mm)
0.169/0.177
(4.30/4.50mm)
0.026 BSC
(0.65mm BSC)
E2
0.126 BSC
(3.20mm BSC)
L
0.020/0.030
(0.50/0.75mm)
Φ
0 °/ 8 °
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
5
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC 单片机 典型应用电路(STC12C2052AD 系列)
---- 通过 RS-232 转换器连接电脑就可以下载程序
STC3232,STC232,MAX232,SP232
0.1uF
1
C1+
Vcc 16
V+
GND 15
C1-
T1OUT 14
4
C2+
R1IN 13
5
C2-
R1OUT 12
6
V-
T1IN 11
7
T2OUT
T2IN 10
8 R2IN
R2OUT
9
关于复位电路:C 1 可不用
Gnd
PC_RxD (COM Pin2)
通过电脑端的
S T C - I S P 软件
控制下载
“用户程序”
2
3
5
PC_TxD (COM Pin3)
到 S T C 单片机
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB+5V T1OUT R1IN GND
USB +5V
Vin
2
3
Vcc
PC / 电脑 串口
SW1
Power On
电源开关
USB1
Vcc
R1
10K
10 μF
C1
1 RST VCC 20
1K
1K
2 RxD/P3.0 P1.7/SCLK/ADC7 19
3 TxD/P3.1 P1.6/MISO/ADC6 18
33pF
33pF
4 XTAL2 P1.5/MOSI/ADC5 17
5 XTAL1 P1.4/SS/ADC4 16
6 INT0/P3.2 P1.3/ADC3 15
7 INT1/P3.3 P1.2/ADC2 14
8 ECI/T0/P3.4 P1.1/ADC1 13
9 PWM1/PCA1/T1/P3.5 P1.0/ADC0 12
10 Gnd P3.7/PCA0/PWM0 11
用户在自己的目标系统上,如将 P3.0/P3.1 经过 RS-232 电平转换器 转换后连接到电
脑的普通 RS-232 串口,就可以在系统编程 / 升级用户软件。建议如果用户板上无 RS-232
电平转换器,应引出一个插座,含 Gnd / P3.1 / P3.0 / Vcc 四个信号线,当然如能引出
Gnd / P3.1 / P3.0 / Vcc / P1.1 / P1.0 六个信号线为最好,这样就可以在用户系统上
直接编程了。关于 ISP 编程的原理及应用指南详见“STC12C2052AD 系列单片机 ISP 编程
原理 使用说明”部分。另外我们有标准化的编程下载工具,用户可以在上面编程后再
插到目标系统上,也可以借用它上面的RS-232电平转换器连接到电脑,以做下载编程之用。
编程一个芯片大致需2秒到3秒钟,速度比普通的通用编程器快很多,故无须买通用编程器。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
6
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
S T C 1 2 C 2 0 5 2 A D 系列单片机选型一览表(全部有 I S P 功能):
工作
电压(V)
Flash
定
看
程序 SRAM
PCA
时 UART
A/D I/O 门
存储器 字节
PWM
器
狗
字节
STC12C0552
3.4 - 5.5
512
256
2
有
2路
STC12C0552AD
3.4 - 5.5
512
256
2
有
2路
STC12C1052
3.4 - 5.5
1K
256
2
有
2路
STC12C1052AD
3.4 - 5.5
1K
256
2
有
2路
STC12C2052
3.4 - 5.5
2K
256
2
有
2路
STC12C2052AD
3.4 - 5.5
2K
256
2
有
2路
STC12C3052
3.4 - 5.5
3K
256
2
有
2路
STC12C3052AD
3.4 - 5.5
3K
256
2
有
2路
STC12C4052
3.4 - 5.5
4K
256
2
有
2路
STC12C4052AD
3.4 - 5.5
4K
256
2
有
2路
STC12C5052
3.4 - 5.5
5K
256
2
有
2路
STC12C5052AD
3.4 - 5.5
5K
256
2
有
2路
STC12LE0552
2.4 - 3.8
512
256
2
有
2路
STC12LE0552AD
2.4 - 3.8
512
256
2
有
2路
STC12LE1052
2.4 - 3.8
1K
256
2
有
2路
STC12LE1052AD
2.4 - 3.8
1K
256
2
有
2路
STC12LE2052
2.4 - 3.8
2K
256
2
有
2路
STC12LE2052AD
2.4 - 3.8
2K
256
2
有
2路
STC12LE3052
2.4 - 3.8
3K
256
2
有
2路
STC12LE3052AD
2.4 - 3.8
3K
256
2
有
2路
STC12LE4052
2.4 - 3.8
4K
256
2
有
2路
STC12LE4052AD
2.4 - 3.8
4K
256
2
有
2路
STC12LE5052
2.4 - 3.8
5K
256
2
有
2路
STC12LE5052AD
2.4 - 3.8
5K
256
2
有
2路
有
有
有
有
有
有
有
有
有
有
有
有
内置
复位
EEP S
ROM P
字节 I
封装
20-Pin
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
15
有
有
有
有 DIP/SOP
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
7
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
指令系统分类总结
传统 12T 8051
1.数据传送类指令;
2.算术操作类指令;
3.逻辑操作类指令;
4.控制转移类指令;
5 . 布尔变量操作类指令。
按功能分类的指令系统表如下表所示。
STC89/12 系列单片机指令与机器码速查表见...
STC12C2052AD
如果按功能分类,STC89/12 系列单片机指令系统可分为:
数据传送类指令
助记符
MOV A, Rn
MOV A, direct
MOV A, @Ri
MOV A, #data
MOV Rn, A
MOV Rn, direct
MOV Rn, #data
MOV direct, A
MOV direct, Rn
功能说明
寄存器内容送入累加器
直接地址单元中的数据送入累加器
间 接 RAM中 的 数 据 送 入 累 加 器
立即送入累加器
累加器内容送入寄存器
直接地址单元中的数据送入寄存器
立即数送入寄存器
累加器内容送入直接地址单元
寄存器内容送入直接地址单元
直接地址单元中的数据送入另一个直接
MOV direct, direct
地址单元
MOV direct, @Ri
间 接 RAM中 的 数 据 送 入 直 接 地 址 单 元
MOV direct, #data 立 即 数 送 入 直 接 地 址 单 元
MOV @Ri, A
累 加 器 内 容 送 间 接 RAM单 元
MOV @Ri, direct
直 接 地 址 单 元 数 据 送 入 间 接 RAM单 元
MOV @Ri, #data
立 即 数 送 入 间 接 RAM单 元
MOV DPTR, #data16 16位 立 即 数 送 入 地 址 寄 存 器
以 DPTR为 基 地 址 变 址 寻 址 单 元 中 的 数 据
MOVC A,@A+DPTR
送入累加器
以 PC为 基 地 址 变 址 寻 址 单 元 中 的 数 据 送
MOVC A,@A+PC
入累加器
MOVX A,@Ri 外 部 RAM( 8位 地 址 ) 送 入 累 加 器
MOVX A,@DPTR 外 部 RAM( 16位 地 址 ) 送 入 累 加 器
MOVX @Ri,A
累 加 器 送 外 部 RAM( 8位 地 址 )
MOVX @DPTR ,A 累 加 器 送 外 部 RAM( 16位 地 址 )
PUSH direct
直接地址单元中的数据压入堆栈
POP direct 出栈送直接地址单元
XCH A,Rn
寄存器与累加器交换
XCH A,direct
直接地址单元与累加器交换
XCH A,@Ri
间 接 RAM与 累 加 器 交 换
XCHD A,@Ri
间 接 RAM的 低 半 字 节 与 累 加 器 交 换
字节数
1
2
1
2
1
2
2
2
2
12时 钟 /机 器 周 期 1时 钟 /机 器 周 期
所需时钟
所需时钟
12
1
12
2
12
2
12
2
12
2
24
4
12
2
12
3
24
3
3
24
4
2
3
1
2
2
3
24
24
12
24
12
24
4
3
3
3
3
3
1
24
4
1
24
4
1
1
1
1
2
2
1
2
1
1
24
24
24
24
24
24
12
12
12
12
3
2
3
2
4
3
3
4
4
4
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
8
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
算术操作类指令
助记符
ADD A,Rn
ADD A,direct
ADD A,@Ri
ADD A,#data
ADDC A,Rn
ADDC A,direct
ADDC A,@Ri
ADDC A,#data
SUBB A,Rn
SUBB A,direct
SUBB A,@Ri
SUBB A,#data
INC A
INC Rn
INC direct
INC @Ri
DEC A
DEC Rn
DEC direct
DEC @Ri
INC DPTR
MUL AB
DIV AB
DA A 功能说明
字节数
寄存器内容加到累加器
直接地址单元中的数据加到累加器
间接RAM中的数据加到累加器
立即加到累加器
寄存器内容带进位加到累加器
直接地址单元的内容带进位加到累加器
间接RAM内容带进位加到累加器
立即数带进位加到累加器
累加器带借位减寄存器内容
累加器带借位减直接地址单元的内容
累加器带借位减间接RAM中的内容
累加器带借位减立即数
累加器加1
寄存器加1
直接地址单元加1
间接RAM单元加1
累加器减1
寄存器减1
直接地址单元减1
间接RAM单元减1
地址寄存器DPTR加1
A乘以B
A除以B
累加器十进制调整
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
1
1
1
2
1
1
1
1
1
12时钟/周期 1时钟/周期
所需时钟
所需时钟
12
2
12
3
12
3
12
2
12
2
12
3
12
3
12
2
12
2
12
3
12
3
12
2
12
2
12
3
12
4
12
4
12
2
12
3
12
4
12
4
24
1
48
4
48
5
12
4
逻辑操作类指令
助记符
ANL A,Rn
ANL A,direct
ANL A,@Ri
ANL A,#data
ANL direct,A
ANL direct,#data
ORL A,Rn
ORL A,direct
ORL A,@Ri
ORL A,#data
ORL direct,A
ORL direct,#data
XRL A,Rn
XRL A,direct
XRL A,@Ri
XRL A,#data
XRL direct,A
XRL direct,#data
CLR A
CPL A
RL A
RLC A
RR A
RRC A
SWAP A
功能说明
累加器与寄存器相“与”
累加器与直接地址单元相“与”
累加器与间接RAM单元相“与”
累加器与立即数相“与”
直接地址单元与累加器相“与”
直接地址单元与立即数相“与”
累加器与寄存器相“或”
累加器与直接地址单元相“或”
累加器与间接RAM单元相“或”
累加器与立即数相“或”
直接地址单元与累加器相“或”
直接地址单元与立即数相“或”
累加器与寄存器相“异或”
累加器与直接地址单元相“异或”
累加器与间接RAM单元相“异或”
累加器与立即数相“异或”
直接地址单元与累加器相“异或”
直接地址单元与立即数相“异或”
累加器清“0”
累加器求反
累加器循环左移
累加器带进位位循环左移
累加器循环右移
累加器带进位位循环右移
累加器半字节交换
字节数
1
2
1
2
2
3
1
2
1
2
2
3
1
2
1
2
2
3
1
1
1
1
1
1
1
12时钟/周期 1时钟/周期
所需时钟
所需时钟
12
2
12
3
12
3
12
2
12
4
24
4
12
2
12
3
12
3
12
2
12
4
24
4
12
2
12
3
12
3
12
2
12
4
24
4
12
1
12
2
12
1
12
1
12
1
12
1
12
1
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
9
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
控制转移类指令
助记符
ACALL addr11
LCALL addr16
RET
RETI
AJMP addr11
LJMP addr16
SJMP re1
JMP @A+DPTR
JZ re1
JNZ re1
CJNE A,direct,re1
CJNE A,#data,re1
CJNE Rn,#data,re1
CJNE @Ri,#data,re1
DJNZ @Rn,re1
DJNZ direct,re1
NOP
功能说明
字节数
绝对(短)调用子程序
长调用子程序
子程序返回
中断返回
绝对(短)转移
长转移
相对转移
相对于DPTR的间接转移
累加器为零转移
累加器非零转移
累加器与直接地址单元比较,不相等则转移
累加器与立即数比较,不相等则转移
寄存器与立即数比较,不相等则转移
间接RAM单元与立即数比较,不相等则转移
寄存器减1,非零转移
直接地址单元减1,非零转移
空操作
2
3
1
1
2
3
2
1
2
2
3
3
3
3
3
3
1
12时钟/周期 1时钟/周期
所需时钟 所需时钟
24
6
24
6
24
4
24
4
24
3
24
4
24
3
24
3
24
3
24
3
24
5
24
4
24
4
24
5
24
4
24
5
12
1
布尔变量操作类指令
助记符
CLR C
CLR bit
SETB C
SETB bit
CPL C
CPL bit
ANL C,bit
ANL C,bit
ORL C,bit
ORL C,bit
MOV C,bit
MOV bit,C
JC re1
JNC re1
JB bit,re1
JNB bit,re1
JBC bit,re1
功能说明
清进位位
清直接地址位
置进位位
置直接地址位
进位位求反
直接地址位求反
进位位和直接地址位相“与”
进位位和直接地址位的反码相“与”
进位位和直接地址位相“或”
进位位和直接地址位的反码相“或”
直接地址位送入进位位
进位位送入直接地址位
进位位为1则转移
进位位为0则转移
直接地址位为1则转移
直接地址位为0则转移
直接地址位为1则转移,该位清0
字节数
1
2
1
2
1
2
2
2
2
2
2
2
2
2
3
3
3
12时钟/周期 1时钟/周期
所需时钟
所需时钟
12
1
12
4
12
1
12
4
12
1
12
4
24
3
24
3
24
3
24
3
12
3
24
3
24
3
24
3
24
4
24
4
24
5
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
10
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
特殊功能寄存器映像 SFR Mapping
Bit
Non Bit Addressable
Addressable
0/8
F8h
F0h
1/9
3/B
4/C
5/D
6/E
7/F
CH
CCAP0H CCAP1H
0000,0000 0000,0000 0000,0000
FFh
PCA_PWM0 PCA_PWM1
xxxx,xx00 xxxx,xx00
F7h
CL
CCAP0L
CCAP1L
0000,0000 0000,0000 0000,0000
EFh
B
0000,0000
E8h 2/A
E0h
ACC
0000,0000
WDT_CONTR ISP_DATA ISP_ADDRH ISP_ADDRL ISP_CMD ISP_TRIG ISP_CONTR
E7h
0x00,0000 1111,1111 0000,0000 0000,0000 xxxx,xx00 xxxx,xxxx 0000,1000
D8h
CCON
00xx,xx00
CMOD
CCAPM0
CCAPM1
0xxx,x000 x000,0000 x000,0000
D0h
PSW
0000,0000
DFh
D7h
C8h
CFh
C0h
ADC_CONTR ADC_DATA IDLE_CLK
C7h
0000,0000 0000,0000 xxxx,x000
B8h
IP
x000,0000
SADEN
don't use
B0h
P3
1x11,1111
P3M0
P3M1
0000,0000 0000,0000
A8h
IE
0000,0000
BFh
IPH
B7h
x000,0000
SADDR
don't use
AFh
TEST_WDT
A7h
don't use
A0h
98h
SCON
0000,0000
SBUF
xxxx,xxxx
9Fh
90h
P1
1111,1111
P1M0
P1M1
0000,0000 0000,0000
97h
88h
TCON
0000,0000
TMOD
TL0
TL1
TH0
0000,0000 0000,0000 0000,0000 0000,0000
TH1
AUXR
0000,0000 0000,00xx
80h
P0
1111,1111
SP
DPL
DPH
SPSTAT
0000,0111 0000,0000 0000,0000 00xx,xxxx
SPCTL
SPDAT PCON
87h
0000,0100 0000,0000 0011,0000
0/8
1/9
5/D
2/A
3/B
4/C
6/E
8Fh
7/F
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
11
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC12C2052AD 系列 8051 单片机内核特殊功能寄存器 C51 Core SFRs
Mnemonic Add
Name
7
6
5
4
3
2
1
0
Reset Value
ACC
E0h
Accumulator
0000,0000
B
F0h
B Register
0000,0000
PSW
D0h
Program Status Word
SP
81h Stack Pointer
0000,0111
DPL
82h
Data Pointer Low Byte
0000,0000
DPH
83h
Data Pointer High Byte
0000,0000
CY AC F0 RS1 RS0 OV F1 P
0000,0000
STC12C2052AD 系列 8051 单片机系统管理特殊功能寄存器 System Management SFRs
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset value
SMOD
SMOD0
LVDF
POF
GF1
GF0
PD
IDL
0011,0000
ELVDI
-
-
0000,00xx
PCON
87h Power Control
AUXR
8Eh Auxiliary Register T0x12 T1x12 UART_M0x6 EADCI ESPI
IDLE_CLK C7h Clock Divder
-
-
-
-
-
IDLCLKS2 IDLCLKS1 IDLCLKS0 xxxx,x000
STC12C2052AD 系列 8051 单片机 中断 特殊功能寄存器 Interrupt SFRs
Mnemonic Add
Name
7
6
5
4
3
2
1
0
Reset Value
IE
A8h
Interrupt Enable
EA
EPCA
ESPI
ES ET1
EX1
ET0
EX0
0000,0000
IP
B8h
Interrupt Priority Low
-
PPCA
PSPI
PS PT1
PX1
PT0
PX0
xx00,0000
IPH
B7h
Interrupt Priority High
-
PPCAH PSPIH PSH PT1H PX1H PT0H PX0H 0000,0000
STC12C2052AD 系列 8051 单片机 I/O 口 特殊功能寄存器 Port SFRs
Mnemonic
Add
Name
7
P1
90h
8-bit Port 1
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 1111,1111
P1M0
91h
0000,0000
P1M1
92h
0000,0000
P3
B0h
P3M0
B1h
0000,0000
P3M1
B2h
0000,0000
8-bit Port 3
6
5
P3.7 -
4
3
2
1
0
Reset Value
P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 1x11,1111
STC12C2052AD系列 8051 单片机 串行口 特殊功能寄存器 Serial I/O Port SFRs
Mnemonic Add
Name
7
6
5
4
3
2
1
0
Reset Value
SCON
98h
Serial Control
SM0/FE
SM1
SM2
REN
TB8
RB8
TI
RI
0000,0000
SBUF
99h
Serial Data Buffer
xxxx,xxxx
SADEN
B9h
Slave Address Mask
0000,0000
SADDR
A9h
Slave Address
0000,0000
AUXR
8Eh
Auxiliary Register
T0x12
T1x12
UART_M0x6
EADCI ESPI EBODI
-
-
0000,00xx
STC12C2052AD 系列 8051 单片机 看门狗定时器 特殊功能寄存器 Watch Dog Timer SFRs
Mnemonic
Add
WDT_CONTR E1h
Name
7
6
Watch-Dog-Timer
Control register
WDT_FLAG -
5
4
3
2
1
0
Reset Value
EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
12
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC12C2052AD 系列 8051 单片机 定时器 特殊功能寄存器 Timer SFRs
Mnemonic Add
Name
TCON
Timer / Counter 0 and 1 Control
88h
TMOD
89h
7
6
5
4
TF1
TR1
TF0
TR0
M1
M1_1
M0
M1_0
GATE C/T#
GATE1 C/T1#
Timer / Counter 0 and 1 Modes
3
2
1
0
Reset Value
IE1
IT1
IE0
IT0
0000,0000
M1
M0_1
M0
M0_0
0000,0000
GATE C/T#
GATE0 C/T0#
TL0
8Ah
Timer / Counter 0 Low Byte
0000,0000
TH0
8Ch
Timer / Counter 0 High Byte
0000,0000
TL1
8Bh
Timer / Counter 1 Low Byte
0000,0000
TH1
8Dh
Timer / Counter 1 High Byte
AUXR
8Eh
Auxiliary Register
0000,0000
T0x12 T1x12 UART_M0x6
EADCI
ESPI
EBODI
-
-
0000,00xx
STC12C2052AD 系列 8051 单片机 ISP/IAP 特殊功能寄存器 ISP/IAP SFRs
Mnemonic
Add Name
7
ISP_DATA
E2h ISP/IAP Flash Data Register
6
5
4
3
2
1
0
Reset Value
1111,1111
ISP_ADDRH E3h ISP/IAP Flash Address High
0000,0000
ISP_ADDRL E4h ISP/IAP Flash Address Low
0000,0000
ISP_CMD
E5h ISP/IAP Flash Command Register
ISP_TRIG
E6h ISP/IAP Flash Command Trigger
ISP_CONTR E7h ISP/IAP Control Register
-
-
-
-
-
-
MS1
MS0 xxxx,x000
1
WT2
WT1
WT0 0000,1000
xxxx,xxxx
ISPEN SWBS SWRST CMD_FAIL
STC12C2052AD 系列 8051 单片机 PCA/PWM 特殊功能寄存器 PCA/PWM SFRs
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset value
CCON
D8h PCA Control Register
CF
CR
-
-
-
-
CCF1
CCF0 00xx,xx00
CMOD
D9h PCA Mode Register
CIDL
-
-
-
-
CPS1
CPS0
ECF
CCAPM0
PCA Module 0
DAh
Mode Register
-
ECOM0 CAPP0 CAPN0 MAT0
TOG0
PWM0
ECCF0 x000,0000
CCAPM1
DBh
PCA Module 1
Mode Register
-
ECOM1 CAPP1 CAPN1 MAT1
TOG1
PWM1
ECCF1 x000,0000
CL
E9h PCA Base Timer Low
0000,0000
CH
F9h PCA Base Timer High
0000,0000
CCAP0L
EAh
PCA Module-0 Capture
Register Low
0000,0000
CCAP0H
FAh
PCA Module-0 Capture
Register High
0000,0000
CCAP1L
EBh
PCA Module-1 Capture
Register Low
0000,0000
CCAP1H
FBh
PCA Module-1 Capture
Register High
0000,0000
PCA_PWM0 F2h
PCA PWM Mode
Auxiliary Register 0
-
-
-
-
-
-
EPC0H EPC0L xxxx,xx00
PCA_PWM1 F3h
PCA PWM Mode
Auxiliary Register 1
-
-
-
-
-
-
EPC1H EPC1L xxxx,xx00
0xxx,x000
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
13
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
中断
STC12C2052AD 系列 1T 8051 单片机 中断 特殊功能寄存器 Interrupt SFRs
Mnemonic Add
Name
7
6
5
4
3
2
1
0
Reset Value
IE
A8h
Interrupt Enable
EA
EPCA
ESPI
ES ET1
EX1
ET0
EX0
0000,0000
IP
B8h
Interrupt Priority Low
-
PPCA
PSPI
PS PT1
PX1
PT0
PX0
xx00,0000
IPH
B7h
Interrupt Priority High
-
PPCAH PSPIH PSH PT1H PX1H PT0H PX0H 0000,0000
STC12C2052AD 系列 中断与普通 8051 完全兼容,优先级可设为 4 级。
Interrupt
Source
中断源
Vector
Address
中断
向量地址
Polling
Sequence
中断
查询次序
/INT0
0003H
0(最优先) PX0H,PX0
0,0
0,1
1,0
1,1
IE0
Timer 0
000BH
1
PT0H,PT0
0,0
0,1
1,0
1,1
TF0
/INT1
0013H
2
PX1H,PX1
0,0
0,1
1,0
1,1
IE1
Timer 1
001BH
3
PT1H,PT1
0,0
0,1
1,0
1,1
IF1
UART
0023H
4
PSH, PS
0,0
0,1
1,0
1,1
RI + TI
SPI/ADC
002BH
5
PSPIH,PSPI 0,0
0,1
1,0
1,1
SPIF + ADC_FLAG
PCA/LVD
0033H
6
PPCAH,PPCA 0,0
0,1
1,0
1,1
CF + LVDF
Interrupt
中断
优先级0
优先级3
优先级1 优先级2
Request
优先级设置 最低
最高
中断请求
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
14
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
定时器 0/ 定时器 1,UART 串口的速度
Mnemonic Add Name
AUXR
7
6
5
8Eh Auxiliary Register T0x12 T1x12 UART_M0x6
4
3
2
EADCI
ESPI
EBODI
1 0 Reset Value
- -
0000,00xx
定时器 0 和定时器 1:
STC12C2052AD 系列是 1T 的 8051 单片机,为了兼容传统 8051,定时器 0 和定时器 1 复位后是传统 8051 的
速度,即 1 2 分频,这是为了兼容传统 8 0 5 1 。但也可不进行 1 2 分频,实现真正的 1 T 。
T0x12: 0, 定时器 0 是传统 8051 速度,12 分频;1, 定时器 0 的速度是传统 8051 的 12 倍,不分频
T1x12: 0, 定时器 1 是传统 8051 速度,12 分频;1, 定时器 1 的速度是传统 8051 的 12 倍,不分频
UART 串口的模式 0:
STC12C2052AD 系列是 1T 的 8051 单片机,为了兼容传统 8051,UART 串口复位后是兼容传统 8051 的
UART_M0x6: 0, UART 串口的模式 0 是传统 12T 的 8051 速度,12 分频;
1, UART 串口的模式 0 的速度是传统 12T 的 8051 的 6 倍,2 分频
系统工作时钟
STC12C2052AD 系列是 1T 的 8051 单片机,系统时钟兼容传统 8051。
现出厂标准配置是使用芯片内部的 R/C 振荡器,5V 单片机常温下频率是 5.65MHz - 5.95MHz,因为随着
温度的变化,内部 R/C 振荡器的频率会有一些温飘,故内部 R/C 振荡器只适用于对时钟频率要求不敏感的场
合 。
在对 STC12C2052AD 系列单片机进行 ISP 下载用户程序时,可以在选项中选择:
“下次冷启动时使用内部 R/C 振荡器: No”
这样下载完用户程序后,停电,再冷启动后单片机的工作时钟使用的就不是内部R/C振荡器,而是外部晶体振
荡后产生的高精度时钟了(接在 XTAL1/XTAL2 管脚上)
,也可以直接从 XTAL1 脚输入外部时钟,XTAL2 脚浮空。
如果还要设置成使用内部 R/C 振荡器,在对 STC12C2052AD 系列单片机进行 ISP 下载用户程序时,可以在
选项中选择:
“下次冷启动时使用内部 R/C 振荡器: Yes”
空闲模式时的系统时钟
Mnemonic
Add Name
7
6
5
4
3
2
1
0
PCON
87h Power Control
SMOD
SMOD0
LVDF
POF
GF1
GF0
PD
IDL
IDLE_CLK
C7h Clock Divder
-
-
-
-
-
IDLCLKS2
IDLCLKS1
Reset value
0011,0000
IDLCLKS0 xxxx,x000
如用户系统希望进入空闲模式后(MOV PCON,#00000001B)大幅降低功耗,还可对系统时钟进行分频,注
意在 STC12C2052AD系列中此分频只对空闲模式有效,正常工作时是无效的。
IDLCLKS2 IDLCLKS1 IDLCLKS0 空闲模式时,CPU的工作时钟
0
0
0
系统时钟(外部时钟或内部R/C振荡时钟)
0
0
1
系统时钟/2
0
1
0
系统时钟/4
0
1
1
系统时钟/8
1
0
0
系统时钟/16
1
0
1
系统时钟/32
1
1
0
系统时钟/64
1
1
1
系统时钟/128
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
15
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
I/O 口结构
I/O 口配置
STC12C2052AD 系列单片机其所有 I/O 口均可由软件配置成 4 种类型之一,如下表所示。4 种类型分别
为:准双向口(标准 8051 输出模式)
、推挽输出、仅为输入(高阻)或开漏输出功能。每个口配置 2 个控制寄
存器控制每个引脚输出类型。STC12C2052AD 系列单片机上电复位后为准双向口(标准 8051 输出模式)模式。
口输出方式设定
P3M0【 7: 0】
0
0
1
1
P3M1【 7: 0】
0
1
0
1
P1M0【7:0】
0
0
1
P1M1【7:0】
0
1
0
1
1
I/O 口 模 式
准 双 向 口 (传 统 8051 I/O 口 模 式 )
推 挽 输 出 ( 强 上 拉 输 出 , 可 达 20mA, 尽 量 少 用 )
仅为输入(高阻)
开 漏 (Open Drain)
I/O 口模式(P1.x 如做A/D使用,需先将其设置成开漏或高阻输入)
准双向口(传统8051 I/O 口模式)
推挽输出(强上拉输出,可达20mA,尽量少用)
仅为输入(高阻),如果该I/O口需作为A/D使用,可选此模式
开漏(Open Drain) ,如果该I/O口需作为A/D使用,可选此模式
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
16
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
1.准双向口输出配置
准双向口输出类型可用作输出和输入功能而不需重新配置口线输出状态。这是因为当口线输出为 1
时驱动能力很弱,允许外部装置将其拉低。当引脚输出为低时,它的驱动能力很强,可吸收相当大的
电流。准双向口有 3 个上拉晶体管适应不同的需要。
在 3 个上拉晶体管中,有 1 个“极弱上拉”,当口线锁存为 1 时打开。当引脚悬空时,这个极
弱的上拉源产生很弱的上拉电流将引脚上拉为高电平。
第 2 个上拉晶体管称为“弱上拉”,当口线寄存器为 1 且引脚本身也为 1 时打开。此上拉提供基
本驱动电流使准双向口输出为 1 。如果一个引脚输出为 1 而由外部装置下拉到低时,弱上拉关闭而“极
弱上拉”维持开状态,为了把这个引脚强拉为低,外部装置必须有足够的灌电流能力使引脚上的电压将
到门槛电压以下。
第 3 个上拉晶体管称为“强上拉”。当口线锁存器由 0 到 1 跳变时,这个上拉用来加快准双向口
由逻辑 0 到逻辑 1 转换。当发生这种情况时,强上拉打开约 2 个机器周期以使引脚能够迅速地上拉到高电
平 。
准双向口输出如下图所示。
VDD
2 个 CPU
时钟延时
弱
VDD
VDD
弱
极弱
端口
引脚
口锁存数据
输入数据
干扰滤波
尽管 STC12LE2052 系列单片机为 3V 器件,但引脚可承受 5V 电压。在准双向口模式中,如果用户在引脚加
上5V电压,将会有电流从引脚流向VDD,这样导致额外的功率消耗。因此,建议不要在准双向口模式中向3V单
片机引脚施加 5V 电压。
准双向口带有一个施密特触发输入以及一个干扰抑制电路。
2.开漏输出配置
当口线锁存器为 0 时,开漏输出关闭所有上拉晶体管。当作为一个逻辑输出时,这种配置方式必
须有外部上拉,一般通过电阻外接到 V D D 。这种方式的下拉与准双向口相同。输出口线配置如下图所示。
端口
引脚
口锁存数据
输入数据
干扰滤波
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
17
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
开漏端口带有一个施密特触发输入以及一个干扰抑制电路。
3 . 仅为输入(高阻)配置
输入口配置如下图所示。
端口
引脚
输入数据
干扰滤波
输入口带有一个施密特触发输入以及一个干扰抑制电路。
4.推挽输出配置
推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为 1 时提供持续的
强上拉。推挽模式一般用于需要更大驱动电流的情况。
推挽引脚配置如下图所示。
VDD
强
口锁存数据
端口
引脚
输入数据
干扰滤波
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
18
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
A/D 及 A/D转换控制寄存器 ADC_CONTR/ADC_DATA
STC12C2052AD 系列带 A/D 转换的单片机在 P1 口,有 8 路 8 位高精度的高速 A/D 转换器, 速
度可达 100KHz。P1.7 - P1.0 共 8 路电压输入型 A/D,可做温度检测、电池电压检测、按
键扫描、频谱检测等。上电复位后 P1 口为弱上拉型 I/O 口,用户可以通过软件设置将 8 路
中的任何一路设置为 A/D 转换,不需作为 A/D 使用的口可继续作为 I/O 口使用。需作为 A/D
使用的口需先将其设置为高阻输入或开漏模式。在 P1M0、P1M1 中对相应的位进行设置。
P1M0【 7: 0】
地 址 :91h
0
0
1
P1M1【 7: 0】
地 址 :92h
0
1
0
1
Mnemonic
I/O 口 模 式( P1.x 如 做 A/D使 用 , 需 先 将 其 设 置 成 开 漏 或 高 阻 输 入)
准 双 向 口( 传 统 8051 I/O 口 模 式)
推 挽 输 出 ( 强 上 拉 输 出, 可 达 20mA, 尽 量 少 用)
仅 为 输 入 ( 高 阻) , 如 果 该 I/O口 需 作 为 A/D使 用 , 可 选 此 模 式
1
Add
开 漏 (Open Drain) , 如 果 该 I/O口 需 作 为 A/D使 用 , 可 选 此 模 式
Name
7
ADC_CONTR C5h
A/D 转换控制寄存器
ADC_DATA
A/D 转换结果寄存器
C6h
6
5
4
ADC_POWER SPEED1
SPEED0
-
-
-
3
2
1
0
Reset Value
ADC_FLAG ADC_START CHS2
CHS1
CHS0
0xx0,0000
-
-
-
xxxx,xxxx
-
-
ADC_CONTR 特殊功能寄存器: A/D 转换控制特殊功能寄存器
A/D 转换控制寄存器 ADC_POWER SPEED1
SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 0xx0,0000
CHS2 / CHS1 / CHS0:模拟输入通道选择,CHS2 / CHS1 / CHS0
CHS2
CHS1
CHS0
Analog Input Channel Select
模 拟 输 入 通 道 选 择
0
0
0
选 择 P 1 . 0 作 为 A / D 输 入 来 用
0
0
1
选 择 P 1 . 1 作 为 A / D 输 入 来 用
0
1
0
选 择 P 1 . 2 作 为 A / D 输 入 来 用
0
1
1
选 择 P 1 . 3 作 为 A / D 输 入 来 用
1
0
0
选 择 P 1 . 4 作 为 A / D 输 入 来 用
1
0
1
选 择 P 1 . 5 作 为 A / D 输 入 来 用
1
1
0
选 择 P 1 . 6 作 为 A / D 输 入 来 用
1
1
1
选 择 P 1 . 7 作 为 A / D 输 入 来 用
ADC_START: 模数转换器(ADC)转换启动控制位,设置为“1”时,开始转换
ADC_FLAG: 模数转换器转换结束标志位,当 A/D 转换完成后,ADC_FLAG = 1。
SPEED1,SPEED0:模数转换器转换速度控制位
S P E E D 1
S P E E D 0
A / D 转 换 所 需 时 间
1
2 1 0 个 时 钟 周 期 转 换 一 次 ,
C P U 工 作 频 率 2 0 M H z 时 ,
A / D 转 换 速 度 约 1 0 0 K H z
1
0
4 2 0 个 时 钟 周 期 转 换 一 次
0
1
6 3 0 个 时 钟 周 期 转 换 一 次
0
0
8 4 0 个 时 钟 周 期 转 换 一 次
1
ADC_POWER: ADC 电源控制位。
0:关闭 ADC 电源;1:给 AD 转换器提供电源
启动 AD 转换时要打开 AD 电源,AD 转换结束后关闭 AD 电源可降低功耗。
ADC_DATA 特殊功能寄存器: A/D 转换结果特殊功能寄存器
A/D 转换结果寄存器
-
-
-
-
-
-
-
-
0000,0000
模拟/数字转换结果计算公式如下:结果 = 256 x Vin / Vcc
Vin 为模拟输入通道输入电压,Vcc 为单片机实际工作电压,用单片机工作电压作为模拟参考电压。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
19
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
; ------------------------- 宏晶科技 2005/9/6 --------------------
; --------------------Mobile:0755-82948409,13922805190----------------
; ----------------------Email: support@mcu-memory.com-------------------
;ADC DEMO_2052_ASM.ASM 汇编程序演示 STC12C2052AD 系列 MCU 的 A/D 转换功能。
; 转换结果以 1 6 进制形式输出到串行口,可以用串行口调试程序观察输出结果。
;时钟 18.432MHz, 波特率 = 9600。
;各通道转换结果轮流在 P1 口用 LED 显示, 通道号同时在 P3.2 -- P3.5 LED 显示。
;---------------------------------------------------------------------
;定义与 ADC 有关的特殊功能寄存器
ADC_CONTR EQU 0C5H ;A/D 转换控制寄存器
ADC_DATA EQU 0C6H ;A/D 转换结果寄存器
P1M0 EQU 91H ;P1 口模式寄存器 0
P1M1 EQU 92H ;P1 口模式寄存器 1
;---------------------------------------------------------------------
;定义变量
counter EQU 30H
display_AD_channel_ID EQU 31H ;当前通道号
AD_channel_1_result EQU 32H ;各通道 A/D 转换结果
AD_channel_2_result EQU 33H
AD_channel_3_result EQU 34H
AD_channel_4_result EQU 35H
AD_channel_temp EQU 36H
;---------------------------------------------------------------------
main:
ACALL initiate_RS232
MOV display_AD_channel_ID, #0
MOV counter, #0
main_loop1:
ACALL set_P1_ADC_channels ;将 P1.1 -- P1.4 设置为适宜 A/D 转换的模式
MOV A, #01H ;P1.1 为 A/D 当前通道, 测量电压并发送结果
ACALL get_AD_result_and_send_it
MOV A, #02H ;P1.2 为 A/D 当前通道, 测量电压并发送结果
ACALL get_AD_result_and_send_it
MOV A, #03H ;P1.3 为 A/D 当前通道, 测量电压并发送结果
ACALL get_AD_result_and_send_it
MOV A, #04H ;P1.4 为 A/D 当前通道, 测量电压并发送结果
ACALL get_AD_result_and_send_it
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
20
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
MOV A, #00H ;连续发送 4 个 00H, 便于观察输出显示
ACALL Send_Byte
ACALL Send_Byte
ACALL Send_Byte
ACALL Send_Byte
INC counter ;循环若干次后换通道
MOV A, counter
CLR C
SUBB A, #06H
JC main_1
MOV counter, #0
INC display_AD_channel_ID
ANL display_AD_channel_ID, #03H
main_1:
ACALL set_P1_IO_port ;P1 口设置为普通 I/O 模式
ACALL display
MOV R2, #10
main_loop2:
MOV A, #0A0H ;延时
ACALL delay
DJNZ R2, main_loop2
SJMP main_loop1
;---------------------------------------------------------------------
get_AD_result_and_send_it: ;A = A/D 当前通道, 测量电压并发送结果
ACALL get_AD_result
ACALL Send_Byte
MOV A, #1
ACALL delay
RET
;---------------------------------------------------------------------
get_AD_result:
ANL ADC_CONTR, #0E0H ;1110,0000 清 ADC_FLAG, ADC_START 位和低 3 位
ANL A, #07H ;0000,0111 清 0 高 5 位
MOV AD_channel_temp, A ;暂存当前通道号
ORL ADC_CONTR, A ;设置 A/D 当前通道
MOV A, #1 ;延时, 使输入电压达到稳定
ACALL delay
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
21
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
CLR A
MOV R7, A ;R7 用于检测 A/D 转换是否结束
MOV ADC_DATA, A ;清 A/D 转换结果寄存器
ORL ADC_CONTR, #08H ;0000,1000 令 ADCS = 1, 启动 A/D 转换,
wait_AD_finishe:
MOV A, #10H ;0001,0000 测试 A/D 转换结束否
ANL A, ADC_CONTR
JZ wait_AD_finishe
ANL ADC_CONTR, #0E7H ;1110,0111 清 ADC_FLAG 位, 停止 A/D 转换
MOV A, AD_channel_temp ;取回当前通道号
DEC A
ADD A, #AD_channel_1_result
MOV R0, A
MOV A, ADC_DATA ;保存、返回 A/D 转换结果
MOV @R0, A
RET
;---------------------------------------------------------------------
display:
MOV R2, display_AD_channel_ID ;用 P3.2 -- P3.5 显示第几通道
INC R2
SETB C
CLR A
display_loop:
RLC A
CLR C
DJNZ R2, display_loop
RL A
RL A
CPL A
ORL P3, #3CH ;0011,1100 使 P3.2 -- P3.5 LED 熄灭
ANL P3, A
MOV A, display_AD_channel_ID ;取相应通道的转换结果
ADD A, #AD_channel_1_result
MOV R0, A
MOV A, @R0
CPL A
MOV P1, A ;显示转换结果
RET
;---------------------------------------------------------------------
set_P1_ADC_channels: ;将 P1.2 -- P1.5 设置为适宜 A/D 转换的模式
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
22
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
MOV P1, #0FFH ;将 P1 口置高, 为 A/D 转换作准备
ORL ADC_CONTR, #80H ;1000,0000 打开 A/D 转换电源
MOV P1M0, #1EH ;0001,1110, 用作 A/D 转换的 P1.x 口, 先设为开漏
MOV P1M0, #1EH ;0001,1110, P1.2 -- P1.5 先设为开漏
;断开内部上拉电阻
MOV A, #20H
ACALL delay
RET
;---------------------------------------------------------------------
set_P1_IO_port: ;P1 口设置为普通 I/O 模式
MOV P1M0, #00H
MOV P1M0, #00H
ANL ADC_CONTR, #7FH ;0111,1111 关闭 A/D 转换电源
RET
;---------------------------------------------------------------------
initiate_RS232: ;串口初始化
CLR ES ;禁止串口中断
MOV TMOD, #20H ;设置 T1 为波特率发生器
MOV SCON, #50H ;0101,0000 8 位数据位, 无奇偶校验
MOV TH1, #0FBH ;18.432MHz 晶振, 波特率 = 9600
MOV TL1, #0FBH
CLR RI
SETB TR1
SETB ES ;允许串口中断
RET
;---------------------------------------------------------------------
Send_Byte: ;发送一个字节
CLR TI ;清零串口发送中断标志
MOV SBUF, A
Send_Byte_wait: ;等待发送完毕
JNB TI, Send_Byte_wait
CLR TI ;清零串口发送中断标志
RET
;---------------------------------------------------------------------
delay: ;延时
PUSH 02
PUSH 03
PUSH 04
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
23
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
MOV R4, A
delay_loop1:
MOV R2, #18H
MOV R3, #0
delay_loop2:
DJNZ R3, delay_loop2
DJNZ R2, delay_loop2
DJNZ R4, delay_loop1
POP 04
POP 03
POP 02
RET
;---------------------------------------------------------------------
END
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
24
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
看门狗应用
适用型号: STC12C2052AD 系列
Mnemonic
Add
WDT_CONTR E1h
Name
7
6
5
Watch-Dog-Timer
Control register
4
3
2
1
0
Reset Value
WDT_FLAG
-
EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
Symbol 符号 Function 功能
WDT_FLAG When WDT overflows, this bit is set. It can be cleared by software.
看门狗溢出标志位,当溢出时,该位由硬件置 1,可用软件将其清 0。
EN_WDT
Enable WDT bit. When set, WDT is started
看门狗允许位, 当设置为“1 ”时,看门狗启动。
CLR_WDT
WDT clear bit. When set, WDT will recount. Hardware will automatically clear
this bit.
看门狗清“0 ”位, 当设为“1 ”时,看门狗将重新计数。硬件将自动清“0 ”此位。
When set, WDT is enabled in IDLE mode. When clear, WDT is disabled in IDLE mode
看门狗“I D L E ”模式位, 当设置为“1 ”时, 看门狗定时器在“空闲模式”计数
当清“0”该位时, 看门狗定时器在“空闲模式”时不计数
IDLE_WDT
PS2, PS1, PS0 Pre-scale value of Watchdog timer is shown as the bellowed table:
看门狗定时器预分频值,如下表所示
PS2
PS1
PS0
Pre-scale
预 分 频
WDT Period @20MHz
0
0
0
2
39.3 mS
0
0
1
4
78.6 mS
0
1
0
8
157.3 mS
0
1
1
16
314.6 mS
1
0
0
32
629.1 mS
1
0
1
64
1.25S
1
1
0
128
2.5S
1
1
1
256
5S
The WDT period is determined by the following equation 看门狗溢出时间计算
看门狗溢出时间 = (12 x Pre-scale x 32768) / Oscillator frequency
设时钟为 12MHz:
看门狗溢出时间 = (12 x Pre-scale x 32768) / 12000000 = Pre-scale x 393216 / 12000000
PS2
PS1
PS0
Pre-scale
预 分 频
WDT Period @12MHz
0
0
0
2
65.5 mS
0
0
1
4
131.0 mS
0
1
0
8
262.1 mS
0
1
1
16
524.2 mS
1
0
0
32
1.0485S
1
0
1
64
2.0971S
1
1
0
128
4.1943S
1
1
1
256
8.3886S
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
25
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
设时钟为 11.0592MHz:
看门狗溢出时间 = (12 x Pre-scale x 32768) / 11059200 = Pre-scale x 393216 / 11059200
PS2
PS1
PS0
Pre-scale
预分频
WDT Period @11.0592MHz
0
0
0
2
71.1 mS
0
0
1
4
142.2 mS
0
1
0
8
284.4 mS
0
1
1
16
568.8 mS
1
0
0
32
1.1377S
1
0
1
64
2.2755S
1
1
0
128
4.5511S
1
1
1
256
9.1022S
汇编语言程序示例
WDT_CONTR DATA
;复位入口
ORG
LJMP
…
ORG
Initial:
MOV
0E1H ; 或者 WDT_CONTR EQU 0E1H
0000H
Initial
0060H
WDT_CONTR, #00111100B; Load initial value 看门狗定时器控制寄存器初始化
; EN_WDT = 1, CLR_WDT = 1, IDLE_WDT = 1, PS2 = 1, PS1 = 0, PS0 = 0
…
Main_Loop:
LCALL Display_Loop
LCALL
…
MOV
…
Keyboard_Loop
WDT_CONTR, #00111100B ; 喂狗, 不要用 ORL WDT_CONTR, #00010000B
LJMP
Main_Loop
C语言程序示例
#include<reg52.h>
sfr
WDT_CONTR
void main()
{ …
WDT_CONTR =
=
0xe1;
0x3c;
/* 0011,1100 EN_WDT = 1,CLR_WDT = 1,IDLE_WDT = 1,PS2 = 1,PS1 = 0,PS0 = 0 */
while(1){
display();
keyboard();
…
WDT_CONTR =
0x3c; /* 喂狗, 不要用 WDT_CONTR =
WDT_CONTR | 0x10;*/
}
}
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
26
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;本程序用于验证 STC12C2052 系列单片机的看门狗及其溢出时间计算公式
;看门狗及其溢出时间 = (12 * Pre_scale *32768)/Oscillator frequency
WDTCR EQU 0E1H ;看门狗地址
LED EQU P1.5 ;用 P1.5 控制发光二级管
Pre_scale_Word EQU 0x35 ;清 0、启动看门狗,预分频数 =64
;f=18.432MHz
; 看门狗溢出时间 = (12 * 64 * 32768)/18432000 = 1.36S
ORG 0000H
AJMP main
ORG 0100H
main:
CLR LED ;点亮 LED
ACALL delay ;延时,让 LED 亮大约 1S 的时间
MOV WDTCR, #Pre_scale_Word ;启动看门狗,若注释掉本条指令即不启动狗,
;LED 只会亮一次
SETB LED ;熄灭 LED
wait:
SJMP wait ;跳转到本语句(停机),等待看门狗溢出复位, 复位后将再次点亮 LED
delay:
MOV R0, #0
MOV R1, #0
MOV R2, #100
delay_loop:
DJNZ R0, delay_loop
DJNZ R1, delay_loop
DJNZ R2, delay_loop
RET
END
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
27
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC12C2052AD 系列 1T 单片机通过外部中断从掉电模式唤醒
;*************************************************************************
;Wake Up Idle and Wake Up Power Down
;*************************************************************************
ORG 0000H
AJMP MAIN
ORG 0003H
int0_interrupt:
CLR P1.7 ;点亮 P1.7 LED 表示已响应 int0 中断
ACALL delay ;延时是为了便于观察, 实际应用不需延时
CLR EA ;关闭中断, 简化实验. 实际应用不需关闭中断
RETI
ORG 0013H
int1_interrupt:
CLR P1.6 ;点亮 P1.6 LED 表示已响应 int1 中断
ACALL delay ;延时是为了便于观察, 实际应用不需延时
CLR EA ;关闭中断, 简化实验. 实际应用不需关闭中断
RETI
ORG 0100H
delay:
CLR A
MOV R0, A
MOV R1, A
MOV R2, #02
delay_loop:
DJNZ R0, delay_loop
DJNZ R1, delay_loop
DJNZ R2, delay_loop
RET
main:
MOV R3, #0 ;P1 LED 递增方式变化, 表示程序开始运行
main_loop:
MOV A, R3
CPL A
MOV P1, A
ACALL delay
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
28
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
INC R3
MOV A, R3
SUBB A, #18H
JC main_loop
MOV P1, #0FFH ;熄灭全部灯表示进入 Power Down 状态
CLR IT0 ;设置低电平激活外部中断
; SETB IT0 ;下降沿激活不了 Power Down 状态下的外部中断。原因是
;MCU 判断下降沿需要 2 个机器周期, 而此时 CLOCK 已停止,
;MCU 无法运行 2 个机器周期。
SETB EX0 ;允许外部中断 0
CLR IT1 ;设置低电平激活外部中断
; SETB IT1 ;下降沿激活不了 Power Down 状态下的外部中断, 原因同上
SETB EX1 ;允许外部中断 1
SETB ET0 ;要由外部中断 1 唤醒,“ET0=1”是必须的,硬件就这样做的
;外部中断 0 就无此必要,建议 Powerdown 用外部中断 0 唤醒
SETB EA ;开中断, 若不开中断就不能唤醒 Power Down
;下条语句将使 MCU 进入 idle 状态或 Power Down 状态
;低电平激活外部中断可以将 MCU 从 Power Down 状态中唤醒
;其方法为:将外部中断脚拉低
MOV A, PCON ;令 PD=1, 进入 Power Down 状态, PD = PCON.2
ORL A, #02H
MOV PCON, A
MOV PCON, #01H ;删除本语句前的 ";", 同时将前3 条语句前加上注释符号";",
;令 IDL=1, 可进入 idle 状态, IDL = PCON.1
MOV P1, #0DFH ;请注意:
; 1.外部中断使 MCU 退出 Power Down 状态,执行本条指令后
;响应中断, 表现为 P1.5 与 P1.7 的 LED 同时亮(INT0 唤醒)
; 2.外部中断使MCU退出 idle 状态,先响应中断然后再执行本
;条指令, 表现为 P1.7 的 LED 先亮(INT0 唤醒)P1.5 的 LED 后亮
WAIT 1:
SJMP WAIT1 ;跳转到本语句, 停机
END
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
29
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC12C2052AD 系列 1T 8051 单片机IAP 应用
STC12C2052AD 系列 1T 8051 单片机内部 EEPROM 的应用
-- 利用 IAP 技术可实现 EEPROM,内部 Flash 擦写次数为 100,000 次以上
STC12C2052AD 系列 1T 8051 单片机 ISP/IAP 特殊功能寄存器 ISP/IAP SFRs
Mnemonic
Add Name
7
ISP_DATA
E2h ISP/IAP Flash Data Register
6
5
4
3 2
1
0
Reset Value
1111,1111
ISP_ADDRH E3h ISP/IAP Flash Address High
0000,0000
ISP_ADDRL E4h ISP/IAP Flash Address Low
0000,0000
ISP_CMD
E5h ISP/IAP Flash Command Register -
ISP_TRIG
E6h ISP/IAP Flash Command Trigger
ISP_CONTR E7h ISP/IAP Control Register
-
-
-
- -
MS1 MS0 xxxx,xx00
xxxx,xxxx
ISPEN SWBS SWRST CMD_FAIL 1 WT2 WT1 WT0 0000,1000
ISP_DATA:
ISP/IAP 操作时的数据寄存器。
ISP/IAP 从 Flash 读出的数据放在此处,向 Flash 写的数据也需放在此处
ISP_ADDRH:
ISP_ADDRL:
ISP_CMD:
ISP/IAP 操作时的地址寄存器高八位。
ISP/IAP 操作时的地址寄存器低八位。
ISP/IAP 操作时的命令模式寄存器,须命令触发寄存器触发方可生效。
B7
B6
B5
B4
B3
B2
保留
B1
B0
命 令 / 操 作 模 式 选 择
命令
-
-
-
-
-
-
0
0
Standby 待 机 模 式 , 无 ISP操 作
-
-
-
-
-
-
0
1
从 用 户 的 应 用 程 序 区 对 " D a t a F l a s h / E E P R O M 区 "
进行字节读
-
-
-
-
-
-
1
0
从 用 户 的 应 用 程 序 区 对 " D a t a F l a s h / E E P R O M 区 "
进行字节编程
-
-
-
-
-
-
1
1
从 用 户 的 应 用 程 序 区 对 " D a t a F l a s h / E E P R O M 区 "
进行扇区擦除
程序在用户应用程序区时,仅可以对数据 Flash 区(EEPROM)进行字节读 / 字节编程 /
扇区擦除,STC12C5052AD 系列除外。STC12C2052AD 系列单片机出厂时就已完全加密。
ISP_TRIG:
ISP/IAP 操作时的命令触发寄存器。
在 ISPEN(ISP_CONTR.7) = 1 时,对 ISP_TRIG 先写入 46h,再写入 B9h,
ISP/IAP 命令才会生效。
ISP_CONTR:
ISP/IAP 控制寄存器。
B7
B6
B5
B4
B3
ISPEN SWBS SWRST CMD_FAIL 1
B2
B1
B0
Reset Value
WT2
WT1
WT0
0000,1000
ISPEN:
ISP/IAP 功能允许位。0:禁止 ISP/IAP 编程改变 Flash,1:允许编程改变 Flash
SWBS:
软件选择从用户主程序区启动(0 ),还是从 I S P 程序区启动(1 )。
SWRST:
0: 不操作; 1 : 产生软件系统复位,硬件自动清零。
CMD_FAIL: 如果送了 ISP/IAP 命令,并对 ISP_TRIG 送 46h/B9h 触发失败,则为 1,需由
软件清零。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
30
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
设 置 等 待 时 间
WT2
WT1
WT0
C P U 等 待 时 间 ( C P U 的 工 作 时 钟 )
Read
Program
Sector Erase
Recommended System Clock
1
1
1
2
55
21012
1MHz
1
1
0
2
110
42024
2MHz
1
0
1
2
165
63036
3MHz
1
0
0
2
330
126072
6MHz
0
1
1
2
660
252144
12MHz
0
1
0
2
1100
420240
20MHz
0
0
1
2
1320
504288
24MHz
0
0
0
2
1760
672384
30MHz
STC12C2052AD 系列单片机内部可用 Data Flash(EEPROM)的地址(与程序空间是分开的):
如果对应用程序区进行 I A P 写数据,则该语句会被单片机忽略,继续执行下一句。
程序在用户应用程序区(AP 区)时,仅可以对Data Flash(EEPROM)进行IAP/ISP 操作,不可以
修改自身,这是系统可靠的基础。但 STC12C5052/STC12C5052AD 可以修改自己(灵活)。
STC12C0552,STC12C0552AD,STC12LE0552,STC12LE0552AD
STC12C1052,STC12C1052AD,STC12LE1052,STC12LE1052AD
STC12C2052,STC12C2052AD,STC12LE2052,STC12LE2052AD
STC12C3052,STC12C3052AD,STC12LE3052,STC12LE3052AD
STC12C4052,STC12C4052AD,STC12LE4052,STC12LE4052AD
系列单片机内部可用 Data Flash(EEPROM)的地址:
第 一 扇 区
第 二 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
1000h
11FFh
1200h
13FFh
每 个 扇 区 5 1 2 字 节
建 议 同 一 次 修 改 的 数 据
放 在 同 一 个 扇 区,不 必
用满 , 当然可全用
STC12C5052,STC12C5052AD,STC12LE5052,STC12LE5052AD单片机可对自身内部应用程序区进
行 IAP/ISP 操作,故所有部分均可当 Data Flash(EEPROM)使用,其地址如下:
第一扇区
第二扇区
第三扇区
第四扇区
起始地址
结束地址
起始地址 结 束 地 址 起始地址
结束地址
起始地址
0000h
01FFh
0200h
05FFh
0600h
03FFh
0400h
第五扇区
第六扇区
起始地址
结束地址
起始地址 结 束 地 址 起始地址
结束地址
起始地址
0800h
09FFh
0A00h
0DFFh
0E00h
第九扇区
0BFFh
第十扇区
起始地址
结束地址
起始地址 结 束 地 址
1000h
11FFh
1200h
第七扇区
0C00h
结束地址 每 个 扇 区
512字 节
07FFh
第八扇区
建议同一次
结束地址 修改的数据
放在同一个
0FFFh
扇区,不必
用满,当然
可全用
13FFh
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
31
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC12C2052AD 系列 IAP 应用汇编简介
STC12C2052AD 系列 内部 EEPROM 的应用
;用 DATA 还是 EQU 声明新增特殊功能寄存器地址要看你用的汇编器 / 编译器
ISP_DATA
DATA
0E2h;
或 ISP_DATA
EQU
0E2h
ISP_ADDRH
DATA
0E3h;
或
ISP_ADDRH
EQU
0E3h
ISP_ADDRL
DATA
0E4h;
或
ISP_ADDRL
EQU
0E4h
ISP_CMD
ISP_TRIG
DATA
DATA
0E5h;
0E6h;
或
或
ISP_CMD
ISP_TRIG
EQU
EQU
0E5h
0E6h
ISP_CONTR
DATA
0E7h;
或
ISP_CONTR
EQU
0E7h
;定义 ISP/IAP 命令及等待时间
ISP_IAP_BYTE_READ
EQU 1
;字节读
ISP_IAP_BYTE_PROGRAM
EQU 2
;字节编程,前提是该字节是空,0FFh
ISP_IAP_SECTOR_ERASE
EQU 3
;扇区擦除,要某字节为空,要擦一扇区
WAIT_TIME
EQU 0
;设置等待时间,30MHz 以下 0,24M 以下 1,
;20MHz 以下 2,12M 以下 3,6M 以下 4,3M 以下 5,2M 以下 6,1M 以下 7,
;字节读
MOV ISP_ADDRH,
#BYTE_ADDR_HIGH
;
送地址高字节
MOV ISP_ADDRL,
#BYTE_ADDR_LOW
;
送地址低字节
CLR EA
;
关中断, 此时各中断请求,会被挂起,一开中断,立即响应
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_CONTR,
#WAIT_TIME
;
设置等待时间
ORL ISP_CONTR,
#10000000B
;
允许 ISP/IAP 操作
MOV ISP_CMD,
#ISP_IAP_BYTE_READ ;
送字节读命令
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_TRIG,
#46h
;先送 46h,再送 B9h 到 ISP/IAP 触发寄存器
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_TRIG,
#0B9h
;送完 B9h 后,ISP/IAP 命令立即被触发起动
; C P U 等待 I A P 动作完成后,才会继续执行程序,要先关中断(E A ),
;再送 46h,B9h 到 ISP/IAP 触发寄存器,起动 ISP/IAP 命令,关中断在触发之前即可
NOP
;数据读出到 ISP_DATA 寄存器后,CPU 继续执行程序
MOV ISP_CONTR,
#00000000B
;禁止 ISP/IAP 操作
MOV ISP_CMD,
#00000000B
;去除 ISP/IAP 命令
MOV ISP_TRIG,
#00000000B
;防止 ISP/IAP 命令误触发
MOV ISP_ADDRH,
#0
;送地址高字节单元为 00,指向非 EEPROM 区
MOV ISP_ADDRL,
#0
;送地址低字节单元为 00,防止误操作
SETB EA ;
开中断,CPU 处理完 ISP/IAP 动作即可开中断
MOV A,
ISP_DATA ;将读出的数据送往 Acc
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
32
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;字节编程,该字节为 F F h / 空时,可对其编程,否则不行, 要先执行扇区擦除
MOV ISP_DATA,
#ONE_DATA
;
送字节编程数据到 ISP_DATA
MOV ISP_ADDRH,
#BYTE_ADDR_HIGH
;
送地址高字节
MOV ISP_ADDRL,
#BYTE_ADDR_LOW
CLR EA
关中断, 此时各中断请求,会被挂起,一开中断,立即响应
;
;
送地址低字节
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_CONTR,
#WAIT_TIME
;
设置等待时间
ORL ISP_CONTR,
#10000000B
;
允许 ISP/IAP 操作
MOV ISP_CMD,
#ISP_IAP_BYTE_PROGRAM ;送字节编程命令
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_TRIG,
#46h
;先送 46h,再送 B9h 到 ISP/IAP 触发寄存器
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_TRIG,
#0B9h
;送完 B9h 后,ISP/IAP 命令立即被触发起动
; C P U 等待 I A P 动作完成后,才会继续执行程序,要先关中断(E A ),
;再送 46h,B9h 到 ISP/IAP 触发寄存器,起动 ISP/IAP 命令,关中断在触发之前即可
NOP
;字节编程成功后,CPU 继续执行程序
MOV ISP_CONTR,
#00000000B
;禁止 ISP/IAP 操作
MOV ISP_CMD,
#00000000B
;去除 ISP/IAP 命令
MOV ISP_TRIG,
#00000000B
;防止 ISP/IAP 命令误触发
MOV ISP_ADDRH,
#0
;送地址高字节单元为 00,指向非 EEPROM 区
MOV ISP_ADDRL,
#0
;送地址低字节单元为 00,防止误操作
SETB EA
;
开中断,CPU 处理完 ISP/IAP 动作即可开中断
----------------------------------------------------
小常识: (STC 单片机的 Data Flash 当 EEPROM 功能使用)
3 个基本命令 - - - - 字节读,字节编程,扇区擦除
字节编程:如果该字节是“1 1 1 1 , 1 1 1 1 B ”, 则可将其中的“1 ”编程为“0 ”,如果该
字节中有位为“0 ”,则须先将整个扇区擦除,因为只有“扇区擦除”才可以将“0 ”
变 为 “ 1 ”。
扇 区 擦 除 : 只 有 “ 扇 区 擦 除 ” 才 可 能 将 “ 0 ” 擦 除 为 “ 1 ”。
大建议:
1.同一次修改的数据放在同一扇区中,单独修改的数据放在另外的扇区,就不须读出保护。
2.如果一个扇区只用一个字节,那就是真正的 EEPROM,STC 单片机的 Data Flash 比外部
EEPROM 要快很多,读一个字节 / 编程一个字节 / 擦除一个扇区大概是 10uS/60uS/10mS。
3.如果同一个扇区中存放了一个以上的字节,某次只需要修改其中的一个字节或一部分字
节时,则另外的不需要修改的数据须先读出放在 STC 单片机的 RAM 中,然后擦除整个扇
区,再将需要保留的数据和需修改的数据一并写回该扇区中。这时每个扇区使用的字节数
是使用的越少越方便(不需读出一大堆需保留数据)。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
33
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;扇区擦除,没有字节擦除,只有扇区擦除,512 字节 / 扇区, 每个扇区用得越少越方便
;如果要对某个扇区进行擦除,而其中有些字节的内容需要保留,则需将其先读到单片机
;内部的 RAM 中保存,再将该扇区擦除,然后将须保留的数据写回该扇区,所以每个扇区
;中用的字节数越少越好,操作起来越灵活越快(每个扇区只用 1-128 字节以内较方便)
MOV ISP_ADDRH,
MOV ISP_ADDRL,
#SECTOR_FIRST_BYTE_ADDR_HIGH
#SECTOR_FIRST_BYTE_ADDR_LOW
CLR EA
关中断, 此时各中断请求,会被挂起,一开中断,立即响应
;
;送扇区起始地址高字节
;送扇区起始地址低字节
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_CONTR,
#WAIT_TIME
;设置等待时间
ORL ISP_CONTR,
#10000000B
;允许 ISP/IAP
MOV ISP_CMD,
#ISP_IAP_SECTOR_ERASE
;送扇区擦除命令
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_TRIG,
#46h
;先送 46h,再送 B9h 到 ISP/IAP 触发寄存器
; 加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位
MOV ISP_TRIG,
#0B9h
;送完 B9h 后,ISP/IAP 命令立即被触发起动
; C P U 等待 I A P 动作完成后,才会继续执行程序,要先关中断(E A ),
;再送 46h,B9h 到 ISP/IAP 触发寄存器,起动 ISP/IAP 命令,关中断在触发之前即可
NOP
;扇区擦除成功后,CPU 继续执行程序
MOV ISP_CONTR,
#00000000B
;禁止 ISP/IAP 操作
MOV ISP_CMD,
#00000000B
;去除 ISP/IAP 命令
MOV ISP_TRIG,
#00000000B
;防止 ISP/IAP 命令误触发
MOV ISP_ADDRH,
#0
;送地址高字节单元为 00,指向非 EEPROM 区
MOV ISP_ADDRL,
#0
;送地址低字节单元为 00,防止误操作
;从用户应用程序区(AP 区)软件复位并切换到 ISP 程序区开始执行程序
MOV ISP_CONTR,
#01100000B
;SWBS = 1(选择 ISP 区), SWRST = 1(软复位)
;从 ISP 程序区软件复位并切换到用户应用程序区(AP 区)开始执行程序
MOV ISP_CONTR,
#00100000B
;SWBS = 0(选择 AP 区), SWRST = 1(软复位)
;使用 ISP/IAP 功能的朋友尽量给 13922805190(姚工)一个电话交流一下
;建议在打开 ISP 及在 ISP 触发送 46H,B9H 之前三个地方,各加些软件陷阱(欢迎来电讨论)
;5V 单片机,应在 3.6V 以下时让其复位,3V 单片机,应在 2.4V 以下时让其复位
;在此电压以下,此时再用 ISP/IAP 功能,编程 / 擦除 Flash,不能保证能达到要求
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
34
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;本程序演示 EEPROM/IAP
;------------------------------------------------
;定义与 IAP 有关的特殊功能寄存器
ISP_DATA EQU 0E2H
ISP_ADDRH EQU 0E3H
ISP_ADDRL EQU 0E4H
ISP_CMD EQU 0E5H
ISP_TRIG EQU 0E6H
ISP_CONTR EQU 0E7H
;------------------------------------------------
;定义常量
;------------------------
;Flash 操作等待时间
;ENABLE_ISP EQU 80H ;<30MHz
;ENABLE_ISP EQU 81H ;<24MHz
ENABLE_ISP EQU 82H ;<20MHz
;ENABLE_ISP EQU 83H ;<12MHz
;ENABLE_ISP EQU 84H ;<6MHz
;ENABLE_ISP EQU 85H ;<3MHz
;ENABLE_ISP EQU 86H ;<2MHz
;ENABLE_ISP EQU 87H ;<1MHz
DEBUG_DATA EQU 5AH
;------------------------
;选择 MCU 型号
DATA_FLASH_START_ADDRESS EQU 1000H ;STC12C2052AD
;------------------------------------------------
ORG 0000H
AJMP main
;------------------------------------------------
ORG 0100H
main:
MOV P1,#0F0H ;演示程序开始工作
LCALL Delay
;延时
MOV P1,#0FH ;演示程序开始工作
LCALL Delay
;延时
MOV
SP, #0E0H
;堆栈指针指向 0E0H 单元
;************************************************
;读回写入 flash 的第 1 个字节
MAIN1:
MOV DPTR, #DATA_FLASH_START_ADDRESS
LCALL byte_read
MOV 40H, A ;值送 40H 单元保存
CJNE A, #DEBUG_DATA, DATA_NOT_EQU_DEBUG_DATA
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
35
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
DATA_IS_DEBUG_DATA:
MOV
P1, #01111111B ; (DATA_FLASH_START_ADDRESS) = #5A, 亮 P1.7
LCALL Delay
;延时
MOV
A, 40H ;值从 40H 单元送 ACC
CPL A
MOV P1,A ;数据是对的,送 P1 显示
WAIT1:
SJMP WAIT1 ;数据是对的,送 P1 显示,并在此停止
DATA_NOT_EQU_DEBUG_DATA:
MOV P1, #11110111B ;(DATA_FLASH_START_ADDRESS) != #5A, 亮 P1.3
LCALL Delay
;延时
MOV
A, 40H ;值从 40H 单元送 ACC
CPL A
MOV P1, A ;数据不对,送 P1 显示
LCALL Delay
;延时
MOV DPTR, #DATA_FLASH_START_ADDRESS
ACALL sector_erase ;擦除扇区, (DATA_FLASH_START_ADDRESS) != #DEBUG_DATA
MOV DPTR, #DATA_FLASH_START_ADDRESS
MOV A, #DEBUG_DATA ;写入 flash 的数据为 DEBUG_DATA
ACALL byte_program ;字节编程
MOV P1, #11011111B ;先亮 P1.3 ,再亮 P1.5
WAIT2:
SJMP WAIT2 ;字节编程后在此停止
;************************************************
;------------------------------------------------
;读一字节
;调用前需打开 IAP 功能
;入口:DPTR = 字节地址
;返回:A = 读出字节
byte_read:
MOV ISP_CONTR, #ENABLE_ISP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV ISP_CMD, #01 ;Select Read AP Mode
MOV ISP_ADDRH, DPH ;Fill page address in ISP_ADDRH & ISP_ADDRL
MOV ISP_ADDRL, DPL
CLR EA
MOV ISP_TRIG, #46H ;Trigger ISP processing
MOV ISP_TRIG, #0B9H ;Trigger ISP processing
NOP
MOV A, ISP_DATA ;数据在 ISP_DATA
SETB EA
;Now in processing.(CPU will halt here before completing)
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
36
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
ACALL IAP_Disable ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
RET
;------------------------------------------------
;字节编程
;调用前需打开 IAP 功能
;入口:DPTR = 字节地址, A= 须编程字节的数据
byte_program:
MOV ISP_CONTR, #ENABLE_ISP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV ISP_CMD, #02H ;Select Byte Program Mode
MOV ISP_ADDRH, DPH ;Fill page address in ISP_ADDRH & ISP_ADDRL
MOV ISP_ADDRL, DPL
MOV ISP_DATA, A ;数据进 ISP_DATA
CLR EA
MOV ISP_TRIG, #46H ;Trigger ISP processing
MOV ISP_TRIG, #0B9H ;Trigger ISP processing
NOP
SETB EA
ACALL IAP_Disable ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
RET
;------------------------------------------------
;擦除扇区, 入口:DPTR = 扇区地址
sector_erase:
MOV ISP_CONTR, #ENABLE_ISP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV ISP_CMD, #03H ;Select Page Erase Mode
MOV ISP_ADDRH, DPH ;Fill page address in ISP_ADDRH & ISP_ADDRL
MOV ISP_ADDRL, DPL
CLR EA
MOV ISP_TRIG, #46H ;Trigger ISP processing
MOV ISP_TRIG, #0B9H ;Trigger ISP processing
NOP
SETB EA
ACALL IAP_Disable ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
RET
;------------------------------------------------
trigger_ISP:
CLR EA
MOV ISP_TRIG, #46H ;Trigger ISP processing
MOV ISP_TRIG, #0B9H ;Trigger ISP processing
NOP
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
37
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
SETB EA
RET
;------------------------------------------------
IAP_Disable: ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
MOV ISP_CONTR, #0 ;关闭 IAP 功能
MOV ISP_CMD, #0
MOV ISP_TRIG, #0
RET
;------------------------------------------------
Delay:
CLR A
MOV R0, A
MOV R1, A
MOV R2, #20H
Delay_Loop:
DJNZ R0, Delay_Loop
DJNZ R1, Delay_Loop
DJNZ R2, Delay_Loop
RET
;------------------------------------------------
END
;************************************************
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
38
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC12C2052AD 系列单片机定时器的使用
定时器 0 和 1
定时和计数功能由特殊功能寄存器 TMOD 的控制位 C/T 进行选择,TMOD 寄存器的各位信息如下表所
列。可以看出,2 个定时 / 计数器有 4 种操作模式,通过 TMOD 的 M1 和 M0 选择。2 个定时 / 计数器的模式 0、
1 和 2 都相同,模式 3 不同,各模式下的功能如下所述。
寄存器 TMOD 各位的功能描述
TMOD 地址:89H
不可位寻址
复位值:0 0 H
7 6 5 4 3 2 1 0
GATE
C/T
M1
定时器 1
位
M0
GATE
C/T
M1
M0
定时器 0
符号 功能
TMOD.7/
GATE
TMOD.7 控制定时器 1,置 1 时只有在 INT1 脚为高及 TR1 控制位置 1 时才
可打开定时器 / 计数器 1。
TMOD.3/
GATE
TMOD.3 控制定时器 0,置 1 时只有在 INT0 脚为高及 TR0 控制位置 1 时才
可打开定时器 / 计数器 0。
TMOD.6/
C/T
T M O D . 6 控制定时器 1 用作定时器或计数器,清零则用作定时器(从内
部系统时钟输入),置 1 用作计数器(从 T1/P3.5 脚输入)
TMOD.2/
C/T
T M O D . 2 控制定时器 0 用作定时器或计数器,清零则用作定时器(从内
部系统时钟输入),置 1 用作计数器(从 T0/P3.4 脚输入)
TMOD.5/TMOD.4 M1、M0
定时器 / 计数器 1 模式选择
0 0
1 3 位定时器 / 计数器,兼容 8 0 4 8 定时器模式,T L 1 只用低 5 位参与分
频,TH1 整个 8 位全用。
0 1
1 6 位定时器 / 计数器,T L 1 、T H 1 全用
1 0
8 位自动重装载定时器,当溢出时将 T H 1 存放的值自动重装入 T L 1 。
1 1
TMOD.1/TMOD.0 M1、M0
0 0
定时器 / 计数器 1 此时无效(停止计数)。
定时器 / 计数器 0 模式选择
1 3 位定时器 / 计数器,兼容 8 0 4 8 定时器模式,T L 0 只用低 5 位参与分
频,TH0 整个 8 位全用。
0 1
1 6 位定时器 / 计数器,T L 0 、T H 0 全用
1 0
8 位自动重装载定时器,当溢出时将 T H 0 存放的值自动重装入 T L 0 。
1 1
定时器 0 此时作为双 8 位定时器 / 计数器。TL0 作为一个 8 位定时器 / 计
数器,通过标准定时器 0 的控制位控制。TH0 仅作为一个 8 位定时器,
由定时器 1 的控制位控制。
1 . 模式 0
将定时器设置成模式 0 时类似 8048 定时器,即 8 位计数器带 32 分频的预分频器。下图所示为模式 0
工作方式。此模式下,定时器配置为 13 位的计数器,由 TLn 的低 5 位和 THn 的 8 位所构成。TLn 低 5 位溢出
向 THn 进位,THn 计数溢出置位 TCON 中的溢出标志位 TFn(n=0,1)
。GATE=0 时,如 TRn=1,则定时器计数。
GATE=1 时,允许由外部输入 INT1 控制定时器 1,INT0 控制定时器 0,这样可实现脉宽测量。TRn 为 TCON 寄
存器内的控制位,TCON 寄存器各位的具体功能描述见 TCON 寄存器各位的具体功能描述表。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
39
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
OSC
÷ d*
C/T=0
TLn
THn
( 低 5 位) (8 位)
C/T=1
Tn 脚
TFn
中断
控制
TRn
定时器 n
GATE 位
INTn 脚
* 在 T0x12 = 0 模式下,d=12(12 时钟模式); 在 T0x12 = 1 模式下,d=1(1T)。
图 定时器 / 计数器 0 和定时器 / 计数器 1 的模式 0 : 1 3 位定时 / 计数器
表 寄存器 T C O N 各位的功能描述
TCON 地址:88H
可位寻址
复位值:0 0 H
位
7
6
5
4
TF1
TR1
TF0
TR0
符 号
3
IE1
功 能
2
1
0
IT1
IE0
IT0
TCON.7
TF1
定时器 / 计数器 1 溢出标志位。当 T1 被允许计数后,T1 从初值开始加 1 计数,最
高位产生溢出时,置“1 ”T F 1 ,并向 C P U 请求中断,当 C P U 响应时,由硬件
清“0 ”T F 1 ,T F 1 也可以由程序查询或清“0 ”。
TCON.6
TR1
定时器 T1 的运行控制位。该位由软件置位和清零。当 G A T E(T M O D . 7)=0 ,T R 1 = 1 时
就允许 T1 开始计数,TR1=0 时禁止 T1 计数。当 GATE(TMOD.7)=1,TR1=1 且 INT1 输入
高电平时,才允许 T1 计数。
TCON.5
TF0
定时器 / 计数器 0 溢出标志位。当 T0 被允许计数后,T0 从初值开始加 1 计数,最高
位产生溢出时,置“1”TF0,并向 CPU 请求中断,当 CPU 响应时,由硬件清“0”TF0,
TF0 也可以由程序查询或清“0”
。
TCON.4
TR0
定时器 T0 的运行控制位。该位由软件置位和清零。当 G A T E(T M O D . 3)=0 ,T R 0 = 1 时
就允许 T0 开始计数,TR1=0 时禁止 T0 计数。当 GATE(TMOD.3)=1,TR0=1 且 INT0 输入
高电平时,才允许 T0 计数。
TCON.3
IE1
外部中断 1 中断请求标志位。当主机响应中断转向该中断服务程序执行时,由内部硬件
自动将 IE1 位清 0。
TCON.2
IT1
外部中断 1 触发方式控制位。IT1=0 时,外部中断 1 为低电平触发方式,当 INT1 (P3.
3)输入低电平时,置位 IE1。采用低电平触发方式时,外部中断源(输入到 INT1)必须保
持低电平有效,直到该中断被 CPU 响应,同时在该中断服务程序执行完之前,外部中断源
必须被清除(P3.3 要变高)
,否则将产生另一次中断。当 IT1=1 时,则外部中断 1(INT1)
端口由“1”→“0”下降沿跳变,激活中断请求标志位 IE1,向主机请求中断处理。
TCON.1
IE0
外部中断 0 中断请求标志位。当主机响应中断转向该中断服务程序执行时,由内部硬件
自动将 IE0 位清 0。
TCON.0
IT0
外部中断 1 触发方式控制位。IT0=0 时,外部中断 0 为低电平触发方式,当 INT0 (P3.
2)输入低电平时,置位 IE0。采用低电平触发方式时,外部中断源(输入到 INT0)必须保
持低电平有效,直到该中断被 CPU 响应,同时在该中断服务程序执行完之前,外部中断源
必须被清除(P3.2 要变高)
,否则将产生另一次中断。当 IT0=1 时,则外部中断 0(INT0)
端口由“1”→“0”下降沿跳变,激活中断请求标志位 IE1,向主机请求中断处理。
该 13 位寄存器包含 THn 全部 8 个位及 TLn 的低 5 位。TLn 的高 3 位不定,可将其忽略。置位运行标
志(TRn)不能清零此寄存器。模式 0 的操作对于定时器 0 及定时器 1 都是相同的。2 个不同的 GATE 位(TMOD.
7 和 TMOD.3)分别分配给定时器 1 及定时器 0。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
40
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
2 . 模式 1
模式 1 除了使用了 T H n 及 T L n 全部 1 6 位外,其他与模式 0 完全相同。
OSC
÷ d*
C/T=0
TLn
( 8 位)
C/T=1
Tn 脚
THn
(8 位)
TFn
中断
控制
TRn
定时器 n
GATE 位
INTn 脚
* 在 T0x12 = 0 模式下,d=12(12 时钟模式); 在 T0x12 = 1 模式下,d=1(1T)。
图 定时器 / 计数器 0 和定时器 / 计数器 1 的模式 1 : 1 6 位定时 / 计数器
3 . 模式 2
此模式下定时器 / 计数器 0 和 1 作为可自动重装载的 8 位计数器(T L n ),如下图所示。T L n 的溢
出不仅置位 TFn,而且将 THn 内容重新装入 TLn,THn 内容由软件预置,重装时 THn 内容不变。模式 2 的操
作对于定时器 0 及定时器 1 是相同的。
OSC
÷ d*
C/T=0
TLn
(8 位)
C/T=1
Tn 脚
中断
控制
重装
TRn
定时器 n
GATE 位
TFn
THn
(8 位)
INTn 脚
* 在 T0x12 = 0 模式下,d=12(12 时钟模式); 在 T0x12 = 1 模式下,d=1(1T)。
图 定时器 / 计数器 0 和 1 的模式 2 : 8 位自动重装载
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
41
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
4 . 模式 3
对定时器 1 ,在模式 3 时,定时器 1 停止计数,效果与将 T R 1 设置为 0 相同。
对定时器 0,此模式下定时器 0 的 TL0 及 TH0 作为 2 个独立的 8 位计数器。下图为模式 3 时的定时器
0 逻辑图。TL0 占用定时器 0 的控制位:C/T、GATE、TR0、INT0 及 TF0。TH0 限定为定时器功能(计数器周
期),占用定时器 1 的 T R 1 及 T F 1 。此时,T H 0 控制定时器 1 中断。
模式 3 是为了增加一个附加的 8 位定时器 / 计数器而提供的,使单片机具有三个定时器 / 计数器。
模式 3 只适用于定时器 / 计数器 0 ,定时器 T1 处于模式 3 时相当于 TR1=0,停止计数(此时 T1 可用来作
串行口波特率发生器),而 T0 可作为两个定时器用。
OSC
÷ d*
C/T=0
C/T=1
T0 脚
TL0
(8 位)
TF0
中断
TH0
(8 位)
TF1
中断
控制
TR0
定时器 0
GATE 位
INT0 脚
OSC
÷ d*
控制
TR1
* 在 T0x12 = 0 模式下,d=12(12 时钟模式); 在 T0x12 = 1 模式下,d=1(1T)。
图 定时 / 计数器 0 的模式 3 : 两个 8 位计数器
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
42
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 A: STC12C2052 系列单片机 PWM/PCA 应用
STC12C2052AD 系列 8051 单片机 PCA/PWM 特殊功能寄存器 PCA/PWM SFRs
Mnemonic Add Name
7
6
5
4
3
2
1
0
Reset value
CCON
D8h PCA Control Register
CF
CR
-
-
-
-
CCF1
CCF0 00xx,xx00
CMOD
D9h PCA Mode Register
CIDL
-
-
-
-
CPS1
CPS0
ECF
CCAPM0
DAh
PCA Module 0
Mode Register
-
ECOM0 CAPP0 CAPN0 MAT0
TOG0
PWM0
ECCF0 x000,0000
CCAPM1
DBh
PCA Module 1
Mode Register
-
ECOM1 CAPP1 CAPN1 MAT1
TOG1
PWM1
ECCF1 x000,0000
CL
E9h PCA Base Timer Low
0000,0000
CH
F9h PCA Base Timer High
0000,0000
CCAP0L
EAh
PCA Module-0 Capture
Register Low
0000,0000
CCAP0H
FAh
PCA Module-0 Capture
Register High
0000,0000
CCAP1L
EBh
PCA Module-1 Capture
Register Low
0000,0000
CCAP1H
FBh
PCA Module-1 Capture
Register High
0000,0000
PCA_PWM0 F2h
PCA PWM Mode
Auxiliary Register 0
-
-
-
-
-
-
EPC0H EPC0L xxxx,xx00
PCA_PWM1 F3h
PCA PWM Mode
Auxiliary Register 1
-
-
-
-
-
-
EPC1H EPC1L xxxx,xx00
0xxx,x000
CMOD - PCA 模式 寄存器的位分配 (地址:D9H)
位
7
6
5
4
3
2
1
0
符 号
CIDL
-
-
-
-
CPS1
CPS0
ECF
CMOD - PCA 模式 寄存器的位描述 (地址:D9H)
位
符号
描述
7
CIDL
计数器阵列空闲控制:CIDL=0时,空闲模式下PCA计数器继续工作。CIDL=1
时,空闲模式下PCA计数器停止工作。
6 - 3
-
2 - 1
CPS1,CPS0
0
ECF
保留为将来之用。
PCA计数脉冲选择(见下表)。
PCA计数溢出中断使能:ECF=1时,使能寄存器CCON CF位的中断。ECF=0时,
禁止该功能。
CMOD - PCA 计数器阵列的计数脉冲选择 (地址:D9H)
CPS1
CPS0
选 择 PCA输 入
0
0
0, 内 部 时 钟 , fosc/12
0
1
1, 内 部 时 钟 , fosc/2
1
0
2, 定 时 器 0溢 出
1
1
3, ECI/P3.4脚 的 外 部 时 钟 输 入 ( 最 大 速 率 = fosc/4)
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
43
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
CCON - PCA 控制寄存器的位分配 (地址:D8H)
位
7
6
5
4
3
2
1
0
符 号
CF
CR
-
-
-
-
CCF1
CCF0
CCON - PCA 控制寄存器的位描述 (地址:D8H)
位
符号
描述
7
CF
PCA计 数 器 阵 列 溢 出 标 志 。 计 数 值 翻 转 时 该 位 由 硬 件 置 位 。 如 果 CMOD寄 存 器
的 ECF位 置 位 , CF标 志 可 用 来 产 生 中 断 。 CF位 可 通 过 硬 件 或 软 件 置 位 , 但 只
可通过软件清零。
6
CR
PCA计 数 器 阵 列 运 行 控 制 位 。 该 位 通 过 软 件 置 位 , 用 来 起 动 PCA计 数 器 阵 列 计
数 。 该 位 通 过 软 件 清 零 , 用 来 关 闭 PCA计 数 器 。
5 - 2
-
1
CCF1
PCA模 块 1中 断 标 志 。 当 出 现 匹 配 或 捕 获 时 该 位 由 硬 件 置 位 。 该 位 必 须 通 过 软
件清零。
0
CCF0
PCA模 块 0中 断 标 志 。 当 出 现 匹 配 或 捕 获 时 该 位 由 硬 件 置 位 。 该 位 必 须 通 过 软
件清零。
保留位,保留为将来使用。
CCAPMn - PCA 比较 / 捕获模块寄存器的位分配(CCAPM0 地址:0DAH;CCAPM1 地址:0DBH)
位
7
6
5
4
3
2
1
0
符 号
-
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
CCAPMn - PCA 比较 / 捕获模块寄存器的位描述 ( n:0,1 )
位
符号
描 述 n : 0,1
7
-
6
ECOMn
使 能 比 较 器 。 ECOMn= 1时 使 能 比 较 器 功 能 。
5
CAPPn
正 捕 获 。 CAPPn= 1时 使 能 上 升 沿 捕 获 。
4
CAPNn
负 捕 获 。 CAPNn= 1时 使 能 下 降 沿 捕 获 。
3
MATn
匹 配 。 当 MATn= 1时 , PCA计 数 值 与 模 块 的 比 较 /捕 获 寄 存 器 的 值 的 匹 配 将 置
位 CCON寄 存 器 的 中 断 标 志 位 CCFn。
2
TOGn
翻 转 。 当 TOGn= 1时 , PCA计 数 值 与 模 块 的 比 较 /捕 获 寄 存 器 的 值 的 匹 配 将
使 CEXn脚 翻 转 。 (CEX0/P3.7,CEX1/P3.5)
1
PWMn
脉 宽 调 节 模 式 。 当 PWMn= 1时 , 使 能 CEXn脚 用 作 脉 宽 调 节 输 出 。
0
ECCFn
使 能 CCFn中 断 。 使 能 寄 存 器 CCON的 比 较 /捕 获 标 志 CCFn, 用 来 产 生 中 断 。
保留为将来之用。
P C A 模块工作模式(C C A P M n 寄存器,n :0 ,1 )
ECOMn CAPPn CAPNn
MATn
TOGn
PWMn
ECCFn
模块功能
0
0
0
0
0
0
0
无此操作
X
1
0
0
0
0
X
16位捕获模式,由CEXn的上升沿触发
X
0
1
0
0
0
X
16位捕获模式,由CEXn的下降沿触发
X
1
1
0
0
0
X
16位捕获模式,由CEXn的跳变触发
1
0
0
1
0
0
X
16位软件定时器
1
0
0
1
1
0
X
16位高速输出
1
0
0
0
0
1
0
8位PWM
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
44
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
S T C 1 2 C 2 0 5 2 A D 系列单片机可编程计数器阵列(P C A )
PCA 含有一个特殊的 16 位定时器,有 2 个 16 位的捕获 / 比较模块与之相连。每个模块可编程工作
在 4 种模式下:上升 / 下降沿捕获、软件定时器、高速输出或可调制脉冲输出。每个模块都与 P3 口相
连,模块 0 连接到 P3.7(CEX0/PCA0/PWM0)
,模块 1 连接到 P3.5(CEX1/PCA1/PWM1)
。寄存器 CH 和 CL 的内
容是正在自由递增计数的 16 位 PCA 定时器的值。PCA 定时器是 2 个模块的公共时间基准,可通过编程工作
在:1/12 振荡频率、1/2 振荡频率、定时器 0 溢出或 ECI 脚的输入(P3.4)
。定时器的计数源由 CMOD SFR 的
CPS1 和 CPS0 位来确定(见 CMOD 特殊功能寄存器说明)
。
16 Bit
Module 0
P3.7/CEX0/PCA0/PWM0
Module 1
P3.5/CEX1/PCA1/PWM1
PCA Timer/Counter
Programmable Counter Array
TO PCA module
Fosc/12
Fosc/2
CH
CL
PCA
interrupt
16-Bit counter
Timer 0 overflow
External input
ECI (P3.4)
IDLE
CIDL
-
-
-
-
CPS1
CPS0
ECF
CMOD
CF
CR
-
-
-
-
CCF1
CCF0
CCON
PCA Timer/Counter
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
45
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
CMOD SFR 还有 2 个位与 PCA 相关。它们分别是:CIDL,空闲模式下允许停止 PCA;ECF,置位时,
使能 PCA 中断,当 PCA 定时器溢出将 PCA 计数溢出标志 CF(CCON SFR)置位。
C C O N S F R 包含 P C A 的运行控制位(CR )和 P C A 定时器标志(CF )以及各个模块的标志(C C F 1 /
CCF0)
。通过软件置位 CR 位(CCON.6)来运行 PCA。CR 位被清零时 PCA 关闭。当 PCA 计数器溢出时,CF
位(CCON.0)置位,如果 CMOD 寄存器的 ECF 位置位,就产生中断。CF 位只可通过软件清除。CCON 寄存器
的位 0~1 是 PCA 各个模块的标志(位 0 对应模块 0,位 1 对应模块 1)
,当发生匹配或比较时由硬件置位。
这些标志也只能通过软件清除。所有模块共用一个中断向量。PCA 的中断系统如图所示。
PCA 的每个模块都对应一个特殊功能寄存器。它们分别是:模块 0 对应 CCAPM0 ,模块 1 对应
C C A P M 1 。特殊功能寄存器包含了相应模块的工作模式控制位。
PCA 的每个模块都对应一个特殊功能寄存器。它们分别是:模块 0 对应 CCAPM0 ,模块 1 对应
C C A P M 1 。特殊功能寄存器包含了相应模块的工作模式控制位。
当模块发生匹配或比较时,E C C F 位(C C A P M n . 0 ,n = 0 ,1 ,由工作的模块决定)使能 C C O N
SFR 的 CCFn 标志来产生中断。
P W M(C C A P M n . 1)用来使能脉宽调制模式。
当 P C A 计数值与模块的捕获 / 比较寄存器的值相匹配时,如果 T O G 位(C C A P M n . 2)置位,模块
的 CEXn 输出将发生翻转。
当 P C A 计数值与模块的捕获 / 比较寄存器的值相匹配时,如果匹配位 M A T n (C C A P M n . 3 )置位,
CCON 寄存器的 CCFn 位将被置位。
CAPNn(C C A P M n . 4)和 C A P P n(CCAPMn.5 )用来设置捕获输入的有效沿。CAPNn 位使能下降沿
有效,CAPPn 位使能上升沿有效。如果两位都置位,则两种跳变沿都被使能,捕获可在两种跳变沿产生。
通过置位 CCAPMn 寄存器的 ECOMn 位(CCAPMn.6)来使能比较器功能。
每个 PCA 模块还对应另外两个寄存器,CCAPnH 和 CCAPnL 。当出现捕获或比较时,它们用来保存
16 位的计数值。当 PCA 模块用在 PWM 模式中时,它们用来控制输出的占空比。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
46
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
P C A 捕获模式
要使一个 P C A 模块工作在捕获模式(下图),寄存器 C C A P M n 的两位(C A P N n 和 C A P P n )或其中任
何一位必须置 1 。对模块的外部 C E X n 输入(C E X 0 / P 3 . 7 ,C E X 1 / P 3 . 5 口)的跳变进行采样。当采样
到有效跳变时,PCA 硬件就将 PCA 计数器阵列寄存器(CH 和 CL)的值装载到模块的捕获寄存器中
(CCAPnL 和 CCAPnH)
。
CF
CR
–
-
-
-
CCF1
CCF0
C C O N (C 0 h )
PCA interrupt
CH
CL
CCAPnH
CCAPnL
Capture
CEXn
–
ECOMn
CAPPn
CAPNn
0
MATn
0
TOGn
0
P C A C a p t u r e M o d e (P C A
PWMn
ECCFn
CCAPMn,n=0,1
(地址:DAh 和 DBh)
0
捕获模式图)
如果 CCON SFR 的位 CCFn 和 CCAPMn SFR 的位 ECCFn 位被置位,将产生中断。
1 6 位软件定时器模式
通过置位 C C A P M n 寄存器的 E C O M 和 MAT 位,可使 PCA 模块用作软件定时器(下图)。PCA 定时器的
值与模块捕获寄存器的值相比较,当两者相等时,如果位 C C F n (在 C C O N S F R 中)和位 E C C F n (在
C C A P M n S F R 中)都置位,将产生中断。
Write to CCAPnL Write to CCAPnH
0
CF
CR
–
-
-
-
CCF1
CCF0
CCON
1
CCAPnH
PCA
Interrupt
CCAPnL
(To CCFn)
Enable
16-Bit Comparator
CL
CH
–
Match
ECOMn
CAPPn
0
CAPNn
MATn
TOGn
0
1
0
PWMn
ECCFn
CCAPMn
0
PCA Software Timer Mode/ 软件定时器模式 /PCA 比较模式
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
47
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
高速输出模式
该模式中(下图),当 PCA 计数器的计数值与模块捕获寄存器的值相匹配时,PCA 模块的 CEXn 输出将
发生翻转。要激活高速输出模式,模块 CCAPMn SFR 的 TOG,MAT 和 ECOM 位必须都置位。
1
0
CF
Write to CCAPnH
Write to CCAPnL
CR
CCAPnH
–
-
-
-
CCF1
CCF0
CCON
CCAPnL
PCA
Interupt
(To CCFn)
Enable
Match
16-Bit comparator
Toggle
CL
CH
翻转
–
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
0
0
1
1
0
ECCFn
CEXn
CCAPMn
PCA High-Speed Output Mode / PCA 高速输出模式
脉宽调节模式
所有 P C A 模块都可用作 P W M 输出(下图)。输出频率取决于 P C A 定时器的时钟源。
EPCnH
CCAPnH
输出 0
(0,CL) < (EPCnL,CCAPnL)
EPCnL
CEXn
CCAPnL
(0,CL) >= (EPCnL,CCAPnL)
输出 1
Enable
9-BIT
COMPARATOR
CL
0
CL overflow
–
ECOMn
CAPPn
CAPNn
MATn
1
0
0
0
TOGn
0
PWMn
1
ECCFn
CCAPMn, n=0,1
0
P C A P W M m ode / 可调制脉冲宽度输出模式
由于所有模块共用仅有的 P C A 定时器,所有它们的输出频率相同。各个模块的输出占空比是独立变
化的,与使用的捕获寄存器{EPCnL,CCAPnL}有关。当 CL SFR 的值小于{EPCnL,CCAPnL}时,输出
为低,当 P C A C L S F R 的值等于或大于{E P C n L ,C C A P n L }时,输出为高。当 C L 的值由 F F 变为 0 0
溢出时,
{EPCnH,CCAPnH}的内容装载到{EPCnL,CCAPnL}中。这样就可实现无干扰地更新 PWM。要
使能 PWM 模式,模块 CCAPMn 寄存器的 PWMn 和 ECOMn 位必须置位。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
48
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;PCA_2052_SFR.ASM, PCA/PWM 新增特殊功能寄存器声明
;定义 STC12C2052 系列 MCU 特殊功能寄存器
EPCA EQU IE.6 ;PCA 中断屏蔽位。
CH EQU 0F9H ;PCA 计数器高 8 位。
CL EQU 0E9H ;PCA 计数器低 8 位。
;------------------------
CCON EQU 0D8H ;PCA 控制寄存器。
CCF0 EQU CCON.0 ;PCA 模块 0 中断标志, 由硬件置位, 必须由软件清 0。
CCF1 EQU CCON.1 ;PCA 模块 1 中断标志, 由硬件置位, 必须由软件清 0。
CR EQU CCON.6 ;1:允许 PCA 计数器计数, 必须由软件清 0。
CF EQU CCON.7 ;PCA 计数器溢出标志,由硬件或软件置位,必须由软件清 0。
;------------------------
CMOD EQU 0D9H ;PCA 工作模式寄存器。
;CMOD.7 CIDL: idle 状态时 PCA 计数器是否继续计数, 0: 继续计数, 1: 停止计数。
;CMOD.2 CPS1: PCA 计数器脉冲源选择位 1。
;CMOD.1 CPS0: PCA 计数器脉冲源选择位 0。
; CPS1 CPS0
; 0 0 内部时钟, fosc/12。
; 0 1 内部时钟, fosc/2。
; 1 0 Timer0 溢出。
; 1 1 由 ECI/P3.4 脚输入的外部时钟。
;CMOD.0 ECF: PCA 计数器溢出中断允许位, 1-- 允许 CF(CCON.7) 产生中断。
;------------------------
CCAP0H EQU 0FAH ;PCA 模块 0 的捕捉 / 比较寄存器高 8 位。
CCAP1H EQU 0FBH ;PCA 模块 1 的捕捉 / 比较寄存器高 8 位。
CCAP0L EQU 0EAH ;PCA 模块 0 的捕捉 / 比较寄存器低 8 位。
CCAP1L EQU 0EBH ;PCA 模块 1 的捕捉 / 比较寄存器低 8 位。
;------------------------
PCA_PWM0 EQU 0F2H ;PCA 模块 0 PWM 寄存器。
PCA_PWM1 EQU 0F3H ;PCA 模块 1 PWM 寄存器。
;PCA_PWMn: 7 6 5 4 3 2 1 0
; - - - - - - EPCnH EPCnL
;B7-B2: 保留
;B1(EPCnH): 在 PWM 模式下,与 CCAPnH 组成 9 位数。
;B0(EPCnL): 在 PWM 模式下,与 CCAPnL 组成 9 位数。
;------------------------
CCAPM0 EQU 0DAH ;PCA 模块 0 的工作模式寄存器。
CCAPM1 EQU 0DBH ;PCA 模块 1 的工作模式寄存器。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
49
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;CCAPMn: 7 6 5 4 3 2 1 0
; - ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
;
;ECOMn = 1:允许比较功能。
;CAPPn = 1:允许上升沿触发捕捉功能。
;CAPNn = 1:允许下降沿触发捕捉功能。
;MATn = 1:当匹配情况发生时, 允许 CCON 中的 CCFn 置位。
;TOGn = 1:当匹配情况发生时, CEXn 将翻转。
;PWMn = 1:将 CEXn 设置为 PWM 输出。
;ECCFn = 1:允许 CCON 中的 CCFn 触发中断。
; - ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
; - 0 0 0 0 0 0 0 未启用任何功能。 00H
; - x 1 0 0 0 0 x 16 位 CEXn 上升沿触发捕捉功能。 20H
; - x 0 1 0 0 0 x 16 位 CEXn 下降沿触发捕捉功能。 10H
; - x 1 1 0 0 0 x 16 位 CEXn 边沿(上、下沿)触发捕捉功能。30H
; - 1 0 0 1 0 0 x 16 位软件定时器。 48H
; - 1 0 0 1 1 0 x 16 位高速脉冲输出。 4CH
; - 1 0 0 0 0 1 0 8 位 PWM。 42H
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
50
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;STC12C2052 系列单片机 PCA 功能
PWM 示例程序,使用 18.432MHz 晶振。
;------------------------------------------------------------
#include <..\PCA_2052_SFR.ASM> ;定义 PCA 特殊功能寄存器
;------------------------------------------------------------
;定义常量
;pulse_width_MAX = pulse_width_MIN 时, 输出脉冲宽度不变。
pulse_width_MAX EQU 0F0H ;PWM 脉宽最大值, 占空比 = 93.75%
pulse_width_MIN EQU 10H ;PWM 脉宽最小值, 占空比 = 6.25%
step EQU 38H ;PWM 脉宽变化步长
;------------------------------------------------------------
;定义变量
pulse_width EQU 30H
;------------------------------------------------------------
ORG 0000H
AJMP main
;------------------------------------------------------------
ORG 0050H
main:
MOV SP, #0E0H
ACALL PCA_init
main_loop:
ACALL PWM
SJMP main_loop
;------------------------------------------------------------
PCA_init:
MOV CMOD, #80H; ;PCA 在空闲模式下停止 PCA 计数器工作
;PCA 时钟模式为 fosc/12
;禁止 PCA 计数器溢出中断
MOV CCON, #00H ;禁止 PCA 计数器工作, 清除中断标志、计数器溢出标志
MOV CL, #00H ;清 0 计数器
MOV CH, #00H
;-------------------------
;设置模块 0 为 8 位 PWM 输出模式, PWM 无需中断支持。脉冲在 P3.7(第 11 脚)输出
MOV CCAPM0, #42H ;*** 示例程序核心语句, ---->0100,0010
MOV PCA_PWM0, #00H ;*** 示例程序核心语句
; MOV PCA_PWM0, #03H ;释放本行注释, PWM 输出就一直是 0, 无脉冲。
;-------------------------
;设置模块 1 为 8 位 PWM 输出模式, PWM 无需中断支持。脉冲在 P3.5(第 9 脚)输出
MOV CCAPM1, #42H ;*** 示例程序核心语句, ---->0100,0010
MOV PCA_PWM1, #00H ;*** 示例程序核心语句
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
51
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
; MOV PCA_PWM1, #03H ;释放本行注释, PWM 输出就一直是 0, 无脉冲。
SETB EPCA ;开 PCA 中断
SETB EA ;开总中断
SETB CR ;将 PCA 计数器打开
RET
;------------------------------------------------------------
PWM: ;用示波器进行观察较为理想。
;逐渐变亮。
MOV A, #pulse_width_MIN ;为输出脉冲宽度设置初值。
MOV pulse_width, A ;pulse_width 数字越大脉宽越窄,P3.5 的 LED 越亮。
PWM_loop1:
MOV A, pulse_width ;判是否到达最大值。
CLR C
SUBB A, #pulse_width_MAX
JNC PWM_a ;到达最大值就转到逐渐变暗。
MOV A, pulse_width ;设置脉冲宽度。数字越大、脉宽越窄、LED 越亮。
MOV CCAP0H, A ;*** 示例程序核心语句
MOV CCAP1H, A ;*** 示例程序核心语句
CPL A ;用 P1 口的 LED 显示占空比,
MOV P1, A ;占空比 = ( pulse_width/256 ) * 100% 。
MOV A, pulse_width ;计算下一次输出脉冲宽度数值。
ADD A, #step
MOV pulse_width, A
ACALL delay ;在一段时间内保持输出脉冲宽度不变。
SJMP PWM_loop1
PWM_a:
;逐渐变暗。
MOV A, #pulse_width_MAX ;为输出脉冲宽度设置初值。
MOV pulse_width, A ;pulse_width 数字越大脉宽越窄,P3.5 的 LED 越亮。
PWM_loop2:
MOV A, pulse_width ;判是否到达最小值。
CLR C
SUBB A, #pulse_width_MIN
JC PWM_b ;到达最小值就返回。
JZ PWM_b ;到达最小值就返回。
MOV A, pulse_width ;设置脉冲宽度。数字越大、脉宽越窄、LED 越亮。
MOV CCAP0H, A ;*** 示例程序核心语句
MOV CCAP1H, A ;*** 示例程序核心语句
CPL A ;用 P1 口的 LED 显示占空比,
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
52
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
MOV P1, A ;占空比 = ( pulse_width/256 ) * 100% 。
MOV A, pulse_width ;计算下一次输出脉冲宽度数值。
CLR C
SUBB A, #step
MOV pulse_width, A
ACALL delay ;在一段时间内保持输出脉冲宽度不变。
SJMP PWM_loop2
PWM_b:
RET
;------------------------------------------------------------
delay:
CLR A
MOV R1, A
MOV R2, A
MOV R3, #80H
delay_loop:
NOP
NOP
NOP
DJNZ R1, delay_loop
DJNZ R2, delay_loop
DJNZ R3, delay_loop
RET
;------------------------------------------------------------
END
以下是一个简单的 PWM 输出 C 语言示例
#include<reg52.h>
sfr CCON = 0xD8;
sfr CMOD = 0xD9;
sfr CCAP0L = 0xEA;
sfr CCAP0H = 0xFA;
sfr CCAPM0 = 0xDA;
sfr CCAPM1 = 0xDB;
sbit CR = 0xDE;
void main(void)
{
CMOD = 0x02; // Setup PCA timer
CL = 0x00;
CH = 0x00;
CCAP0L = 0xc0; //Set the initial value same as CCAP0H
CCAP0H = 0xc0; //25% Duty Cycle
CCAPM0 = 0x42; //0100,0010 Setup PCA module 0 in PWM mode
CR = 1; //Start PCA Timer.
while(1){};
}
;------------------------------------------------------------
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
53
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 B :STC12C2052AD 系列编译器/ 汇编器,编程器,仿真器
STC 单片机应使用何种编译器 / 汇编器
1.任何老的编译器 / 汇编器都可以支持,流行用 Keil C51
2.把 STC 单片机,当成 Intel 的 8052/87C52/87C54/87C58,Philips 的 P87C52/P87C54/P87C58 就可以了
3.如果要用到扩展的专用特殊功能寄存器,直接对该地址单元设置就行了,当然先声明特殊功能寄存器的
地址较好
编程烧录器:
我们有: STC12C2052AD 系列 ISP 经济型下载编程工具(人民币 50 元,可申请免费样品)
仿真器:如您已有老的仿真器,可仿真普通 8052 的基本功能
STC12C2052AD系列单片机扩展功能如它仿不了
可以用 STC-ISP 直接下载用户程序看运行结果就可以了
无须添加新的设备
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
54
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 C:STC12C2052AD 系列单片机 ISP 编程原理 使用说明
单片机彻底没电
给单片机上电复位,冷起动
外部手动复位,看门狗复位,
单片机不会运行 ISP 程序
冷起动,单片机运行系统 ISP 监控程序
单片机运行 ISP 程序,检测有无
合法下载命令流,占时几十 mS
- 几百 m S ,如无合法下载命令
检测 P3.0/RxD 有没有合法下载命令流
流,则立即跑用户程序
如果已设置 P1.0/P1.1=0.0,才会判断是否下载用
有
无
下载用户程序进用户程序区
软复位到用户程序区,运行用户程序
户程序,则冷启动后,如 P 1 . 0 / P 1 . 1 ≠ 0 . 0 ,则
直接跑用户程序,只会占时 5 0 u S ,可忽略不计。
PC机端控制软件为STC-ISP-V2.9Beta9及以
后的版本从 www.MCU-Memory.com 下载,如何
使用,本文相关部分有说明
PC 机端的控制软件必需先发下载命
令流,再给单片机上电复位
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
55
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC 12C2052AD 系列单片机在系统可编程的使用
--- 将用户代码下载进单片机内部,不用编程器
STC3232,STC232,MAX232,SP232
0.1uF
1
C1+
Vcc 16
V+
GND 15
C1-
T1OUT 14
4
C2+
R1IN 13
5
C2-
R1OUT 12
6
V-
7
T2OUT
Gnd
PC_RxD (COM Pin2)
通过电脑端的
S T C - I S P 软件
控制下载
2
3
5
“用户程序”
到 S T C 单片机
PC_TxD (COM Pin3)
USB +5V
Vin
2
3
Vcc
PC / 电脑 串口
T1IN 11
8 R2IN
T2IN 10
R2OUT
9
关于复位电路:C 1 可不用
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB+5V T1OUT R1IN GND
SW1
Power On
电源开关
USB1
Vcc
R1
10K
10 μF
C1
1 RST VCC 20
1K
1K
2 RxD/P3.0 P1.7/SCLK/ADC7 19
3 TxD/P3.1 P1.6/MISO/ADC6 18
33pF
33pF
4 XTAL2 P1.5/MOSI/ADC5 17
5 XTAL1 P1.4/SS/ADC4 16
6 INT0/P3.2 P1.3/ADC3 15
7 INT1/P3.3 P1.2/ADC2 14
8 ECI/T0/P3.4 P1.1/ADC1 13
9 PWM1/PCA1/T1/P3.5 P1.0/ADC0 12
10 Gnd P3.7/PCA0/PWM0 11
STC12C2052AD 系列单片机具有在系统可编程(ISP)特性,ISP 的好处是:省去购买通用编
程器,单片机在用户系统上即可下载 / 烧录用户程序,而无须将单片机从已生产好的产品上拆下,再
用通用编程器将程序代码烧录进单片机内部。有些程序尚未定型的产品可以一边生产,一边完善,加快
了产品进入市场的速度,减小了新产品由于软件缺陷带来的风险。由于可以在用户的目标系统上将程序
直接下载进单片机看运行结果对错,故无须仿真器。
STC12 系列单片机内部固化有 ISP 系统引导固件,配合 PC 端的控制程序即可将用户的程序代码下
载进单片机内部,故无须编程器(速度比通用编程器快,2 秒到 3 秒一片)。
如何获得及使用 STC 提供的 ISP 下载工具(STC-ISP.exe 软件)
:
(1). 获得 STC 提供的 ISP 下载工具(软件)
登陆 www.MCU-Memory.com 网站,从 STC 半导体专栏下载 PC(电脑)端的 ISP 程序,然后
将其自解压,再安装即可(执行setup.exe)
,注意随时更新软件。
(2). 使用 STC-ISP 下载工具(软件)
,请随时更新,目前已到 Ver2.9 Beta9 版本以上,支持 *.bin,
*.hex(Intel 16 进制格式)文件。STC12C2052AD系列单片机的底层ISP固件为Ver3.3D(支持EEPROM
功能)
。老版本 Ver3.2D 部分不支持 EEPROM 功能。
请随时注意升级 PC(电脑)端的 ISP 程序。
单片机底层软件版本为 Ver3.3D 的单片机,PC(电脑)端的 ISP 程序应用 Ver2.9 Beta9 以上
(3).STC12C2052系列单片机出厂时就已完全加密。需要单片机内部的电放光后上电复位(冷起动)才运行系统
ISP 程序,如从 P3.0/RxD 检测到合法的下载命令流就下载用户程序,如检测不到就系统复位到用户程序区。
(4).如果用户板上 P3.0/RxD,P3.1/Txd 接了 RS-485 等电路,下载时需要将其断开。用户系统接了 RS-485
电路的,推荐在选项中选择下次冷启动时需 P1.0/P1.1=0/0 才判是否下载程序。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
56
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
第一次调文件进缓冲区,
要清缓冲区。
要调几个文件进缓冲区,
一次同时烧录进单片机,
除每次均要指定缓冲区起
始地址外,第二次及以
后不能清缓冲区
用户根据需要限制最高通信波
特率,如 38400,9600
大批量生产时使用
Step1/ 步骤 1:选择你所使用的单片机型号,如 STC12C2052,STC12C4052AD 等
Step2/ 步骤 2:打开文件,要烧录用户程序,必须调入用户的程序代码(*.bin, *.hex)
Step3/ 步骤 3:选择串行口,你所使用的电脑串口,如串行口 1--COM1, 串行口 2--COM2,...
有些新式笔记本电脑没有 RS-232 串行口,可买一条 USB-RS232 转接器,人民币 70 元左右。
Step4/ 步骤 4:暂时无效 。但您应在选项里选择是用内部 R/C 振荡器做时钟还是不是
Step5/ 步骤 5:选择“Download/ 下载”按钮下载用户的程序进单片机内部,可重复执行
Step5/ 步骤 5, 也可选择“Re-Download/ 重复下载”按钮
下载时注意看提示,主要看是否要给单片机上电或复位, 下载速度比一般通用编程器快。
一定要先选择“D o w n l o a d / 下载”按钮,然后再给单片机上电复位( 先彻底断电) ,而不要
先上电,先上电,检测不到合法的下载命令流,单片机就直接跑用户程序了。
关于硬件连接:
(1). MCU/单片机 RXD(P3.0) --- RS-232转换器 --- PC/电脑 TXD(COM Port Pin3)
(2). MCU/单片机 TXD(P3.1) --- RS-232转换器 --- PC/电脑 RXD(COM Port Pin2)
(3). MCU/单片机 GND ---------------------- PC/电脑 GND(COM Port Pin5)
(4). 如果您的系统 P3.0/P3.1 连接到 RS-485 电路,推荐
在选项里选则“下次冷启动需要 P1.0/P1.1 = 0,0 才判 P3.0/RxD 有无合法下载命令流”
这样冷启动后如 P1.0, P1.1 不同时0,单片机直接运行用户程序.
(5). RS-232转换器可选用STC232/MAX232/SP232(4.5-5.5V),STC3232/MAX3232/SP3232(3V-5.5V).
STC232/MAX232/SP232 尽量选用 SOP 封装(窄体),SP3232 尽量选用 SSOP 封装(SP3232EEA)
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
57
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
如用户系统没有 R S - 2 3 2 接口,
可使用 STC-ISP Ver 3.0A.PCB 演示板作为编程工具
STC-ISP Ver 3.0APCB 板如焊接的是 STC12C2052AD 的线路,则
可完成 STC12C2052AD 系列单片机的 ISP 下载编程 / 烧录用户程序的功能。
在 STC-ISP Ver 3.0A PCB 板完成下载 / 烧录:
关于硬件连接:
(1.) 根据单片机的工作电压选择单片机电源电压
A. 5V 单片机,短接 JP1 的 MCU-VCC, +5V 电源管脚
B.3V 单片机,短接 JP1 的 MCU-VCC, 3.3V 电源管脚
(2.)连接线(宏晶提供)
A. 将一端有9芯连接座的插头插入PC/电脑RS-232串行接口插座用于通信
B. 将同一端的USB插头插入PC/电脑USB接口用于取电
C. 将只有一个 USB 插头的一端插入宏晶的 STC-ISP Ver 3.0A PCB 板 USB1 插座用于 RS-232 通
信和供电,此时 USB +5V Power 灯亮(D43,USB 接口有电)
(3.)其他插座不需连接
(4.)SW1 开关处于非按下状态,此时 MCU-VCC Power 灯不亮(D41), 没有给单片机通电
(5.)SW3 开关
处于非按下状态,P1.0, P1.1 = 1, 1,不短接到地。
处于按下状态, P1.0, P1.1 = 0, 0,短接到地。
如果单片机已被设成“下次冷启动 P1.0/P1.1 = 0,0 才判 P3.0/RxD 有无合法下载命令流”
就必须将 SW3 开关处于按下状态,让单片机的 P1.0/P1.1 短接到地
(6.)将单片机插进 U1-Socket 锁紧座,锁紧单片机,注意单片机是 20-PIN,而 U1-Socket 锁紧座
是 40-PIN,我们的设计是靠下插,靠近晶体的那一端插。
(7.)关于软件:选择“Download/ 下载”
( 必须在给单片机上电之前让 PC 先发一串合法下载命令)
(8.)按下 SW1 开关,给单片机上电复位, 此时 MCU-VCC Power 灯亮(D41)
此时 STC 单片机进入 ISP 模式(STC12C2052AD 系列冷启动进入 ISP)
(9.)下载成功后,再按 SW1 开关,此时 SW1 开关处于非按下状态,MCU-VCC Power 灯不亮(D41),
给单片机断电,取下单片机。
利用 STC-ISP Ver 3.0A PCB 板进行 RS-232 转换
单片机在用户自己的板上完成下载 / 烧录:
1.U1-Socket 锁紧座不得插入单片机
2.将用户系统上的电源(MCU-VCC,GND)及单片机的 P3.0/RXD,P3.1/TXD 接入转换板 CN2 插座
这样用户系统上的单片机就具备了与 PC/ 电脑进行通信的能力
3. 将用户系统的单片机的 P1.0,P1.1 接入转换板 CN2 插座(如果需要的话)
4. 如须 P1.0, P1.1 = 0, 0,短接到地,可在用户系统上将其短接到地,或将 P1.0/P1.1 也从
用户系统上引到 STC-ISP Ver3.0A PCB 板上,将 SW3 开关按下,则 P1.0/P1.1=0,0。
5. 关于软件:选择“D o w n l o a d / 下载”
6. 给单片机系统上电复位(注意是从用户系统自供电,不要从电脑USB 取电,电脑USB座不插)
7. 下载程序时,如用户板有外部看门狗电路,不得启动,单片机必须有正确的复位, 但不能在
ISP 下载程序时被外部看门狗复位,如有,可将外部看门狗电路 WDI 端 / 或 WDO 端浮空
8. 如有 RS-485 晶片连到 P3.0/Rxd,P3.1/Txd,或其他线路,在下载时应将其断开。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
58
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 D: 内部数据 RAM 存储器
内部数据 R A M 存储器
STC12C2052AD 系列单片机内部有 256 字节常规的 RAM。
器件的内部常规数据存储器由 3 部分组成:
1 . 低 1 2 8 字节 R A M (0 0 H ~7 F H ),可直接和间接寻址, 用“M O V ”和“M O V @ R i ”
2.高 128 字节 RAM(80H~FFH)
,间接寻址,用“MOV @Ri”
3 . 特殊功能寄存器(8 0 H ~F F H ),只可直接寻址, 用“M O V ”
由于高 128 字节 RAM 和 SFR(特殊功能寄存器)占用相同的地址,因此高 128 字节 RAM 空间必须用间接寻址
(M O V @ R i )来区分。特殊功能寄存器(8 0 H ~F F H ),只可直接寻址(用“M O V ”)来区分。尽管 R A M
和 SFR 的地址相同,但它们在物理上是独立的。
扩展数据 R A M
STC12C2052AD 系列下一代产品 STC12C1254AD 系列会有 256 字节的扩展 RAM,称其为 XRAM(附加 RAM)
,用
“MOVX”寻址。
扩展的 256 字节 RAM(0000H~00FFH ),通过 MOVX 指令间接寻址。
使用“MOVX @DPTR” / “MOVX @Ri”
FFH
FFH
(间接寻址)
00FFH
(直接寻址)
特殊功能寄存器
(S F R )
80H
7FH
00H
高 128 字节内部 RAM
扩展 RAM
256 字节
80H
低 128 字节内部 RAM
(外部间接寻址)
(间接 & 直接寻址)
0000H
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
59
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
内部常规 256 字节 RAM 间接寻址测试程序
TEST_CONST EQU
;TEST_RAM EQU
5AH
03H
ORG 0000H
LJMP INITIAL
ORG
INITIAL:
0050H
MOV
R0,
#253
MOV
R1,
#3H
TEST_ALL_RAM:
MOV R2,
TEST_ONE_RAM:
MOV
MOV
CLR
MOV
#0FFH
A,
R2
@R1, A
A
A,
@R1
CJNE A,
DJNZ R2,
2H, ERROR_DISPLAY
TEST_ONE_RAM
INC R1
DJNZ R0,
TEST_ALL_RAM
OK_DISPLAY:
MOV P1, #11111110B
Wait1:
SJMP Wait1
ERROR_DISPLAY:
MOV A,
R1
MOV P1, A
Wait2:
SJMP Wait2
END
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
60
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 E 串行外围接口(SPI)
STC12C2052AD 系列单片机还提供另一种高速串行通信接口—— SPI 接口。SPI 是一种全双工、高速、同步的通信
总线,有两种操作模式:主模式和从模式。在主模式和从模式中均支持高达 3Mbit/s 的速率( 工作频率为 1 2 M H z
时,如果 CPU 主频采用 20MHz 到 36MHz,则可更高),还具有传输完成标志和写冲突标志保护。
STC12C2052AD 系列 8051 单片机 SPI 功能模块特殊功能寄存器 SPI Management SFRs
Mnemonic Add
Name
7
6
5
4
SPCTL
85h
SPI Control Register
SSIG
SPEN
DORD
MSTR
3
SPSTAT
84h
SPI Status Register
SPIF
WCOL
-
-
SPDAT
86h
SPI Status Register
2
CPOL CPHA
-
-
1
0
Reset value
SPR1 SPR0 0000,0000
-
-
00xx,xxxx
0000,0000
S
M
CPU 时钟
8位移位寄存器
clock
S
M
MSTR
SPR0
时钟逻辑
SPICLK
P1.7
SS
P1.4
SPR0
SPR1
CPOL
CPHA
DORD
MSTR
SSIG
SPEN
MSTR
SPEN
SPI 控制
MOSI
P1.5
SPEN
S P I 时钟(主机)
SPIF
WCOL
SPR1
选择
管脚
控制
逻辑
读数据缓冲区
分频器
4, 16, 64, 128
MISO
P1.6
M
S
SPI 控制寄存器
SPI 状态寄存器
SPI
中断请求
内部
数据
总线
SPI 方框图
SPI 接口有 4 个管脚:SPICLK/P1.7, MOSI/P1.5, MISO/P1.6 和 SS/P1.4。
● SPICLK, MOSI 和 MISO 通常和两个或更多 SPI 器件连接在一起。数据通过 MOSI 由主机传送到从机,通过 MISO
由从机传送到主机。SPICLK 信号在主模式时为输出,在从模式时为输入。如果 SPI 系统被禁止,即 SPEN
(SPCTL.6)=0(复位值),这些管脚都可作为 I/O 口使用。
● /SS 为从机选择管脚。在典型的配置中,SPI 主机使用 I/O 口选择一个 SPI 器件作为当前的从机。
S P I 从器件通过其 / S S 脚确定是否被选择。如果满足下面的条件之一,/ SS 就被忽略:
-如果 SPI 系统被禁止,即 SPEN(SPCTL.6)=0(复位值)
-如果 SPI 配置为主机,即 MSTR(SPCTL.4)=1,并且 P1.4 配置为输出(通过 P2M1.4 和 P2M2.4)
-如果 / SS 脚被忽略,即 SSIG(SPCTL.7)位= 1,该脚配置用于 I/O 口功能。
注:即使 SPI 被配置为主机(MSTR = 1)
,它仍然可以通过拉低 / SS 脚配置为从机(如果 P1.4 配置为输
入且 S S I G = 0 )。要使能该特性,应当置位 S P I F ( S P S T A T . 7 ) 。
典型连接如 SPI 图 1~3 所示。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
61
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
S P I 控制寄存器的位分配(S P C T L - 地址:8 5 h )
位
7
6
5
4
3
2
1
0
符 号
S S I G
S P E N
D O R D
M S T R
C P O L
C P H A
S P R 1
S P R 0
复 位
0
0
0
0
0
1
0
0
SPI 控制寄存器的位描述(SPCTL – 地址:85h)
位
符号
0
SPR0
SPR0/SPR1是SPI 时钟速率选择控制位。
SPR1
SPR1, SPR0:
0 0 -CPU_CLK/4
0 1 -CPU_CLK/16
1 0 -CPU_CLK/64
1 1 -CPU_CLK/128
2
CPHA
SPI 时钟相位选择(见SPI图4~图7):
1:数据在SPICLK 的前时钟沿驱动,并在后时钟沿采样。
0:数据在/SS 为低(SSIG=00)时被驱动,在SPICLK 的后时钟
沿被改变,并在前时钟沿被采样。
(注:SSIG=1 时的操作未定义)
3
CPOL
SPI 时钟极性(见SPI图4~图7):
1:SPICLK 空闲时为高电平。SPICLK 的前时钟沿为下降沿而后沿为上升沿。
0:SPICLK 空闲时为低电平。SPICLK 的前时钟沿为上升沿而后沿为下降沿。
4
MSTR
主/从模式选择(见SPI 主从选择表)。
5
DORD
SPI 数据顺序:
1:数据字的LSB(最低位) 最先发送;0:数据字的MSB(最高位) 最先发送。
3
SPEN
SPI 使能。
1:SPI 使能。
0:SPI 被禁止,所有SPI 管脚都作为I/O 口使用。
7
SSIG
/SS 忽略。
1:MSTR(位4)确定器件为主机还是从机。
0:/SS 脚用于确定器件为主机还是从机。/SS 脚可作为I/O 口使用(见SPI 主
从选择表)。
1
描 述
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
62
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
SPI 状态寄存器的位分配(SPSTAT – 地址:84h)
位
7
6
5
4
3
2
1
0
符号
SPIF
WCOL
-
-
-
-
-
-
复位
0
0
X
X
X
X
X
X
SPI 状态寄存器的位描述(SPSTAT – 地址:84h)
位
符号
符号
7
SPIF
SPI 传输完成标志。当一次串行传输完成时,SPIF 置位,并当ESPI
和EA 都置位时产生中断。当SPI 处于主模式且SSIG=0 时,如果/SS 为输入
并被驱动为低电平,SPIF 也将置位。SPIF标志通过软件向其写入“1”清零。
6
WCOL
SPI 写冲突标志。在数据传输的过程中如果对SPI 数据寄存器SPDAT 执行写
操作,WCOL 将置位。WCOL 标志通过软件向其写入“1”清零。
5 - 0
-
保留
SPI 数据寄存器的位分配(SPDAT – 地址:86h)
位
7
符 号
MSB
复 位
0
6
5
4
3
2
1
0
LSB
0
0
0
0
0
0
0
SPDAT.7 - SPDAT.0: 传输的数据位 Bit7~Bit0
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
63
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
从机
主机
MISO
MISO
8 位移位寄存器
8 位移位寄存器
MOSI
MOSI
SPICLK
SPICLK
SPI 时钟发生器
Port
/SS
SPI 图 1 SPI 单主机 - 单从机 配置
在上图 SPI 图 1 中,从机的 SSIG(SPCTL.7)为 0,/ SS 用于选择从机。SPI 主机可使用任何端口(包括 P1.
4 / S S )来驱动 / S S 脚。
从机
主机
MISO
MISO
8 位移位寄存器
8 位移位寄存器
MOSI
MOSI
SPICLK
SPICLK
SPI 时钟发生器
SPI 时钟发生器
/SS
/SS
SPI 图 2 SPI 双器件配置(可器件可互为主从)
上图 SPI 图 2 所示为两个器件互为主从的情况。当没有发生 SPI 操作时,两个器件都可配置为主机
(MSTR=1),将 SSIG 清零并将 P1.4( /SS )配置为准双向模式。当其中一个器件启动传输时,它可将 P1.4 配置为输出
并驱动为低电平,这样就强制另一个器件变为从机。
主机
从机
MISO
MISO
8 位移位寄存器
8 位移位寄存器
MOSI
MOSI
SPICLK
SPICLK
SPI 时钟发生器
Port
/SS
8 位移位寄存器
Port
/SS
SPI 图 3
SPI 单主机 - 多从机 配置
在上图 SPI 图 3 中,从机的 SSIG(SPCTL.7)为 0,从机通过对应的 / SS 信号被选中。SPI 主机可使用任何端口
(包括 P 1 . 4 / S S )来驱动 / S S 脚。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
64
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
对 S P I 进行配置
下表 所示为主 / 从模式的配置以及模式的使用和传输方向。
SPI 主从模式选择
SPEN
SSIG
/SS 脚
P1.4
MSTR
主或从
模式
MISO
P1.6
MOSI
P1.5
SPICLK
P1.7
0
X
P1.4
X
SPI 功 能 禁 止
P1.6
P1.5
P1.7
SPI 禁止 。P1.4/P1.5/P1.6/P1.7作 为 普 通I/O口
使用
1
0
0
0
从机模式
输出
输入
输入
选择作为从机
0
从机模式
未被选中
高阻
输入
输入
未 被 选 中 。MISO 为 高 阻 状 态,以 避 免 总 线 冲 突
输入
输入
P1.4/ SS 配 置 为 输 入 或 准 双 向 口 。 SSIG 为0。如
果择 /SS 被 驱 动 为 低 电 平,则 被 选 择 作 为 从 机。
当SS 变 为 低 电 平 时, MSTR将 清 零。
注: 当/SS处 于 输 入 模 式 时,如 被 驱 动 为 低 电 平
且SSIG=0 时 ,MSTR 位 自 动 清 零。
高阻
高阻
当 主 机 空 闲 时 MOSI 和 SPICLK 为 高 阻 态 以 避 免 总 线
冲突 。用 户 必 须 将 SPICLK 上 拉 或 下 拉 (根
据CPOL-SPCTL.3 的 取 值 )以 避 免 SPICLK出 现 悬 浮
状态。
输出
输出
作 为 主 机 激 活 时 ,MOSI 和SPICLK 为 推 挽 输 出
1
1
0
0
1
0
1—>0
从机模式
输出
主(空 闲)
1
0
1
1
输入
主(激 活)
1
1
P1.4
0
从
输出
输入
输入
1
1
P1.4
1
主
输入
输出
输出
备注
作为从机时的额外注意事项
当 CPHA = 0 时,SSIG 必须为 0,/SS 脚必须取反并且在每个连续的串行字节之间重新设置为高
电平。如果 S P D A T 寄存器在 / S S 有效(低电平)时执行写操作,那么将导致一个写冲突错误。
CPHA=0 且 SSIG=0 时的操作未定义。
当 CPHA = 1 时,SSIG 可以置位。如果 SSIG = 0,/SS 脚可在连续传输之间保持低有效(即一
直固定为低电平)。这种方式有时适用于具有单固定主机和单从机驱动 MISO 数据线的系统。
作为主机时的额外注意事项
在 S P I 中,传输总是由主机启动的。如果 S P I 使能(S P E N = 1 )并选择作为主机,主机对 S P I 数
据寄存器的写操作将启动 SPI 时钟发生器和数据的传输。在数据写入 SPDAT 之后的半个到一个 SPI 位
时间后,数据将出现在 MOSI 脚。
需要注意的是,主机可以通过将对应器件的 /SS 脚驱动为低电平实现与之通信。写入主机 SPDAT
寄存器的数据从 MOSI 脚移出发送到从机的 MOSI 脚。同时从机 SPDAT 寄存器的数据从 MISO 脚移出发送
到主机的 MISO 脚。
传输完一个字节后,S P I 时钟发生器停止,传输完成标志(S P I F )置位并产生一个中断(如果
SPI 中断使能)
。主机和从机 CPU 的两个移位寄存器可以看作是一个 16 循环移位寄存器。当数据从主机
移位传送到从机的同时,数据也以相反的方向移入。这意味着在一个移位周期中,主机和从机的数据相
互交换。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
65
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
通过 / S S 改变模式
如果 SPEN=1, SSIG=0 且 MSTR=1,SPI 使能为主机模式。/SS 脚可配置为输入或准双向模式。这
种情况下,另外一个主机可将该脚驱动为低电平,从而将该器件选择为 S P I 从机并向其发送数据。
为了避免争夺总线,SPI 系统执行以下动作:
1)MSTR 清零并且 CPU 变成从机。这样 SPI 就变成从机。MOSI 和 SPICLK 强制变为输入模式,而
MISO 则变为输出模式。
2 )S P S T A T 的 S P I F 标志位置位。如果 S P I 中断已被使能,则产生 S P I 中断。
用户软件必须一直对 MSTR 位进行检测,如果该位被一个从机选择所清零而用户想继续将 SPI 作为主
机,这时就必须重新置位 MSTR,否则就进入从机模式。
写冲突
S P I 在发送时为单缓冲,在接收时为双缓冲。这样在前一次发送尚未完成之前,不能将新的数据
写入移位寄存器。当发送过程中对数据寄存器进行写操作时,WCOL 位(SPSTAT.6)将置位以指示数据冲
突。在这种情况下,当前发送的数据继续发送,而新写入的数据将丢失。
当对主机或从机进行写冲突检测时,主机发生写冲突的情况是很罕见的,因为主机拥有数据传输的
完全控制权。但从机有可能发生写冲突,因为当主机启动传输时,从机无法进行控制。
接收数据时,接收到的数据传送到一个并行读数据缓冲区,这样将释放移位寄存器以进行下一个数
据的接收。但必须在下个字符完全移入之前从数据寄存器中读出接收到的数据,否则,前一个接收数据
将丢失。
W C O L 可通过软件向其写入“1 ”清零。
数据模式
时钟相位位(CPHA)允许用户设置采样和改变数据的时钟边沿。时钟极性位 CPOL 允许用户设置时钟极
性。 SPI 图 4~图 7 所示为时钟相位位 CPHA 的不同设定。
时钟周期
1
2
3
4
5
6
7
8
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MOSI(输入)
DORD = 0
DORD = 1
MOSI(输出) DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
(1)
SS (如果 SSIG 位= 0)
(1)
未定义
S P I 图 4 S P I 从机传输格式(C P H A = 0 )
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
66
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
时钟周期
1
2
3
4
5
6
7
8
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MOSI(输入)
DORD = 0
DORD = 1
MOSI(输出) DORD = 0
DORD = 1
(1)
LSB
MSB
SS (如果 SSIG 位= 0)
(1)
未定义
S P I 图 5 S P I 从机传输格式(C P H A = 1 )
时钟周期
1
2
3
4
5
6
7
8
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MOSI(输出) DORD = 0
DORD = 1
MOSI(输入)
DORD = 0
DORD = 1
SS (如果 SSIG 位= 0)
S P I 图 6 S P I 主机传输格式(C P H A = 0 )
1
时钟周期
2
3
4
5
6
7
8
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MOSI(输出)
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
MOSI(输入)
DORD = 0
DORD = 1
MSB
LSB
6
1
5
2
4
3
3
4
2
5
1
6
LSB
MSB
SS (如果 SSIG 位= 0)
S P I 图 7 S P I 主机传输格式(C P H A = 1 )
S P I 时钟预分频器选择
SPI 时钟预分频器选择是通过 SPCTL 寄存器中的 SPR1-SPR0 位实现的
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
67
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC 89 系 列 单 片 机 , 高 速 、 高 可 靠 、 在 线 编 程
提 升 的 是 性 能 , 降 低 的 是 成 本
起
附录F:
4.
7元
1280
字节
IAP
8/16/32/64k
字节 闪存
SRAM
P4 口地址 0E8H
INT2/P4.3
INT3/P4.2
P4 口均可位寻址
内置系统
ISP 监控程序
P0
8051
看门狗
四个 8 位
微处理器
2
E PROM
IAP
Data Flash
STC
并行端口
低 功 耗 ,超 低 价
+
P4.0—P4.3
高 速 ( 0 - 9 0 M ), 高 可 靠 四个附送
掉 电 模 式 : < 0.1 μ A, 空 闲 模 式 : 2mA
√
集成 MAX810
I/O 端口
专用复位电路
单倍速和
双倍速可
“I S P ”
反复设置
UART(串口)
双数据
A/D
3 个定时器
指针
不加价
P1
P2
P3
P4 (E8H)
A / D (高速)可做:
按键扫描
电池电压检测
掉电检测
音量、频谱检测等
STC 89 系列单片机选型一览表 超低价
型 号
最 高 时 钟
看 双 P I I
Flash RAM 降低
频 率 Hz
门 倍 4 S A
5V 3V 存储器 字节 EMI 狗 速 口 P P
E2P
ROM
字节
STC 89C51
RC
0~80M
4K
512
√
√
√
√ √ √
2K
STC 89C52
RC
0~80M
8K
512
√
√
√
√ √ √
2K
STC 89C53
RC
0~80M
15K
512
√
√
√
√ √ √
STC 89C54
RD+ 0~80M
16K
1280
√
√
√
√ √ √
16K
STC 89C55
RD+ 0~80M
20K
1280
√
√
√
√ √ √
16K
STC 89C58
RD+
0~80M
32K
1280
√
√
√
√ √ √
16K
STC 89C516 RD+
0~80M
64K
1280
√
√
√
√ √ √
4K
512
√
√
√
√ √ √
2K
2K
0~80M
STC 89LE52 RC
0~80M
8K
512
√
√
√
√ √ √
STC 89LE53 RC
0~80M
15K
512
√
√
√
√ √ √
STC 89LE54 RD+
0~80M
16K
1280
√
√
√
√ √ √
16K
STC 89LE58 RD+
0~80M
32K
1280
√
√
√
√ √ √
16K
STC 89LE516RD+
0~80M
64K
1280
√
√
√
√ √ √
D I P - 4 0 ,P L C C - 4 4 ,P Q F P - 4 4 封装(RC/RD+ 系列 PLCC、PQFP 有 P4 口地址 E8H,AD 系列 P4 口为 C0H)
RC/RD+ 系列 PLCC、PQFP 多两个外部中断 P4.2/INT3,P4.3/INT2。 P4 口均可位寻址
5V: 5.5V~3.8V 乃至 3.4V(24M 以下)
;3V: 3.6V~2.4V 乃至 2.0V,仅针对 RC/RD+ 系列
真正的看门狗,可放心省去外部看门狗,缺省为关闭,打开后无法关闭。单倍速和双倍速可反复设置
√
“6
时钟
/
机器周期”和“1
2
时钟
/ 机器周期”可在 I S P 编程时反复设置,新的设置冷启动后才生效
√
另 STC89LE516AD、58AD、54AD、52AD、51AD 系列单片机,带高速 A/D 转换
√
√ √ √
STC89LE516 AD 0-90M 64K 512 现货
√
√ √ √
STC89LE58 AD 0-90M 32K 512 现货
√
√ √ √
STC89LE54 AD 0-90M 16K 512 现货
√
√ √ √
STC89LE51 AD 0-90M 4K 512 定货
STC89LE516 X2 0-90M 64K 512 现货
√ √ √ √ √
STC 单片机在系统可编程的使用,软件界面
16
Vcc
Gnd
2
V+
GND
15
3
C1-
T1OUT
14
4
C2+
R1IN
13
5
C2-
R1OUT
12
6
V-
T1IN
11
7
T2OUT
T2IN
10
8
R2IN
R2OUT
9
2
3
PC_RxD (COM Pin2)
Vcc
编 如
就 程锁 用
是 紧
编 座
程
器
0.1uF
0.1uF
PC / 电脑 串口
10uF
C1+
供货
单片机在线编程典型线路
SP3232, SP232
1
双 P I A
最 高 时 钟
程序 RAM 降低
倍 4 S /
频 率 Hz
1.9-3.6V 存储器 字节 EMI 速 口 P D
√
√ √ √
STC89LE52 AD 0-90M 8K 512 现货
关于单片机说明:<管脚与流行的 8051 兼容> 人民币 4.7 元起
STC
★ 加 密 性 强, 无 法 解 密
★超 强 抗 干 扰 :
1 、高 抗 静 电 ( E S D 保 护 )
2 、轻松过 2KV/4KV 快速脉冲干扰(EFT 测试)
3 、宽 电 压 , 不 怕 电 源 抖 动
4 、宽 温 度 范 围, - 4 0 ℃ ~ 8 5 ℃
5 、I / O 口 经 过 特 殊 处 理
6 、单 片 机 内 部 的 电 源 供 电 系 统 经 过特殊处理
7 、单 片 机 内 部 的 时 钟 电 路 经 过 特 殊 处 理
8 、单 片 机 内 部 的 复 位 电 路 经 过 特 殊处理
9 、单 片 机 内 部 的 看 门 狗 电 路 经 过 特 殊 处 理
★三 大 降 低 单 片 机 时 钟 对 外 部 电 磁 辐 射 的 措 施 :
—— 出口欧美的有力保证
1 、禁止 A L E 输出;
2 、如选 6 时钟 / 机器周期,外部时钟频率可降一半;
3 、单片机时钟振荡器增益可设为 1/2gain。
★超低功耗:
1 、掉电模式: 典型功耗 <0.1 μ A
2 、空闲模式: 典型功耗 2mA
3 、正常工作模式: 典型功耗 4mA - 7mA
4 、掉电模式可由外部中断唤醒,适用于电池
供电系统,如水表、气表、便携设备等。
★ 在 系 统 可 编 程, 无 需 编 程 器, 可 远 程升级
★ 可送 S T C - I S P 下载编程器, 1 万片 / 人 / 天
★ 可供应内部集成 M A X 8 1 0 专用复位电路的单片机,
只有 D 版本才有内部集成专用复位电路,原复位
电路可以保留,也可以不用,不用时 R E S E T 脚直
接短到地
STC 具有 A / D 转换功能的单片机选型指南
型 号
STC 89LE51 RC
选择 S T C 8 9 C 5 2 R C 系列
S T C 8 9 C 5 8 R D + 系 列 单 片 机 的 理 由 :
5
PC_TxD (COM Pin3)
MCU_RxD (P3.0)
MCU_TxD (P3.1)
P3.0
VCC
P3.1
XTAL2 89C52RC
89C58RD+
89LE52RC
XTAL1 89LE516RD+
GND RESET
STC810
1 GND
VCC 3
2 RESET
技术支持:13922805190 网址:www.MCU-Memory.com
专业单 片 机 、存 储 器 供应商
新客户请直接联系深圳以获得更好的技术支持和服务
欢迎海内外厂家前来洽谈合作
深 圳:Tel:0755-82948409 82948410 Fax:0755-82944243 82905966
免费索取
上海办:Tel:021-53560136 53560138 Fax:021-53080587
北京办:Tel:010-62538687 62634001 Fax:010-62538683
从网上下载样品申请单,
南京办:Tel:025-86893767 86893566 Fax:025-86893757
传真至深圳申请 S T C 单片
广州办:Tel:020-38851405 38850557 Fax:020-38850581
机样片及 I S P 下载线 / 编程工具
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C2052AD 系列 1T 8051 单片机中文指南
68
附录G : S T C 1 2 C 1 2 5 4 A D 系列单片机选型一览(全部 I S P 功能)
-----2005-12-1 供货
工作
电 压 (V)
Flash
程序
存储器
字节
STC12C0154
3.4 - 5.5
1K
512
STC12C0154AD
3.4 - 5.5
1K
STC12C0254
3.4 - 5.5
STC12C0254AD
3.4 - 5.5
STC12C0454
STC12C0454AD
定
SRAM
时
字节
器
UART
PCA
PWM
2
有
4路
512
2
有
4路
2K
512
2
有
4路
2K
512
2
有
4路
3.4 - 5.5
4K
512
2
有
4路
3.4 - 5.5
4K
512
2
有
4路
STC12C0654
3.4 - 5.5
6K
512
2
有
4路
STC12C0654AD
3.4 - 5.5
6K
512
2
有
4路
STC12C0854
3.4 - 5.5
8K
512
2
有
4路
STC12C0854AD
3.4 - 5.5
8K
512
2
有
4路
STC12C1054
3.4 - 5.5
10K
512
2
有
4路
STC12C1054AD
3.4 - 5.5
10K
512
2
有
4路
STC12C1254
3.4 - 5.5
12K
512
2
有
4路
STC12C1254AD
3.4 - 5.5
12K
512
2
有
4路
STC12LE0154
2.0 - 3.8
1K
512
2
有
4路
STC12LE0154AD
2.0 - 3.8
1K
512
2
有
4路
STC12LE0254
2.0 - 3.8
2K
512
2
有
4路
STC12LE0254AD
2.0 - 3.8
2K
512
2
有
4路
STC12LE0454
2.0 - 3.8
4K
512
2
有
4路
STC12LE0454AD
2.0 - 3.8
4K
512
2
有
4路
STC12LE0654
2.0 - 3.8
6K
512
2
有
4路
STC12LE0654AD
2.0 - 3.8
6K
512
2
有
4路
STC12LE0854
2.0 - 3.8
8K
512
2
有
4路
STC12LE0854AD
2.0 - 3.8
8K
512
2
有
4路
STC12LE1054
2.0 - 3.8
10K
512
2
有
4路
STC12LE1054AD
2.0 - 3.8
10K
512
2
有
4路
STC12LE1254
2.0 - 3.8
12K
512
2
有
4路
STC12LE1254AD
2.0 - 3.8
12K
512
2
有
4路
I/O
看
门
狗
内置
复位
EEP
ROM
字节
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
有
23
有
有
有
有 DIP/SOP
23
有
有
有
有 DIP/SOP
有
23
有
有
有
有 DIP/SOP
A/D
8路
有
有
有
有
有
有
有
有
有
有
有
有
S
P
I
封装
28-Pin
STC12C1254AD 系列 1T 单片机简介
STC12C1254AD 系列单片机是单时钟 / 机器周期的兼容 8051 内核单片机,是高速 / 低功
耗的新一代 8051 单片机,全新的流水线 / 精简指令集结构。
特点:
1.增强型 1T 流水线 / 精简指令集结构 8051 CPU
2.工作电压:2.4V - 3.8V / 3.4V - 5.5V
3.工作频率范围:0 - 35 MHz,相当于普通 8051 0~420MHz
4.用户应用程序空间 1K / 2K / 4K / 6K / 8K / 10K / 12K 字节
5.片上集成 512 字节 RAM
6.EEPROM 功能
7.共 2 个 16 位定时器 / 计数器
8 . P W M ( 4 路)/ P C A (可编程计数器阵列)
9.ADC, 8 路 10 位精度
10. 通用异步串行口(UART)
11. SPI 同步通信口, 主模式 / 从模式
12.看门狗
13.内部集成 R/C 振荡器,精度要求不高时可省外部晶体
14.ISP/IAP
15.工作温度范围: 0 - 75℃ / -40 - +85℃
16.封装: PDIP-28(窄体),SOP-28,TSOP-28, PLCC-32
17.供货: 2005-12-1 开始提供样品(PDIP-28/SOP-28),2005 年 12 月底批量供货
目录
STC12C2052AD 系列单片机主要性能 .......................................... 2
STC12C2052AD 系列单片机简介 .............................................. 3
STC12C2052AD 系列单片机管脚图及封状尺寸图 ............................... 4
STC12C2052AD 系列单片机典型应用电路 ...................................... 6
STC12C2052AD 系列单片机选型一览表 ........................................ 7
STC12C2052AD 系列单片机指令系统分类总结 ................................. 8
STC12C2052AD 系列单片机特殊功能寄存器映像 ............................. 11
STC12C2052AD 系列单片机中断 ............................................. 14
STC12C2052AD 系列单片机定时器 0/1 及 UART 串口的速度 ..................... 15
STC12C2052AD 系列单片机 I/O 口结构 ....................................... 16
STC12C2052AD 系列单片机 A/D 及 A/D 转换寄存器 ............................ 19
STC12C2052AD 系列单片机看门狗应用 ....................................... 25
STC12C2052AD 系列单片机进入掉电模式后由外部中断唤醒......................28
STC12C2052AD 系列单片机 IAP 及 EEPROM 应用 ............................... 30
STC12C2052AD 系列单片机 IAP/EEPROM 汇编简介 ............................. 32
STC12C2052AD 系列单片机定时器 0/1 的使用 ................................ 39
附录 A STC12C2052AD 系列单片机 PWM/PCA 应用 .............................. 43
附录 B S T C 1 2 C 2 0 5 2 A D 系列单片机编译器 / 汇编器,编程器,仿真器 ......... 54
附录 C STC12C2052AD 系列单片机 ISP 编程 原理 使用说明 .................. 5 5
附录 D STC12C2052AD 系列单片机数据 RAM 存储器 ........................... 5 9
附录 E STC12C2052AD 系列单片机串行外围接口(SPI)....................... 6 1
附录 F STC89C51RC/RD+ 系列单片机选型 ................................... 6 8
附录 G STC12C1254AD 系列单片机选型 ...................................... 6 9
目 录 .................................................................... 7 0