ETC STC89C52RC

 STC89C51RC / RD+ 系列单片机中文指南
--- 高可靠
--- 超低价
--- 低功耗
--- 无法解密
STC89C51RC,
STC89C52RC,
STC89C53RC,
STC89LE51RC
STC89LE52RC
STC89LE53RC
STC89C54RD+, STC89LE54RD+
STC89C58RD+, STC89LE58RD+
STC89C516RD+, STC89LE516RD+
附录 A:
为什么少数用户的普通 8051 程序烧录后,不能运行
附录 B: STC89LE516AD,STC89LE516X2
附录 C: STC89C51RC / RD+ 系列单片机 ISP (DIY)
附录 D: ISP Demo(演示版)软件(*.hex)及通信协议
附录E: 如何实现运行中自定义下载,无仿真器时方便调试
附录 F: Keil C51 高级语言编程的软件如何减少代码长度
国内技术支援:宏晶科技(深圳)
www.MCU-Memory.com support@dsp-memory.com
Update date: 2005-2-16
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
本应用技术手册是针对有一定
8051 系列(MCS-51)单片机编程基础的用户编写的。
选用 STC 单片机的理由:降低成本,提升性能,原有程序直接使用,硬件无需改动。
STC 公司鼓励您放心大胆选用 PLCC, PQFP 小型封装, 3.3V 工作电压单片机,使
您的产品更小,更轻,功耗更低。如果相关新增功能没有用到,则不需看相应部分。用
STC 提供的 STC-ISP.exe 工具将您原有的代码下载进 STC 相关的单片机即可,或用通用编
程器编程。
1280
字节
IAP
8/16/32/64k
字节 闪存
SRAM
2k - 8k 字节
ISP 引导码
P0
8051
双数
据指针
STC
微处理器
低功耗,超低价
高 速 ( 0 - 9 0 M ), 高 可 靠 看门狗
掉 电 模 式 : 0.5μ A, 空 闲 模 式 : 2mA √
四个 8 位
并行端口
+
P4.0—P4.3
四个附送
I/O 端口
P1
P2
P3
P4
IAP
UART(串口)
E2PROM
A/D
3 个定时器
Data Flash
不加价
A / D (高速)可做:
按键扫描
电池电压检测
掉电检测
音量、频谱检测等
5V: 5.5 - 3.8V,乃至 3.4V; 3V: 3.6 - 2.4V,乃至 1.9V
STC89 系列单片机选型一览表
型 号
最高时钟
频 率Hz
5V
3V
IAP / ISP 美国技术, 超低价格, 15 分钟学会
数
Flash RAM
看双P I I
中 优 定 A 向下
降低
EEP 据 串口
程序
数据
门 倍4 S A
断 先 时 / 兼容
EMI
ROM 指 UART
存储器 存储器
狗速口P P
源 级 器 D Winbond
针
向下
兼容
Philips
P89C51
W78E51
向下
兼容
Atmel
STC89C51 RC
0-80M
4K
512
√
√ √ √ √ √ 1K+ 2 1ch+ 8 4 3
STC89C52 RC
0-80M
8K
512
√
√ √ √ √ √ 1K+ 2 1ch+ 8 4 3
W78E52
P89C52
STC89C53 RC
0-80M
15K
512
√
√√√√√
2 1ch+ 8 4 3
W78E54
P89C54
AT89C55
STC89C54 RD+ 0-80M
16K
1280
√
√ √ √ √ √ 8K+ 2 1ch+ 8 4 3
W78E54
P89C54
AT89C55
STC89C58 RD+ 0-80M
32K
1280
√
√ √ √ √ √ 8K+ 2 1ch+ 8 4 3
W78E58
P89C58
AT89C51RC
STC89C516 RD+ 0-80M
63K
1280
√
√√√√√
2 1ch+ 8 4 3
W78E516
P89C51RD2
AT89C51RD2
STC89LE51 RC
0-80M 4K
512
√
√ √ √ √ √ 1K+ 2 1ch+ 8 4 3
W78LE51
AT89LV51
STC89LE52 RC
0-80M 8K
512
√
√ √ √ √ √ 1K+ 2 1ch+ 8 4 3
W78LE52
AT89LV52
STC89LE53 RC
0-80M 14K
512
√
√√√√√
2 1ch+ 8 4 3
W78LE54
AT89LV55
STC89LE54 RD+
0-80M 16K
1280
√
√ √ √ √ √ 8K+ 2 1ch+ 8 4 3
W78LE54
AT89LV55
STC89LE58 RD+
0-80M 32K
1280
√
√ √ √ √ √ 8K+ 2 1ch+ 8 4 3
W78LE58
AT89LV51RC
STC89LE516RD+
0-80M 63K
1280
√
√√√√√
W78LE516 P89LV51RD2 AT89LV51RD2
STC89LE516AD
0-90M 64K
512
√
√√
STC89LE516X2
0-90M 64K
512
√
√√√
2 1ch+ 8 4 3
2 1ch+ 6 4 3 √ 需要A/D转换时才选用,8路8位精度
2 1ch+ 6 4 3 √ 在P1.0 - P1.7口,17 个机器周期一次
R C / R D + 系列为真正的看门狗,缺省为关闭(冷启动),启动后无法关闭,可放心省去外部看门狗。
内部 Flash 擦写次数为 100,000 次以上,STC89C51RC/RD+ 系列单片机出厂时就已完全加密,无法解密。
用户程序是用 I S P / I A P 机制写入,一边校验一边写,无读出命令,彻底无法解密。D I P - 4 0 ,P L C C - 4 4 ,
PQFP-44 三种封装(PLCC、QFP 有 P4 口),RC/RD+ 系列单片机 P4 口地址为 E8H,并有 2 个附加外部中断,
P4.2/INT3,P4.3/INT2。STC89LE516AD/X2 系列单片机 P4 口地址为 C0H,无附加外部中断。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
WR/P3.6 P1.4
RD/P3.7 P1.3
XTAL2 P1.2
XTAL1 P1.1/T2EX
VSS P1.0/T2
P4.0 P4.2/INT3
A8/P2.0 VDD
A9/P2.1 P0.0/AD0
A10/P2.2 P0.1/AD1
A11/P2.3 P0.2/AD2
A12/P2.4 P0.3/AD3
WR/P3.6 P1.4
RD/P3.7 P1.3
XTAL2 P1.2
XTAL1 P1.1/T2EX
VSS P1.0/T2
P4.0 P4.2/INT3
A8/P2.0 VDD
A9/P2.1 P0.0/AD0
A10/P2.2 P0.1/AD1
A11/P2.3 P0.2/AD2
A12/P2.4 P0.3/AD3
STC89C51RC / RD+ 系列单片机 管脚图
6 5 4 3 2 1 44 43 42 41 40
18 19 20 21 22 23 24 25 26 27 28
DIP-40
T2/P1.0 1 40 VCC
T2EX/P1.1 2 39 P0.0/AD0
P1.2 3 38 P0.1/AD1
P1.3 4 37 P0.2/AD2
P1.4 5 36 P0.3/AD3
P1.5 6 35 P0.4/AD4
P1.6 7 34 P0.5/AD5
P1.7 8 33 P0.6/AD6
RST 9 32 P0.7/AD7
RXD/P3.0 10 31 EA
TXD/P3.1 11 30 ALE/PROG
INT0/P3.2 12 29 PSEN
INT1/P3.3 13 28 P2.7/A15
T0/P3.4 14 27 P2.6/A14
T1/P3.5 15 26 P2.5/A13
WR/P3.6 16 25 P2.4/A12
RD/P3.7 17 24 P2.3/A11
XTAL2 18 23 P2.2/A10
XTAL1 19 22 P2.1/A9
VSS 20 21 P2.0/A8
44 43 42 41 40 39 38 37 36 35 34
P1.5 1 33 P0.4/AD4
P1.6 2 32 P0.5/AD5
P1.7 3 31 P0.6/AD6
PQFP-44
P1.5 7 39 P0.4/AD4
P1.6 8 38 P0.5/AD5
P1.7 9 37 P0.6/AD6
RST 10 36 P0.7/AD7
RXD/P3.0 11 35 EA
P4.3/INT2 12 34 P4.1
PLCC-44
TXD/P3.1 13 33 ALE/PROG
INT0/P3.2 14 32 PSEN
INT1/P3.3 15 31 P2.7/A15
T0/P3.4 16 30 P2.6/A14
T1/P3.5 17 29 P2.5/A13
RST 4 30 P0.7/AD7
RXD/P3.0 5 29 EA
P4.3/INT2 6 28 P4.1
TXD/P3.1 7 27 ALE/PROG
INT0/P3.2 8 26 PSEN
INT1/P3.3 9 25 P2.7/A15
T0/P3.4 10 24 P2.6/A14
T1/P3.5 11 23 P2.5/A13
12 13 14 15 16 17 18 19 20 21 22
关于编译器 / 汇编器:
1.任何老的编译器 / 汇编器均可使用
Keil C51 中: Device 选择标准的 Intel8052
头文件包含标准的 <reg52.h>
2.新增特殊功能寄存器用
“s f r ”及“s b i t ”声明地址即可
3.汇编中用“data”,或“EQU”声明地址
关于仿真及仿真器:
1.任何老的仿真器均可使用
2.老的仿真器仿真他可仿真的基本功能
3.新增特殊功能用 ISP 下载看结果即可
4.STC8051 专用仿真器也已推出,人民币 1950
关于工作电压 / 时钟频率:RC/RD+ 系列是真正的 6T 单片机,兼容普通的 12 时钟 / 机器周期
内核实际6T 现有老版5V单片机,无版本号
工作电压
现有新版5V单片机(B版)
单倍速
双倍速
单倍速
双倍速
实际内核
实际内核
实际内核
实际内核
外部时钟 相当于
相当于
外部时钟 相当于
相当于
IAP/ISP可以
运行时钟
运行时钟
运行时钟
运行时钟
普通8052
普通8052
普通8052
普通8052
5.5V - 4.5V 0-24MHz
0-24MHz
0-12MHz
0-48MHz 0-24MHz
0-40MHz
0-40MHz
0-20MHz
0-80MHz 0-40MHz
读,编程,擦除
5.5V - 3.8V 0-20MHz
0-20MHz
0-10MHz
0-40MHz 0-20MHz
0-33MHz
0-33MHz
0-16.5M
0-66MHz 0-33MHz
读,编程,擦除
5.5V - 3.6V 0-18MHz
0-18MHz
0-9MHz
0-36MHz 0-18MHz
0-24MHz
0-24MHz
0-12MHz
0-48MHz 0-24MHz
读,编程,擦除
5.5V - 3.4V 0-12MHz
0-12MHz
0-6MHz
0-24MHz 0-12MHz
0-20MHz
0-20MHz
0-10MHz
0-40MHz 0-20MHz
读(不要编程/擦除)
3V: 3.6 - 2.4V(可外部 24MHz,双倍速 48MHz),2.3-1.9V 时不要进行 IAP 擦除 / 编程
关于看门狗:
R C / R D + 系列为真正的看门狗,缺省为关闭(冷启动),启动后无法关闭。
A.看门狗溢出复位无法关看门狗(C 版);
B.单片机软复位无法关看门狗(C版)
C.带电工作时,外部复位无法关看门狗(C 版) D.软件无法关看门狗
E.外部干扰无法关看门狗
F.只有给单片机彻底断电,才可以
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC 单片机 ISP 编程 典型应用电路(89C51RC/RD+ 系列)
--- 出厂就加密(超级加密),利用 ISP 技术写入程序,无读出命令,无法解密
STC 单片机在线编程线路, STC RS-232 转换器
PC / 电脑 串口
STC232, STC3232
1
0.1uF
2
C1+
V+
Vcc 16
Vcc
GND 15
Gnd
C1-
T1OUT 14
4
C2+
R1IN 13
5
C2-
R1OUT 12
6
V-
T1IN 11
7
T2OUT
T2IN 10
8
R2IN
R2OUT
9
PC_RxD (COM Pin2)
5
1.如外部不加上拉,或外部上拉到 Vcc,
上电复位后单片机从内部开始执行程序;
2.如外部下拉到地,上电复位后单片机
从外部开始执行程序
PC_TxD (COM Pin3)
Vin
3
2
3
关于 /EA(/EA 管脚已内部上拉到 Vcc):
此电路已做成一块 STC ISP
用户程序下载工具,人民币50元
供用户将程序灌进单片机使用
Vcc
1K
SW1
Power On
1 T2/P1.0 VCC 40
2 T2EX/P1.1 P0.0/AD0 39
3 P1.2 P0.1/AD1 38
关于复位电路:
4 P1.3 P0.2/AD2 37
Vcc
7 P1.6 P0.5/AD5 34
10 μF
10K
Vcc
5 P1.4 P0.3/AD3 36
6 P1.5 P 0.4/AD4 35
8 P1.7 P0.6/AD6 33
9 RST P0.7/AD7 32
MCU_RxD (P3.0)
1 0 RXD/P3.0 EA 31
MCU_TxD (P3.1)
C5
C6
104
10uF
11 TXD/P3.1 ALE/PROG 30
12 INT0/P3.2 PSEN 29
1.阻容复位时,电容为 10uF,电阻为 10K; 13 INT1/P3.3 P2.7/A15 28
P2.6/A14 27
2.RC/RD+ 系列单片机 RESET 脚内部没 14 T0/P3.4 15 T1/P3.5 P2.5/A13 26
下拉电阻,必须用此 10K 电阻
关于晶振电路:
1.推荐用 11.0592M
C2
47pF
X1
R1
16 WR/P3.6 P2.4/A12 25
17 RD/P3.7 P2.3/A11 24
18 XTAL2 P2.2/A10 23
19 XTAL1 P2.1/A9 22
20 VSS P2.0/A8 21
-22.1184MHz 晶体
C1
2.必须去掉电容 C1,利于起振;
U1
3.电容 C2 可接 47~33pF(<24MHz),30,22,15pF,33M 以上 15pF;6M 以下 47pF,100pF-180pF;
CRYSTAL(晶 振 )
C1( 坚 决 不 用 )
C2(47pF - 15pF)
R1(不 用 )
C3
R2
6MHz
Don't use
47pF, 100pF
Don't use
10uF
10K/8.2K
11.0592MHz
Don't use
30pF, 33pF,47pF
Don't use
10uF
10K/8.2K
22.1184MHz
Don't use
27pF, 33pF,47pF
Don't use
10uF-22uF
15K,10K,8.2K
24MHz
Don't use
27pF, 33pF,47pF
Don't use
10uF-22uF
15K,10K,8.2K
33MHz(D o n ' t u s e )
Don't use
15pF
15k - 6.8k
10uF-22uF
15K,10K,8.2K
40MHz(D o n ' t u s e )
Don't use
15pF
15k - 6.8k
10uF-22uF
15K,10K,8.2K
4.如需工作在 24M 以上,尽量选择双倍速,外部晶振用低频率(<24MHz),这样 EMI 会小很多;
5.如果外部晶振频率在 33M 以上,焊 R1 电阻(15K 左右),33MHz 以上,建议用有源时钟输入。
6.推荐在 XTAL2 管脚串一个 120 - 160 欧姆的电阻再到晶振的管脚,如果这样 XTAL1 管脚
可以上(并且是推荐上)
旁的 C1
7.晶体振荡器(内部时钟反向放大器增益)软件设置(在用 STC-ISP 工具软件烧录时设置):
5V 单片机 24M 以下时,3.3V 单片机 16M 以下时,选择 1/2gain
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
4
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC89C51RC/RD+ 系列单片机 ISP 编程 原理 注意事项
单片机彻底没电
外部手动复位,看门狗复位,
单片机不会运行 ISP 程序
给单片机上电复位,冷起动
冷起动,单片机运行系统 ISP 监控程序
单片机运行 ISP 程序,检测有无下
载命令流,会占时几十 mS - 几百 mS
检测 P3.0/RxD 有没有合法下载命令流
PC 机端的控制软件必需先发下载命
令流,再给单片机上电复位
有
下载用户程序进用户程序区
无
PC 机端的控制软件 STC-ISP-V2.5 版
本从 www.mcu-memory.com下载,如何
使用,本文相关部分有说明
软复位到用户程序区,运行用户程序
为什么有些用户下载程序不成功(在宏晶提供的下载板上)
1 . 可能电脑端的 S T C - I S P 控制软件要升级,现在必须升级到正式版本 S T C - I S P - V 2 . 5
2.现在单片机端(下位机)的 ISP 软件是 V2.5C,解决了少数电脑慢,通信连不上的问题.
3 . 运行用户程序时,可到 4 0 M / 8 0 M H z , 但 I S P 下载程序现版本软件只能到 3 3 M / 6 6 M H z
4.少数客户的 PLCC-44,PQFP-44 转 DIP-40 的转换座走线过长,造成时钟振荡不稳定,下
载不成功,可将 X T A L 1 脚的电容去掉,X T A L 2 脚的电容加大到 4 7 p F 以上。
5 . 可能单片机内部没有 I S P 引导码,或者要升级 P C 端的 S T C - I S P 控制软件
6 . 电脑端的 I S P 控制软件 S T C - I S P - V 2 . 9 测试版加了一些功能,欢迎测试。
7.电脑端的 ISP 控制软件 STC-ISP-V2.6 测试版不要用,有误
8.新的单片机端(下位机)的 ISP 软件是 V2.7C,加了一些抗干扰措施,主要解决冷起动运行
ISP 程序时间过长的问题,以免客户感觉“复位慢”,实为 ISP 程序在检测要不要下载程序
为什么有些用户下载程序不成功(在用户自己的系统上)
1.可能用户板上有外部看门狗,需不让其起作用
2.可能用户板上 P3.0/RxD,P3.1/Txd 除了接 RS-232 转换器外,还接了 RS-485 等电路,
需要将其断开。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
5
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
超低功耗 ---- STC89C51RC / RD+ 系列单片机
1 . 掉电模式:
典型功耗 0.5uA, 可由外部中断唤醒,中断返回后,继续执行原程序
2 . 空闲模式:
典型功耗 2mA
3 . 正常工作模式:
典型功耗 4mA - 7mA
超强抗干扰 ---- STC89C51RC / RD+ 系列单片机
1. I/O 口
输入 / 输出口经过特殊处理,很多干扰是从 I/O 进去的,每个 I/O 均有对 VCC/ 对 GND
二级管箝位保护。
2. 电源
单片机内部的电源供电系统经过特殊处理,很多干扰是从电源进去的
3. 时钟
单片机内部的时钟电路经过特殊处理,很多干扰是从时钟部分进去的
4. 看门狗
单片机内部的看门狗电路经过特殊处理,打开后无法关闭,可放心省去外部看门狗
5. 复位电路
单片机内部的复位电路经过特殊处理,很多干扰是从复位电路部分进去的,
STC89C51RC/RD+ 系列单片机为高电平复位。推荐外置复位电路为MAX810/STC810,STC6344,
STC6345,813L,706P;也可用 R/C 复位,10uF 电容 /10k 电阻,22uF/8.2k 等。
6.宽电压,不怕电源抖动
5V: 6v - 3.4v
3V: 4v - 1.9v
降低单片机对外部的电磁辐射 (EMI)--- 三大措施
1. 禁止 ALE 时钟信号输出:
RC/RD+ 系列 8051 单片机 扩展 RAM 管理及禁止 ALE 输出 特殊功能寄存器 只写
Mnemonic Add Name
AUXR
7
6
5
4
3
2
1
0
Reset value
8Eh Auxiliary Register 0 -
-
-
-
-
-
EXTRAM ALEOFF xxxx,xx00
禁止 ALE 信号输出(应用示例供参考,汇编语言):
MOV AUXR, #00000001B; ALEOFF 位置“1”,禁止 ALE 时钟输出
2. 外部时钟频率降一半,6T 模式: 传统的 8051 为每个机器周期 12 时钟,如将 STC 的增
强型 8051 单片机在 ISP 烧录程序时设为双倍速(即 6T 模式,每个机器周期 6 时钟),则可
将单片机外部时钟频率降低一半,有效的降低单片机时钟对外界的辐射
3. 单片机内部时钟振荡器增益降低一半: 在 ISP 烧录程序时将 OSCDN 设为 1/2 gain
可以有效的降低单片机时钟高频部分对外界的辐射,5V单片机外部晶振频率<24MHz时,
3V单
片机外部晶振频率<16MHz 时,将 OSCDN 设为 1/2 gain。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
6
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
特殊功能寄存器映像 SFR Mapping
STC89C51RC, STC89C52RC, STC89C53RC, STC89C54RD+,STC89C58RD+,STC89C516RD+
STC89LE51RC,STC89LE52RC,STC89LE53RC,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
Bit
Non Bit Addressable
Addressable
0/8
1/9
2/A
3/B
4/C
5/D
6/E
7/F
F8h
FFh
F0h
B
0000,0000
F7h
E8h
P4
xxxx,1111
EFh
E0h
ACC
0000,0000
WDT_CONTR ISP_DATA ISP_ADDRH ISP_ADDRL ISP_CMD
ISP_TRIG ISP_CONTR
E7h
xx00,0000 1111,1111 0000,0000 0000,0000 1111,1000 xxxx,xxxx 000x,x000
D8h
DFh
D0h
PSW
0000,0000
C8h
T2CON
0000,0000
C0h
XICON
0000,0000
B8h
IP
xx00,0000
B0h
P3
1111,1111
A8h
IE
0000,0000
A0h
P2
1111,1111
98h
SCON
0000,0000
90h
P1
1111,1111
88h
TCON
0000,0000
TMOD
TL0
TL1
TH0
TH1
AUXR
0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 xxxx,xx00
80h
P0
1111,1111
SP
DPL
DPH
0000,0111 0000,0000 0000,0000
0/8
1/9
D7h
T2MOD RCAP2L RCAP2H TL2
TH2
xxxx,xx00 0000,0000 0000,0000 0000,0000 0000,0000
CFh
C7h
SADEN
0000,0000
BFh
IPH
B7h
0000,0000
SADDR
0000,0000
AFh
AUXR1
xxxx,0xx0
A7h
SBUF
xxxx,xxxx
9Fh
97h
2/A
3/B
8Fh
PCON
87h
0xx1,0000
4/C
5/D
6/E
7/F
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 7
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
RC/RD+ 系列 8051 单片机内核特殊功能寄存器 C51 Core SFRs
Mnemonic Add
Name
7
6
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
5
F0
4
3
2
RS1 RS0 OV
1
0
-
P
Reset Value
0000,0000
RC/RD+ 系列 8051 单片机系统管理特殊功能寄存器 System Management SFRs
Mnemonic Add Name
7
6
5
4
3
2
PCON
87h Power Control
SMOD -
-
POF GF1 GF0 PD
AUXR
8Eh Auxiliary Register 0 -
-
-
-
-
AUXR1
A2h Auxiliary Register 1 -
-
-
-
GF2 -
-
1
0
Reset value
IDL
0xx1,0000
EXTRAM ALEOFF xxxx,xx00
-
DPS
xxxx,0xx0
不同:STC89LE516AD / 89LE516X2 系列单片机没有 EXTRAM 控制位.
RC/RD+ 系列 8051 单片机 中断 特殊功能寄存器 Interrupt SFRs
Mnemonic Add
Name
7
6
5
4
3
2
1
0
Reset Value
IE
A8h
Interrupt Enable
EA
-
ET2
ES
ET1
EX1
ET0
EX0
0000,0000
IP
B8h
Interrupt Priority Low
-
-
PT2
PS
PT1
PX1
PT0
PX0
xx00,0000
IPH
B7h
Interrupt Priority High
PX3H PX2H PT2H PSH PT1H PX1H PT0H PX0H 0000,0000
XICON
C0h
Auxiliary Interrupt Control
PX3
EX3
IE3
IT3 PX2
EX2
IE2
IT2
0000,0000
不同:STC89LE516AD 系列单片机没有(XICON,PX3H,PX2H),因为 P4.2/P4.3 无中断.
RC/RD+ 系列 8051 单片机 I/O 口 特殊功能寄存器 Port SFRs
Mnemonic
Add
Name
7
6
P0
80h
8-bit Port 0
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
1111,1111
P1
90h
8-bit Port 1
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
1111,1111
P2
A0h
8-bit Port 2
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
1111,1111
P3
B0h
8-bit Port 3
P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0
1111,1111
P4
E8h
4-bit Port 4
-
xxxx,1111
-
5
-
4
-
3
2
1
0
P4.3 P4.2 P4.1 P4.0
Reset Value
不同:STC89LE516AD / 89LE516X2 系列单片机 P4 口地址为 C0h,而不是 E8h.
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 8
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
RC/RD+ 系列 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
RC/RD+ 系列 8051 单片机 定时器 特殊功能寄存器 Timer SFRs
Mnemonic Add
Name
7
6
5
4
3
2
1
0
Reset Value
TCON
88h
Timer / Counter 0 and 1 Control TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
0000,0000
TMOD
89h
Timer / Counter 0 and 1 Modes
M0
M0_0
0000,0000
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
0000,0000
T2CON
C8h
Timer / Counter 2 Control
TF2
EXF2
RCLK TCLK EXEN2 TR2
C/T2# CP/RL2# 0000,0000
T2MOD
C9h
Timer / Counter 2 Mode
-
-
-
T2OE
RCAP2L
CAh
Timer / Counter 2
Reload/Capture Low Byte
0000,0000
RCAP2H
CBh
Timer / Counter 2
Reload/Capture High Byte
0000,0000
TL2
CCh
Timer / Counter 2 Low Byte
0000,0000
TH2
CDh
Timer / Counter 2 High Byte
0000,0000
GATE C/T# M1
M0
GATE C/T# M1
GATE1 C/T1# M1_1 M1_0 GATE0 C/T0# M0_1
-
-
-
DCEN
xxxx,xx00
RC/RD+ 系列 8051 单片机 看门狗定时器 特殊功能寄存器 Watch Dog Timer SFRs
Mnemonic
Add
WDT_CONTR E1h
Name
7
6
5
4
3
2
1
0
Reset Value
Watch-Dog-Timer
Control register
-
-
EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
RC/RD+ 系列 8051 单片机 ISP/IAP 特殊功能寄存器 ISP/IAP SFRs
Mnemonic
Add
Name
ISP_DATA
E2h
ISP/IAP Flash Data Register
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
7
-
6
-
5
-
4
-
3
-
2
MS2
1
MS1
0
MS0
Reset Value
xxxx,x000
xxxx,xxxx
ISPEN SWBS SWRST -
-
WT2
WT1
WT0
000x,x000
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 9
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC89C51RC/RD+ 系列单片机扩展 RAM 的使用
STC89C51RC/RD+ 系列单片机扩展 RAM 的禁止
适用型号:
STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC
STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
普通 89C51,89C52 系列单片机的内部 RAM 只有 128(89C51)/256(89C52)供用户使用
(1).低 128 字节的内部 RAM(地址:00H-7FH)
,可直接寻址或间接寻址,(data/idata)
(2).高 128 字节的内部 RAM(地址:80H-FFH)
,只能间接寻址(普通 89C51 没有),(idata)
(3).特殊功能寄存器 SFR(地址:80H-FFH)
, 只能直接寻址,(data)
特殊功能寄存器 SFR 和高 128 字节的内部 RAM 是通过寻址方式来区分的,传统的 8051 系列单片机只
有 128-256 字节 RAM 供用户使用,在此情况下 STC 公司响应广大用户的呼声,在一些单片机内部增加了
RAM。 STC89C58RD+ 系列单片机扩展了 1024 个字节 RAM,STC89C52RC 系列单片机扩展了 256 个字节 RAM。
RC/RD+ 系列 8051 单片机 扩展 RAM 管理及禁止 ALE 输出 特殊功能寄存器 只写
Mnemonic Add Name
AUXR
7
6
5
4
3
2
1
0
Reset value
8Eh Auxiliary Register 0 -
-
-
-
-
-
EXTRAM ALEOFF xxxx,xx00
Symbol 符号 Function 功能
EXTRAM
Internal/External RAM access
内部 / 外部 RAM 存取
0: 内部扩展的 EXT_RAM 可以存取.
RD+ 系列单片机
在 00H 到 3FFH 单元(1024 字节),使用 MOVX @DPTR 指令访问,超过 400H 的地址空间
总是访问外部数据存储器(含 400H 单元),MOVX @Ri 只能访问 00H 到 FFH 单元
RC 系列单片机
在 00H 到 FFH 单元(256 字节),使用 MOVX @DPTR 指令访问,超过 100H 的地址空间
总是访问外部数据存储器(含 100H 单元),MOVX @Ri 只能访问 00H 到 FFH 单元
1: External data memory access.
外部数据存储器存取,禁止访问内部扩展 RAM,此时 MOVX @DPTR / MOVX @Ri 的
使用同普通 8052 单片机
ALEOFF
Disable/enable ALE.
0: ALE is emitted at a constant rate of 1/3 the oscillator frequency in
6 clock mode, 1/6 fosc in 12 clock mode
ALE 脚输出固定的 1/6 晶振频率信号在 12 时钟模式时,在 6 时钟模式时输出固定
的 1/3 晶振频率信号.
1: ALE is active only during a MOVX or MOVC instruction.
ALE 脚仅在执行 MOVX or MOVC 指令时才输出信号,好处是:降低了系统对外界的 EMI.
注解:STC89LE516AD,STC89LE516X2 系列无 EXTRAM 控制位,仅有 ALEOFF 控制位。
STC89LE516AD/X2 系列用 MOVX A, @Ri / MOVX @Ri, A 指令固定访问内部扩展的 EXTRAM,
用 MOVX A, @DPTR / MOVX @DPTR, A 指令固定访问外部 RAM.
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 1 0
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
应用示例供参考(汇编):
访问内部扩展的 EXTRAM
;新增特殊功能寄存器声明(汇编方式)
AUXR
DATA
8EH; 或者用 AUXR EQU 8EH 定义
MOV
AUXR,
#00000000B; EXTRAM 位清为”0”, 其实上电复位时此位就为”0”.
;MOVX A, @DPTR / MOVX @DPTR, A 指令可访问内部扩展的 EXTRAM
;RD+ 系列为(00H - 3FFH,共 1024 字节)
;RC 系列为(00H - FFH,共 256 字节)
;MOVX A, @Ri / MOVX A, @Ri 指令可直接访问内部扩展的 EXTRAM
;使用此指令 RD+ 系列 只能访问内部扩展的 EXTRAM(00H - FFH,共 256 字节)
;写芯片内部扩展的 EXTRAM
MOV
DPTR,
MOV
A,
#address
MOVX
@DPTR, A
#value
;读芯片内部扩展的 EXTRAM
MOV
DPTR,
MOVX
A,
#address
@DPTR
RD+ 系列
; 如果 #address < 400H,则在 EXTRAM 位为”0”时,访问物理上在内部,逻辑上在外部的
此 EXTRAM
; 如果 #address >= 400H,则总是访问物理上外部扩展的 RAM 或 I/O 空间(400H--FFFFH)
RC 系列
; 如果 #address < 100H,则在 EXTRAM 位为”0”时,访问物理上在内部,逻辑上在外部的
此 EXTRAM
; 如果 #address >= 100H,则总是访问物理上外部扩展的 RAM 或 I/O 空间(100H--FFFFH)
禁止访问内部扩展的 EXTRAM ,以防冲突
MOV
AUXR,
#00000010B; EXTRAM 控制位设置为”1”
, 禁止访问 EXTRAM,以防冲突
有些用户系统因为外部扩展了 I/O 或者用片选去选多个 RAM 区,有时与此内部扩展的 EXTRAM
逻辑地址上有冲突,将此位设置为”1 ”, 禁止访问此内部扩展的 E X T R A M 就可以了.
大实话 : 其实不用设置 AUXR 寄存器即可直接用 MOVX @DPTR 指令访问此内部扩展的 EXTRAM,超过此
RAM空间,将访问片外单元.如果系统外扩了SRAM,而实际使用的空间小于1024/256字节,则可
直接将此 SRAM 省去,比如省去 STC62WV256,IS62C256,UT6264 等. 另外尽量用 MOVX A, @Ri
/ MOVX @Ri, A 指令访问此内部扩展的 EXTRAM,这样只能访问 256 字节的扩展 EXTRAM,但可
与很多单片机兼容。如 STC89LE516AD/X2 系列 MOVX A, @Ri / MOVX @Ri, A 指令只能固定访
问内部扩展的 EXTRAM, MOVX A, @DPTR / MOVX
@DPTR, A 指令固定访问外部 RAM.
应用示例供参考(C 语言):
/*
访问内部扩展的 EXTRAM */
/* RD+ 系列为(00H - 3FFH, 共 1024 字节扩展的 EXTRAM) */
/* RC 系列为(00H - FFH, 共 256 字节扩展的 EXTRAM) */
/*
新增特殊功能寄存器声明(C 语言方式) */
sfr AUXR
=
AUXR
0x00;
=
0x8e
/*
/*
如果不需设置 AUXR 就不用声明 AUXR
*/
0000,0000 EXTRAM 位清 0, 其实上电复位时此位就为 0 */
unsigned char xdata sum,
loop_counter, test_array[128];
/* 将变量声明成 xdata 即可直接访问此内部扩展的 EXTRAM
*/
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 1 1
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
/* 写芯片内部扩展的 EXTRAM */
sum =
0;
loop_counter
=
128;
test_array[0]
=
5;
/* 读芯片内部扩展的 EXTRAM */
sum =
test_array[0];
/* RD+ 系列:
如果 #address < 400H,则在 EXTRAM 位为”0”时,访问物理上在内部,逻辑
上在外部的此 EXTRAM
如果 #address>=400H,则总是访问物理上外部扩展的 RAM 或 I/O 空间(400H-FFFFH)
RC 系列:
如果 #address < 100H,则在 EXTRAM 位为”0”时,访问物理上在内部,逻辑
上在外部的此 EXTRAM
如果 #address>=100H,总是访问物理上外部扩展的 RAM 或 I/O 空间(100H--FFFFH)
*/
禁止访问内部扩展的 EXTRAM , 以防冲突
AUXR
=
0x02;
/*
0000,0010, EXTRAM 位设为”1”
, 禁止访问 EXTRAM,以防冲突 */
有些用户系统因为外部扩展了 I/O 或者用片选去选多个 RAM 区,有时与此内部扩展的 EXTRAM
逻辑上有冲突,将此位设置为”1 ”, 禁止访问此内部扩展的 E X T R A M 就可以了.
AUXR 是只写寄存器
所谓只写,就是直接用“M O V A U X R , # d a t a ”去写, 而不要用含读的操作如“或,与,入栈”
因 为 他 不 让 你 读 , 如 去 读 , 读 出 的 数 值 不 确 定 , 用 含 读 的 操 作 如 “ 或 , 与 , 入 栈 ”, 会 达 不 到
需要的效果。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 1 2
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
中断
RC/RD+ 系列 8051 单片机 中断 特殊功能寄存器 Interrupt SFRs
Mnemonic Add
Name
7
6
5
4
3
2
1
0
Reset Value
IE
A8h
Interrupt Enable
EA
-
ET2
ES
ET1
EX1
ET0
EX0
0000,0000
IP
B8h
Interrupt Priority Low
-
-
PT2
PS
PT1
PX1
PT0
PX0
xx00,0000
IPH
B7h
Interrupt Priority High
PX3H PX2H PT2H PSH PT1H PX1H PT0H PX0H 0000,0000
XICON
C0h
Auxiliary Interrupt Control
PX3
EX3
IE3
IT3 PX2
EX2
IE2
IT2
0000,0000
中断与普通 8052 完全兼容,优先级可设为 4 级,另增加 2 个外部中断 INT2/P4.3,
INT3/P4.2。
Interrupt
Source
中断源
Vector
Address
中断
向量地址
Polling
Sequence
中断
查询次序
中断
优先级设置
优先级0
最低
优先级1
优先级2
Interrupt
优先级3
Request
最高
中断请求
/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
Timer 2
002BH
5
PT2H,PT2
0,0
0,1
1,0
1,1
TF2 + EXF2
/INT2
0033H
6
PX2H,PX2
0,0
0,1
1,0
1,1
IE2
/INT3
003BH
7(最低)
PX3H,PX3
0,0
0,1
1,0
1,1
IE3
Name Function
PX3
External interrupt 3 priority high if set
EX3
External interrupt 3 enable if set
IE3
IE3 is set/cleared automatically by hardware when interrupt is detected/serviced
IT3
External interrupt 3 is falling-edge/low-level triggered when this bit is set/cleared by software
PX2
External interrupt 2 priority high if set
EX2
External interrupt 2 enable if set
IE2
IE2 is set/cleared automatically by hardware when interrupt is detected/serviced
IT2
External interrupt 2 is falling-edge/low-level triggered when this bit is set/cleared by software
PXH3 External interrupt 3 priority highest if set
PXH2 External interrupt 2 priority highest if set
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 1 3
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
降低单片机对系统的电磁干扰 (EMI)---
1.
三大措施
禁止 A L E 信号输出,适用型号:
STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC
STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
STC89LE516AD / X2 系列 (注:此系列单片机无 EXTRAM 控制位)
RC/RD+ 系列 8051 单片机 扩展 RAM 管理及禁止 ALE 输出 特殊功能寄存器
Mnemonic Add Name
AUXR
只写
7
6
5
4
3
2
1
0
Reset value
8Eh Auxiliary Register 0 -
-
-
-
-
-
EXTRAM ALEOFF xxxx,xx00
禁止 ALE 信号输出(应用示例供参考,C 语言):
sfr
AUXR =
0x8e;
/* 声明 AUXR 寄存器的地址 */
AUXR =
0x01;
/* ALEOFF位置1,禁止ALE信号输出,提升系统的EMI性能,复位后为0,ALE信号正常输出 */
禁止 ALE 信号输出(应用示例供参考,汇编语言):
AUXR EQU
MOV
8Eh
;
或
AUXR DATA 8Eh
AUXR, #00000001B; ALEOFF 位置“1”,禁止 ALE 信号输出,提升了系统的 EMI 性能
2. 外部时钟频率降一半,6T 模式: 传统的 8051 为每个机器周期 12 时钟,如将 STC 的增强型
8051 单片机在 ISP 烧录程序时设为双倍速(及 6T 模式,每个机器周期 6 时钟)
,则可将单片机外部时钟
频率降低一半,有效的降低单片机时钟对外界的干扰
3. 单片机内部时钟振荡器增益降低一半: 在 ISP 烧录程序时将 OSCDN 设为 1/2 gain 可以
有效的降低单片机时钟高频部分对外界的辐射,但此时外部晶振频率尽量不要高于 24MHz。
P4 口
RC/RD+ 系列 8051 单片机 I/O 口 特殊功能寄存器 Port SFRs
Mnemonic
Add
Name
7
0
Reset Value
P0
80h
8-bit Port 0
P0.7 P0.6
P0.5 P0.4 P0.3 P0.2 P0.1
P0.0
1111,1111
P1
90h
8-bit Port 1
P1.7 P1.6
P1.5 P1.4 P1.3 P1.2 P1.1
P1.0
1111,1111
P2
A0h
8-bit Port 2
P2.7 P2.6
P2.5 P2.4 P2.3 P2.2 P2.1
P2.0
1111,1111
P3
B0h
8-bit Port 3
P3.7 P3.6
P3.5 P3.4 P3.3 P3.2 P3.1
P3.0
1111,1111
P4
E8h
4-bit Port 4
-
-
P4.0
xxxx,1111
汇编语言:
P4
MOV
MOV
ORL
ANL
MOV
DATA
A,
P4,
P4,
P4,
P4,
6
-
5
4
-
3
2
1
P4.3 P4.2 P4.1
0E8H ;
or P4 EQU 0E8H
P4 ;
Read P4 status to Accumulator.
#0AH ;
Output data “A”through P4.0 - P4.3
#00000001B ; P4.0 = 1
#11111110B ; P4.0 = 0
#0AH ;
Output data “A”through P4.0 - P4.3
C 语言:
sfr
P4
=
0xe8;
C 语言中声明 P4 口特殊功能寄存器地址
注:STC89LE516AD,STC89LE516X2,STC89LE58AD,STC89LE54AD 的 P4 口地址在 C0h。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 1 4
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
双数据指针 DPTR0,DPTR1 的使用
适用型号:
STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC
STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
STC89LE516AD,STC89LE516X2
RC/RD+/AD/X2 系列 8051 单片机 双数据指针 特殊功能寄存器
Mnemonic Add Name
AUXR1
7
6
5
4
3
2
1
0
Reset value
A2h Auxiliary Register 1 -
-
-
-
GF2 -
-
DPS xxxx,0xx0
Symbol 符号 Function 功能
GF2
General purpose user-defined flag. 通用功能用户自定义位
DPS
DPTR registers select bit. DPTR 寄存器选择位
0: DPTR0 is selected DPTR0 被选择
1: DPTR1 is selected DPTR1 被选择
此系列单片机有两个 16-bit 数椐指针,DPTR0,DPTR1.当 DPS 选择位为 0 时,选择 DPTR0, 当 DPS 选
择位为 1 时,选择 DPTR1.
AUXR1 特殊功能寄存器,位于 A2H 单元,其中的位不可用布尔指令快速访问.但由于 DPS 位位于 bit0,
故对 AUXR1 寄存器用INC 指令,DPS 位便会反转,由 0 变成1 或由1 变成0,即可实现双数椐指针的快速切换.
应用示例供参考:
;新增特殊功能寄存器定义
AUXR1
DATA
0A2H
MOV
AUXR1, #0
;此时 DPS 为 0,DPTR0 有效
MOV
DPTR,
#1FFH
;置 DPTR0 为 1FFH
MOV
A,
#55H
MOVX
@DPTR, A
;将 1FFH 单元置为 55H
MOV
DPTR,
#2FFH
; 置 DPTR0 为 2FFH
MOV
A,
#0AAH
MOVX
@DPTR, A
;将 2FFH 单元置为 0AAH
INC
AUXR1
; 此时 DPS 为 1,DPTR1 有效
MOV
DPTR,
#1FFH
; 置 DPTR1 为 1FFH
MOVX
A,
@DPTR
; 读 DPTR1 数椐指针指向的 1FFH 单元的内容,累加器 A 变为 55H.
INC
AUXR1
MOVX
A,
INC
AUXR1
MOVX
A,
INC
AUXR1
MOVX
A,
; 此时 DPS 为 0,DPTR0 有效
@DPTR
; 读 DPTR0 数椐指针指向的 2FFH 单元的内容,累加器 A 变为 0AAH.
; 此时 DPS 为 1,DPTR1 有效
@DPTR
; 读 DPTR1 数椐指针指向的 1FFH 单元的内容,累加器 A 变为 55H.
; 此时 DPS 为 0,DPTR0 有效
@DPTR
; 读 DPTR0 数椐指针指向的 2FFH 单元的内容,累加器 A 变为 0AAH.
结论: 与 Philips 使用方式一致
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 1 5
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
看门狗应用
适用型号:
STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC
STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
宏晶技术支持,请直接向宏晶采购晶片,而不要通过中间商,支持我们更好地服务
RC/RD+ 系列 8051 单片机 看门狗定时器 特殊功能寄存器 Watch Dog Timer SFR
Mnemonic
Add
WDT_CONTR E1h
Name
7
6
5
4
3
2
1
0
Reset Value
Watch-Dog-Timer
Control register
-
-
EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
Symbol 符号 Function 功能
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 ”此位。
IDLE_WDT
When set, WDT is enabled in IDLE mode. When clear, WDT is disabled in IDLE mode
看门狗“I D L E ”模式位, 当设置为“1 ”时, 看门狗定时器在“空闲模式”计数
当清“0”该位时, 看门狗定时器在“空闲模式”时不计数
PS2, PS1, PS0 Pre-scale value of Watchdog timer is shown as the bellowed table:
看门狗定时器预分频值,如下表所示
PS2
PS1
PS0
Pre-scale
预 分 频
WDT Period @20MHz
and 12 clocks mode
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 看门狗溢出时间计算
看门狗溢出时间 = (N x Pre-scale x 32768) / Oscillator frequency
N = 12, 当在 12 clock mode 时, N = 6, 当在 6 clock mode 时
设时钟为 12MHz, 12 时钟模式
看门狗溢出时间 = (12 x Pre-scale x 32768) / 12000000 = Pre-scale x 393216 / 12000000
PS2
PS1
PS0
Pre-scale
预 分 频
WDT Period @12MHz
and 12 clocks mode
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 STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 1 6
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
设时钟为 11.0592MHz, 12 时钟模式
看门狗溢出时间 = (12 x Pre-scale x 32768) / 11059200 = Pre-scale x 393216 / 11059200
PS2
PS1
PS0
Pre-scale
预分频
WDT Period @11.0592MHz
and 12 clocks mode
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
0E1H ; 或者 WDT_CONTR
EQU 0E1H
;复位入口
ORG
0000H
LJMP
Initial
…
ORG
0060H
Initial:
MOV
WDT_CONTR, #00110100B; Load initial value 看门狗定时器控制寄存器初始化
; EN_WDT = 1, CLR_WDT = 1, IDLE_WDT = 0, PS2 = 1, PS1 = 0, PS0 = 0
…
Main_Loop:
LCALL
Display_Loop
LCALL
Keyboard_Loop
…
MOV
WDT_CONTR, #00110100B ; 喂狗, 不要用 ORL WDT_CONTR, #00010000B
…
LJMP
Main_Loop
C 语言程序示例
#include<reg52.h>
sfr
WDT_CONTR
=
0xe1;
=
0x34;
void main()
{ …
while(1){
WDT_CONTR
/* 0011,0100 EN_WDT = 1,CLR_WDT = 1, IDLE_WDT = 0, PS2 = 1, PS1 = 0, PS0 = 0 */
display();
keyboard();
…
WDT_CONTR
=
0x34; /* 喂狗, 不要用 WDT_CONTR =
WDT_CONTR | 0x10;*/
}
}
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 1 7
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC 89C51RC/RD+ 系列单片机在系统可编程的使用
--- 将用户代码下载进单片机内部,不用编程器
STC 单片机在线编程线路, STC
RS-232 转换器
PC / 电脑 串口
STC232, STC3232
1 C1+
0.1uF
2
GND 15
3 C1-
T1OUT 14
3
Gnd
PC_RxD (COM Pin2)
4 C2+
R1IN 13
5 C2-
R1OUT 12
6
V-
7
T2OUT
8
R2IN
0.1uF
5
PC_TxD (COM Pin3)
T1IN 11
T2IN 10
R2OUT 9
PC / 电脑 串口
1
C1+
Vcc 16
Vcc
2
V+
GND 15
Gnd
3
C1-
T1OUT 14
C2+
R1IN 13
P3.0
5
C2-
R1OUT 12
P3.1
6
V-
89C52RC
89C58RD+
89LE52RC
89LE516RD+
2
3
PC_RxD (COM Pin2)
4
MCU_RxD (P3.0)
MCU_TxD (P3.1)
RS-232 转换器
STC232, STC3232
2
Vcc
Vcc 16
V+
STC 单片机在线编程线路, STC
MCU_RxD (P3.0)
P3.0
MCU_TxD (P3.1)
7
T2OUT
8
R2IN
T1IN 11
T2IN 10
R2OUT 9
5
PC_TxD (COM Pin3)
P3.1
89LE516AD
89LE516X2
P1.0
P1.1
上面左图适用如下型号:
STC89C51RC, STC89C52RC, STC89C53RC
STC89LE51RC,STC89LE52RC,STC89LE53RC
STC89C54RD+,STC89C58RD+,STC89C516RD+
STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
STC89C516RD,STC89C58RD
(老产品,不要选)
STC89LV516RD,STC89LV58RD ( 老 产 品 , 不 要 选 )
上面右图适用如下型号:
STC89LE516AD, STC89LE516X2, STC89LE58AD,
STC89LE54AD, STC89LE52AD
S T C 8 9 系列单片机大部分具有在系统可编程(I S P )特性,I S P 的好处是:省去购买通用编程
器,单片机在用户系统上即可下载 / 烧录用户程序,而无须将单片机从已生产好的产品上拆下,再
用通用编程器将程序代码烧录进单片机内部。有些程序尚未定型的产品可以一边生产,一边完善,加
快了产品进入市场的速度,减小了新产品由于软件缺陷带来的风险。由于可以将程序直接下载进单片
机看运行结果故也可以不用仿真器。
大部分 STC89 系列单片机在销售给用户之前已在单片机内部固化有 ISP 系统引导程序,配合 PC 端
的控制程序即可将用户的程序代码下载进单片机内部,故无须编程器(速度比通用编程器快)。不要用通
用编程器编程,否则有可能将单片机内部已固化的 ISP 系统引导程序擦除,造成无法使用 STC 提供的 ISP
软件下载用户的程序代码。
如何获得及使用 STC 提供的 ISP 下载工具(STC-ISP.exe 软件):
(1). 获得 STC 提供的 ISP 下载工具(软件)
登陆 www.MCU-Memory.com 网站,从 STC 半导体专栏下载 PC(电脑)端的 ISP 程序,然
后将其自解压,再安装即可(执行 setup.exe)
,注意随时更新软件。
(2). 使用 STC-ISP 下载工具(软件)
,请随时更新,目前已到 Ver2.5 / 2.9 版本(2005/2/2),支持
*.Hex(Intel 16 进制格式)文件,RC/RD+ 系列单片机的底层软件版本为 Ver2.7C(旧版可更换)。
请谁时注意升级 PC(电脑)端的 ISP 程序,现 Ver2.5 是正式版,Ver2.9 测试版欢迎测试。
单片机的底层软件版本为 Ver2.7C 的单片机,PC(电脑)端的 ISP 程序必须是 Ver2.5 以上
(3).已经固化有ISP引导码,并设置为上电复位进入ISP的STC89C51RC/RD+系列单片机出厂
时就已完全加密,需要单片机内部的电放光后上电复位(冷起动)才运行系统 ISP 程序。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 1 8
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
第一次调文件进缓冲区,
要清缓冲区 。
要调几个文件进缓冲区,
一次同时烧录进单片机,
除每次均要指定缓冲区起
始地址外,第二次及以后
不能清缓冲区
用户根据需要限制最大通
信波特率
5V 单片机,24MHz 以下
3V 单片机,16MHz 以下
选择1/2 gain,指外部晶振
大批量生产时使用
Step1/ 步骤 1:选择你所使用的单片机型号,如 STC89C58RD+, STC89LE516AD 等
S t e p 2 / 步骤 2 :打开文件,要烧录用户程序,必须调入用户的程序代码(* . b i n , * . h e x )
Step3/ 步骤 3:选择串行口,你所使用的电脑串口,如串行口 1--COM1, 串行口 2--COM2,...
有些新式笔记本电脑没有 RS-232 串行口,可买一条 USB-RS232 转接器,人民币 70 元左右。
Step4/ 步骤 4:设置是否双倍速,双倍速选中 Double Speed 即可
STC89C51RC / RD+ 系列可以反复设置 双倍速 / 单倍速
STC89LE516AD 为单倍速,STC89LE516X2 为双倍速,用户自己无法指定 双倍速 / 单倍速
STC89C516RD 系列出厂时为单倍速,用户可指定设为双倍速,如想从双倍速恢复成单倍
速,则需用通用编程器擦除整个晶片方可,这会将单片机内部已烧录的
I S P 引导程序擦除。一般使用缺省设置即可,无须设置。
OSCDN: 单片机时钟振荡器增益降一半
选 1/2 gain 为降一半,降低 EMI;选 full gain(全增益)为正常状态。
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). P1.0, P1.1 = 0, 0 ;上电复位进入 ISP 模式,下载完后释放 P1.0,P1.1, 89LE516AD/X2 运行用
户程序.
STC89C51RC/RD+,STC89LE51RC/RD+ 系列单片机不需要 P1.0,P1.1 = 0,0
STC89LE516AD,STC89LE516X2,STC89LE58AD,STC89LE54AD 需要 P1.0,P1.1 = 0,0
(5). RS-232 转换器可选用 SP232/MAX232(4.5-5.5V),SP3232/MAX3232(3V-5.5V).
SP232/MAX232 尽量选用 SOP 封装(窄体,SP232EEN),SP3232 尽量选用 SSOP 封装(SP3232EEA)
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
如用户系统没有 R S - 2 3 2 接口,
可使用 STC-ISP Ver 2.0B.PCB 演示板作为编程工具
STC-ISP Ver 2.0B PCB 板可完成下载 / 烧录用户程序的功能。
在 STC-ISP Ver 2.0B PCB 板完成下载 / 烧录:
关于硬件连接:
(1.) 根据单片机的工作电压选择单片机电源电压
A. 5V 单片机,短接 JP1 的 MCU-VCC, 5V 电源管脚
B.3V 单片机,短接 JP1 的 MCU-VCC, 3.3V 电源管脚
(2.) 根据单片机的工作电压选择复位信号
A. 5V 单片机,短接 JP2 的 MCU-RST, 5V/MCU-RST 信号管脚
B. 3.3V 单片机,短接 JP2 的 MCU-RST, 3.3V/MCU-RST 信号管脚
(3.)连接线(宏晶提供)
A. 将一端有 9 芯连接座的插头插入 PC/ 电脑 RS-232 串行接口插座用于通信
B. 将同一端的 USB 插头插入 PC/ 电脑 USB 接口用于取电
C. 将只有一个 USB 插头的一端插入宏晶的 STC-ISP Ver 2.0B PCB 板 USB1 插座用于 RS-232 通
信和供电,此时 +5V Power 灯亮(D10,USB 接口有电)
(4.)其他插座不需连接
(5.)SW1 开关处于非按下状态,此时 MCU-VCC Power 灯不亮(D9), 没有给单片机通电
(6.)SW3 开关
处于非按下状态,P1.0, P1.1 = 1, 1,不短接到地。
适用于:STC89C51RC / RD+, /RD 系列单片机
处于按下状态, P1.0, P1.1 = 0, 0,短接到地。
适用于:STC89LE516AD, STC89LE58AD, STC89LE54AD, STC89LE516X2
(7.)将单片机插进 U1-Socket 锁紧座,锁紧单片机
(8.)关于软件:选择“Download/ 下载”
( 必须在给单片机上电之前让 PC 先发一串合法下载命令)
(9.)按下 SW1 开关,给单片机上电复位, 此时 MCU-VCC Power 灯亮(D9)
此时 STC 单片机进入 ISP 模式(STC89C51RC/RD+ 系列冷启动进入 ISP)
(10.)下载成功后,再按 SW1 开关,此时 SW1 开关处于非按下状态,MCU-VCC Power 灯不亮(D9),
给单片机断电,取下单片机。
利用 STC-ISP Ver 2.0B PCB 板进行 RS-232 转换
单片机在用户自己的板上完成下载 / 烧录:
1.U1-Socket 锁紧座不得插入单片机
2.将用户系统上的电源(MCU-VCC,GND)及单片机的 P3.0/RXD,P3.1/TXD 接入转换板 CN2 插座
这样用户系统上的单片机就具备了与 PC/ 电脑进行通信的能力
3. 将用户系统的单片机的 P1.0,P1.1 接入转换板 CN2 插座(仅 STC89LE516AD/X2 系列需要)
4.
SW3 开关处于按下状态,P1.0, P1.1 = 0, 0,短接到地。仅 STC89LE516AD/X2 系列需要
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 STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 2 0
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC89C51 RC / RD+ 系列 ISP / IAP 应用
STC89C51 RC / RD+ 系列 内部 EEPROM 的应用
-- 利用 IAP 技术可实现 EEPROM,内部 Flash 擦写次数为 100,000 次以上
RC/RD+ 系列 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
-
-
-
- - MS2 MS1 MS0 xxxx,x000
xxxx,xxxx
ISPEN SWBS SWRST - - WT2 WT1 WT0 000x,x000
ISP_DATA:
ISP/IAP 操作时的数据寄存器。
ISP/IAP 从 Flash 读出的数据放在此处,向 Flash 写的数据也需放在此处
ISP_ADDRH:
ISP/IAP 操作时的地址寄存器高八位。
ISP_ADDRL:
ISP/IAP 操作时的地址寄存器低八位。
ISP_CMD:
ISP/IAP 操作时的命令模式寄存器,须命令触发寄存器触发方可生效。
B7
B6
B5
B4
B3
保留
B2 B 1 B 0 命 令 / 操 作 模 式 选 择
命令 选择
-
-
-
-
-
0
0
0
S t a n d b y 待 机 模 式 , 无 I S P操 作
-
-
-
-
-
0
0
1
AP-Flash / Data-Flash Read
对 用 户 的 应 用 程 序 F l a s h 区 及 数 据 F l a s h区 字 节 读
-
-
-
-
-
0
1
0
AP-Flash / Data-Flash Program
对 用 户 的 应 用 程 序 F l a s h 区 及 数 据 F l a s h区 字 节 编 程
-
-
-
-
-
0
1
1
AP-Flash / Data-Flash Sector Erase
对 用 户 的 应 用 程 序 F l a s h 区 及 数 据 F l a s h区 扇 区 擦 除
;5V 单片机,应在 3.6V 以下时让其复位,3V 单片机,应在 2.4V 以下时让其复位
;在此电压以下,此时再用 ISP/IAP 功能,编程 / 擦除 Flash,不能保证能达到要求
;复位电路可选 MAX810,STC810,STC6345,STC6344,813L,706P 等
程序在系统ISP程序区时可以对用户应用程序区/数据Flash区(EEPROM)进行字节读/
字节编程 / 扇区擦除;程序在用户应用程序区时,仅可以对数据 Flash 区(EEPROM)进行字
节读 / 字节编程 / 扇区擦除。已经固化有 I S P 引导码, 并设置为上电复位进入 I S P 的
STC89C51RC/RD+ 系列单片机出厂时就已完全加密。
ISP_TRIG:
ISP/IAP 操作时的命令触发寄存器。
在 ISPEN(ISP_CONTR.7) = 1 时,对 ISP_TRIG 先写入 46h,再写入 B9h,
ISP/IAP 命令才会生效。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 2 1
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
ISP_CONTR:
B7
ISP/IAP 控制寄存器。
B4
B3
B2
B1
B0
ISPEN SWBS SWRST -
-
WT2
WT1
WT0 000x,x000
ISPEN:
SWBS:
SWRST:
B6
B5
Reset Value
ISP/IAP 功能允许位。0:禁止 ISP/IAP 编程改变 Flash,1:允许编程改变 Flash
软件选择从用户主程序区启动(0 ),还是从 I S P 程序区启动(1 )。
0: 不操作; 1 : 产生软件系统复位,硬件自动清零。
设置等待时间 CPU 等待时间(机器周期)
WT2 WT1 WT0 Read
Program Sector Erase Recommended System Clock
0
1
1
6
30
5471
5MHz
0
1
0
11
60
10942
10MHz
0
0
1
22
120
21885
20MHz
0
0
0
43
240
43769
40MHz
STC89C51RC/RD+ 系列内部可用 Data Flash(EEPROM)的地址(与程序空间是分开的):
有网友来电说不能 IAP 写数据,后检查原来他把地址指向了程序区,被单片机忽略
程序在用户应用程序区(AP 区)时,仅可以对 Data Flash(EEPROM)进行 IAP/ISP 操作,不可以
修改自身,这是系统可靠的基础。
STC89C51RC,STC89LE51RC 单片机内部可用 Data Flash(EEPROM)的地址:
第一扇区
第二扇区
第三扇区
第四扇区
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
1000h
11FFh
1200h
13FFh
1400h
15FFh
1600h
17FFh
第五扇区
第六扇区
第七扇区
第八扇区
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
1800h
19FFh
1A00h
1BFFh
1C00h
1DFFh
1E00h
1FFFh
每个
扇区
512
字节
建议
只用
128
字节
以下
STC89C52RC,STC89LE52RC 单片机内部可用 Data Flash(EEPROM)的地址:
第一扇区
第二扇区
第三扇区
第四扇区
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
2000h
21FFh
2200h
23FFh
2400h
25FFh
2600h
27FFh
第五扇区
第六扇区
第七扇区
第八扇区
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
2800h
29FFh
2A00h
2BFFh
2C00h
2DFFh
2E00h
2FFFh
每个
扇区
512
字节
建议
只用
128
字节
以下
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 2 2
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC89C54RD+,STC89LE54RD+ 单片机内部可用 Data Flash(EEPROM)的地址:
第 一 扇 区
第 二 扇 区
第 三 扇 区
第 四 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
4000h
41FFh
4200h
43FFh
4400h
45FFh
4600h
47FFh
第 五 扇 区
第 六 扇 区
第 七 扇 区
第 八 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
4800h
49FFh
4A00h
4BFFh
4C00h
4DFFh
4E00h
4FFFh
第 九 扇 区
第 十 扇 区
第 十 一 扇 区
第 十 二 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
5000h
51FFh
5200h
53FFh
5400h
55FFh
5600h
57FFh
第 十 三 扇 区
第 十 四 扇 区
第 十 五 扇 区
第 十 六 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
5800h
59FFh
5A00h
5BFFh
5C00h
5DFFh
5E00h
5FFFh
第 十 七 扇 区
第 十 八 扇 区
第 十 九 扇 区
第 二 十 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
6000h
61FFh
6200h
63FFh
6400h
65FFh
6600h
67FFh
第 二 十 一 扇 区
第 二 十 二 扇 区
第 二 十 三 扇 区
第 二 十 四 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
6800h
69FFh
6A00h
6BFFh
6C00h
6DFFh
6E00h
6FFFH
第 二 十 五 扇 区
第 二 十 六 扇 区
第 二 十 七 扇 区
第 二 十 八 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
7000h
71FFh
7200h
73FFh
7400h
75FFh
7600h
77FFH
第 二 十 九 扇 区
第 三 十 扇 区
第 三 十 一 扇 区
第 三 十 二 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
7800h
79FFh
7A00h
7BFFh
7C00h
7DFFh
7E00h
7FFFH
第 三 十 三 扇 区
第 三 十 四 扇 区
第 三 十 五 扇 区
第 三 十 六 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
8000h
81FFh
8200h
83FFh
8400h
85FFh
8600h
87FFH
第 三 十 七 扇 区
第 三 十 八 扇 区
第 三 十 九 扇 区
第 四 十 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
8800h
89FFh
8A00h
8BFFh
8C00h
8DFFh
8E00h
8FFFH
第 四 十 一 扇 区
第 四 十 二 扇 区
第 四 十 三 扇 区
第 四 十 四 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
9000h
91FFh
9200h
93FFh
9400h
95FFh
9600h
97FFH
第 四 十 五 扇 区
第 四 十 六 扇 区
第 四 十 七 扇 区
第 四 十 八 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
9800h
99FFh
9A00h
9BFFh
9C00h
9DFFh
9E00h
9FFFH
第 四 十 九 扇 区
第 五 十 扇 区
第 五 十 一 扇 区
第 五 十 二 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
A000h
A1FFh
A200h
A3FFh
A400h
A5FFh
A600h
A7FFH
第 五 十 三 扇 区
第 五 十 四 扇 区
第 五 十 五 扇 区
第 五 十 六 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
A800h
A9FFh
AA00h
ABFFh
AC00h
ADFFh
AE00h
AFFFH
第 五 十 七 扇 区
第 五 十 八 扇 区
第 五 十 九 扇 区
第 六 十 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
B000h
B1FFh
B200h
B3FFh
B400h
B5FFh
B600h
B7FFH
第 六 十 一 扇 区
第 六 十 二 扇 区
第 六 十 三 扇 区
第 六 十 四 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
B800h
B9FFh
BA00h
BBFFh
BC00h
BDFFh
BE00h
BFFFH
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 2 3
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC89C58RD+,STC89LE58RD+ 单片机内部可用 Data Flash(EEPROM)的地址:
第 一 扇 区
第 二 扇 区
第 三 扇 区
第 四 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
8000h
81FFh
8200h
83FFh
8400h
85FFh
8600h
87FFh
第 五 扇 区
第 六 扇 区
第 七 扇 区
第 八 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
8800h
89FFh
8A00h
8BFFh
8C00h
8DFFh
8E00h
8FFFh
第 九 扇 区
第 十 扇 区
第 十 一 扇 区
第 十 二 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
9000h
91FFh
9200h
93FFh
9400h
95FFh
9600h
97FFh
第 十 三 扇 区
第 十 四 扇 区
第 十 五 扇 区
第 十 六 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
9800h
99FFh
9A00h
9BFFh
9C00h
9DFFh
9E00h
9FFFh
第 十 七 扇 区
第 十 八 扇 区
第 十 九 扇 区
第 二 十 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
A000h
A1FFh
A200h
A3FFh
A400h
A5FFh
A600h
A7FFh
第 二 十 一 扇 区
第 二 十 二 扇 区
第 二 十 三 扇 区
第 二 十 四 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
A800h
A9FFh
AA00h
ABFFh
AC00h
ADFFh
AE00h
AFFFH
第 二 十 五 扇 区
第 二 十 六 扇 区
第 二 十 七 扇 区
第 二 十 八 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
B000h
B1FFh
B200h
B3FFh
B400h
B5FFh
B600h
B7FFH
第 二 十 九 扇 区
第 三 十 扇 区
第 三 十 一 扇 区
第 三 十 二 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
B800h
B9FFh
BA00h
BBFFh
BC00h
BDFFh
BE00h
BFFFH
第 三 十 三 扇 区
第 三 十 四 扇 区
第 三 十 五 扇 区
第 三 十 六 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
C000h
C1FFh
C200h
C3FFh
C400h
C5FFh
C600h
C7FFH
第 三 十 七 扇 区
第 三 十 八 扇 区
第 三 十 九 扇 区
第 四 十 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
C800h
C9FFh
CA00h
CBFFh
CC00h
CDFFh
CE00h
CFFFH
第 四 十 一 扇 区
第 四 十 二 扇 区
第 四 十 三 扇 区
第 四 十 四 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
D000h
D1FFh
D200h
D3FFh
D400h
D5FFh
D600h
D7FFH
第 四 十 五 扇 区
第 四 十 六 扇 区
第 四 十 七 扇 区
第 四 十 八 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
D800h
D9FFh
DA00h
DBFFh
DC00h
DDFFh
DE00h
DFFFH
第 四 十 九 扇 区
第 五 十 扇 区
第 五 十 一 扇 区
第 五 十 二 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
E000h
E1FFh
E200h
E3FFh
E400h
E5FFh
E600h
E7FFH
第 五 十 三 扇 区
第 五 十 四 扇 区
第 五 十 五 扇 区
第 五 十 六 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
E800h
E9FFh
EA00h
EBFFh
EC00h
EDFFh
EE00h
EFFFH
第 五 十 七 扇 区
第 五 十 八 扇 区
第 五 十 九 扇 区
第 六 十 扇 区
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
起 始 地 址
结 束 地 址
F000h
F1FFh
F200h
F3FFh
F400h
F5FFh
F600h
F7FFH
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
每 个
扇 区
512
字 节
建 议
只 用
128
字 节
以 下
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 2 4
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
STC89C51 RC / RD+ 系列 IAP 应用汇编简介
STC89C51 RC / RD+ 系列 内部 EEPROM 的应用
有网友要求提供汇编示例,请尽量参考已调通的 C 原程序
;用 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
DATA
0E5h;
或 ISP_CMD
EQU
0E5h
ISP_TRIG
DATA
0E6h;
或 ISP_TRIG
EQU
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
;设置等待时间,40MHz 以下 0,20M 以下 1,
;
10MHz 以下 2,5M 以下 3
;字节读
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,
#0FF
;送地址高字节单元为 FF,防止误操作
MOV ISP_ADDRL,
#0FF
;送地址低字节单元为 FF,防止误操作
SETB EA ;
开中断,CPU 处理完 ISP/IAP 动作即可开中断
MOV A,
ISP_DATA ;将读出的数据送往 Acc
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列) 2 5
宏晶科技: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,
#0FF
;送地址高字节单元为 FF,防止误操作
MOV ISP_ADDRL,
#0FF
;送地址低字节单元为 FF,防止误操作
SETB EA
;
开中断,CPU 处理完 ISP/IAP 动作即可开中断
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
26
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
; 扇区擦除,没有字节擦除,只有扇区擦除,5 1 2 字节 / 扇区, 每个扇区建议只用
;1 字节 /2 字节 /3 字节 /4 字节 ---128 字节 /256 字节 /512 字节,用得越少越方便
;如果要对某个扇区进行擦除,而其中有些字节的内容需要保护,则需将其先读到单片机
;内部的 RAM 中保存,再将该扇区擦除,然后再将保存的数据写回该扇区,所以每个扇区
;中用的字节数越少越好,操作起来越灵活越快(每个扇区只用 1-128 字节以内较方便)
MOV ISP_ADDRH,
#SECTOR_FIRST_BYTE_ADDR_HIGH
;送扇区起始地址高字节
MOV ISP_ADDRL,
#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,
#0FF
;送地址高字节单元为 FF,防止误操作
MOV ISP_ADDRL,
#0FF
;送地址低字节单元为 FF,防止误操作
;从用户应用程序区(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,不能保证能达到要求
;复位电路可选 MAX810,STC810,STC6345,STC6344,813L,706P 等
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
27
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 A:
为什么少数用户的普通 8051 程序烧录后,不能运行
1. 增强型的 STC89C58RD+,STC89C52RC 系列单片机内部扩展了 AUX-RAM.
型号
内部扩展RAM
占外部64K数据空间
MOVX @DPTR / xdata
MOVX @Ri / pdata
STC89C51RC
256 字节
0000H - 00FFH
地址>=100H,才访问外部
只访问内部扩展RAM
STC89LE51RC
256 字节
0000H - 00FFH
地址>=100H,才访问外部
只访问内部扩展RAM
STC89C52RC
256 字节
0000H - 00FFH
地址>=100H,才访问外部
只访问内部扩展RAM
STC89LE52RC
256 字节
0000H - 00FFH
地址>=100H,才访问外部
只访问内部扩展RAM
STC89C53RC
256 字节
0000H - 00FFH
地址>=100H,才访问外部
只访问内部扩展RAM
STC89LE53RC
256 字节
0000H - 00FFH
地址>=100H,才访问外部
只访问内部扩展RAM
STC89C54RD+
1024 字节
0000H - 03FFH
地址>=400H,才访问外部
只访问内部扩展RAM
STC89LE54RD+
1024 字节
0000H - 03FFH
地址>=400H,才访问外部
只访问内部扩展RAM
STC89C58RD+
1024 字节
0000H - 03FFH
地址>=400H,才访问外部
只访问内部扩展RAM
STC89LE58RD+
1024 字节
0000H - 03FFH
地址>=400H,才访问外部
只访问内部扩展RAM
STC89C516RD+
1024 字节
0000H - 03FFH
地址>=400H,才访问外部
只访问内部扩展RAM
STC89LE516RD+ 1024 字节
0000H - 03FFH
地址>=400H,才访问外部
只访问内部扩展RAM
STC89LE516AD
256 字节
0000-FFFFH,均访问外部
只访问内部扩展RAM
STC89LE516X2
256 字节
0000-FFFFH,均访问外部
只访问内部扩展RAM
STC89C52RC / STC89C58RD+ 系列
如果用户的单片机 P0 / P2 口是作为普通 I/O 口(输入 / 输出口)用的,无冲突
如果用户的单片机 P0 / P2 口是作为总线扩展用的,外部扩展器件的地址在内部扩展
RAM 之上,无冲突
如果用户的单片机 P0 / P2 口是作为总线扩展用的,访问外部扩展器件的地址在内部扩
展 RAM 的范围内,则访问的是内部扩展的 AUX-RAM,所以有些系统用户要禁止内部扩展 RAM
Mnemonic Add Name
AUXR
7
6
5
4
3
2
1
0
Reset value
8Eh Auxiliary Register 0 -
-
-
-
-
-
EXTRAM ALEOFF xxxx,xx00
将 AUXR 寄存器的 EXTRAM 设为 1,即可禁止内部扩展的 AUX-RAM,使之与标准 8052 一样。
STC89LE516AD / STC89LE516X2 系列 AUXR 寄存器无 EXTRAM 控制位,通过寻址方式区分
,“MOVX @Ri”固定访问内部扩展 RAM,“MOVX, @DPTR”固定访问外部扩展 64K 数据空
间,详见相应部分说明。
2.晶振 / 时钟电路
STC89C52RC / STC89C58RD+ 现系列要求将 XTAL1 管脚接的电容去掉,XTAL2 管脚接的电
容为 47pF,33pF,30pF,详见相应部分说明。
STC89LE516AD / STC89LE516X2 系列 XTAL1 / XTAL2 管脚的电容接 10pF
3.复位电路
电阻 / 电容复位的值为 电阻 = 10k, 电容 = 10uF。如为用外部专用芯片复位,RESET
管脚(复位脚)不要加任何上拉 / 下拉电阻。详见相应部分说明
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
28
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 B:
STC89LE516AD 系列单片机指南
特殊功能寄存器映像 SFR Mapping
STC89LE516AD,STC89LE58AD,STC89LE54AD,STC89LE52AD 为单倍速
因 AD 系列用户 ISP 设不了双倍速,故有一 STC89LE516AD 的双倍速版本(6T)STC89LE516X2
是同一芯片,只是出厂时就设为双倍速了。
Bit
Non Bit Addressable
Addressable
0/8
1/9
2/A
3/B
4/C
5/D
6/E
7/F
F8h
F0h
FFh
B
0000,0000
F7h
E8h
E0h
EFh
ACC
0000,0000
E7h
D8h
DFh
D0h
PSW
0000,0000
C8h
T2CON
0000,0000
C0h
P4
xxxx,1111
B8h
IP
x000,0000
B0h
P3
1111,1111
A8h
IE
0000,0000
A0h
P2
1111,1111
98h
SCON
0000,0000
90h
P1
1111,1111
88h
TCON
0000,0000
TMOD
TL0
TL1
TH0
TH1
AUXR
0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 xxxx,xxx0
80h
P0
1111,1111
SP
DPL
DPH
0000,0111 0000,0000 0000,0000
0/8
1/9
D7h
T2MOD RCAP2L RCAP2H TL2
TH2
xxxx,xx00 0000,0000 0000,0000 0000,0000 0000,0000
CFh
ADC_CONTR ADC_DATA
xxx0,0000 xxxx,xxxx
C7h
SADEN
0000,0000
BFh
IPH
B7h
x000,0000
SADDR
0000,0000
AFh
AUXR1
xxxx,xxx0
A7h
SBUF
xxxx,xxxx
9Fh
P1_ADC_EN
97h
0000,0000
2/A
3/B
8Fh
PCON
87h
0xx1,0000
4/C
5/D
6/E
7/F
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
29
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
A12/P2.4 P0.3/AD3
A11/P2.3 P0.2/AD2
A10/P2.2 P0.1/AD1
A8/P2.0 VDD
A9/P2.1 P0.0/AD0
VSS P1.0/T2/ADC0
P4.0 P4.2
XTAL1 P1.1/T2EX/ADC1
XTAL2 P1.2/ADC2
RD/P3.7 P1.3/ADC3
WR/P3.6 P1.4/ADC4
STC89LE516AD / X2 系列单片机 管脚图
6 5 4 3 2 1 44 43 42 41 40
ADC5/P1.5 7 39 P0.4/AD4
ADC6/P1.6 8 38 P0.5/AD5
ADC7/P1.7 9 37 P0.6/AD6
RST 10 36 P0.7/AD7
RXD/P3.0 11 35 EA
P4.3 12 34 P4.1
TXD/P3.1 13 33 ALE/PROG
PLCC-44
INT0/P3.2 14 32 PSEN
INT1/P3.3 15 31 P2.7/A15
T0/P3.4 16 30 P2.6/A14
T1/P3.5 17 29 P2.5/A13
A12/P2.4 P0.3/AD3
A11/P2.3 P0.2/AD2
A10/P2.2 P0.1/AD1
A8/P2.0 VDD
A9/P2.1 P0.0/AD0
VSS P1.0/T2/ADC0
P4.0 P4.2
XTAL2 P1.2/ADC2
XTAL1 P1.1/T2EX/ADC1
RD/P3.7 P1.3/ADC3
44 43 42 41 40 39 38 37 36 35 34
ADC5/P1.5 1 33 P0.4/AD4
ADC6/P1.6 2 32 P0.5/AD5
ADC7/P1.7 3 31 P0.6/AD6
PQFP-44
DIP-40
ADC0/T2/P1.0 1 40 VCC
ADC1/T2EX/P1.1 2 39 P 0.0/AD0
ADC2/P1.2 3 38 P 0.1/AD1
ADC3/P1.3 4 37 P 0.2/AD2
ADC4/P1.4 5 36 P 0.3/AD3
ADC5/P1.5 6 35 P 0.4/AD4
ADC6/P1.6 7 34 P 0.5/AD5
ADC7/P1.7 8 33 P 0.6/AD6
RST 9 3 2 P0.7/AD7
RXD/P3.0 10 31 EA
TXD/P3.1 1 1 30 ALE/PROG
INT0/P3.2 1 2 29 P SEN
INT1/P3.3 13 28 P 2.7/A15
T0/P3.4 14 27 P 2.6/A14
T1/P3.5 15 26 P2.5/A13
WR/P3.6 16 25 P 2.4/A12
RD/P3.7 17 24 P2.3/A11
XTAL2 18 23 P 2.2/A10
XTAL1 19 22 P2.1/A9
VSS 20 21 P 2.0/A8
WR/P3.6 P1.4/ADC4
18 19 20 21 22 23 24 25 26 27 28
RST 4 30 P0.7/AD7
RXD/P3.0 5 29 EA
P4.3 6 28 P4.1
TXD/P3.1 7 27 ALE/PROG
INT0/P3.2 8 26 PSEN
INT1/P3.3 9 25 P2.7/A15
T0/P3.4 10 24 P2.6/A14
T1/P3.5 11 23 P2.5/A13
12 13 14 15 16 17 18 19 20 21 22
A / D 转换典型应用线路 :
按键扫描
Vcc
工作电压: 3.6V - 2.4V, 可低至 2.4V - 1.9V
10K
I/O 口: P0,P2,P3,P4 口可以承受 5V 输入。
P1 口不要接到 5V 系统,只能接 3.3V 系统.
P4 口: 地址在 C0H, P4.3 - P4.0
A/D 转换在 P1 口, P1.0 - P1.7 八路。
P1.0 - P1.7
A/D
10K
1/2 Vcc
10K
2/3 Vcc
10K
3/4 Vcc
10K
4/5 Vcc
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
1.STC89LE516AD 系列单片机扩展 AUX-RAM 的使用
STC89LE516AD/X2 系列单片机内部的 RAM 为 512 字节(256+256),即扩展了 256 字节的
AUX-RAM,其访问方式为:
汇编语言: (访问内部扩展的 256 字节 AUX-RAM)
MOVX @Ri, A ; 将累加器 A 的值送至 @Ri 指向的单元, i = 0, 1
MOVX A, @Ri ; 将 @Ri 指向的单元的值读到累加器 A, i = 0, 1
STC89LE516AD/X2 系列单片机用“MOVX A, @Ri”,“MOVX A, @Ri”指令访问不到
外部 64K 数据空间。
汇编语言: (访问外部 64K 数据空间)
MOVX @DPTR, A ; 将累加器 A 的值送至 @DPTR 指向的单元
MOVX A, @DPTR ; 将 @DPTR 指向的单元的值读到累加器 A
STC89LE516AD/X2 系列单片机用“MOVX A, @DPTR”,“MOVX A, @DPTR”指令访问
不到内部扩展的 256 字节 AUX-RAM。
C 语言:
用 pdata 声明的变量访问单片机内部扩展的 256 字节 AUX-RAM
用 xdata 声明的变量访问单片机外部 64K 数据空间
2.双数据指针 及 AUXR1 寄存器
AUXR1
A2h Auxiliary Register 1 -
-
-
-
-
-
- DPS xxxx,xxx0
DPS = 0 时选择 DPTR0, DPS = 1 时选择 DPTR1
可以用 “INC AUXR1” 快速切换 DPTR0 / DPTR1
3.禁止 ALE 输出 及 AUXR1 寄存器
AUXR
8Eh Auxiliary Register 0 -
- - -
-
-
-
ALEOFF xxxx,xxx0
ALEOFF = 0, ALE 信号正常输出。
ALEOFF = 1, 禁止 ALE 信号输出。但在访问外部数据空间及外部程序空间时有信号输出。
4.中断 及 中断优先级控制寄存器 IP / IPH
中断与普通 8052 完全兼容,优先级可设为 4 级,通过增加的 IPH 寄存器
Mnemonic Add
Name
7
6
5
4
3
2
1
0
Reset Value
IE
A8h
Interrupt Enable
EA
-
ET2
ES
ET1
EX1
ET0
EX0
0000,0000
IP
B8h
Interrupt Priority Low
-
-
PT2
PS
PT1
PX1
PT0
PX0
xx00,0000
IPH
B7h
Interrupt Priority High
-
-
PT2H PSH PT1H PX1H PT0H PX0H xx00,0000
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
Interrupt
Source
中断源
Vector
Address
中断
向量地址
Polling
Interrupt
优先级3
优先级0
Sequence 中断
Request
优先级1 优先级2
最高
优先级设置 最低
中断
中断请求
查询次序
/INT0
0003H
1
PX0H,PX0
0,0
0,1
1,0
1,1
IE0
Timer 0
000BH
2
PT0H,PT0
0,0
0,1
1,0
1,1
TF0
/INT1
0013H
3
PX1H,PX1
0,0
0,1
1,0
1,1
IE1
Timer 1
001BH
4
PT1H,PT1
0,0
0,1
1,0
1,1
IF1
UART
0023H
5
PSH, PS
0,0
0,1
1,0
1,1
RI + TI
Timer 2
002BH
6
PT2H,PT2
0,0
0,1
1,0
1,1
TF2 + EXF2
4.A/D 及 A/D转换寄存器 ADC_CONTR/ADC_DATA/P1_ADC_EN
STC89LE516AD/X2 在 P1 口,有 8 位精度的高速 A/D 转换器, P1.7 - P1.0 共 8 路
电压输入型,可做按键扫描,电池电压检测,频谱检测等。1 7 个机器周期可完成一次
转换,时钟在 40MHz 以下时。
Mnemonic
Add
Name
7
P1_ADC_EN 97h
允许P1.x成为A/D口
ADC_P17 ADC_P16 ADC_P15 ADC_P14
ADC_CONTR C5h
A/D 转换控制寄存器
-
-
-
ADC_FLAG ADC_START CHS2
CHS1
CHS0
xxx0,0000
ADC_DATA
A/D 转换结果寄存器
-
-
-
-
-
-
0000,0000
C6h
6
5
4
3
2
ADC_P13
ADC_P12 ADC_P11 ADC_P10 0000,0000
-
1
-
0
Reset Value
P1_ADC_EN 特殊功能寄存器: P1.x 作为 A/D 转换输入通道来用允许特殊功能寄存器
允许P1.x成为A/D口 ADC_P17 ADC_P16 ADC_P15 ADC_P14 ADC_P13 ADC_P12 ADC_P11 ADC_P10 0000,0000
相应位为“1 ”时,对应的 P1.x 口作为 A/D 转换使用,内部上拉电阻自动断开
ADC_CONTR 特殊功能寄存器: A/D 转换控制特殊功能寄存器
A/D 转换控制寄存器 - - -
ADC_FLAG ADC_START CHS2 CHS1 CHS0 xxx0,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。
ADC_DATA 特殊功能寄存器: A/D 转换结果特殊功能寄存器
A/D 转换结果寄存器
-
-
-
-
-
-
-
-
0000,0000
模拟 / 数字转换结果计算公式如下: 结果 = 256 x Vin / Vcc
Vin 为模拟输入通道输入电压,Vcc 为单片机实际工作电压,用单片机工作电压作为模拟参考电压。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
32
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
/* ------------- 宏晶科技 2005/1/5 A/D 转换 C 语言示例 ------------ */
/* ---Mobile: 13922805190, Tel: 0755 - 82908285, Fax: 0755 - 82944243 */
/* ----Website: www.mcu-memory.com Email: support@dsp-memory.com --- */
// ADC DEMO 程序演示 STC89LE516AD/X2 系列 MCU 的 A/D 转换功能。 时钟 11.0592MHz
// 转换结果以 16 进制形式输出到串行口,可以用串行口调试程序观察输出结果。
#include <reg52.H>
#include <intrins.H>
// 定义与 ADC 有关的特殊功能寄存器
sfr
P1_ADC_EN
=
0x97; // A/D 转换功能允许寄存器
sfr
ADC_CONTR
=
0xC5; // A/D 转换控制寄存器
sfr
ADC_DATA
=
0xC6; // A/D 转换结果寄存器
typedef unsigned char INT8U;
typedef unsigned int INT16U;
void delay(INT8U delay_time) // 延时函数
{
INT8U
n;
INT16U
m;
for (n=0; n<delay_time; n++)
{
for (m=0; m<10000; m++);
}
}
void initiate_RS232 (void) // 串口初始化
{
ES = 0; // 禁止串口中断
SCON = 0x50; // 0101,0000 8 位数据位, 无奇偶校验
T2CON = 0x34; // 0011,0100, 由 T2 作为波特率发生器
RCAP2H = 0xFF; // 时钟 11.0592MHz, 9600 波特率
RCAP2L = 0xDB;
ES = 1; // 允许串口中断
}
void Send_Byte(INT8U one_byte) // 发送一个字节
{
TI = 0; // 清零串口发送中断标志
SBUF = one_byte;
while (TI == 0);
TI = 0; // 清零串口发送中断标志
}
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
33
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
INT8U get_AD_result(INT8U channel)
{
INT8U AD_finished
ADC_DATA
=
=
0; // 存储 A/D 转换标志
0;
ADC_CONTR = channel;
// 选择 A/D 当前通道
delay(1);
//使输入电压达到稳定
ADC_CONTR |= 0x08;
//0000,1000 令 ADC_START = 1, 启动 A/D 转换
AD_finished = 0;
while ( AD_finished == 0 )
// 等待 A/D 转换结束
{
AD_finished = (ADC_CONTR & 0x10); //0001,0000, ADC_FLAG ==1 测试 A/D 转换结束否
}
ADC_CONTR &= 0xF7; //1111,0111 令 ADC_START = 0, 关闭 A/D 转换,
return (ADC_DATA);
// 返回 A/D 转换结果
}
void main()
{
initiate_RS232();
P1
=
P1
|
0x63; // 0110,0011,要设置为 A/D 转换的 P1.x 口,先设为高
P1_ADC_EN = 0x63; //0110,0011, P1 的 P1.0,P1.1,P1.5,P1.6 设置为 A/D 转换输入脚
// 断开 P1.0,P1.1,P1.5,P1.6 内部上拉电阻
while(1)
{
Send_Byte(get_AD_result(0)); //P1.0 为 A/D 当前通道, 测量并发送结果
delay(0x200);
Send_Byte(get_AD_result(1)); //P1.1 为 A/D 当前通道, 测量并发送结果
delay(0x200);
Send_Byte(get_AD_result(5)); //P1.5 为 A/D 当前通道, 测量并发送结果
delay(0x200);
Send_Byte(get_AD_result(6)); //P1.6 为 A/D 当前通道, 测量并发送结果
delay(0x200);
Send_Byte(0); // 连续发送 4 个 00H, 便于观察输出显示
Send_Byte(0);
Send_Byte(0);
Send_Byte(0);
delay(0x200); // 延时
delay(0x200);
delay(0x200);
delay(0x200);
delay(0x200);
delay(0x200);
}
}
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
34
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 C:
STC89C51 RC / RD+ 系列 单片机 ISP (DIY)
自己动手写自己的 ISP,写自己的远程升级程序还需了解的信息,只提供给策略性伙伴
用户程序区空间和 ISP 程序区空间:
用户应用程序区
ISP 引 导 区 空 间 (ISP Space),从 ISP区 启 动 MCU才 有 IAP功 能
AP Space 地 址
0 K
1K(保 留 IAP)
2 K(保 留 IAP)
4K(保 留 IAP)
STC89C51RC
0000H - 0FFFH
3800H - 3BFFH
3400H - 3BFFH
2C00H - 3BFFH
STC89LE51RC
0000H - 0FFFH
3800H - 3BFFH
3400H - 3BFFH
2C00H - 3BFFH
STC89C52RC
0000H - 1FFFH
3800H - 3BFFH
3400H - 3BFFH
2C00H - 3BFFH
STC89LE52RC
0000H - 1FFFH
目前
版本
禁止
ISP/
IAP
操作
3800H - 3BFFH
3400H - 3BFFH
2C00H - 3BFFH
型号
用户应用程序区
ISP 引 导 区 空 间 (ISP Space),从 ISP区 启 动 MCU才 有 IAP功 能
AP Space 地 址
0 K
STC89C53RC
0000H - 3BFFH
STC89LE53RC
0000H - 3BFFH
目前版本禁止
ISP/IAP操 作
STC89C53RC
0000H - 37FFH
3800H - 3BFFH
STC89LE53RC
0000H - 37FFH
3800H - 3BFFH
STC89C53RC
0000H - 33FFH
3400H - 3BFFH
STC89LE53RC
0000H - 33FFH
3400H - 3BFFH
STC89C53RC
0000H - 2BFFH
2C00H - 3BFFH
STC89LE53RC
0000H - 2BFFH
2C00H - 3BFFH
型号
1K(保 留 IAP)
2 K(保 留 IAP)
4K(保 留 IAP)
用户应用程序区
ISP 引 导 区 空 间 (ISP Space),从 ISP区 启 动 MCU才 有 IAP功 能
AP Space 地 址
0 K
1K(保 留 IAP)
2 K(保 留 IAP)
4K(保 留 IAP)
STC89C54RD+
0000H - 3FFFH
F800H - FBFFH
F400H - FBFFH
EC00H - FBFFH
STC89LE54RD+
0000H - 3FFFH
F800H - FBFFH
F400H - FBFFH
EC00H - FBFFH
STC89C58RD+
0000H - 7FFFH
F800H - FBFFH
F400H - FBFFH
EC00H - FBFFH
STC89LE58RD+
0000H - 7FFFH
目前
版本
禁止
ISP/
IAP
操作
F800H - FBFFH
F400H - FBFFH
EC00H - FBFFH
型号
用户应用程序区
ISP 引导区空间(ISP Space),从ISP区启动MCU才有IAP功能
AP Space 地址
0 K
STC89C516RD+
0000H - FBFFH
STC89LE516RD+
0000H - FBFFH
目前版本禁止
ISP/IAP操作
STC89C516RD+
0000H - F7FFH
F800H - FBFFH
STC89LE516RD+
0000H - F7FFH
F800H - FBFFH
STC89C516RD+
0000H - F3FFH
F400H - FBFFH
STC89LE516RD+
0000H - F3FFH
F400H - FBFFH
STC89C516RD+
0000H - EBFFH
EC00H - FBFFH
STC89LE516RD+
0000H - EBFFH
EC00H - FBFFH
型号
1K(保留IAP)
2 K(保留IAP)
4K(保留IAP)
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
35
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
动手写自己的 ISP 还必需要的工具,只提供给策略性伙伴
-----STC89C51RC / RD+ 系列单片机专用编程工具(200 元)
STC89C51RC / RD+ 系列单片机出厂时一般都固化有 ISP 引导码程序,如只烧录普通
的用户程序,则只需将P3.0/P3.1经过RS-232转换器连到电脑的RS-232串口,通过STC-ISP
下载软件打开用户程序下载就可以了。如果不用 STC 的 ISP 程序而要编写自己的 ISP 程序,
则需要 STC89C51RC / RD+ 系列单片机专用编程工具,才可将用户的 ISP 程序烧录进单片
机内部,软件使用 STC MCU Programmer 编程工具。
方式一:用户主应用程序和 ISP 程序一起烧录,上电复位后程序从 ISP 区开始运行
一.三个加密项全部加密
二.缓冲区从 0 开始,清
缓冲区调入用户主应用程序
三.选定 ISP 空间从那里开
始,不清缓冲区调入 ISP 程
序,保留已调入的程序,用
户ISP空间可选0/1K/2K/4K
四.选择从 I S P 区启动
五.烧录程序
也可直接调入 ISP 程序至 ISP 区,选择从 ISP 程序区启动,再烧录。用户主应用程序
由用户自己编的 ISP 程序下载。还可以把 ISP 区当成用户程序区,把余下的空间当成 Data
Flash 数据空间。如 STC89C516RD+,4K ISP 区当用户程序使用,余下 59K 当 EEPROM 用。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
36
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
方式二:用户主应用程序和 ISP 程序一起烧录,上电复位后程序从用户主应用程序区
开始运行(但现版本单片机 ISP/IAP 就会无效,只能当成无 ISP/IAP 的单片机使用,故此
法对于写自己的 ISP 程序来说无效)
一.三个加密项全部加密
二.缓冲区从 0 开始,清
缓冲区调入用户主应用程序
三.选定 ISP 空间从那里开
始,不清缓冲区调入用户自
己的 ISP 程序,保留已调入
的程序
四.选择从用户主应用程
序区启动,现版本芯片会无
ISP/IAP 功能,故应设置成
从 ISP 区启动。
五.烧录程序
已加过密的单片机,或已设置过 ISP 空间为 1k/2k/4k,上电复位从 ISP 空间启动的单片机,
重新烧录程序时,要先将整个芯片擦除,再停电(单片机电放光后),再上电,再重烧程序,
才会写对。擦除整个芯片后,重新允许读出芯片内容的状态,是停电再上电后才能生效。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
37
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 D: ISP Demo(演示版)软件(*.hex)及通信协议
www.mcu-memory.com网站上也会提供用户可直接使用的单片机ISP-Demo软件(*.hex),可由
用户直接用 STC 专用编程器烧入即可,在 STC-ISP.exe 软件中选择 “ISP Demo”功能项下
载程序即可。将来的 STC 专用编程器软件将会自带此单片机 ISP 程序功能,格式是偶校验,
8 位数据位,1 位停止位,用户要根据单片机工作时钟,确定用那种合理的波特率。
(说明:出厂时单片机一般都已烧录有标准的 ISP 文件,不过那个协议不公开)
STC89C51RC
STC89LE51RC
115,200 bps
57,600
bps
38,400
bps
19,200
bps
9,600
bps
4,800
bps
2,400
bps
1,200
bps
40MHz
51_40M_
115200.hex
51_40M_
57600.hex
51_40M_
38400.hex
51_40M_
19200.hex
51_40M_
9600.hex
51_40M_
4800.hex
51_40M_
2400.hex
51_40M_
1200.hex
33MHz
51_33M_
115200.hex
51_33M_
57600.hex
51_33M_
38400.hex
51_33M_
19200.hex
51_33M_
9600.hex
51_33M_
4800.hex
51_33M_
2400.hex
51_33M_
1200.hex
27MHz
51_27M_
115200.hex
51_27M_
57600.hex
51_27M_
38400.hex
51_27M_
19200.hex
51_27M_
9600.hex
51_27M_
4800.hex
51_27M_
2400.hex
51_27M_
1200.hex
24MHz
51_24M_
115200.hex
51_24M_
57600.hex
51_24M_
38400.hex
51_24M_
19200.hex
51_24M_
9600.hex
51_24M_
4800.hex
51_24M_
2400.hex
51_24M_
1200.hex
22.1184MHz
51_22.1184M_
115200.hex
51_22.1184M_
57600.hex
51_22.1184M_
38400.hex
51_22.1184M_
19200.hex
51_22.1184M_
9600.hex
51_22.1184M_
4800.hex
51_22.1184M_
2400.hex
51_22.1184M_
1200.hex
20MHz
51_20M_
115200.hex
51_20M_
57600.hex
51_20M_
38400.hex
51_20M_
19200.hex
51_20M_
9600.hex
51_20M_
4800.hex
51_20M_
2400.hex
51_20M_
1200.hex
18.432MHz
51_18.432M_
115200.hex
51_18.432M_
57600.hex
51_18.432M_
38400.hex
51_18.432M_
19200.hex
51_18.432M_
9600.hex
51_18.432M_
4800.hex
51_18.432M_
2400.hex
51_18.432M_
1200.hex
12MHz
51_12M_
115200.hex
51_12M_
57600.hex
51_12M_
38400.hex
51_12M_
19200.hex
51_12M_
9600.hex
51_12M_
4800.hex
51_12M_
2400.hex
51_12M_
1200.hex
11.0592MHz
51_11.0592M_
115200.hex
51_11.0592M_
57600.hex
51_11.0592M_
38400.hex
51_11.0592M_
19200.hex
51_11.0592M_
9600.hex
51_11.0592M_
4800.hex
51_11.0592M_
2400.hex
51_11.0592M_
1200.hex
STC89C52RC
STC89LE52RC
115,200 bps
57,600
bps
38,400
bps
19,200
bps
9,600
bps
4,800
bps
2,400
bps
1,200
bps
40MHz
52_40M_
115200.hex
52_40M_
57600.hex
52_40M_
38400.hex
52_40M_
19200.hex
52_40M_
9600.hex
52_40M_
4800.hex
52_40M_
2400.hex
52_40M_
1200.hex
33MHz
52_33M_
115200.hex
52_33M_
57600.hex
52_33M_
38400.hex
52_33M_
19200.hex
52_33M_
9600.hex
52_33M_
4800.hex
52_33M_
2400.hex
52_33M_
1200.hex
27MHz
52_27M_
115200.hex
52_27M_
57600.hex
52_27M_
38400.hex
52_27M_
19200.hex
52_27M_
9600.hex
52_27M_
4800.hex
52_27M_
2400.hex
52_27M_
1200.hex
24MHz
52_24M_
115200.hex
52_24M_
57600.hex
52_24M_
38400.hex
52_24M_
19200.hex
52_24M_
9600.hex
52_24M_
4800.hex
52_24M_
2400.hex
52_24M_
1200.hex
22.1184MHz
52_22.1184M_
115200.hex
52_22.1184M_
57600.hex
52_22.1184M_
38400.hex
52_22.1184M_
19200.hex
52_22.1184M_
9600.hex
52_22.1184M_
4800.hex
52_22.1184M_
2400.hex
52_22.1184M_
1200.hex
20MHz
52_20M_
115200.hex
52_20M_
57600.hex
52_20M_
38400.hex
52_20M_
19200.hex
52_20M_
9600.hex
52_20M_
4800.hex
52_20M_
2400.hex
52_20M_
1200.hex
18.432MHz
52_18.432M_
115200.hex
52_18.432M_
57600.hex
52_18.432M_
38400.hex
52_18.432M_
19200.hex
52_18.432M_
9600.hex
52_18.432M_
4800.hex
52_18.432M_
2400.hex
52_18.432M_
1200.hex
12MHz
52_12M_
115200.hex
52_12M_
57600.hex
52_12M_
38400.hex
52_12M_
19200.hex
52_12M_
9600.hex
52_12M_
4800.hex
52_12M_
2400.hex
52_12M_
1200.hex
11.0592MHz
52_11.0592M_
115200.hex
52_11.0592M_
57600.hex
52_11.0592M_
38400.hex
52_11.0592M_
19200.hex
52_11.0592M_
9600.hex
52_11.0592M_
4800.hex
52_11.0592M_
2400.hex
52_11.0592M_
1200.hex
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
38
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
; STC ISP DEMO 程序通讯协议
;STC89LE51RC, STC89LE52RC, STC89LE53RC, STC89LE54RD+, STC89LE58RD+, STC89LE516RD+
;STC89C51RC, STC89C52RC, STC89C53RC, STC89C54RD+, STC89C58RD+, STC89C516RD+
;
;1. 功能
; STC ISP DEMO 程序以固定的波特率与上位机(PC 机)通讯,将上位机
; 传来的程序代码或数据烧录到 MCU 的用户应用程序区中(以下简称 AP 区)和
; Data 区。
;
;1.1 应用范围
; 本协议仅适用于 STC89C/LE5xRC 和 STC89C/LE5xxRD+ 系列单片机。
;1.2 使用方法
; 1) 将 STC ISP DEMO 程序烧录到 MCU 的 ISP 区, 并设置为上电复位后从
; ISP 区开始运行。
; 2) 先运行上位机程序,不断地发送问讯帧,然后给 MCU 上电。
; 3) MCU 收到问讯帧后回发问讯应答帧,讯问应答反复 3 次双方连接成功。
; 4) 上位机发送一系列命令,完成下载工作。
; 5) 下载完毕,PC 发送切换命令,MCU 软复位切换到 AP 程序运行。
;
; STC-ISP (2.9 Beta3 版本以上)下载软件提供了 STC ISP DEMO 程序的上位机
; 功能,该软件可到 www.MCU-Memory.COM 网站下载。
; MCU 上电复位后检测串口是否有上位机发来的问讯帧, 若没有就立刻软复位
; 切换到 AP 程序运行。也可以参照 STC 下载软件中 " 用户自定义下载 " 功能,
; 从应用程序软复位切换到 ISP 进行下载,而不是每次都要上电复位(冷启动)
; 进入 ISP 程序。
;
;2. 帧格式。
; 所有的通讯均由 PC 机启动。
;
;2.1 PC 机命令帧格式。
; 5AH 0101,1010 起始字节 1 ---- ------
; A5H 1010,0101 起始字节 2 | |
; len_H 帧长度高字节 | |
; len_L 帧长度低字节 |
; Command 命令字 帧校验和范围 |
; data 0 数据区第 1 字节
; .. | 帧长度范围
; .. |
; .. | |
; data n-1 数据区第 n 字节 ---- |
; check_sum_high 帧校验和高字节 |
; chenk_sum_low 帧校验和低字节 |
; 16H 结束字节 ----------------------------
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
39
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
2.3 帧长度。
; 帧长度范围从起始字节1 至结束字节。
;
;2.4 校验和。
; 从起始字节1开始到校验和之前所有的字节相加。
;
;3.0 PC 命令及 MCU 应答
; 命令 命令代码
;
; 问讯 B0H 1011, 0000
; 软复位切换到用户程序 B1H 1011, 0001
; 擦除 AP、Data flash B2H 1011, 0010
; 写数据到 AP、Data flash B3H 1011, 0011
; 先擦除扇区再写数据 B4H 1011, 0100
; 读固件版本号 B5H 1011, 0101
;
;3.1 问讯帧。
;
;3.1.1 PC 发送问讯帧。
; 序号 内容
; 0 5AH 起始字节 1
; 1 A5H 起始字节 2
; 2 00H 帧长度高字节
; 3 08H 帧长度低字节
; 4 B0H 问讯帧命令字
; 5 01H 校验和高字节 (5AH + A5H + 00H + 08H + B0H = 01B7H)
; 6 B7H 校验和低字节
; 7 16H 结束字节
;
;3.1.2 MCU 回发问讯应答帧。
; 序号 内容
; 0 5AH 起始字节 1
; 1 A5H 起始字节 2
; 2 00H 帧长度高字节
; 3 08H 帧长度低字节
; 4 B0H 问讯应答帧命令字
; 5 01H 校验和高字节 (5AH + A5H + 00H + 08H + B0H = 01B7H)
; 6 B7H 校验和低字节
; 7 16H 结束字节
;
;3.2 结束运行 ISP 程序, 软复位切换到用户程序。
; ISP 程序收到命令后启动软复位,切换到用户程序运行。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
40
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;3.2 结束运行 ISP 程序, 软复位切换到用户程序。
; ISP 程序收到命令后启动软复位,切换到用户程序运行。
;3.2.1 PC 命令
; 序号 内容
; 0 5AH 起始字节 1
; 1 A5H 起始字节 2
; 2 00H 帧长度高字节
; 3 08H 帧长度低字节
; 4 B1H 软复位切换到用户程序命令字
; 5 01H 校验和高字节 (5AH + A5H + 00H + 08H + B1H = 01B8H)
; 6 B8H 校验和低字节
; 7 16H 结束字节
;
;3.2.2 MCU 应答:
; 用 " 问讯应答帧 " 应答, 见 3.1.2 MCU 问讯应答帧。
;
;3.3 擦除应用程序区和数据 Flash 区
;3.3.1 PC 命令:
; 序号 内容
; 0 5AH 起始字节 1
; 1 A5H 起始字节 2
; 2 00H 帧长度高字节
; 3 08H 帧长度低字节
; 4 B2H 擦除应用程序区命令字
; 5 01H 校验和高字节 (5AH + A5H + 00H + 08H + B2H = 01B9H)
; 6 B9H 校验和低字节
; 7 16H 结束字节
;
;3.3.2 MCU 应答:
; 用 " 问讯应答帧 " 应答, 见 3.1.2 MCU 问讯应答帧。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
41
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;3.4 写数据到 flash AP 区
;3.4.1 PC 命令:
; 序号 内容
; 0 5AH 起始字节 1
; 1 A5H 起始字节 2
; 2 00H 帧长度高字节
; 3 xxH 帧长度低字节
; 4 B3H 写数据到 flash 命令字
; 5 00H 保留字节
; 6 00H 保留字节
; 7 address_H 目标首地址高字节
; 8 address_L 目标首地址低字节
; 9 00H 数据块长度高字节。
; 10 xxH 数据块长度低字节
; 每次最多写 128 字节。写完一个 512 字节的扇区需分别
; 发送 4 帧数据。某个扇区一旦写失败,须擦除该扇区后
; 从头再写。
; 11 data 1 数据块第 1 字节
;
; .. ..
;
; xx data n 数据块第 n 字节
; xx xxH 校验和高字节
; xx xxH 校验和低字节
; xx 16H 结束字
;
;3.4.2 MCU 应答:
; 序号 内容
; 0 5AH 起始字节 1
; 1 A5H 起始字节 2
; 2 00H 帧长度高字节
; 3 0AH 帧长度低字节
; 4 B3H 写数据到 flash 命令字
; 5 xxH 数据区校验和高字节,见 3.4.3 写数据到 flash AP 区后的校验
; 6 xxH 数据区校验和低字节,见 3.4.3 写数据到 flash AP 区后的校验
; 7 xxH 帧校验和高字节
; 8 xxH 帧校验和低字节
; 9 16H 结束字节
;
;3.4.3 写数据到 flash AP 区后的校验:
; MCU 把本次接收到的应用程序和数据写入 Flash 后再将它们逐一读出来,计算它们的
; 累加和。累加和的校验区由 2.4.1 的目标首地址和数据块长度指明(PC 命令的 7,8,9,10 字节)
; 累加和为 2 个字节,发回 PC 供其判断写数据正确与否。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
42
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
;3.5 擦除扇区后再写数据到 flash AP 区
; 除了命令字为 B4H 外,其它与写数据到 flash AP 区完全一致。
;
;3.6 读 MCU 代号、固件版本号命令。
;3.6.1 PC 命令:
; 序号 内容
; 0 5AH 起始字节 1
; 1 A5H 起始字节 2
; 2 00H 帧长度高字节
; 3 08H 帧长度低字节
; 4 B5H 读 MCU 代号、固件版本号命令字
; 5 01H 帧校验和高字节
; 6 F9H 帧校验和低字节
; 7 16H 结束字节
;
;3.6.2 MCU 应答:
; 序号 内容
; 0 5AH 起始字节 1
; 1 A5H 起始字节 2
; 2 00H 帧长度高字节
; 3 0CH 帧长度低字节
; 4 B5H 读 MCU 代号、固件版本号命令字
; 5 FIRMWARE_VERSION 固件版本号
; 6 MCU_TYPE_HIGH MCU 代号高字节
; 7 MCU_TYPE_LOW MCU 代号低字节
; 8 xxH 保留字节
; 9 xxH 帧校验和高字节
; 10 xxH 帧校验和低字节
; 11 16H 结束字节
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
43
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录E: 如何实现运行中自定义下载,无仿真器时方便调试
自定义下载原理:STC-ISP.exe 软件
1.STC-ISP.exe 软件,可由用户设置,按 UART/RS-232 的格式向用户程序发送命令
波特率: 38400bps, 19200bps, 9600bps, 4800bps, 2400bps, 1200bps 等
奇偶校验位: 无, 偶校验, 奇校验
数据位几位: 8 位, 7 位,6 位,5 位, 等
停止位几位: 1 位, 1.5 位,2 位,等
2.需向用户程序发送的命令用户可在上图自定义下载命令输入窗口中输入(HEX)
命令之间建议加一个空格,也可不加,STC-ISP.exe 会处理,上例为发送自定义命令
12H,34H,56H,78H,0ABH,0CDH,0EFH, 12H,34H,56H,78H,0ABH,0CDH,0EFH
3.用户程序中应加入收到自定义下载命令,延时一秒,软复位到系统 ISP 程序区的程序
4.将以上含有接收自定义下载命令的用户程序先用老方法下载进 STC 单片机内部:
STC89C51RC,STC89C52RC,STC89C53RC,STC89C54RD+,STC89C58RD+,STC89C516RD+
STC89LE52RC,STC89LE53RC,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
这样以上型号的 STC 单片机就具有了“不停电 / 运行中 / 自定义下载功能”
6 . 以下选好型号,打开文件. . . , 在自定义下载中设置相关选项,选择“发送”即可,
STC-ISP.exe 在“发送”完用
户自定义下载命令后,就会转去
调用老的那一套下载命令,而不
管用户单片机程序收到命令没
有。不过这个转换有些电脑有时
需要将近1S的时间,所以用户应
用程序要延时 1S,否则系统 ISP
程序收不到下载命令,又会回到
用户应用程序。
7 . 调试程序时,还可以在选项
中选择“每次下载前自动重新调
入文件”,这样你每次修改原文
件并从新编译/汇编后生成的*.
hex,*.bin文件就不要再次手工
调入了,生产时不要用。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
44
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录 F: Keil C51 高级语言编程的软件如何减少代码长度
1.在“Project”菜单中选择“Options for Target”
2.在“Options for Target”中选择“C51”
3.选择按空间大小, 9 级优化程序
4 . 重新编译程序即可。
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)
45
宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
附录G:(写给用STC89C51RC/RD+系列单片机做仿真器的朋友)
STC89C51 RC / RD+ 系列 单片机 做仿真器须知
1.对 Flash 的 IAP 字节读 / 字节编程 / 扇区擦除等待机器周期
设置等待时间 CPU 等待时间(机器周期)
WT2 WT1 WT0 Read
Program Sector Erase Recommended System Clock
0
1
1
6
30
5471
5MHz
0
1
0
11
60
10942
10MHz
0
0
1
22
120
21885
20MHz
0
0
0
43
240
43769
40MHz
512Byte/Sector
2.程序在 ISP 区可对用户 AP 区进行 IAP 读 / 编程 / 扇区擦除
3.程序在用户 AP 区不可对 ISP 区进行 IAP 操作。
4.程序在 ISP/AP 区可对 Data Flash 区进行 IAP 操作。
5.可从 ISP 区软复位到 AP 区,也可从 AP 区软复位到 ISP 区。
Mnemonic
Add Name
ISP_DATA
E2h ISP/IAP Flash Data Register
7
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
-
-
-
- - MS2 MS1 MS0 xxxx,x000
xxxx,xxxx
ISPEN SWBS SWRST - - WT2 WT1 WT0 000x,x000
;从用户应用程序区(AP 区)软件复位并切换到 ISP 程序区开始执行程序
MOV ISP_CONTR,
#01100000B
;SWBS = 1(选择 ISP 区), SWRST = 1(软复位)
;从 ISP 程序区软件复位并切换到用户应用程序区(AP 区)开始执行程序
MOV ISP_CONTR,
#00100000B
;SWBS = 0(选择 AP 区), SWRST = 1(软复位)
软复位后所有的寄存器复位,可在软复位前将需保存的 S F R 的值,保存在 R A M 或 D A T A
Flash 中,建议采用 STC89C58RD+ 设计。
STC89C58RD+50-C-PI: 独立 32k 字节用户程序区,独立可选 0/1/2/4k 字节系统 ISP 区。
独立 27k 字节数据 Flash 区
只有选择 1/2/4k 字节 ISP 区,并选择上电复位从 ISP 区启动,晶片 IAP 功能才起作用
工作电压:5.5v - 3.4v, 不要过低,否则工作不了。5V 串 2 个 1N4001 是 3.6V
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC 增强型 8051 单片机中文指南(RC/RD+ 系列)