STC89C51RC, STC89LE51RC
STC89C52RC, STC89LE52RC
STC89C53RC, STC89LE53RC
STC89C54RD+, STC89LE54RD+
STC89C58RD+, STC89LE58RD+
STC89C516RD+,STC89LE516RD+
 STC89C51RC / RD+ 系列单片机中文指南
国内技术支援:宏晶科技(深圳
   www.MCU-Memory.com       support@mcu-memory.com
Update date: 2005-12-24
                        --高速,高可靠
                         ---低功耗超低价
                         ---无法解密
                        --强抗静电,强抗干扰
STC89LE516AD, STC89LE58AD
STC89LE54AD, STC89LE52AD
STC12C2052, STC12C4052
STC12C2052AD, STC12C4052AD
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
STC 89 系列单片机选型一览表  超低价
 新客户请直接联系深圳以获得更好的技术支持和服务
专业单片机存储器供应商
 欢迎海内外厂家前来洽谈合作
技术支持13922805190      网址www.MCU-Memory.com
STC 89 系列单片机高速、高可靠在线编程
        提升的是性能降低的是成本
单倍速和
双倍速可
ISP
反复设置
  Tel0755-82948409   82948410     Fax0755-82944243   82905966
上海办:Tel021-53560136    53560138     Fax021-53080587
北京办:Tel010-62538687     62634001     Fax010-62538683
南京办:Tel025-86893767    86893566     Fax025-86893757
广州办:Tel020-38851405   38850557     Fax020-38850581
P4口地址 0E8H
INT2/P4.3
INT3/P4.2
P4口均可位寻址
A/D(高速)可做
按键扫描
电池电压检测
掉电检测
音量、频谱检测等
4.7
DIP-40PLCC-44PQFP-44封装(RC/RD+ 系列PLCCPQFPP4 口地址E8H,AD系列 P4 口为 C0H)
RC/RD+ 系列PLCCPQFP多两个外部中断P4.2/INT3P4.3/INT2 P4口均可位寻址
5V: 5.5V3.8V 乃至 3.4V24M 以下)3V: 3.6V2.4V 乃至 2.0V,仅针对 RC/RD+ 系列
   真正的看门狗可放心省去外部看门狗缺省为关闭打开后无法关闭单倍速和双倍速可反复设置
   时钟机器周期”和“12 时钟 机器周期”可在ISP 编程时反复设置新的设置冷启动后才生效
 STC89LE516AD58AD54AD52AD51AD系列单片机带高速A/D 转换
关于单片机说明管脚与流行的8051兼容    大客户超低价
在系统可编程无需编程器可远程升级
可送 STC-ISP 下载编程器,1 万片
可供应内部集成 MAX810 专用复位电路的单片机
只有 版本才有内部集成专用复位电路,原复位
电路可以保留也可以不用不用时 RESET 脚直
接短到地
三大降低单片机时钟对外部电磁辐射的措施
     —— 出口欧美的有力保证
禁止ALE 输出
如选时钟 机器周期,外部时钟频率可降一半
单片机时钟振荡器增益可设为1/2gain
超低功耗
掉电模式:        典型功耗    <0.1 μ
空闲模式:      典型功耗   2mA
正常工作模式 典型功耗    4mA - 7mA
掉电模式可由外部中断唤醒适用于电池
    供电系统,如水表、气表、便携设备等
选择STC89C52RC 系列
     STC89C58RD+ 系列单片机的理由
超强抗干扰
高抗静电ESD保护
轻松过2KV/4KV 快速脉冲干扰(EFT测试)
宽电压,不怕电源抖动
宽温度范围,-40℃~85
I/O口经过特殊处理
单片机内部的电源供电系统经过特殊处理
单片机内部的时钟电路经过特殊处理
单片机内部的复位电路经过特殊处理
单片机内部的看门狗电路经过特殊处理
加密性强无法解密
 从网上下载样品申请单,
 传真至深圳申请STC 单片
机样片及 ISP下载线 编程工具
免费索取
 
1280 字节
SRAM
E2PROM
Data Flash
双数据
指针
看门狗
8/16/32/64k
字节
闪存
内置系统
ISP
监控程序
四个 8
并行端口
+
P4.0P4.3
四个附送
I/O
端口
UART(串口
3
个定时器
A / D
不加价
微处理器
低功耗超低价
高速90M), 高可靠
 
  掉电模式< 0.1μ 空闲模式2mA
集成
MAX810
专用复位电路
IAP STC
IAP
8051
P0
P1
P2
P3
P4 (E8H)
另有STC89LE516AD 系列单片机
TXD/P3.1          11               30        ALE/PROG
DIP-40
RST          9                32        P0.7/AD7
P1.3         4                 37        P0.2/AD2
P1.5        6                35        P0.4/AD4
RXD/P3.0         10               31         EA
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
T2/P1.        1                40        VCC
T2EX/P1.1       2                39        P0.0/AD0
P1.2         3                38        P0.1/AD1
P1.4         5                36        P0.3/AD3
P1.6         7                 34        P0.5/AD5
P1.7         8                33        P0.6/AD6
WR/P3.6                                    P1.4
RD/P3.7                                    P1.3
XTAL2                                    P1.2
A12/P2.4                                    P0.3/AD3
A11/P2.3                                    P0.2/AD2
P4.0                                    P4.2/INT3
A8/P2.0                                    VDD
A9/P2.1                                    P0.0/AD0
A10/P2.2                                    P0.1/AD1
XTAL1                                    P1.1/T2EX
VSS                                    P1.0/T2
INT0/P3.2     8                          26     PSEN
INT1/P3.3     9                          25     P2.7/A15
12
T1/P3.5     11                        23     P2.5/A13
T0/P3.4     10                         24     P2.6/A14
 4
TXD/P3.1     7                         27     ALE/PROG
INT2/P4.3     6                          28     P4.1
RXD/P3.0     5                         29     EA
RST     4                          30     P0.7/AD7
P1.5     1                          33     P0.4/AD4
P1.6     2                         32     P0.5/AD5
P1.7     3                         31     P0.6/AD6
PQFP-44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
13
14
15
16
17
18
19
20
21
22
WR/P3.6                                    P1.4
RD/P3.7                                    P1.3
XTAL2                                    P1.2
A12/P2.4                                    P0.3/AD3
A11/P2.3                                    P0.2/AD2
P4.0                                    P4.2/INT3
A8/P2.0                                    VDD
A9/P2.1                                    P0.0/AD0
A10/P2.2                                    P0.1/AD1
XTAL1                                    P1.1/T2EX
VSS                                    P1.0/T2
INT0/P3.2     14                        32     PSEN
INT1/P3.3     15                        31     P2.7/A15
18
T1/P3.5     17                        29     P2.5/A13
T0/P3.4     16                        30     P2.6/A14
TXD/P3.1     13                        33     ALE/PROG
INT2/P4.3     12                        34     P4.1
RXD/P3.0      11                        35     EA
RST     10                        36     P0.7/AD7
P1.5     7                          39     P0.4/AD4
P1.6     8                         38     P0.5/AD5
P1.7     9                         37     P0.6/AD6
PLCC-44
44
43
42
41
40
19
20
21
22
23
24
25
26
27
28
P
4
STC 89LE516RD+ 80M 64K 1280
STC 89LE54 RD+   80M 16K 1280 16K
STC 89LE52 RC   80M 8K 512 2K
STC 89C516 RD+ 80M 64K 1280
STC 89C54 RD+  80M 16K 1280 16K
STC 89C52 RC  80M 8K 512 2K
E2P
ROM
字节
STC 89LE53 RC 80M 15K 512
STC 89C51 RC 80M 4K 512 2K
  5V
STC 89LE51 RC 80M 4K 512 2K
STC 89LE58 RD+   80M 32K 1280 16K
STC 89C53 RC 80M 15K 512
STC 89C58 RD+ 80M 32K 1280 16K
  3V
  Flash
  存储器
 降低
 EMI
    最 高 时 钟
    Hz  I
S
P
 I
A
P
STC 89C55 RD+  80M 20K 1280 16K
  RAM
  字节
STC 89LE516AD  90M3.61.9V 64K 512
 A
 /
 D
STC 单片机在线编程典型线路
8 R2IN R2OUT 9
0.1uF
2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
STC3232,STC232,MAX232,SP232
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
MCU_RxD (P3.0)
MCU_TxD (P3.1)P3.0
P3.1
89C52RC
89C58RD+
PC /电脑 串口
89LE52RC
89LE516RD+
GND
VCC
RESET
0.1uF
10uF
    
编程锁紧座
就是编程器
10K
10μ
XTAL2
XTAL1
Vcc
Vcc
0.1uF
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
领导业界革命    覆盖市场需求
宏晶科技是新一代增强型8051单片机标准的制定者致力于提供满足中国市场需求的世界级高性能单片机技术在业内处于领先地位销售网络覆盖全国在保
证质量的基础上以极低的价格和完善的服务赢得了客户的长期信赖。目前全力推出“个时钟机器周期”的单片机全面提升8051 单片机性能。欢迎
海内外厂家前来洽谈合作新客户请直接联系深圳以获得更好的技术支持与服务
STC 12C5410AD系列 1T 8051 单片机
DIP-20SOP-20,(超小封装TSSOP-20定货
STC12C2052STC12C4052 不带A/D转换
STC12C2052ADSTC12C4052ADA/D转换
 新客户请直接联系深圳以获得更好的技术支持和服务
专业单片机存储器供应商
 欢迎海内外厂家前来洽谈合作
技术支持13922805190     网址www.MCU-Memory.com
深  圳:Tel0755-82948409   82948410     Fax0755-82944243   82905966
上海办:Tel021-53560136    53560138     Fax021-53080587
北京办:Tel010-62538687     62634001     Fax010-62538683
南京办:Tel025-86893767    86893566     Fax025-86893757
广州办:Tel020-38851405   38850557     Fax020-38850581
     从网上下载样品申请单,
   传真至深圳申请STC 单片机
  样片ISP下载线 编程工具
免费索取
个时钟机器周期,超小封装8051单片机
●高速个时钟机器周期,RISC8051内核,速度比普通 8051 12
●宽电压5.53.4V2.03.8VSTC12LE5410AD系列
●低功耗设计:空闲模式,掉电模式(可由外部中断唤醒
工作频率35MHz相当于普通8051420MHz
      --实际可到 48MHz相当于8051 0576MHz
时钟外部晶体或内部RC振荡器可选,在 ISP 编程时设置
12K/10K/8K/6K/4K/2K 字节片内Flash程序存储器擦写次数10 万次以上
512字节片内RAM数据存储器
芯片内PROM 功能
ISP / IAP在系统可编程在应用可编程
10ADC通道,STC12C2052AD系列为 ADC
通道捕获比较单元PWM/PCA/CCU), STC12C2052AD 系列为通道
       -也可用来再实现个定时器或个外部中断支持上升沿下降沿中断
个硬件16位定时器,兼容普通8051的定时器。PCA 还可再实现 个定时器
硬件看门狗WDT
高速SPI 通信端口
全双工异步串行口(UART),兼容普通8051 的串口
先进的RISC精简指令集结构,兼容普通 8051 指令集
      4位通用工作寄存器(共32 个通用寄存器
STC12C5410/STC12C2052系列主要性能
个时钟机器周期高速高可靠 PWM/PCA 路高速A/D转换
在系统可编程无需编程器可远程升级
可送 STC-ISP 下载编程器,1 万片
内部集成 MAX810 专用复位电路原复位电路可以
保留,也可以不用不用时 RESET 脚直接短到地
个时钟 机器周期可用低频晶振大幅降低EMI
      -出口欧美的有力保证
超低功耗
掉电模式:        典型功耗    <0.1μ
空闲模式:     典型功耗   <1.3mA
正常工作模式 典型功耗   2.7mA - 7mA
掉电模式可由外部中断唤醒适用于电池
   供电系统,如水表、气表、便携设备等
选择 STC12C5410AD系列单片机的理由
超强抗干扰
高抗静电(ESD 保护
轻松过4KV 快速脉冲干扰(EFT测试
宽电压不怕电源抖动
宽温度范围,-40℃~85
I/O 口经过特殊处理
单片机内部的电源供电系统经过特殊处理
单片机内部的时钟电路经过特殊处理
单片机内部的复位电路经过特殊处理
单片机内部的看门狗电路经过特殊处理
加密性强无法解密
XTAL2      4         17     P1.5/MOSI/ADC5
Gnd      10        11     P3.7/PWM0
XTAL1      5         16     P1.4/SS/ADC4
RST      1         20     VCC
RxD/P3.0      2         19     P1.7/SCLK/ADC7
TxD/P3.1      3         18     P1.6/MISO/ADC6
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/T1/P3.5      9         12     P1.0/ADC0
XTAL2      6         23     P1.5/MOSI/ADC5
PWM3/PCA3/P2.4      12        17     P3.7/PCA0/PWM0
XTAL1      7         22     P1.4/SS/ADC4
RST      3         26     P2.0/PCA2/PWM2
RxD/P3.0      4         25     P1.7/SCLK/ADC7
TxD/P3.1      5         24     P1.6/MISO/ADC6
INT0/P3.2      8         21     P1.3/ADC3
INT1/P3.3      9         20     P1.2/ADC2
ECI/T0/P3.4      10        19     P1.1/ADC1
PWM1/PCA1/T1/P3.5      11        18     P1.0/ADC0
P2.3      2         27     P2.1
P2.2      1         28     VDD
P2.5      13        16     P2.7
VSS      14        15     P2.6
DIP-28窄体/ SOP-28
已开始供货
大客户特价支持
 STC12C1052 人民币 3.8
P2.0/PWM2
TxD/P3.1
INT0/P3.2
P0.0
XTAL2
XTAL1
P0.1
PWM1/PCA1/T1/P3.5
INT1/P3.3
ECI/T0/P3.4
PLCC-32
14
10
11
12
13
29
28
27
26
25
24
23
22
21
ADC0/P1.0
PWM0/P3.7
P2.7
P2.6
VSS
P2.5
PWM3/P2.4
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P0.3
P1.4/SS/ADC4
P1.3/ADC3
P0.2
P1.2/ADC2
P1.1/ADC1
P2.1
VDD
P2.2
P2.3
RST
P3.0/RxD
已开始供货
32
31
30
15
16
17
18
19
20
通用I/O口(27/23), 复位后为 准双向口弱上拉普通8051传统 I/O
      可设置成四种模式准双向口弱上拉推挽强上拉仅为输入高阻,开漏
      每个I/O 口驱动能力均可达到 20mA但整个芯片最大不得超过55mA
DIP-28/20SOP-28/20 超小封装 8051
单时钟 1T
8051  CPU
4/8/10/12K
字节Flash
程序存储器
512/256字节
数据 RAM
1K字节
EEPROM
Port1Port3
可配置I/O
Port2Port0
可配置I/O
UART
全双工
异步串行口
Timer 0
Timer 1
WDT
硬件看门狗
PWM/PCA/CCU
捕获比较单元
可配置振荡器
片内
R/C振荡器
晶体或
谐振器
XTAL2
XTAL1
电源监控
上电复位
掉电复位
CPU时钟
SPI
通道
高速A/D
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
领导业界革命    覆盖市场需求
宏晶科技是新一代增强型8051单片机标准的制定者致力于提供满足中国市场需求的世界级高性能单片机技术在业内处于领先地位销售网络覆盖全国在保
证质量的基础上以极低的价格和完善的服务赢得了客户的长期信赖。目前全力推出“个时钟机器周期”的单片机全面提升8051 单片机性能。欢迎
海内外厂家前来洽谈合作新客户请直接联系深圳以获得更好的技术支持与服务
STC 12C2052AD系列 1T 8051 单片机
DIP-20SOP-20,( 超小封装 TSSOP-20 定货
STC12C2052STC12C4052 不带A/D转换
STC12C2052ADSTC12C4052ADA/D转换
 新客户请直接联系深圳以获得更好的技术支持和服务
专业单片机存储器供应商
 欢迎海内外厂家前来洽谈合作
技术支持13922805190     网址www.MCU-Memory.com
深  圳:Tel0755-82948409   82948410     Fax0755-82944243   82905966
上海办:Tel021-53560136    53560138     Fax021-53080587
北京办:Tel010-62538687     62634001     Fax010-62538683
南京办:Tel025-86893767    86893566     Fax025-86893757
广州办:Tel020-38851405   38850557     Fax020-38850581
     从网上下载样品申请单,
   传真至深圳申请STC 单片机
  样片ISP下载线 编程工具
免费索取
个时钟机器周期,超小封装8051单片机
●高速个时钟机器周期,RISCCPU 内核,速度比普通 805112
●宽电压:5.53.4V2.03.8VSTC12LE2052AD 系列)
●低功耗设计:空闲模式,掉电模式(可由外部中断唤醒
工作频率35MHz相当于普通8051420MHz
时钟外部晶体或内部RC振荡器可选,在 ISP 编程时设置
2K/4K/8K/10K/12K片内Flash程序存储器擦写次数10 万次以上
256/512字节片内RAM数据存储器
芯片内PROM 功能
ISP / IAP在系统可编程
个模拟比较器
通道高精度ADCSTC12C5410AD 系列为 10 位精度 ADC
通道捕获比较单元CCU/PCA/PWM), STC12C5410AD 系列为通道
     ---也可用来再实现 2/4 个定时器或 2/4 个外部中断(支持上升沿 下降沿中断)
个硬件16 位定时器兼容普通8051的定时器,2PCA还可再实现个定时器
硬件看门狗WDT
高速SPI 通信端口
全双工异步串行口(UART),兼容普通8051 的串口
先进的RISC精简指令集结构,兼容普通 8051 指令集
      4位通用工作寄存器(共32 个通用寄存器
STC12C2052/STC12C5410 系列主要性能
个时钟机器周期高速高可靠 PWM/PCA 路高速A/D转换
在系统可编程无需编程器可远程升级
可送 STC-ISP 下载编程器,1 万片
内部集成 MAX810 专用复位电路原复位电路可以
保留,也可以不用不用时 RESET 脚直接短到地
个时钟 机器周期可用低频晶振大幅降低EMI
      -出口欧美的有力保证
超低功耗
掉电模式:        典型功耗    <0.1μ
空闲模式:     典型功耗   <1.3mA
正常工作模式 典型功耗    2.7mA - 7mA
掉电模式可由外部中断唤醒适用于电池
   供电系统,如水表、气表、便携设备等
选择 STC12C2052AD系列单片机的理由
超强抗干扰
高抗静电(ESD 保护
轻松过4KV 快速脉冲干扰(EFT测试
宽电压不怕电源抖动
宽温度范围,-40℃~85
I/O 口经过特殊处理
单片机内部的电源供电系统经过特殊处理
单片机内部的时钟电路经过特殊处理
单片机内部的复位电路经过特殊处理
单片机内部的看门狗电路经过特殊处理
加密性强无法解密
XTAL2      4         17     P1.5/MOSI/ADC5
Gnd      10        11     P3.7/PWM0
XTAL1      5         16     P1.4/SS/ADC4
RST      1         20     VCC
RxD/P3.0      2         19     P1.7/SCLK/ADC7
TxD/P3.1      3         18     P1.6/MISO/ADC6
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/T1/P3.5      9         12     P1.0/ADC0
XTAL2      6         23     P1.5/MOSI/ADC5
PWM3/PCA3/P2.4      12        17     P3.7/PCA0/PWM0
XTAL1      7         22     P1.4/SS/ADC4
RST      3         26     P2.0/PCA2/PWM2
RxD/P3.0      4         25     P1.7/SCLK/ADC7
TxD/P3.1      5         24     P1.6/MISO/ADC6
INT0/P3.2      8         21     P1.3/ADC3
INT1/P3.3      9         20     P1.2/ADC2
ECI/T0/P3.4      10        19     P1.1/ADC1
PWM1/PCA1/T1/P3.5      11        18     P1.0/ADC0
P2.3      2         27     P2.1
P2.2      1         28     VDD
P2.5      13        16     P2.7
VSS      14        15     P2.6
DIP-28窄体/ SOP-28
已开始供货
大客户特价支持
 STC12C1052 人民币 3.8
已开始供货
P2.0/PWM2
TxD/P3.1
INT0/P3.2
P0.0
XTAL2
XTAL1
P0.1
PWM1/T1/P3.5
INT1/P3.3
ECI/T0/P3.4
PLCC-32
14
10
11
12
13
29
28
27
26
25
24
23
22
21
ADC0/P1.0
PWM0/P3.7
P2.7
P2.6
VSS
P2.5
PWM3/P2.4
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P0.3
P1.4/SS/ADC4
P1.3/ADC3
P0.2
P1.2/ADC2
P1.1/ADC1
P2.1
VDD
P2.2
P2.3
RST
P3.0/RxD
32
31
30
15
16
17
18
19
20
通用I/O口(27/23), 复位后为 准双向口弱上拉普通8051传统 I/O
       可设置成四种模式准双向口 弱上拉推挽强上拉仅为输入高阻,开漏
       每个I/O 口驱动能力均可达到 20mA但整个芯片最大不得超过55mA
DIP-20SOP-20 超小封装 8051 单片机
单时钟 1T
8051  CPU
2/4/8/12K
字节Flash
程序存储器
256/512字节
数据 RAM
1K字节
EEPROM
Port1Port3
可配置I/O
Port2Port0
可配置I/O
UART
全双工
异步串行口
Timer 0
Timer 1
WDT
硬件看门狗
通道
高速A/D
PWM/PCA/CCU
捕获比较单元
可配置振荡器
片内
R/C振荡器
晶体或
谐振器
XTAL2
XTAL1
电源监控
上电复位
掉电复位
CPU时钟
SPI
目录
STC89C51RC/RD+ 系列单片机宣传资料 .....................................................
STC12C5410AD 系列单片机宣传资料........................................................
STC12C2052AD 系列单片机宣传资料........................................................
目录.....................................................................................
STC89C51RC/RD+系列 单片机 简介 .......................................................
STC89C51RC/RD+系列 单片机 选型 .......................................................
STC89C51RC / RD+ 系列单片机 管脚图 编译器及仿真器 ...................................
STC89C51 RC / RD+ 系列单片机封装尺寸图................................................
STC89C51RC/RD+ 系列 单片机 命名规则 ..................................................12
STC89 系列单片机的优点及特性........................................................... 13
STC  ISP下载编程及应用电路针对 版单片机大批量供货............................. 14
STC  ISP 下载编程及应用电路针对 版单片机,老产品............................... 15
STC  ISP 下载编程及应用电路针对 版单片机,老产品............................... 16
典型 MCU/DSP/uC 复位、电源监控外部看门狗专用电路 ................................. 17
STC89C51RC /  RD+ 系列单片机ISP 下载用户程序编程原理 注意事项 ....................... 18
STC89C51RC  /  RD+ 系列单片机在系统可编程控制软件STC-ISP的使用说明 ...........19
特殊功能寄存器映像 说明   SFR Mapping ............................................... 22
降低单片机时钟对外界的电磁辐射  (EMI)---三大措施 ..................................... 25
STC89C51RC / RD+ 系列单片机内部扩展 RAM 的使用 禁止 ................................ 26
双数据指针 DPTR0,DPTR1 的使用 .........................................................33
扩展 P4 口的使用可以位寻址...........................................................34
看门狗应用..............................................................................35
中断系统................................................................................ 38
PCON 寄存器的高级应用,上电复位标志,进入掉电模式.....................................39
STC89C51RC/RD+  系列单片机如何从掉电模式唤醒 .........................................40
STC 单片机定时器 0/1/2 的使用 ..........................................................42
STC89C51 RC / RD+ 系列 ISP / IAP / EEPROM 应用 ...................................62
STC89C51 RC / RD+ 系列 IAP / EEPROM 应用汇编简介 .................................. 67
STC89C51 RC  / RD+ 系列单片机电气特性 .................................................74
附录 A  STC89LE516AD58AD54AD52AD系列单片机指南 ............................... 76
附录 B  为什么少数用户的普通 8051 程序烧录后不能运行 ................................. 84
附录 C STC89C51 RC  / RD+ 系列单片机 ISPDIY.......................................85
附录 D  如何实现运行中不停电自定义下载无仿真器时方便调试 ............................ 89
附录 E  Keil  C51高级语言编程的软件如何减少代码长度 ................................... 90
附录 F  STC89C51RC/RD+系列单片机做仿真器须知 ......................................... 91
附录 G  STC 高性能 SRAM 选型一览表.......................................................92
附录 H  STC单片机配套工具及价格 ........................................................ 93
附录 I  STC12C5410 简介(1T...........................................................94
附录 J  指令系统与程序设计 .............................................................179
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列
         STC89C51RC/RD+系列 单片机简介
    STC89C51RC/RD+ 系列单片机是兼容8051内核的单片机是高速低功耗的新一代8051 单片机12
时钟机器周期和时钟机器周期可反复设置,最新的版本内部集成MAX810专用复位电路
特点
1. 增强型 时钟 机器周期,12 时钟 机器周期 8051 CPU
3. 工作频率范围0 - 40 MHz相当于普通 8051   080MHz.实际工作频率可达48MHz.
4. 用户应用程序空间 4K / 8K / 15K / 16K / 20K / 32K / 64K 字节
5. 片上集成 512 字节 / 1280 字节 RAM
11.共3个16 位定时器 计数器
13. 通用异步串行口(UART)
9. 看门狗
14.工作温度范围 0 - 75 / -40 - +85
ISP在系统可编程/IAP在应用可编程), 无需专用编程器
2. 工作电压5.5V - 3.4V5V 单片机  /  3.8V - 2.0V3V 单片机
15.封装: PDIP-40PLCC-44,PQFP-44
8. EEPROM 功能
6. 通用 I/O 口(32/36 ), 复位后为 P1/P2/P3/P4是准双向口弱上拉普通8051传统I/O口)
      P口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻
10内部集成 MAX810 专用复位电路 版本才有), 外部晶体 20M 以下时,可省外部复位电路
    可通过串口(P3.0/P3.1)直接下载用户程序,8K 程序 秒即可完成一片
12.外部中断 路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断低电平触发中断方式唤醒
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列
     型      最高时钟
   频 Hz Flash
程序
存储器
字节
RAM
数据
存储器
字节
降低
EMI
EEP
ROM
字节
串口
UART
  5V   3V
STC89C51    RC 0-80M 4K 512 2K+  2 1ch
STC89C52    RC 0-80M 8K 512 2K+  2 1ch
STC89C53    RC 0-80M 15K 512  2 1ch
STC89C54    RD+ 0-80M 16K 1280 16K+  2 1ch
STC89C55    RD+ 0-80M 20K 1280 16K+  2 1ch
STC89C58    RD+ 0-80M 32K 1280 16K+  2 1ch
STC89C516  RD+ 0-80M 63K 1280  2 1ch
STC89LE51  RC 0-80M 4K 512 2K+  2 1ch
STC89LE52  RC 0-80M 8K 512 2K+  2 1ch
STC89LE53  RC 0-80M 14K 512  2 1ch
STC89LE54  RD+ 0-80M 16K 1280 16K+  2 1ch
STC89LE58  RD+ 0-80M 32K 1280 16K+  2 1ch
STC89LE516RD+ 0-80M 63K 1280  2 1ch
STC89LE516AD 0-90M 64K 512  2 1ch
STC89LE516X2 0-90M 64K 512  2 1ch
        STC89C51RC/RD+系列单片机选型一览表
A/D(高速)可做
按键扫描
电池电压检测
掉电检测
音量、频谱检测等
 
1280 字节
SRAM
E2PROM
Data Flash
双数据
指针
看门狗
8/16/32/64k
字节
闪存
内置系统
ISP
监控程序
四个 8
并行端口
+
P4.0P4.3
四个附送
I/O
端口
UART串口
3
个定时器
A / D
不加价
微处理器
低功耗
超低价
高速90M), 高可靠
 
  掉电模式< 0.1μ 空闲模式
2mA
集成
MAX810
专用复位电路
IAP STC
IAP
8051
P0
P1
P2
P3
P4 (E8H)
单倍速和
双倍速可
ISP
反复设置
   RC/RD+ 系列为真正的看门狗缺省为关闭冷启动), 启动后无法关闭可放心省去外部看门狗
内部Flash擦写次数为100,000次以上,STC89C51RC/RD+ 系列单片机出厂时就已完全加密无法解密
用户程序是用ISP/IAP 机制写入一边校验一边写无读出命令彻底无法解密DIP-40PLCC-
44PQFP-44
   选用 STC 单片机的理由降低成本提升性能原有程序直接使用硬件无需改动STC公司鼓励
您放心大胆选用PLCC,  PQFP小型封装,  3.3V 工作电压单片机使您的产品更小,更轻,功耗更低
如果相关新增功能没有用到,则不需看相应部分 STC 提供的 STC-ISP.exe 工具将您原有的代码下载进
STC相关的单片机即可或用通用编程器编程
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列
PQFP-44
     A12/P2.4                                                 P0.3/AD3
P4.3/INT2      6                                        28      P4.1
RXD/P3.0      5                                        29      EA
12
    WR/P3.6                                                 P1.4
44
     VSS                                                 P1.0/T2
TXD/P3.1      7                                         27      ALE/PROG
P1.5      1                                       33      P0.4/AD4
RST      4                                        30      P0.7/AD7
P1.7      3                                       31      P0.6/AD6
P1.6      2                                       32      P0.5/AD5
T1/P3.5      11                                       23      P2.5/A13
INT0/P3.2      8                                        26      PSEN
INT1/P3.3      9                                        25      P2.7/A15
T0/P3.4      10                                       24      P2.6/A14
    RD/P3.7                                                 P1.3
     XTAL2                                                 P1.2
     XTAL1                                                 P1.1/T2EX
     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
STC89C51RC / RD+ 系列单片机 管脚图
关于工作电压时钟频率:RC/RD+ 系列是真正的6T 单片机兼容普通的12 时钟 机器周期
关于看门狗RC/RD+系列为真正的看门狗缺省为关闭冷启动), 启动后无法关闭
A.看门狗溢出复位无法关看门狗(C 版) B.单片机软复位无法关看门狗(C版)
C.带电工作时外部复位无法关看门狗(C D.软件无法关看门狗
E.外部干扰无法关看门狗 F.只有给单片机彻底断电才可以
3V: 3.6 - 2.4V(可外部24MHz,双倍速48MHz),2.3-1.9V时不要进行IAP 擦除 编程
内核实际6T                现有老版5V单片机无版本号                  现有新版5V单片机
工作电压 外部时钟 单倍速
相当于
普通8052
实际内核
运行时钟
双倍速
相当于
普通8052
实际内核
运行时钟 外部时钟 单倍速
相当于
普通8052
实际内核
运行时钟
双倍速
相当于
普通8052
实际内核
运行时钟 IAPISP可以
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 不要编程擦除
关于编译器汇编器
1.任何老的编译器 汇编器均可使用
 Keil C51: Device选择标准的Intel8052
 头文件包含标准的 <reg52.h>
2.新增特殊功能寄存器如要用到,则用
  sfr”及“sbit声明地址即可
3.汇编中用“data EQU”声明地址
关于仿真及仿真器
1.任何老的仿真器均可使用
2.老的仿真器仿真他可仿真的基本功能
3.新增特殊功能用ISP下载看结果即可
4.STC8051专用仿真器也已推出人民币1950
WR/P3.6                                                 P1.4
RD/P3.7                                                 P1.3
XTAL2                                                 P1.2
A12/P2.4                                                 P0.3/AD3
INT0/P3.2     14                                       32      PSEN
INT1/P3.3     15                                       31      P2.7/A15
18
T1/P3.5     17                                       29     P2.5/A13
T0/P3.4     16                                       30     P2.6/A14
A11/P2.3                                                 P0.2/AD2
 6
TXD/P3.1     13                                       33     ALE/PROG
P4.3/INT2     12                                       34     P4.1
RXD/P3.0      11                                       35      EA
P4.0                                                 P4.2/INT3
A8/P2.0                                                 VDD
A9/P2.1                                                 P0.0/AD0
A10/P2.2                                                 P0.1/AD1
XTAL1                                                 P1.1/T2EX
VSS                                                 P1.0/T2
RST      10                                       36     P0.7/AD7
P1.5      7                                        39      P0.4/AD4
P1.6      8                                        38      P0.5/AD5
P1.7      9                                        37     P0.6/AD6
PLCC-44
TXD/P3.1      11          30      ALE/PROG
DIP-40
RST       9           32      P0.7/AD7
P1.2                  38      P0.1/AD1
P1.3      4             37      P0.2/AD2
P1.4                 36      P0.3/AD3
P1.5     6           35      P0.4/AD4
P1.6      7           34      P0.5/AD5
P1.7                 33      P0.6/AD6
RXD/P3.0       10         31      EA
INT0/P3.2                29      PSEN
INT1/P3.3               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                21      P2.0/A8
    T2/P1.                40      VCC
T2EX/P1.1                 39      P0.0/AD0
 5
 4
 3
 2
 1
 44
 43
 42
 41
 40
19
20
21
22
23
24
25
26
27
28
43
42
41
40
39
38
37
36
35
34
13
14
15
16
17
18
19
20
21
22
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列
seating plane
W M
pin 1 index
40
20
21
DIMENSIONS(inch dimensions are derived from the original mm dimensions)
UNIT
max.
min.
max. (1) (1) (1)
max.
mm 4.7 0.51 4.0 1.70
1.14 0.53
0.38 0.36
0.23 52.5
51.5 14.1
13.7 2.54 15.24 3.60
3.05 15.8
15.24 17.42
15.90 0.254 2.25
inches 0.19 0.020 0.16 0.067
0.045 0.021
0.015 0.014
0.009 2.067
2.028 0.56
0.54 0.10 0.60 0.14
0.12 0.62
0.60 0.69
0.63 0.01 0.089
Note
1.Plastic or metal protrusion of 0.25 mm maximum per side are not included
OUTLINE
VERSION REFERENCES
IEC JEDEC EIAJ  EUROPEAN
PROJECTION ISSUE DATE
SOT129-1 051G08 MO-015 SC-511-40 95-01-14
99-12-27
STC 8051 封装尺寸图
DIP40: plastic dual in-line package;40 leads(600 mil)
10mm
scale
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列10
pin 1 index
39 29
40
44
17
DIMENSIONS( millimetre dimensions are derived from the original inch dimensions)
Note
1.Plastic or metal protrusions of 0.01 inches maximum per side are not included
OUTLINE
VERSION REFERENCES
IEC JEDEC EIAJ  EUROPEAN
PROJECTION ISSUE DATE
SOT187-2 112E10 MO-047 97-12-16
99-12-27
UNIT
mm
inches
 A  A
max.  A
max. (1) (1)
max. (1)
max. β
(1)
max.
4.57
4.19 0.51 0.25 3.05 0.53
0.33 0.81
0.66 16.66
16.51 1.27 16.00
14.99
16.66
16.51 16.00
14.99 17.65
17.40 17.65
17.40 1.22
1.07 0.51 1.44
1.02 0.18 0.18 0.10 2.16 2.16
0.180
0.165 0.020 0.01 0.12 0.021
0.013 0.032
0.026 0.656
0.650 0.05 0.630
0.590
0.656
0.650 0.630
0.590 0.695
0.685 0.695
0.685 0.048
0.042 0.020 0.057
0.040 0.007 0.007 0.004 0.085 0.085 45°
18
V M
V M
β
W M
(A
detail X
PLCC44: plastic leaded chip carrier;44 leads
10mm
scale
28
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列11
44 34
11
12 22
See Detail 
Seating Plane Detail F
PQFP44
Notes:
1.Dimension D & E do not include interlead flash.
4.General appearance spec. should be based on final visual inspection spec.
Symbol Dimension in inch
Min. Nom. Max. Min. Nom. Max.
θ
-- -- -- -- -- --
0.002 0.01 0.02 0.05 0.25 0.5
0.075 0.081 0.087 1.90 2.05 2.20
0.01 0.014 0.018 0.25 0.35 0.45
0.004 0.006 0.010 0.101 0.152 0.254
0.390 0.394 0.398 9.9 10.00 10.1
0.025 0.031 0.036 0.635 0.80 0.952
0.510 0.520 0.530 12.95 13.2 13.45
0.025 0.031 0.037 0.65 0.8 0.95
0.051 0.063 0.075 1.295 1.6 1.905
-- -- 0.003 -- -- 0.08
°
0.390 0.394 0.398 9.9 10.00 10.1
0.510 0.520 0.530 12.95 13.2 13.45
-- ° ° -- °
Dimension in mm
2.Dimension b does not include dambar protrusion/intrusion.
3.Controlling dimension Millimeter
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列12
STC89xxxxxx 40x-xxxx
何种封装
PDIPPLCCPQFP
工作温度范围
工业级-40    +85
商业级 0℃  70
工作频率
25工作频率可到 25MHz
40工作频率可到 40MHz
50工作频率可到 50MHz
程序空间大小
51 4K 字节 52 8K 字节, 53 15K 字节
54 16K 字节,58 32K字节,516 64K 字节
RAM 大小
RC:  RAM 512
RD+: RAM 1280
STC  12T/6T  8051
工作电压
 5.5V3.4V
LE2.0V3.8V
       STC89C51RC/RD+ 系列 单片机 命名规则
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列13
超低功耗  ---- STC89C51RC / RD+ 系列单片机
1.掉电模式
典型功耗    < 0.1uA,   可由外部中断唤醒中断返回后继续执行原程序
2.空闲模式
典型功耗    2mA
3.正常工作模式
典型功耗    4mA - 7mA
4.掉电模式可由外部中断唤醒适用于水表气表等电池供电系统及便携设备
单片机内部的时钟电路经过特殊处理很多干扰是从时钟部分进去的
4. 看门狗
单片机内部的看门狗电路经过特殊处理打开后无法关闭可放心省去外部看门狗
5. 复位电路
单片机内部的复位电路经过特殊处理很多干扰是从复位电路部分进去的
STC89C51RC/RD+系列单片机为高电平复位推荐外置复位电路为MAX810/STC810,STC6344,
STC6345,813L,706P也可用R/C复位,10uF电容/10k电阻,22uF/8.2k 等。
     新版本 版本内部含有专用复位电路外部复位电路可以继续保留也可以不用不用时复位脚直
接短到地
6. 宽电压,不怕电源抖动 5V: 6v - 3.4v 3V: 4v - 2.0v
 降低单片机对外部的电磁辐射 (EMI)--- 三大措施
Mnemonic Add Name   7  6  5  4  3  2     1  0 Reset value
AUXR 8Eh Auxiliary  Register    -  -  -  -  -  - EXTRAM ALEOFF xxxx,xx00
RC/RD+系列8051 单片机 扩展RAM管理及禁止ALE 输出 特殊功能寄存器   只写
禁止ALE 信号输出应用示例供参考汇编语言):
MOV AUXR,  #00000001B;  ALEOFF 位置禁止ALE时钟输出
2. 外部时钟频率降一半6T 模式: 传统的8051 为每个机器周期12 时钟,如将 STC 的增强型 8051单片
机在ISP 烧录程序时设为双倍速(即6T模式,每个机器周期时钟), 则可将单片机外部时钟频率降低一半,
有效的降低单片机时钟对外界的辐射
3. 单片机内部时钟振荡器增益降低一半ISP烧录程序时将 OSCDN设为1/2 gain 可以有效
的降低单片机时钟高频部分对外界的辐射单片机外部晶振频率<16MHz 时,可将OSCDN设为 1/2 gain,
利于降低EMI16M 以上选择 full gain
1. 禁止 ALE 时钟信号输出
   超强抗干扰  ---- STC89C51RC / RD+ 系列单片机
1. I/O
输入输出口经过特殊处理很多干扰是从I/O 进去的每个 I/O 均有对VCC/ GND
二级管箝位保护
2. 电源
单片机内部的电源供电系统经过特殊处理很多干扰是从电源进去的
3. 时钟
7. 高抗静电 ESD 保护轻松过4000V 快速脉冲干扰严格的日本及欧洲EFT 标准
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列14
关于/EA/EA 管脚已内部上拉到Vcc
1.如外部不加上拉或外部上拉到Vcc,
OSCDN,晶体振荡器增益控制 = full gain,  33  =  0  -  160欧姆可以不用
X1 2-25MHz 26-30MHz 31-35MHz 36-39MHz 40-43MHz 44-48MHz
C1,C2 <= 47pF  <=10pF  <=10pF  <=10pF   <=10pF   <=5pF
R1   不用   6.8K   5.1K   4.7K    3.3K    3.3K
针对版 STC 89C51RC/RD,STC89LE51RC/RD+ 系列单片机推荐晶体振荡电路
OSCDNOSC Control),振荡器增益 =  2 gain,  33  =  0 - 160欧姆可不用
X1 2-25MHz 26-30MHz 31-35MHz 36-39MHz 40-43MHz 44-48MHz
C1,C2  <=47pF  <=5pF 不用 不用 不用 不用
R1  不用 6.8K 5.1K 4.7K 3.3K 3.3K
针对版 STC 8951RCRD,STC89LE51RCRD+ 系列单片机推荐晶体振荡电路
1.STC 单片机版本的,R33 可以短路也可以上 160 欧姆以下的电阻C1 也可以不上
推荐工作时钟频率总线
STC单片机RC/RD+系列
方式可到4080
内部振荡器产生时钟,外接晶体 外部时钟直接输入,由XTAL输入
12时钟模式 时钟模式 12时钟模式 时钟模式
5.0V 单片机 2MHz - 48MHz 2MHz - 36MHz 2MHz - 48MHz 2MHz - 36MHz
3.3V 单片机 2MHz - 48MHz 2MHz - 32MHz 2MHz - 36MHz 2MHz - 18MHz
Vcc
Vin
Power On
C6 C5
104 10uF
1K
Vcc
Vcc
10K
10μ
C2
C1
R1
X1
1  T2/P1.0                VCC  40
 2  T2EX/P1         P0.0/AD0  39
3  P1.2                P0.1/AD1  38
4  P1.3                P0.2/AD2  37
5  P14               P0.3/AD3  36
6  P1.5            P0.4/AD4  35
7  P1.6              P0.5/AD5  34
8  P1.7            P0.6/AD6  33
  RST                P0.7/AD7  32
 10  RXD/P3.0                   EA  31
 11   TXD/P3.1          ALE/PROG  30
12   INT0/P3.2             PSEN  29
13  INT1/P3.3       P2.7/A15  28
14    T0/P3.4           P2.6/A14  27
15   T1/P3.5           P2.5/A13  26
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
MCU_TxD (P3.1)
MCU_RxD (P3.0)
SW1
U1,下载板是用的编程器用锁紧座方便生产
<47pF
8 R2IN R2OUT 9
STC 单片机在线编程线路 STC RS-232 转换器
0.1uF 2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
PC /电脑 串口
R33
2.如外部下拉到地上电复位后单片机
上电复位后单片机从内部开始执行程序
从外部开始执行程序
1.阻容复位时电容为10uF,电阻为10K;
2.RC/RD+系列单片机 版本,RESET 脚内部
已有45k-100k下拉电阻
关于晶振电路:
STC单片机典型应用电路(89C51RC/RD+系列,D
此部分与ISP
载线路无关
此电路已做成一块 STC ISP
用户程序下载工具人民币50
供用户将程序灌进单片机使用
※  如何识别 版、 版或 版见单片机表面文字最下面一行最后一个字母
电源开关
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB +5V
 STC3232STC232MAX232SP232
USB+5V T1OUT GNDR1IN
USB1
晶振频率在20M以下时
电容可以不用,电阻
可为10K
版本内部已集成
MAX810专用复位电路
关于复位电路
如果外部时钟频率在33MHz以上时建议直接使用外部有源晶振
<47pF
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列15
关于/EA/EA 管脚已内部上拉到Vcc
1.如外部不加上拉或外部上拉到Vcc,
OSCDN,晶体振荡器增益控制 = full gain,  33  =  0  -  160欧姆可以不用
X1 2-25MHz 26-30MHz 31-35MHz 36-39MHz 40-43MHz 44-48MHz
C1,C2 <= 47pF  <=10pF  <=10pF  <=10pF   <=10pF   <=5pF
R1   不用   6.8K   5.1K   4.7K    3.3K    3.3K
针对版 STC 8951RC/RD+,STC89LE51RC/RD+ 系列单片机推荐晶体振荡电路
OSCDNOSC Control 振荡器增益 =  2 gain,  33  =  0 - 160欧姆可不用
X1 2-25MHz 26-30MHz 31-35MHz 36-39MHz 40-43MHz 44-48MHz
C1,C2  <=47pF  <=5pF 不用 不用 不用 不用
R1  不用 6.8K 5.1K 4.7K 3.3K 3.3K
针对版 STC 8951RCRD,STC89LE51RCRD+ 系列单片机推荐晶体振荡电路
1.STC 单片机版本的,R33 可以短路也可以上 160 欧姆以下的电阻C1 也可以不上
推荐工作时钟频率总线
STC单片机RC/RD系列
方式可到4080
内部振荡器产生时钟外接晶体 外部时钟直接输入,由XTAL输入
12时钟模式 时钟模式 12时钟模式 时钟模式
5.0V 单片机 2MHz - 48MHz 2MHz - 36MHz 2MHz - 48MHz 2MHz - 36MHz
3.3V 单片机 2MHz - 48MHz 2MHz - 32MHz 2MHz - 36MHz 2MHz - 18MHz
Vcc
Vin
Power On
C6 C5
104 10uF
1K
Vcc
Vcc
10K
10μ
C2
C1
R1
X1
1  T2/P1.0                VCC  40
 2  T2EX/P1         P0.0/AD0  39
3  P1.2                P0.1/AD1  38
4  P1.3                P0.2/AD2  37
5  P14               P0.3/AD3  36
6  P1.5            P0.4/AD4  35
7  P1.6              P0.5/AD5  34
8  P1.7            P0.6/AD6  33
  RST                P0.7/AD7  32
 10  RXD/P3.0                   EA  31
 11   TXD/P3.1          ALE/PROG  30
12   INT0/P3.2             PSEN  29
13  INT1/P3.3       P2.7/A15  28
14    T0/P3.4           P2.6/A14  27
15   T1/P3.5           P2.5/A13  26
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
MCU_TxD (P3.1)
MCU_RxD (P3.0)
SW1
U1,下载板是用的编程器用锁紧座方便生产
<47pF
8 R2IN R2OUT 9
STC 单片机在线编程线路 STC RS-232 转换器
0.1uF 2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
PC /电脑 串口
R33
2.如外部下拉到地上电复位后单片机
上电复位后单片机从内部开始执行程序
从外部开始执行程序
1.阻容复位时电容为10uF,电阻为10K;
2.RC/RD+系列单片机 版本,RESET 脚内部
已有45k-100k下拉电阻
关于晶振电路:
STC单片机典型应用电路(89C51RC/RD+系列,C
此部分与ISP
载线路无关
此电路已做成一块 STC ISP
用户程序下载工具人民币50
供用户将程序灌进单片机使用 电源开关
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB +5V
 STC3232STC232MAX232SP232
USB+5V T1OUT GNDR1IN
USB1
※  如何识别 版、 版或 版见单片机表面文字最下面一行最后一个字母
如果外部时钟频率在33MHz以上时建议直接使用外部有源晶振
<47pF
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列16
 STC  ISP 编程典型应用电路(89C51RC/RD+ 系列,B
U1,下载板是用的编程器用锁紧座方便生产
关于晶振电路:
1.阻容复位时电容为10uF,电阻为10K;
2.RC/RD+系列单片机RESET 脚内部没
下拉电阻必须用此10K电阻
关于/EA/EA 管脚已内部上拉到Vcc
1.如外部不加上拉或外部上拉到Vcc,
2.如外部下拉到地上电复位后单片机
上电复位后单片机从内部开始执行程序
从外部开始执行程序
此部分与ISP
载线路无关
OSCDNOSC Control),晶体振荡器增益控制 = full gain,  33 = 160欧姆附近
X1 2-25MHz 26-30MHz 31-35MHz 36-39MHz 40-43MHz 44-48MHz
C1,C2 <=47pF <=10pF <=10pF <=10pF <=10pF <=5pF
R1 不用 6.8K 5.1K 4.7K 3.3K 3.3K
针对 版 STC 8951RCRD,STC89LE51RCRD+ 系列单片机推荐晶体振荡电路
OSCDNOSC Control),晶体振荡器增益控制 =  2 gain,  33 = 160欧姆附近
X1 2-25MHz 26-30MHz 31-35MHz 36-39MHz 40-43MHz 44-48MHz
C1,C2 <=47pF <=5pF 不用 不用 不用 不用
R1 不用 6.8K 5.1K 4.7K 3.3K 3.3K
针对 版 STC 89C51RC/RD,STC89LE51RC/RD+ 系列单片机推荐晶体振荡电路
 1  T2/P1.0                VCC  40
   2  T2EX/P11         P0.0/AD0  39
  3  P1.2               P0.1/AD1  38
  4  P1.3               P0.2/AD2  37
  5  P              P0.3/AD3  36
  6  P1.5               P0.4/AD4  35
  7  P1.6                P0.5/AD5  34
  8  P1.7              P0.6/AD6  33
              RST               P0.7/AD7  32
       10  RXD/P3.0                 EA  31
       11 TXD/P3.1          ALE/PROG  30
     12 INT0/P3.2             PSEN  29
  13 INT1/P3.3        P2.7/A15 28
  1   T0/P3.4           P2.6/A14  27
  15 T1/P3.5           P2.5/A13  26
  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
Vcc
Vin
Power On
C6 C5
104 10uF
1K
Vcc
Vcc
10K
10μ
C2
C1
R1
X1
SW1
8 R2IN R2OUT 9
STC 单片机在线编程线路 STC RS-232 转换器
0.1uF 2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
PC /电脑 串口
MCU_TxD (P3.1)
MCU_RxD (P3.0)
<47pF R33
此电路已做成一块 STC ISP
用户程序下载工具人民币50
供用户将程序灌进单片机使用
1.推荐在XTAL2管脚串一个160 - 120 欧姆的电阻再到晶振的管脚可限制晶振驱动电平并有利于晶
体起振,这对低频晶振尤其重要如果这样XTAL1管脚旁的C1推荐上
2.如果 XTAL2 管脚不串一个160 欧姆的电阻的话,C1 不上,C247pF - 180pF
电源开关
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB +5V
 STC3232STC232MAX232SP232
USB+5V T1OUT GNDR1IN
USB1
※  如何识别 版、 版或 版见单片机表面文字最下面一行最后一个字母
如果外部时钟频率在33MHz以上时建议直接使用外部有源晶振
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列17
GND MR      uC / DSP
10K
<1.25V
STC6342
PFO=0 PFI PFO Interrupt
VCC RESET RESET
VCC
电源稳压
PFI PFO Interrupt
STC813L
100KGND WDI I/O
MR WDO
VCC RESET RESET
电源稳压 VCC
STC89C54RD+
<1.25V
PFO=0
STC89C52RC
STC89C51RC
STC89C53RC
STC89C58RD+
STC89C516RD+
PFI PFO Interrupt
STC706S
100KGND WDI I/O
MR WDO
VCC RESET RESET
VCC
uC / DSP
<1.25V
PFO=0
电源稳压
GND MR           单片机
100K
<1.25V
STC6344
PFO=0 PFI PFO Interrupt
VCC RESET RESET
VCC
电源稳压
典型MCU/DSP/uC 复位、电源监控、外部看门狗专用电路
上电复位, 掉电复位
1.高电平复位信号输出
上电复位, 掉电复位外部手动复位稳压块前端掉电检测
上电复位, 掉电复位
电源稳压块前端掉电检测
低电平路复位信号输出
上电复位, 掉电复位外部手动复位
电源稳压块前端掉电检测
外部硬件看门狗
2.低电平复位信号输出
上电复位, 掉电复位 上电复位, 掉电复位外部手动复位稳压块前端掉电检测
上电复位, 掉电复位外部手动复位
电源稳压块前端掉电检测
外部硬件看门狗
上电复位, 掉电复位外部手动复位
电源稳压块前端掉电检测
低电平路复位信号输出
STC810 *推荐
VCC 3
1 GND
Vcc
89C51RC
89LE516AD
89C54RD+
89C58RD+
2 RESET
RESET
STC809 *推荐
VCC 3
1 GND
Vcc
2 RESET
RESET
uC / DSP
GND RESET    单片机
10K
<1.25V
STC6345
PFO=0 PFI PFO Interrupt
VCC RESET RESET
RESET
uC / DSP
VCC
电源稳压
MR RESET
PFI PFO Interrupt
STC708
100KGND NC
VCC RESET
VCC
RESET
<1.25V
PFO=0
电源稳压
RESET
uC / DSP
单片机
使用外部专用复位电路的好处推荐使用 STC6344STC6345STC810)
1.确保上电时在用户设定的电源电压之上时钟振荡稳定后单片机才开始工作
2.确保掉电时在用户设定的电源电压之下立即让单片机复位以免单片机误动作
3.具有电源稳压块前端掉电检测的专用复位电路确保掉电前有充分的时间保存数据
人民币
人民币
人民币
4.复位门槛电压可选 L:4.63V; M:4.38V; J: 4.00V; T:3.08V; S:2.93V; R:2.63V
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列18
 STC89C51RC/RD+ 系列单片机 ISP 编程 原理 注意事项
外部手动复位看门狗复位,单片
机不会运行ISP 程序
PC 机端的控制软件必需先发下载命令流
再给单片机上电复位
为什么有些用户下载程序不成功在宏晶提供的下载板上
1.可能电脑端的STC-ISP控制软件要升级,现须升级到STC-ISP-3.1
2.现在单片机端下位机)ISP软件是 3.2C,解决了少数电脑慢通信连不上的问题
3.运行用户程序时,可到40M/80MHz,ISP下载程序以前的版本软件只能到 33M/66MHz
4.少数客户的PLCC-44,PQFP-44DIP-40 的转换座走线过长,造成时钟振荡不稳定,下载不成功
5.也有电脑 USB 电源供电不足的,可用万用表测一下,看 5V 部分是否在 4.5V 以上
6.可能单片机内部没有ISP 引导码,或 PC 串口波特率达不到115200,选 57600 试一下
7.电脑端的ISP控制软件STC-ISP-V3.1 加了一些功能欢迎测试
为什么有些用户下载程序不成功在用户自己的系统上
1.可能用户板上有外部看门狗需不让其起作用另要查时钟复位是否正常
2.可能用户板上 P3.0/RxDP3.1/Txd 除了接 RS-232 转换器外,还接了 RS-485 等电路,需要将其断开
用户系统接了RS-485/RS-232电路的,推荐在选项中选择下次冷启动时需 P1.0/P1.1=0.0 才判是否下载
程序
PC 机端控制软件 STC-ISP-V3.1 版本从www.
MCU-Memory.com下载,如何使用,本文相关
部分有说明
单片机运行ISP 程序检测有无合法下载
命令流,占时几十mS 几百mS如无合
法下载命令流,则立即跑用户程序
单片机彻底没电
给单片机上电复位,冷起动
冷起动单片机运行系统ISP 监控程序
检测P3.0/RxD有没有合法下载命令流
下载用户程序进用户程序区
软复位到用户程序区运行用户程序
如果已设置P1.0/P1.1=0/0才会判断是否下载
用户程序,则冷启动后 P1.0/P1.10/0
则直接跑用户程序只会占时50uS可忽略不计
建议用户选择P1.0/P1.1 不同时为0/0则立即
跑用户程序跨过系统ISP 监控程序
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列19
STC 89C51RC/RD+ 系列单片机在系统可编程的使用
 ---将用户代码下载进单片机内部不用编程器
STC89系列单片机大部分具有在系统可编程ISP特性,ISP  的好处是省去购买通用编程器
单片机在用户系统上即可下载烧录用户程序而无须将单片机从已生产好的产品上拆下再用通用编程
器将程序代码烧录进单片机内部有些程序尚未定型的产品可以一边生产一边完善加快了产品进入市
场的速度减小了新产品由于软件缺陷带来的风险由于可以将程序直接下载进单片机看运行结果故也可
以不用仿真器
大部分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 下载工具软件请随时更新目前已到Ver3.1版本(2005/12/7),支持
 *.Hex(Intel 16 进制格式文件,RC/RD+系列单片机的底层软件版本为 Ver3.2C(旧版可更换
    请随时注意升级PC电脑端的 ISP程序 Ver3.1 欢迎测试
上面左图适用如下型号
STC89C51RCSTC89C52RCSTC89C53RC
STC89LE51RCSTC89LE52RCSTC89LE53RC
STC89C54RD+STC89C58RD+STC89C516RD+
STC89LE54RD+STC89LE58RD+STC89LE516RD+
STC89C516RDSTC89C58RD  (老产品,不要选
STC89LV516RDSTC89LV58RD   老产品不要选
上面右图适用如下型号
    STC89LE516AD,STC89LE516X2,STC89LE58AD,STC89LE54AD,STC89LE52AD,LE51AD
(3).已经固化有ISP引导码并设置为上电复位进入 ISPSTC89C51RC/RD+系列单片机出厂时就已完全加
密,需要单片机内部的电放光后上电复位冷起动才运行系统 ISP程序
P1.0
P1.1
89LE516AD
89LE516X2
8 R2IN R2OUT 9
STC单片机在线编程线路 STC RS-232 转换器
0.1uF 2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
STC232, STC3232
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
MCU_RxD (P3.0)
MCU_TxD (P3.1)P3.0
P3.1
89C52RC
89C58RD+
PC /电脑 串口
89LE52RC
89LE516RD+
8 R2IN R2OUT 9
STC单片机在线编程线路 STC RS-232 转换器
0.1uF 2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
STC232, STC3232
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
MCU_RxD (P3.0)
MCU_TxD (P3.1)P3.0
P3.1
PC /电脑 串口
    单片机底层软件版本为Ver3.2C 的单片机PC电脑端的ISP 程序应用 Ver3.1 以上
XTAL2
XTAL1
GND
VCC
RESET
(4).可能用户板上P3.0/RxDP3.1/Txd除了接RS-232转换器外还接了RS-485 等电路需要将其断
开。用户系统接了RS-485 电路的推荐在选项中选择下次冷启动时需 P1.0/P1.1=0.0 才判是否下载程序
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列20
Step1/ 步骤选择你所使用的单片机型号,如 STC89C58RD+, STC89LE516AD
Step2/ 步骤打开文件要烧录用户程序必须调入用户的程序代码*.bin,  *.hex
Step3/步骤 选择串行口你所使用的电脑串口如串行口1--COM1, 串行口2--COM2,...
有些新式笔记本电脑没有RS-232 串行口可买一条USB-RS232 转接器人民币50 元左右
          有些USB-RS232转接器不能兼容可让宏晶帮你购买经过测试的转换器
Step4/步骤 设置是否双倍速双倍速选中Double Speed即可
    STC89C51RC/RD+系列可以反复设置 双倍速单倍速新的设置停电后重新冷启动后才能生效
    STC89LE516AD为单倍速STC89LE516X2 为双倍速用户自己无法指定双倍速单倍速
    STC89C516RD系列出厂时为单倍速用户可指定设为双倍速如想从双倍速恢复成单倍速
    需用通用编程器擦除整个晶片方可这会将单片机内部已烧录的ISP 引导程序擦除。一般使用
   缺省设置即可无须设置
 OSCDN: 单片机时钟振荡器增益降一半
 1/2 gain 为降一半,降低 EMI;选 full gain全增益为正常状态
Step5/步骤选择“Download/下载按钮下载用户的程序进单片机内部
              可重复执行Step5/ 步骤, 也可选择Re-Download/重复下载”按钮
下载时注意看提示主要看是否要给单片机上电或复位,  下载速度比一般通用编程器快
一般先选择Download/下载按钮然后再给单片机上电复位先彻底断电而不要先上电
关于硬件连接
(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). STC89LE516AD/X2 系列单片机冷启动时需要P1.0, P1.1 = 0,  上电复位才进入 ISP 模式
 载完后释放P1.0,P1.1, STC89LE516AD/X2 运行用户程序
 STC89C51RC/RD+系列单片机不需要P1.0,P1.1 = ,0但软件可选下次需要
 STC89LE516AD,STC89LE516X2,STC89LE58AD,STC89LE54AD必需要P1.0,P1.1 = ,0
(5). RS-232转换器可选用SP232/MAX232/STC232(4.5-5.5V),SP3232/MAX3232/STC3232(3V-5.5V).
 SP232/MAX232/STC232尽量选用SOP封装(窄体,SP232EEN)
开发调试时可考虑选择此项
除每次均要指定缓冲区起始地址外
二次及以后不能清缓冲区
第一次调文件进缓冲区,要清缓冲区
要调几个文件进缓冲区,如 EEPROM 里的
数据文件需要和应用程序文件一次同时
ISP下载编程进单片机
大批量生产时使用
如可将要写入EEPROM 区的数据文件调入
从缓冲区2000H/8000H 开始的地方,并不
清缓冲区,然后和应用程序一起写入
P3.0/P3.1 外接RS-485/RS-232 等通信
电路,建议选择P1.0/P1.1不同时等
于0/0则直接运行用户程序跨过系
ISP引导程序
新的设置冷启动彻底停电后再上电
后才生效
用户根据实际使用效果选择限制最高通信
波特率 576003840019200
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列21
如用户系统没有 RS-232 接口
可使用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 电源管脚
3V单片机短接JP1MCU-VCC, 3.3V 电源管脚
(2.) 根据单片机的工作电压选择复位信号
A. 5V单片机,短接 JP2 MCU-RST, 5V/MCU-RST 信号管脚
B. 3.3V单片机短接JP2MCU-RST, 3.3V/MCU-RST信号管脚
(3.)连接线宏晶提供
A. 将一端有芯连接座的插头插入PC/ 电脑RS-232 串行接口插座用于通信
B. 将同一端的USB插头插入PC/电脑USB接口用于取电
C. 将只有一个USB 插头的一端插入宏晶的STC-ISP Ver 2.0B PCBUSB1 插座用于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 转换
单片机在用户自己的板上完成下载烧录
U1-Socket 锁紧座不得插入单片机
将用户系统上的电源(MCU-VCC,GND)及单片机的P3.0/RXD,P3.1/TXD接入转换板CN2插座
   这样用户系统上的单片机就具备了与PC/ 电脑进行通信的能力
3. 将用户系统的单片机的P1.0,P1.1 接入转换板CN2 插座STC89LE516AD/X2 系列需要
    4SW3 开关处于按下状态P1.0, P1.1 = 0, 0,短接到地 STC89LE516AD/X2系列需要
5. 关于软件:选择“Download/下载
6. 给单片机系统上电复位注意是从用户系统自供电不要从电脑USB 取电电脑 USB座不插
7. 下载程序时如用户板有外部看门狗电路不得启动单片机必须有正确的复位但不能在ISP
下载程序时被外部看门狗复位可将外部看门狗电路WDI端/WDO 端浮空
8. 如有 RS-485 晶片连到P3.0/Rxd,P3.1/Txd,在下载时应将其断开
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列22
特殊功能寄存器映像  SFR Mapping
STC89C51RC, STC89C52RC, STC89C53RC, STC89C54RD+,STC89C58RD+,STC89C516RD+
STC89LE51RC,STC89LE52RC,STC89LE53RC,STC89LE54RD+,STC89LE58RD+,STC89LE516RD
      Bit
Addressable                                  Non  Bit  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
xx00,0000 ISP_DATA
1111,1111 ISP_ADDRH
0000,0000 ISP_ADDRL
0000,0000 ISP_CMD
1111,1000 ISP_TRIG
xxxx,xxxx ISP_CONTR
000x,x000 E7h
D8h DFh
D0h      PSW
0000,0000 D7h
C8h     T2CON
0000,0000     T2MOD
xxxx,xx00    RCAP2L
0000,0000    RCAP2H
0000,0000     TL2
0000,0000     TH2
0000,0000 CFh
C0h     XICON
0000,0000 C7h
B8h       IP
xx00,0000     SADEN
0000,0000 BFh
B0h       P3
1111,1111     IPH
0000,0000 B7h
A8h       IE
0000,0000     SADDR
0000,0000 AFh
A0h       P2
1111,1111    AUXR1
xxxx,0xx0 A7h
98h     SCON
0000,0000     SBUF
xxxx,xxxx 9Fh
90h       P1
1111,1111 97h
88h     TCON
0000,0000     TMOD
0000,0000     TL0
0000,0000     TL1
0000,0000     TH0
0000,0000     TH1
0000,0000     AUXR
xxxx,xx00 8Fh
80h       P0
1111,1111      SP
0000,0111      DPL
0000,0000      DPH
0000,0000     PCON
00x1,0000 87h
      0/8      1/9      2/A      3/B      4/C     5/D     6/E     7/F
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列23
RC/RD+系列8051 单片机内核特殊功能寄存器   C51 Core SFRs
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
ACC E0h Accumulator 0000,0000
F0h B Register 0000,0000
PSW D0h Program Status Word CY AC F0 RS1 RS0 OV  F1  P 0000,0000
SP 81h Stack Pointer 0000,0111
DPL 82h Data Pointer Low Byte 0000,0000
DPH 83h Data Pointer High Byte 0000,0000
RC/RD+系列8051 单片机系统管理特殊功能寄存器System Management SFRs
Mnemonic Add Name   7  6  5  4  3  2     1  0 Reset value
PCON 87h Power  Control SMOD  SMOD0  - POF GF1 GF0    PD IDL 00x1,0000
AUXR 8Eh Auxiliary  Register    -  -  -  -  -  - EXTRAM ALEOFF xxxx,xx00
AUXR1 A2h Auxiliary  Register    -  -  -  - GF2  -    - DPS xxxx,0xx0
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 无中断.
不同:STC89LE516AD / 89LE516X2系列单片机没有 EXTRAM 控制位.
RC/RD+ 系列8051 单片机 I/O 口 特殊功能寄存器   Port SFRs
不同:STC89LE516AD / 89LE516X2 系列单片机P4 口地址为C0h,而不是E8h.
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
P0 80h 8-bit  Port P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1111,1111
P1 90h 8-bit  Port P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 1111,1111
P2 A0h 8-bit  Port P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1111,1111
P3 B0h 8-bit  Port P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 1111,1111
P4 E8h 4-bit  Port  -  -  -  - P4.3 P4.2 P4.1 P4.0 xxxx,1111
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列24
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 GATE
GATE1 C/T#
C/T1# M1
M1_1 M0
M1_0 GATE
GATE0 C/T#
C/T0# M1
M0_1 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 DCEN xxxx,xx00
RCAP2L CAh Timer / Counter 
Reload/Capture  Low Byte 0000,0000
RCAP2H CBh Timer / Counter 
Reload/Capture  High Byte 0000,0000
TL2 CCh Timer / Counter 2 Low Byte 0000,0000
TH2 CDh Timer / Counter 2 High Byte 0000,0000
RC/RD+ 系列 8051 单片机 ISP/IAP 特殊功能寄存器    ISP/IAP SFRs
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
WDT_CONTR E1h Watch-Dog-Timer
Control register  -  - EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
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  -  -  -  -  - MS2 MS1 MS0 xxxx,x000
ISP_TRIG E6h ISP/IAP  Flash  Command  Trigger xxxx,xxxx
ISP_CONTR E7h ISP/IAP  Control  Register ISPEN SWBS SWRST  -  - WT2 WT1 WT0 000x,x000
RC/RD+ 系列 8051 单片机 串行口 特殊功能寄存器    Serial I/O Port SFRs
RC/RD+系列 8051 单片机 看门狗定时器 特殊功能寄存器 Watch Dog Timer SFRs
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列25
Mnemonic Add Name   7  6  5  4  3  2     1  0 Reset value
AUXR 8Eh Auxiliary  Register    -  -  -  -  -  - EXTRAM ALEOFF xxxx,xx00
     降低单片机对系统的电磁干扰 (EMI)---三大措施
1. 禁止ALE信号输出,适用型号
   STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC
   STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
  STC89LE516AD / X2 系列 (注:此系列单片机无EXTRAM 控制位
RC/RD+系列8051 单片机 扩展RAM管理及禁止ALE输出 特殊功能寄存器 只写
禁止ALE信号输出应用示例供参考,C语言):
sfr AUXR 0x8e; /* 声明 AUXR 寄存器的地址 */
AUXR 0x01;
/* ALEOFF 位置1,禁止 ALE 信号输出提升系统的 EMI 性能,复位后为 0,ALE 信号正常输出 */
禁止ALE 信号输出应用示例供参考汇编语言):
AUXR EQU 8Eh    或 AUXR DATA 8Eh
MOV AUXR,#00000001B;  ALEOFF 位置禁止 ALE 信号输出提升了系统的EMI 性能
2.  外部时钟频率降一半6T 模式: 传统的8051为每个机器周期 12 时钟,如将 STC 的增强型
8051 单片机在ISP 烧录程序时设为双倍速(及 6T 模式,每个机器周期 时钟), 则可将单片机外部时钟频
率降低一半,有效的降低单片机时钟对外界的干扰
3.  单片机内部时钟振荡器增益降低一半ISP烧录程序时将OSCDN设为1/2 gain可以
有效的降低单片机时钟高频部分对外界的辐射但此时外部晶振频率尽量不要高于24MHz
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列26
适用型号
   STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC
   STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
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.
STC89C51RC/RD+ 系列单片机扩展 RAM的使用
Mnemonic Add Name   7  6  5  4  3  2     1  0 Reset value
AUXR 8Eh Auxiliary  Register    -  -  -  -  -  - EXTRAM ALEOFF xxxx,xx00
注解STC89LE516AD,STC89LE516X2 系列无 EXTRAM 控制位仅有 ALEOFF 控制位
STC89LE516AD/X2系列用  MOVX A, @Ri / MOVX @Ri, 指令固定访问内部扩展的 EXTRAM,
    MOVX  A, @DPTR / MOVX @DPTR, 指令固定访问外部 RAM.
STC89C51RC/RD+ 系列单片机扩展 RAM 禁止
普通89C5189C52系列单片机的内部RAM只有12889C51/25689C52供用户使用
      1).128 字节的内部RAM地址00H7FH), 可直接寻址或间接寻址data/idata
      2).128 字节的内部 RAM(地址80HFFH), 只能间接寻址(普通 89C51 没有),idata
     3).特殊功能寄存器SFR(地址80HFFH), 只能直接寻址data
   特殊功能寄存器SFR 和高 128 字节的内部RAM 通过寻址方式来区分的,传统的8051 系列单片机只有
128-256字节 RAM 供用户使用在此情况下STC 公司响应广大用户的呼声在一些单片机内部增加了扩展
RAMSTC89C58RD+ 系列单片机扩展了1024 个字节RAM,共 1280 字节 RAMSTC89C52RC 系列扩展了256
字节RAM 512 字节 RAM。访问内部扩展 RAM 时,不影响 P0 /P2 /P3.6/P3.7
RC/RD+系列8051 单片机 扩展RAM管理及禁止ALE 输出 特殊功能寄存器   只写
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列27
应用示例供参考汇编
访问内部扩展的EXTRAM
新增特殊功能寄存器声明汇编方式
AUXR DATA 8EH;        或者用    AUXR EQU   8EH   定义
MOV AUXR, #00000000B;  EXTRAM位清为,  其实上电复位时此位就为
MOVX  A,  @DPTR / MOVX @DPTR, 指令可访问内部扩展的 EXTRAM
;RD+系列为(00H - 3FFH,1024 字节
;RC系列为(00H - FFH,256 字节
MOVX  A,  @Ri / MOVX  A, @Ri 指令可直接访问内部扩展的EXTRAM
使用此指令 RD+系列 只能访问内部扩展的EXTRAM(00H - FFH,256字节
写芯片内部扩展的EXTRAM
MOV DPTR, #address
MOV A, #value
MOVX @DPTR,
读芯片内部扩展的EXTRAM
MOV DPTR, #address
MOVX A, @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,  禁止访问此内部扩展的EXTRAM 就可以了
大实话 :  其实不用设置AUXR 寄存器即可直接用MOVX @DPTR指令访问此内部扩展的EXTRAM,超过此RAM
空间,将访问片外单元如果系统外扩了SRAM,而实际使用的空间小于1024/256 字节则可直接
将此SRAM 省去比如省去STC62WV256,IS62C256,UT6264 . 另外尽量用 MOVX A, @Ri 
MOVX @Ri, 指令访问此内部扩展的 EXTRAM,这样只能访问 256 字节的扩展EXTRAM,但可与很
多单片机兼容。如STC89LE516AD/X2 系列MOVX A, @Ri / MOVX @Ri, 指令只能固定访问内
部扩展的EXTRAM, MOVX  A,  @DPTR / MOVX  @DPTR, 指令固定访问外部 RAM.
应用示例供参考C  语言
/* 访问内部扩展的EXTRAM */
/*  RD+ 系列为(00H - 3FFH, 1024 字节扩展的 EXTRAM) */
/*  RC 系列为(00H -  FFH, 256字节扩展的 EXTRAM)  */
/* 新增特殊功能寄存器声明(C 语言方式*/
sfr AUXR 0x8e /* 如果不需设置AUXR 就不用声明AUXR */
AUXR 0x00; /* 0000,0000  EXTRAM 位清 0, 其实上电复位时此位就为0 */
unsigned char  xdata  sum, loop_counter, test_array[128];
/*  将变量声明成 xdata 即可直接访问此内部扩展的EXTRAM */
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列28
/*  写芯片内部扩展的EXTRAM */
sum 0;
loop_counter 128;
test_array[0] 5;
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 位设为, 禁止访问 EXTRAM,以防冲突 */
有些用户系统因为外部扩展了I/O 或者用片选去选多个RAM 区,有时与此内部扩展的EXTRAM
辑上有冲突,将此位设置为”1, 禁止访问此内部扩展的EXTRAM 就可以了
  AUXR 是只写寄存器
所谓只写就是直接用MOV  AUXR,  #data”去写而不要用含读的操作如“或,与,入栈
/*  读芯片内部扩展的 EXTRAM */
因为他不让你读如去读,读出的数值不确定用含读的操作如“或,与,入栈会达不到
需要的效果
单片机版本和以前版本的区别关于内部扩展 RAM
传统的8051内部无扩展RAM,而 STC89C51RC/RD+ 系列单片机内部均已扩展了 RAM,少数客户的老产品
P0/P2 是作为总线用的而不是作为普通I/O 口用有些需要用软件关闭此内部扩展 RAM而客户的源程序早
已遗失或开发工程师早已离职,所以STC89C51RC/RD+系列单片机为了解决此问题,推出 版本以供用户
ISP下载程序时就可选择关闭此内部扩展RAM以达到完全兼容以前的老产品的目的
STC89C51RC/RD+系列单片机版本以前的单片机AUXR寄存器是只写特性 版本及以后的版本
将都是既可以读又可以写
一般不要在ISP下载程序时就选择关闭此内部扩展 RAM因为流行用法是复位后缺省是允许访问扩展RAM,
复位后AUXR.1/AUXR.EXTRAM = 0, 选择关闭此内部扩展RAM,则本来是
ISP下载程序时选择
允许访问内部扩展RAMISP下载程序时选择
禁止访问内部扩展RAM
AUXR.1/AUXR.EXTRAM = 是允许访问内部扩展RAM 是禁止访问内部扩展RAM
AUXR.1/AUXR.EXTRAM = 是禁止访问内部扩展RAM 是允许访问内部扩展RAM
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列29
/* ---  STC International Limited ---------------- */
/* ---  Web  www.mcu-memory.com  ---------------- */
/* ---  xdata test ------------------------------- */
/* ---  宏晶科技 姚永平  设计 2005/6/1   ---------- */
/* ---  STC89C54RD+, STC89C58RD+, STC89C516RD+ --- */
/* ---  STC89LE54RD+,STC89LE58RD+,STC89LE516RD+ -- */
/* ---  Mobile: 13922805190 ---------------------- */
/* ---  Fax: 0755-82944243 ----------------------- */
/* ---  Tel: 0755-82908285 ----------------------- */
/* ---  Web  : www.mcu-memory.com ---------------- */
#include <reg52.h>
#include <intrins.h>        /* use _nop_() function */
sfr AUXR = 0x8e;
sfr AUXR1 = 0xa2;
sfr P4 = 0xe8;
sfr XICON = 0xc0;
sfr IPH = 0xb7;
sfr WDT_CONTR = 0xe1;
sfr ISP_DATA = 0xe2;
sfr ISP_ADDRH = 0xe3;
sfr ISP_ADDRL = 0xe4;
sfr ISP_CMD = 0xe5;
sfr ISP_TRIG = 0xe6;
sfr ISP_CONTR = 0xe7;
sbit ERROR_LED = P1^5;
sbit OK_LED = P1^7;
void main()
    unsigned int array_point = 0;
    / 测试数组 Test_array_one[512],Test_array_two[512]*/
    unsigned char xdata Test_array_one[512]        
    {
        000,     0     0x02,     0,     0x0     05,     0x     0x07,
        008,     0     0x0a,     0,     0x0     0d,     0x     0x0f,
        010,     0     0x12,     0,     0x1     05,     0x     0x17,
        018,     0     0x1a,     0,     0x1     0d,     0x     0x1f,
        020,     0     0x22,     0,     0x2     05,     0x     0x27,
   STC89C58RD+系列单片机内部扩展 RAM 演示程序
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列30
        028,     0     0x2a,     0,     0x2     0d,     0x     0x2f,
        030,     0     0x32,     0,     0x3     05,     0x     0x37,
        038,     0     0x3a,     0,     0x3     0d,     0x     0x3f,
        040,     0     0x42,     0,     0x4     05,     0x     0x47,
        048,     0     0x4a,     0,     0x4     0d,     0x     0x4f,
        050,     0     0x52,     0,     0x5     05,     0x     0x57,
        058,     0     0x5a,     0,     0x5     0d,     0x     0x5f,
        060,     0     0x62,     0,     0x6     05,     0x     0x67,
        068,     0     0x6a,     0,     0x6     0d,     0x     0x6f,
        070,     0     0x72,     0,     0x7     05,     0x     0x77,
        078,     0     0x7a,     0,     0x7     0d,     0x     0x7f,
        080,     0     0x82,     0,     0x8     05,     0x     0x87,
        088,     0     0x8a,     0,     0x8     0d,     0x     0x8f,
        090,     0     0x92,     0,     0x9     05,     0x     0x97,
        098,     0     0x9a,     0,     0x9     0d,     0x     0x9f,
        0a0,     0     0xa2,     0,     0xa     05,     0x     0xa7,
        0a8,     0     0xaa,     0,     0xa     0d,     0x     0xaf,
        0b0,     0     0xb2,     0,     0xb     05,     0x     0xb7,
        0b8,     0     0xba,     0,     0xb     0d,     0x     0xbf,
        0c0,     0     0xc2,     0,     0xc     05,     0x     0xc7,
        0c8,     0     0xca,     0,     0xc     0d,     0x     0xcf,
        0d0,     0     0xd2,     0,     0xd     05,     0x     0xd7,
        0d8,     0     0xda,     0,     0xd     0d,     0x     0xdf,
        0e0,     0     0xe2,     0,     0xe     05,     0x     0xe7,
        0e8,     0     0xea,     0,     0xe     0d,     0x     0xef,
        0f0,     0     0xf2,     0,     0xf     05,     0x     0xf7,
        0f8,     0     0xfa,     0,     0xf     0d,     0x     0xff,
        0ff,     0     0xfd,     0,     0xf     0a,     0x     0xf8,
        0f7,     0     0xf5,     0,     0xf     02,     0x     0xf0,
        0ef,     0     0xed,     0,     0xe     0a,     0x     0xe8,
        0e7,     0     0xe5,     0,     0xe     02,     0x     0xe0,
        0df,     0     0xdd,     0,     0xd     0a,     0x     0xd8,
        0d7,     0     0xd5,     0,     0xd     02,     0x     0xd0,
        0cf,     0     0xcd,     0,     0xc     0a,     0x     0xc8,
        0c7,     0     0xc5,     0,     0xc     02,     0x     0xc0,
        0bf,     0     0xbd,     0,     0xb     0a,     0x     0xb8,
        0b7,     0     0xb5,     0,     0xb     02,     0x     0xb0,
        0af,     0     0xad,     0,     0xa     0a,     0x     0xa8,
        0a7,     0     0xa5,     0,     0xa     02,     0x     0xa0,
        09f,     0     0x9d,     0,     0x9     0a,     0x     0x98,
        097,     0     0x95,     0,     0x9     02,     0x     0x90,
        08f,     0     0x8d,     0,     0x8     0a,     0x     0x88,
        087,     0     0x85,     0,     0x8     02,     0x     0x80,
        07f,     0     0x7d,     0,     0x7     0a,     0x     0x78,
        077,     0     0x75,     0,     0x7     02,     0x     0x70,
        06f,     0     0x6d,     0,     0x6     0a,     0x     0x68,
        067,     0     0x65,     0,     0x6     02,     0x     0x60,
        05f,     0     0x5d,     0,     0x5     0a,     0x     0x58,
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列31
        057,     0     0x55,     0,     0x5     02,     0x     0x50,
        04f,     0     0x4d,     0,     0x4     0a,     0x     0x48,
        047,     0     0x45,     0,     0x4     02,     0x     0x40,
        03f,     0     0x3d,     0,     0x3     0a,     0x     0x38,
        037,     0     0x35,     0,     0x3     02,     0x     0x30,
        02f,     0     0x2d,     0,     0x2     0a,     0x     0x28,
        027,     0     0x25,     0,     0x2     02,     0x     0x20,
        01f,     0     0x1d,     0,     0x1     0a,     0x     0x18,
        017,     0     0x15,     0,     0x1     02,     0x     0x10,
        00f,     0     0x0d,     0,     0x0     0a,     0x     0x08,
        007,     0     005,     0     0x03,     0     0x01     0
    }
    unsigned char xdata Test_array_two[512]        
    {
        000,     0     0x02,     0,     0x0     05,     0x     0x07,
        008,     0     0x0a,     0,     0x0     0d,     0x     0x0f,
        010,     0     0x12,     0,     0x1     05,     0x     0x17,
        018,     0     0x1a,     0,     0x1     0d,     0x     0x1f,
        020,     0     0x22,     0,     0x2     05,     0x     0x27,
        028,     0     0x2a,     0,     0x2     0d,     0x     0x2f,
        030,     0     0x32,     0,     0x3     05,     0x     0x37,
        038,     0     0x3a,     0,     0x3     0d,     0x     0x3f,
        040,     0     0x42,     0,     0x4     05,     0x     0x47,
        048,     0     0x4a,     0,     0x4     0d,     0x     0x4f,
        050,     0     0x52,     0,     0x5     05,     0x     0x57,
        058,     0     0x5a,     0,     0x5     0d,     0x     0x5f,
        060,     0     0x62,     0,     0x6     05,     0x     0x67,
        068,     0     0x6a,     0,     0x6     0d,     0x     0x6f,
        070,     0     0x72,     0,     0x7     05,     0x     0x77,
        078,     0     0x7a,     0,     0x7     0d,     0x     0x7f,
        080,     0     0x82,     0,     0x8     05,     0x     0x87,
        088,     0     0x8a,     0,     0x8     0d,     0x     0x8f,
        090,     0     0x92,     0,     0x9     05,     0x     0x97,
        098,     0     0x9a,     0,     0x9     0d,     0x     0x9f,
        0a0,     0     0xa2,     0,     0xa     05,     0x     0xa7,
        0a8,     0     0xaa,     0,     0xa     0d,     0x     0xaf,
        0b0,     0     0xb2,     0,     0xb     05,     0x     0xb7,
        0b8,     0     0xba,     0,     0xb     0d,     0x     0xbf,
        0c0,     0     0xc2,     0,     0xc     05,     0x     0xc7,
        0c8,     0     0xca,     0,     0xc     0d,     0x     0xcf,
        0d0,     0     0xd2,     0,     0xd     05,     0x     0xd7,
        0d8,     0     0xda,     0,     0xd     0d,     0x     0xdf,
        0e0,     0     0xe2,     0,     0xe     05,     0x     0xe7,
        0e8,     0     0xea,     0,     0xe     0d,     0x     0xef,
        0f0,     0     0xf2,     0,     0xf     05,     0x     0xf7,
        0f8,     0     0xfa,     0,     0xf     0d,     0x     0xff,
        0ff,     0     0xfd,     0,     0xf     0a,     0x     0xf8,
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列32
        0f7,     0     0xf5,     0,     0xf     02,     0x     0xf0,
        0ef,     0     0xed,     0,     0xe     0a,     0x     0xe8,
        0e7,     0     0xe5,     0,     0xe     02,     0x     0xe0,
        0df,     0     0xdd,     0,     0xd     0a,     0x     0xd8,
        0d7,     0     0xd5,     0,     0xd     02,     0x     0xd0,
        0cf,     0     0xcd,     0,     0xc     0a,     0x     0xc8,
        0c7,     0     0xc5,     0,     0xc     02,     0x     0xc0,
        0bf,     0     0xbd,     0,     0xb     0a,     0x     0xb8,
        0b7,     0     0xb5,     0,     0xb     02,     0x     0xb0,
        0af,     0     0xad,     0,     0xa     0a,     0x     0xa8,
        0a7,     0     0xa5,     0,     0xa     02,     0x     0xa0,
        09f,     0     0x9d,     0,     0x9     0a,     0x     0x98,
        097,     0     0x95,     0,     0x9     02,     0x     0x90,
        08f,     0     0x8d,     0,     0x8     0a,     0x     0x88,
        087,     0     0x85,     0,     0x8     02,     0x     0x80,
        07f,     0     0x7d,     0,     0x7     0a,     0x     0x78,
        077,     0     0x75,     0,     0x7     02,     0x     0x70,
        06f,     0     0x6d,     0,     0x6     0a,     0x     0x68,
        067,     0     0x65,     0,     0x6     02,     0x     0x60,
        05f,     0     0x5d,     0,     0x5     0a,     0x     0x58,
        057,     0     0x55,     0,     0x5     02,     0x     0x50,
        04f,     0     0x4d,     0,     0x4     0a,     0x     0x48,
        047,     0     0x45,     0,     0x4     02,     0x     0x40,
        03f,     0     0x3d,     0,     0x3     0a,     0x     0x38,
        037,     0     0x35,     0,     0x3     02,     0x     0x30,
        02f,     0     0x2d,     0,     0x2     0a,     0x     0x28,
        027,     0     0x25,     0,     0x2     02,     0x     0x20,
        01f,     0     0x1d,     0,     0x1     0a,     0x     0x18,
        017,     0     0x15,     0,     0x1     02,     0x     0x10,
        00f,     0     0x0d,     0,     0x0     0a,     0x     0x08,
        007,     0     005,     0     0x03,     0     0x01     0
    }
    ERROR_LED = 1;
    OK_LED = 1;
    for(array_point=0; array_point<512; array_point++)
    {
        if(Test_array_one[array_point]!=Test_array_two [array_point]){
            ERROR_D = 0;
            OK_LE = 1
            brek;
        }
        else{
            OK_LE = 0
            ERROR_D = 1;
         }
    }
    while(1);
 }
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列33
    适用型号
   STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC
   STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
STC89LE516AD,STC89LE516X2
RC/RD+/AD/X2 系列8051 单片机 双数据指针 特殊功能寄存器
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选择位为 时,选择DPTR0, DPS
选择位为 时,选择DPTR1.
AUXR1特殊功能寄存器,位于 A2H单元,其中的位不可用布尔指令快速访问.但由于DPS位位于 bit0,
故对AUXR1寄存器用 INC指令,DPS 位便会反转,由 变成 或由 变成 0,即可实现双数椐指针的快速切
应用示例供参考
新增特殊功能寄存器定义
AUXR1 DATA 0A2H
MOV AUXR1, #0 此时 DPS0,DPTR0有效
MOV DPTR, #1FFH DPTR0 1FFH
MOV A, #55H
MOVX @DPTR, 1FFH 单元置为 55H
MOV DPTR, #2FFH ; DPTR0 2FFH
MOV A, #0AAH
MOVX @DPTR, 2FFH 单元置为 0AAH
INC AUXR1 ; 此时DPS 1,DPTR1有效
MOV DPTR, #1FFH ; DPTR1 1FFH
MOVX A, @DPTR ; DPTR1 数椐指针指向的1FFH 单元的内容累加器 变为55H.
INC AUXR1 ; 此时DPS 0,DPTR0有效
MOVX A, @DPTR ; DPTR0 数椐指针指向的2FFH 单元的内容累加器 变为0AAH.
INC AUXR1 ; 此时DPS 1,DPTR1有效
MOVX A, @DPTR ; DPTR1 数椐指针指向的1FFH 单元的内容累加器 变为55H.
INC AUXR1 ; 此时DPS 0,DPTR0有效
MOVX A, @DPTR ; DPTR0 数椐指针指向的2FFH 单元的内容累加器 变为0AAH.
结论: Philips使用方式一致
Mnemonic Add Name   7  6  5  4  3  2     1  0 Reset value
AUXR1 A2h Auxiliary  Register    -  -  -  - GF2  -    - DPS xxxx,0xx0
          双数据指针DPTR0,DPTR1 的使用
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列34
  P4  (可以位寻址可像操作P1/P2/P3一样操作P4口)
RC/RD+ 系列8051 单片机 I/O 口 特殊功能寄存器   Port SFRs
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
P0 80h 8-bit  Port P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1111,1111
P1 90h 8-bit  Port P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 1111,1111
P2 A0h 8-bit  Port P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1111,1111
P3 B0h 8-bit  Port P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 1111,1111
P4 E8h 4-bit  Port  -  -  -  - P4.3 P4.2 P4.1 P4.0 xxxx,1111
汇编语言
P4 DATA 0E8H or P4 EQU 0E8H
MOV A, P4 Read P4 status to Accumulator.
MOV P4, #0AH Output data “A”through P4.0 - P4.3
SETB P4.0 P4.0 = 
CLR P4.0 P4.0 = 
MOV P4, #0AH Output data “A”through P4.0 - P4.3
    C语言:
注:STC89LE516AD,STC89LE516X2,STC89LE58AD,STC89LE54ADP4 口地址在 C0h
sfr P4 0xe8;语言中声明 P4 口特殊功能寄存器地址
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列35
适用型号
   STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC
   STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+
        宏晶技术支持请直接向宏晶采购晶片而不要通过中间商支持我们更好地服务
RC/RD+系列 8051 单片机 看门狗定时器 特殊功能寄存器 Watch Dog Timer SFR
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 看门狗“IDLE模式位当设置为“1”时,看门狗定时器在空闲模式”计数
                                当清“0”该位时, 看门狗定时器在空闲模式时不计数
PS2, PS1, PS0 Pre-scale value of Watchdog timer is shown as the bellowed table:
            看门狗定时器预分频值,如下表所示
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
WDT_CONTR E1h Watch-Dog-Timer
Control register  -  - EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
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
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
                看门狗应用
The WDT period is determined by the following equation 看门狗溢出时间计算
看门狗溢出时间 N x Pre-scale x 32768) / Oscillator frequency
N = 12, 当在12 clock mode 时,N = ,当在6 clock mode 
设时钟为12MHz12 时钟模式
看门狗溢出时间 =  12 x Pre-scale x 32768) / 12000000 = Pre-scale x 393216 / 12000000
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列36
    设时钟为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 = 
Main_Loop:
LCALL Display_Loop
LCALL Keyboard_Loop
MOV WDT_CONTR, #00110100B ;  喂狗,  不要用 ORL    WDT_CONTR,  #00010000B
LJMP Main_Loop
语言程序示例
#include<reg52.h>
sfr WDT_CONTR 0xe1;
void main()
{   
WDT_CONTR 0x34;
/* 0011,0100 EN_WDT = 1,CLR_WDT = 1, IDLE_WDT = 0, PS2 = 1, PS1 = 0, PS0 = 
*/ while(1){
display();
keyboard();
WDT_CONTR 0x34;  /* 喂狗,  不要用  WDT_CONTR WDT_CONTR 0x10;*/
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列37
本程序用于验证 STC89C/LE51RC/RD+ 系列单片机的看门狗及其溢出时间计算公式
看门狗及其溢出时间 = (N * Pre_scale *32768)/Oscillator frequency
;  N = 12, 当在 12 clock mode , N = 6, 当在 6 clock mode 时。
DTCR      EQU      0EH          ;看门狗地址
ED        EU      P1.5          ; P1.5 控制发光二级管
Pre_scale_Word  EQU   0x35       启动看门狗,预分频数=64
;f=18.432MHz12clock mode 
;   看门狗溢出时间 = (12 * 64 * 32768)/18432000 = 1.36S
    ORG   0000H
    AJMP  main
    ORG   0100H
main:
    CLR   LED                    ;点亮 LED
    A dlay                 ;延时,让 LED 亮大约 1S 的时间
    MOV   WDTCR, #Pre_scale_Word 启动看门狗,若注释掉本条指令即不启动狗
                                   ;LD 只会亮一次
    SEB  LD                      ;熄灭 LED
wait:
    S  w         跳转到本语句停机)等待看门狗溢出复位, 复位后将再次点亮 LED
delay:
    MOV   R0, #0
    MOV   R1, #0
    MOV   R2, #15
delay_loop:
    DJNZ  R0, delay_loop
    DJNZ  R1, delay_loop
    DJNZ  R2, delay_loop
    R
    E
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列38
中断
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 完全兼容优先级可设为 级,另增加个外部中断INT2/P4.3,INT3/P4.2
Interrupt
 Source
中断源
Vector
Address
中断
向量地址
Polling
Sequence
中断
查询次序
中断
优先级设置 优先级
最低 优先级优先级优先级
最高
Interrupt
Request
中断请求
/INT0 0003H 0(最优先PX0H,PX0 0,0 0,1 1,0 1,1 IE0
Timer 000BH PT0H,PT0 0,0 0,1 1,0 1,1 TF0
/INT1 0013H PX1H,PX1 0,0 0,1 1,0 1,1 IE1
Timer 001BH PT1H,PT1 0,0 0,1 1,0 1,1 IF1
UART 0023H PSH,  PS 0,0 0,1 1,0 1,1 RI + TI
Timer 002BH PT2H,PT2 0,0 0,1 1,0 1,1 TF2 + EXF2
/INT2 0033H 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
XICON扩展中断控制寄存器控制外部中断INT2/INT3
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列39
Mnemonic Add Name   7  6  5  4  3  2     1  0 Reset value
PCON 87h Power  Control SMOD  SMOD0  - POF GF1 GF0    PD IDL 00x1,0000
    PCON 寄存器的高级应用上电复位标志进入掉电模式
POF上电复位标志位单片机停电后上电复位标志位为 可由软件清
实际应用:要判断是上电复位(冷启动), 还是外部复位脚输入复位信号产生的复位,还是内部看门狗复位,
可通过如下方法来判断
PD将其置 时,进入Power  Down 模式,可由外部中断低电平触发中断模式唤醒
   进入掉电模式时外部时钟停振CPU定时器串行口全部停止工作只有外部中断继续工作
IDL将其置 时,进入 IDLE 模式(空闲), CPU 不工作外,其余仍继续工作
POF 外部手动复位
或看门狗复位
   是
POF=1  冷启动
上电复位
 POF=0
在初始化程序
POF是否为
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列40
;*************************************************************************
;Wake Up Idle and Wake Up Power Down
;*************************************************************************
    ORG   0000H
    AJMP MAIN
    ORG   0003H
int0_interrupt:
    CLR   P.7          ;点亮 P1.7 LED 表示已响应 int0 中断
    A d         ;延时是为了便于观察, 实际应用不需延时
    CLR   EA            ;关闭中断, 简化实验. 实际应用不需关闭中断
    RETI
    ORG   0013H
int1_interrupt:
    CLR   P.6          ;点亮 P1.6 LED 表示已响应 int1 中断
    A d         ;延时是为了便于观察, 实际应用不需延时
    CLR   EA            ;关闭中断, 简化实验. 实际应用不需关闭中断
    RETI
    ORG   0100H
delay:
    CL   A
    MOV   R0, A
    MOV   R1, A
    MOV   R2, #02
delay_loop:
    DJNZ  R0, delay_loop
    DJNZ  R1, delay_loop
    DJNZ  R2, delay_loop
    R
main:
    M   R #        ;P1 LED 递增方式变化, 表示程序开始运行
main_loop:
    M   A, R
    CP   A
    MOV   P1, A
    ACALL delay
STC89C51RC/RD+ 系列单片机如何从掉电模式唤醒
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列41
    INC   R3
    M   A, R
    SUBB  A, #18H
    JC    main_loop
    M   P #     ;熄灭全部灯表示进入 Power Down 状态
    CLR   IT           ;设置低电平激活外部中断
   SEB  I0           下降沿激活不了 Power Down 状态下的外部中断原因是
                        ;MCU 判断下降沿需要 2 个机器周期, 而此时 CLOCK 已停止
                       ;MCU 无法运行 2 个机器周期
    SET  EX0           ;允许外部中断
    CLR   IT           ;设置低电平激活外部中断
   S  I           ;下降沿激活不了 Power Down 状态下的外部中断, 原因同上
    SET  EX1           ;允许外部中断
    SETB  E            ;开中断, 若不开中断就不能唤醒 Power Down
下条语句将使 MCU 进入 idle 状态或 Power Down 状态
低电平激活外部中断可以将 MCU  Power Down 状态中唤醒
其方法为将外部中断脚拉低
    M   A PCON       ; PD=1, 进入 Power Down 状态, PD = PCON.2
    ORL   A, #02H
    MOV   PCON, 
    MOV   PCON, #01H    删除本语句前的";", 同时将前 条语句前加上注释符号 ";",
                        ; IDL=1, 可进入 idle 状态, IDL = PCON.1
    M   P1, #0DF     ;请注意
                        ; 1.外部中断使 MCU 退出 Power Down 状态,执行本条指令后
                        ;响应中断, 表现为P1.5P1.7LED同时亮(INT0唤醒)
                        ; 2外部中断使MCU退出 idle 状态,先响应中断然后再执行本
                        ;条指令, 表现为P1.7 LED 先亮(INT0 唤醒)P1.5 LED 后亮
WAIT1
    SP  WAIT1         ;跳转到本语句, 停机
    E
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列42
定时器
    定时和计数功能由特殊功能寄存器TMOD 的控制位 C/T 进行选择TMOD 寄存器的各位信息如下表所
列。可以看出,2 个定时 计数器有 种操作模式,通过 TMOD M1 M0 选择。2 个定时 计数器的模式
都相同,模式 不同,各模式下的功能如下所述
      寄存器TMOD 各位的功能描述
TMOD     地址89H
不可位寻址
复位值00H
GATE C/T M1 M0 GATE C/T M1 M0
定时器 定时器
   符号       功能
TMOD.7/ GATE TMOD.7 控制定时器1, 时只有在INT1 脚为高及 TR1 控制位置时才
                    可打开定时器计数器
TMOD.3/ GATE TMOD.3 控制定时器0, 时只有在INT0 脚为高及 TR0 控制位置时才
                    可打开定时器计数器
TMOD.6/ C/T TMOD.6控制定时器用作定时器或计数器清零则用作定时器从内
                  部系统时钟输入), 用作计数器(从 T1/P3.5脚输入
TMOD.2/ C/T TMOD.2控制定时器用作定时器或计数器清零则用作定时器从内
                  部系统时钟输入), 用作计数器 T0/P3.4脚输入
TMOD.5/TMOD.4  M1M0 定时器 计数器 模式选择
0    0 13位定时器 计数器,兼容 8048 定时器模式TL1 只用低位参与分
                   频,TH1 整个位全用
                0    1 16 位定时器 计数器TL1TH1 全用
                1    0 位自动重装载定时器当溢出时将TH1 存放的值自动重装入TL1
                1    1 定时器计数器此时无效(停止计数)。
TMOD.1/TMOD.0  M1M0 定时器 计数器 模式选择
0    0 13位定时器 计数器,兼容 8048 定时器模式TL0 只用低位参与分
                    频,TH0 整个 位全用
                0    1 16 位定时器 计数器TL0TH0 全用
                1    0 位自动重装载定时器当溢出时将TH0 存放的值自动重装入TL0
                1    1 定时器此时作为双位定时器计数器TL0作为一个 位定时器
                   数器,通过标准定时器的控制位控制TH0 仅作为一个 位定时器
                         由定时器 的控制位控制
1.模式
将定时器设置成模式时类似8048 定时器 位计数器带32 分频的预分频器下图所示为模式
工作方式此模式下定时器配置为13位的计数器 TLn的低位和THn 位所构成TLn
位溢出向THn进位,THn 计数溢出置位 TCON 中的溢出标志位TFnn=0,1)。 GATE=0时,如TRn=1
则定时器计数。GATE=1时,允许由外部输入INT1控制定时器 INT0控制定时器 这样可实现脉宽
测量。TRn TCON 寄存器内的控制位TCON 寄存器各位的具体功能描述见TCON寄存器各位的具体功能
描述表
7      6       5      4       3      2      1       0
STC89C51RC/RD+系列单片机定时器的使用
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列43
    寄存器 TCON 各位的功能描述
TCON  地址88H
可位寻址
复位值00H 76543210
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
符  功 
TCON.7
TCON.6
TCON.5
TCON.4
TCON.3
TCON.2
TCON.1
TCON.0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
定时器计数器溢出标志位。当 T1被允许计数后T1 从初值开始加 计数,最
高位产生溢出时,置“TF1并向CPU请求中断 CPU响应时由硬件
清“TF1TF1 也可以由程序查询或清
定时器T1 的运行控制位该位由软件置位和清零。当GATETMOD.7=0TR1=1
就允许T1 开始计数,TR1=0时禁止T1计数 GATETMOD.7=1TR1=1INT1
输入高电平时才允许T1计数
外部中断中断请求标志位。当主机响应中断转向该中断服务程序执行时,由内部硬件
自动将IE1位清
外部中断触发方式控制位IT1=0时,外部中断为低电平触发方式,当 INT1P3.
输入低电平时置位IE1采用低电平触发方式时外部中断源输入到INT1
必须保持低电平有效直到该中断被CPU响应,同时在该中断服务程序执行完之前,外
部中断源必须被清除P3.3要变高), 否则将产生另一次中断 IT1=1时,则外部
中断INT1端口由”→“下降沿跳变激活中断请求标志位IE1,向主
机请求中断处理
    13 位寄存器包含THn 全部 个位及TLn的低 位。TLn 的高 位不定,可将其忽略置位运行标
志(TRn不能清零此寄存器模式的操作对于定时器及定时器都是相同的。2 个不同的 GATE
TMOD.7TMOD.3分别分配给定时器及定时器
定时器计数器溢出标志位。当T0被允许计数后T0 从初值开始加计数,最高
位产生溢出时,置“TF0并向CPU请求中断 CPU 响应时,由硬件清“
TF0TF0也可以由程序查询或清
定时器T0 的运行控制位该位由软件置位和清零。当GATETMOD.3=0TR0=1
就允许T0 开始计数,TR1=0时禁止T0计数 GATETMOD.3=1TR0=1INT0
输入高电平时才允许T0计数
外部中断中断请求标志位。当主机响应中断转向该中断服务程序执行时,由内部硬件
自动将IE0位清
外部中断触发方式控制位。IT0=0时,外部中断 为低电平触发方式,当 INT0P3.
输入低电平时置位IE0采用低电平触发方式时外部中断源输入到INT0
必须保持低电平有效直到该中断被CPU 响应,同时在该中断服务程序执行完之前,外
部中断源必须被清除P3.2要变高), 否则将产生另一次中断。当 IT0=1时,则外部
中断INT0)端口由“”→“”下降沿跳变,激活中断请求标志位IE1
主机请求中断处理
OSC ÷d*
 
C/T=1 TFn
控制
C/T=0
Tn 
TLn
THn
 中断
TRn
定时器
GATE 
INTn 
   定时器 计数器 和定时器 计数器 的模式 0      1位定时 计数器
* 时钟模式下d=6 12 时钟模式下d=12
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列44
3.模式
此模式下定时器计数器 0和作为可自动重装载的位计数器TLn), 如下图所示TLn的溢
出不仅置位TFn而且将THn 内容重新装入TLnTHn 内容由软件预置重装时THn 内容不变模式
的操作对于定时器及定时器 是相同的
2.模式
模式除了使用了THn TLn全部16 位外,其他与模式完全相同
OSC ÷d*
 
C/T=1 TFn
控制
C/T=0
Tn 
中断
TRn
INTn 
TLn
 
THn
 
重装
定时器
GATE 
   定时器 计数器 0和的模式      8位自动重装载
OSC ÷d*
 
C/T=1 TFn
控制
C/T=0
Tn 
TLn
THn
 中断
TRn
定时器
GATE 
INTn 
   定时器 计数器 和定时器 计数器 的模式 1      1位定时 计数器
* 时钟模式下d=6 12 时钟模式下d=12
* 时钟模式下d=6 12 时钟模式下d=12
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列45
     对定时器此模式下定时器 TL0TH0作为个独立的位计数器下图为模式时的定时器
逻辑图。TL0占用定时器的控制位C/TGATETR0INT0TF0TH0限定为定时器功能(计
数器周期), 占用定时器 TR1 TF1。此时,TH0 控制定时器 中断
模式是为了增加一个附加的位定时器 计数器而提供的使单片机具有三个定时器计数器
模式只适用于定时器计数器 定时器T1处于模式时相当于TR1=0停止计数此时T1 可用来作
串行口波特率发生器), T0可作为两个定时器用
4.模式
对定时器 在模式 时,定时器 停止计数,效果与将 TR1 设置为 相同
OSC ÷d*
 
C/T=1 TF0
C/T=0
T0 
TR0
INT0 
TL0
 
OSC ÷d* TF1
TH0
 
TR1
定时器
GATE 
控制
控制
中断
中断
   定时 计数器 的模式 3      两个 位计数器
* 时钟模式下d=6 12 时钟模式下d=12
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列46
                 定时器应用举例
  定时 计数器编程,定时 计数器的应用编程主要需考虑根据应用要求通过程序初
始化,正确设置控制字正确计算和计算计数初值编写中断服务程序适时设置控制位等通常情
况下,设置顺序大致如下
1)工作方式控制字TMODT2CON的设置
2)计数初值的计算并装入THxTLxRCAP2HRCAP2L
3)中断允许位ETxEA 的设置使主机开放中断
4)  停位TRx 的设置等
现以定时计数器0或为例作一简要介绍
8051系列单片机的定时器计数器0或是以不断加 进行计数的即属加计数器因此,就
不能直接将实际的计数值作为计数初值送入计数寄存器THxTLx中去,而必须将实际计数值以 13
16 为模求补以其补码作为计数初值设置THxTLx
设:实际计数值为 计数器长度为 n=81316), 则应装入计数器THxTLx中的计
数初值为-x,式中 为取模值。例如,工作方式 的计数长度为 13 位,则 n=13 13 为模
作方式的计数长度为 16 n=16 16 为模等等所以,计数初值为 = 
-x
对于定时模式,是对机器周期计数而机器周期与选定的主频密切相关。因此,需根据应用系
统所选定的主频计算出机器周期值现以主频6MHz 为例,则机器周期为
一个机器周期12
主振频率 12
× 10μ μ
实际定时时间Tc = ·Tp
式中Tp为机器周期Tc为所需定时时间 为所需计数次数Tp Tp 一般为已知值在求出
Tp后即可求得所需计数值 再将 求补码,即求得定时计数初值
                      (x)补 = 2n - x
例如,设定时时间Tc = 5ms机器周期 TP = μ 可求得定时计数次数
5ms
μ
x = = 2500
设选用工作方式,则 n=16则应设置的定时时间计数初值为(x)补 = 16 - x=65536-2500=63036
还需将它分解成两个位十六进制数分别求得低 位为 3CH 装入 TLx 位为F6H 装入THx 中。
工作方式 的最大计数次数分别为 819265536 256
对外部事件计数模式只需根据实际计数次数求补后变换成两个十六进制码即可
【例   定时 计数器应用编程设某应用系统选择定时 计数器定时模式定时时间 Tc 
10ms主频频率为12MHz 10ms 向主机请求处理选定工作方式计算得计数初值:低 位初值
F0H 位初值为 D8H
(1 初始化程序
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列47
所谓初始化,一般在主程序中根据应用要求对定时计数器进行功能选择及参数设定等预置程序
本例初始化程序如下
START
MOV SP#60H 设置堆栈区域
MOV TMOD#10H 选择T1定时模式工作方式
MOV TH1#0D8H 设置高字节计数初值
MOV TL1#0F0H 设置低字节计数初值
SETB EA
SETB ET1
开中断
其他初始化程序
 ;
SETB TR1 启动T1开始计时
 ;
继续主程序
(2 中断服务程序
INTT1PUSH
PUSH DPL
PUSH DPH
MOV TL1,#0F0H
MOV TH1,#0D8H
重新置初值
中断处理主体程序
POP DPH
POP DPL
POP
RETI ;返回
这里展示了中断服务子程序的基本格式8052 系列单片机的中断属于矢量中断每一个矢量中断
源只留有个字节单元一般是不够用的常需用转移指令转到真正的中断服务子程序区去执行
  对外部正脉冲测宽选择定时 计数器进行脉宽测试较方便但也可选用定时计数
或定时计数器进行测宽操作本例选用定时计数器T0以定时模式工作方式 INT0
引脚上的正脉冲进行脉宽测试
设置GATE 机器周期 TP μ 本例程序段编制如下
INTT0MOV TMOD#09H ;设 T0 为定时方式 GATE
INT0  引脚
T0计数
启动 停止
;主程序段
现场保护
现场恢复
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列48
MOV TL0#00H      ;
MOV TH0#00H      ;
CLR EX0 INT0中断
LOP1JB P3.2LOP1 等待 INT0引低电平
LOP2JNB P3.2LOP2 等待 INT0 引脚高电平
SETB TR0 启动T0开始计数
LOP3JB P3.2LOP3 等待 INT0低电平
CLR TR0 停止 T0 计数
MOV TL0 低字节计数值送
MOV TH0 高字节计数值送
;计算脉宽和处理
【例   利用定时 计数器 或定时 计数器 Tx 端口改造成外部中断源输入端口的应用设计
在某些应用系统中常会出现原有的两个外部中断源INT0INT1不够用,而定时计数器有多余
则可将Tx 用于增加的外部中断源现选择定时 计数器为对外部事件计数模式工作方式自动再装
), 设置计数初值为FFH T1 端口输入一个负跳变脉冲计数器即回 溢出,置位对应的中断请
求标志位TF1 向主机请求中断处理从而达到了增加一个外部中断源的目的。应用定时计数器
T1的中断矢量转入中断服务程序处理。其程序示例如下
(1 主程序段
ORG 0000H
AJMP MAIN ;转主程序
ORG 001BH
LJMP INTER     ;转 T1 中断服务程序
ORG 0100 主程序入口
MAIN
MOV SP#60H 设置堆栈区
MOV TMOD#60H 设置定时计数器 计数方式
MOV TL1#0FFH 设置计数常数
MOV TH1#0FFH
SETB EA 开中断
SETB ET1 开定时计数器 中断
SETB TR1 启动定时计数器计数
(2 中断服务程序具体处理程序略
ORG 1000H
INTERPUSH
PUSH DPL
PUSH DPH
现场入栈保护
TH0,TL
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列49
【例   某应用系统需通过 P1.0 P1.1 分别输出周期为 200 μs400 μ 的方波。为此,系统选用
定时器计数器T0), 定时方式主频为 6MHzTP=2 μ 经计算得定时常数为9CH38H
本例程序段编制如下
(1 初始化程序段
PLT0:MOV TMOD,#03H 设置T0定时方式
MOV TL0#9CH      设置 TL0 初值
MOV TH0#38H      设置TH0初值
SETB EA
SETB ET0
SETB ET1
SETB TR0 ;启动
SETB TR1 ;启动
开中断
(2)中断服务程序段
1)
INT0P
MOV TL0#9CH     重新设置初值
CPL P1.0 ;对 P1.0 输出信号取反
RETI ;返回
2)
INT1P
MOV TH0#38H     重新设置初值
CPL P1.1 ;对 P1.1 输出信号取反
RETI ;返回
POP DPH
POP DPL
POP
RETI ;返回
中断处理主体程序
现场出栈复原
这是中断服务程序的基本格式
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列50
在实际应用中应注意的问题如下
(1 定时计数器的实时性
定时计数器启动计数后当计满回溢出向主机请求中断处理由内部硬件自动进行但从回
溢出请求中断到主机响应中断并作出处理存在时间延迟且这种延时随中断请求时的现场环境的不同而
不同,一般需延时个机器周期以上这就给实时处理带来误差大多数应用场合可忽略不计,但对
某些要求实时性苛刻的场合应采用补偿措施
这种由中断响应引起的时间延时对定时计数器工作于方式 而言有两种含义:一是由于中
断响应延时而引起的实时处理的误差二是如需多次且连续不间断地定时计数,由于中断响应延时
则在中断服务程序中再置计数初值时已延误了若干个计数值而引起误差特别是用于定时就更明显
例如选用定时方式设置系统时钟,由于上述原因就会产生实时误差这种场合应采用动态补偿办
法以减少系统始终误差所谓动态补偿即在中断服务程序中对 THxTLx 重新置计数初值时,应将
THxTLx从回 溢出又重新从 开始继续计数的值读出并补偿到原计数初值中去进行重新设置。可考
虑如下补偿方法
CLR EA ;禁止中断
MOV TLx TLx 中已计数值
ADD #LOW LOW为原低字节计数初值
MOV TLx 设置低字节计数初值
MOV #HIGH 原高字节计数初值送
ADDC THx 高字节计数初值补偿
MOV THx 置高字节计数初值
SETB EA 开中断
(2 动态读取运行中的计数值
在动态读取运行中的定时计数器的计数值时,如果不加注意,就可能出错。这是因为不可能在
同一时刻同时读取THx TLx 中的计数值比如,先读 TLx 后读 THx因为定时计数器处于运行状态
在读TLx时尚未产生向 THx 进位,而在读 THx前已产生进位,这时读得的THx就不对了;同样,先读
THx后读TLx也可能出错
一种可避免读错的方法是:先读THx,后读TLx,将两次读得的THx进行比较;若两次读得的值
相等,则可确定读的值是正确的否则重复上述过程重复读得的值一般不会再错此法的软件编程
如下
RDTM:   MOV  THx 读取THx
  MOV R0TLx 读取 TLx R0
   CJN THxRDTM     比较两次 THx值,若相等,则读得的值正
        ;确,程序往下执行否则重读
  MOV  R1      THx 存于R1
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列51
   定时器 是一个 16 位定时 计数器。通过设置特殊功能寄存器 T2CON 中的 C/T2 位,可将其作为定时
或计数器(特殊功能寄存器T2CON 的描述如表 所列)。 定时器 2有种操作模式:捕获、自动重新
装载(递增或递减计数)和波特率发生器 种模式由T2CON中的位进行选择(如表所列)。
                  1 特殊功能寄存器 T2CON 的描述
        T2CON  地址=0C8H  可位寻址                                      复位值=00H
                   7      6       5      4       3      2      1       0
                 TF2    EX2    RCLK   TCLK   EXEN2   TR2    C/T2   CP/RL2
      符                                       名称和意义
TF2 T2CON.7 定时 出标定时 溢出时置须由软件清 RCLK
TCLK=1时,TF2将不会置
EXF2 T2CON.6 部标志 EXEN 2E 负跳变产生捕获或重装时,
EXF置位定时 使EXF2= 使 CPU 从中
行定时器中断子程序EXF2位必须用软件清零在递增递减计数器
模式(DCEN=1)中,EXF2 不会引起中断
RCLK T2CON.5 接收时钟标志RCLK置位时定时器的溢出脉冲作为串行口模式
模式的接收时钟RCLK=0时,将定时器的溢出脉冲作为接收时钟
TCLK T2CON.4 发送时钟标志TCLK置位时定时器的溢出脉冲作为串行口模式
模式的发送时钟TCLK=0时,将定时器的溢出脉冲作为发送时钟
EXEN2 T2CON.3 定时器外部使能标志当其置位且定时器 未作为串行口时钟时
T2EX的负跳变产生捕获或重装EXEN2=0 时,T2EX 的跳变对定时器
无效
TR2 T2CON.2 定时器启动 停止控制位 时启动定时器
C/T2 T2CON.1 定时器计数器选择定时器
0=内部定时器(OSC/12OSC/6
1=外部事件计数器下降沿触发
CP/RL2 T2CON.0 装标志。置位:EEN2= 2E 负跳变产生捕获。  清零
EXEN2=0 时,定时器溢出或 T2EX 的负跳变都可使定时器自动重装
RCLK=1TCLK=1时,该位无效且定时器强制为溢出时自动重装
                                   2  定时器工作方式
           RCLK+TLK             C/R2               T               模  
               0                    0                  1           1位自动重装
               0                    1                  1           16位捕获
               1                    X                              波特率发生器
               X                   X                  0          关闭
    1.捕获模式
    在捕获模式中通过T2CON中的EXEN2设置 个选项如果 EXEN2=0定时器作为一个 16 位定
时器 T2CON T2 位选择), TF2定时器 溢出标志位)。 位可用
于产生中断通过使能IE 寄存器中的定时器中断使能位)。 如果EXEN2=1以上描述相同但增加
了一个特性即外部输入T2EX 变零时,将定时器 TL2 TH2 的当前值各自捕获到 RCAP2L
              STC 定时器的操作
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列52
RCAP2H另外,T2EX的负跳变使T2CON中的EXF2置位,EXF2也像TF2一样能够产生中断其向量与
定时器 溢出中断地址相同,定时器 中断服务程序通过查询 TF2 EXF2 来确定引起中断的事件), 捕获模
式如图 所示在该模式中TL2TH2 无重新装载值甚至当 T2EX 产生捕获事件时计数器仍以T2EX
负跳变或振荡频率的1/1212时钟模式)或 1/6 时钟模式)计数
2.自动重装模式(递增 递减计数器
   16位自动重装模式中定时器可通过 C/T2 配置为定时器 计数器,编程控制递增 递减计数。计
数的方向是由DCEN递减计数使能位)确定的,DCEN位于 T2MOD 寄存器中,T2MOD 寄存器各位的功能
描述如表所示。当 DCEN=0 时,定时器 默认为向上计数 DCEN=1 时,定时器 可通过 T2EX 确定
递增或递减计数。图 显示了当 DCEN=0 时,定时器自动递增计数在该模式中通过设置EXEN2
进行选择如果EXEN2=0,定时器 递增计数到 0FFFFH并在溢出后将 TF2 置位,然后将 RCAP2L
RCAP2H中的16位值作为重新装载值装入定时器RCAP2L RCAP2H 的值是通过软件预设的
                    定时器 模式(T2MOD控制寄存器的描述
       T2MD  地址=09H                            复位值=XXXX XX00B
           不可位寻址
                  7       6      5       4       3       2      1      0
                  -       -      -       -       -      -     T2O    DCEN
       符        功 
                不可用保留将来之用
       T2OE        定时器 输出使能位
       DCE       向下计数使能位定时器可配置成向上向下计数器
        用户勿将其置这些位在将来 80C51系列产品中用来实现新的特性在这种情况下,以
            后用到保留位复位时或非有效状态时它的值应为而这些位为有效状态时,它的值
        为 从保留位读到的值是不确定的
    如果EXEN2=116位重新装载可通过溢出或T2EX   的负跳变实现此负跳变同时将EXF2
位。如果定时器中断被使能,则当 TF2 EXF2 时产生中断。在图 DCEN=1 时,定时器 可递
增或递减计数。此模式允许T2EX 控制计数的方向。当 T2EX 时,定时器 递增计数,计数到 0FFFFH
后溢出并置位TF2,还将产生断(如果中断被使能)。 定时器的溢出将使RCAP2L RCAP2H 中的
16 位值作为重新装载值放入TL2 TH2
    T2EX置零时将使定时器递减计数。当TL2TH2 计数到等于 RCAP2L RCAP2H 时,定时器产
EXEN2
OSC ÷d*
 
C/T2=1 TF2
控制
TR2 定时器
 中断
EXF2
RCAP2L RCAP2H
捕获
C/T2=0
T2EX
跳变
检测
控制
TH2
TL2
T2
*  时钟模式下d=6;在 12 时钟模式下d=12
   定时器 捕获模式
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列53
*  时钟模式下d=6;12 时钟模式下d=12
                       定时器 自动重装模式DCEN=0
EXEN2
OSC ÷d*
 
C/T2=1
TF2
控制
TR2
EXF2
RCAP2L RCAP2H
重装
C/T2=0
T2EX
跳变
检测
控制
定时器
 中断
TL2
TH2
T2
OSC ÷d*
 
C/T2=1
控制
TR2
C/T2=0 TL2 TF2
TH2
EXF2
溢出
递增计数重装值
RCAP2L  RCAP2H
FFHFFH FFH
递减计数重装
T2EX
中断
计数方向
1=递增
0=递减
翻转
T2
*  时钟模式下d=6;12 时钟模式下d=12
                         定时器自动重装模式DCEN=1
生中断
    3.波特率发生器模式
    寄存器 T2CON 的位 TCLK 和(或)RCLK 允许从定时器 或定时器获得串行口发送和接收的波特率
TCLK=0 时,定时器 作为串行口发送波特率发生器;当TCLK=1 时,定时器 作为串行口发送波特率发生
器。RCLK对串行口接收波特率有同样的作用通过这 位,串行口能得到不同的接收和发送波特率,一个
通过定时器产生,另一个通过定时器产生
    如图所示为定时器 工作在波特率发生器模式与自动重装模式相似 TH2 溢出时波特率发
生器模式使定时器寄存器重新装载来自寄存器RCAP2H RCAP2L 16位的值寄存器RCAP2H RCAP2L
的值由软件预置当工作于模式和模式 时,波特率由下面给出的公式所决定
定时器
 溢出
                     定时器溢出速率
                            16
模式和模式的波特率
EXEN2
OSC ÷d*
 
C/T2=1 控制
TR2 RCAP2L RCAP2H
重装
C/T2=0
T2EX
跳变
检测
控制 EXF2 定时器
  中断
÷16 TX时钟
TCLK
÷16 RX时钟
RCLK
SMOD
÷
可作为一个额外的外部中断
TL2
TH2
T2
*  时钟模式下d=1;12时钟模式下d=2
                            定时器 波特率发生器模式
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列54
  定时器可配置成定时”或“计数”方式,在许多应用上定时器被设置在定时”方式(C/T2=0
当定时器作为定时器时它的操作不同于波特率发生器。通常定时器 2作为定时器,它会在每个机器周
期递增1/6 1/12振荡频率)。 当定时器 作为波特率发生器时,它在 时钟模式下以振荡器频率递增
12 时钟模式时为1/12 振荡频率)。
    这时的波特率公式如下
式中n=16(6 时钟模式 3212 时钟模式RCAP2HRCAP2L      RCAP2HRCAP2L的内容
16 位无符号整数
     如图 所示,定时器 是作为波特率发生器仅当寄存器T2CON中的RCLK和(或TCLK=1 时,定
时器作为波特率发生器才有效。注意TH2溢出并不置位 TF2,也不产生中断。这样当定时器作为
波特率发生器时定时器 中断不必被禁止。如果EXEN2T2 外部使能标志)被置位 T2EX 中由
1到的转换会置位EXF2T2 外部标志位), 但并不导致TH2TL2重新装载RCAP2HRCAP2L)。
当定时器用作波特率发生器时如果需要T2EX 可用做附加的外部中断
    当计时器工作在波特率发生器模式下则不要对TH2 TL2 进行读 写,每隔一个状态时间fosc/
2)或由 T2 进入的异步信号,定时器 将加 1。在此情况下对TH2 TH1 进行读 写是不准确的;可对RCAP2
寄存器进行读,但不要进行写,否则将导致自动重装错误当对定时器或寄存器RCAP进行访问时
应关闭定时器清零TR2)。 列出了常用的波特率和如何用定时器 得到这些波特率
    4.波特率公式汇总
    定时器工作在波特率发生器模式外部时钟信号由T2 脚进入这时的波特率公式如下
如果定时器采用内部时钟信号则波特率公式如下
式中:n=32(12 时钟模式 16(6 时钟模式),fosc= 振荡器频率
    自动重装值可由下式得到
                       R6553 —[fosc/(n ×波特率
                                  定时器溢出率
                                       16
波特率
                                    振荡器频率
                       n×[6553 —(RCAP2HRCAP2L)]
模式和模式的波特率
4   由定时器 产生的常用波特率
波特率                                         定时器
振荡器频率
  /MHz
12时钟模式    6时钟模式                         RCAPH        RCA2L
  375 000      750 00            12               FF           F
    9 600       19 200            12               F           D
    2 800        9 60            1               FF           B
    2 400        4 80            1               FF           6
    1 200        2 40            1               FE           C
      300          600            12               FB           1
      110          220            12               F2           A
      30          60             6               F           8F
      11          22             6               F           57
                                       fo
                       n×[6553 —(RCAP2HRCAP2L)]
               波特率
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列55
    5.定时器 计数器的设置
    除了波特率发生器模式,T2CON不包括 TR2位的设置TR2位需单独设置来启动定时器如表
分别列出了T2作为定时器和计数器的具体设置方法
 5  T2 作为定时器的设置
     T2CON
 内部控制         外部控制
  16 位重装                                  00H              08H
  16 位捕获                                  01H              09H
  波特率发生器接收和发送相同波特率            4H              36H
  只接收                                     24H             26H
  只发送                                     14H             16H
  仅当定时器溢出时进行捕获和重装
② 当定时计数器溢出并且T2EX(P1.1)发生电平负跳变时产生捕获和重装定时器用于
     波特率发生器模式时除外
   6   T2 作为计数器设置
     TMOD
 内部控制         外部控制
   1                     02H              0AH
   自动重装                  03H              0BH
注①和注②同表的注①和注
6.可编程时钟输出
    STC89C51RC/RD+系列单片机可设定定时计数器通过P1.0输出时钟P1.0 除作通用 I/O
口外还有两个功能可供选用用于定时计数器的外部计数输入和定时计数器 时钟信号输出。图
为时钟输出和外部事件计数方式示意图
5   定时器时钟输出和外部事件计数方式示意图
fosc ÷d*
C/T
TR
TLTH
RCAP2L RCAP2H
÷
EXEN
EXF
T2EXP1.1
转换检测
中断请求
T2OE
P1.0
*  d=1,6 时钟 机器周期d=212时钟机器周期
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列56
    通过软件对T2CON.1C/T复位为,对 T2MOD.1 T2OE 就可将定时计数器 选定为时钟信号
发生器 T2CON.2TR控制时钟信号输出开始或结束TR为启 停控制位由主振频率fosc
和定时计数器定时、自动再装入方式的计数初值决定时钟信号的输出频率其设置公式如下
    从公式可见在主振频率fosc)设定后,时钟信号输出频率就取决于定时计数初值的设定
    在时钟输出模式下计数器回溢出不会产生中断请求这种功能相当于定时 计数器 用作波特率
发生器同时又可以作时钟发生器但必须注意无论如何波特率发生器和时钟发生器不能单独确定各
自不同的频率原因是两者都用同一个陷阱寄存器RCAP2HRCAP2L不可能出现两个计数初值
                                       fo
                       n×[6553 —(RCAP2H ×RCAP2L)]
              时钟信号输出频率
*  n=2,6 时钟 机器周期n=412时钟机器周期
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列57
;/* ---  STC International Limited ---------------- */
;/* ---  宏晶科技 姚永平  设计 2004/9/11   V1.0 ---- */
;/* ---  RD+/RC 系列   Timer2  Operation ----------- */
;/* ---  STC89C54RD+, STC89C58RD+, STC89C516RD+ --- */
;/* ---  STC89LE54RD+,STC89LE58RD+,STC89LE516RD+ -- */
;/* ---  STC89C51RC,  STC89C52RC,  STC89C53RC ----- */
;/* ---  STC89LE51RC, STC89LE52RC, STC89LE53RC ---- */
;/* ---  Mobile: 13922805190 ---------------------- */
;/* ---  Fax: 0755-82944243 ----------------------- */
;/* ---  Tel: 0755-82908285 ----------------------- */
;/* ---  Web  : www.mcu-memory.com ---------------- */
;-----Timer 2 做波特率发生器 -------------------------
;-----本程序不提供技术支持一定要自己测试 --------------
定义特殊功能寄存器
 RS232 口、TIMER2 有关的特殊功能寄存器
2C                   EQU 0C8
2                     EQU TN.2   ;  T2CON 特殊功能寄存器的第 2 
CAP2                  EQU 0AH
CAP2                  EQU 0BH
TH2                     EQU 0CD
TL2                     EQU 0CC
;------------------------------------------------
设置波特率自动重装数
RELOAD_COUNT_HIGH       EQU  0FFH
使用以下参数必须将 RELOAD_COUNT_HIGH 设置为 0FFH
;RELOAD_COUNT_LOW        EQU  0FAH    ;Fosc = 22.1184MHz, Baud = 115200
;RELOAD_COUNT_LOW        EQU  0EEH    ;Fosc = 22.1184MHz, Baud = 38400
;RELOAD_COUNT_LOW        EQU  0F0H    ;Fosc = 20.000MHz, Baud = 38400
;RELOAD_COUNT_LOW        EQU  0F6H    ;Fosc = 12.000MHz, Baud = 38400
;RELOAD_COUNT_LOW        EQU  0FDH    ;Fosc = 11.059MHz, Baud = 115200
;RELOAD_COUNT_LOW        EQU  0F7H    ;Fosc = 11.059MHz, Baud = 38400
;RELOAD_COUNT_LOW        EQU  0F8H    ;Fosc = 10.000MHz, Baud = 38400
;RELOAD_COUNT_LOW        EQU  0FBH    ;Fosc = 6.000MHz, Baud = 38400
;RELOAD_COUNT_LOW        EQU  0FCH    ;Fosc = 5.000MHz, Baud = 38400
;RELOAD_COUNT_LOW        EQU  070H    ;Fosc = 11.059MHz, Baud = 2400
;--------------
计算自动重装数
;--------------
晶体频率: Fosc
波特率:   Baud
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列58
自动重装数:   RELOAD = INT(Fosc/Baud/32 + 0.5), INT 表示取整运算舍去小数
将自动重装数转换成 16 进制,  10000H 减自动重装数, 存入 RCAP2H, RCAP2L
计算实际的波特率: Baud = Fosc/RELOAD/32, 如果误差>3.5 要更改波特率
;例: Fosc = 22.1184MHz, Baud = 115200
;  RELOAD = INT( 22118400/115200/32 + 0.5)
         = I( 65 )
;         = 6
         = 000
; 10000H - 0006H = FFFAH
;   MOV   RCAP2H, #0FFH
;   MOV   RCAP2L, #0FAH
;例: Fosc = 20.MHz, Baud = 57600 (Baud=115200 时误差太大
;  RELOAD = INT( 20000000/57600/32 + 0.5)
;         = INT( 10.85 + 0.5 
;         = INT( 11.35 
         = 1
         = 000
; 10000H - 000BH = FFF5H
;   MOV   RCAP2H, #0FFH
;   MOV   RCAP2L, #0F5H
;--------------------------------------------
    ORG   0000H
    AJMP  MAIN
;--------------------------------------------
    ORG   023H                     ;S2 串口中断
    AJMP  UART
    N
    N
;--------------------------------------------
MAIN:
    MOV   SP, #0E0H
    ALL In_UART              ;初始化串口
    MOV   R0 #30H                  ;发送 10 个字符 '0123456789'
    MOV   R2, #10
LOOP:
    M   A, R
    ACALL Send_One_Byte             发送一个字节
    IC   R
    DJNZ  R2, LOOP
WAIT1
    SJM  WAIT1                     ;跳转到本行, 无限循环
;------------------------------------------------
UAT:                               ;串口中断服务程序
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列59
    JBC   RI, UART_1
    REI                            ;发送时使用的是查询方式不使用中断
UART_1                             ;接收一个字节. 此时 RI 已被清
    PUSH  ACC
    MOV   A, SUF                   ;取接收到的字节
    ACALL Send_One_Byte             回发收到的字节
    PP   ACC
    RETI
;------------------------------------------------
nitil_UAT:                       ;初始化串口
;       Bt:   7       6     5     4     3     2     1    0
; SCON       SM0/FE   SM1   SM2   REN   TB8   RB8    Tl   Rl
    MV   SCO #0H                ; 00000 8位可变波特率, 无奇偶校验
Init_RS232_1:
    MOV   A, #RELOAD_COUNT_HIGH     波特率自动重装数
    MOV   RCAP2H, 
    MOV   TH2, 
    MOV   A, #RELOAD_COUNT_LOW
    MOV   RCAP2L, 
    MOV   TL2, 
    MOV   T2ON, #x3              ;使用 T2 作波特率发生器
    SEB  E                        ;允许串口中断
    SEB  EA                        ;开总中断
    R
;------------------------------------------------
end_ne_Bte:                      ;发送一个字节
    CR   E
    CL   TI                        ;清零串口发送中断标志
    MOV   SBUF, 
WAIT2
    JNB   T, WT2                 ;等待发送完毕
    CL   TI                        ;清零串口发送中断标志
    SETB  ES
    R
;------------------------------------------------
    E
;------------------------------------------------
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列60
;------------------------------------------------------------------------------
本程序演示了如何使用定时器的时钟脉冲输出功能,在 P1.0 口输出
;------------------------------------------------------------------------------
定义特殊功能寄存器
 RS232 口、TIMER2 有关的特殊功能寄存器
2C                   EQU 0C8
2M                   EQU 0C9
2                     EQU TN.2   ;  T2CON 特殊功能寄存器的第 2 
CAP2                  EQU 0AH
CAP2                  EQU 0BH
TH2                     EQU 0CD
TL2                     EQU 0CC
定时器计数器 控制寄存器 T2CON
                   D7     D6    D5    D4    D    D2     D1     D0       Reset Va
;  位地址           CF     C    CD    CC    CB    CA    C     C8
; T2CON(C8H)       TF2    EXF2  RCLK  TCLK  EXEN2  TR2   C/T2  CP/RL2        00
;T2MOD 寄存器
                   D7     D6    D5    D4    D    D2     D1     D0       Reset Va
 T2COC9H)        -      -     -     -     -     -     T2OE   DEN       xxxxx0
;------------------------------------------------
    ORG   0000H
    AJMP  MAIN
;------------------------------------------------
    ORG   0100H
MAIN:
    MOV   SP, #0E0H
    MOV   P, #FH                 ;熄灭 P1 口的发光二级管
    ACALL SET_T2_OUT_MODE           设置 T2 为高速脉冲输出方式
    MOV   DP, #0F0H             ;设置 T2 脉冲输出速率
    ACALL SET_T2_OUT_SPEED
WAIT1
    S  WAIT                    可加入此行用频率计或其它仪器测量 P1.0 
                                    ;输出信号验证脉冲输出频率的计算公式
    ACALL DELAY
    ACAL PAUSE                     ;暂停输出, 便于观察
    MV   DPT #FFE0             ;设置 T2 脉冲输出速率, 比前一次降低一半
    ACALL SET_T2_OUT_SPEED
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列61
    ACALL DELAY
    ACAL PAUSE                     ;暂停输出, 便于观察
    MOV   DPTR, #0FFD0H 设置 T2 脉冲输出速率, 比前一次降低 1/3
    ACALL SET_T2_OUT_SPEED
    ACALL DELAY
    ACAL PAUSE                     ;暂停输出, 便于观察
WAIT2
    SJM  WAIT2                      ;跳转到本行, 无限循环
;------------------------------------------------
DELAY:
    MOV   R1, #0
    MOV   R2, #0
    MOV   R3, #30
DELAY_LOOP:
    DJNZ  R1, DELAY_LOOP
    DJNZ  R2, DELAY_LOOP
    DJNZ  R3, DELAY_LOOP
    R
;------------------------------------------------
_T2__DE:                    ;设置T2为脉冲输出方式
    MOV   TCON, #0                 ;设置T2为定时器方式
    MV   T2M #02                ;0 0010 允许 T2 溢出脉冲由 P1.0 输出
    R
;------------------------------------------------
脉冲输出频率由振荡器频率和 T2 的捕获寄存器 RCAP2HRCAP2L 的重新装入值确定
计算公式
     脉冲输出频率 = 振荡器频率/ (n*(65536 - RCAP2H,RCAP2L)
公式中 n = 2,  6 Clock 模式; n = 4,  12 Clock 模式
;       RCAP2H,RCAP2L 是由 RCAP2H  RCAP2L 组成的 16 位无符号整数
入口: DPTR = 重装数
对寄存器RCAP2H,RCAP2L不要送FFFFh否则无脉冲输出
_T2__EED:                   ;设置 T2 脉冲输出速率
    CL   TR2                       ;停止 T2 工作
    MOV   RCAP2H, DPH
    MOV   RCAP2L, DPL
    SEB  T2                       ;启动 T2
    R
;------------------------------------------------
PASE:                              ;暂停输出
    CL   TR2                       ;停止 T2 工作
    MOV   P, #FH                 ;熄灭 P1 口的发光二级管
    ACALL DELAY
    R
;------------------------------------------------
    E
;------------------------------------------------
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列62
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
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  -  -  -  -  - MS2 MS1 MS0 xxxx,x000
ISP_TRIG E6h ISP/IAP  Flash  Command  Trigger xxxx,xxxx
ISP_CONTR E7h ISP/IAP  Control  Register ISPEN SWBS SWRST  -  - WT2 WT1 WT0 000x,x000
RC/RD+ 系列 8051 单片机 ISP/IAP 特殊功能寄存器    ISP/IAP SFRs
  STC89C51 RC / RD+ 系列 ISP / IAP 应用
ISP_DATA: ISP/IAP操作时的数据寄存器
ISP/IAPFlash读出的数据放在此处,向 Flash 写的数据也需放在此处
ISP_ADDRH: ISP/IAP操作时的地址寄存器高八位
ISP_ADDRL: ISP/IAP操作时的地址寄存器低八位
ISP_CMD: ISP/IAP操作时的命令模式寄存器须命令触发寄存器触发方可生效
B7 B6 B5 B4 B3 B2 B1 B0 命令 /  操作  模式选择
         保留 命令 选择
 -  -  -  -  -  0  0  0 Standby    待机模式ISP操作
 -  -  -  -  -  0  0  1 AP-Flash / Data-Flash  Read
对用户的应用程序Flash区及数据Flash区字节读
 -  -  -  -  -  0  1  0 AP-Flash / Data-Flash  Program
对用户的应用程序Flash区及数据Flash区字节编程
 -  -  -  -  -  0  1  1 AP-Flash / Data-Flash  Sector Erase
对用户的应用程序Flash区及数据Flash区扇区擦除
程序在系统ISP程序区时可以对用户应用程序区 数据 Flash (EEPROM)进行字节读 字节编程
区擦除;程序在用户应用程序区时仅可以对数据Flash (EEPROM)进行字节读 字节编程 扇区擦除
已经固化有ISP引导码并设置为上电复位进入ISPSTC89C51RC/RD+系列单片机出厂时就已完全加密
ISP_TRIG: ISP/IAP 操作时的命令触发寄存器
ISPEN(ISP_CONTR.7) = 时, ISP_TRIG先写入46h,再写入B9h,
ISP/IAP命令才会生效
  STC89C51 RC / RD+ 系列 内部EEPROM 的应用
             -- 利用 IAP技术可实现EEPROM,内部 Flash擦写次数为100,000 次以上
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列63
设置等待时间                 CPU   等待时间机器周期
WT2 WT1 WT0 Read Program Sector Erase Recommended System Clock
 0  1  1 30 5471 5MHz
 0  1  0 11 60 10942 10MHz
 0  0  1 22 120 21885 20MHz
 0  0  0 43 240 43769 40MHz
ISP_CONTR: ISP/IAP控制寄存器
 B7  B6  B5  B4  B3  B2  B1  B0 Reset Value
ISPEN SWBS SWRST   -   -  WT2  WT1  WT0 000x,x000
ISPEN: ISP/IAP 功能允许位。0:禁止ISP/IAP编程改变Flash,1:允许编程改变Flash
SWRST: 0: 不操作1:  产生软件系统复位硬件自动清零
SWBS:软件选择从用户主程序区启动 ), 还是从ISP程序区启动 )。
STC89C51RC,STC89LE51RC单片机内部可用 Data Flash(EEPROM)的地址
STC89C52RC,STC89LE52RC单片机内部可用 Data Flash(EEPROM)的地址
        第一扇区         第二扇区         第三扇区        第四扇区 每个
扇区
512
字节
建议
同一
次修
改的
数据
放在
同一
扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
2000h 21FFh 2200h 23FFh 2400h 25FFh 2600h 27FFh
        第五扇区         第六扇区         第七扇区        第八扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
2800h 29FFh 2A00h 2BFFh 2C00h 2DFFh 2E00h 2FFFh
        第一扇区         第二扇区         第三扇区        第四扇区 每个
扇区
512
字节
建议
同一
次修
改的
数据
放在
同一
扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
2000h 21FFh 2200h 23FFh 2400h 25FFh 2600h 27FFh
        第五扇区         第六扇区         第七扇区        第八扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
2800h 29FFh 2A00h 2BFFh 2C00h 2DFFh 2E00h 2FFFh
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列64
STC89C54RD+,STC89LE54RD+单片机内部可用 Data Flash(EEPROM)的地址
        第一扇区         第二扇区         第三扇区         第四扇区
每个
扇区
512
字节
建议
同一
次修
改的
数据
放在
同一
扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
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
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列65
        第一扇区         第二扇区         第三扇区         第四扇区
每个
扇区
512
字节
建议
同一
次修
改的
数据
放在
同一
扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
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
STC89C55RD+,STC89LE55RD+单片机内部可用 Data Flash(EEPROM)的地址
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列66
STC89C58RD+,STC89LE58RD+单片机内部可用 Data Flash(EEPROM)的地址
        第一扇区         第二扇区         第三扇区         第四扇区
每个
扇区
512
字节
建议
同一
次修
改的
数据
放在
同一
扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
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
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列67
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 字节读
ISP_IAP_BYTE_PROGRAM EQU 字节编程前提是该字节是空0FFh
ISP_IAP_SECTOR_ERASE EQU 扇区擦除要某字节为空要擦一扇区
WAIT_TIME EQU 设置等待时间,40MHz以下0,20M以下1,
   10MHz以下2,5M 以下
字节读
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,再送B9hISP/IAP触发寄存器每次都需如此
MOV ISP_TRIG, #0B9h 送完B9h后,ISP/IAP命令立即被触发起动
;CPU等待 IAP 动作完成后才会继续执行程序要先关中断EA
再送46h,B9hISP/IAP触发寄存器起动ISP/IAP 命令,关中断在触发之前即可
NOP 数据读出到ISP_DATA 寄存器后CPU继续执行程序
MOV A,ISP_DATA 将读出的数据送往Acc
以下语句可不用只是出于安全考虑而已
     M 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动作即可开中断
STC89C51 RC / RD+ 系列 IAP 应用汇编简介
STC89C51 RC / RD+ 系列 内部EEPROM的应用
地址需要改变时才需重新送地址
此两句可以合成一句
并且只送一次就够了
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列68
字节编程该字节为FFh/ 空时,可对其编程否则不行要先执行扇区擦除
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,再送B9hISP/IAP触发寄存器每次都需如此
MOV ISP_TRIG, #0B9h 送完B9h后,ISP/IAP命令立即被触发起动
;CPU等待 IAP 动作完成后才会继续执行程序要先关中断EA
再送46h,B9hISP/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,指向非 EEPROM 区,防止误操作
SETB EA 开中断CPU处理完ISP/IAP动作即可开中断
----------------------------------------------------
小常识: (STC单片机的Data Flash EEPROM 功能使用
个基本命令----字节读字节编程扇区擦除
字节编程:如果该字节是“1111,1111B 则可将其中的“1 ”编程为 如果该
字节中有位为 则须先将整个扇区擦除因为只有扇区擦除才可以将
变为
扇区擦除:只有“扇区擦除才可能将“0 擦除为
大建议
1.同一次修改的数据放在同一扇区中单独修改的数据放在另外的扇区就不须读出保护
2.如果一个扇区只用一个字节那就是真正的EEPROM,STC 单片机的 Data Flash 比外部 EEPROM 要快很多
读一个字节编程一个字节 擦除一个扇区大概是10uS/60uS/10mS
3.如果同一个扇区中存放了一个以上的字节某次只需要修改其中的一个字节或一部分字节时,则另外
的不需要修改的数据须先读出放在STC 单片机的 RAM 中,然后擦除整个扇区再将需要保留的数据和需修
改的数据一并写回该扇区中这时每个扇区使用的字节数是使用的越少越方便不需读出一大堆需保留数
据)
地址需要改变时才需重新送地址
此两句可以合成一句
并且只送一次就够了
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列69
扇区擦除,没有字节擦除只有扇区擦除512 字节 扇区
;建议同一次修改的数据放在同一个扇区
如果要对某个扇区进行擦除而其中有些字节的内容需要保留则需将其先读到单片机
内部的RAM中保存,再将该扇区擦除,然后将须保留的数据写回该扇区,所以每个扇区
中用的字节数越少越好操作起来越灵活越快
强烈建议同一次修改的数据放在同一个扇区
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,再送B9hISP/IAP触发寄存器每次都需如此
MOV ISP_TRIG, #0B9h 送完B9h后,ISP/IAP命令立即被触发起动
;CPU等待 IAP 动作完成后才会继续执行程序要先关中断EA
再送46h,B9hISP/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(软复位
地址需要改变时
才需重新送地址
此两句可以合成一句
并且只送一次就够了
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列70
本程序演示STC89C51RC/RD+ 系列单片机 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 83H            ;<5MHz
;ENABLE_ISP      EQU 82H            ;<10MHz
;ENABLE_ISP      EQU 81H            ;<20MHz
;ENABLE_ISP      EQU 80H            ;>20MHz
 DEBUG_DATA      EQU 5AH
;------------------------
;选择 MCU 型号
DATA_FLASH_START_ADDRESS EQU 2000H ;STC89C/LE52RC
;------------------------------------------------
    ORG   0000H
    AJMP  main
;------------------------------------------------
    ORG   0100H
main:
    MOV     P1,#0F0H 演示程序开始工作
LCALLDelay 延时
    MOV     P1,#0FH 演示程序开始工作
LCALLDelay 延时
    M   SP,#0E0H 堆栈指针指向 0E0H 单元
;************************************************
读回写入 flash 的第 个字节
MAIN1:
    MOV   DPTR, #DATA_FLASH_START_ADDRESS
    LCALL byte_read
    M   40, A                ;值送 40H 单元保存
    CJNE  A, #DEBUG_DATA, DATA_NOT_EQU_DEBUG_DATA
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列71
DATA_IS_DEBUG_DATA:
    M   P1,  #01111111B  ; (DATA_FLASH_START_ADDRESS) = #5A, P1.7
    LCALL Delay 延时
    M   A, 40H   值从 40H 单元送 ACC
    CPL     
    M     P    ;数据是对的,送 P1 显示
WAIT1:
    SJMP    WAIT1   数据是对的,送 P1显示,并在此停止
DATA_NOT_EQU_DEBUG_DATA:
    M     P1,  #11110111B ;(DATA_FLASH_START_ADDRESS) != #5A, P1.3
LCALLDelay 延时
    MOV   A,   40H 值从 40H 单元送 ACC
    CP      
    MV     P  A  ;数据不对,送 P1显示
LCALLDelay 延时
    M     DPTR#DATA_FLASH_START_ADDRESS
    ACALL sector_erase  擦除扇区, (DATA_FLASH_START_ADDRESS) != #DEBUG_DATA
    M     D #DATA_FLASH_START_ADDRESS
    M     A    #_TA           ;写入 flash 的数据为 DEBUG_DATA
    ACALL   byte_rogrm                ;字节编程
    MOV     P1   #10111B            ;先亮 P1.3 再亮 P1.5
WAIT2:
    SJMP    W2       ;字节编程后在此停止
;************************************************
;------------------------------------------------
读一字节
调用前需打开 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
    N
    MOV     A,   ISP_DATA               ;数据在ISP_DATA
    SETB    E
;Now in processing.(CPU will halt here before completing)
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列72
    A I_Disable               ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
    R
;------------------------------------------------
字节编程
调用前需打开 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
    MV   ISP_A, A               ;数据进ISP_DATA
    CR   E
    MOV   ISP_TRIG, #46H            ;Trigger ISP processing
    MOV   ISP_TRIG, #0B9H           ;Trigger ISP processing
    N
    SETB  EA
    A I_Disable               ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
    R
;------------------------------------------------
擦除扇区, 入口: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
    N
    SETB  EA
    A I_Disable               ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
    R
;------------------------------------------------
trigger_ISP:
    C  EA
    MOV  ISP_TRIG, #46H             ;Trigger ISP processing
    MOV  ISP_TRIG, #0B9H            ;Trigger ISP processing
    N
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列73
    SETB  EA
    R
;------------------------------------------------
P_Dile:                        ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
    MOV   IS_CONR, #0             ;关闭 IAP 功能
    MOV   ISP_CMD, #0
    MOV   ISP_TRIG, #0
    R
;------------------------------------------------
Delay:
    CL   A
    MOV   R0, A
    MOV   R1, A
    MOV   R2, #20H
Delay_Loop:
    DJNZ  R0, Delay_Loop
    DJNZ  R1, Delay_Loop
    DJNZ  R2, Delay_Loop
    R
;------------------------------------------------
    E
;************************************************
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列74
Absolute Maximum Ratings
Parameter Symbol MIN MAX UNIT
Storage temperature ST -55 +125
Operating Temperature(I) -40 +85
Operating Temperature(C) +70
DC Power Supply(5V MCU) DD - SS -0.3 +6.0
DC Power Supply(3V MCU) DD - SS -0.3 +4.0
Voltage on any Pin -0.5 +5.5
ELECTRICAL CHARACTERISTICS
Symbol Parameter Specification Test
Condition
Min. Typ. Max. Unit
DD Operating Voltage 3.8 5.0 5.5
PWDN Power Down Current 0.4 uA 5V
IDLE Idle Current 2.0 mA 5V
CC Operating Current 4 mA 20 mA 5V
IL1 Input low voltage
(P0,1,2,3,4) 0.8 5V
IL2 Input low voltage
(RESET,XTAL1) 1.5 5V
IH1 Input High voltage
(P0,1,2,3,4,/EA) 2.0 5V
IH2 Input High voltage
(RESET) 3.0 5V
OL1 Sinking Current
for Output Low
(P1,P2,P3,P4) mA 5V
OL2 Sinking Current
for Output Low
(P0,ALE,PSEN) 12 mA 5V
OH1 Sourcing Current
for Output High
(P1,P2,P3,P4) 150 220 uA 5V
OH2 Sourcing Current
for Output High
(ALE,PSEN) 14 20 mA 5V
IL Logic 0 input
current
(P1,2,3,4) 18 50 uA PIN=0V
TL Logic 1 to 
transition current
(P1,2,3,4) 270 600 uA PIN=2V
DC Specification(5V MCU)
STC89C51 RC/RD+ 系列单片机交直流特性
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列75
DC Specification(3.3V MCU)
Symbol Parameter Specification Test
Condition
Min. Typ. Max. Unit
DD Operating Voltage 1.8 3.3 3.6
PWDN Power Down Current 0.4 uA 3.3V
IDLE Idle Current 2.0 mA 3.3V
CC Operating Current 4 mA 15 mA 3.3V
IL1 Input low voltage
(P0,1,2,3,4) 0.8 3.3V
IL2 Input low voltage
(RESET,XTAL1) 1.5 3.3V
IH1 Input High voltage
(P0,1,2,3,4,/EA) 2.0 3.3V
IH2 Input High voltage
(RESET) 3.0 3.3V
OL1 Sinking Current
for Output Low
(P1,P2,P3,P4) 2.5 mA 3.3V
OL2 Sinking Current
for Output Low
(P0,ALE,PSEN) mA 3.3V
OH1 Sourcing Current
for Output High
(P1,P2,P3,P4) 40 70 uA 3.3V
OH2 Sourcing Current
for Output High
(ALE,PSEN) 13 mA 3.3V
IL Logic 0 input
current
(P1,2,3,4) 50 uA PIN=0V
TL Logic 1 to 
transition current
(P1,2,3,4) 110 600 uA PIN=2V
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列76
 
512 字节
SRAM
双数据
指针
8/16/32/64k
字节
闪存
内置系统
ISP
监控程序
四个 8
并行端口
+
P4.0P4.3
四个附送
I/O
端口
UART串口
3
个定时器
A / D
不加价
微处理器
低功耗超低价
高速90M), 高可靠
 
  掉电模式< 0.1μ 空闲模式2mA
STC
IAP
8051 P0
P1
P2
P3
P4C0H)
附录A:     STC89LE516AD 系列单片机手册
A/D高速)可做
按键扫描
电池电压检测
掉电检测
音量、频谱检测等
STC 具有 A/D 转换功能的单片机选型指南
STC89LE51  AD        0-90M        4K     512                           定货
STC89LE516 AD        0-90M        64K    512                           现货
STC89LE52  AD        0-90M        8K     512                           现货
STC89LE54  AD        0-90M        16K    512                           现货
STC89LE58  AD        0-90M        32K    512                           现货
STC89LE516 X2        0-90M        64K    512                           现货
   型     RAM
 最 高 时 钟
   频 率Hz
   1.9-3.6V
   程序
  存储器  降低
 EMI
 
 /
 D
 供货
 P
 4
 口
 
 S
 P
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列77
        特殊功能寄存器映像  SFR Mapping
      Bit
Addressable                                  Non  Bit  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 EFh
E0h      ACC
0000,0000 E7h
D8h DFh
D0h      PSW
0000,0000 D7h
C8h     T2CON
0000,0000     T2MOD
xxxx,xx00    RCAP2L
0000,0000    RCAP2H
0000,0000     TL2
0000,0000     TH2
0000,0000 CFh
C0h     P4
xxxx,1111 ADC_CONTR
xxx0,0000 ADC_DATA
xxxx,xxxx C7h
B8h       IP
x000,0000     SADEN
0000,0000 BFh
B0h       P3
1111,1111     IPH
x000,0000 B7h
A8h       IE
0000,0000     SADDR
0000,0000 AFh
A0h       P2
1111,1111    AUXR1
xxxx,xxx0 A7h
98h     SCON
0000,0000     SBUF
xxxx,xxxx 9Fh
90h       P1
1111,1111 P1_ADC_EN
0000,0000 97h
88h     TCON
0000,0000     TMOD
0000,0000     TL0
0000,0000     TL1
0000,0000     TH0
0000,0000     TH1
0000,0000     AUXR
xxxx,xxx0 8Fh
80h       P0
1111,1111      SP
0000,0111      DPL
0000,0000      DPH
0000,0000     PCON
0xx1,0000 87h
      0/8      1/9      2/A      3/B      4/C     5/D     6/E     7/F
STC89LE516AD,STC89LE58AD,STC89LE54AD,STC89LE52AD,STC89LE51AD为单倍速
AD系列用户ISP设不了双倍速,故有一 STC89LE516AD 的双倍速版本(6T)STC89LE516X2
是同一芯片只是出厂时就设为双倍速了
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列78
INT1/P3.3      15                                      31      P2.7/A15
INT0/P3.2      14                                      32      PSEN
A12/P2.4                                                 P0.3/AD3
A10/P2.2                                                 P0.1/AD1
A11/P2.3                                                 P0.2/AD2
 6
A8/P2.0                                                 VDD
TXD/P3.1      13                                      33      ALE/PROG
T0/P3.4      16                                      30      P2.6/A14
ADC5/P1.5      7                                       39      P0.4/AD4
ADC6/P1.6      8                                       38      P0.5/AD5
T1/P3.5      17                                      29      P2.5/A13
P4.3      12                                      34      P4.1
ADC7/P1.7      9                                       37      P0.6/AD6
RXD/P3.0      11                                      35      EA
P4.0                                                 P4.2
A9/P2.1                                                 P0.0/AD0
WR/P3.6                                                 P1.4/ADC4
RD/P3.7                                                 P1.3/ADC3
XTAL2                                                 P1.2/ADC2
XTAL1                                                 P1.1/T2EX/ADC1
VSS                                                 P1.0/T2/ADC0
RST      10                                      36      P0.7/AD7
18
INT0/P3.2      8                                       26      PSEN
A12/P2.4                                                 P0.3/AD3
44
RD/P3.7                                                 P1.3/ADC3
WR/P3.6                                                 P1.4/ADC4
XTAL2                                                 P1.2/ADC2
XTAL1                                                 P1.1/T2EX/ADC1
VSS                                                 P1.0/T2/ADC0
P4.0                                                 P4.2
TXD/P3.1      7                                       27      ALE/PROG
PQFP-44
P4.3      6                                       28      P4.1
ADC5/P1.5      1                                       33      P0.4/AD4
RXD/P3.0      5                                       29      EA
RST      4                                       30      P0.7/AD7
ADC7/P1.7      3                                       31      P0.6/AD6
ADC6/P1.6      2                                       32      P0.5/AD5
T1/P3.5      11                                      23      P2.5/A13
INT1/P3.3      9                                       25      P2.7/A15
T0/P3.4      10                                      24      P2.6/A14
A8/P2.0                                                 VDD
A9/P2.1                                                 P0.0/AD0
A10/P2.2                                                 P0.1/AD1
A11/P2.3                                                 P0.2/AD2
12
DIP-40
ADC0/T2/P1.0     1                VCC
  ADC1/T2EX/P1.1                     P0.0/AD0
ADC2/P1.2     3           38      P0.1/AD1
ADC3/P1.3               37      P0.2/AD2
ADC4/P1.4               36      P0.3/AD3
ADC5/P1.5               35      P0.4/AD4
ADC6/P1.6     7          34      P0.5/AD5
ADC7/P1.7       8          33      P0.6/AD6
RST                  32       P0.7/AD7
RXD/P3.0        0          31       EA
TXD/P3.1      11         30       ALE/PROG
INT0/P3.2       2          29       PSEN
INT1/P3.3              28      P2.7/A15
T0/P3.4     4          27      P2.6/A14
T1/P3.5     5         26       P2.5/A13
WR/P3.6     6         25      P2.4/A12
RD/P3.7     17         24       P2.3/A11
XTAL2      18        23      P2.2/A10
XTAL1     19          2      P2.1/A9
VSS      20          21      P2.0/A8
PLCC-44
      STC89LE516AD / X2 系列单片机 管脚图
工作电压: 3.6V - 2.4V,  可低至2.4V - 1.9V
I/O口: P0,P2,P3,P4口可以承受5V输入。
P4 口: 地址在 C0H, P4.3 - P4.0
A/D 转换在P1 , P1.0 - P1.7八路。
         P1口不要接到5V 系统,只能接3.3V系统.
10K
10K A/D
1/2 Vcc
2/3 Vcc
3/4 Vcc
Vcc
10K
10K
10K
4/5 Vcc
P1.0 - P1.7
A/D转换典型应用线路
按键扫描
 5
 4
 3
 2
 1
 44
 43
 42
 41
 40
19
20
21
22
23
24
25
26
27
28
43
42
41
40
39
38
37
36
35
34
13
14
15
16
17
18
19
20
21
22
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列79
                                  R33  =  0  -  160 欧姆推荐用此电阻可以不用
 X1 2-3MHz 4-9MHz 10-18MHz 19-26MHz 27-34MHz 35-39MHz 40-43MHz 44-48MHz
C1,C2 47pF 20pF 10pF 不用 10pF 10pF 10pF 5pF
R1 不用 不用 不用 不用 6.8K 5.1K 3.3K 3.3K
 STC89LE516AD 系列单片机 ISP 下载编程典型应用电路
任何一种复位后,如 P1.1/P1.0 = 0,0 则进入系统ISP 监控程序
任何一种复位后 P1.1,P1.0  不同时为则不进入系统ISP 监控程序
注意与STC89C51RC/RD+系列单片机的不同,RC/RD+系列是冷启动进入系统ISP 监控程序
使用STC89LE516AD系列单片机时尽量将P1.0/P1.1 中的一个管脚空着免得不需要进入系统 ISP监控程
序时,由于 P1.1/P1.0 = 0,0 复位后进入系统ISP监控程序
Vcc
U1,下载板是用的编程器用锁紧座方便生产
0.1uF
Vin
Power On
C6 C5
104 10uF
1K
Vcc
C2
C1
R1
X1
1  T2/P1.0                VCC  40
 2  T2EX/P1         P0.0/AD0  39
3  P1.2                P0.1/AD1  38
4  P1.3                P0.2/AD2  37
5  P14               P0.3/AD3  36
6  P1.5            P0.4/AD4  35
7  P1.6              P0.5/AD5  34
8  P1.7            P0.6/AD6  33
  RST                P0.7/AD7  32
 10  RXD/P3.0                   EA  31
 11   TXD/P3.1          ALE/PROG  30
12   INT0/P3.2             PSEN  29
13  INT1/P3.3       P2.7/A15  28
14    T0/P3.4           P2.6/A14  27
15   T1/P3.5           P2.5/A13  26
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
MCU_TxD (P3.1)
MCU_RxD (P3.0)
SW1
47pF
8 R2IN R2OUT 9
STC单片机在线编程线路 STC    RS-232 转换器
2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
 STC3232STC232MAX232SP232
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
PC /电脑 串口
R33
此电路已做成一块 STC ISP
用户程序下载工具,人民币50
供用户将程序灌进单片机使用
电源开关
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB +5V
GND 1
RESET 2
3 VCC
STC 810R
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列80
1.STC89LE516AD 系列单片机扩展 AUX-RAM 的使用
汇编语言:  访问内部扩展的 256 字节 AUX-RAM)
        MOVX   @Ri,  A   ;   将累加器的值送至@Ri 指向的单元, i = 0, 
        MOVX   A,    @Ri ;   @Ri 指向的单元的值读到累加器A, i = 0, 
STC89LE516AD/X2系列单片机用MOVX   @RiMOVX   @Ri指令访问不到外部64K数据
空间
    STC89LE516AD/X2 系列单片机内部的RAM 512 字节(256+256),即扩展了 256 字节的AUX-RAM,其访
问方式为
汇编语言:  访问外部64K 数据空间
        MOVX   @DPTR,  A     ;   将累加器 的值送至 @DPTR 指向的单元
        MOVX   A,      @DPTR ;   @DPTR 指向的单元的值读到累加器
STC89LE516AD/X2系列单片机用MOVX   @DPTRMOVX   @DPTR指令访问不到内部扩展
256字节AUX-RAM
语言
pdata 声明的变量访问单片机内部扩展的256字节AUX-RAM
xdata 声明的变量访问单片机外部 64K 数据空间
2.双数据指针   AUXR1 寄存器
AUXR 8Eh Auxiliary  Register    -  -  -  -  -  -  - ALEOFF xxxx,xxx0
AUXR1 A2h Auxiliary  Register    -  -  -  -  -    - DPS xxxx,xxx0
DPS =  时选择 DPTR0 DPS =  时选择 DPTR1
可以用 INC AUXR1” 快速切换 DPTR0 / DPTR1
3.禁止 ALE 输出   AUXR1 寄存器
ALEOFF = 0, ALE 信号正常输出
ALEOFF = 1, 禁止 ALE 信号输出但在访问外部数据空间及外部程序空间时有信号输出
4.中断   中断优先级控制寄存器 IP / IPH
中断与普通8052完全兼容优先级可设为 通过增加的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   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列81
Interrupt
 Source
中断源
Vector
Address
中断
向量地址
Polling
Sequence
中断
查询次序
中断
优先级设置 优先级
最低 优先级优先级优先级
最高
Interrupt
Request
中断请求
/INT0 0003H PX0H,PX0 0,0 0,1 1,0 1,1 IE0
Timer 000BH PT0H,PT0 0,0 0,1 1,0 1,1 TF0
/INT1 0013H PX1H,PX1 0,0 0,1 1,0 1,1 IE1
Timer 001BH PT1H,PT1 0,0 0,1 1,0 1,1 IF1
UART 0023H PSH,  PS 0,0 0,1 1,0 1,1 RI + TI
Timer 002BH PT2H,PT2 0,0 0,1 1,0 1,1 TF2 + EXF2
4.A/D   A/D 转换寄存器 ADC_CONTRADC_DATAP1_ADC_EN
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
P1_ADC_EN 97h 允许成为ADC_P17  ADC_P16 ADC_P15 ADC_P14 ADC_P13 ADC_P12 ADC_P11 ADC_P10 0000,0000
ADC_CONTR C5h D 转换控制寄存器  -  - ADC_FLAG ADC_START CHS2 CHS1 CHS0 xxx0,0000
ADC_DATA C6h D 转换结果寄存器  -  -  -  -  -  -  -  - 0000,0000
STC89LE516AD/X2P1 口,有 位精度的高速A/D转换器, P1.7 - P1.0
允许.x成为/DADC_P17  ADC_P16 ADC_P15 ADC_P14 ADC_P13 ADC_P12 ADC_P11 ADC_P10 0000,0000
P1_ADC_EN 特殊功能寄存器:  P1.x 作为 A/D 转换输入通道来用允许特殊功能寄存器
相应位为“1”时,对应的P1.x 口作为A/D 转换使用内部上拉电阻自动断开
A/D 转换控制寄存器  -  - ADC_FLAG ADC_START CHS2 CHS1 CHS0 xxx0,0000
电压输入型,可做按键扫描,电池电压检测,频谱检测等。17 个机器周期可完成一次转换,时钟在
40MHz以下时
ADC_CONTR 特殊功能寄存器:  A/D 转换控制特殊功能寄存器
CHS2 CHS1 CHS0 Analog Input Channel Select
模拟输入通道选择
选择  P1.0 作为A/D输入来用
选择  P1.1 作为A/D输入来用
选择  P1.2 作为A/D输入来用
选择  P1.3 作为A/D输入来用
选择  P1.4 作为A/D输入来用
选择  P1.5 作为A/D输入来用
选择  P1.6 作为A/D输入来用
选择  P1.7 作为A/D输入来用
CHS2 / CHS1 / CHS0模拟输入通道选择CHS2 / CHS1 / CHS0
ADC_START:  模拟/数字转换(ADC)启动控制位设置为1”时,开始转换
ADC_FLAG:   模拟数字转换结束标志位 A/D 转换完成后ADC_FLAG = 
ADC_DATA  特殊功能寄存器:  A/D转换结果特殊功能寄存器
D 转换结果寄存器  -  -  -  -  -  -  -  - 0000,0000
模拟/数字转换结果计算公式如下 结果 = 256 x Vin / Vcc
Vin为模拟输入通道输入电压Vcc 为单片机实际工作电压用单片机工作电压作为模拟参考电压
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列82
/* ------------- 宏晶科技   2005/1/5      A/D转换 语言示例 ------------ */
/* ---Mobile: 13922805190, Tel: 0755 - 82908285,  Fax: 0755 - 82944243  */
/* ----Website: www.mcu-memory.com   Email: support@mcu-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位数据位, 无奇偶校验
    T2C = 04;                   / 000100, 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   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列83
INT8U get_AD_result(INT8U channel)
    INT8U AD_finished 0;            // 存储 A/D 转换标志
    ADC_DATA  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转换结束否
    }
    AD_CNT &= 0xF;                  /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);
        dela(0x200;               /延时
        delay(0x200);
        delay(0x200);
        delay(0x200);
        delay(0x200);
        delay(0x200);
    }
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列84
 附录 B:为什么少数用户的普通 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   字节 0000FFFFH,均访问外部 只访问内部扩展RAM
STC89LE516X2 256   字节 0000FFFFH,均访问外部 只访问内部扩展RAM
如果用户的单片机 P0 / P2 口是作为普通I/O口(输入输出口用的,无冲突
如果用户的单片机 P0 / P2 口是作为总线扩展用的外部扩展器件的地址在内部扩展RAM之上,无冲
如果用户的单片机 P0 / P2 口是作为总线扩展用的访问外部扩展器件的地址在内部扩展RAM 的范围
内,则访问的是内部扩展的AUX-RAM,所以有些系统用户要禁止内部扩展RAM
Mnemonic Add Name   7  6  5  4  3  2     1  0 Reset value
AUXR 8Eh Auxiliary  Register    -  -  -  -  -  - EXTRAM ALEOFF xxxx,xx00
AUXR寄存器的 EXTRAM 设为 即可禁止内部扩展的 AUX-RAM使之与标准8052 一样
STC89C52RC / STC89C58RD+系列
STC89LE516AD / STC89LE516X2系列AUXR寄存器无EXTRAM控制位,通过寻址方式区分
2.晶振 / 时钟电路
STC89C52RC / STC89C58RD+ 现系列时钟电路部分请参照相应部分典型应用线路用示波器查看时钟是
否正常
MOVX  @Ri固定访问内部扩展 RAM,MOVX,  @DPTR固定访问外部扩展64K 数据空间详见相
应部分说明
3.复位电路
电阻电容复位的值为  电阻 = 10k, 电容 = 10uF如为用外部专用芯片复位RESET管脚复位脚
不要加任何上拉下拉电阻详见相应部分说明
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列85
     型号 用户应用程序区 ISP 引导区空间ISP Space
AP Space 地址 0 1K(ISP/IAP) 2 K(ISP/IAP) 4K(ISP/IAP)
STC89C51RC 0000H - 0FFFH 目前
版本
禁止
ISP/
IAP
操作
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 3800H - 3BFFH 3400H - 3BFFH 2C00H - 3BFFH
     型号 用户应用程序区 ISP 引导区空间ISP Space
AP Space 地址 0 1K(ISP/IAP) 2 K(ISP/IAP) 4K(ISP/IAP)
STC89C53RC 0000H - 3BFFH 目前版本禁止
ISPIAP操作
STC89LE53RC 0000H - 3BFFH
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
     型号 用户应用程序区 ISP 引导区空间ISP Space),ISP区启动MCU才有IAP功能
AP Space 地址 0 1K(ISP/IAP) 2 K(ISP/IAP) 4K(ISP/IAP)
STC89C54RD+ 0000H - 3FFFH 目前
版本
禁止
ISP/
IAP
操作
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 F800H - FBFFH F400H - FBFFH EC00H - FBFFH
     型号 用户应用程序区 ISP 引导区空间ISP Space),ISP区启动MCU才有IAP功能
AP Space 地址 0 1K(ISP/IAP) 2 K(ISP/IAP) 4K(ISP/IAP)
STC89C516RD+ 0000H - FBFFH 目前版本禁止
ISPIAP操作
STC89LE516RD+ 0000H - FBFFH
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
自己动手写自己的ISP,写自己的远程升级程序还需了解的信息只提供给策略性伙伴
用户程序区空间和ISP程序区空间
 附录C: STC89C51 RC / RD+ 系列 单片机 ISP (DIY)
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列86
 动手写自己的ISP 还必需要的工具只提供给策略性伙伴
                   -----STC9C51RC / 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区开始运行
一.三个加密项全部加密
二.缓冲区从开始,清缓冲
区调入用户主应用程序
四.选择从ISP区启动
三.选定ISP 空间从那里开始
不清缓冲区调入ISP程序保留
已调入的程序,用户ISP 空间可
0/1K/2K/4K
五.烧录程序
   也可直接调入ISP程序至ISP 区,选择从 ISP 程序区启动再烧录用户主应用程序由用户自己编
ISP程序下载。还可以把 ISP 区当成用户程序区把余下的空间当成 Data  Flash 数据空间
STC89C516RD+,4K ISP区当用户程序使用,余下59KEEPROM
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列87
    方式二用户主应用程序和ISP 程序一起烧录上电复位后程序从用户主应用程序区开始运行但单
片机ISP空间大小必须要选择 1K/2K/4K,否则只能当成ISP/IAP的单片机使用
一.三个加密项全部加密
二.缓冲区从开始,清缓冲
区调入用户主应用程序
三.选定ISP 空间从那里开始
不清缓冲区调入用户自己的ISP
程序保留已调入的程序
四.选择从用户主应用程序区
启动
五.烧录程序
已加过密的单片机,或已设置过ISP空间为 1k/2k/4k,上电复位从 ISP 空间启动的单片机,重新烧录程
序时,要先将整个芯片擦除再停电单片机电放光后再上电再重烧程序才会写对擦除整个芯片
后,重新允许读出芯片内容的状态是停电后再上电才能生效
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列88
用户写自己的 ISP程序的格式
ORG 0000H; ISP程序的入口地址逻辑上也是从“0 ”开始
LJMP INIT_MCU
ORG 0003H;   ISP程序的外部中断入口地址,逻辑上是从0003H”开始
LJMP INT_0
ORG 000BH;   ISP程序定时器中断入口地址逻辑上是从000BH”开始
LJMP TIMER_0
ORG 0023H;  ISP程序的串口中断入口地址逻辑上也是从0023H”开始
LJMP Serial_Port_INT
ORG 0050H; 初始化单片机
INIT_MCU:
ISP_DATA  EQU  0E2H申明ISP_DATA寄存器地址,或 ISP_DATA  DATA 0E2H
ISP_ADDRH  EQU  0E3H申明ISP_ADDRH寄存器地址,或用 DATA 申明
ISP_ADDRL  EQU  0E4H申明ISP_ADDRL寄存器地址,或用 DATA 申明
ISP_CMD  EQU  0E5H申明ISP_CMD寄存器地址,或用 DATA 申明
ISP_TRIG  EQU  0E6H申明ISP_TRIG寄存器地址,或用 DATA 申明
ISP_CONTR  EQU  0E7H申明ISP_CONTR寄存器地址,或用 DATA 申明
MOV SP, #0E0H;
......
收到外部命令要更新用户主应用程序区 (AP
......
......
UPDATE_USER_AP_CODE:
......   更新用户程序区(AP),ISP/IAP 对用户 AP 区操作,物理地址从 开始
From_ISP_to_AP_Soft_Reset:
MOV ISP_CONTR,#00100000B;更新完用户程序区后,从 ISP 区软复位到 AP
END ASM
----------------------------------------------------
将以上ISP程序烧录到单片机的ISP区就可已了
也可以在用户程序区收到命令后,从 AP 区软复位到 ISP
MOV ISP_CONTR, #01100000B;AP 区收到命令后 AP 区软复位到 ISP
From_AP_to_ISP_Soft_Reset:
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列89
附录D: 如何实现运行中自定义下载无仿真器时方便调试
自定义下载原理STC-ISP.exe软件
1.STC-ISP.exe软件可由用户设置 UART/RS-232 的格式向用户程序发送命令
     波特率:  38400bps,  19200bps,  9600bps 4800bps,  2400bps,  1200bps
     奇偶校验位  ,  偶校验    奇校验
    数据位几位    7位,6 位,5 位, 
    停止位几位   , 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   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列90
附录E: Keil C51 高级语言编程的软件如何减少代码长度
1.在“Project”菜单中选择“Options for  Target
2.在“Options for  Target”中选择“C51
3.选择按空间大小, 9级优化程序
4.重新编译程序即可
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列91
附录F:写给用STC89C51RC/RD+系列单片机做仿真器的朋友
     STC89C51 RC / RD+ 系列 单片机 做仿真器须知
设置等待时间                 CPU   等待时间机器周期
WT2 WT1 WT0 Read Program Sector Erase Recommended System Clock
 0  1  1 30 5471 5MHz
 0  1  0 11 60 10942 10MHz
 0  0  1 22 120 21885 20MHz
 0  0  0 43 240 43769 40MHz
1.Flash IAP 字节读字节编程扇区擦除等待机器周期
2.程序在ISP 区可对用户AP 区进行 IAP 编程 扇区擦除
3.程序在用户AP区不可对ISP区进行IAP 操作
5.可从 ISP 区软复位到 AP 区,也可从 AP 区软复位到 ISP
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
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  -  -  -  -  - MS2 MS1 MS0 xxxx,x000
ISP_TRIG E6h ISP/IAP  Flash  Command  Trigger xxxx,xxxx
ISP_CONTR E7h ISP/IAP  Control  Register 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(软复位
软复位后所有的寄存器复位,可在软复位前将需保存的SFR的值,保存在 RAM DATA  Flash中,建议
采用STC89C58RD+设计
STC89C58RD+50-C-PI:  独立32k字节用户程序区,独立可选0/1/2/4k字节系统ISP
   只有选择1/2/4k字节ISP并选择上电复位从ISP区启动,晶片IAP功能才起作用
       512Byte/Sector
                    独立 27k 字节数据 Flash
4.程序在 ISP/AP 区可对 Data Flash 区进行 IAP 操作
工作电压5.5v - 3.4v, 不要过低否则工作不了5V 1N4001 二极管是3.6V
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列92
附录G:     STC 高性能SRAM 选型一览表
 STC62WV1024
A11                                                 32   OE
A14   1                                            22   DQ1
A12     12                                            21   DQ0
A7    3                                             20     A0
A6   14                                            9    A1
A5    5                                             18    A2
A4   16                                           17    A3
A16                                                 23   DQ
NC                                                 24    GND
VCC                                                 25   DQ3
A15                                                 26    DQ4
CE2                                                 27    DQ5
WE    5                                             28   DQ6
A13                                                 29   DQ7
A8    3                                             30    CE1
A9                                                 31   A10
TSOP / STSOP-32
A14    11                                                 DQ1
A12     12                                            21    DQ0
A7    13                                             20     A0
A6     4                                           19    A1
A5    5                                             18    A2
A4   16                                           17    A
 A11   1                                             32    O
A16    10                                             23    DQ2
A9    2                                             31    A10
A8    3                                             30     CE
A13                                                 29    DQ7
WE    5                                             28    DQ
A17    6                                             2     DQ5
CC    8                                             25    DQ3
A15                                                 26    DQ4
A18                                                 24      GND
 STC62WV5128
STSOP-32
 STC62WV1M8
DQ2    13                          32     DQ5
DQ3    14                          31     DQ4
NC     15                           30     NC
NC     16                          29    NC
A1     22                          23     A14
A1     21                           24     A
A1     20                          25     A12
A18    19                          26     A1
A1     18                          27     A
WE     17                          28     A9
GN     12                           33     VCC
DQ1    10                           35     DQ6
A1     4                           41     OE
VC     11                           34     GND
TSOP--44
4     1                           44     A5
A3     2                           43     A6
A2     3                           42     A7
A0     5                           40     CE2
 CE1     6                           39     A8
NC     7                           38     NC
NC                                37     N
Q0     9                           36     DQ7
 STC62WV25616
DQ4    13                           32    DQ11
DQ5    14                           31    DQ10
DQ6    15                           30    DQ9
DQ7    16                           29    DQ8
A13    22                           23    A12
A14    21                            24    A11
A15    20                           25    A10
A16    19                           26    A9
A17    18                           27    A8
WE    17                           28    NC
GND    12                           33    VCC
DQ3    10                            35    DQ12
1    4                            4    OE
VCC    11                            34    GND
TSOP--44
4    1                            4    A5
A3    2                            43    A
A2    3                            42    A7
A0    5                            40    U
 CE                                39    LB
DQ0    7                            38    DQ15
Q1    8                            37    DQ14
DQ2                                36    DQ13
 STC62WV12816
DQ4    13                           32     DQ11
DQ5    14                           31     DQ10
DQ6    15                           30     DQ9
DQ7    16                           29     DQ8
A12    22                           23     NC
A13    21                            24     A11
A14    20                           5     A10
A15    19                          26     A9
A16    18                          27     A8
WE    17                          8     N
GND    12                           33     VCC
DQ3    10                            5     DQ12
A1     4                           1     O
VCC    11                           34     GND
TSOP--44
4     1                           44     A5
A3     2                           43     A6
A2                                42     A7
A0     5                           40     UB
 CE                                39     LB
DQ     7                           38     DQ15
DQ1     8                           37     DQ14
DQ     9                           36     DQ13
 STC62WV51216
DQ4    13                           32    D11
DQ5    14                           31    DQ10
DQ6    15                           30    D
DQ7    16                           29    DQ
A14    22                           23    A13
A15    21                           24    A12
A16    20                           25    A1
A17    19                           26    A1
A18    18                           27    A9
WE    17                           2    A8
VSS    12                           33    VCC
DQ3    10                            35    DQ12
1    4                            4    OE
VCC    11                           34    VSS
TSOP--44
4    1                            4    A5
A3    2                             43    A6
A2    3                            42    A7
A0    5                            40    U
 CE                                39    LB
DQ0    7                            38    DQ15
DQ1    8                            37    DQ14
DQ2                                36    DQ13
 STC62WV1024
A7                    28     A13
A1     4               29     W
A1     3               30     CE2
NC     1               32     V
A3     9               24     OE
A4     8               25     A11
 A2    10                23     A10
A1     11               22     CE1
A0     12               21     DQ7
DQ0    13               20     DQ6
DQ1    14               19     DQ5
DQ2    15               18     DQ4
GND    16                17     DQ3
A5                    26     A
A1     2               31     A15
A6     6               7     A
 SOP-32
型号 容量 工作电压 温度 速度 推荐封状 供货
STC62WV256   32K x 2.4 - 5.5V 408570nS SOP/TSOP/DIP 现货
STC62WV1024 128K x  2.4 - 5.5V 408570nS SOP/STSOP/TSOP 现货
STC62WV2568 256K x  2.4 - 5.5V 408570nS STSOP-32 现货
STC62WV5128 512K x  2.4 - 5.5V 408570nS STSOP/SOP-32 现货
STC62WV1M8    1M x  2.4 - 5.5V 408570nS TSOP2-44 订货
STC62WV6416  64K x  2.4 - 5.5V 408570nS TSOP2-44 现货
STC62WV12816 128K x 16 2.4 - 5.5V 408570nS TSOP2-44 现货
STC62LV12816 128K x 16 2.4 - 3.6V 408570nS TSOP2-44 现货
STC62WV25616 256K x 16 2.4 - 5.5V 408570nS TSOP2-44 现货
STC62WV51216 512K x 16 2.4 - 5.5V 408570nS TSOP2-44 现货
 STC62WV256
 SOP-28
DQ2    13                16    DQ4
GND    14                15    DQ3
DQ1    12                17    DQ5
0    1                19    DQ7
A6                     25    A
DQ0    11                18    DQ6
A14                    28    VC
A12                    27    WE
A7    3                26    A13
A5                    24    A9
A4                     23    A11
A3     7                2    OE
A2                     21    A10
A1                     20    CE
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列93
附录H:        S 单片机配套工具价格
1.STC单片机ISP 下载编程工具人民币50 可申请样品
2.STC单片机ISP ISP 脱机下载工具人民币 200 元(脱机就是量产时无须电脑
3.STC单片机专用烧录器人民币200 有些用户生产时希望擦除ISP,或要烧录自己开发的ISP 程序
用户自己开发的ISP 程序可与用户应用程序一起烧录
4.STC-单片机仿真器人民币1950 元,测试中
型号 尾缀 封装 商规
工规 单价 RAM
字节 Flash
程序 P4
STC89C51RC 40C-PDIP DIP-40 商规 4.7512 4K
STC89C51RC 40C-PLCC PLCC-44 商规 5.2512 4K
STC89C51RC 40C-PQFP PQFP-44 商规 5.6512 4K
STC89C51RC 40I-PDIP DIP-40 工规 5.5512 4K
STC89C51RC 40I-PLCC PLCC-44 工规 5.7512 4K
STC89C51RC 40I-PQFP PQFP-44 工规 6.0512 4K
STC89C52RC 40C-PDIP DIP-40 商规 5.4512 8K
STC89C52RC 40C-PLCC PLCC-44 商规 6.0512 8K
STC89C52RC 40C-PQFP PQFP-44 商规 6.0512 8K
STC89C52RC 40I-PDIP DIP-40 工规 6.7512 8K
STC89C52RC 40I-PLCC PLCC-44 工规 6.7512 8K
STC89C52RC 40I-PQFP PQFP-44 工规 7.0512 8K
STC89C53RC 40C-PQFP DIP-40 商规 8.0512 15K
STC89C53RC 40C-PLCC PLCC-44 商规 8.0512 15K
STC89C53RC 40C-PQFP PQFP-44 商规 8.0512 15K
STC89C53RC 40I-PQFP DIP-40 工规 9.0512 15K
STC89C53RC 40I-PLCC PLCC-44 工规 9.0512 15K
STC89C53RC 40I-PQFP PQFP-44 工规 9.0512 15K
STC89C54RD+ 40C-PQFP DIP-40 商规 9.01280 16K
STC89C54RD+ 40C-PLCC PLCC-44 商规 9.01280 16K
STC89C54RD+ 40C-PQFP PQFP-44 商规 9.01280 16K
STC89C54RD+ 40I-PQFP DIP-40 工规 111280 16K
STC89C54RD+ 40I-PLCC PLCC-44 工规 111280 16K
STC89C54RD+ 40I-PQFP PQFP-44 工规 111280 16K
STC89C58RD+ 40C-PQFP DIP-40 商规 121280 32K
STC89C58RD+ 40C-PLCC PLCC-44 商规 121280 32K
STC89C58RD+ 40C-PQFP PQFP-44 商规 121280 32K
STC89C58RD+ 40I-PDIP DIP-40 工规 151280 32K
STC89C58RD+ 40I-PLCC PLCC-44 工规 151280 32K
STC89C58RD+ 40I-PQFP PQFP-44 工规 151280 32K
STC89C516RD+ 40C-PDIP DIP-40 商规 13 1280 63K
STC89C516RD+ 40C-PLCC PLCC-44 商规 13 1280 63K
STC89C516RD+ 40C-PQFP PQFP-44 商规 13 1280 63K
STC89C516RD+ 40I-PDIP DIP-40 工规 171280 63K
STC89C516RD+ 40I-PLCC PLCC-44 工规 171280 63K
STC89C516RD+ 40I-PQFP PQFP-44 工规 171280 63K
STC89LE516AD 14
STC89LE58AD 12
STC89LE54AD 11
STC89LE52AD
STC89LE51AD
STC89C51RC/RD+系列  5V 单片机批量价格1K 以下零售加0.3 元,快递费 25
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列94
         STC12C5410AD 系列 1T 单片机简介
    STC12C5410 系列单片机是单时钟 机器周期(1T)的兼容8051 内核单片机是高速 低功耗的新一代
8051单片机,全新的流水线精简指令集结构内部集成MAX810专用复位电路
特点
1. 增强型 1T 流水线精简指令集结构 8051 CPU
3. 工作频率范围0 - 35 MHz相当于普通8051  0420MHz.实际工作频率可达 48MHz.
4. 用户应用程序空间12K / 10K / 8K / 6K / 4K / 2K 字节
5. 片上集成 512 字节 RAM
12.共2个16 位定时器 计数器
14PWM(4 路)/PCA可编程计数器阵列), 也可用来再实现个定时器
15ADC, 10位精度ADC,共
16. 通用异步串行口(UART)
17SPI 同步通信口, 主模式从模式
9. 看门狗
18.工作温度范围 0 - 75 / -40 - +85
ISP在系统可编程/IAP在应用可编程), 无需专用编程器
2. 工作电压5.5V - 3.4V5V 单片机  /  3.8V - 2.0V3V 单片机
19.封装: PDIP-28SOP-28PDIP-20SOP-20PLCC-32,TSSOP-20(超小封状,定货
11.时钟源外部高精度晶体时钟,内部 R/C  振荡器
8. EEPROM 功能
6. 通用 I/O 口(27/23 ), 复位后为:  准双向口 弱上拉普通8051 传统 I/O
      可设置成四种模式准双向口 弱上拉推挽 强上拉仅为输入高阻,开漏
10内部集成MAX810 专用复位电路外部晶体20M 以下时可省外部复位电路
      用户在下载用户程序时可选择是使用内部R/C振荡器还是外部晶体时钟
    可通过串口P3.0/P3.1直接下载用户程序数秒即可完成一片
      常温下内部 R/C 振荡器频率为5.2MHz  6.8MHz
     精度要求不高时可选择使用内部时钟但因为有温漂应认为是4MHz  8MHz
      -也可用来再实现个定时器或个外部中断上升沿中断下降沿中断均可支持
13.外部中断 路,下降沿中断或低电平触发中断,Power Down模式可由外部中断低电平唤醒
附录I:
      每个I/O 口驱动能力可达20mA但整个芯片最大不得超过55mA
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列95
TxD/P3.1
INT0/P3.2
P0.0
XTAL2
XTAL1
P0.1
PWM1/PCA1/CEX1/T1/P3.5
INT1/P3.3
ECI/T0/P3.4
PLCC-32
14 15 16 17 18 19 20
4   3  2  1 32  31 30
10
11
12
13
29
28
27
26
25
24
23
22
21
ADC0/P1.0
PWM0/PCA0/CEX0/P3.7
P2.7
P2.6
VSS
P2.5
PWM3/PCA3/CEX3/P2.4
P1.7/SCLK/ADC7
P1.6/MISO/ADC6
P1.5/MOSI/ADC5
P0.3
P1.4/SS/ADC4
P1.3/ADC3
P0.2
P1.2/ADC2
P1.1/ADC1
P2.0/CEX2/PCA2/PWM2
P2.1
VDD
P2.2
P2.3
RST
P3.0/RxD
         STC12C5410AD 系列 1T 单片机管脚图
DIP-28(窄体/ SOP-28
P2.2 28 P2.1P2.3 27 P2.0/CEX2/PCA2/PWM2RST 26
VDD
RxD/P3.0 25 P1.7/SCLK/ADC7
TxD/P3.1 24 P1.6/MISO/ADC6
XTAL2 23 P1.5/MOSI/ADC5
XTAL1 22 P1.4/SS/ADC4
INT0/P3.2 21 P1.3/ADC3
INT1/P3.3 20 P1.2/ADC2
ECI/T0/P3.4 10 19 P1.1/ADC1
PWM1/PCA1/CEX1/T1/P3.5 11 18 P1.0/ADC0
VSS
12 17 P3.7/CEX0/PCA0/PWM0
PWM3/PCA3/CEX3/P2.4 13 16 P2.7P2.5 14 15 P2.6
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
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/CEX1/T1/P3.5     9          12    P1.0/ADC0
Gnd     10         11    P3.7/CEX0/PCA0/PWM0
XTAL1     5          16    P1.4/SS/ADC4
DIP-20/SOP-20
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
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
XTAL1     5          16    P1.4/SS
DIP-20/SOP-20
STC12C5410AD(有 A/D 转换STC12C5410 A/D转换
STC12C5410AD(有 A/D 转换STC12C5410 A/D转换
P2.2 28 P2.1P2.3 27 P2.0/CEX2/PCA2/PWM2RST 26
VDD
RxD/P3.0 25 P1.7/SCLK
TxD/P3.1 24 P1.6/MISO
XTAL2 23 P1.5/MOSI
XTAL1 22 P1.4/SS
INT0/P3.2 21 P1.3
INT1/P3.3 20 P1.2
ECI/T0/P3.4 10 19 P1.1
PWM1/PCA1/CEX1/T1/P3.5 11 18 P1.0
VSS
12 17 P3.7/CEX0/PCA0/PWM0PWM3/PCA3/CEX3/P2.4 13 16 P2.7P2.5 14 15 P2.6
DIP-28(窄体/ SOP-28
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列96
0.485 inch12.32 mm
0.495 inch12.57 mm
0.447(11.35)
0.453(11.51)
0.042(1.07)
0.048(1.22)
0.042(1.07)
0.048(1.22)
0.54713.89
0.553 14.
05
0.585(14.86)
0.595(15.11)
0.0501.27
 BSC.
0.0501.27
 BSC.
0.0260.66
0.032 0.
81
0.0230.58
0.029 (0.74) ×30°
0.106 (2.69)
0.112 (2.84)
0.013(0.33)
0.021(0.53)
0.400(10.16)
 BSC
0.490(12.45)
0.530(13.46)
0.015(0.38)Min
0.075 (1.91)
0.095 (2.41)
0.125 (3.18)
0.140 (3.56)
Optional Pin #1
    Identifier
PIN1
1.445 (36.70)
1.455 (36.96)
0.280 (7.11)
0.240 (6.10)
0.090(2.29)
MAX
0.005(0.127)
MIN
1.300(33.02) REF
0.210(5.33)
MAX
0.150 (3.81)
0.115 (2.92)
0.110 (2.79)
0.090 (2.29)
0.070(1.78)
0.045(1.13)
0.022 (0.559)
0.014 (0.356)
0.015(0.381)MIN
0.325(8.26)
0.300(7.62)
0.014(0.356)
0.008(0.203) 0.430(10.92)MAX
15 REF
SEATING
PLANE
28-PIN PLASTIC DUAL-IN-LINE
PACKAGE (PDIP)
32-PIN PLASTIC LEAD CHIP CARRIER (PLCC)
PIN1
0.020 (0.508)
0.014 (0.350)
0.703 (17.856)
0.693 (17.602)
0.013 (0.330)
0.009 (0.229)
0.0484 (1.228)
0.0276 (0.700)
 0
10  REF
0.112 (2.844)
0.100 (2.540)
0.014 (0.350)
0.004 (0.102)
28-PIN SMALL OUTLINE PACKAGE (SOP)
0.056 (1.422)
0.044 (1.118)
       STC12C5410AD系列 1T 单片机封装尺寸图
0.299 (7.60)
0.291 (7.39) 0.420 (10.7)
0.393 (9.98)
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列97
20P3, 20-lead, 0.300" Wide, Plastic Dual Inline
Package (PDIP-20)
Dimensions in Inches and (Millimeters)
JEDEC STANDARD MS-001 AD
20S, 20-lead, 0.300" Wide, Plastic Gull WIng Small
Outline (SOIC-20 / SOP-20)
Dimensions in Inches and (Millimeters)
PIN1
0.020 (0.508)
0.013 (0.330)
0.299 (7.60)
0.291 (7.39) 0.420 (10.7)
0.393 (9.98)
0.050 (1.27)BSC
0.513 (13.0)
0.497 (12.6) 0.105 (2.67)
0.092 (2.34)
0.012 (0.305)
0.003 (0.076)
0.013 (0.330)
0.009 (0.229)
0.035 (0.889)
0.015 (0.381)
REF
PIN1
1.060 (26.9)
0.980 (24.9)
0.280 (7.11)
0.240 (6.10)
0.090(2.29)
MAX
0.005(0.127)
MIN
0.900(22.86) REF
0.210(5.33)
MAX
0.150 (3.81)
0.115 (2.92)
0.110 (2.79)
0.090 (2.29)
0.070(1.78)
0.045(1.13)
0.022 (0.559)
0.014 (0.356)
0.015(0.381)MIN
0.325(8.26)
0.300(7.62)
0.014(0.356)
0.008(0.203) 0.430(10.92)MAX
15 REF
SEATING
PLANE
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列98
PACKAGEPLASTIC  SHRINK  SMALL  OUTLINETSSOP-206.4mm ×6.4mm
A1
e(0.65mm) B(0.19mm0.30mm)  L(0.50mm0.75mm)
20-PIN
A1
E2
Φ
  DIMENSIONS
in inches (mm)
Minimum/Maximum - /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)
 0.126 BSC
(3.20mm BSC)
 0.020/0.030
(0.50/0.75mm)
°/8°
E(4.5mm)
E2(3.2mm)
6.4mm
Φ
D(6.40mm6.60mm)
STC12C5410AD 系列的 TSSOP-20 封装需订货
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列99
工作
电压(V
Flash
 程序
存储器
字节
SRAM
字节
UART PCA
PWM A/D I/O
内置
复位 EEP
ROM
封装
20-Pin 封装
28-Pin 封装
32-Pin
STC12C5401 5.5 - 3.4 1K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5401AD 5.5 - 3.4 1K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5402 5.5 - 3.4 2K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5402AD 5.5 - 3.4 2K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5404 5.5 - 3.4 4K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5404AD 5.5 - 3.4 4K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5406 5.5 - 3.4 6K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5406AD 5.5 - 3.4 6K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5408 5.5 - 3.4 8K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5408AD 5.5 - 3.4 8K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5410 5.5 - 3.4 10K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5410AD 5.5 - 3.4 10K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5412 5.5 - 3.4 12K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12C5412AD 5.5 - 3.4 12K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5401 2.0 - 3.8 1K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5401AD 2.0 - 3.8 1K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5402 2.0 - 3.8 2K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5402AD 2.0 - 3.8 2K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5404 2.0 - 3.8 4K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5404AD 2.0 - 3.8 4K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5406 2.0 - 3.8 6K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5406AD 2.0 - 3.8 6K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5408 2.0 - 3.8 8K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5408AD 2.0 - 3.8 8K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5410 2.0 - 3.8 10K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5410AD 2.0 - 3.8 10K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5412 2.0 - 3.8 12K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
STC12LE5412AD 2.0 - 3.8 12K 512 27/23 DIP/SOP/TSSOP DIP/SOP PLCC-32
       STC12C5410AD系列单片机选型一览表
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列100
STC12xx54xx xx 35x-xxxx xx
管脚数
202832
何种封装
PDIPSOPPLCCTSSOP
工作温度范围
工业级-40    +85
商业级 0℃  70
工作频率
12工作频率可到 12MHz
35工作频率可到 35MHz
48工作频率可到 48MHz
AD A/D 转换功能
AD 字样,则无 A/D 转换
程序空间大小
04 4K 字节 08 8K 字节
10 10K字节,12 12K 字节
RAM 512字节,PCA/PWM
STC 1T 8051,同样的工作频率时速度是普通8051 12
 5.5V3.4V
LE2.0V3.8V
LV2.0V3.8V,超低功耗设计工作频率 2MHz 时:
   正常工作电流 < 2mA;
   空闲模式电流 < 1mA;
   掉电模式电流 < 0.1 μA
       STC12C5410AD 系列 单片机 命名规则
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列101
10K
10μ
C1
R1
8 R2IN R2OUT 9
0.1uF 2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
PC /电脑 串口
 STC3232STC232MAX232SP232
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
3   RST                      P2.0/PWM2  26
4   RxD/P3.0          P1.7/SCLK/ADC7  25
5   TxD/P3.1          P1.6/MISO/ADC6  24
6   XTAL2              P1.5/MOSI/ADC5  23
8   INT0/P3.2                P1.3/ADC3  21
9   INT1/P3.3               P1.2/ADC2  20
10  ECI/T0/P3.4              P1.1/ADC1  19
11  PWM1/PCA1/P3.5         P1.0/ADC0  18
12  PWM3/PCA3/P2.4    P3.7/PCA0/PWM0  17
7   XTAL1               P1.4/SS/ADC4  22
Vcc
Vin
Power On
SW1
电源开关
USB +5V
<33p
<33p
通过电脑端的
STC-ISP 软件
控制下载
用户程序
STC 单片机
建议用户在系统上
留此接口,可方便
在线下载用户程序
10μ
0.1 μ
10μ
Vcc
Vcc
0.1uF
0.1uF
2   P2.3                         P2.1  27
1   P2.2                          VDD  28
13  P2.5                         P2.7  16
14  SS                           P2.6  15
USB+5V T1OUT GNDR1IN
USB1
1K
1K 28 Pin
   STC12C5410AD 系列 单片机 典型应用电路(28Pin)
            ---- 通过 RS-232 转换器连接电脑就可以下载程序
    用户在自己的目标系统上,如将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 编程的原理及应用指南
详见附录部分“STC12C5410AD系列单片机 ISP 编程 原理 工具使用说明”部分。另外我们有标准化
的编程下载工具用户可以在上面编程后再插到目标系统上也可以借用它上面的RS-232 电平转换器
连接到电脑,以做下载编程之用。编程一个芯片大致需几秒钟,速度比普通的通用编程器快很多
故无须买通用编程器
    此线路已做成一个STC12C5410AD 系列单片机 ISP 下载编程工具可直接赠送给客户
    电脑端STC-ISP 软件从网站www.MCU-Memory.com下载
使用编程锁紧座就是编程器
晶振频率在20M以下时
可以不用C1R1可为10K
如果使用内部R/C振荡器时钟
(4MHz8MHz,制造误差),XTAL1
XTAL2脚浮空
如果外部时钟频率在33MHz以上时
建议直接使用外部有源晶振时钟从
XTAL1脚输入,XTAL2脚必须浮空
不过建议保留R/C复位电路
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列102
    用户在自己的目标系统上,如将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 编程的原理及应用指南
详见附录部分“STC12C5410AD系列单片机 ISP 编程 原理 工具使用说明”部分。另外我们有标准化
的编程下载工具用户可以在上面编程后再插到目标系统上也可以借用它上面的RS-232 电平转换器
连接到电脑,以做下载编程之用。编程一个芯片大致需几秒钟,速度比普通的通用编程器快很多
故无须买通用编程器
8 R2IN R2OUT 9
0.1uF 2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
PC /电脑 串口
 STC3232STC232MAX232SP232
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB+5V T1OUT GNDR1IN
USB1
1  RST                         VCC  20
2  RxD/P3.0       P1.7/SCLK/ADC7  19
3  TxD/P3.1       P1.6/MISO/ADC6  18
4  XTAL2           P1.5/MOSI/ADC5  17
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
5  XTAL1             P1.4/SS/ADC4  16
1K
1K
Vcc
Vin
Power On
SW1
电源开关
USB +5V
10K
10μ
C1
R1
<33p
<33p
通过电脑端的
STC-ISP 软件
控制下载
用户程序
STC 单片机
建议用户在系统上
留此接口,可方便
在线下载用户程序
10μ
0.1 μ
10μ
Vcc
Vcc
0.1uF
0.1uF
    此线路已做成一个STC12C5410AD 系列单片机 ISP 下载编程工具可直接赠送给客户
使用编程锁紧座就是编程器
    电脑端STC-ISP 软件从网站www.MCU-Memory.com下载
20 Pin
   STC12C5410AD 系列 单片机 典型应用电路(20Pin)
            ---- 通过 RS-232 转换器连接电脑就可以下载程序
晶振频率在20M以下时
可以不用C1R1可为10K
如果使用内部R/C振荡器时钟
(4MHz8MHz,制造误差),XTAL1
XTAL2脚浮空
如果外部时钟频率在33MHz以上时
建议直接使用外部有源晶振时钟从
XTAL1脚输入,XTAL2脚必须浮空
不过建议保留R/C复位电路
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列103
                 指令系统分类总结
如果按功能分类STC89/12 系列单片机指令系统可分为
1.数据传送类指令
2.算术操作类指令
3.逻辑操作类指令
4.控制转移类指令
5.布尔变量操作类指令
按功能分类的指令系统表如下表所示
 数据传送类指令
助记符 功能说明 字节数 12时钟/机器周期
所需时钟 1时钟/机器周期
所需时钟
MOV     ARn 寄存器内容送入累加器 12
MOV     Adirect 直接地址单元中的数据送入累加器 12
MOV     A@Ri 间接RAM中的数据送入累加器 12
MOV     A#data 立即送入累加器 12
MOV     Rn累加器内容送入寄存器 12
MOV     Rndirect 直接地址单元中的数据送入寄存器 24
MOV     Rn#data 立即数送入寄存器 12
MOV     direct累加器内容送入直接地址单元 12
MOV     directRn 寄存器内容送入直接地址单元 24
MOV     directdirect 直接地址单元中的数据送入另一个直接
地址单元 24
MOV     direct@Ri 间接RAM中的数据送入直接地址单元 24
MOV     direct#data 立即数送入直接地址单元 24
MOV     @Ri累加器内容送间接RAM单元 12
MOV     @Rirect 直接地址单元数据送入间接RAM单元 24
MOV     @Riata 立即数送入间接RAM单元 12
MOV     DPTR#data16 16位立即数送入地址寄存器 24
MOVC    A,@A+DPTR DPTR为基地址变址寻址单元中的数据
送入累加器 24
MOVC    A,@A+PC PC为基地址变址寻址单元中的数据送
入累加器 24
MOVX    A,@Ri  外部RAM位地址送入累加器 24
MOVX    A,@DPTR  外部RAM16位地址送入累加器 24
MOVX    @Ri,A 累加器送外部RAM位地址24
MOVX    @DPTR ,A  累加器送外部RAM16位地址24
PUSH    direct 直接地址单元中的数据压入堆栈 24
POP     direct  出栈送直接地址单元 24
XCH     A,Rn 寄存器与累加器交换 12
XCH     A,direct 直接地址单元与累加器交换 12
XCH     A,@Ri 间接RAM与累加器交换 12
XCHD    A,@Ri 间接RAM的低半字节与累加器交换 12
传统 12T 8051
STC12C5410AD 系列
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列104
助记符 功能说明 字节数 12时钟/周期
所需时钟 1时钟/周期
所需时钟
ADD     ARn 寄存器内容加到累加器 12
ADD     Arect 直接地址单元中的数据加到累加器 12
ADD     A@Ri 间接RAM中的数据加到累加器 12
ADD     Aata 立即加到累加器 12
ADDC    ARn 寄存器内容带进位加到累加器 12
ADDC    Adirect 直接地址单元的内容带进位加到累加器 12
ADDC    A@Ri 间接RAM内容带进位加到累加器 12
ADDC    A#data 立即数带进位加到累加器 12
SUBB    ARn 累加器带借位减寄存器内容 12
SUBB    direct 累加器带借位减直接地址单元的内容 12
SUBB    @Ri 累加器带借位减间接RAM中的内容 12
SUBB    #data 累加器带借位减立即数 12
INC     A 累加器加 12
INC     Rn 寄存器加 12
INC     drect 直接地址单元加 12
INC     @Ri 间接RAM单元加 12
DEC     A 累加器减 12
DEC     Rn 寄存器减 12
DEC     drect 直接地址单元减 12
DEC     @Ri 间接RAM单元减 12
INC     DPTR 地址寄存器DPTR 24
MUL     AB 乘以 48
DIV     AB 除以 48
DA      A  累加器十进制调整 12
助记符 功能说明 字节数 12时钟/周期
所需时钟 1时钟/周期
所需时钟
ANL     ARn 累加器与寄存器相“与” 12
ANL     Adirect 累加器与直接地址单元相“与” 12
ANL     A@Ri 累加器与间接RAM单元相“与” 12
ANL     A#data 累加器与立即数相“与” 12
ANL     direct直接地址单元与累加器相“与” 12
ANL     direct#data 直接地址单元与立即数相“与” 24
ORL     ARn 累加器与寄存器相“或” 12
ORL     Adirect 累加器与直接地址单元相“或” 12
ORL    
 
@Ri
累加器与间接
RAM
单元相
12
ORL     A#data 累加器与立即数相“或” 12
ORL     direct直接地址单元与累加器相“或” 12
ORL     direct#data 直接地址单元与立即数相“或” 24
XRL     ARn 累加器与寄存器相“异或 12
XRL     Adirect 累加器与直接地址单元相“异或 12
XRL     A@Ri 累加器与间接RAM单元相“异或 12
XRL     A#data 累加器与立即数相“异或 12
XRL     direct直接地址单元与累加器相“异或 12
XRL     direct#data 直接地址单元与立即数相“异或 24
CLR     累加器清“ 12
CPL     累加器求反 12
RL      累加器循环左移 12
RLC     A 累加器带进位位循环左移 12
RR      A 累加器循环右移 12
RRC     A 累加器带进位位循环右移 12
SWAP    A 累加器半字节交换 12
算术操作类指令
   逻辑操作类指令
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列105
助记符 功能说明 字节数 12时钟/周期
所需时钟 1时钟/周期
所需时钟
ACALL    addr11 绝对调用子程序 24
LCALL    addr16 长调用子程序 24
RET 子程序返回 24
RET中断返回 24
AJMP      addr11 绝对转移 24
LJMP      addr16 长转移 24
SJMP      re1 相对转移 24
JMP       @A+DPTR 相对于DPTR的间接转移 24
JZ        re1 累加器为零转移 24
JNZ       re1 累加器非零转移 24
CJNE      Arectre累加器与直接地址单元比较不相等则转移 24
CJNE      A#datare累加器与立即数比较不相等则转移 24
CJNE      Rn#datare寄存器与立即数比较不相等则转移 24
CJNE      @Ri#datare间接RAM单元与立即数比较不相等则转移 24
DJNZ      Rnre寄存器减非零转移 24
DJNZ      drectre直接地址单元减非零转移 24
NOP 空操作 12
助记符 功能说明 字节数 12时钟/周期
所需时钟 1时钟/周期
所需时钟
CLR      C 清进位位 12
CLR      bit 清直接地址位 12
SETB     C 置进位位 12
SETB     bit 置直接地址位 12
CPL      C 进位位求反 12
CPL      bit 直接地址位求反 12
ANL      Cbit 进位位和直接地址位相 24
ANL      Cbit 进位位和直接地址位的反码相 24
ORL      Cbit 进位位和直接地址位相 24
ORL      Cbit 进位位和直接地址位的反码相 24
MOV      Cbit 直接地址位送入进位位 12
MOV      bit进位位送入直接地址位 24
JC       re1 进位位为则转移 24
JNC      re1 进位位为则转移 24
JB       bitre直接地址位为则转移 24
JNB      bitre直接地址位为则转移 24
JBC      bitre直接地址位为则转移该位清 24
   控制转移类指令
   布尔变量操作类指令
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列106
         特殊功能寄存器映像  SFR Mapping
      Bit
Addressable                                  Non  Bit  Addressable
      0/8      1/9      2/A      3/B      4/C     5/D     6/E     7/F
F8h CH
0000,0000   CCAP0H
0000,0000   CCAP1H
0000,0000  CCAP2H
0000,0000  CCAP3H
0000,0000 FFh
F0h
0000,0000 PCA_PWM0
xxxx,xx00  PCA_PWM1
xxxx,xx00 PCA_PWM2
xxxx,xx00 PCA_PWM3
xxxx,xx00 F7h
E8h            CL
0000,0000 CCAP0L
0000,0000   CCAP1L
0000,0000  CCAP2L
0000,0000  CCAP3L
0000,0000 EFh
E0h ACC
0000,0000 WDT_CONTR
0x00,0000 ISP_DATA
1111,1111 ISP_ADDRH
0000,0000 ISP_ADDRL
0000,0000 ISP_CMD
xxxx,xx00 ISP_TRIG
xxxx,xxxx ISP_CONTR
0000,1000 E7h
D8h CCON
00xx,0000 CMOD
0xxx,x000 CCAPM0
x000,0000 CCAPM1
x000,0000 CCAPM2
x000,0000 CCAPM3
x000,0000 DFh
D0h PSW
0000,0000 D7h
C8h CFh
C0h ADC_CONTR
0000,0000 ADC_DATA
0000,0000 CLK_DIV
xxxx,x000 C7h
B8h IP
x000,0000 SADEN
don't use ADC_LOW2
0000,0000 BFh
B0h P3
1x11,1111 P3M0
0000,0000 P3M1
0000,0000  IPH
x000,0000 B7h
A8h IE
0000,0000     SADDR
don't use AFh
A0h P2
1111,1111  TEST_WDT
don't use A7h
98h SCON
0000,0000     SBUF
xxxx,xxxx 9Fh
90h  P1
1111,1111    P1M0
0000,0000     P1M1
0000,0000  P0M0
0000,0000  P0M1
0000,0000  P2M0
0000,0000  P2M1
0000,0000 97h
88h TCON
  0000,0000     TMOD
0000,0000     TL0
0000,0000     TL1
0000,0000     TH0
0000,0000     TH1
0000,0000     AUXR
0000,00xx 8Fh
80h P0
xxxx,1111      SP
0000,0111      DPL
0000,0000      DPH
0000,0000    SPSTAT
00xx,xxxx    SPCTL
0000,0100     SPDAT
0000,0000     PCON
0011,0000 87h
0/8      1/9      2/A      3/B      4/C     5/D     6/E     7/F
 特别标出部分为在Intel 8052 基础上新增加的特殊功能寄存器一般用户可不管
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列107
STC12C5410AD系列 8051 单片机内核特殊功能寄存器   C51 Core SFRs
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
ACC E0h Accumulator 0000,0000
F0h B Register 0000,0000
PSW D0h Program Status Word CY AC F0 RS1 RS0 OV  F1  P 0000,0000
SP 81h Stack Pointer 0000,0111
DPL 82h Data Pointer Low Byte 0000,0000
DPH 83h Data Pointer High Byte 0000,0000
STC12C5410AD系列 8051 单片机系统管理特殊功能寄存器 System Management SFRs
Mnemonic Add Name   7  6  5  4  3  2  0 Reset value
PCON 87h Power  Control SMOD  SMOD0  LVDF POF GF1 GF0    PD IDL 0011,0000
AUXR 8Eh Auxiliary  Register  T0x12  T1x12  UART_M0x6  EADCI  ESPI  ELVDI 0000,00xx
CLK_DIV C7h Clock  Divder CLKS2 CLKS1 CLKS0 xxxx,x000
STC12C5410AD系列8051 单片机 I/O 口 特殊功能寄存器   Port SFRs
Mnemonic Add       Name  7  6  5   4  3  2  1  0 Reset Value
P0 80h 8-bit  Port  P0.3 P0.2 P0.1 P0.0 xxxx,1111
P0M0 93h 0000,0000
P0M1 94h 0000,0000
P1 90h 8-bit  Port 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
P2 A0h 8-bit  Port P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1111,1111
P2M0 95h 0000,0000
P2M1 96h 0000,0000
P3 B0h 8-bit  Port P3.7   - P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 1x11,1111
P3M0 B1h 0000,0000
P3M1 B2h 0000,0000
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 ELVDI  -  - 0000,00xx
STC12C5410AD 系列 8051 单片机 串行口 特殊功能寄存器    Serial I/O Port SFRs
Mnemonic Add Name       7  6    5      4      3  2  1  0 Reset Value
WDT_CONTR E1h Watch-Dog-Timer
Control register  WDT_FLAG  - EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
STC12C5410AD系列 8051单片机 看门狗定时器 特殊功能寄存器 Watch Dog Timer SFRs
STC12C5410AD系列 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 GATE
GATE1 C/T#
C/T1# M1
M1_1 M0
M1_0 GATE
GATE0 C/T#
C/T0# M1
M0_1 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
AUXR 8Eh Auxiliary  Register T0x12 T1x12 UART_M0x6 EADCI ESPI ELVDI  -  - 0000,00xx
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列108
Mnemonic Add Name   7  6  5  4  3  2  0 Reset value
CCON D8h PCA Control Register CF  CR CCF3 CCF2 CCF1 CCF0 00xx,0000
CMOD D9h PCA Mode Register  CIDL  -  -  -  CPS1 CPS0 ECF 0xxx,x000
CCAPM0 DAh PCA Module 
Mode Register ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 x000,0000
CCAPM1 DBh PCA Module 
Mode Register ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 x000,0000
CCAPM2 DCh PCA Module 
Mode Register ECOM2 CAPP2 CAPN2 MAT2 TOG2 PWM2 ECCF2 x000,0000
CCAPM3 DDh PCA Module 
Mode Register ECOM3 CAPP3 CAPN3 MAT3 TOG3 PWM3 ECCF3 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
CCAP2L ECh PCA Module-2 Capture
Register Low 0000,0000
CCAP2H FCh PCA Module-2 Capture
Register High 0000,0000
CCAP3L EDh PCA Module-3 Capture
Register Low 0000,0000
CCAP3H FDh PCA Module-3 Capture
Register High 0000,0000
PCA_PWM0 F2h PCA PWM Mode
Auxiliary Register  EPC0H EPC0L xxxx,xx00
PCA_PWM1 F3h PCA PWM Mode
Auxiliary Register  EPC1H EPC1L xxxx,xx00
PCA_PWM2 F4h PCA PWM Mode
Auxiliary Register  EPC2H EPC2L xxxx,xx00
PCA_PWM3 F5h PCA PWM Mode
Auxiliary Register  EPC3H EPC3L xxxx,xx00
STC12C5410AD系列 8051 单片机 PCA/PWM 特殊功能寄存器    PCA/PWM SFRs
STC12C5410AD系列 1T 8051 单片机 中断 特殊功能寄存器Interrupt SFRs
Mnemonic Add Name  7  6    5  4  3  2  1  0 Reset Value
IE A8h Interrupt  Enable EA  EPCA_LVD EADC_SPI ES ET1 EX1 ET0 EX0 0000,0000
IP B8h Interrupt  Priority
Low  -  PPCA_LVD PADC_SPI PS PT1 PX1 PT0 PX0 xx00,0000
IPH B7h Interrupt  Priority
High  - PPCA_LVDH PADC_SPIH PSH PT1H PX1H PT0H PX0H 0000,0000
AUXR 8Eh Auxiliary  Register T0x12    T1x12 UART_M0x6 EADCI ESPI ELVDI  -  - 0000,00xx
ADC_CONTR C5h A/D 转换控制寄存器 ADC_POWER  SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 0xx0,0000
SPSTAT 84h SPI Status Register SPIF  WCOL  -  -  -  - 00xx,xxxx
CCON D8h PCA Control Register CF  CR CCF3 CCF2 CCF1 CCF0 00xx,xx00
CMOD D9h PCA Mode Register  CIDL  -  -  -  CPS1 CPS0 ECF 0xxx,x000
CCAPM0 DAh PCA Module 
Mode Register ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 x000,0000
CCAPM1 DBh PCA Module 
Mode Register ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 x000,0000
CCAPM2 DCh PCA Module 
Mode Register ECOM2 CAPP2 CAPN2 MAT2 TOG2 PWM2 ECCF2 x000,0000
CCAPM3 DDh PCA Module 
Mode Register ECOM3 CAPP3 CAPN3 MAT3 TOG3 PWM3 ECCF3 x000,0000
PCON 87h Power  Control SMOD  SMOD0  LVDF POF GF1 GF0    PD IDL 0011,0000
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列109
STC12C5410AD系列 8051 单片机 ISP/IAP 特殊功能寄存器    ISP/IAP SFRs
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
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  -  -  -  - MS1 MS0 xxxx,x000
ISP_TRIG E6h ISP/IAP  Flash  Command  Trigger xxxx,xxxx
ISP_CONTR E7h ISP/IAP  Control  Register ISPEN SWBS SWRST  CMD_FAIL  1 WT2 WT1 WT0 0000,1000
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列110
中断
STC12C5410AD系列 1T 8051 单片机 中断 特殊功能寄存器Interrupt SFRs
STC12C5410AD系列 中断与普通8051完全兼容优先级可设为 级。
Interrupt
Source
中断源
Vector
Address
中断
向量地址
Polling
Sequence
中断
查询次序
中断
优先级设置 优先级
最低 优先级优先级优先级
最高
Interrupt
Request
中断请求
/INT0 0003H 0(最优先PX0H,PX0 0,0 0,1 1,0 1,1 IE0
Timer 000BH PT0H,PT0 0,0 0,1 1,0 1,1 TF0
/INT1 0013H PX1H,PX1 0,0 0,1 1,0 1,1 IE1
Timer 001BH PT1H,PT1 0,0 0,1 1,0 1,1 IF1
UART 0023H PSH,  PS 0,0 0,1 1,0 1,1 RI + TI
ADC/SPI 002BH PADC_SPIH,PADC_SPI 0,0 0,1 1,0 1,1 ADC_FLAG + SPIF
PCA/LVD 0033H PPCA_LVDH,PPCA_LVD 0,0 0,1 1,0 1,1 CF 
CCF0 + CCF1 + CCF2 + CCF3
+ LVDF
Mnemonic Add Name  7  6    5  4  3  2  1  0 Reset Value
IE A8h Interrupt  Enable EA  EPCA_LVD EADC_SPI ES ET1 EX1 ET0 EX0 0000,0000
IP B8h Interrupt  Priority
Low  -  PPCA_LVD PADC_SPI PS PT1 PX1 PT0 PX0 xx00,0000
IPH B7h Interrupt  Priority
High  - PPCA_LVDH PADC_SPIH PSH PT1H PX1H PT0H PX0H 0000,0000
AUXR 8Eh Auxiliary  Register T0x12    T1x12 UART_M0x6 EADCI ESPI ELVDI  -  - 0000,00xx
ADC_CONTR C5h A/D 转换控制寄存器 ADC_POWER  SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 0xx0,0000
SPSTAT 84h SPI Status Register SPIF  WCOL  -  -  -  - 00xx,xxxx
CCON D8h PCA Control Register CF  CR CCF3 CCF2 CCF1 CCF0 00xx,0000
CMOD D9h PCA Mode Register  CIDL  -  -  -  CPS1 CPS0 ECF 0xxx,x000
CCAPM0 DAh PCA Module 
Mode Register ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 x000,0000
CCAPM1 DBh PCA Module 
Mode Register ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 x000,0000
CCAPM2 DCh PCA Module 
Mode Register ECOM2 CAPP2 CAPN2 MAT2 TOG2 PWM2 ECCF2 x000,0000
CCAPM3 DDh PCA Module 
Mode Register ECOM3 CAPP3 CAPN3 MAT3 TOG3 PWM3 ECCF3 x000,0000
PCON 87h Power  Control SMOD  SMOD0  LVDF POF GF1 GF0    PD IDL 0011,0000
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列111
PCA/PWM 特殊功能寄存器 , 其中部分位与PCA 中断有关
Mnemonic Add Name   7  6  5  4  3  2  0 Reset value
CCON D8h PCA Control Register CF  CR CCF3 CCF2 CCF1 CCF0 00xx,0000
CMOD D9h PCA Mode Register  CIDL  -  -  -  CPS1 CPS0 ECF 0xxx,x000
CCAPM0 DAh PCA Module 
Mode Register ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 x000,0000
CCAPM1 DBh PCA Module 
Mode Register ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 x000,0000
CCAPM2 DCh PCA Module 
Mode Register ECOM2 CAPP2 CAPN2 MAT2 TOG2 PWM2 ECCF2 x000,0000
CCAPM3 DDh PCA Module 
Mode Register ECOM3 CAPP3 CAPN3 MAT3 TOG3 PWM3 ECCF3 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
CCAP2L ECh PCA Module-2 Capture
Register Low 0000,0000
CCAP2H FCh PCA Module-2 Capture
Register High 0000,0000
CCAP3L EDh PCA Module-3 Capture
Register Low 0000,0000
CCAP3H FDh PCA Module-3 Capture
Register High 0000,0000
PCA_PWM0 F2h PCA PWM Mode
Auxiliary Register  EPC0H EPC0L xxxx,xx00
PCA_PWM1 F3h PCA PWM Mode
Auxiliary Register  EPC1H EPC1L xxxx,xx00
PCA_PWM2 F4h PCA PWM Mode
Auxiliary Register  EPC2H EPC2L xxxx,xx00
PCA_PWM3 F5h PCA PWM Mode
Auxiliary Register  EPC3H EPC3L xxxx,xx00
STC12C5410AD系列 8051 单片机 SPI功能模块特殊功能寄存器  其中 SPIF位与中断有关
Mnemonic Add Name   7  6  5  4  3  2  0 Reset value
SPCTL 85h SPI Control Register SSIG  SPEN  DORD MSTR CPOL CPHA SPR1 SPR0 0000,0000
SPSTAT 84h SPI Status Register SPIF  WCOL  -  -  -  - 00xx,xxxx
SPDAT 86h SPI Data Register 0000,0000
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列112
         定时器 0/ 定时器UART 串口的速度
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
AUXR 8Eh Auxiliary  Register T0x12 T1x12 UART_M0x6 EADCI ESPI ELVDI  -  - 0000,00xx
定时器和定时器1:
STC12C5410AD系列是 1T 8051 单片机,为了兼容传统 8051,定时器 和定时器 复位后是传统 8051
的速度 12 分频,这是为了兼容传统 8051。但也可不进行 12 分频,实现真正的 1T
T0x12:   0, 定时器是传统8051速度,12 分频1, 定时器的速度是传统 8051 12 倍,不分频
T1x12:   0, 定时器是传统8051速度,12 分频1, 定时器的速度是传统 8051 12 倍,不分频
UART串口的模式0:
STC12C2052AD系列是 1T 的8051 单片机为了兼容传统8051UART串口复位后是兼容传统8051
UART_M0x6:   0, UART串口的模式是传统 12T 8051 速度,12 分频
             1, UART串口的模式的速度是传统12T8051 倍,2 分频
EADCI:      0, 禁止 A/D 中断 允许A/D中断
ESPI:        0, 禁止SPI 中断; 1允许 SPI 中断
ELVDI:      0, 禁止低压中断;  允许低压中断
           5V 单片机3.7V以下为低压3V 单片机2.4V以下为低压
           ELVDI=1允许低压中断), 则会产生低压中断
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列113
                 系统工作时钟
    STC12C5410AD系列是 1T 8051 单片机,系统时钟兼容传统 8051
    现出厂标准配置是使用芯片内部的 R/C 振荡器,5V 单片机常温下频率是 5.65MHz - 5.95MHz,因为
随着温度的变化内部R/C 振荡器的频率会有一些温飘故内部R/C 振荡器只适用于对时钟频率要求不
敏感的场合
    在对 STC12C5410AD 系列单片机进行 ISP 下载用户程序时可以在选项中选择
       下次冷启动后时钟源为外部晶体或时钟
这样下载完用户程序后,停电,再冷启动后单片机的工作时钟使用的就不是内部R/C 振荡器,而是外部
晶体振荡后产生的高精度时钟了接在XTAL1/XTAL2 管脚上), 也可以直接从XTAL1 脚输入外部时钟
XTAL2脚浮空
    如果还要设置成使用内部 R/C 振荡器,在对 STC12C5410AD 系列单片机进行 ISP 下载用户程序时,可
以在选项中选择
                     下次冷启动后时钟源为内部R/C 振荡器
Mnemonic Add Name   7  6  5  4  3  2  0 Reset value
CLK_DIV C7h Clock  Divder CLKS2 CLKS1 CLKS0 xxxx,x000
                系统时钟分频寄存器
CLKS2 CLKS1 CLKS0 CPU的实际工作时钟
系统时钟外部时钟或内部R/C振荡时钟
系统时钟/2
系统时钟/4
系统时钟/8
系统时钟/16
系统时钟/32
系统时钟/64
系统时钟/128
   如用户系统希望大幅降低功耗还可对系统时钟进行分频
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列114
      I/O口结构
I/O口配置
STC12C5410AD系列单片机其所有I/O 口均可由软件配置成 种工作类型之一如下表所示。4
类型分别为准双向口标准8051 输出模式)、 推挽输出仅为输入高阻或开漏输出功能
个口由个控制寄存器中的相应位控制每个引脚工作类型STC12C5410AD 系列单片机上电复位后为准双
向口(标准8051 输出模式模式
I/O 口工作类型设定
I/O
口模式
准双向口(传统8051 I/O 口模式,
灌电流可达20mA , 拉电流为230µA
推挽输出(强上拉输出可达20mA尽量少用
仅为输入(高阻
开漏
(Open Drain)
内部上拉电阻断开,要外加
P1M0P1M1
I/O
口模式
P1.x
如做
A/D
使用,需先将其设置成开漏或高阻输入)
准双向口(传统8051 I/O 口模式,
灌电流可达20mA , 拉电流为230µA
推挽输出(强上拉输出,可达
20mA
,尽量少用
仅为输入(高阻),如果该I/O口需作为A/D使用,可选此模式
开漏(Open Drain) ,如果该I/O口需作为A/D使用,可选此模式
P3口设定 <P3.7,P3.6,P3.5,P3.4,P3.3,P3.2,P3.1,P3.0>
P2口设定 <P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0>
P1口设定 <P1.7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,P1.0>
P0口设定 <P0.7,P0.6,P0.5,P0.4,P0.3,P0.2,P0.1,P0.0>
举例MOV P1M0,#11000000B
MOV P1M1,#10100000B
     ;P1.7为开漏,P1.6为高阻输入,P1.5为强推挽输出,P1.4/P1.3/P1.2/P1.1/P1.0为弱上拉
I/O
口模式
准双向口(传统8051 I/O 口模式,
灌电流可达20mA , 拉电流为230µA
推挽输出(强上拉输出可达20mA尽量少用
仅为输入(高阻
开漏
(Open Drain)
内部上拉电阻断开,要外加
I/O
口模式
准双向口(传统8051 I/O 口模式,
灌电流可达20mA , 拉电流为230µA
推挽输出(强上拉输出可达20mA尽量少用
仅为输入(高阻
开漏
(Open Drain)
内部上拉电阻断开,要外加
注意
    虽然每个 I/O口在弱上拉时都能承受20mA的灌电流还是要加限流电阻 1K560 Ω等),在强推挽
输出时都能输出20mA 的拉电流但是整个芯片的工作电流推荐不要超过55mA
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列115
1.准双向口输出配置
准双向口输出类型可用作输出和输入功能而不需重新配置口线输出状态这是因为当口线输出为
时驱动能力很弱允许外部装置将其拉低当引脚输出为低时它的驱动能力很强可吸收相当大的
电流。准双向口有个上拉晶体管适应不同的需要
个上拉晶体管中,有 个上拉晶体管称为弱上拉当口线寄存器为 且引脚本身也为
打开。此上拉提供基本驱动电流使准双向口输出为 如果一个引脚输出为而由外部装置下拉到低时
弱上拉关闭而极弱上拉维持开状态为了把这个引脚强拉为低外部装置必须有足够的灌电流能
力使引脚上的电压降到门槛电压以下
    个上拉晶体管,称为“极弱上拉当口线锁存为时打开当引脚悬空时这个极弱的上
拉源产生很弱的上拉电流将引脚上拉为高电平
个上拉晶体管称为强上拉当口线锁存器由 0到跳变时这个上拉用来加快准双向口
由逻辑到逻辑 转换。当发生这种情况时强上拉打开约 个机器周期以使引脚能够迅速地上拉到高电
    准双向口输出如下图所示
CPU
时钟延时
DD DD DD
极弱
端口
引脚
口锁存数据
输入数据 干扰滤波
STC12LE2052系列单片机为 3V 器件,如果用户在引脚加上 5V 电压,将会有电流从引脚流向 VDD,这样
导致额外的功率消耗。因此,建议不要在准双向口模式中向3V 单片机引脚施加5V 电压如使用的话,要
加限流电阻或用二极管做输入隔离或用三极管做输出隔离
准双向口带有一个施密特触发输入以及一个干扰抑制电路
2.开漏输出配置
当口线锁存器为 时,开漏输出关闭所有上拉晶体管。当作为一个逻辑输出时,这种配置方式必
须有外部上拉一般通过电阻外接到VDD这种方式的下拉与准双向口相同输出口线配置如下图所示
口锁存数据
端口
引脚
干扰滤波
输入数据
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列116
开漏端口带有一个施密特触发输入以及一个干扰抑制电路
3.仅为输入高阻)配置
输入口配置如下图所示
输入口带有一个施密特触发输入以及一个干扰抑制电路
4.推挽输出配置
推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同但当锁存器为时提供持续的
强上拉推挽模式一般用于需要更大驱动电流的情况
推挽引脚配置如下图所示
干扰滤波
输入数据 端口
引脚
DD
端口
引脚
口锁存数据
输入数据 干扰滤波
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列117
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
ADC_CONTR C5h A/D 转换控制寄存器  ADC_POWER  SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 0xx0,0000
ADC_DATA C6h A/D 转换结果寄存器 -  -  -  -  -  -  -  - xxxx,xxxx
ADC_LOW2 BEh A/D 转换结果寄存器 -  -  -  -  -  -  -  - xxxx,xxxx
A/D 转换控制寄存器  ADC_POWER SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 0xx0,0000
ADC_CONTR 特殊功能寄存器:  A/D 转换控制特殊功能寄存器
CHS2 CHS1 CHS0 Analog Input Channel Select
模拟输入通道选择
选择  P1.0 作为A/D输入来用
选择  P1.1 作为A/D输入来用
选择  P1.2 作为A/D输入来用
选择  P1.3 作为A/D输入来用
选择  P1.4 作为A/D输入来用
选择  P1.5 作为A/D输入来用
选择  P1.6 作为A/D输入来用
选择  P1.7 作为A/D输入来用
CHS2 / CHS1 / CHS0模拟输入通道选择CHS2 / CHS1 / CHS0
ADC_START:  模数转换器(ADC)转换启动控制位设置为1”时,开始转换转换结束后为
ADC_FLAG:   模数转换器转换结束标志位 A/D 转换完成后ADC_FLAG = 要由软件清
ADC_DATA / ADC_LOW2  特殊功能寄存器:  A/D 转换结果特殊功能寄存器
模拟/数字转换结果计算公式如下结果  ADC_DATA[7:0],ADC_LOW2[1:0] ) = 256 x Vin / Vcc
Vin为模拟输入通道输入电压Vcc 为单片机实际工作电压用单片机工作电压作为模拟参考电压
   STC12C5410AD系列带A/D转换的单片机在 P1 ,有 10 位高速 A/D转换器, 速度可达100KHz
P1.7  -  P1.0 路电压输入型A/D可做温度检测电池电压检测按键扫描频谱检测等
电复位后P1 口为弱上拉型 I/O口,用户可以通过软件设置将路中的任何一路设置为 A/D转换,不需作
A/D使用的口可继续作为I/O 口使用。需作为 A/D 使用的口需先将其设置为高阻输入或开漏模式。在
P1M0P1M1中对相应的位进行设置
   A/D  A/D 转换控制寄存器 ADC_CONTR/ADC_DATA
P1M0
地址91
地址92I/O 口模式P1.x 如做A/D使用需先将其设置成开漏或高阻输入
准双向口传统8051 I/O 口模式),
灌电流可达
20mA ,
拉电流为
230µA
推挽输出强上拉输出可达
20mA
尽量少用
仅为输入高阻),如果该
I/O
口需作为
A/D
使用,可选此模式
开漏
(Open Drain)
如果该
I/O
口需作为
A/D
使用,可选此模式
SPEED1SPEED0模数转换器转换速度控制位
SPEED1 SPEED0 A/D转换所需时间
210个时钟周期转换一次
CPU工作频率20MHz
A/D转换速度约100KHz
420个时钟周期转换一次
630个时钟周期转换一次
840个时钟周期转换一次
ADC_POWER:   ADC 电源控制位
    0关闭 ADC 电源;1打开 A/D 转换器电源
   启动 AD 转换前一定要确认 AD 电源已打开AD转换结束后关闭AD 电源可降低功耗也可不关闭
   初次打开内部 A/D 转换模拟电源需适当延时等内部模拟电源稳定后再启动A/D转换
   建议启动A/D 转换后 A/D转换结束之前,不改变任何I/O口的状态,有利于高精度 A/D 转换
ADC_DATA C6h A/D 转换结果寄存器全部位有效10A/转换结果的高  -  -  -  -  -  -  -  - xxxx,xxxx
ADC_LOW2 BEh A/D 转换结果寄存器只有低位有效10A/转换结果的低2位  x  x  x  x  x  -  - xxxx,xxxx
ADC_DATA 位为ADC转换的高 位, ADC_LOW2的低位为ADC转换的低 位,则为 10 位精度
如果舍弃ADC_LOW2的低 位,只用ADC_DATA寄存器的 位, A/D转换结果为位精度
             不管是A/D转换完成后由该位申请产生中断还是由软件查询该标志位 A/D 转换是否结束
          A/D转换完成后ADC_FLAG = 一定要软件清
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列118
; ------------------------- 宏晶科技   2005/12/2 --------------------
; --------------------Mobile:0755-82948409,13922805190----------------
; ----------------------Email: support@mcu-memory.com-------------------
;ADC DEMO_5410_ASM.ASM 汇编程序演示 STC12C5410AD 系列 MCU  A/D 转换功能
转换结果以 16 进制形式输出到串行口可以用串行口调试程序观察输出结果
时钟 18.432MHz, 波特率 = 9600
各通道转换结果轮流在 P1 口用 LED 显示, 通道号同时在 P3.2 -- P3.5 LED 显示
;---------------------------------------------------------------------
定义与 ADC 有关的特殊功能寄存器
ADC_CONTR   EQU     0C5H             ;A/D 转换控制寄存器
_    E     0H            ; 转换结果寄存器,为10 A/D 转换结果的高
ADC_LOW2    EQU     0BEH ;A/D 转换结果寄存器,低 位有效,为 10 A/D 转换结果的低
                          ;如果不用ADC_LOW2的低 位,只用 ADC_DATA 位,则为 A/D转换
1M0        EU      9             ;P1口模式寄存器
1M1        EU      9             ;P1口模式寄存器
;---------------------------------------------------------------------
定义变量
ount                 EQU 3
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, #1H                    ;P1  A/D 当前通道, 测量电压并发送结果
    ACALL get_AD_result_and_send_it
    MOV   A, #2H                    ;P2  A/D 当前通道, 测量电压并发送结果
    ACALL get_AD_result_and_send_it
    MOV   A, #3H                    ;P3  A/D 当前通道, 测量电压并发送结果
    ACALL get_AD_result_and_send_it
    MOV   A, #4H                    ;P4  A/D 当前通道, 测量电压并发送结果
    ACALL get_AD_result_and_send_it
            A/D转换功能汇编程序示例
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列119
    MOV   A, #00H                    ;连续发送 4  00H, 便于观察输出显示
    ACALL Send_Byte
    ACALL Send_Byte
    ACALL Send_Byte
    ACALL Send_Byte
    INC   cunr                    ;循环若干次后换通道
    MOV   A, counter
    CL   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, #0H                   ;延时
    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
    M   A, #
    ACALL delay
    R
;---------------------------------------------------------------------
get_AD_result:
    ANL   ADC_CONTR, #0E0H           ;1110,0000  ADC_FLAG, ADC_START 位和低 3 
    ANL   A, #7H                    ;000,01 
    MOV   AD_channel_temp, A         暂存当前通道号
    ORL   ADC_COTR A               ;设置 A/D 当前通道
    MOV   A, #1                      ;延时, 使输入电压达到稳定
    ACALL delay
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列120
    CL   A
    MOV   R, A                      ;R7 用于检测 A/D 转换是否结束
    MOV   AD_DATA A                ; A/D 转换结果寄存器
    ORL   ADC_CONTR, #08H            ;0000,1000  ADCS = 1, 启动A/D转换,
wait_AD_finishe:
    MOV   A, #H                    ;00,000 测试 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         取回当前通道号
    DE   A
    ADD   A, #AD_channel_1_result
    MOV   R0, A
    M   A AC_DATA                ;保存、返回 A/D 转换结果
    MOV   @R0, 
    R
;---------------------------------------------------------------------
display:
    MOV   R2, display_AD_channel_ID   P3.2 -- P3.5 显示第几通道
    IC   R
    SEB  C
    CL   A
display_loop:
    RL   A
    CL   C
    DJNZ  R2, display_loop
    RL    A
    RL    A
    CP   A
    OL   P3, #                   ;0010 使 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
    CP   A
    MO   P1 A                      ;显示转换结果
    R
;---------------------------------------------------------------------
set_P1_ADC_channels:                  P1.2 -- P1.5 设置为适宜 A/D 转换的模式
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列121
    MOV   P1 #0H                  ; P1 口置高,  A/D 转换作准备
    ORL   ADC_CONTR, #80H            ;1000,0000 打开 A/D 转换电源
    M   P1M0, #                 ;01,111 用作 A/D 转换的 P1.x , 先设为开漏
    MOV   P1M0, #1EH                 ;0001,1110, P1.2 -- P1.5 先设为开漏
                                     ;断开内部上拉电阻
    MOV   A, #20H
    ACALL delay
    R
;---------------------------------------------------------------------
_P1_IO_:                      ;P1 口设置为普通 I/O 模式
    MOV   P1M0, #00H
    MOV   P1M0, #00H
    ANL   ADC_CONTR, #7FH            ;0111,1111 关闭 A/D 转换电源
    R
;---------------------------------------------------------------------
nitite_R232:                      ;串口初始化
    CL   ES                         ;禁止串口中断
    MOV   TMD, #2                 ;设置 T1 为波特率发生器
    MV   SCO #50H                 ;1,00 8位数据位, 无奇偶校验
    MV   TH1, #                 ;18.z 晶振, 波特率 = 9600
    MOV   TL1, #0FBH
    CR   R
    SETB  TR1
    SEB  E                         ;允许串口中断
    R
;---------------------------------------------------------------------
en_Byte:                           ;发送一个字节
    CL   TI                         ;清零串口发送中断标志
    MOV   SBUF, 
end_te_wit:                      ;等待发送完毕
    JNB   TI, Send_Byte_wait
    CL   TI                         ;清零串口发送中断标志
    R
;---------------------------------------------------------------------
dela:                               ;延时
    PUSH  02
    PUSH  03
    PUSH  04
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列122
    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
    PP   0
    PP   0
    PP   0
    R
;---------------------------------------------------------------------
    E
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列123
适用型号:  STC12C5410AD系列
Symbol 符号Function 功能
WDT_FLAG    When WDT overflows this bit is set. It can be cleared by software.
          看门狗溢出标志位当溢出时该位由硬件置可用软件将其清
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
看门狗“IDLE模式位当设置为“1”时,看门狗定时器在空闲模式”计数
                               当清“0”该位时, 看门狗定时器在“空闲模式”时不计数
PS2, PS1, PS0 Pre-scale value of Watchdog timer is shown as the bellowed table:
            看门狗定时器预分频值,如下表所示
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
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
WDT_CONTR E1h Watch-Dog-Timer
Control register  WDT_FLAG  - EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000
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
PS2 PS1 PS0 Pre-scale
预分频 WDT Period @12MHz
 0  0  0     2        6  m
 0  0  1     4      131.0 mS
 0  1  0     8      262.1 mS
 0  1  1     1      524.2 mS
 1  0  0     3       1.0485S
 1  0  1     6       2.0971S
 1  1  0     1       4.1943S
 1  1  1     2       8.3886S
                 看门狗应用
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列124
    设时钟为 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 0E1H ;    或者   WDT_CONTR EQU   0E1H
复位入口
ORG 0000H
LJMP Initial
ORG 0060H
Initial:
MOV WDT_CONTR, #00111100B; Load initial value 看门狗定时器控制寄存器初始化
               ; EN_WDT = 1, CLR_WDT = 1, IDLE_WDT = 1, PS2 = 1, PS1 = 0, PS0 = 
Main_Loop:
LCALL Display_Loop
LCALL Keyboard_Loop
MOV WDT_CONTR, #00111100B ;  喂狗,  不要用 ORL    WDT_CONTR,  #00010000B
LJMP Main_Loop
语言程序示例
#include<reg52.h>
sfr WDT_CONTR 0xe1;
void main()
{   
WDT_CONTR 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   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列125
本程序用于验证 STC12C5410AD 系列单片机的看门狗及其溢出时间计算公式
看门狗及其溢出时间 = (12 * Pre_scale *32768)/Oscillator frequency
WDTCR           EQU 0E1H 看门狗地址
WDT_TIME_LED    EQU P1.5  P1.5 控制看门狗溢出时间指示灯
                         ;看门狗溢出时间可由该指示灯亮的时间长度或熄灭的时间长度表示
WDT_FLAG_LED    EQU P1.7  P1.7 控制看门狗溢出复位指示灯, 如点亮表示为看门狗溢出复位
Last_WDT_Time_LED_Status  EQU 00H 位变量, 存储看门狗溢出时间指示灯的上一次状态位
;WDT 复位时间(Oscillator frequency = 18.432MHz):
;Pre_scale_Word  EQU 00111100B    启动看门狗,预分频数=32   0.68S
Pre_scale_Word  EQU 00111101B    启动看门狗,预分频数=64   1.36S
;Pre_scale_Word  EQU 00111110B    启动看门狗,预分频数 =128  2.72S
;Pre_scale_Word  EQU 00111111B    启动看门狗,预分频数 =256  5.44S
    ORG   0000H
    AJMP  MAIN
    ORG   0100H
MAIN:
    MOV   A, WDTC              ;检测是否为看门狗复位
    ANL   A, #10000000B
    JNZ   WDT_Reset             ;WDTCR.7 = 1, 看门狗复位, 跳转到看门狗复位程序
上电复位, 冷启动, RAM 单元内容为随机值
    SETB  Last_WDT_Time_LED_Status       上电复位
                                         ;初始化看门狗溢出时间指示灯的状态位 = 1
    C   WDT__LED                   ;上电复位, 点亮看门狗溢出时间指示灯
    MOV   WDTCR, #Pre_scale_Word 启动看门狗
WAIT1:
    S  W                 ;循环执行本语句停机等待看门狗溢出复位
看门狗复位, 热启动, RAM 单元内容不变, 为复位前的值
DT_Reset                      ;看门狗复位, 热启动
    C   W_FLAG_          ;点亮看门狗溢出复位指示灯
    JB   Last_WDT_Time_LED_Status, Power_Off_WDT_TIME_LED
    ;根据看门狗溢出时间指示灯的上一次状态位设置 WDT_TIME_LED 灯,
    ;若上次亮本次就熄灭, 若上次熄灭本次就亮
    C   WT_TIME_L          ;上次熄灭本次点亮看门狗溢出时间指示灯
    CPL   Last_WDT_Time_LED_Status 将看门狗溢出时间指示灯的上一次状态位取反
WAIT2:
    S  W                 ;循环执行本语句停机等待看门狗溢出复位
Power_Off_WDT_TIME_LED:
    SETB  WDT_TIME_LED          上次亮本次就熄灭看门狗溢出时间指示灯
    CPL   Last_WDT_Time_LED_Status 将看门狗溢出时间指示灯的上一次状态位取反
WAIT3:
    S  W                 ;循环执行本语句停机等待看门狗溢出复位
    E
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列126
;*************************************************************************
;Wake Up Idle and Wake Up Power Down
;*************************************************************************
    ORG   0000H
    AJMP MAIN
    ORG   0003H
 int0_interrupt:
    CLR   P.7          ;点亮 P1.7 LED 表示已响应 int0 中断
    A d         ;延时是为了便于观察, 实际应用不需延时
    CLR   EA            ;关闭中断, 简化实验. 实际应用不需关闭中断
    RETI
    ORG   0013H
 int1_interrupt:
    CLR   P.6          ;点亮 P1.6 LED 表示已响应 int1 中断
    A d         ;延时是为了便于观察, 实际应用不需延时
    CLR   EA            ;关闭中断, 简化实验. 实际应用不需关闭中断
    RETI
    ORG   0100H
 delay:
    CL   A
    MOV   R0, A
    MOV   R1, A
    MOV   R2, #02
 delay_loop:
    DJNZ  R0, delay_loop
    DJNZ  R1, delay_loop
    DJNZ  R2, delay_loop
    R
 main:
    M   R #        ;P1 LED 递增方式变化, 表示程序开始运行
 main_loop:
    M   A, R
    CP   A
    MOV   P1, A
    ACALL delay
STC12C5410AD系列 1T 单片机通过外部中断从掉电模式唤醒
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列127
    INC   R3
    M   A, R
    SUBB  A, #18H
    JC    main_loop
    M   P #     ;熄灭全部灯表示进入 Power Down 状态
    CLR   IT           ;设置低电平激活外部中断
   SET  I           ;下降沿激活不了 Power Down 状态下的外部中断原因是
                        ;MCU 判断下降沿需要 2 个机器周期, 而此时 CLOCK 已停止
                        ; 无法运行 2 个机器周期
    SET  EX0           ;允许外部中断
    CLR   IT           ;设置低电平激活外部中断
   S  I           ;下降沿激活不了 Power Down 状态下的外部中断, 原因同上
    SET  EX1           ;允许外部中断
   SETB  ET0 如果是STC12C2052AD系列要由外部中断唤醒ET0=1”是必须的硬件就这样做的
              ;外部中断就无此必要,建议 Powerdown用外部中断 唤醒
    SETB  E            ;开中断, 若不开中断就不能唤醒 Power Down
下条语句将使 MCU 进入 idle 状态或 Power Down 状态
低电平激活外部中断可以将 MCU  Power Down 状态中唤醒
其方法为将外部中断脚拉低
    M   A PCON       ; PD=1, 进入 Power Down 状态, PD = PCON.2
    ORL   A, #02H
    MOV   PCON, 
    MOV   PCON, #01H    删除本语句前的";", 同时将前 条语句前加上注释符号 ";",
                        ; IDL=1, 可进入 idle 状态, IDL = PCON.1
    M   P1, #0DF     ;请注意
                        ; 1.外部中断使 MCU 退出 Power Down 状态,执行本条指令后
                        ;响应中断, 表现为P1.5P1.7LED同时亮(INT0唤醒)
                        ; 2外部中断使MCU退出 idle 状态,先响应中断然后再执行本
                        ;条指令, 表现为P1.7 LED 先亮(INT0 唤醒)P1.5 LED 后亮
WAIT1
    SP  WAIT1         ;跳转到本语句, 停机
    E
;A 版本和版本建议不要用IDLE模式
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列128
STC12Cxx 要 Power Down < 0.1uA, 进入 Power Down 之前
1.
如果您系统外部所接的口是输入我们 STC12Cxx  是输出
请将我们的该 I/O 设为  Push-Pull 输出
外部是低你就要为低;  外部是高你就要为高  否则就  >  0.1uA
如果是后续的版本不一定要设置成Push-Pull 输出用弱上拉就可以了
2.
如果您系统外部所接的口是输出我们 STC12Cxx  是输入
请将我们的该 I/O 设为  Only-Input,高阻仅为输入
如果是后续的版本不一定要设置成Only-Input 输出用弱上拉就可以了
3.
如果您系统外部所接的口是高阻我们 STC12Cxx 
请将我们的该 I/O 设为  Push-Pull 输出
请不要将我们的该 I/O  设为 Only-Input/ 高阻
如果是后续的版本不一定要设置成Push-Pull 输出用弱上拉就可以了
STC12C5410AD 系列 1T 单片机通过外部中断唤醒特别注意事项
             -仅针对 版本
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列129
STC12C5410AD 系列 1T 8051 单片机 ISP/IAP 特殊功能寄存器    ISP/IAP SFRs
    STC12C5410AD 系列 1T 8051 单片机IAP 应用
B7 B6 B5 B4 B3 B2 B1 B0 命令 /  操作  模式选择
         保留  命令
 -  -  -  -  -  -  0  0 Standby    待机模式 ISP操作
 -  -  -  -  -  -  0  1 从用户的应用程序区对 Data FlashEEPROM
进行字节读
 -  -  -  -  -  -  1  0 从用户的应用程序区对 Data FlashEEPROM
进行字节编程
 -  -  -  -  -  -  1  1 从用户的应用程序区对 Data FlashEEPROM
进行扇区擦除
程序在用户应用程序区时仅可以对数据Flash (EEPROM)进行字节读字节编程扇区擦除
STC12C5412AD/STC12LE5412AD 除外。STC12C5410AD系列单片机出厂时就已完全加密
ISP_TRIG: ISP/IAP 操作时的命令触发寄存器
ISPEN(ISP_CONTR.7) = 时, ISP_TRIG先写入46h,再写入B9h,
ISP/IAP命令才会生效
 STC12C5410AD 系列 1T 8051 单片机内部EEPROM 的应用
                  -- 利用 IAP技术可实现EEPROM,内部Flash擦写次数为100,000次以上
Mnemonic Add Name  7  6  5  4  3  2  1  0 Reset Value
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  -  -  -  -  -  - MS1 MS0 xxxx,xx00
ISP_TRIG E6h ISP/IAP  Flash  Command  Trigger xxxx,xxxx
ISP_CONTR E7h ISP/IAP  Control  Register ISPEN SWBS SWRST  CMD_FAIL  1 WT2 WT1 WT0 0000,1000
ISP_CONTR: ISP/IAP控制寄存器
 B7  B6  B5  B4  B3  B2  B1  B0 Reset Value
ISPEN SWBS SWRST   CMD_FAIL  1  WT2  WT1  WT0 0000,1000
ISPEN: ISP/IAP 功能允许位。0:禁止ISP/IAP编程改变Flash,1:允许编程改变Flash
SWBS:软件选择从用户主程序区启动 ), 还是从ISP程序区启动 )。
SWRST: 0: 不操作1:  产生软件系统复位硬件自动清零
CMD_FAIL:  如果送了ISP/IAP 命令,并对 ISP_TRIG 46h/B9h 触发失败则为 需由
         软件清零
ISP_DATA: ISP/IAP操作时的数据寄存器
ISP/IAPFlash读出的数据放在此处,向 Flash 写的数据也需放在此处
ISP_ADDRH: ISP/IAP操作时的地址寄存器高八位
ISP_ADDRL: ISP/IAP操作时的地址寄存器低八位
ISP_CMD: ISP/IAP操作时的命令模式寄存器须命令触发寄存器触发方可生效
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列130
设置等待时间                 CPU   等待时间( CPU 的工作时钟 
WT2 WT1 WT0 Read Program Sector Erase Recommended System Clock
  1   1   1 55 21012 1MHz
  1   1   0 110 42024 2MHz
  1   0   1 165 63036 3MHz
  1   0   0 330 126072 6MHz
  0   1   1 660 252144 12MHz
  0   1   0 1100 420240 20MHz
  0   0   1 1320 504288 24MHz
  0   0   0 1760 672384 30MHz
STC12C5410AD,STC12C5410,STC12LE5410AD,STC12LE5410
STC12C5408AD,STC12C5408,STC12LE5408AD,STC12LE5408
STC12C5406AD,STC12C5406,STC12LE5406AD,STC12LE5406
STC12C5404AD,STC12C5404,STC12LE5404AD,STC12LE5404
STC12C5402AD,STC12C5402,STC12LE5402AD,STC12LE5402
STC12C5401AD,STC12C5401,STC12LE5401AD,STC12LE5401
系列单片机内部可用Data Flash(EEPROM)的地址
第一扇区 第二扇区 每个扇区 512字节
个扇区
建议同一次修改的数据
放在同一个扇区不必
用满,当然可全用
满则为 字节EEPROM
由于擦除是按扇区擦
所以每个扇区用的
越少越方便256个字节
以内较合理
起始地址 结束地址 起始地址 结束地址
2800h 29FFh 2A00h 2BFFh
第三扇区 第四扇区
起始地址 结束地址 起始地址 结束地址
2C00h 2DFFh 2E00h 2FFFh
STC12C5412,STC12C5412AD,STC12LE5412,STC12LE5412AD单片机可对自身内部应用程序区进行 IAP/ISP
操作,故所有部分均可当Data  Flash(EEPROM)使用,其地址如下
        第一扇区         第二扇区         第三扇区        第四扇区
每个扇区
512字节
建议同一次
修改的数据
放在同一个
扇区,不必
用满,当然
可全用
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
0000h 01FFh 0200h 03FFh 0400h 05FFh 0600h 07FFh
        第五扇区         第六扇区         第七扇区        第八扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
0800h 09FFh 0A00h 0BFFh 0C00h 0DFFh 0E00h 0FFFh
第九扇区 第十扇区 第十一扇区 第十二扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
1000h 11FFh 1200h 13FFh 1400h 15FFh 1600h 17FFh
第十三扇区 第十四扇区 第十五扇区 第十六扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
1800h 19FFh 1A00h 1BFFh 1C00h 1DFFh 1E00h 1FFFh
第十七扇区 第十八扇区 第十九扇区 第二十扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
2000h 21FFh 2200h 23FFh 2400h 25FFh 2600h 27FFh
第二十一扇区 第二十二扇区 第二十三扇区 第二十四扇区
起始地址 结束地址 起始地址 结束地址 起始地址 结束地址 起始地址 结束地址
2800h 29FFh 2A00h 2BFFh 2C00h 2DFFh 2E00h 2FFFh
STC12C5410AD系列单片机内部可用Data Flash(EEPROM)的地址与程序空间是分开的
如果对应用程序区进行IAP 写数据,则该语句会被单片机忽略继续执行下一句
程序在用户应用程序区(AP 区)时,仅可以对 Data Flash(EEPROM)进行IAP/ISP 操作
STC12C5412AD/STC12LE5412AD在应用程序区可以修改应用程序区灵活
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列131
STC12C5410AD 系列 IAP 应用汇编简介
STC12C5410AD 系列 内部 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 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 字节读
ISP_IAP_BYTE_PROGRAM EQU 字节编程前提是该字节是空0FFh
ISP_IAP_SECTOR_ERASE EQU 扇区擦除要某字节为空要擦一扇区
WAIT_TIME EQU 设置等待时间,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 送地址低字节
MOV ISP_CONTR, #WAIT_TIME 设置等待时间
ORL ISP_CONTR, #10000000B 允许ISP/IAP 操作
MOV ISP_CMD, #ISP_IAP_BYTE_READ;送字节读命令命令不需改变时不需重新送命令
     M ISP_TRIG, #46h 先送 46h,再送 B9h ISP/IAP 触发寄存器每次都需如此
     M ISP_TRIG, #0B9h送完 B9h 后,ISP/IAP命令立即被触发起动
;CPU等待 IAP 动作完成后才会继续执行程序
     NOP 数据读出到ISP_DATA 寄存器后CPU 继续执行程序
MOV A, ISP_DATA      ;将读出的数据送往Acc
以下语句可不用只是出于安全考虑而已
     M 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,防止误操作
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列132
字节编程该字节为FFh/ 空时,可对其编程否则不行要先执行扇区擦除
MOV ISP_DATA, #ONE_DATA  ;送字节编程数据到ISP_DATA,只有数据改变时才需重新送
MOV ISP_ADDRH,#BYTE_ADDR_HIGH 送地址高字节
MOV ISP_ADDRL,#BYTE_ADDR_LOW 送地址低字节
MOV ISP_CONTR, #WAIT_TIME 设置等待时间
ORL ISP_CONTR, #10000000B 允许ISP/IAP 操作
     M ISP_CMD, #ISP_IAP_BYTE_PROGRAM     送字节编程命令
     M ISP_TRIG, #46h   ;先送 46h,再送B9hISP/IAP 触发寄存器每次都需如此
     M ISP_TRIG, #0B9h       ;送完 B9h 后,ISP/IAP 命令立即被触发起动
;CPU等待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,指向非 EEPROM 区,防止误操作
----------------------------------------------------
小常识: (STC单片机的Data Flash EEPROM 功能使用
个基本命令----字节读字节编程扇区擦除
字节编程:如果该字节是“1111,1111B 则可将其中的“1 ”编程为 如果该
字节中有位为 则须先将整个扇区擦除因为只有扇区擦除才可以将
变为
扇区擦除:只有“扇区擦除才可能将“0 擦除为
大建议
1.同一次修改的数据放在同一扇区中不是同一次修改的数据放在另外的扇区就不须读出保护
2.如果一个扇区只用一个字节那就是真正的EEPROM,STC 单片机的 Data Flash 比外部 EEPROM 要快很多
读一个字节编程一个字节擦除一个扇区大概是 10uS/60uS/10mS
3.如果在一个扇区中存放了大量的数据某次只需要修改其中的一个字节或一部分字节时,则另外的不
需要修改的数据须先读出放在STC 单片机的 RAM 中,然后擦除整个扇区,再将需要保留的数据和需修改
的数据一并写回该扇区中这时每个扇区使用的字节数是使用的越少越方便不需读出一大堆需保留数
地址需要改变时才需重新送地址
此两句可合成一句并且只送一次就够了
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列133
扇区擦除没有字节擦除只有扇区擦除512字节 扇区每个扇区用得越少越方便
如果要对某个扇区进行擦除而其中有些字节的内容需要保留则需将其先读到单片机
内部的RAM中保存,再将该扇区擦除,然后将须保留的数据写回该扇区,所以每个扇区
中用的字节数越少越好操作起来越灵活越快
MOV ISP_ADDRH, #SECTOR_FIRST_BYTE_ADDR_HIGH 送扇区起始地址高字节
MOV ISP_ADDRL, #SECTOR_FIRST_BYTE_ADDR_LOW  送扇区起始地址低字节
MOV ISP_CONTR, #WAIT_TIME 设置等待时间
ORL ISP_CONTR, #10000000B 允许ISP/IAP
MOV ISP_CMD, #ISP_IAP_SECTOR_ERASE;送扇区擦除命令命令不需改变时不需重新送命令
     M ISP_TRIG, #46h 先送 46h,再送 B9h ISP/IAP 触发寄存器每次都需如此
     M ISP_TRIG, #0B9h送完 B9h 后,ISP/IAP命令立即被触发起动
;CPU等待IAP动作完成后,才会继续执行程序
     N 扇区擦除成功后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姚工一个电话交流一下
地址需要改变时
才需重新送地址
此两句可以合成一句并且只送一次就够了
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列134
;STC12C5410AD 系列单片机 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:
    M    P1,#0F0H      ;演示程序开始工作
    LCALL  Delay 延时
    M    P1,#0FH      ;演示程序开始工作
    LCALL  Delay 延时
    M  SP,  #0E0H 堆栈指针指向 0E0H 单元
;************************************************
读回写入 flash 的第 个字节
MAIN1:
    M    DPTR, #DATA_FLASH_START_ADDRESS
    LCALL  byte_read
    M    0H A                ;值送40H 单元保存
    CJNE   A, #DEBUG_DATA, DATA_NOT_EQU_DEBUG_DATA
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列135
DATA_IS_DEBUG_DATA:
    M  P1,  #01111111B  ; (DATA_FLASH_START_ADDRESS) = #5A, P1.7
    LCALL  Delay 延时
    M  A, 40H   ;值从 40H 单元送 ACC
    CP    A
    M   P1    ;数据是对的,送 P1显示
WAIT1:
    SJMP  WAIT1   数据是对的,送 P1显示,并在此停止
DATA_NOT_EQU_DEBUG_DATA:
    M    P1,  #11110111B ;(DATA_FLASH_START_ADDRESS) != #5A, P1.3
    LCALL Delay 延时
    MOV  A,   40H  值从 40H 单元送 ACC
    CPL    
    MV     A    数据不对,送 P1显示
    LCALL  Delay 延时
    M    DPTR#DATA_FLASH_START_ADDRESS
    ACALL  sector_erase  擦除扇区, (DATA_FLASH_START_ADDRESS) != #DEBUG_DATA
    M    DPTR, #DATA_FLASH_START_ADDRESS
    M    A    #_           ;写入 flash 的数据为 DEBUG_DATA
    ACALL  yte_gram                ;字节编程
    MV    P1,   #1111            ;先亮P1.3 再亮 P1.5
WAIT2:
    SJMP   WT2       ;字节编程后在此停止
;************************************************
;------------------------------------------------
读一字节
调用前需打开 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
    N
    MOV     A,   ISP_DATA               ;数据在ISP_DATA
    SETB    E
;Now in processing.(CPU will halt here before completing)
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列136
    A I_Disable               ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
    R
;------------------------------------------------
字节编程
调用前需打开 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
    MV   ISP_A, A               ;数据进ISP_DATA
    CR   E
    MOV   ISP_TRIG, #46H            ;Trigger ISP processing
    MOV   ISP_TRIG, #0B9H           ;Trigger ISP processing
    N
    SETB  EA
    A I_Disable               ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
    R
;------------------------------------------------
擦除扇区, 入口: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
    N
    SETB  EA
    A I_Disable               ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
    R
;------------------------------------------------
trigger_ISP:
    C  EA
    MOV  ISP_TRIG, #46H             ;Trigger ISP processing
    MOV  ISP_TRIG, #0B9H            ;Trigger ISP processing
    N
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列137
    SETB  EA
    R
;------------------------------------------------
P_Dile:                        ;关闭 IAP 功能, 清与 ISP 有关的特殊功能寄存器
    MOV   IS_CONR, #0             ;关闭 IAP 功能
    MOV   ISP_CMD, #0
    MOV   ISP_TRIG, #0
    R
;------------------------------------------------
Delay:
    CL   A
    MOV   R0, A
    MOV   R1, A
    MOV   R2, #20H
Delay_Loop:
    DJNZ  R0, Delay_Loop
    DJNZ  R1, Delay_Loop
    DJNZ  R2, Delay_Loop
    R
;------------------------------------------------
    E
;************************************************
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列138
 定时器
定时和计数功能由特殊功能寄存器TMOD 的控制位 C/T 进行选择TMOD 寄存器的各位信息如下表所
列。可以看出 个定时计数器有种操作模式,通过TMODM1 M0选择。2 个定时 计数器的模
都相同,模式不同,各模式下的功能如下所述
      寄存器TMOD 各位的功能描述
OD     地址:89H
不可位寻址 复位值00H
GATE C/T M1 M0 GATE C/T M1 M0
定时器 定时器
   符号       功能
TMOD.7/ GATE TMOD.7 控制定时器1, 时只有在INT1 脚为高及 TR1 控制位置时才
                    可打开定时器计数器
TMOD.3/ GATE TMOD.3 控制定时器0, 时只有在INT0 脚为高及 TR0 控制位置时才
                    可打开定时器计数器
TMOD.6/ C/T TMOD.6控制定时器用作定时器或计数器清零则用作定时器从内
                  部系统时钟输入), 用作计数器(从 T1/P3.5脚输入
TMOD.2/ C/T TMOD.2控制定时器用作定时器或计数器清零则用作定时器从内
                  部系统时钟输入), 用作计数器 T0/P3.4脚输入
TMOD.5/TMOD.4  M1M0 定时器 计数器 模式选择
0    0 13位定时器 计数器,兼容 8048 定时器模式TL1 只用低位参与分
                   频,TH1 整个位全用
                0    1 16 位定时器 计数器TL1TH1 全用
                1    0 位自动重装载定时器当溢出时将TH1 存放的值自动重装入TL1
                1    1 定时器计数器此时无效(停止计数)。
TMOD.1/TMOD.0  M1M0 定时器 计数器 模式选择
0    0 13位定时器 计数器,兼容 8048 定时器模式TL0 只用低位参与分
                    频,TH0 整个 位全用
                0    1 16 位定时器 计数器TL0TH0 全用
                1    0 位自动重装载定时器当溢出时将TH0 存放的值自动重装入TL0
                1    1 定时器此时作为双位定时器计数器TL0作为一个 位定时器
                   数器,通过标准定时器的控制位控制TH0 仅作为一个 位定时器
                         由定时器 的控制位控制
1.模式
将定时器设置成模式时类似8048 定时器 位计数器带32 分频的预分频器下图所示为模式
工作方式此模式下定时器配置为13位的计数器 TLn的低位和THn 位所构成TLn
位溢出向THn进位,THn 计数溢出置位 TCON 中的溢出标志位TFnn=0,1)。 GATE=0时,如TRn=1
则定时器计数。GATE=1时,允许由外部输入INT1控制定时器 INT0控制定时器 这样可实现脉宽
测量。TRn TCON 寄存器内的控制位TCON 寄存器各位的具体功能描述见TCON寄存器各位的具体功能
描述表
7      6       5      4       3      2      1       0
STC12C5410AD 系列单片机定时器的使用
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列139
    寄存器 TCON 各位的功能描述
TCON  地址88H
可位寻址
复位值00H 76543210
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
符  功 
TCON.7
TCON.6
TCON.5
TCON.4
TCON.3
TCON.2
TCON.1
TCON.0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
定时器计数器溢出标志位。当 T1被允许计数后T1 从初值开始加 计数,最
高位产生溢出时,置“TF1并向CPU请求中断 CPU响应时由硬件
清“TF1TF1 也可以由程序查询或清
定时器T1 的运行控制位该位由软件置位和清零。当GATETMOD.7=0TR1=1
就允许T1 开始计数,TR1=0时禁止T1计数 GATETMOD.7=1TR1=1INT1
输入高电平时才允许T1计数
外部中断中断请求标志位。当主机响应中断转向该中断服务程序执行时,由内部硬件
自动将IE1位清
外部中断触发方式控制位。IT1=0时,外部中断 为低电平触发方式,当 INT1P3.
输入低电平时置位IE1采用低电平触发方式时外部中断源输入到INT1
必须保持低电平有效直到该中断被CPU 响应,同时在该中断服务程序执行完之前,外
部中断源必须被清除P3.3要变高), 否则将产生另一次中断。当 IT1=1时,则外部
中断INT1)端口由“”→“”下降沿跳变,激活中断请求标志位IE1
主机请求中断处理
    13 位寄存器包含THn 全部 个位及TLn的低 位。TLn 的高 位不定,可将其忽略置位运行标
志(TRn不能清零此寄存器模式的操作对于定时器及定时器都是相同的。2 个不同的 GATE
TMOD.7TMOD.3分别分配给定时器及定时器
定时器计数器溢出标志位。当T0被允许计数后T0 从初值开始加计数,最高
位产生溢出时,置“TF0并向CPU请求中断 CPU 响应时,由硬件清“
TF0TF0也可以由程序查询或清
定时器T0 的运行控制位该位由软件置位和清零。当GATETMOD.3=0TR0=1
就允许T0 开始计数,TR1=0时禁止T0计数 GATETMOD.3=1TR0=1INT0
输入高电平时才允许T0计数
外部中断中断请求标志位。当主机响应中断转向该中断服务程序执行时,由内部硬件
自动将IE0位清
外部中断触发方式控制位。IT0=0时,外部中断 为低电平触发方式,当 INT0P3.
输入低电平时置位IE0采用低电平触发方式时外部中断源输入到INT0
必须保持低电平有效直到该中断被CPU 响应,同时在该中断服务程序执行完之前,外
部中断源必须被清除P3.2要变高), 否则将产生另一次中断。当 IT0=1时,则外部
中断INT0)端口由“”→“”下降沿跳变,激活中断请求标志位IE1
主机请求中断处理
OSC ÷d*
 
C/T=1 TFn
控制
C/T=0
Tn 
TLn
THn
 中断
TRn
定时器
GATE 
INTn 
* T0x12 = 模式下d=12(12时钟模式  T0x12 = 模式下d=1(1T)
   定时器 计数器 和定时器 计数器 的模式 0      1位定时 计数器
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列140
3.模式
此模式下定时器计数器 0和作为可自动重装载的位计数器TLn), 如下图所示TLn的溢
出不仅置位TFn而且将THn 内容重新装入TLnTHn 内容由软件预置重装时THn 内容不变模式
的操作对于定时器及定时器 是相同的
2.模式
模式除了使用了THn TLn全部16 位外,其他与模式完全相同
OSC ÷d*
 
C/T=1 TFn
控制
C/T=0
Tn 
中断
TRn
INTn 
TLn
 
THn
 
重装
定时器
GATE 
* T0x12 = 模式下d=12(12时钟模式  T0x12 = 模式下d=1(1T)
   定时器 计数器 0和的模式      8位自动重装载
OSC ÷d*
 
C/T=1 TFn
控制
C/T=0
Tn 
TLn
THn
 中断
TRn
定时器
GATE 
INTn 
* T0x12 = 模式下d=12(12时钟模式  T0x12 = 模式下d=1(1T)
   定时器 计数器 和定时器 计数器 的模式 1      1位定时 计数器
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列141
     对定时器此模式下定时器 TL0TH0作为个独立的位计数器下图为模式时的定时器
逻辑图。TL0占用定时器的控制位C/TGATETR0INT0TF0TH0限定为定时器功能(计
数器周期), 占用定时器 TR1 TF1。此时,TH0 控制定时器 中断
模式是为了增加一个附加的位定时器 计数器而提供的使单片机具有三个定时器计数器
模式只适用于定时器计数器 定时器T1处于模式时相当于TR1=0停止计数此时T1 可用来作
串行口波特率发生器), T0可作为两个定时器用
4.模式
对定时器 在模式 时,定时器 停止计数,效果与将 TR1 设置为 相同
OSC ÷d*
 
C/T=1 TF0
C/T=0
T0 
TR0
INT0 
TL0
 
OSC ÷d* TF1
TH0
 
TR1
定时器
GATE 
控制
控制
中断
中断
* T0x12 = 模式下d=12(12时钟模式;  T0x12 = 模式下d=1(1T)
   定时 计数器 的模式 3      两个 位计数器
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列142
                 定时器应用举例
  定时 计数器编程,定时 计数器的应用编程主要需考虑根据应用要求通过程序初
始化,正确设置控制字正确计算和计算计数初值编写中断服务程序适时设置控制位等通常情
况下,设置顺序大致如下
1)工作方式控制字TMODT2CON的设置
2)计数初值的计算并装入THxTLxRCAP2HRCAP2L
3)中断允许位ETxEA 的设置使主机开放中断
4)  停位TRx 的设置等
现以定时计数器0或为例作一简要介绍
8051系列单片机的定时器计数器0或是以不断加 进行计数的即属加计数器因此,就
不能直接将实际的计数值作为计数初值送入计数寄存器THxTLx中去,而必须将实际计数值以 13
16 为模求补以其补码作为计数初值设置THxTLx
设:实际计数值为 计数器长度为 n=81316), 则应装入计数器THxTLx中的计
数初值为-x,式中 为取模值。例如,工作方式 的计数长度为 13 位,则 n=13 13 为模
作方式的计数长度为 16 n=16 16 为模等等所以,计数初值为 = 
-x
对于定时模式,是对机器周期计数而机器周期与选定的主频密切相关。因此,需根据应用系
统所选定的主频计算出机器周期值现以主频6MHz 为例,则机器周期为
一个机器周期12
主振频率 12
× 10μ μ
实际定时时间Tc = ·Tp
式中Tp为机器周期Tc为所需定时时间 为所需计数次数Tp Tp 一般为已知值在求出
Tp后即可求得所需计数值 再将 求补码,即求得定时计数初值
                      (x)补 = 2n - x
例如,设定时时间Tc = 5ms机器周期 TP = μ 可求得定时计数次数
5ms
μ
x = = 2500
设选用工作方式,则 n=16则应设置的定时时间计数初值为(x)补 = 16 - x=65536-2500=63036
还需将它分解成两个位十六进制数分别求得低 位为 3CH 装入 TLx 位为F6H 装入THx 中。
工作方式 的最大计数次数分别为 819265536 256
对外部事件计数模式只需根据实际计数次数求补后变换成两个十六进制码即可
【例   定时 计数器应用编程设某应用系统选择定时 计数器定时模式定时时间 Tc 
10ms主频频率为12MHz 10ms 向主机请求处理选定工作方式计算得计数初值:低 位初值
F0H 位初值为 D8H
(1 初始化程序
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列143
所谓初始化,一般在主程序中根据应用要求对定时计数器进行功能选择及参数设定等预置程序
本例初始化程序如下
START
MOV SP#60H 设置堆栈区域
MOV TMOD#10H 选择T1定时模式工作方式
MOV TH1#0D8H 设置高字节计数初值
MOV TL1#0F0H 设置低字节计数初值
SETB EA
SETB ET1
开中断
其他初始化程序
 ;
SETB TR1 启动T1开始计时
 ;
继续主程序
(2 中断服务程序
INTT1PUSH
PUSH DPL
PUSH DPH
MOV TL1,#0F0H
MOV TH1,#0D8H
重新置初值
中断处理主体程序
POP DPH
POP DPL
POP
RETI ;返回
这里展示了中断服务子程序的基本格式8052 系列单片机的中断属于矢量中断每一个矢量中断
源只留有个字节单元一般是不够用的常需用转移指令转到真正的中断服务子程序区去执行
  对外部正脉冲测宽选择定时 计数器进行脉宽测试较方便但也可选用定时计数
或定时计数器进行测宽操作本例选用定时计数器T0以定时模式工作方式 INT0
引脚上的正脉冲进行脉宽测试
设置GATE 机器周期 TP μ 本例程序段编制如下
INTT0MOV TMOD#09H ;设 T0 为定时方式 GATE
INT0  引脚
T0计数
启动 停止
;主程序段
现场保护
现场恢复
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列144
MOV TL0#00H      ;
MOV TH0#00H      ;
CLR EX0 INT0中断
LOP1JB P3.2LOP1 等待 INT0引低电平
LOP2JNB P3.2LOP2 等待 INT0 引脚高电平
SETB TR0 启动T0开始计数
LOP3JB P3.2LOP3 等待 INT0低电平
CLR TR0 停止 T0 计数
MOV TL0 低字节计数值送
MOV TH0 高字节计数值送
;计算脉宽和处理
【例   利用定时 计数器 或定时 计数器 Tx 端口改造成外部中断源输入端口的应用设计
在某些应用系统中常会出现原有的两个外部中断源INT0INT1不够用,而定时计数器有多余
则可将Tx 用于增加的外部中断源现选择定时 计数器为对外部事件计数模式工作方式自动再装
), 设置计数初值为FFH T1 端口输入一个负跳变脉冲计数器即回 溢出,置位对应的中断请
求标志位TF1 向主机请求中断处理从而达到了增加一个外部中断源的目的。应用定时计数器
T1的中断矢量转入中断服务程序处理。其程序示例如下
(1 主程序段
ORG 0000H
AJMP MAIN ;转主程序
ORG 001BH
LJMP INTER     ;转 T1 中断服务程序
ORG 0100 主程序入口
MAIN
MOV SP#60H 设置堆栈区
MOV TMOD#60H 设置定时计数器 计数方式
MOV TL1#0FFH 设置计数常数
MOV TH1#0FFH
SETB EA 开中断
SETB ET1 开定时计数器 中断
SETB TR1 启动定时计数器计数
(2 中断服务程序具体处理程序略
ORG 1000H
INTERPUSH
PUSH DPL
PUSH DPH
现场入栈保护
TH0,TL
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列145
【例   某应用系统需通过 P1.0 P1.1 分别输出周期为 200 μs400 μ 的方波。为此,系统选用
定时器计数器T0), 定时方式主频为 6MHzTP=2 μ 经计算得定时常数为9CH38H
本例程序段编制如下
(1 初始化程序段
PLT0:MOV TMOD,#03H 设置T0定时方式
MOV TL0#9CH      设置 TL0 初值
MOV TH0#38H      设置TH0初值
SETB EA
SETB ET0
SETB ET1
SETB TR0 ;启动
SETB TR1 ;启动
开中断
(2)中断服务程序段
1)
INT0P
MOV TL0#9CH     重新设置初值
CPL P1.0 ;对 P1.0 输出信号取反
RETI ;返回
2)
INT1P
MOV TH0#38H     重新设置初值
CPL P1.1 ;对 P1.1 输出信号取反
RETI ;返回
POP DPH
POP DPL
POP
RETI ;返回
中断处理主体程序
现场出栈复原
这是中断服务程序的基本格式
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列146
在实际应用中应注意的问题如下
(1 定时计数器的实时性
定时计数器启动计数后当计满回溢出向主机请求中断处理由内部硬件自动进行但从回
溢出请求中断到主机响应中断并作出处理存在时间延迟且这种延时随中断请求时的现场环境的不同而
不同,一般需延时个机器周期以上这就给实时处理带来误差大多数应用场合可忽略不计,但对
某些要求实时性苛刻的场合应采用补偿措施
这种由中断响应引起的时间延时对定时计数器工作于方式 而言有两种含义:一是由于中
断响应延时而引起的实时处理的误差二是如需多次且连续不间断地定时计数,由于中断响应延时
则在中断服务程序中再置计数初值时已延误了若干个计数值而引起误差特别是用于定时就更明显
例如选用定时方式设置系统时钟,由于上述原因就会产生实时误差这种场合应采用动态补偿办
法以减少系统始终误差所谓动态补偿即在中断服务程序中对 THxTLx 重新置计数初值时,应将
THxTLx从回 溢出又重新从 开始继续计数的值读出并补偿到原计数初值中去进行重新设置。可考
虑如下补偿方法
CLR EA ;禁止中断
MOV TLx TLx 中已计数值
ADD #LOW LOW为原低字节计数初值
MOV TLx 设置低字节计数初值
MOV #HIGH 原高字节计数初值送
ADDC THx 高字节计数初值补偿
MOV THx 置高字节计数初值
SETB EA 开中断
(2 动态读取运行中的计数值
在动态读取运行中的定时计数器的计数值时,如果不加注意,就可能出错。这是因为不可能在
同一时刻同时读取THx TLx 中的计数值比如,先读 TLx 后读 THx因为定时计数器处于运行状态
在读TLx时尚未产生向 THx 进位,而在读 THx前已产生进位,这时读得的THx就不对了;同样,先读
THx后读TLx也可能出错
一种可避免读错的方法是:先读THx,后读TLx,将两次读得的THx进行比较;若两次读得的值
相等,则可确定读的值是正确的否则重复上述过程重复读得的值一般不会再错此法的软件编程
如下
RDTM:   MOV  THx 读取THx
  MOV R0TLx 读取 TLx R0
   CJN THxRDTM     比较两次 THx值,若相等,则读得的值正
        ;确,程序往下执行否则重读
  MOV  R1      THx 存于R1
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列147
STC12C5410AD 系列 1T  8051 单片机 PCA/PWM 特殊功能寄存器    PCA/PWM SFRs
         STC12C5410 系列单片机 PWM/PCA 应用
符号 CIDL CPS1 CPS0 ECF
CMOD - PCA 模式 寄存器的位分配  地址D9H
符号 描述
CIDL 计数器阵列空闲控制CIDL=0时,空闲模式下PCA计数器继续工作CIDL
时,空闲模式下PCA计数器停止工作
6 - 保留为将来之用
2 - CPS1,CPS0 PCA计数脉冲选择(见下表)。
ECF PCA计数溢出中断使能ECF=1时,使能寄存器CCON  CF位的中断。ECF=0
禁止该功能
CMOD - PCA 模式 寄存器的位描述  地址D9H
Mnemonic Add Name   7  6  5  4  3  2  0 Reset value
CCON D8h PCA Control Register CF  CR CCF3 CCF2 CCF1 CCF0 00xx,0000
CMOD D9h PCA Mode Register  CIDL  -  -  -  CPS1 CPS0 ECF 0xxx,x000
CCAPM0 DAh PCA Module 
Mode Register ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 x000,0000
CCAPM1 DBh PCA Module 
Mode Register ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 x000,0000
CCAPM2 DCh PCA Module 
Mode Register ECOM2 CAPP2 CAPN2 MAT2 TOG2 PWM2 ECCF2 x000,0000
CCAPM3 DDh PCA Module 
Mode Register ECOM3 CAPP3 CAPN3 MAT3 TOG3 PWM3 ECCF3 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
CCAP2L ECh PCA Module-2 Capture
Register Low 0000,0000
CCAP2H FCh PCA Module-2 Capture
Register High 0000,0000
CCAP3L EDh PCA Module-3 Capture
Register Low 0000,0000
CCAP3H FDh PCA Module-3 Capture
Register High 0000,0000
PCA_PWM0 F2h PCA PWM Mode
Auxiliary Register  EPC0H EPC0L xxxx,xx00
PCA_PWM1 F3h PCA PWM Mode
Auxiliary Register  EPC1H EPC1L xxxx,xx00
PCA_PWM2 F4h PCA PWM Mode
Auxiliary Register  EPC2H EPC2L xxxx,xx00
PCA_PWM3 F5h PCA PWM Mode
Auxiliary Register  EPC3H EPC3L xxxx,xx00
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列148
符号 CF CR CCF1 CCF0
CCON - PCA 控制寄存器的位分配  地址D8H
符号 描述
CF PCA计数器阵列溢出标志。计数值翻转时该位由硬件置位。如果CMOD寄存器
ECF位置位,CF标志可用来产生中断。CF位可通过硬件或软件置位,但只
可通过软件清零
CR PCA计数器阵列运行控制位。该位通过软件置位,用来起动PCA计数器阵列计
数。该位通过软件清零,用来关闭PCA计数器
5 - 保留位,保留为将来使用
CCF1 PCA模块中断标志。当出现匹配或捕获时该位由硬件置位。该位必须通过软
件清零
CCF0 PCA模块中断标志。当出现匹配或捕获时该位由硬件置位。该位必须通过软
件清零
CCON - PCA 控制寄存器的位描述  地址D8H
符号 ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
CCAPMn -  PCA 比较 捕获模块寄存器的位分配CCAPM0 地址0DAHCCAPM1地址0DBH
符号 描述           n : 0,1,2,3
保留为将来之用
ECOMn 使能比较器。ECOMn时使能比较器功能
CAPPn 正捕获。CAPPn时使能上升沿捕获
CAPNn 负捕获。CAPNn时使能下降沿捕获
MATn 匹配。当MATn时,PCA计数值与模块的比较捕获寄存器的值的匹配将置
CCON寄存器的中断标志位CCFn
TOGn 翻转。当TOGnPCA计数值与模块的比较捕获寄存器的值的匹配将
使CEXn脚翻转(CEX0/P3.7,CEX1/P3.5)
PWMn 脉宽调节模式。当PWMn时,使能CEXn脚用作脉宽调节输出
ECCFn 使能CCFn中断使能寄存器CCON的比较捕获标志CCFn用来产生中断
CCAPMn - PCA 比较 捕获模块寄存器的位描述   n0,1,2,3 
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn 模块功能
无此操作
16位捕获模式,由CEXn的上升沿触发
16位捕获模式,由CEXn的下降沿触发
16位捕获模式,由CEXn的跳变触发
16位软件定时器
16位高速输出
PWM
PCA模块工作模式CCAPMn寄存器0,1,2,3
CPS1 CPS0 选择PCA时钟源输入
内部时钟Fosc12
内部时钟Fosc
定时器溢出由于定时器可以工作在1T方式,所以可以达
到计一个时钟就溢出频率反而是最高的可达到Fosc
ECI/P3.4脚的外部时钟输入最大速率Fosc/2
CMOD - PCA 计数器阵列的计数脉冲选择  地址D9H
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列149
STC12C5410AD 系列单片机可编程计数器阵列PCA
    P含有一个特殊的16 位定时器,有 16 位的捕获比较模块与之相连每个模块可编程工作
种模式下:上升 下降沿捕获软件定时器高速输出或可调制脉冲输出模块 连接到P3.7
CEX0/PCA0/PWM0), 模块连接到P3.5CEX1/PCA1/PWM1)。 模块连接到 P2.0CEX2/PCA2/
PWM2), 模块连接到 P2.4CEX3/PCA3/PWM3寄存器 CH CL 的内容是正在自由递增计数的 16
PCA 定时器的值。PCA定时器是个模块的公共时间基准,可通过编程工作在1/12振荡频率、1/2
振荡频率、定时器溢出或ECI脚的输入(P3.4)。 定时器的计数源由CMOD  SFR CPS1 CPS0
来确定 CMOD 特殊功能寄存器说明)。
Module 0 P3.7/CEX0/PCA0/PWM0
P2.4/CEX3/PCA3/PWM3
PCA Timer/Counter
16 Bit
Module 3
Programmable  Counter  Array
CH CL
CF CR CCF3 CCF2 CCF1 CCF0
Fosc/12
IDLE
16-Bit counter
TO PCA module
 PCA
interrupt
CMOD
CCON
PCA  Timer/Counter
Fosc/2
Timer 0 overflow
External  input
   ECI (P3.4)
CIDL CPS1 CPS0 ECF
Module 1 P3.5/CEX1/PCA1/PWM1
P2.0/CEX2/PCA2/PWM2
Module 2
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列150
    CMOD SFR 还有 个位与 PCA 相关。它们分别是CIDL,空闲模式下允许停止PCAECF,置位
时,使能PCA中断 PCA定时器溢出将PCA 计数溢出标志CFCCON  SFR)置位
    CCON SFR包含PCA 的运行控制位CR)和 PCA定时器标志(CF以及各个模块的标志CCF1/
CCF0)。 通过软件置位CR 位(CCON.6)来运行 PCACR 位被清零时 PCA 关闭 PCA 计数器溢出
时,CF 位(CCON.7)置位如果CMOD 寄存器的 ECF 位置位就产生中断CF 位只可通过软件清除
CCON寄存器的位 PCA 各个模块的标志(位 对应模块 对应模块 ), 当发生匹配或比
较时由硬件置位。这些标志也只能通过软件清除所有模块共用一个中断向量。PCA的中断系统如图
所示
    P的每个模块都对应一个特殊功能寄存器。它们分别是:模块对应CCAPM0,模块 对应
CCAPM1,模块对应CCAPM2,模块对应CCAPM3.特殊功能寄存器包含了相应模块的工作模式控制位
   当模块发生匹配或比较时ECCFn位(CCAPMn.0,n 2,3由工作的模块决定)使能
CCON SFRCCFn标志来产生中断
    PWMCCAPMn.1用来使能脉宽调制模式
PCA 计数值与模块的捕获 比较寄存器的值相匹配时如果TOG位(CCAPMn.2置位,模块的
CEXn输出将发生翻转
   PCA计数值与模块的捕获比较寄存器的值相匹配时如果匹配位MATnCCAPMn.3)置位
CCON寄存器的CCFn 位将被置位
    CAPNnCCAPMn.4)和 CAPPnCCAPMn.5)用来设置捕获输入的有效沿。CAPNn位使能下降沿
有效,CAPPn 位使能上升沿有效如果两位都置位则两种跳变沿都被使能捕获可在两种跳变沿
产生
   通过置位CCAPMn寄存器的ECOMn 位(CCAPMn.6来使能比较器功能
   每个PCA模块还对应另外两个寄存器,CCAPnHCCAPnL。当出现捕获或比较时,它们用来保存
16 位的计数值 PCA 模块用在 PWM 模式中时,它们用来控制输出的占空比
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列151
PCA 捕获模式
   要使一个PCA 模块工作在捕获模式下图), 寄存器 CCAPMn 的两位(CAPNn CAPPn或其中任
何一位必须置对模块的外部CEXn 输入(CEX0/P3.7CEX1/P3.5,CEX2/P2.0,CEX3/P2.4口)的
跳变进行采样当采样到有效跳变时PCA 硬件就将PCA 计数器阵列寄存器CH CL的值装载到
模块的捕获寄存器中CCAPnLCCAPnH)。
16 位软件定时器模式
   通过置位CCAPMn 寄存器的 ECOM MAT 位,可使 PCA模块用作软件定时器(下图)。 PCA定时器的
值与模块捕获寄存器的值相比较,当两者相等时,如果位CCFn CCON  SFR 中)和位 ECCFn
CCAPMn  SFR中)都置位,将产生中断
如果CCON SFR 的位 CCFn CCAPMn SFR 的位 ECCFn 位被置位将产生中断
CF CR CCF3 CCF2 CCF1 CCF0
CCAPnH
CH CL
CCAPnL
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
0 0 0 0
CCONC0h
PCA  interrupt
Capture
CEXn
 CCAPMnn=0,1
地址DAh
DBh
 PCA Capture Mode PCA 捕获模式图
CF CR CCF3 CCF2 CCF1 CCF0
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
CCON
   PCA
Interrupt
(To CCFn)
CCAPMn
16-Bit Comparator
CCAPnH CCAPnL
CH CL
Match
Enable
Write to CCAPnH
01
PCA Software Timer Mode/ 软件定时器模式 /PCA比较模式
Write to CCAPnL
0 0 1 0 0
先写 后写
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列152
高速输出模式
   该模式中下图), PCA计数器的计数值与模块捕获寄存器的值相匹配时PCA模块的CEXn
出将发生翻转。要激活高速输出模式,模块CCAPMn SFRTOG,MATECOM位必须都置位
  PCA
Interupt
脉宽调节模式
   所有PCA 模块都可用作 PWM输出(下图)。 输出频率取决于PCA 定时器的时钟源
1 0 0 0 0 1 0
   由于所有模块共用仅有的 PCA 定时器所有它们的输出频率相同各个模块的输出占空比是独立变
化的,与使用的捕获寄存器EPCnLCCAPnL}有关。当  CL  SFR的值小于{EPCnLCCAPnL
时,输出为低 PCA  CL  SFR 的值等于或大于EPCnLCCAPnL}时,输出为高 CL 的值由
FF 变为00 溢出时EPCnHCCAPnH的内容装载到EPCnLCCAPnL}中。这样就可实现无
干扰地更新PWM。要使能 PWM 模式,模块 CCAPMn 寄存器的 PWMn ECOMn 位必须置位
PCA High-Speed Output Mode / PCA 高速输出模式
CF CR CCF3 CCF2 CCF1 CCF0
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
CCON
(To CCFn)
CCAPnH CCAPnL
CH CL
Match
Enable
01
CEXn
Toggle
CCAPMn
Write to CCAPnH
Write to CCAPnL
0 0 1 1 0
16-Bit comparator
翻转
  CL
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
(0,CL) <  (EPCnL,CCAPnL)
(0,CL) >= (EPCnL,CCAPnL)
输出
输出
Enable
CL overflow
CEXn
CCAPMn, n=0,1
PCA PWM mode  可调制脉冲宽度输出模式
CCAPnHEPCnH
CCAPnLEPCnL
  0
  9-BIT
COMPARATOR
先写 后写
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列153
定义 STC12C2052 系列 MCU 特殊功能寄存器
     EQU   I             ; 中断屏蔽位
       E    0             ;A 计数器高
       E    0             ;A 计数器低
;------------------------
     EQU    0D8             ; 控制寄存器
F0     E   CON           ;CA 模块0 中断标志, 由硬件置位, 必须由软件清
F1     E   CON           ;CA 模块1 中断标志, 由硬件置位, 必须由软件清
       EQ   CN.           ;允许 PCA 计数器计数, 必须由软件清
       E   CC           ;计数器溢出标志由硬件或软件置位必须由软件清
;------------------------
OD     E   09H             ; 工作模式寄存器
;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) 产生中断
;------------------------
AP   EQU   0H             ; 模块 的捕捉 比较寄存器高 8 位。
AP   EQU   0H             ; 模块 的捕捉 比较寄存器高 8 位。
AP   EQU   0H             ; 模块 的捕捉 比较寄存器低 8 位。
AP   EQU   0H             ; 模块 的捕捉 比较寄存器低 8 位。
;------------------------
PCA_PWM0   EQU   0F2H             ;PCA 模块0 PWM 寄存器
PCA_PWM1   EQU   0F3H             ;PCA 模块1 PWM 寄存器
;PA_WM:    7      6      5      4      3      2      1      0
             -      -      -      -      -      -    EPCH  EnL
;B7-B2: 保留
;B1(EPCnH):  PWM 模式下,与 CCAPnH 组成  位数
;B0(EPCnL):  PWM 模式下,与 CCAPnL 组成  位数
;------------------------
AP   E   0D             ;CA 模块 的工作模式寄存器
AP   E   0D             ;CA 模块 的工作模式寄存器
;PCA_5410AD_SFR.ASM, PCA/PWM新增特殊功能寄存器声明
 STC12C5410AD 系列单片机 PCA/PWM 新增特殊功能寄存器声明
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列154
;CAPn:    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  = 当匹配情况发生时, CEXn 将翻转
;PWMn  =  CEXn 设置为 PWM 输出
;ECCFn = 允许 CCON 中的 CCFn 触发中断
;  -  ECOMn  CAPPn  CAPNn  MATn  TOGn  PWMn  ECCFn
;  -    0      0      0     0     0     0     0   未启用任何功能   00H
  -    x      1      0     0     0     0     x   16CEXn 上升沿触发捕捉功能   20H
  -    x      0      1     0     0     0     x   16CEXn 下降沿触发捕捉功能   10H
  -    x      1               0          x   1CEXn 边沿(上、下沿)触发捕捉功能
30H
  -    1      0      0     1     0     0     x   16位软件定时器                48H
  -    1      0      0     1     1     0     x   1位高速脉冲输出              4CH
;  -    1      0      0     0     0     1     0   8 PWM                      42
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列155
;STC12C5410AD 系列单片机 PCA 功能PWM 示例程序,使用 18.432MHz 晶振
;------------------------------------------------------------
#include <..\PCA_5410AD_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%
tep              EU   38H         ;WM 脉宽变化步长
;------------------------------------------------------------
定义变量
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:
    M   CMOD, #           ;CA 在空闲模式下停止 PCA 计数器工作
                                ;PC 时钟模式为 fosc/12
                                ;禁止 PCA 计数器溢出中断
    MOV   CON #00            禁止 PCA 计数器工作, 清除中断标志计数器溢出标志
    MOV   CL, #00              ; 计数器
    MOV   CH, #00H
;-------------------------
设置模块  8  PWM 输出模式, PWM 无需中断支持。脉冲在P3.7(11 脚)输出
    MOV   CCAPM0, #42H          ;*** 示例程序核心语句, ---->0100,0010
    MOV   PCA_PWM0, #00H        ;*** 示例程序核心语句
;   MOV   PCA_PWM0, #03H        释放本行注释, PWM 输出就一直是 0, 无脉冲
;-------------------------
设置模块  8  PWM 输出模式, PWM 无需中断支持。脉冲在P3.5( 脚)输出
    MOV   CCAPM1, #42H          ;*** 示例程序核心语句, ---->0100,0010
    MOV   PCA_PWM1, #00H        ;*** 示例程序核心语句
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列156
;   MOV   PCA_PWM1, #03H        释放本行注释, PWM 输出就一直是 0, 无脉冲
    SETB  EPA                  ; PCA 中断
    SEB  E                    ;开总中断
    SETB  C                    ;PCA 计数器打开
    R
;------------------------------------------------------------
WM:                            ;用示波器进行观察较为理想
    ;逐渐变亮
    M   A, #pulse_width_MIN   为输出脉冲宽度设置初值
    M   pulse_width, A        ;pulse_width 数字越大脉宽越窄P3.5  LED 越亮
PWM_loop1:
    M   A, pulse_width        判是否到达最大值
    CL   C
    SUBB  A, #pulse_width_MAX
    J   M_a                 ;到达最大值就转到逐渐变暗
    MOV  A, pulse_width       设置脉冲宽度数字越大脉宽越窄LED 越亮
    M   CCAP0H A             ;*** 示例程序核心语句
    MOV   CC1H, A             ;*** 示例程序核心语句
    CP   A                      ; P1 口的 LED 显示占空比
    M   P1 A                  占空比 = ( pulse_width/256 ) * 100%  
    MOV   A, pulse_width        计算下一次输出脉冲宽度数值
    ADD   A, #step
    MOV   pulse_width, 
    ACALL                  ;在一段时间内保持输出脉冲宽度不变
    SJMP  PWM_loop1
PWM_a:
    ;逐渐变暗
    M   A, #pulse_width_MAX   为输出脉冲宽度设置初值
    M   pulse_width, A        ;pulse_width 数字越大脉宽越窄P3.5  LED 越亮
PWM_loop2:
    M   A, pulse_width        判是否到达最小值
    CL   C
    SUBB  A, #pulse_width_MIN
    J    P_b                 ;到达最小值就返回
    J    P_b                 ;到达最小值就返回
    MOV  A, pulse_width       设置脉冲宽度数字越大脉宽越窄LED 越亮
    MOV   CCH, A              ;* 示例程序核心语句
    MOV   CCH, A              ;* 示例程序核心语句
    CP   A                      ; P1 口的 LED 显示占空比
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列157
    M   P A               ;占空比 = ( pulse_width/256 ) * 100%  
    M   A, pulse_width    计算下一次输出脉冲宽度数值
    CL   C
    SUBB  A, #step
    MOV   pulse_width, 
    ACALL delay             ;在一段时间内保持输出脉冲宽度不变
    SJMP  PWM_loop2
PWM_b:
    R
;------------------------------------------------------------
delay:
    CL   A
    MOV   R1, A
    MOV   R2, A
    MOV   R3, #80H
delay_loop:
    N
    N
    N
    DJNZ  R1, delay_loop
    DJNZ  R2, delay_loop
    DJNZ  R3, delay_loop
    R
;------------------------------------------------------------
    E
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列158
PWM 输出语言示例
#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){};
 }
    STC12C5410AD 系列单片机 PWM 输出语言示例
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列159
;******************************************************************************
                输出 125.0KHz 的脉冲晶体频率 = 33.000MHz)
示例程序: 使用 功能, P3.5( 脚)输出
;         125.0KHz 的方脉冲
;------------------------------------------------------------------------------
    程序中定义的常量 CCAPnL_Value 决定了 PCA 模块 n 输出脉冲的频率 f
;        f =  Fosc / (4 * CCAPnL_Value 
           式中 Fosc = 晶体频率
;        CCAPnL_Value  =  Fosc / (4 * f)
    如算出的结果不是整数则进行取整 CCAPnL_Value =  INT(Fosc / (4 * f) + 0.5)
        I 为取整数运算, 直接去掉小数
;******************************************************************************
定义 STC12C5410 系列 MCU 特殊功能寄存器
PH      EU   0B7H              ;中断优先级高位寄存器
EPCA_LVD EQU   IE.6             ;PCA/LVD 中断允许位
                ;要打开 PCA 中断还要打开相应的 ECFECCF0ECCF1 
                 ;要打开 LVD 中断还要打开相应的 ELVDI 
       E   0F9             ;PCA 计数器高 位。
       E   0E9             ;PCA 计数器低 位。
;------------------------
     EQU   0             ; 控制寄存器
F0     E   CON           ;CA 模块0 中断标志, 由硬件置位, 必须由软件清
F1     E   CON           ;CA 模块1 中断标志, 由硬件置位, 必须由软件清
       EQ   CN.           ;允许 PCA 计数器计数, 必须由软件清
       E   CC           ;计数器溢出标志由硬件或软件置位必须由软件清
;------------------------
OD     E   09H             ; 工作模式寄存器
;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) 产生中断
;------------------------
    STC12C5410AD 系列单片机 PCA 的高速脉冲输出
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列160
AP   EQU   0H             ; 模块 的捕捉 比较寄存器高 8 位。
AP   EQU   0H             ; 模块 的捕捉 比较寄存器高 8 位。
AP   EQU   0H             ; 模块 的捕捉 比较寄存器低 8 位。
CCAP1L   EQU                ;P 模块 的捕捉比较寄存器低 8 位。
;------------------------
PCA_PWM0 EQU                ;PC 模块0 PWM 寄存器
PCA_PWM1 EQU   03H             ; 模块1 PWM 寄存器
;PA_WM:    7      6      5      4      3      2      1      0
             -      -      -      -      -      -    EPCH  EnL
;B7-B2: 保留
;B1(EPCnH):  PWM 模式下,与 CCAPnH 组成  位数
;B0(EPCnL):  PWM 模式下,与 CCAPnL 组成  位数
;------------------------
AP   E   0D             ;CA 模块 的工作模式寄存器
AP   E   0D             ;CA 模块 的工作模式寄存器
;CAPn:    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   0x0   未启用任何功能
  x     1     0    0    0    0    x   0   1CEXn上升沿触发捕捉功能
  x     0     1    0    0    0    x   0   1CEXn下降沿触发捕捉功能
  x     1     1    0    0    0    x   0x   1CEXn 边沿(上、下沿)触发捕捉功能
  1     0     0    1    0    0    x   09   1位软件定时器
  1     0     0    1    1    0    x   0   1位高速脉冲输出
  1     0     0    0    0    1    0   0x4   8 PWM
;------------------------------------------------------------
定义常量 CCAPnL_Value
;CCAPnL_Value 决定了模块1 输出脉冲的频率 f
;        f =  Fosc / (4 * CCAPnL_Value 
    式中 Fosc = 晶体频率
      CCAPnL_Value  =  INT(Fosc / (4 * f) + 0.5)
        I 为取整数运算
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列161
    假定 fosc = 20MHz , 要求 PCA 高速脉冲输出 125KHz 的方波
;        CCAPnL_Value = INT( 20000000/4/125000 + 0.5)
                     = I( 40 + 0.5)
;                     = INT( 40.5 )
;                     = 40
;                     = 28H
    输出脉冲的频率 f  = 20000000/4/40
                     = 125 (125KHz)
;CCAPnL_Value  EQU 25H     ;25H = 37, fosc = 18.432MHz , 高速脉冲输出 = 124.540KHz
;CCAPnL_Value  EQU 28H     ;28H = 40, fosc = 20MHz , 高速脉冲输出 = 125KHz
CCAPnL_Value   EQU 42H     ;42H = 66, fosc = 33MHz, 高速脉冲输出 = 125KHz
;------------------------------------------------------------
    ORG 0000H
    AJMP  main
;------------------------------------------------------------
    ORG  0033H                  ;nterup 6
PCA_interrupt:
    PUS  ACC                   ;4 Cloc
    PUS  PSW                   ;4 Cloc
    CLR   CC1                  ;1 Cck,  PCA 模块 1 中断标志
    MOV   A, #CCAPnL_Value ;2 Clock
    AD   A, C1L             ;3 Cck
    MV   CCA, A             ;3 Cck
    CLR   A                     ;1 Clo
    AC  A, C             ;3 Clock
    MV   CCA, A             ;3 Cck
    POP   PW                   ; Clo
    POP   AC                   ; Clo
    RETI                        ;4 Clo
此中断服务程序共用 34 Clock, 进入中断服务程序还要数个 Clock
;------------------------------------------------------------
    ORG 0060H
main:
    MOV   S, #0H             ;设置堆栈指针
    ACALL PA_int              ;调用 PCA 初始化程序
main_loop:
    N
    N
    N
    SJMP  main_loop
;------------------------------------------------------------
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列162
CA_iit                       ;CA 初始化程序
    MOV   CMOD, #00000010B     ;02HPCA 计数器在空闲模式下继续工作, CIDL = 
                    ; 计数器计数脉冲来源为系统时钟源 fosc/2, CPS1, CPS0 = (0,1)
                    ;禁止PCA计数器(CH, CL)计数溢出(CH, CL=0000H)中断, ECF = 
    M   CCON #            ;清除 PCA 计数器(CH, CL)计数溢出中断标志, CF = 
                                ;停止 PCA 计数器(CH, CL)计数, CR = 
                                ;清除 模块 1 中断标志, CCF1 = 
                                ;清除 模块 0 中断标志, CCF0 = 
    MOV   C, #00H              ;0 PCA 计数器高 8 
    MOV   C, #00H              ;0 PCA 计数器低 8 
;-------------------------
设置模块为高速脉冲输出模式, 脉冲在P3.5( 输出
    MOV   CCAPM1, #01001101B    ;4DH, 设置 PCA 模块 为高速脉冲输出模式允许触发中断
;CAPn:    7      6      5      4      3      2      1      0
;           -    ECOMn  CAPPn  CAPNn  MATn   TOGn   PWMn   ECCFn
;           0      1      0      0      1      1      0      1
    MOV   CCAP1L, #CCAPnL_Value 给模块置初值, 此句不可少
    MOV   CCAP1H, #0 给模块置初值, 此句不可少
    ;其它中断服务可能会使模块1 高速脉冲输出的某个周期突然变得很大因此必须将
    ;PCA 中断的优先级设置为唯一的最高级, 其它中断的优先级都要比它低
    MOV   IPH, #01000000B       ;PCA 中断的优先级设置为唯一的最高级
    MOV   IP, #01000000B
    ET  EPCA_L              ; PCA 中断
    SEB  E                    ;开总中断
    SETB  C                    ;PCA 计数器打开
    R
;------------------------------------------------------------
    E
;------------------------------------------------------------
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列163
   STC12C5410AD 系列编译器汇编器编程器仿真器
STC 单片机应使用何种编译器汇编器
1.任何老的编译器 汇编器都可以支持流行用 Keil C51
2.STC单片机,当成Intel8052/87C52/87C54/87C58,PhilipsP87C52/P87C54/P87C58就可以
3.如果要用到扩展的专用特殊功能寄存器直接对该地址单元设置就行了当然先声明特殊功能寄存
器的地址较好
编程烧录器:
我们有: STC12C5410AD 系列 ISP 经济型下载编程工具人民币 50 元,可申请免费样品
仿真器如您已有老的仿真器可仿真普通8052的基本功能
STC12C5410AD系列单片机扩展功能如它仿不了
可以用 STC-ISP 直接下载用户程序看运行结果就可以了
无须添加新的设备
        注意:有专门下载 28PIN/20PIN 的不同演示板
             2IN28PIN 的演示板,20PIN 20PIN 的演示板
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列164
   STC12C5410AD系列单片机 ISP 编程原理 使用说明
外部手动复位看门狗复位,单片
机不会运行ISP 程序
PC 机端的控制软件必需先发下载命令流
再给单片机上电复位
PC 机端控制软件为STC-ISP-V3.1 及以后的版本从
www.MCU-Memory.com下载,如何使用本文相关部
分有说明
单片机运行ISP程序,检测有无合法下载
命令流,占时几十mS  几百mS如无
合法下载命令流则立即跑用户程序
单片机彻底没电
给单片机上电复位,冷起动
冷起动单片机运行系统ISP监控程序
检测P3.0/RxD有没有合法下载命令流
下载用户程序进用户程序区
软复位到用户程序区运行用户程序
如果已设置P1.0/P1.1=0/0才会判断是否下载
用户程序,则冷启动后 P1.0/P1.10/0
则直接跑用户程序只会占时50uS可忽略不计
建议用户选择P1.0/P1.1 不同时为0/0则立即
跑用户程序跨过系统ISP 监控程序
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列165
STC 12C5410AD 系列单片机在系统可编程的使用
---将用户代码下载进单片机内部,不用编程器
 STC12C5410AD系列单片机具有在系统可编程ISP)特性,ISP  的好处是:省去购买通用编程
器,单片机在用户系统上即可下载烧录用户程序而无须将单片机从已生产好的产品上拆下再用通
用编程器将程序代码烧录进单片机内部有些程序尚未定型的产品可以一边生产一边完善加快了产
品进入市场的速度减小了新产品由于软件缺陷带来的风险由于可以在用户的目标系统上将程序直接
下载进单片机看运行结果对错,故无须仿真器
STC12 系列单片机内部固化有ISP 系统引导固件,配合 PC 端的控制程序即可将用户的程序代码下载进
单片机内部故无须编程器速度比通用编程器快,几秒一片
如何获得及使用STC 提供的ISP 下载工具(STC-ISP.exe 软件
(1). 获得STC 提供的ISP 下载工具(软件
登陆 www.MCU-Memory.com 网站,从 STC 半导体专栏下载 PC(电脑)端的 ISP 程序,然后
    将其自解压,再安装即可(执行 setup.exe注意随时更新软件
(2). 使用 STC-ISP 下载工具软件请随时更新目前已到Ver3.1 版本以上支持*.bin,
 *.hex(Intel 16 进制格式文件
    请随时注意升级 PC电脑端的ISP程序
(3).STC12C5410AD系列单片机出厂时就已完全加密需要单片机内部的电放光后上电复位冷起动才运
行系统ISP 程序,如从 P3.0/RxD 检测到合法的下载命令流就下载用户程序如检测不到就系统复位
到用户程序区
(4).如果用户板上 P3.0/RxDP3.1/Txd 接了 RS-485 等电路,下载时需要将其断开用户系统接了 RS-
485等通信电路推荐在选项中选择下次冷启动时需P1.0/P1.1=0/0 才判是否下载程序
8 R2IN R2OUT 9
0.1uF 2 V+ GND 15
1 C1+ Vcc 16 Vcc
3 C1- T1OUT 14
5 C2- R1OUT 12
6 V- T1IN 11
7 T2OUT T2IN 10
PC_RxD (COM Pin2)
4 C2+ R1IN 13 PC_TxD (COM Pin3)
Gnd
PC /电脑 串口
 STC3232STC232MAX232SP232
U1-P1.0
U1-P1.1
MCU-VCC
U1-P3.0
U1-P3.1
GND
USB+5V T1OUT GNDR1IN
USB1
1  RST                         VCC  20
2  RxD/P3.0       P1.7/SCLK/ADC7  19
3  TxD/P3.1       P1.6/MISO/ADC6  18
4  XTAL2           P1.5/MOSI/ADC5  17
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
5  XTAL1             P1.4/SS/ADC4  16
1K
1K
Vcc
Vin
Power On
SW1
电源开关
USB +5V
10K
10μ
C1
R1
<33p
<33p
通过电脑端的
STC-ISP 软件
控制下载
用户程序
STC 单片机
建议用户在系统上
留此接口,可方便
在线下载用户程序
10μ
0.1 μ
10μ
Vcc
Vcc
0.1uF
0.1uF
晶振频率在20M以下时
可以不用C1R1可为10K
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列166
Step1/步骤选择你所使用的单片机型号,如 STC12C5410,STC12C5410AD
Step2/步骤打开文件,要烧录用户程序,必须调入用户的程序代码(*.bin, *.hex
Step3/步骤 选择串行口你所使用的电脑串口如串行口1--COM1, 串行口2--COM2,...
有些新式笔记本电脑没有RS-232 串行口可买一条USB-RS232 转接器人民币50 元左右
           有些USB-RS232 转接器不能兼容可让宏晶帮你购买经过测试的转换器
Step4/步骤选择下次冷启动后,时钟源为“内部R/C振荡器”还是“外部晶体或时钟
Step5/步骤选择“Download/ 下载按钮下载用户的程序进单片机内部可重复执行
               S步骤 , 也可选择Re-Download/重复下载”按钮
下载时注意看提示主要看是否要给单片机上电或复位,  下载速度比一般通用编程器快
一定要先选择Download/下载按钮然后再给单片机上电复位先彻底断电而不要
    先上电,先上电,检测不到合法的下载命令流单片机就直接跑用户程序了
关于硬件连接
(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,单片机直接运行用户程序免得由于RS-485 总线上
        的乱码造成单片机反复判断乱码是否为合法浪费几百mS的时间
(5). RS-232转换器可选用STC232/MAX232/SP232(4.5-5.5V),STC3232/MAX3232/SP3232(3V-5.5V).
 STC232/MAX232/SP232尽量选用SOP 封装窄体STC3232尽量选用 SOP 封装(窄体).
大批量生产时使用
开发调试时可考虑选择此项
P3.0/P3.1外接RS-485/RS-232等通
信电路,建议选择P1.0/P1.1 不同时等
0/0则直接运行用户程序跨过系统
ISP引导程序
新的设置冷启动(彻底停电后再上电)后
才生效
除每次均要指定缓冲区起始地址外
二次及以后不能清缓冲区
第一次调文件进缓冲区,要清缓冲区
要调几个文件进缓冲区,如 EEPROM 里的
数据文件需要和应用程序文件一次同时
ISP下载编程进单片机
如可将要写入EEPROM 区的数据文件调入
从缓冲区2000H/8000H 开始的地方,并不
清缓冲区,然后和应用程序一起写入
用户根据实际使用效果选择限制最高通信
波特率 576003840019200
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列167
如用户系统没有 RS-232 接口
可使用 STC-ISP Ver 3.0A.PCB 演示板作为编程工具
STC-ISP Ver 3.0APCB 板如焊接的是STC12C5410AD的线路,则
                    可完成STC12C5410AD系列单片机的ISP下载编程 烧录用户程序的功能
STC-ISP Ver 3.0A PCB 板完成下载烧录
关于硬件连接
(1.) 根据单片机的工作电压选择单片机电源电压
A. 5V单片机,短接 JP1 MCU-VCC, +5V电源管脚
3V单片机短接JP1MCU-VCC, 3.3V 电源管脚
(2.)连接线宏晶提供
A. 将一端有芯连接座的插头插入PC/ 电脑RS-232 串行接口插座用于通信
B. 将同一端的USB插头插入PC/电脑USB接口用于取电
C. 将只有一个USB 插头的一端插入宏晶的STC-ISP Ver 3.0A PCBUSB1 插座用于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 模式(STC12C5410AD 系列冷启动进入 ISP)
(9.)下载成功后再按SW1 开关,此时 SW1开关处于非按下状态MCU-VCC Power灯不亮(D41),
给单片机断电取下单片机
利用STC-ISP Ver 3.0A PCB 进行 RS-232 转换
单片机在用户自己的板上完成下载烧录
U1-Socket 锁紧座不得插入单片机
将用户系统上的电源(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. 关于软件:选择“Download/下载
6. 给单片机系统上电复位注意是从用户系统自供电不要从电脑USB 取电电脑 USB座不插
7. 下载程序时如用户板有外部看门狗电路不得启动单片机必须有正确的复位但不能在ISP
下载程序时被外部看门狗复位如有,可将外部看门狗电路WDI端/WDO端浮空
8. 如有 RS-485 晶片连到 P3.0/Rxd,P3.1/Txd,或其他线路在下载时应将其断开
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列168
内部数据 RAM存储器
STC12C5410AD系列单片机内部有256 字节常规的 RAM,256 字节的扩展 RAM
器件的内部常规数据存储器由部分组成
1.128 字节 RAM00H7FH), 可直接和间接寻址用“MOV”和“MOV  @Ri
2.128 字节 RAM80HFFH), 间接寻址,用“MOV  @Ri
3.特殊功能寄存器80HFFH), 只可直接寻址,  用“MOV
由于高128字节RAMSFR特殊功能寄存器占用相同的地址,因此高128字节 RAM 空间必须用间接
寻址(MOV  @Ri来区分特殊功能寄存器80HFFH), 只可直接寻址(用“MOV来区分
尽管RAM SFR 的地址相同,但它们在物理上是独立的
扩展数据RAM
STC12C5410AD系列有 256字节的扩展RAM称其为XRAM附加RAM), 用“MOVX”寻址
扩展的256 字节 RAM0000H00FFH), 通过 MOVX 指令间接寻址
00FFH
0000H
FFH
80H
7FH
FFH
80H 扩展RAM
256字节
外部间接寻址
128字节内部RAM
(间接寻址
128字节内部RAM
间接直接寻址
特殊功能寄存器
(直接寻址
SFR
              内部数据RAM存储器
使用“MOVX  @DPTR  MOVX  @Ri
    00H
语言中可使用xdata 声明存储类型即可如:
unsigned char xdata  i = 0;
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列169
TEST_CONST EQU 5AH
;TEST_RAM EQU 03H
ORG 0000H
LJMP INITIAL
ORG 0050H
INITIAL:
MOV R0, #253
MOV R1, #3H
TEST_ALL_RAM:
MOV R2, #0FFH
TEST_ONE_RAM:
MOV A, R2
MOV @R1,
CLR
MOV A, @R1
CJNE A, 2H, ERROR_DISPLAY
DJNZ R2, TEST_ONE_RAM
INC R1
DJNZ R0, TEST_ALL_RAM
OK_DISPLAY:
MOV P1, #11111110B
Wait1:
     S Wait1
ERROR_DISPLAY:
MOV A, R1
MOV P1,
Wait2:
     S Wait2
     E
        内部常规 256字节 RAM 间接寻址测试程序
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列170
           串行外围接口(SPI
STC12C5410AD 系列单片机还提供另一种高速串行通信接口——SPI  接口。SPI是一种全双工、高速
同步的通信总线有两种操作模式主模式和从模式在主模式中支持高达 3Mbit/s 的速率工作频率
12MHz时,如果CPU主频采用20MHz36MHz,则可更高从模式时速度无法太快Fosc/8以内较好),
还具有传输完成标志和写冲突标志保护
SPI 接口有个管脚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器件作为当前的从机
  SPI从器件通过其/SS脚确定是否被选择如果满足下面的条件之一/SS就被忽略
  如果SPI 系统被禁止,即 SPEN(SPCTL.6)=0(复位值
  如果SPI 配置为主机,即 MSTR(SPCTL.4)=1,并且 P1.4 配置为输出通过P1M0.4 P1M1.4
  如果/SS 脚被忽略,即 SSIG(SPCTL.7)位=该脚配置用于 I/O口功能
注:即使SPI 被配置为主机(MSTR ), 它仍然可以通过拉低 /SS 脚配置为从机(如果P1.4 配置为输
入且SSIG=0)。 要使能该特性应当置位SPIF(SPSTAT.7)
   典型连接如SPI 1~3 所示
位移位寄存器
读数据缓冲区
CPU 时钟
    分频器
4, 16, 64, 128
选择
SPI 控制
SPI 状态寄存器
时钟逻辑
SPI 控制寄存器
管脚
控制
逻辑
MISO
P1.6
MOSI
P1.5
SPICLK
P1.7
SS
P1.4
  SPI
中断请求 内部
数据
总线
SPI时钟(主机clock
MSTR
SPEN
SPR1
SPR0
SPIF
SSIG
SPEN
DORD
MSTR
CPHA
CPOL
SPR1
SPR0
MSTR
SPEN
SPI 方框图
STC12C5410AD系列 1T 8051 单片机 SPI 功能模块特殊功能寄存器  SPI Management SFRs
Mnemonic Add Name   7  6  5  4  3  2  0 Reset value
SPCTL 85h SPI Control Register SSIG  SPEN  DORD MSTR CPOL CPHA SPR1 SPR0 0000,0000
SPSTAT 84h SPI Status Register SPIF  WCOL  -  -  -  - 00xx,xxxx
SPDAT 86h SPI Data Register 0000,0000
WCOL
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列171
符号 描 
SPR0 SPR0/SPRSPI 时钟速率选择控制位
SPR1
SPR, SPR
  0        0       CPU_CLK
  0        1       CPU_CLK16
  1        0       CPU_CLK64
  1        1       CPU_CLK128
CPHA
SPI 时钟相位选择(见SPI~图):
:数据在SPICLK 的前时钟沿驱动,并在后时钟沿采样
:数据在SS 为低(SSIG00时被驱动,在SPICLK 的后时钟
沿被改变,并在前时钟沿被采样
(注:SSIG1 时的操作未定义
CPOL SPI 时钟极性(见SPI~图):
SPICLK 空闲时为高电平。SPICLK 的前时钟沿为下降沿而后沿为上升沿
SPICLK 空闲时为低电平SPICLK 的前时钟沿为上升沿而后沿为下降沿
MSTR 从模式选择(见SPI 主从选择表)。
DORD SPI 数据顺序
:数据字的LSB最低位) 最先发送;:数据字的MSB最高位) 最先发送
SPEN SPI 使能
SPI 使能
SPI 被禁止,所有SPI 管脚都作为I/O 口使用
SSIG
SS 忽略
MSTR(位)确定器件为主机还是从机
SS 脚用于确定器件为主机还是从机。SS 脚可作为I/O 口使用(见SPI 
从选择表)。
SPI 控制寄存器的位描述(SPCTL 地址85h
符号 SSIG SPEN DORD MSTR CPOL CPHA SPR1 SPR0
复位
SPI  控制寄存器的位分配SPCTL- 地址85h
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列172
SPI 状态寄存器的位分配SPSTAT 地址84h
SPI 状态寄存器的位描述SPSTAT 地址84h
符号 SPIF WCOL ------
复位
符号 符号
SPIF SPI 传输完成标志当一次串行传输完成时SPIF 置位并当ESPI
EA 都置位时产生中断SPI 处于主模式且SSIG0 如果SS 为输入
并被驱动为低电平SPIF 也将置位SPIF标志通过软件向其写入清零
WCOL SPI 写冲突标志在数据传输的过程中如果对SPI 数据寄存器SPDAT 执行写
操作WCOL 将置位WCOL 标志通过软件向其写入清零
5 - 保留
 SPI 数据寄存器的位分配SPDAT 地址86h
符号 MSB LSB
复位
 SPDAT.7 - SPDAT.0:      传输的数据位 Bit7Bit0
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列173
    在上图SPI 中,从机的SSIG(SPCTL.7) /SS 用于选择从机SPI 主机可使用任何端口
包括P1.4/SS来驱动/SS
    上图SPI 所示为两个器件互为主从的情况当没有发生SPI操作时两个器件都可配置为主机
MSTR=1), SSIG清零并将 P1.4(/SS)配置为准双向模式。当其中一个器件启动传输时,它可将P1.4
配置为输出并驱动为低电平这样就强制另一个器件变为从机
    在上图SPI 中,从机的SSIG(SPCTL.7) 从机通过对应的/SS 信号被选中SPI主机可
使用任何端口包括P1.4/SS来驱动 /SS 脚。
主机 从机
位移位寄存器
SPI 时钟发生器
位移位寄存器
MISO MISO
 SPI 1  SPI 单主机单从机 配置
MOSI MOSI
SPICLK SPICLK
Port /SS
 SPI2  SPI 双器件配置(可器件可互为主从
主机 从机
位移位寄存器
SPI 时钟发生器
位移位寄存器
MISO MISO
MOSI MOSI
SPICLK SPICLK
/SS
/SS
SPI 时钟发生器
MISO MISO
MOSI MOSI
SPICLK SPICLK
Port /SS
Port /SS
位移位寄存器
SPI时钟发生器
位移位寄存器
位移位寄存器
主机 从机
 SPI SPI 单主机 多从机 配置
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列174
SPI 进行配置
    下表 所示为主 从模式的配置以及模式的使用和传输方向
     SPI 主从模式选择
作为从机时的额外注意事项
    CPHA0 时,SSIG 必须为/SS 脚必须取反并且在每个连续的串行字节之间重新设置为高
电平。如果 SPDAT  寄存器在 /SS 有效(低电平时执行写操作那么将导致一个写冲突错误
CPHA=0 SSIG=0 时的操作未定义
   CPHA1 时,SSIG 可以置位如果 SSIG /SS 脚可在连续传输之间保持低有效即一
直固定为低电平)。 这种方式有时适用于具有单固定主机和单从机驱动MISO  数据线的系统
作为主机时的额外注意事项
   SPI 中,传输总是由主机启动的如果SPI使能(SPEN=1并选择作为主机主机对SPI 
据寄存器的写操作将启动SPI 时钟发生器和数据的传输在数据写入 SPDAT 之后的半个到一个SPI 
时间后,数据将出现在 MOSI 
   需要注意的是主机可以通过将对应器件的/SS 脚驱动为低电平实现与之通信写入主机SPDAT
寄存器的数据从MOSI 脚移出发送到从机的MOSI 脚。同时从机SPDAT 寄存器的数据从 MISO 脚移出发
送到主机的MISO 
    传输完一个字节后SPI时钟发生器停止传输完成标志SPIF置位并产生一个中断如果
SPI 中断使能)。 主机和从机CPU 的两个移位寄存器可以看作是一个16  循环移位寄存器当数据从
主机移位传送到从机的同时,数据也以相反的方向移入。这意味着在一个移位周期中,主机和从机的
数据相互交换
SPEN SSIG SS 
P1.4 MSTR 主或从
模式 MISO
P1.6 MOSI
P1.5 SPICLK
P1.7 备注
P1.4 SPI 功能禁止 P1.6 P1.5 P1.7 SPI 禁止。P1.4/P1.5/P1.6/P1.7作为普通I/O
使用
从机模式 输出 输入 输入 选择作为从机
从机模式
未被选中 高阻 输入 输入 未被选中MISO 为高阻状态以避免总线冲突
1—>0 从机模式 输出 输入 输入
P1.4/ SS 配置为输入或准双向口SSIG 
果择SS 被驱动为低电平则被选择作为从机
SS 变为低电平时MSTR将清零
注:当SS处于输入模式时如被驱动为低电平
SSIG0 MSTR 位自动清零
空闲输入 高阻 高阻
当主机空闲时MOSI SPICLK 为高阻态以避免总线
冲突。用户必须将SPICLK 上拉或下拉
CPOLSPCTL3 的取值以避免SPICLK出现悬浮
状态
激活输出 输出 作为主机激活时MOSI SPICLK 为推挽输出
P1.4 输出 输入 输入
P1.4 输入 输出 输出
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列175
通过 /SS 改变模式
    如果SPEN=1, SSIG=0MSTR=1SPI使能为主机模式/SS脚可配置为输入或准双向模式。这
种情况下另外一个主机可将该脚驱动为低电平从而将该器件选择为SPI  从机并向其发送数据
   为了避免争夺总线SPI 系统执行以下动作
   1)MSTR清零并且 CPU 变成从机这样SPI 就变成从机MOSI SPICLK 强制变为输入模式
MISO则变为输出模式
     SPSTAT SPIF 标志位置位如果SPI 中断已被使能,则产生 SPI 中断
   用户软件必须一直对MSTR位进行检测如果该位被一个从机选择所清零而用户想继续将SPI 作为主
机,这时就必须重新置位MSTR否则就进入从机模式
写冲突
    SPI在发送时为单缓冲在接收时为双缓冲这样在前一次发送尚未完成之前不能将新的数据
写入移位寄存器当发送过程中对数据寄存器进行写操作时WCOL 位(SPSTAT.6将置位以指示数
据冲突。在这种情况下,当前发送的数据继续发送,而新写入的数据将丢失
   当对主机或从机进行写冲突检测时主机发生写冲突的情况是很罕见的因为主机拥有数据传输的
完全控制权但从机有可能发生写冲突因为当主机启动传输时从机无法进行控制
   接收数据时接收到的数据传送到一个并行读数据缓冲区这样将释放移位寄存器以进行下一个数
据的接收。但必须在下个字符完全移入之前从数据寄存器中读出接收到的数据,否则,前一个接收数
据将丢失
   WCOL可通过软件向其写入“1清零
数据模式
   时钟相位位(CPHA)允许用户设置采样和改变数据的时钟边沿时钟极性位CPOL 允许用户设置时钟极
性。 SPI 7 所示为时钟相位位CPHA 的不同设定
  SPI 4  SPI 从机传输格式CPHA=0
时钟周期 12345678
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MOSI(输入DORD = 0
DORD = 1 MSB LSB
LSB MSB
DORD = 0 MSB LSB
DORD = 1 LSB MSB
MISO(输出
SS如果SSIG 0)
未定义
(1)
(1)
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列176
SPI时钟预分频器选择
    SP时钟预分频器选择是通过SPCTL 寄存器中的SPR1-SPR0 位实现的
SS如果SSIG 0)
未定义
(1)
时钟周期 12345678
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MOSI(输入DORD = 0
DORD = 1 MSB 654321LSB
LSB 123456MSB
DORD = 0 MSB 654321 LSB
DORD = 1 LSB 123456 MSB
MISO(输出(1)
 SPI 5   SPI 从机传输格式CPHA=1
SPICLK (CPOL = 1)
LSB
MSB
LSB
MSB
时钟周期 1234567
SPICLK (CPOL = 0)
MISO(输入DORD = 0
DORD = 1 MSB
LSB
DORD = 0 MSB
DORD = 1 LSB
MOSI(输出
SS如果SSIG 0)
 SPI 7   SPI 主机传输格式CPHA=1
 SPI 6   SPI 主机传输格式CPHA=0
LSB
MSB
LSB
MSB
时钟周期 1234567
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MISO(输入DORD = 0
DORD = 1 MSB
LSB
DORD = 0 MSB
DORD = 1 LSB
MOSI(输出
SS如果SSIG 0)
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列177
            用串行口扩展I/O 接口
    STC12Cxxxx串行口的方式可用于I/O扩展。如果在应用系统中串行口未被占用那么将它用
来扩展并行I/O 口是一种经济、实用的方法
    在操作方式 时,串行口作同步移位寄存器其波特率是固定的,为 fosc/12fosc 为振荡器频
)。 数据由RXD 端(P3.0出入同步移位时钟由 TXD 端(P3.1输出。发送接收的是
数据,低位在先
    一、用 74LS165 扩展并行输入口
     下图是利用两片 74LS165 扩展二个 位并行输入口的接口电路图
HGFEDCBA
54314 13 12 11
S/L CP
CC
SIN
74LS165
15 16
12Cxxxx
P3.0
P3.1
P1.0
HGFEDCBA
54314 13 12 11
S/L CP
SIN
74LS165
15
10
    74LS165 位并行置入移位寄存器当移位 置入端(S/L)由高到低跳变时并行输入端的数据置
入寄存器 S/L=1且时钟禁止端 15 脚)为低电平时允许时钟输入这时在时钟脉冲的作
用下,数据将由 方向移位
    上图中TXD(P3.1)作为移位脉冲输出端与所有74LS165 的移位脉冲输入端 CP 相连RXDP3.0
作为串行输入端与74LS165 的串行输出端 相连P1.0用来控制 74LS165 的移位与置入而同 S/L 相连
74LS165的时钟禁止端(15 脚)接地,表示允许时钟输入当扩展多个 位输入口时,两芯片的首尾
IN)相连
    下面的程序是从16位扩展口读入组数据每组二个字节), 并把它们转存到内部RAM 20H开始的
单元中
MOV R7#05H 设置读入组数
MOV RO#20H 设置内部RAM 数据区首址
STARTCLR P1.0 ;并行置入数据,S/L=0
SETB P1.0 允许串行移位S/L=1
MOV R1#02H 设置每组字节数即外扩74LS165 的个数
RXDATAMOV SCON#00010000B 设串行方式 允许接收,启动接收过程
WAITJNB RIWAIT 未接收完一帧循环等待
CLR RI RI标志,准备下次接收
MOV SBUF ;读入数据
MOV @R0 送至 RAM 缓冲区
INC R0 ;指向下一个地址
DJNZ R1RXDATA ;为读完一组数据,继续
DJNZ R7START ;5 组数据未读完重新并行置入
…… ;对数据进行处理
10  9
CC
16
104 104
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列178
    上面的程序对串行接收过程采用的是查询等待的控制方式,如有必要,也可改用中断方式。从理论
上讲,按上图方法扩展的输入口几乎是无限的但扩展的越多口的操作速度也就越慢
二、用 74LS164 扩展并行输出口
    74LS164 位串入并出移位寄存器下图是利用74LS164 扩展二个位输出口的接口电路
45610 11 12 13
GND
CLR CP
74LS16
12Cxxxx
P3.0
P3.1
P1.0
CC
14
45610 11 12 13
GND
CLR CP
74LS16
CC
14
    当单片机串行口工作在方式的发送状态时串行数据由 P3.0RXD送出,移位时钟由 P3.1
TXD)送出。在移位时钟的作用下,串行口发送缓冲器的数据一位一位地移入74LS164中。需要指出
的是,由于 74LS164 无并行输出控制端因而在串行输入过程中其输出端的状态会不断变化,故在
某些应用场合 74LS164 的输出端应加接输出三态门控制以便保证串行输入结束后再输出数据
    下面是将RAM 缓冲区30H31H 的内容串行口由74LS164 并行输出的子程序
STARTMOV R7#02H 设置要发送的字节个数
MOV R0#30H 设置地址指针
MOV SCON#00H 设置串行口方式
SENDMOV @R0
MOV SBUF 启动串行口发送过程
WAITJNB TIWAIT 一帧数据未发送完循环等待
CLR TI
INC R0 取下一个数
DJNZ R7SEND
RET
104 104
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列179
    执行软件是微型计算机与通用数字集成电路的主要区别也是微电子技术区别于通用电器和
电子技术的根本特征
    软件是由具有一定意义的指令组成的一台计算机所执行的指令集合就是它的指令系统。指
令系统是计算机厂商定义的,它成为应用计算机必须理解和遵循的标准。每种计算机都有自己专用
的指令系统
    指令常以英文名称或缩写形式作为助记符用助记符表示的指令称为汇编语言用汇编语言
编写的程序称为汇编语言程序
    目前单片机主要使用汇编语言指令系统的学习和应用是使用单片机的重要前提
    STC89 系列单片机与MCS-51系列在软件上完全兼容,编制的汇编语言程序可运行于这两种系
列单片机。也就是说,STC89 系列单片机采用的也是 MCS-51指令系统。本章详细介绍该指令系统及
其编程方法
  指令格式及其符号说明
    指令的表示方法称为指令格式一条指令通常由两部分组成操作码和操作数操作码规
定指令执行什么操作,而操作数是操作的对象。操作数可以是一个具体的数据,也可以是存储数据
的地址或寄存器指令的基本格式如下
操作码 操作数(地址码、寄存器或立即数
     汇编语言编写的程序必须翻译成单片机可执行的机器码。根据机器码的长短,可分为单字节
双字节和字节等不同长度的指令
1. 单字节指令
   指令系统中有些指令的功能很专一而明确不需要具体指定操作数便形成了单字节指令
单字节指令的机器码只有一个字节操作码和操作数同在其中。例如,指令INC DPTR,功能为
数据指针加指令码为
1010       0011 A3H
   有些指令的操作数在工作寄存器 R0R7 中,寄存器的编码可用 位二进制数表示。例如
指令MOV Rn功能是工作寄存器向累加器传输数据,指令码为
1110       1rrr
rrr表示工作寄存器的二进制编码对于不同的工作寄存器单字节的机器码如下表所列
附录          指令系统与程序设计
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列180
指令 指令码(机器码
二进制 十六进制
MOV    1110   1000 E8H
MOV    1110   1001 E9H
MOV    1110   1010 EAH
MOV    1110   1011 EBH
MOV    1110   1100 ECH
MOV    1110   1101 EDH
MOV    1110   1110 EEH
MOV    1110   1111 EFH
 指令 MOV  Rn 指令码
2. 双字节指令
    双字节指令的第一字节是操作码第二字节是操作数例如,指令 MOV  #data,功能
是将立即数传送到指令码为
0111      0100
立即数
例如,指令 MOV  #35H的指令码为7435H
3. 字节指令
    字节指令中,操作码占一字节,操作数占两字节。其中操作数既可以是数据,也可以是
地址。例如,指令ANL direct#data功能是直接地址单元中的内容与立即数进行“与”操
作,结果存于直接地址单元,指令码为
0101      0011
直接地址
立即数
例如,指令ANL  35H#20H的机器码为533520H
   在介绍指令之前先将指令中使用的一些符号意义作简要说明
lRn ——当前工作寄存器 R0R7 n=0 在指令中表示寄存器寻址方式
lRi ——间接寻址的寄存器R0 R1 i=0,1,在指令中表示间接寻址方式
ldirect——位直接地址在指令中表示直接寻址方式寻址范围为00HFFH
l#data——位立即数表示立即数寻址方式
l#data16 ——16位立即数,表示立即数寻址方式
laddr16——16位目的地址只限用于LCALLLJMP指令
laddr11——11位目的地址只限用于ACALLAJMP指令
lrel——相对转移指令中的偏移量 位带符号补码数在指令中表示相对寻址方式
lDPTR——数据指针16
lbit ——内部数据RAM和特殊功能寄存器中的可寻址位
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列181
l——表示累加器
lACC ——直接寻址方式的累加器
l——寄存器
l——进位标志位可作为位处理器的位累加器也称为累加位在指令中代表 CY
l——间址寄存器的前缀标志
l——加在位地址前面,表示该位状态取反
l(X )——某个寄存器或某地址单元中的内容
l(( )) —— 间接寻址单元中的内容
l←——箭头右边的内容传送到箭头左边的存储器单元或寄存器中即表示数据的传送方向
l→——箭头左边的内容传送到箭头右边的存储器单元或寄存器中即表示数据的传送方向
2 寻址方式
    指令执行是都要应用操作数。指令必须指明如何取得操作数,也必须指明程序转移目的地
址。所谓寻址,就是如何指定操作数所在的单元,或者如何指定程序转移的目的地址。根据指定的
方法不同形成了不同的寻址方式MCS-51 指令系统有种不同的寻址方式下面分别介绍
1. 寄存器寻址方式
2. 直接寻址方式
    直接寻址时指令中操作数部分直接给出了操作数地址。例如
    MV 4AH(A)←(4AH
该指令的功能是把片内RAM 4AH 单元的内容送入累加器 指定了地址4AH,也就的到了操作数
    直接寻址中的操作数以存储单元形式出现因此直接寻址方式只能用位二进制数表示的地
址,寻址范围只限于内部RAM,即:
    1) 片内 RAM 128 单元,在指令中直接以单元地址形式给出
   2特殊功能寄存器特殊功能寄存器除了用单元地址形式给出外还可以用寄存器的名称
符号表示。应当指出,直接寻址方式是访问特殊功能寄存器的主要方法。例如
    MOV AP1  (A)←(P1
    MV A90H (A)←(90H
    由于 SFR P1 的地址为 90H两条指令本质上是一样的有相同的机器码都是直接寻址方
式。
3. 寄存器间接寻址方式
   寄存器间接寻址时指令中给出的寄存器内容为操作数地址而不是操作数本身即寄存器
    寄存器寻址时,指令中操作数为某一寄存器的内容。指定了寄存器,就指定了操作数
寻址方式中用符号名称表示寄存器
    寄存器寻址方式所使用的寄存器包括
    1) 工作寄存器R0R7只能寻址当前寄存器组,即由 PSW 中的 RS1 RS0 位的状态对应的
当前寄存器组
   2) 部分特殊功能寄存器,例如A、AB 寄存器对以及数据指针 DPTR 等。
    例如:
    INC R0R0)←(R0+1
其功能是把寄存器R0 的容量加再送回 R0 中。由于操作数在 R0 中,指定了 R0,也就得到了操
作数
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列182
为地址指针
    为区别寄存器寻址和寄存器间接寻址在寄存器间接寻址中应在寄存器的名称前加前缀
例如
    M  R#60H
    MV  A@R1
该指令的功能是将60H单元的内容送入累加器
    2) 外部数据 RAM 空间的 256 个单元。例如:
    M  A@R1
R1中内容指定的外RAM单元内容送入累加器
    DPTR作间址寄存器其形式为@DPTR可寻址外部RAM 64 KB0000HFFFH)。 例如:
    MOVX  @DPTR,A
将累加器的内容传送到由DPTR内容指定的片外RAM16 位地址单元
    堆栈操作指令(PUSHPOP)也应算作是寄存器间接寻址,即以堆栈指针(SP)作间址寄
存器的间接寻址方式只不过SP 不出现在堆栈操作指令中
4. 立即寻址方式
    立即寻址方式是由指令直接给定操作数的方式。例如
    MV  #48H(A)← #48H
其中作为立即数的标志符指令的功能是将数据 48H送入累加器
     位立即数外MCS-51指令系统中还有一条 16 位立即数传送指令,以 #data16
表示16 位立即数。该指令为
    MOV  DPTR#data16
其功能是将16 位立即数送入数据指针DPTR。例如
    MOV  DPTR#1234H
其功能是将12H 送入 DPH34H送入 DPL
5. 变址寻址方式
    变址寻址方式是以程序计数器PC 或数据指针 DPTR 作为基址寄存器,以累加器 作为变址寄
存器,这两者内容之和为有效地址。例如:假定指令执行前(A= 54HDPTR= 3F21H
执行指令
    MVC  @A+DPTR
其功能是将程序存储器3F75H单元的内容读入累加器
    这类寻址方式特别适用于查表DPTR 可指向64KB 存储空间@A+PC 指向以PC 当前值为起始
地址的256个字节单元
    对变址寻址方式说明如下
    1) 变址寻址方式只能对程序存储器寻址或者说它是专门针对程序存储器的寻址方式
    2) 变址寻址指令只有 条,即
    MVC  @A+DPTR
    MC  A@A+PC
    JMP      @A+DPTR
前两条是程序存储器指令最后一条是无条件转移指令
    3) 变址寻址方式中的DPTR 以及 PC 中的内容为无符号数
    4) 尽管变址寻址方式比较复杂但变址寻址的指令却都是单字节指令
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列183
6. 位寻址方式
    位寻址时操作数是二进制数表示的地址其位地址出现在指令中。例如
    CLR  bit
该指令使地址为bit的位单元清
   位寻址的寻址范围如下
    1) 片内 RAM 中的位寻址区。 其单元地址为 20H2FH,共 16 个单元 128位,位地址为
00H7FH对这128 位的寻址可使用直接地址表示
    2) 特殊功能寄存器的可寻址位对这些寻址位在指令中常用以下几种表示方法
l直接使用位地址例如 PSW 中的位 地址为 D5H
l位名称表示法例如PSW的位 F0 标志位可使用F0 表示
l特殊功能寄存器符号名称加位数的表示方法例如PSW的位 可表示成 PSW.5
7. 相对寻址方式
    前面介绍的种寻址方式主要解决操作数的给出问题而相对寻址方式是为解决程序转移而
专门设置的为转移指令所采用
    相对寻址是以 PC 的相对值为基地址加上指令中所给定的偏移量形成有效转换地址。偏
移量是带符号的位二进制数以补码的形式出现。因此,程序的转移范围为+127-128。转
移目的地址可用如下公式表示
            目的地址转移指令所在地址 转移指令字节数 +rel
    例如:
    SJMP  relPC)←(PC+ 2 + rel
执行这条指令时程序转移到指令PC 值加再加rel的方向地址处。其中 为该指令的字节长度
rel 位带符号的补码形式出现
3 指令分类介绍
    MCS-51 指令系统共有 111条指令分为大类
l数据传送类指令29
l算术运算类指令24
l逻辑运算及移位类指令24
l控制转移类指令17
l位操作类指令17)。
1 数据传送类指令
    数据传送操作属于复制性质而不是搬家性质一般传送类指令的助记符号为MOV,通用格式为
                  MOV <目的操作数>,<源操作数
    传送指令中有从右向左传送数据的约定即指令的右边操作数为源操作数表达的是数据的来源
而左边的操作数为目的操作数表达的是传送数据的目的地址
   源操作数可以是:累加器工作寄存器Rn、直接地址 direct、间址寄存器和立即数。目
的操作数可以是累加器工作寄存器Rn、直接地址 direct 和间址寄存器两者只差一个立即数
    在数据传送操作中除了奇偶标志 外,一般不影响程序状态字 PSW指令直接访问 PSW 除外)。
1. 一般传送指令
    (1  以累加器 为目的操作数的传送指令
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列184
MOV  Rn (A )←(Rn
MOV  direct (A)←(direct
MOV  @Ri (A)←(Ri
MOV  #vdata (A)← #data
   (2  以工作寄存器为目的操作数的传送指令
MOV  Rn Rn)←(A
MOV  Rndirect Rn)←(direct
MOV  Rn#data (A)← #data
     以直接地址为目的操作数的传送指令
MOV  direct,A direct)←(A
MOV  directRn direct)←(Rn
     MOV  direct@Ridirect)←(Ri
MOV  direct1direct2direct1)←(direct2
MOV  direct#data; direct)←#data
     以寄存器间接地址为目的操作数的传送指令
MOV  @Ri (( Ri))
     M  @Rdirect(( Ri)) ←(direct
MOV  @Ri#data (( Ri)) #data
       25H10H数据分别送到片内 RAM20H 25H单元;把 CAHP1 口;将P1 口内容
P2口;将RAM20H单元内容送以R0 间址的存储单元
MOV  20H#25H 20H #25H
MOV  25H#10H 25H)←#10H
MOV  P1#0CAH P1)← #0CAH
MOV  P2P1 P2)← P1
MOV  @R020H (( R0)) ←(20H
    操作数的寻址方式如下表所列
       操作数寻址方式
指令 目的操作数 源操作数
MOV  2025直接寻址 立即寻址
MOV  2510直接寻址 立即寻址
MOV  CAH 直接寻址 立即寻址
MOV P2 直接寻址 直接寻址
MOV  @R20间接寻址 直接寻址
2. 16 位地址指针传送指令
     MOV  DPTR#data16 DPTR #data16
    这条指令的功能是将16位常数送入数据指针DPTR。这是MCS-51指令系统中惟一一条16位数
据传送指令DPTRDPHDPL组成。该指令将高位立即数送入DPH 位立即数送入 DPL
例如
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列185
    MOV  DPTR#1992H DPH #19HDPL #92H
也可写成两条位传送指令
MOV  DPH#19H
MOV  DPL#92H
3. 栈操作指令
    栈操作指令有进栈 PUSH 和出栈 POP 两条指令
PUSH  directSP)←(SP+1(( SP)) ←(direct
POP  directdirect)←(( SP))SP)←(SP-1
   栈操作指令的操作数有两种寻址方式SP 间接寻址(隐含在指令中和直接寻址方式
例如
    PUSH  B ;B 为直接寻址方式
     PUSH  DPH DPH 为直接寻址方式
    对于工作寄存器的栈操作,只能使用 Rn 的当前直接地址,而不能用 Rn 名称,因为栈操作指
令不能区别Rn 的当前组别。如果 Rn 工作在组 时,R1 的直接地址为 09H,对 R1 的直接地址为 09H
R1的栈操作应写成PUSH 09HPOP 09H
4. 累加器 数据交换指令
    (1  字节交换指令
    XCH  Rn   Rn
    X  direct   direct
    X  @Ri   (( @Ri))
    该指令的功能是将与源操作数内容互相交换
       设(A=  92HR0=  20H20H=  12H执行指令 XCH  @R0后,则
(A=12H20H= 92H
      半字节交换指令
    XCHD  @Ri  (( Ri))
     这条指令的功能是将中的低 位与 Ri 间址单元内容的低位交换各自的高位不变
       中的内容为58HR0= 20H片内RAM 20H单元的内容为65H,执行XCHD
@R0后,则 的内容为55H,片内 RAM 20H单元内容为68H
      累加器 位与低位相互交换指令
    SWAP    
    例如 中的内容为 ABH,执行上述指令后 中的内容就变为BAH
5. 累加器与外部 RAM 传送指令
    MOVX  A @Ri (A )←(( Ri))
    MOVX  A @DPTR (A)←(( DPTR))
    MOVX  @Ri,A (( Ri)) ←(A
    MOVX  @DPTR,A (( DPTR)) ←(A
    单片机与外部RAM 进行数据交换时只能通过累加器 采用R0 R1作间址寄存器时,在
给定P2 情况下,可寻址外RAM256个单元;采用DPTR 作间址寄存器时可寻址外RAM64KB
空间
6. 累加器 与程序存储器传送指令
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列186
    MOVC   @A+DPTR(A )←(( DPTR))
    M  A @A+PC (A )←(( PC))
    上述两条适龄以DPTR PC 作为基址寄存器,A 中的内容为 位无符号数(A 称为变址寄存
), 将基址寄存器内容与中的内容相加得到一个16位地址将该地址指出的程序存储器单元
的内容送入累加器
    4  程序存储器中有一字形表的首地址为 0198H若要调用表中第一字符则可用下列指
    MOV  DPTR #0198H 设置地址指针
    MOV  A #00H 设置变形首址
    MOVC  A @A+DPTR寻找字形码
    MOVX  @R0 A ;字形码送外字形口
    5  根据累加器的内容(0~3找出由伪令DB 所定义的个字符中的一个
    STARTINC  (A)←(A+1,单字节指令
            MVC A, PC)←(PC+1(A)←(( )+PC)), 单字节指令
            RE ;单字节指令
            DB 29H
            DB 0A2H
            DB 92H
            DB 45H
    D是伪指令,功能是将右边的单字节数据存入其左边标号地址单元内如果DB 左边没有标
号,则DB伪指令的右边字节数据在DB 指令的当前地址连续存放
    该子程序在MOVC指令前面有一条INC 指令,其作用是跳过表格中的RET 指令。如果指令
MOVC所在地址与表格首地址由若干字节隔开就需要在累加器 中加上相应的数目本例中 的取
值限定在~3在调用上述子程序时,若(A= 02H则在执行完这段程序后,A 中的内容为 92H
    P的当前值是指读取MOVC A,@A+PC”后的PC 值,即该指令下面的指令所对应的地址
由于“MOVC A,@A+PC”为单字节指令,将该指令所在地址加即为 PC 当前值指向指令 RET
在地址
2 算术运算类指令
    MCS-51 指令系统具有较强的加、减、乘、除四则运算指令但只有位数据运算指令
没有16 位数据运算指令
1. 加法类指令
      加法指令
    ADD Rn Rn
    A direct (A)←(A)+direct
    A @Ri (A)←(A(( Ri))
    A #data (A)←(A+#data
    上述指令的功能是将累加器中的内容与源操作数相加结果存于
    当相加结果的第位和第位有进位时分别将ACCY否则清
   无符号数相加后,若CY=1表示溢出CY=0,表示无溢出
    对于带符号数相加结果的溢出取决于第 位和第 位。若第 位有进位而第位没进位
或第位没进位而第位有进位,则 OV=1;若第 位和第 位都有进位,或都没进位 OV=0
OV=1 表示两个正数相加而和变为负数或两个负数相加而和变为正数的错误结果
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列187
例如 =0C2HR0=0A9H执行 ADD  R0 指令,过程表示为
                         110 010
                   +   1010 1001
                        1010 101
    运算结果 =6BHAC=0CY=1OV=1 0C2H0A9H是两个无符号
数,则结果是正确的 0C2H 0A9H 是两个带符号的数由于有溢出则表明结果是错误的
因为两个负数相加的结果不可能的到正数
      片内 RAM 40H41H单元分别放两个加数相加结果存放在41H40H单元
    编制程序如下
MOV R0#40H 设置地址指针
MOV  @R0 取第一个加数
INC R0 修改地址指针
ADD  @R0 ;两数相加
DEC R0 修改地址指针
MOV @R0 存放和的低字节
INC R0 修改地址指针
JC LOOP 有进位则转
MOV @R0#00H;存放和的高字节
RET
LOOPMOV @R0#00H;存放和的高字节
RET
    (2  带进位的加法指令
ADDC Rn (A )←(A )+ Rn)+ CY
ADDC direct (A )←(A )+ direct)+ CY
ADDC @Ri (A )←(A )+ (( Ri)) CY
ADDC #data (A )←(A +#data+CY
上述条指令的操作数除了需要加上进位CY外,其余与ADD 条指令的操作相同
7  中的内容为 C3HR0 的内容为 AAHCY=1执行指令ADDC R0的过程为
1100 0011
1010 1010
   1
   1 0110 1110
结果:A 中的内容为 6EHAC=0CY=1OV=1
  指令
INC (A )←(A +1
INC Rn Rn)←(Rn+1
INC direct direct)←(direct+1
INC @Ri (( Ri)) (( Ri)) +1
INC DPTR DPTR)←(DPTR+1
INC 指令是把指定的单元内容加结果仍存原单元中。加 指令除影响奇偶标志 外,运算
结果不影响其他标志位
指令为,当目的操作数是P0P3 口时,数据来自端口锁存器即为SFR), 结果仍写回端
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列188
口锁存器这类以端口为目的操作数的指令被称为 修改 写”指令
8  DPTR 的内容为 12FEH,执行下列指令
INC DPTR DPH 12HDPL FFH
INC DPTR DPH 13HDPL 00H
INC DPTR DPH 13HDPL 01H
  十进制调整指令
DA
这是一条专用指令用于对BCD 码十进制加法运算的结果进行修正MCS-51 指令系列系统
中没有十进制BCD的加法指令只能借助于二进制加法指令然而,二进制数的加法用于十进制
加法运算时,有时会产生错误结果。例如
 6+3=9  8+7=15  8+9=17
0110 1000 1000
0011 0111 1001
1001 1111    1 0001
其中:1 的运算是正确的因为 BCD码就是1001;2 的运算结果是不正确的因为BCD码没
1111;3 的运算结果也是错误的因为运算结果是11而不是17
出错的原因在于,BCD 码是位的二进制编码 位二进制编码共有 16 个编码 BCD
码只用了其中的10个,剩下的个没有用。通常把这个没有用的编码1010101111001101
11101111)称为无效码
BCD码的加法运算中凡是结果已进入或跳过无效编码区时其结果都是错误的。相加
的结果大于 说明已进入无效编码区相加的结果有进位说明已跳过无效编码区但不管
是哪一种出错情况相加结果都比正确值小 出错是由 个无效编码造成的
为此 BCD码运算结果进行 调整,才能得到正确的结果 的条件是
  0  >9 或(AC=1
  4  >9 或(CY=1
十进制调整指令不影响溢出标志
9 设累加器的内容为 1000 1000B(即 BCD88), 工作寄存器R5 的内容为
1001  1001B(即  BCD99),CY=1执行下列指令
ADDC R5
DA
第一条加法指令执行后 中的内容为 0010  0010BCY=1AC=1。然后执行
十进制调整指令DA  。因为(CY=1AC=1所以高位和低位均自动加调整
(A=1000  1000 BCD88
   R5=1001 1001 BCD99
+)     1
   1 0010 0010 BCD122
调整+)   0110 0110 BCD66
   1 1000 1000 BCD188
以上所讲的十进制调整的原理和方法在具体操作时是通过片内硬件逻辑电路实现的
10 设一个加数存于40H41H 单元,另一个加数存于42H43H 单元,和存于40H
41H单元。4 BCD 码的加法程序如下(假定相加的结果仍为 BCD 码)
MOV R0#40H R0指向加数低字节
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列189
MOV R1#42H R1指向另一个加数低字节
MOV @R0
ADD @R1 ;个位、十位数相加
DA 十进制调整
MOV @R0,A 存低位和于 40H 单元
INC R0 ;指针指向百位、千位数
INC R1
MOV @R0
ADDC @R1 ;百位、千位数相加
DA
MOV @R0,A 存高位和于 41H 单元
RET
2. 减法类指令
  带借位减法指令
SUBB Rn (A )←(A )—(Rn)—(CY
SUBB direct (A)←(A)—(direct)—(CY
SUBB @Ri (A)←(A)—(( Ri)) —(CY
SUBB #data (A)←(A)—#data—(CY
如果第位借位,则(CY=1,否则(CY=0;若第 位有借位,则(AC=1
否则(AC=0溢出标志 OV 用于带符号的整数减法若第 位和第 位中只有一位有借位,而另一
位没有借位,则(OV=1OV=1 表示一个正数减去一个负数结果为负数或一个负数减去一个
正数为正数的错误结果当无符号数运算时溢出标志无意义
11 设累加器中的内容为0ECH寄存器R5中的内容为75HCY=1执行指令
SUBB R5其运算操作过程为 1110 1100
-) 0111 0101
0111 0111
-)   1=CY
0111 0110
结果:(A=76HCY=0AC=0OV=1
  指令
DEC (A )←(A -1
DEC Rn Rn)←(Rn-1
DEC direct direct)←(direct-1
DEC @Ri (( Ri)) (( Ri)) -1
指令的功能是指令单元的内容减结果存于原单元中除了标志 外,本指令不影响其
他标志位
当减指令的目的操作数是P0P3 端口时,该指令属于“读 修改 写”指令,即将端口
数据读出,减 又送回原端口
  乘法指令
3. 乘法和除法指令
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列190
MUL AB 158  )←(A )×(A
的无符号数相乘,16 位乘积的低位存于,高 位存于乘法指令影响 个标
志位CY=0;若(B=0,则(OV=0,若若(B)≠ ,则(OV=1;P 标志仍按中的内容
设置
  除法指令
DIV AB (A )←商,(B )←余数
中的位无符号数除以中的8为无符号数,商存于 余数存于
DIV操作影响 个标志位CY=0(B=0(即非法)时(OV=1,表明除法没有意义
而其他情况下(OV=0 标志仍取决于的内容
  逻辑运算及移位类指令
MCS-51指令系统能对位和字节操作数进行基本的逻辑运算下面介绍字节操作数的逻辑运
算,有关位操作将在后面介绍
1.逻辑“与”运算指令
ANL Rn (A )←(A )∧(Rn
ANL direct (A)←(A)∧(direct
ANL @Ri (A)←(A)∧(( Ri))
ANL #data (A)←(A)∧#data
ANL direct,A direct)←(direct)∧(A
ANL direct#data direct)←(direct)∧#data
12  已知(A=1010 1101BR4=0110 0101B执行指令ANL R4 的过程为
(A)=1010 1101
∧)R4=0110 0101
(A)=0010 0101
2.逻辑“或”运算指令
ORL Rn (A )←(A )∨(Rn
ORL direct (A)←(A)∨(direct
ORL @Ri (A)←(A)∨(( Ri))
ORL #data (A)←(A)∨#data
ORL direct,A direct)←(direct)∨(A
ORL direct#data direct)←(direct)∨#data
13  将累加器的高 位送到 P1 口的高 位, P1 口的低位保持不变程序如下
MOV R2 暂存 的内容
ANL #0F8H ;取 的高
ANL P1#07H ;取P1 的低
ORL P1 组合 P1 口内容
MOV R2 恢复的内容
3.逻辑“异或”指令
“异或”操作也是按位进行的当两个操作数相同时结果为 不同时,结果为
运算符号为⊕。
XRL Rn Rn
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列191
XRL direct (A )←(A )⊕(direct
XRL @Ri (A)←(A)⊕(( Ri))
XRL #data (A)←(A)⊕#data
XRL direct,A direct)←(direct)⊕(A
XRL direct#data direct)←(direct)⊕#data
使用“异或指令可判别两个数是否相等若相等则结果为全利用本指令可对目的操作
数的某些位取反或保留:用 去“异或的位,则取反;用 去“异或的位,则保留
MCS-51 指令系统中的逻辑“与”“或”“异或”运算时,当目的操作数为P0P3
端口时,指令属于“读 修改 写”指令
4. 累加器清 及取反指令
CLR #00H
CLR (A)←(A
MCS-51指令系统没有求补”指令,若需要进行“求补”运算,可用“取反加”运
算规则实现
5. 移位指令
MCS-51指令系统的移位操作只对累加器进行,有左、右小循环和左右大循环
左小循环 RL
右小循环 RR
左大循环 RLC
右大循环 RRC
以上条指令的操作过程如下图所示
A7                A
A7                A
A7                A
CY
A7                A
CY
RL
RLC
RR
RRC
  移位指令示意图
4  控制转移类类指令
程序的顺序执行是靠PC自动加实现的。要改变程序的执行顺序实现分支转向,应通过
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列192
强迫改变PC 值的方法来实现这就是控制转移类指令的基本功能
共有两类转移无条件转移和有条件转移
1. 无条件转移指令
  长转移指令
LJMP addr16 PC addr16
这是一条字节指令,指令执行后把16位地址(addr16)送入PC从而实现了程序的转移
因为转移范围大可达64KB,故称为“长转移
  绝对转移指令
LJMP addr11 PC)←(PC+2PC10addr11
AJMP指令提供 11 位地址去替换 PC 的低 11 位地址内容,形成新的 PC 值,即转移目的地址
AJMP是一条双字节指令指令的格式为
第一字节 A10 A9 A8
第二字节 A7 A6 A5 A4 A3 A2 A1 A0
   指令提供的11 位地址中,A7A0 在第二字节,A10A8 则占据第一字节的高 位,而指令
操作码只占第一字节的低 位(00001)。 AJMP 指令的功能是构造程序转移目的地址,实现程序
的转移。其构造新地址的方法是以指令提供的11位地址(A10A0去替换PC的低11位,
形成新的PC 值,即转移目的地址。但要注意,被替换的PC 值是AJMP 指令的地址加 PC
即指向AJMP下条指令的PC值,称为PC当前值。例如,在程序存储器的2070H单元存放一条绝对转
移指令
2070H AJMP NEWAD
标号地址NEWAD 的低 11 位地址为16AH=001 0110 1010B构成的指令代码为216AH,即
程序计数器PC 的内容为0010 0000 0111 0010B=2072H 11 位绝对地址16AH
代替PC中的低11 位,形成的转移目的地址为0010 0001 0110 1010B=216AH
addr11是无符号整数,最小值为 000H,最大值为 7FFH因此绝对转移指令所能转移的最大范
围是2KB。对于“2070H AJMP NEWAD”指令,其转移范围是2000H27FFH
  短转移指令
SJMP rel
SJMP是相对寻址方式的双字节指令其中rel为相对偏移量指令的功能是按计算得到转移
目的地址,实现程序转移。计算公式为
目的地址PC+2+rel
其中,PC 称为源地址,即指令“SJMP rel所在程序单元的地址偏移量rel 是一个带符号
位二进制补码数如果rel 为正,则向前转移;如果 rel 为负,则向后转移计算偏移量的公
式为 rel= 目的地址源地址+2
若相对转移指令是字节指令则偏移量为
rel=目的地址源地址 +3
例: 835AH 处有SJMP 指令
835AH SJMP 35H
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列193
源地址=835AHrel=35H 且为正则目的地址 =835AH+02H+35H=8391H即程序转移到
8391H地址
例:  835AH 处的SJMP指令为
835AH SJMP 0E7H
rel=0E7H且为负数19H 的补码因此目的地址 =835AH+02H-19H=8343H即程序转移到8343H
处。 rel=FEH为负数 02H的补码,则目的地址=PC+02-02=PC,即目的地址和指令源地址相
同,程序就在该指令上踏步,即
HERESJMP HEREHERESJMP
MCS-51指令系统中,以 代表指令源地址
rel=00H则目的地址 =PC+02H即目的地址为下一条指令地址。如:
SJMP 00H
NEXTMOV #00H
程序转移到NEXT 处。
  变址寻址转移指令
JMP @A+DPTR PC)←(A )+ DPTR
DPTR内容为基础(称为基址), 中的内容作为变址。当 DPTR 固定时,A 中赋值不同
可以实现程序的对分支转移。其计算公式为
转移目的地址 DPTR
这种由基址寄存器DPTR和变址寄存器(A共同实现的间址方式称为变址寻址
2. 条件转移指令
执行条件转移指令时如指令中规定的条件满足则进行程序转移;否则,程序顺利执行
  累加器判零转移指令
JZ rel ;若(A =0,则(PC)←(PC+2+rel即转移
;否则(PC)←(PC+2即顺序执行
JNZ rel ;若(A )≠ ,则(PC)←(PC+2+rel即转移
;否则(PC)←(PC+2即顺序执行
上述两条指令均为双字节指令第一条指令转移条件是(A =0第二条指令转移条件是
中的内容为转移指令前面最后一条指令的执行结果。单片机的程序状态字PSW中没有零
标志,只能用累加器的内容为零非零作为判断条件
  比较条件转移指令
比较条件转移指令是把两个操作数进行比较以是否相等作为条件来控制程序转移共有
条指令
CJNE #datarel ;累加器内容与立即数不等则转移,否则顺序执行
CJNE directrel 累加器内容与内RAM 中指定单元内容不等则转移否则顺序执行
CJNE Rn#datarel ;工作寄存器内容与立即数不等则转移,否则顺序执行
CJNE @Ri#datarel ;内部 RAM中指定单元间址形式内容与立即数不等则转移否则顺序执行
上述条指令是字节指令具有数值比较和程序转移两方面功能
两个操作数比较结果影响CY 标志但不影响操作数中的内容当左操作数右操作数时
CY=0程序顺序执行当左操作数右操作数时CY=0程序转移执行当左操作数右操作
数时CY=1,程序转移执行
  条件转移指令
这是一组把减与条件转移两种功能结合在一起的指令共有两条
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列194
l寄存器减条件转移指令(双字节指令
DJNZ Rnrel Rn)←(Rn-1
若(Rn)≠ 0,则(PC)←(PC+2+rel即程序转移
若(Rn=  ,则(PC)←(PC+2即程序顺序执行
l直接寻址单元减条件转移指令 字节指令
DJNZ directreldirect)←(direct-1
若(direct)≠ 0,则(PC)←(PC+  3  +  rel,即程序转移
若(direct=  ,则(PC)←(PC+3即程序执行
这两条指令主要用于控制程序循环如预先把寄存器或内部RAM单元赋值循环次数,利用减
条件转移指令以减后是否为作为转移条件即可实现按次数控制循环
例: 将外部RAM 地址为1100H11FFH256个单元清试编制实现程序
MOV R7#00H ;置计数初值
MOV A, #00H
MOV DPTR#1100H ;清 单元首地址
LOOPMOV  @DPTR,A
INC DPTR
DJNZ R7LOOP 计数值减不为则循环
RET ;返回
    从主程序转向子程序的指令称为子程序调用指令从子程序返回主程序的指令称为返回指令
调用指令与钻仪指令的主要区别是转移指令不保存返回地址,而子程序调用指令在转向目的
地址的同时必须保留返回地址称为断点地址), 以便执行返回指令时回到主程序断点的位置。通
常采用堆栈技术保存断点地址这样可以允许多重子程序调用在子程序中再次调用子程序)。
(1 )绝对调用指令(双字节指令
ACALL addr11 PC)←(PC+2SP)←(SP+1SP)←(PC
SP)←(SP+1SP)←(PC15
PC10addr11PC1511 保留
该指令格式为
3.子程序调用及返回指令
第一字节 A10 A9 A8
第二字节 A7 A6 A5 A4 A3 A2 A1 A0
指令代码中提供了子程序入口地址的低11 位。这 11 位地址的 A7A0 占据指令的第二字节
A10A8 占据指令的第一字节的高 位, 位为操作码。指令的调用范围为 2KB
为了实现直程序调用该指令共完成两项操作
断点保护  断点保护是通过自动方式的堆栈操作实现的即把加 以后的 PC 值(称为 PC
当前值自动送入栈区保存起来待子程序返回时再送回PC
构造目的地址  目的地址的构造是在PC 的基础上以提供的 11 位地址取代PC当前值
中的低11 位,PC 的高 位保持不变
例: 在程序存储器8100H单元处有一条绝对调用指令确定子程序目的地址
8100H ACALL 48FH
由于48FH=0100 1000 1111B,即addr11的高 位(A10 A9 A8=100因此指令第一字
节为91H,第二字节为8FH,即机器码为918FH
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列195
PC的当前值PC=8102H=1000 0001 0000 0010指令提供的低 11 位地址替换PC中的低11
后,形成的目的地址是
1000 0100 1000 1111B=848FH
即被调用的子程序入口地址为848FH本指令的地址为8100H,不变的高 位是 1000B,因此本指
令的调用范围是8000H87FFH(2 KB).
(2 长调用指令 字节指令
ACALL addr16 PC)←(PC+3SP)←(SP+1SP)←(PC
SP)←(SP+1SP)←(PC15
PC addr16
子程序入口地址在指令中直接给出指令执行后断点进栈保存,addr16作为子程序入口地址
本指令的调用范围是64KB(0000HFFFH),使用比较方便 字节指令较ACALL指令占有较多的存
储空间
18  已知下列程序段
ORG 0100H
MOV SP,#60H
……
ORG 0200H
STARTLCALL MIR
……
RET
MIR EQU 8100H
END
程序执行结果SP=62H61H=03H62H=02HPC=8100H
(3 返回指令
l子程序返回指令
RETPC15←(SPSP)←(SP-1PC
←(SPSP←(SP-1
l中断返回指令为
RET PC15←(SPSP)←SP-1PC
SPSP)←SP-1
子程序返回和中断返回指令的功能都是从堆栈中取出16位断点地址送PC使子程序返回主
程序。RET 指令安排在子程序出口处RETI 指令安排在中断服务程序出口处
此外,RETI 指令还具有清除中断响应时被触发的优先级状态开放较低级中断和恢复中断逻
辑等功能
19  已知(SP=62H62H=07H61H=30H执行 RET 指令后,其结果是
SP=60HPC=0730H CPU0730H 处开始执行程序
4.空操作指令
NOP PC)←(PC+1
空操作指令也是一条控制指令控制CPU不做任何操作只消耗一个机器周期的时间
操作指令是单字节指令依次执行后PC 时间 延续一个机器周期NOP指令常用于程序的等待
或时间的延迟
位操作又称位处理就是以位bit为单位进行的运算和操作位变量也称为布尔变量或开关
变量
  位操作类指令
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列196
MCS-51 指令系统适用位操作的地址空间是片内RAM 20H2FH 单元(位地址为00H7FH
以及SFR 区中可寻址的位
1.位传送指令
MOV bit CY)←(bit
MOV bit,C bit)←(CY
bit表示位地址位传送就是可寻址的位与 CY 之间的相互传送由于没有可寻址位之间的
直接传送指令因此位之间无法实现直接传送如果需要位之间传送必须以CY 作中介实现
例:将位地址为20H 的内容传送到位地址 5AH编制程序如下
MOV 10H,C 暂存 CY 内容
MOV 20H 20H位送 CY
MOV 5AH,C CY 5AH
MOV 10H 恢复CY内容
2.位置位和复位指令
SETB CY
SETB bit bit)←
CLR CY)←
CLR bit bit)←
3.位运算指令
位运算都是逻辑运算,有“与”“或”“非”3 种,共 条指令
ANL bit CY)←(CY)∧(bit
ANL /bit CY)←(CY)∧(bit
ORL bit CY)←(CY)∨(bit
ORL /bit CY)←(CY)∨(bit
CPL CY)←(CY
CPL bit CY)←(bit
/bit表示位中内容的“非”,运算后 bit 中的内容不取反,保持原内容不变
在位操作指令中没有位的异或运算,需要时可由上述多条位操作指令实现。此外
通过位逻辑运算可对各种组合逻辑电路进行模拟即用软件方法来获得组合电路的逻辑功能
21 用位运算指令实现“异或”操作D=E
由于D=EB=EB+EB,实现的程序如下
MOV
ANL /ECY)← EB
MOV
MOV
ANL /BCY)← EB
ORL EB+EB
MOV D=EB+EB
4.位控制转移指令
位控制转移指令就是以位的状态作为实现程序转移的判断条件
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列197
JC rel ;若(CY=1,则(PC)←(PC+2+rel,即转移
;若(CY=0,则(PC)←(PC+2即程序顺序执行
JNC rel ;若(CY=0,则(PC)←(PC+2+rel,即转移
;若(CY=1,则(PC)←(PC+2即程序顺序执行
bit状态为条件的转移指令 字节指令
JB bitrel ;若(bit=1,则(PC)←(PC+3+rel即转移
;若(bit=0,则(PC)←(PC+3,即程序顺序执行
JNB bitrel ;若(bit=0,则(PC)←(PC+3+rel,即转移
;若(bit=1,则(PC)←(PC+3,即程序顺序执行
JBC bitrel ;若(bit=1,则(PC)←(PC+3+rel,即转移,且同时伴随着清 bit位,
即(bit=0 ;若(bit=0,则(PC)←(PC+3,即程序顺序执行
JBC 指令中,若可寻位为 时,则转移,并同时清该位。当 bit P0P3 端口中某一位
时,该指令称为“读 修改 写”指令
状态为条件的转移指令双字节指令
4 汇编语言程序设计
用助记符表示的指令就是计算机的汇编语言每一条指令就是汇编语言的一条语句
所谓程序设计就是编写计算机程序汇编语言程序设计就是使用汇编指令来编写计算机程序
1  汇编语言的特点及其语句格式
1.汇编语言的特点
汇编语言有以下特点
) 助记符指令与机器指令一一对应所以用汇编语言编写的程序占用存储器空间小,运
行速度快可编写出最优化程序
汇编语言是面向计算机的汇编语言的程序设计人员必须对计算机硬件有相当深入的了解
) 汇编语言能直接访问存储器及接口电路也能处理中断因此汇编语言程序能直接管理
和控制硬件设备
各种计算机都有自己的汇编语言不同计算机的汇编语言之间不能通用因此汇编语言缺
乏通用性程序不易移植
2.汇编语言的语句格式
各种计算机汇编语言的语句格式及语法规则基本相同MCS-51 汇编语言的语句格式为
标号操作码][目的操作数],源操作数注释
其中每部分也称为字段。各部分之间用一个空格或字段分界符分隔。常用的字段分界符有冒号
“:”、逗号“,”和分号;”
(1 )标号
标号用来说明指令的地址用于其他语句对该句的访问标号有以下规定
标号由 个字母和数符组成字母打头,冒号“:”结束,中间允许数字符号
标号中的字符个数不超过 个,若超过 个,则以前面的 个字符有效后面的字符不起作用
不能用本汇编语言已经定义的符号作为标号如指令助记符伪指令以及寄存器的符号名
称符同一标号在一个程序中只能定义一次不能重复定义
一条语句可以有标号也可以没有标号取决于本程序中有无语句访问这条语句
(2 )操作码
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列198
操作码是汇编语句格式中惟一不能空缺的部分用于规定语句执行的操作内容
(3 )操作数
操作数用于表明指令操作的数据或数据存储地址操作数可以是空白也可以是一项
项,各操作数之间用逗号分开MCS-51 指令系统的操作数有寄存器立即数直接、间接等
种寻址方式
操作数与操作码之间用空格分开
(4 )注释
注释不属于语句的功能部分只是对语句的解释说明只要用“;”号开头即表明
以下为注释的内容。使用注释可使程序文件编制显得更加清楚,帮助程序人员阅读程序。注释可
有可无长度不限一行不够时可以换行接着写但换行时要注意在开头使用“;”号。
(5 )分界符
分界符(分隔符)用于把语句格式中的各部分隔开,以便区分,包括空格、冒号
号或逗号等多种符号
冒号(:)——用于标号之后
空格( )——用于操作码和操作数之间
分号(;)——用于注释之前
逗号(,) ——用于操作数之间
3.汇编语言程序设计的特点
汇编语言程序设计有以下特点
1) 在程序中要对存取数据的存储器单元地址以及寄存器等作出明确分配
2) 设计人员对单片机应用系统的硬件结构要有详细了解以便在程序中熟练使用
3) 设计程序要尽量采用模块化结构便于阅读和修改
) 在满足工艺要求和便于阅读的基础上尽量选用字节少工作进行效率高的指令和结
构形式
2  汇编语言程序的基本结构形式
一般把程序结构分为种形式顺序结构分支结构和循环结构
1.顺序结构
顺序结构是最简单的程序结构在顺序程序中无分支循环和调用子程序程序是逐条顺
序执行的
22 被加数存于片内RAM 32H31H 30H加数存于片内RAM 35H34H 相加
之和存于片内RAM  32H31H 30H进位存于 00H 单元,试编制程序
START:  MOV R0#30H 被加数低字节地址
   MOV R1#33H ;加数低字节地址
   MOV @R0
   ADD @R1 ;低字节相加
   MOV @R0,A 存低字节相加结果
   INC R0
   INC R1
   MOV @R0
   ADDC @R1 ;中间字节相加
   MOV @R0,A 存中间字节相加结果
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列199
   INC R0
   INC R1
   MOV @R0
   ADDC @R1 ;高字节相加
   MOV @R0,A 存高字节相加结果
   CLR
   ADDC #00H
   MOV 00H,A 存进位
   RET
2.分支结构
分支结构是通过转移指令实现的根据程序的功能特点又可分为单分支程序、多分支
程序等
23 假定在外RAM 2000H2001H2002H 个连续单元中2000H 2001H 单元存放
着两个无符号数要求找出其中较大者并存于 2002H单元。其程序如下
ORG 0100H
STARTCLR
MOV DPTR#2000H ;设置数据指针
MOVX @DPTR ;取第一个数
MOV R2 暂存于 R2
INC DPTR 数据指针加
MOVX @DPTR ;取第二个数
SUBB R2 ;两数比较
JNC LOOP1 第二个数大则转LOOP1
XCH R2 第一个数大则交换
LOOP0INC DPTR
MOVX @DPTR 存大数
RET
LOOP1MOVX @DPTR
SJMP LOOP0
3.循环结构
循环是为了重复执行一个程序段在汇编语言中可以通过条件判断循环是否结束
  将内部 RAM 20H 为起始地址的数据串(最大长度为 32 字节)传送到外部 RAM
2000H为首地址的区域直到发现“¥” 字符的 ASC码为止其程序如下
MOV R0#20H ;内 RAM 数据串首地址
MOV DPTR#2000H ;外 RAM 数据串首地址
MOV R7#20H ;最大数据串长度
LOOP0MOV R0
XRL #24H 判断是否为“¥”字符
JZ LOOP1
MOV @R0
MOVX @DPTR
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列200
INC R0
INC DPTR
DJNZ R7LOOP0
LOOP1RET
5 汇编语言的伪指令与汇编
用指令系统编写的汇编语言程序称为源程序必须将其翻译成机器码称为目标程序),
单片机方可执行。源程序转换成目标程序的过程是由通用计算机执行一种特定的翻译程序(称为
汇编程序自动完成的这个翻译过程称为汇编
1  汇编语言的伪指令
源程序中应有向汇编程序发出指示信息告诉汇编程序如何完成汇编工作的控制命令
之为伪指令伪指令具有控制汇编程序的输入输出定义数据和符号条件汇编和分配存储
空间等功能不同的汇编语言的伪指令也有所不同但一些基本的东西却是相同的
伪指令是由程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。只有在汇编
前的源程序中才有伪指令汇编后得到的目标程序机器码中没有伪指令相应的机器代码
下面介绍MCS-51汇编语言程序中常见的伪指令
1.ORG汇编起始地址命令
在汇编语言源程序的开始通常都要用一条ORGOrigin伪指令规定程序的起始地址
命令格式为
标号ORG 地址
其中标号是选择项根据需要选用地址项通常为 16 绝对地址但也可以使用标号或表达
式。例如ORG 8000H
STARTMOV #00H
……
即规定标号START代表地址8000H,目标程序的第一条指令从8000H开始
2.END 汇编终止命令
ENDEND of  assembly是汇编语言源程序的结束标志在整个源程序中只能有一条
END 命令,且位于程序的最后如果 END 命令出现在中间则其后面的源程序汇编时将不予处理
命令格式为
标号END
命令中的标号是选择项这个标号应是源程序第一条指令的符号地址。例如
ORG 8100H
STARTMOV #00H
MOV R7#10H
MOV R0#20H
LOOPMOV @R0,A
INC R0
DJNZ R7LOOP
RET
END
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列201
3.EQU 赋值命令
EQUEquate命令用于给标号赋值赋值以后其符号值在整个程序中有效。命令格
式为 字符名称EQU 赋值项
其中赋值项可以是常数、地址、标号或表达式其值为 位或 16 位而进制数赋值以后的字符
名称既可以作立即数使用也可以作地址使用。例如
ORG 6000H
STARTMOV R7#05H
LOOPLCALL DELAY
DJNZ R7LOOP
RET
DELAY EQU 1880H
END
4.DB定义字节命令
DBDefine  Byte命令用于从指定的地址开始在程序存储器的连续单元中定义字节数
据。命令格式为
标号]DB  [8位数据表
字节数据可以是一字节常数或字符或用逗号分开的字符串或用引号括起来的字符串
例如
DBHow are you?”
把字符串中的字符按ASCⅡ码存于连续的ROM单元中
常使用本命令存放数据表格例如存放数码管显示的十六进制数的形码可使用多条DB
令定义
DB 3FH06H5BH4FH
DB 66H6DH7DH07H
DB 7FH6FH77H7CH
DB 0C0H0F9H0A4H0B0H
5.DW 定义字命令
DWDefine  Word命令用于从指定地址开始在程序存储器的连续单元中定义 16 位的数
据字。命令格式为
标号]DW   [16 位数据表
存放时,数据的高位在前(低地址), 位在后(高地址)。 例如
DW AA 存入 41H41H
DW “A” 存入 00H41H
DW ABC 不合法,因超过两个字节
DW 100H1ACH814 按顺序存入01H00H01HACHFCHDCH
DB DW定义的数据表数的个数不得超过 80 个。如果数据的数目较多时可使用多个定
义命令。在 MCS-51 程序设计中,常以 DB 定义数据,以 DW 是定义地址
6.DS 定义存储区命令
DSDefine  Storage命令用于从指定地址开始保留指定树木的字节单元作为存储区
供程序运行使用。汇编时,这些单元不赋值。命令格式为
[标号] DS   [16 位数据表
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列202
例如
ADDTAL  DS 20
从标号ADDTBL带表的地址开始,保留20 个连续的地址单元。又例如
ORG 8100H
DS 08H
8100H地址开始,保留个连续的地址单元
注意  DBDW DS 命令只能对程序存储器使用而不能对数据存储器使用
6.BIT位定义命令
本命令用于给字符名称赋以位地址。命令格式为
字符名称BIT 位地址
其中位地址可以是绝对地址也可以是符号地址即位符号名称)。 例如
AQ BIT P1.0
P1.0的位地址赋给变量AQ。在其后的编程中,AQ就可以作为位地址(P1.0)使用
2  汇编语言的汇编
将用助记符编写的源程序转换成机器码的过程称为汇编汇编分为手工汇编和机器汇编
对于简单的应用程序可以通过查表翻译指令的方法将源程序翻译成机器码称之为手工汇
由于手工汇编是按绝对地址进行定位所以手工汇编时要根据转移的目标地址计算转移指令
的偏移量,而且容易出错。此外,对于汇编后的目标程序,如须增加、删除和修改指令,就会引起
以后各指令地址的改变,转移指令的偏移量也要重新计算。因此,手工汇编不是理想的方法,通常
只用于小的程序
编写完单片机的源程序之后由于单片机本身软硬件资源所限无法由单片机本身自动汇编
机器汇编), 只能借助于通用计算机对源程序进行汇编
使用一种计算机的汇编程序去汇编另一种计算机源程序,具体说就是运行汇编程序进行汇编
的是一种计算机,而运行汇编得到目标程序的则是另一种计算机。这种使用一种计算机的汇编程序
去汇编另一种计算机的源程序的汇编过程被称为交叉汇编单片机的机器汇编就是交叉汇编
在交叉汇编之前,一般还要借助于通用计算机进行单片机的程序设计。通常使用编辑软件进
行源程序的编辑以形成一个由汇编指令和伪指令组成的源程序文件这个过程被称为机器编辑
交叉汇编之后,再使用串行通信方法,把汇编得到的目标程序传送到单片机,进行程序的调
试和运行
机器编辑交叉编辑串行发送,这 个过程构成了单片机软件设计的 个基本步骤
源程序编写如下
ORG 8000H
STARTMOV R0#20H
MOV R7#07H
CLR F0
LOOPMOV A, @R0
MOV 2BH,A
INC R0
MOV 2AH@R0
CLR
SUBB A, @R0
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列203
JC NEXT
MOV @R02BH
DEC R0
MOV @R02AH
INC R0
SETB F0
NEXTDJNZ R7LOOP
JB F0START
HERESJMP
END
手工汇编结果如下表所列
   手工汇编结果
目标程序部分 源程序部分
地址 机器码 标号 助记符指令 备注
8000 7820 STARTMOV   20
8002 7F07 MOV   07
8004 C2D5 CLR   F0
8006 E6 LOOPMOV   @R0
8007 F52B MOV   BH
8009 08 INC   R0
800A 862A MOV  2AH@R0
800C C3 CLR   
800D 96 SUBB @R0
800E 4008 JC   NEXT 偏移
8010 A62B MOV  @R02BH
8012 18 DEC   R0
8013 A62A MOV  @R02AH
8015 08 INC   R0
8016 D2D5 SETB   FO
8018 DFEC NEXTDJNZ    LOOP 偏移
801A 20D5E3 JB   START 偏移
801D 80FE HERESJMP   偏移
偏移的计算
rel1= 目的地址源地址 +2=8018H-800EH+2=08H
偏移的计算
rel2= 目的地址源地址 +2=8006H-8018H+2=-14H
-14H补码 =ECH
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列204
偏移的计算
rel3= 目的地址源地址 +2=8000H-801AH+3=-1DH
-1DH补码 =E3H
偏移的计算
rel4= 目的地址源地址 +2=801DH-801DH+2=-2H
-2H)补码=FEH
6 汇编语言程序设计举例
  算术运算程序
1.加、减运算程序
(1 )不带符号的多字节数加法
 设有两个字节的二进制数分别存放在以30H 50H 为起始地址的单元中(先
存放低字节)。 求这两个数的和并将和存放在以30H为起始地址的单元中试编制程序
程序如下ORG 2000H
JAZMOV R0#30H ;指向加数最低位
MOV R1#50H ;另一加数最低位
MOV R2#04H 字节个数存于R2
LCALL JAFA ;调用加法子程序
JC OVER 有进位则转出
MOV 34H#00H ;无进位清最低字节单元
SJMP HERE
OVERMOV 34H#01H 最高字节单元为01H
HERESJMP HERE
ORG 1000H
JAFACLR
JAADDMOV A, @R0 ;取出加数一个字节
ADDC A, @R1 ;加上另一个数的一个字节
MOV @R0 保存和
INC R0 ;修改加数的地址
INC R1
DJNZ R2JAADD ;没加完则继续
RET
不带符号的两个多字节数减法
  设有两个 字节无符号数分别存于内 RAM 单元中低字节在前高字节在后
R0 指定被减数单元地址,由 R1指定减数单元地址要求差值存放在原被减数单元中假定最高字
节没有错位
程序如下CLR
MOV R7#N 设定 字节
LOOPMOV @R0 ;从低位取被减数字节
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列205
SUBB @R0 ;两位数减
MOV @R0,A 保存差
INC R0
INC R1
DJNZ R7LOOP
RET
(3 带符号数加减运算
对于带符号数的减法运算只要将减数的符号位取反就可把减法运算按加法运算处理
对于带符号数的加法运算首先要进行两数符号的判定如果两数符号相同应进行两数相
加,并以被加数符号为结果符号
如果两数符号不同应进行两数相减如果相减的差为正则差即为最后结果并以被减数
符号为结果符号如果相减的差为负则应将其差值取补并把被减数的符号取反作为结果符号
27 假定20H21H以及22H23H分别存放两个16位的带符号二进制数其中20H
22H的最高位为两数的符号位请编写带符号双字节二进制数的加减法程序 BUSB为减法程序入
口,以BADD为加法程序入口,以内 RAM  24H 25H保存运算结果
程序如下
BUSBMOV 22H 取减数高字节
CPL ACC.7
MOV 22H,A 减数符号位取反进行加法
BADDMOV 20H ;取被加数
MOV ACC.7
MOV F0 被加数符号位存于F0
XRL 22H ;两数高字节“异或
MOV ACC.7 ;两数同号(CY=0,异号(CY=1
MOV 20H ;取被加数
CPL ACC.7 被加数高字节符号位清
MOV 20H 取其数值部分
MOV 22H 取加数
CLR ACC.7 加数高字节符号位清
MOV 22H 取其数值部分
JC JIAN 两数异号转JIAN
JIAMOV 21H 两数同号进行加法
ADD 23H 低字节相加
MOV 25H,A 保存低字节和
MOV 20H
ADDC 22H ;高字节相加
MOV 24H,A 保存高字节和
JB ACC.7QAZ符号位为 转溢出处理
QWEMOV FO 结果符号处理
MOV ACC.7,C
MOV 24H,A
RET
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列206
JIANMOV 21H 两数异号进行减法
CLR
SUBB 23H ;低字节相减
MOV 25H,A 保存差
MOV 20H
SUBB 22H ;高字节相减
MOV 24H,A 保存差
JNB ACC.7QWE没借位转 QWE
BMPMOV 25H ;有借位,差值取补
CPL
ADD #01H
MOV 25H,A
MOV 24H
CPL
ADDC #00H
MOV 24H,A
CPL F0 ;符号位取反
SJMP QWE
QAZ…… 溢出处理从省略
2.乘法运算
对于单字节乘法运算使用一条乘法指令MUL  AB 即可;对于多字节的乘法就必须通过程
序实现
  假设被乘数存放于R6 R7 中,乘数存放于R4 R5 中,乘积存放于 40H41H
42H43H中,低字节在前双字节乘法结果最多为 字节
双字节乘法按一般竖式相乘原理 R6 ×R4=H64L64R7 ×R4=H74L74R5×R6=H56
L56R7×R5=H75L75其中 表示高字,L 表示低字节竖式乘法过程表示为
R7 R6
× R5 R4
H64 L64 R6 ×R4
H74 L74 R7 ×R4
H56 L56 R5 ×R6
H75 L75 R7 ×R5
  43H  42H  41H  40H
具体程序如下ORG 0020H
MUL16: MOV R0,#40H ;积地址指针
MOV R6
MOV R4
MUL AB R6 ×R4=H64L64
MOV @R0,A L64→(40H
MOV R3,B H64R3
MOV R7
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列207
MOV R4
MUL AB R7×R4=H74L74
ADD R3 L74+H64 R3
MOV R3
MOV #00H H74+CYR2
MOV R2
MOV R6
MOV R5
MUL AB R5×R6=H56L56
ADD R3 L56+L74+H64
INC R0
MOV @R0,A →(41H
MOV R1#00H
MOV R2
ADDC H56+R2+CYR2
MOV R2,A
JNC NEXT
INC R1
NEXTMOV R7
MOV R5
MUL AB R7 ×R5=H75L75
ADD R2 L75+R2
INC R0
MOV @R0,A →(42H
MOV
ADDC R1 H75+R1+CY
INC R0
MOV @R0,A
RET
3.除法运算
对于单字节除法运算使用一条除法指令DIV  AB 即可;但对于多字节的除法就必须通过程序
实现多字节除法的程序设计常采用恢复余数法其设计思想是做减法
仿照手工算法进行除法,设被除数为100011,除数为101,求 100011B ÷101B=
0 0 0 1 1 
     除数 10 1 0 0 0 1 1   ……………被除数
   -)  1 0 1       ……………-1 ×除数
    1 1 1     ……………余数
   -)   1 0 1     ……………-2 ×余数
 1 0 1   ……………余数
  -      1 0 1   ……………-3 ×除数
     0
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列208
   计算机除法运算采用左移被除数相除法做除法前先将余数单元清 CY=0 条件下
执行左循环移位将被除数最高位移入余数单元最低位被除数最低位变为 然后用余数减去
除数。若够减则此时被除数移位单元最低位置 即商为 同时用差取代余数若不够减,则此
时的被除数移位单元仍为 即商为 这样重复移位做减法直到被除数全部左移入余数单元
最后被除数移位单元变成了商数单元余数单元存有余数
设被除数为1011除数为0101余数单元全清 下面是采用左移位除法过程
第一次移位:余数单元=0001,被除数移位单元=0110,余数单元减去除数,不够减,继续
左移
第二次移位:余数单元=0010,被除数移位单元=1100,余数单元减去除数,不够减,继续
左移
第三次移位余数单元=0101被除数移位单元 =1000余数单元减去除数够减且差为
0000用此时的差值取代原来余数并将被除数移位单元最低位置即余数单元=0000被除数移
位单元=1001,继续左移
第四次移位余数单元=0001被除数移位单元=0010移位完成最后结果是商为0010
余数为0001
  编写一个 16 ÷ 16 位除法程序。假设被除数存于40H41H中,除数存于 44H
45H中,商存于 40H41H中,余数存于 42H43H中。低字节在前48H49H为暂存单元
程序如下ORG 0059H
DIV16: MOV R0,#40H 被除数为则退出
MOV @R0
JNZ LOP0
INC R0
MOV @R0
JNZ LOP0
CLR
MOV 42H,A
MOV 43H,A
RET
LOP0MOV R0,#44H 除数为则退出
MOV @R0
JNZ LOP1
INC R0
MOV @R0
JNZ LOP1
RET
LOP1CLR
MOV 42H,A 清余数单元 42H 43H
MOV 43H,A
MOV R2,#10H ;置移位次数
LOP2CLR CY=0
MOV R3#04H
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列209
MOV R0#40H ;被除数地址指针
LOP3MOV @R0 ;余数单元,被除数单元左移一次
RLC
MOV @R0
INC R0
DJNZ R3LOP3
MOV R0#42H ;余数单元减除数
MOV R1#44H
MOV @R0
CLR
SUBB @R1
MOV 48H 暂存差的低字节
INC R0
INC R1
MOV @R0
SUBB @R1
MOV 49H 暂存差的高字节
JC LOP4 ;不够减继续左移
MOV R0#42H 够减时差值取代原余数
MOV R1#48H
MOV @R1
MOV @R0
INC R0
INC R1
MOV @R1
MOV @R0
MOV 40H
INC 够减时被除数单元加
MOV 40H,A
LOP4DJNZ R2LOP2 ;移位次数不到,继续
RET
END
  数制转换程序
1.十六进制数转换成ASC
例  在片内 RAM 20H单元中存有位十六进制数将其转换成ASC Ⅱ码,并存于21H
22H 两个单元中
程序如下MOV SP#3FH
MAINPUSH 20H ;十六进制数进栈
LCALL HASC ;调用转换子程序
POP 21H 第一位转换结果送21H 单元
MOV 20H ;再取原十六进制数
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列210
SWAP 高低半字节交换
PUSH ACC ;交换后的十六进制数进栈
LCALL HASC ;调用转换子程序
POP 22H 第二位转换结果送22H 单元
RET
HASCDEC SP ;跨过断点保护对象
DEC SP
POP ACC ;弹出转换数据
ANL #0FH 屏蔽高
ADD #07H ;修改变址寄存器内容
MOVC @A+PC ;查表
PUSH ACC ;查表结果进栈
INC SP ;修改堆栈指针回到断点保护内容
INC SP
RET
ASCTABDB ASC码表
DB
2.ASC 码转换成十六进制数
例  将外部 RAM 30H3FH 单元中的 ASC 码依次转换为十六进制数并存入内RAM
60H67H 单元中
程序如下
MAINMOV R0#30H 设置 ASC码地址指针
MOV R1#60H 设置十六进制数地址指针
MOV R7#08H 需拼装的十六进制数的字节数
LOOPALCALL TRAN ;调用转换子程序
SWAP ;A 中高低位交换
MOV @R1 存于内部 RAM
INC RO
LCALL TRAN ;调用转换子程序
XCHD @R1 ;十六进制数拼装
INC RO
INC R1
DJNZ R7LOOPA
RET
TRANCLR
MOVX @R0 ;取 ASCⅡ码
SUBB #30H 减去30H
CJNE #0AHLOOPB
SJMP LOOPC
LOOPBJC DONE
LOOPCSUBB #07H
DONERET
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列211
3  定时程序
在单片机应用系统中定时功能除可使用定时器计数器实现外还可使用定时程序完成
定时程序是典型的循环程序是通过执行一个具有固定延迟时间的循环体来实现延时的
1.单循环定时程序
MOV R7#TIME
LOOPNOP
NOP
DJNZ R7LOOP
RET
NOP指令的机器周期为DJNZ指令的机器周期为则一次循环共 个机器周期。如果单
片机的晶振频率为6MHz则一个机器周期是 μ 因此一次循环的延迟时间为 μ 定时程
序的总延迟时间是循环程序段的整数倍该程序的延迟时间为 × TIME(μ )。 这个程序的最
长延时时间为256×8=2048μ
2.较长时间的定时程序
为了加长定时时间通常采用多重循环的方法如下面的双重循环的定时程序最长可延
262 914个机器周期,即525 828μ 或大约526ms晶振频率为 6MHz)。
MOV R7#TIME1 ;1 个机器周期
LOOP1MOV R6#TIME2 ;1 个机器周期
NOP 个机器周期
NOP 个机器周期
DJNZ R6LOOP2 个机器周期
DJNZ R7LOOP1 个机器周期
RET 个机器周期
最长定时时间计算公式为
256×4+2+1)× 256 ×2+4=525 828 μ
3.以一个基本的延时程序满足不同的定时要求
如果系统中有多个定时需要可以先设计一个基本的延时程序使其延迟时间为各定时时
间的最大公约数,然后以此基本程序作为子程序,通过调用的方法实现所需要的不同定时。例
如:要求的定时时间分别为5s10s 20s设计一个 1s 延时子程序 DELAY,则不同定时的调
用情况表示如下晶振频率为6MHz
MOV R5#05H 延时5s
LOOP1LCALL DELAY
DJNZ R5LOOP1
RET
MOV R5#0AH 延时10s
LOOP2LCALL DELAY
DJNZ R5LOOP2
RET
MOV R5#14H 延时20s
LOOP3LCALL DELAY
DJNZ R5LOOP3
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列212
RET
DELAYMOV R7#0FAH
LOOPAMOV R6#0FAH
LOOPBNOP
NOP
NOP
NOP
NOP
NOP
DJNZ R6LOOPB
DJNZ R7LOOPA
RET
延时时间为 250×8+2+1)× 250 ×2+4=1 001 504 μs1s
4.查表程序
预先把数据形式存放在程序存储器中然后使用程序读出这种能读出表格数据的程序被
称为查表程序。MCS-51指令系统准备了专用的查表指令
MOVC @A+DPTR
MOVC @A+PC
这两个MOVC 指令的功能是完全相同的它们在不改变DPTR PC 的状态下,只根据 的内
容就可以取出表格中的数据但这两条指令在具体使用上也存在差异前一条指令的基址寄存器
DPTR 能提供16 位基址而且还能在使用前给DPTR赋值,查表空间可达 64KB后一条指令是以
PC 作为基址寄存器,虽然也能提供16位地址 PC 不能被赋值,所以其基址值是固定的
的内容为位无符号数因次只能在当前指令下面的 256个地址单元内进行查表即数据只能
放在该指令后面的256个地址单元之内而且表格只能被程序段所使用
  设有一个巡回检测报警装置需要对 16 路输入值进行比较当每一路输入值等于
或超过该路的报警值时实现报警下面根据这一要求编制一个查表程序
Xi 为路数,查表是Xi ,1,2,…,15i=15)取数,表中报警值是 字节数 Xi
顺序列成表格放在TAB 中。进入查表程序之前,路数Xi 放在R2 中,其输入值存于R0 R1 当中
查表结果若许报警,将 P1.0 否则清
ORG 1000H
TB1: MOV A,R2 ;路数Xi R2
ADD A,R2 R2+R2
MOV R2,A R2
MOV DPTR,#TAB ;取数据表首地址
MOVC @A+DPTR;取出高字节
MOV R4,A 高字节R4
INC R2 ;地址指向低字节
MOV A,R2
MOVC @A+DPTR;取出低字节
MOV R3,A 低字节R3
CLR
宏晶科技www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技专业单片机存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列213
MOV A,R0 当前输入值与报警值比较
SUBB R3 ;低字节相减
MOV A,R1
SUBB R4 ;高字节相减
JNC LOOP
CLR P1.0 ;输入值<报警值
RET ;返回
LOOPSETB P1.0 ;输入值≥报警值
RET ;返回
ORG 2000H
TABDW 05F0H0E89H0A69H1EAAH
DW 0D9BH7F93H0373H26D7H
DW 2710H9E3FH1A66H22E3H
DW 1174H16EFH33E4H6CA0H
END
5  数据极值查找程序
极值查找就是在指定的数据区中挑出最大值或最小值
  片内 RAM 20H单元开始存放个无符号位二进制数,找出其中的最大值。极值
查找操作的主要内容是进行数值大小的比较假定在比较过程中,以 存放大数与之逐个比较的
另一个数放在3AH 单元中。比较结束后把查找到的最大数送到3BH 单元中
程序如下MOV R0#20H ;数据区首地址
MOV R7#08H ;数据区长度
MOV @R0 ;读第一个数
LOOPINC R0
MOV 3AH@R0 ;读下一个数
CJNE 3AHCHK ;数值比较
SJMP LOOP1
CHKJNC LOOP1 ;A 值大则转
MOV @R0 大数送
LOOP1DJNZ R7LOOP ;继续比较
MOV 3BH,A
RET