您的当前位置:首页正文

STC89C52中文资料

2021-01-14 来源:欧得旅游网
海纳电子资讯网:www.fpga-arm.com 为您提供各种IC中文资料

 STC89C51RC / RD+ 系列单片机中文指南

                          ---高可靠                          ---超低价                          ---低功耗                          ---无法解密

STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RCSTC89LE52RCSTC89LE53RC

STC89C54RD+,STC89LE54RD+STC89C58RD+,STC89LE58RD+STC89C516RD+,STC89LE516RD+

附录A:

 为什么少数用户的普通8051程序烧录后,不能运行

附录B: STC89LE516AD,STC89LE516X2附录C: STC89C51RC / RD+ 系列单片机 ISP (DIY)附录D: ISP Demo(演示版)软件(*.hex)及通信协议

附录E: 如何实现运行中自定义下载,无仿真器时方便调试附录F: Keil C51高级语言编程的软件如何减少代码长度

国内技术支援:宏晶科技(深圳)

   www.MCU-Memory.com       support@dsp-memory.comUpdate date: 2005-2-16

海纳电子资讯网:www.fpga-arm.com 为您提供各种IC中文资料

     本应用技术手册是针对有一定8051系列(MCS-51)单片机编程基础的用户编写的。   选用STC单片机的理由:降低成本,提升性能,原有程序直接使用,硬件无需改动。

STC公司鼓励您放心大胆选用PLCC, PQFP小型封装, 3.3V工作电压单片机,使

您的产品更小,更轻,功耗更低。如果相关新增功能没有用到,则不需看相应部分。用 STC提供的STC-ISP.exe工具将您原有的代码下载进STC相关的单片机即可,或用通用编 程器编程。 1280 字节 8/16/32/64k 字节 闪存 SRAM IAP2k - 8k 字节 ISP 引导码 P0

双数 据指针 8051微处理器 四个8位 并行端口 + P1 P2 P3 P4 STC低功耗,超低价

看门狗 高速(0-90M),高可靠 P4.0—P4.3 四个附送 I/O端口   掉电模式:0.5μA, 空闲模式:2mA  √IAPUART(串口)3个定时器 EPROM Data Flash 2A/D 不加价 A/D(高速)可做:按键扫描电池电压检测掉电检测音量、频谱检测等5V: 5.5 - 3.8V,乃至3.4V; 3V: 3.6 - 2.4V,乃至1.9V

STC89系列单片机选型一览表

     型    号

  最高时钟   频 率Hz  5V

STC89C51    RCSTC89C52    RCSTC89C53    RC

0-80M0-80M0-80M

  3V

IAP / ISP  美国技术, 超低价格, 15分钟学会

向下兼容PhilipsP89C51P89C52P89C54P89C54P89C58P89C51RD2

AT89C55AT89C55AT89C51RCAT89C51RD2AT89LV51AT89LV52AT89LV55AT89LV55AT89LV51RC向下兼容Atmel

FlashRAM看双PII中优定A向下

降低EEP据串口

程序数据门倍4SA断先时/兼容

EMIROM指UART

存储器存储器狗速口PP源级器DWinbond

针4K8K15K16K32K63K

512512512128012801280512512512128012801280512512

√√√√√√√√√√√√√√

√√√√√1K+ 21ch+843√√√√√1K+ 21ch+843√√√√√ 21ch+843

W78E51W78E52W78E54W78E54W78E58W78E516W78LE51W78LE52W78LE54W78LE54W78LE58

STC89C54    RD+0-80MSTC89C58    RD+0-80MSTC89C516  RD+0-80MSTC89LE51  RCSTC89LE52  RCSTC89LE53  RCSTC89LE54  RD+STC89LE58  RD+STC89LE516RD+STC89LE516ADSTC89LE516X2

√√√√√8K+ 21ch+843√√√√√8K+ 21ch+843√√√√√ 21ch+843

0-80M4K0-80M8K0-80M14K0-80M16K0-80M32K0-80M63K0-90M64K0-90M64K

√√√√√1K+ 21ch+843√√√√√1K+ 21ch+843√√√√√ 21ch+843

√√√√√8K+ 21ch+843√√√√√8K+ 21ch+843√√√√√√√√√√

 21ch+843

W78LE516P89LV51RD2AT89LV51RD2

 21ch+643√需要A/D转换时才选用,8路8位精度

- P1.7口,17 个机器周期一次 21ch+643√在P1.0 

RC/RD+系列为真正的看门狗,缺省为关闭(冷启动),启动后无法关闭,可放心省去外部看门狗。内部Flash擦写次数为100,000次以上,STC89C51RC/RD+系列单片机出厂时就已完全加密,无法解密。用户程序是用ISP/IAP机制写入,一边校验一边写,无读出命令,彻底无法解密。DIP-40,PLCC-44,PQFP-44三种封装(PLCC、QFP有P4口),RC/RD+系列单片机P4口地址为E8H,并有2个附加外部中断,P4.2/INT3,P4.3/INT2。STC89LE516AD/X2系列单片机P4口地址为C0H,无附加外部中断。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

海纳电子资讯网:www.fpga-arm.com 为您提供各种IC中文资料

STC89C51RC / RD+ 系列单片机 管脚图

    WR/P3.6                                                 P1.4    RD/P3.7                                                 P1.3     XTAL2                                                 P1.2     XTAL1                                                 P1.1/T2EX     VSS                                                 P1.0/T2     P4.0                                                 P4.2/INT3     A8/P2.0                                                 VDD     A9/P2.1                                                 P0.0/AD0     A10/P2.2                                                 P0.1/AD1     A11/P2.3                                                 P0.2/AD2     A12/P2.4                                                 P0.3/AD3    WR/P3.6                                                 P1.4    RD/P3.7                                                 P1.3     XTAL2                                                 P1.2     XTAL1                                                 P1.1/T2EX     VSS                                                 P1.0/T2     P4.0                                                 P4.2/INT3     A8/P2.0                                                 VDD     A9/P2.1                                                 P0.0/AD0     A10/P2.2                                                 P0.1/AD1     A11/P2.3                                                 P0.2/AD2     A12/P2.4                                                 P0.3/AD3PQFP-440-20MHz0-16.5M0-12MHz0-10MHz

0-80MHz0-40MHz0-66MHz0-33MHz0-48MHz0-24MHz0-40MHz0-20MHz

        P1.5      7                                        39      P0.4/AD4        P1.6      8                                        38      P0.5/AD5         P1.7      9                                        37     P0.6/AD6

                    RST      10                                      36     P0.7/AD7

              RXD/P3.0      11                                       35      EA             P4.3/INT2     12                                       34     P4.1PLCC-44

              TXD/P3.1     13                                       33     ALE/PROG

           INT0/P3.2     14                                       32      PSEN           INT1/P3.3     15                                       31      P2.7/A15               T0/P3.4     16                                       30     P2.6/A14               T1/P3.5     17                                       29     P2.5/A13

18 19 20 21 22 23 24 25  26 27 28

 6   5  4   3  2  1  44 43 42 41 40

44 43 42 41 40 39 38 37 36 35 34

P1.5      1                                       33      P0.4/AD4P1.6      2                                       32      P0.5/AD5P1.7      3                                       31      P0.6/AD6RST      4                                        30      P0.7/AD7RXD/P3.0      5                                        29      EAP4.3/INT2      6                                        28      P4.1TXD/P3.1      7                                         27      ALE/PROGINT0/P3.2      8                                        26      PSENINT1/P3.3      9                                        25      P2.7/A15T0/P3.4      10                                       24      P2.6/A14T1/P3.5      11                                       23      P2.5/A1312 13 14 15 16 17 18 19  20 21 22

    T2/P1.0    1           40      VCC

T2EX/P1.1     2            39      P0.0/AD0P1.2     3           38      P0.1/AD1P1.3     4            37      P0.2/AD2P1.4     5           36      P0.3/AD3P1.5    6           35      P0.4/AD4P1.6     7            34      P0.5/AD5P1.7     8            33      P0.6/AD6RST      9            32      P0.7/AD7RXD/P3.0     10          31      EATXD/P3.1     11           30      ALE/PROGINT0/P3.2     12           29      PSEN

INT1/P3.3     13           28      P2.7/A15T0/P3.4     14           27      P2.6/A14T1/P3.5     15           26      P2.5/A13WR/P3.6     16           25      P2.4/A12RD/P3.7     17           24      P2.3/A11XTAL2     18          23      P2.2/A10XTAL1     19           22      P2.1/A9VSS     20          21      P2.0/A8

关于编译器/汇编器:

1.任何老的编译器/汇编器均可使用

 Keil C51中: Device选择标准的Intel8052 头文件包含标准的 <reg52.h>2.新增特殊功能寄存器用

 “sfr”及“sbit”声明地址即可3.汇编中用“data”,或“EQU”声明地址关于仿真及仿真器:

1.任何老的仿真器均可使用

2.老的仿真器仿真他可仿真的基本功能3.新增特殊功能用ISP下载看结果即可

4.STC8051专用仿真器也已推出,人民币1950

关于工作电压/时钟频率:RC/RD+系列是真正的6T单片机,兼容普通的12时钟/机器周期

内核实际6T               现有老版5V单片机,无版本号工作电压

                 现有新版5V单片机(B版)

单倍速双倍速单倍速双倍速

实际内核实际内核实际内核实际内核

外部时钟相当于相当于外部时钟相当于相当于IAP/ISP可以

运行时钟运行时钟运行时钟运行时钟

普通8052普通8052普通8052普通8052

0-24MHz0-20MHz0-18MHz0-12MHz

0-12MHz0-10MHz0-9MHz0-6MHz

0-48MHz0-24MHz0-40MHz0-20MHz0-36MHz0-18MHz0-24MHz0-12MHz

0-40MHz0-33MHz0-24MHz0-20MHz

0-40MHz0-33MHz0-24MHz0-20MHz

读,编程,擦除读,编程,擦除读,编程,擦除读(不要编程/擦除)

DIP-405.5V - 4.5V0-24MHz5.5V - 3.8V0-20MHz5.5V - 3.6V0-18MHz5.5V - 3.4V0-12MHz

3V: 3.6 - 2.4V(可外部24MHz,双倍速48MHz),2.3-1.9V时不要进行IAP擦除/编程

关于看门狗:RC/RD+系列为真正的看门狗,缺省为关闭(冷启动),启动后无法关闭。

A.看门狗溢出复位无法关看门狗(C版);B.单片机软复位无法关看门狗(C版)C.带电工作时,外部复位无法关看门狗(C版)D.软件无法关看门狗E.外部干扰无法关看门狗F.只有给单片机彻底断电,才可以

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

海纳电子资讯网:www.fpga-arm.com 为您提供各种IC中文资料

 STC单片机 ISP编程 典型应用电路(89C51RC/RD+系列)   ---出厂就加密(超级加密),利用ISP技术写入程序,无读出命令,无法解密

STC单片机在线编程线路, STC    RS-232 转换器

STC232, STC32321 C1+ Vcc 16 0.1uF 2 V+ GND 153 C1- T1OUT 144 C2+ R1IN 135 C2- R1OUT 126 V- T1IN 117 T2OUT T2IN 10 8 R2IN R2OUT 9VccGndPC_RxD (COM Pin2)PC_TxD (COM Pin3)关于/EA(/EA管脚已内部上拉到Vcc):

1.如外部不加上拉,或外部上拉到Vcc,上电复位后单片机从内部开始执行程序;2.如外部下拉到地,上电复位后单片机从外部开始执行程序VinPC /电脑 串口235此电路已做成一块 STC ISP用户程序下载工具,人民币50元Vcc1KSW1供用户将程序灌进单片机使用 1  T2/P1.0                VCC  40   2  T2EX/P1.1         P0.0/AD0  39  3  P1.2              P0.1/AD1  38  4  P1.3              P0.2/AD2  37  5  P1.4              P0.3/AD3  36  6  P1.5              P0.4/AD4  35  7  P1.6            P0.5/AD5  34Power On关于复位电路:Vcc10μF10KVccC5  8  P1.7           P0.6/AD6  33             9  RST               P0.7/AD7  32MCU_RxD (P3.0)       10  RXD/P3.0              EA  31MCU_TxD (P3.1)C610410uF       11 TXD/P3.1          ALE/PROG  30     12 INT0/P3.2             PSEN  291.阻容复位时,电容为10uF,电阻为10K;  13INT1/P3.3        P2.7/A15  28   P2.6/A14  272.RC/RD+系列单片机RESET脚内部没  14 T0/P3.4         下拉电阻,必须用此10K电阻关于晶振电路:1.推荐用11.0592MC2X147pFR1  15 T1/P3.5           P2.5/A13  26  16  WR/P3.6           P2.4/A12  25  17 RD/P3.7           P2.3/A11  2418  XTAL2             P2.2/A10  23 19  XTAL1              P2.1/A9  2220  VSS                P2.0/A8  21-22.1184MHz晶体C12.必须去掉电容C1,利于起振;CRYSTAL(晶振)6MHz11.0592MHz22.1184MHz24MHz33MHz(Don't use)40MHz(Don't use)C1(坚决不用)Don't useDon't useDon't useDon't useDon't useDon't useU1C2(47pF - 15pF)47pF,   100pF30pF,33pF,47pF27pF,33pF,47pF27pF,33pF,47pF15pF15pFR1(不用)Don't useDon't useDon't useDon't use15k - 6.8k15k - 6.8kC310uF10uF10uF-22uF10uF-22uF10uF-22uF10uF-22uFR210K/8.2K10K/8.2K15K,10K,8.2K15K,10K,8.2K15K,10K,8.2K15K,10K,8.2K3.电容C2可接47~33pF(<24MHz),30,22,15pF,33M以上15pF;6M以下47pF,100pF-180pF;4.如需工作在24M以上,尽量选择双倍速,外部晶振用低频率(<24MHz),这样EMI会小很多;5.如果外部晶振频率在33M以上,焊R1电阻(15K左右),33MHz以上,建议用有源时钟输入。6.推荐在XTAL2管脚串一个120 - 160 欧姆的电阻再到晶振的管脚,如果这样XTAL1管脚     可以上(并且是推荐上)旁的C1

7.晶体振荡器(内部时钟反向放大器增益)软件设置(在用STC-ISP工具软件烧录时设置):  5V单片机24M以下时,3.3V单片机16M以下时,选择1/2gain

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

海纳电子资讯网:www.fpga-arm.com 为您提供各种IC中文资料

 STC89C51RC/RD+系列单片机 ISP编程 原理 注意事项

单片机彻底没电给单片机上电复位,冷起动外部手动复位,看门狗复位,单片机不会运行ISP程序

单片机运行ISP程序,检测有无下载命令流,会占时几十mS -几百mSPC机端的控制软件必需先发下载命令流,再给单片机上电复位无PC机端的控制软件STC-ISP-V2.5版本从www.mcu-memory.com下载,如何使用,本文相关部分有说明

冷起动,单片机运行系统ISP监控程序检测P3.0/RxD有没有合法下载命令流有下载用户程序进用户程序区软复位到用户程序区,运行用户程序为什么有些用户下载程序不成功(在宏晶提供的下载板上)

1.可能电脑端的STC-ISP控制软件要升级,现在必须升级到正式版本STC-ISP-V2.52.现在单片机端(下位机)的ISP软件是V2.5C,解决了少数电脑慢,通信连不上的问题.3.运行用户程序时,可到40M/80MHz,但ISP下载程序现版本软件只能到33M/66MHz4.少数客户的PLCC-44,PQFP-44转DIP-40的转换座走线过长,造成时钟振荡不稳定,下载不成功,可将XTAL1脚的电容去掉,XTAL2脚的电容加大到47pF以上。5.可能单片机内部没有ISP引导码,或者要升级PC端的STC-ISP控制软件6.电脑端的ISP控制软件STC-ISP-V2.9测试版加了一些功能,欢迎测试。7.电脑端的ISP控制软件STC-ISP-V2.6测试版不要用,有误

8.新的单片机端(下位机)的ISP软件是V2.7C,加了一些抗干扰措施,主要解决冷起动运行ISP程序时间过长的问题,以免客户感觉“复位慢”,实为ISP程序在检测要不要下载程序

为什么有些用户下载程序不成功(在用户自己的系统上)

1.可能用户板上有外部看门狗,需不让其起作用

2.可能用户板上P3.0/RxD,P3.1/Txd除了接RS-232转换器外,还接了RS-485等电路,需要将其断开。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

超低功耗  ---- STC89C51RC / RD+ 系列单片机

1.掉电模式:

典型功耗    0.5uA,   可由外部中断唤醒,中断返回后,继续执行原程序2.空闲模式:

典型功耗    2mA3.正常工作模式:

典型功耗    4mA - 7mA

超强抗干扰  ---- STC89C51RC / RD+ 系列单片机

1. I/O口

输入/输出口经过特殊处理,很多干扰是从I/O进去的,每个I/O均有对VCC/对GND二级管箝位保护。2. 电源

单片机内部的电源供电系统经过特殊处理,很多干扰是从电源进去的3. 时钟

单片机内部的时钟电路经过特殊处理,很多干扰是从时钟部分进去的4. 看门狗

单片机内部的看门狗电路经过特殊处理,打开后无法关闭,可放心省去外部看门狗5. 复位电路

单片机内部的复位电路经过特殊处理,很多干扰是从复位电路部分进去的,STC89C51RC/RD+系列单片机为高电平复位。推荐外置复位电路为MAX810/STC810,STC6344,STC6345,813L,706P;也可用R/C复位,10uF电容/10k电阻,22uF/8.2k等。6.宽电压,不怕电源抖动5V: 6v - 3.4v3V: 4v - 1.9v

降低单片机对外部的电磁辐射 (EMI)---三大措施

1. 禁止ALE时钟信号输出:

RC/RD+系列8051 单片机 扩展RAM管理及禁止ALE输出 特殊功能寄存器   只写

MnemonicAddNameAUXR

  7 6 -

 5 -

 4 -

 3 -

 2 -

    1 0Reset value

8EhAuxiliary  Register  0 -EXTRAMALEOFFxxxx,xx00

禁止ALE信号输出(应用示例供参考,汇编语言):

MOVAUXR,  #00000001B;  ALEOFF位置“1”,禁止ALE时钟输出

2. 外部时钟频率降一半,6T模式: 传统的8051为每个机器周期12时钟,如将STC的增强型8051单片机在ISP烧录程序时设为双倍速(即6T模式,每个机器周期6时钟),则可将单片机外部时钟频率降低一半,有效的降低单片机时钟对外界的辐射

3. 单片机内部时钟振荡器增益降低一半:在ISP烧录程序时将OSCDN设为1/2 gain可以有效的降低单片机时钟高频部分对外界的辐射,5V单片机外部晶振频率<24MHz时,3V单片机外部晶振频率<16MHz时,将OSCDN设为1/2 gain。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

特殊功能寄存器映像  SFR Mapping

STC89C51RC, STC89C52RC, STC89C53RC, STC89C54RD+,STC89C58RD+,STC89C516RD+STC89LE51RC,STC89LE52RC,STC89LE53RC,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+

      Bit

                                 Non  Bit  Addressable

Addressable      0/8F8hF0hE8hE0hD8hD0hC8hC0hB8hB0hA8hA0h98h90h88h80h

     PSW0000,0000    T2CON0000,0000    XICON0000,0000      IPxx00,0000      P31111,1111      IE0000,0000      P21111,1111    SCON0000,0000      P11111,1111    TCON0000,0000      P01111,1111      0/8

    TMOD    TL0    TL1    TH0    TH1    AUXR0000,00000000,00000000,00000000,00000000,0000xxxx,xx00     SP     DPL     DPH0000,01110000,00000000,0000     1/9

     2/A

     3/B

     4/C

    5/D

    6/E

    SBUFxxxx,xxxx    SADDR0000,0000

   AUXR1xxxx,0xx0

    SADEN0000,0000

    T2MOD   RCAP2L   RCAP2H    TL2    TH2xxxx,xx000000,00000000,00000000,00000000,0000

      B0000,0000     P4xxxx,1111     ACC0000,0000

     1/9

     2/A

     3/B

     4/C

    5/D

    6/E

    7/F

FFhF7hEFh

WDT_CONTRISP_DATAISP_ADDRHISP_ADDRLISP_CMDISP_TRIGISP_CONTR

E7h

xx00,00001111,11110000,00000000,00001111,1000xxxx,xxxx000x,x000

DFhD7hCFhC7hBFh

    IPH

B7h

0000,0000

AFhA7h9Fh97h8Fh

    PCON

87h

0xx1,0000    7/F

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)7

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

RC/RD+系列8051 单片机内核特殊功能寄存器   C51 Core SFRs

MnemonicAddACCBPSWSPDPLDPH

E0hF0hD0h81h82h83h

NameAccumulatorB Register

Program Status WordStack PointerData Pointer Low ByteData Pointer High Byte

CY

AC

F0

RS1RS0OV

 -

 P

 7

 6

 5

 4

 3

 2

 1

 0

Reset Value0000,00000000,00000000,00000000,01110000,00000000,0000

RC/RD+系列8051 单片机系统管理特殊功能寄存器System Management SFRs

MnemonicAddNamePCONAUXRAUXR1

87hPower  Control

  7

 6 - -

 5 - - -

 4 - -

 3 -

 2 -

    1

 0IDLDPS

Reset value0xx1,0000xxxx,0xx0

SMOD -POFGF1GF0   PD

GF2 -

   -

8EhAuxiliary  Register  0 -A2hAuxiliary  Register  1 -

EXTRAMALEOFFxxxx,xx00

不同:STC89LE516AD / 89LE516X2系列单片机没有EXTRAM控制位.RC/RD+系列8051 单片机 中断 特殊功能寄存器Interrupt SFRs

MnemonicAddIEIPIPHXICON

A8hB8hB7hC0h

Name

Interrupt  EnableInterrupt  Priority  LowInterrupt  Priority  HighAuxiliary  Interrupt  Control

 7EA -PX3

 6 - -EX3

 5ET2PT2IE3

 4ESPS

 3ET1PT1

 2EX1PX1EX2

 1ET0PT0IE2

 0EX0PX0IT2

Reset Value0000,0000xx00,00000000,0000

PX3HPX2HPT2HPSHPT1HPX1HPT0HPX0H0000,0000

IT3PX2

不同:STC89LE516AD系列单片机没有(XICON,PX3H,PX2H),因为P4.2/P4.3无中断.RC/RD+系列8051 单片机 I/O 口 特殊功能寄存器   Port SFRs

MnemonicP0P1P2P3P4

Add80h90hA0hB0hE8h

Name

8-bit  Port 08-bit  Port 18-bit  Port 28-bit  Port 34-bit  Port 4

 7

 6

 5

 4

 3

 2

 1

 0

Reset Value1111,11111111,11111111,11111111,1111xxxx,1111

P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0 -

 -

 -

 -

P4.3P4.2P4.1P4.0

不同:STC89LE516AD / 89LE516X2 系列单片机P4口地址为C0h,而不是E8h.

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)8

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

RC/RD+系列 8051 单片机 串行口 特殊功能寄存器    Serial I/O Port SFRs

MnemonicAddSCONSBUFSADENSADDR

98h99hB9hA9h

Name

Serial  ControlSerial  Data  BufferSlave  Address  MaskSlave  Address

 7SM0/FE

 6SM1

 5SM2

 4REN

 3TB8

 2RB8

 1TI

 0RI

Reset Value0000,0000xxxx,xxxx0000,00000000,0000

RC/RD+系列 8051 单片机 定时器 特殊功能寄存器    Timer SFRs

MnemonicAddTCONTMODTL0TH0TL1TH1T2CONT2MODRCAP2LRCAP2HTL2TH2

88h89h8Ah8Ch8Bh8DhC8hC9hCAhCBhCChCDh

Name

 7

 6TR1

 5TF0

 4TR0

 3IE1

 2IT1

 1IE0

 0IT0M0

M0_0

Reset Value0000,00000000,00000000,00000000,00000000,00000000,0000

TF2 -

EXF2 -

RCLKTCLKEXEN2TR2 -

 -

 -

 -

C/T2#CP/RL2#0000,0000T2OE

DCEN

xxxx,xx000000,00000000,00000000,00000000,0000

Timer / Counter 0 and 1 ControlTF1Timer / Counter 0 and 1 ModesTimer / Counter 0 Low ByteTimer / Counter 0 High ByteTimer / Counter 1 Low ByteTimer / Counter 1 High ByteTimer / Counter 2 ControlTimer / Counter 2 ModeTimer / Counter 2

Reload/Capture  Low ByteTimer / Counter 2

Reload/Capture  High ByteTimer / Counter 2 Low ByteTimer / Counter 2 High Byte

GATEC/T#M1M0GATEC/T#M1GATE1C/T1#M1_1M1_0GATE0C/T0#M0_1

RC/RD+系列 8051单片机 看门狗定时器 特殊功能寄存器 Watch Dog Timer SFRs

Mnemonic

Add

Name

Watch-Dog-TimerControl register

 7 -

 6 -

 5

 4

 3

 2

 1

 0

Reset Value

WDT_CONTRE1hEN_WDTCLR_WDTIDLE_WDTPS2PS1PS0xx00,0000

RC/RD+系列 8051 单片机 ISP/IAP 特殊功能寄存器    ISP/IAP SFRs

MnemonicISP_DATA

AddE2h

Name

ISP/IAP  Flash  Data  RegisterISP/IAP  Flash  Address  HighISP/IAP  Flash  Address  LowISP/IAP  Flash  Command  RegisterISP/IAP  Flash  Command  TriggerISP/IAP  Control  Register

ISPENSWBSSWRST -

 -

WT2

WT1

WT0

 -

 -

 -

 -

 -

MS2

MS1

MS0

 7

 6

 5

 4

 3

 2

 1

 0

Reset Value1111,11110000,00000000,0000xxxx,x000xxxx,xxxx000x,x000

ISP_ADDRHE3hISP_ADDRLE4hISP_CMDISP_TRIG

E5hE6h

ISP_CONTRE7h

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)9

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

STC89C51RC/RD+ 系列单片机扩展RAM的使用STC89C51RC/RD+ 系列单片机扩展RAM的禁止

    适用型号:

   STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC

   STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+

普通89C51,89C52系列单片机的内部RAM只有128(89C51)/256(89C52)供用户使用   (1).低128字节的内部RAM(地址:00H-7FH),可直接寻址或间接寻址,(data/idata)   (2).高128字节的内部RAM(地址:80H-FFH),只能间接寻址(普通89C51没有),(idata)   (3).特殊功能寄存器SFR(地址:80H-FFH), 只能直接寻址,(data)

特殊功能寄存器SFR和高128字节的内部RAM是通过寻址方式来区分的,传统的8051系列单片机只有128-256字节RAM供用户使用,在此情况下STC公司响应广大用户的呼声,在一些单片机内部增加了RAM。 STC89C58RD+系列单片机扩展了1024个字节RAM,STC89C52RC系列单片机扩展了256个字节RAM。RC/RD+系列8051 单片机 扩展RAM管理及禁止ALE输出 特殊功能寄存器   只写MnemonicAddNameAUXR  7 6 - 5 - 4 - 3 - 2 -    1 0Reset value8EhAuxiliary  Register  0 -EXTRAMALEOFFxxxx,xx00Symbol符号Function功能EXTRAM

Internal/External RAM access0: 内部扩展的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.

内部/外部 RAM 存取

注解:STC89LE516AD,STC89LE516X2 系列无EXTRAM控制位,仅有ALEOFF控制位。STC89LE516AD/X2系列用  MOVX A, @Ri / MOVX @Ri, A指令固定访问内部扩展的EXTRAM,

  用  MOVX  A, @DPTR / MOVX@DPTR,A指令固定访问外部RAM.

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)10

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

应用示例供参考(汇编):

访问内部扩展的EXTRAM

;新增特殊功能寄存器声明(汇编方式)AUXRMOV

DATAAUXR,

8EH;        或者用    AUXREQU   8EH   定义

#00000000B;  EXTRAM位清为”0”, 其实上电复位时此位就为”0”.

;MOVX  A,  @DPTR / MOVX @DPTR,A指令可访问内部扩展的EXTRAM

;RD+系列为(00H - 3FFH,共1024字节);RC系列为(00H - FFH,共256字节)

;MOVX  A,  @Ri / MOVX  A, @Ri 指令可直接访问内部扩展的EXTRAM

;使用此指令 RD+系列 只能访问内部扩展的EXTRAM(00H - FFH,共256字节)

;写芯片内部扩展的EXTRAM

MOVMOVMOVXMOVMOVXRD+系列

; 如果 #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)

DPTR,A,

#address#value

@DPTR,ADPTR,A,

#address

;读芯片内部扩展的EXTRAM

@DPTR

禁止访问内部扩展的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, A指令访问此内部扩展的EXTRAM,这样只能访问256字节的扩展EXTRAM,但可与很多单片机兼容。如STC89LE516AD/X2系列MOVX A, @Ri / MOVX @Ri, A指令只能固定访问内部扩展的EXTRAM, MOVX  A,  @DPTR / MOVX

应用示例供参考(C 语言):

 @DPTR,A指令固定访问外部RAM.

/*访问内部扩展的EXTRAM */

/*  RD+系列为(00H - 3FFH, 共1024字节扩展的EXTRAM) *//*  RC 系列为(00H -  FFH, 共256字节扩展的EXTRAM)  */

/*

新增特殊功能寄存器声明(C 语言方式)*/

0x8e

/*

/*

如果不需设置AUXR就不用声明AUXRloop_counter, test_array[128];

*/

*/

0x00;

0000,0000  EXTRAM位清0, 其实上电复位时此位就为0 */

sfrAUXRAUXR

unsigned char  xdata  sum,

/*  将变量声明成 xdata 即可直接访问此内部扩展的EXTRAM

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)11

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

/*  写芯片内部扩展的EXTRAM*/

sum=

0;

==

128;5;

loop_countertest_array[0]

/*  读芯片内部扩展的EXTRAM*/

sum=test_array[0];

/*  RD+系列:

如果 #address < 400H,则在EXTRAM位为”0”时,访问物理上在内部,逻辑         上在外部的此EXTRAM

如果#address>=400H,则总是访问物理上外部扩展的RAM或I/O空间(400H-FFFFH)

RC系列:

如果 #address < 100H,则在EXTRAM位为”0”时,访问物理上在内部,逻辑         上在外部的此EXTRAM

如果#address>=100H,总是访问物理上外部扩展的RAM或I/O空间(100H--FFFFH)

*/

禁止访问内部扩展的EXTRAM, 以防冲突

AUXR

0x02;/*0000,0010, EXTRAM位设为”1”, 禁止访问EXTRAM,以防冲突 */

有些用户系统因为外部扩展了I/O 或者用片选去选多个RAM 区,有时与此内部扩展的EXTRAM逻辑上有冲突,将此位设置为”1”, 禁止访问此内部扩展的EXTRAM就可以了.

  AUXR是只写寄存器

所谓只写,就是直接用“MOV AUXR, #data”去写,而不要用含读的操作如“或,与,入栈”

因为他不让你读,如去读,读出的数值不确定,用含读的操作如“或,与,入栈”,会达不到需要的效果。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)12

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

中断

RC/RD+系列8051 单片机 中断 特殊功能寄存器Interrupt SFRs

MnemonicAddIEIPIPHXICON

A8hB8hB7hC0h

Name

Interrupt  EnableInterrupt  Priority  LowInterrupt  Priority  HighAuxiliary  Interrupt  Control

 7EA -PX3

 6 - -EX3

 5ET2PT2IE3

 4ESPS

 3ET1PT1

 2EX1PX1EX2

 1ET0PT0IE2

 0EX0PX0IT2

Reset Value0000,0000xx00,00000000,0000

PX3HPX2HPT2HPSHPT1HPX1HPT0HPX0H0000,0000

IT3PX2

中断与普通8052完全兼容,优先级可设为4级,另增加2个外部中断INT2/P4.3,

INT3/P4.2。

Interrupt Source中断源/INT0Timer 0/INT1Timer 1UARTTimer 2/INT2/INT3

VectorAddress中断

向量地址0003H000BH0013H001BH0023H002BH0033H003BH

PollingSequence中断

查询次序0(最优先)1234567(最低)

中断

优先级设置PX0H,PX0PT0H,PT0PX1H,PX1PT1H,PT1PSH,  PSPT2H,PT2PX2H,PX2PX3H,PX3

优先级0最低0,00,00,00,00,00,00,00,0

优先级1

Interrupt

优先级3

优先级2Request

最高

中断请求1,01,01,01,01,01,01,01,0

1,11,11,11,11,11,11,11,1

IE0TF0IE1IF1RI + TITF2 + EXF2IE2IE3

0,10,10,10,10,10,10,10,1

NameFunctionPX3EX3IE3IT3PX2EX2IE2IT2

External interrupt 3 priority high if setExternal interrupt 3 enable if set

IE3 is set/cleared automatically by hardware when interrupt is detected/serviced

External interrupt 3 is falling-edge/low-level triggered when this bit is set/cleared by softwareExternal interrupt 2 priority high if setExternal interrupt 2 enable if set

IE2 is set/cleared automatically by hardware when interrupt is detected/serviced

External interrupt 2 is falling-edge/low-level triggered when this bit is set/cleared by software

PXH3External interrupt 3 priority highest if setPXH2External interrupt 2 priority highest if set

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)13

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

     降低单片机对系统的电磁干扰 (EMI)---

1.

禁止ALE信号输出,适用型号:

三大措施

   STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC   STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+

  STC89LE516AD / X2 系列 (注:此系列单片机无EXTRAM控制位)RC/RD+系列8051 单片机 扩展RAM管理及禁止ALE输出 特殊功能寄存器

只写

MnemonicAddNameAUXR

  7 6 -

 5 -

 4 -

 3 -

 2 -

    1 0Reset value

8EhAuxiliary  Register  0 -EXTRAMALEOFFxxxx,xx00

禁止ALE信号输出(应用示例供参考,C语言):

sfrAUXR=0x8e;/* 声明AUXR 寄存器的地址 */

AUXR=0x01;

/* ALEOFF位置1,禁止ALE信号输出,提升系统的EMI性能,复位后为0,ALE信号正常输出 */禁止ALE信号输出(应用示例供参考,汇编语言):

AUXREQUMOV

8Eh

   或

AUXRDATA8Eh

AUXR,#00000001B;  ALEOFF位置“1”,禁止ALE信号输出,提升了系统的EMI性能

2.  外部时钟频率降一半,6T模式: 传统的8051为每个机器周期12时钟,如将STC的增强型8051单片机在ISP烧录程序时设为双倍速(及6T模式,每个机器周期6时钟),则可将单片机外部时钟频率降低一半,有效的降低单片机时钟对外界的干扰

3.  单片机内部时钟振荡器增益降低一半:在ISP烧录程序时将OSCDN设为1/2 gain可以有效的降低单片机时钟高频部分对外界的辐射,但此时外部晶振频率尽量不要高于24MHz。

P4 口

    RC/RD+系列8051 单片机 I/O 口 特殊功能寄存器   Port SFRs

MnemonicP0P1P2P3P4

Add80h90hA0hB0hE8h

Name

8-bit  Port 08-bit  Port 18-bit  Port 28-bit  Port 34-bit  Port 4

 7

 6

 5

 4

 3

 2

 1

 0P0.0P1.0P2.0P3.0P4.0

Reset Value1111,11111111,11111111,11111111,1111xxxx,1111

P0.7P0.6P1.7P1.6P2.7P2.6P3.7P3.6 -

 -

P0.5P0.4P0.3P0.2P0.1P1.5P1.4P1.3P1.2P1.1P2.5P2.4P2.3P2.2P2.1P3.5P3.4P3.3P3.2P3.1 -

 -

P4.3P4.2P4.1

汇编语言:P4MOVMOVORLANLMOVC语言:

sfr

DATAA,P4,P4,P4,P4,0E8H;orP4EQU0E8HP4;Read P4 status to Accumulator.#0AH;Output data “A”through P4.0 - P4.3#00000001B ;P4.0 = 1#11111110B ;P4.0 = 0#0AH;Output data “A”through P4.0 - P4.3

P4=0xe8;C语言中声明P4口特殊功能寄存器地址

注:STC89LE516AD,STC89LE516X2,STC89LE58AD,STC89LE54AD的P4口地址在C0h。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)14

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

双数据指针DPTR0,DPTR1的使用

    适用型号:

   STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC

   STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+STC89LE516AD,STC89LE516X2

 RC/RD+/AD/X2 系列8051 单片机 双数据指针 特殊功能寄存器

MnemonicAddNameAUXR1

  7

 6 -

 5 -

 4 -

 3

 2

    1   -

 0

Reset value

A2hAuxiliary  Register  1 -

GF2 -

DPSxxxx,0xx0

Symbol符号Function功能GF2DPS

General purpose user-defined flag. 通用功能用户自定义位DPTR registers select bit. DPTR 寄存器选择位0: DPTR0 is selected       DPTR0被选择

1: DPTR1 is selected       DPTR1被选择

此系列单片机有两个16-bit 数椐指针,DPTR0,DPTR1.当DPS选择位为0时,选择DPTR0, 当DPS选择位为1时,选择DPTR1.

AUXR1特殊功能寄存器,位于A2H单元,其中的位不可用布尔指令快速访问.但由于DPS位位于bit0,故对AUXR1寄存器用INC指令,DPS位便会反转,由0变成1或由1变成0,即可实现双数椐指针的快速切换.应用示例供参考:

;新增特殊功能寄存器定义AUXR1MOVMOVMOVMOVXMOVMOVMOVXINCMOVMOVXINCMOVXINCMOVXINCMOVX

DATA

0A2H

;此时DPS为0,DPTR0有效;置DPTR0为1FFH;将1FFH单元置为55H; 置DPTR0为2FFH;将2FFH单元置为0AAH; 此时DPS为1,DPTR1有效

#1FFH@DPTR

; 置DPTR1为1FFH

; 读DPTR1数椐指针指向的1FFH单元的内容,累加器A变为55H.; 此时DPS为0,DPTR0有效

@DPTR

; 读DPTR0数椐指针指向的2FFH单元的内容,累加器A变为0AAH.; 此时DPS为1,DPTR1有效

@DPTR

; 读DPTR1数椐指针指向的1FFH单元的内容,累加器A变为55H.; 此时DPS为0,DPTR0有效

@DPTR

; 读DPTR0数椐指针指向的2FFH单元的内容,累加器A变为0AAH.

AUXR1,#0DPTR,A,

#1FFH#55H

@DPTR,ADPTR,A,

#2FFH#0AAH

@DPTR,AAUXR1DPTR,A,AUXR1A,AUXR1A,AUXR1A,

结论: 与Philips使用方式一致

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)15

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

                         看门狗应用

    适用型号:

   STC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC89LE53RC   STC89C54RD+,STC89C58RD+,STC89C516RD+,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+

宏晶技术支持,请直接向宏晶采购晶片,而不要通过中间商,支持我们更好地服务

   RC/RD+系列 8051单片机 看门狗定时器 特殊功能寄存器 Watch Dog Timer SFR

Mnemonic

Add

Name

Watch-Dog-TimerControl register

 7 -

 6 -

 5

 4

 3

 2

 1

 0

Reset Value

WDT_CONTRE1h

EN_WDTCLR_WDTIDLE_WDTPS2PS1PS0xx00,0000

Symbol符号Function功能EN_WDTCLR_WDT

Enable WDT bit. When set, WDT is started看门狗允许位, 当设置为“1”时,看门狗启动。

WDT clear bit. When set, WDT will recount. Hardware will automatically clear看门狗清“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:            看门狗定时器预分频值,如下表所示

PS2 0 0 0 0 1 1 1 1

PS1 0 0 1 1 0 0 1 1

PS0 0 1 0 1 0 1 0 1

Pre-scale预分频    2    4    8    16    32    64    128    256

WDT Period @20MHzand 12 clocks mode       39.3 mS       78.6 mS     157.3 mS     314.6 mS     629.1 mS        1.25S        2.5S        5S

            this bit.

The WDT period is determined by the following equation 看门狗溢出时间计算

看门狗溢出时间 = (N x Pre-scale x 32768) / Oscillator frequencyN = 12, 当在12 clock mode时, N = 6, 当在6 clock mode时设时钟为12MHz, 12时钟模式

看门狗溢出时间 = (12 x Pre-scale x 32768) / 12000000 = Pre-scale x 393216 / 12000000

PS2 0 0 0 0 1 1 1 1

PS1 0 0 1 1 0 0 1 1

PS0 0 1 0 1 0 1 0 1

Pre-scale预分频    2    4    8    16    32    64    128    256

WDT Period @12MHzand 12 clocks mode       65.5 mS     131.0 mS     262.1 mS     524.2 mS      1.0485S      2.0971S      4.1943S      8.3886S

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)16

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

    设时钟为11.0592MHz, 12时钟模式

    看门狗溢出时间 = (12 x Pre-scale x 32768) / 11059200 = Pre-scale x 393216 / 11059200

PS2 0 0 0 0 1 1 1 1

PS1 0 0 1 1 0 0 1 1

PS0 0 1 0 1 0 1 0 1

Pre-scale预分频    2    4    8    16    32    64    128    256

WDT Period @11.0592MHzand  12  clocks  mode       71.1 mS     142.2 mS     284.4 mS     568.8 mS      1.1377S      2.2755S      4.5511S      9.1022S

汇编语言程序示例WDT_CONTR;复位入口

ORGLJMP…ORGInitial:

MOV…Main_Loop:

LCALLLCALL…MOV…LJMP

Main_Loop

C语言程序示例#include<reg52.h>sfr{   …

while(1){

WDT_CONTRdisplay();keyboard();…WDT_CONTR}}

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)17

DATA0000HInitial0060H

0E1H ;    或者   WDT_CONTREQU   0E1H

WDT_CONTR,#00110100B; Load initial value 看门狗定时器控制寄存器初始化

               ; EN_WDT = 1, CLR_WDT = 1, IDLE_WDT = 0, PS2 = 1, PS1 = 0, PS0 = 0

Display_LoopKeyboard_Loop

WDT_CONTR,#00110100B ;  喂狗,  不要用 ORL    WDT_CONTR,  #00010000B

WDT_CONTR=0xe1;

void main()

=0x34;

/* 0011,0100 EN_WDT = 1,CLR_WDT = 1, IDLE_WDT = 0, PS2 = 1, PS1 = 0, PS0 = 0 */

=0x34;  /* 喂狗,  不要用  WDT_CONTR=WDT_CONTR |0x10;*/

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

 STC 89C51RC/RD+ 系列单片机在系统可编程的使用

---将用户代码下载进单片机内部,不用编程器

STC单片机在线编程线路, STC RS-232 转换器

STC232, STC3232 1 C1+ Vcc 160.1uF 2 V+ GND 15 3 C1- T 1OUT 144 C2+ R1IN 135 C2- R1OUT 12VccGndPC_RxD (COM Pin2)PC_TxD (COM Pin3)MCU_RxD (P3.0)MCU_TxD (P3.1)STC单片机在线编程线路, STC RS-232 转换器

STC232, STC3232 1 C1+ Vcc 160.1uF 2 V+ GND 15 3 C1- T 1OUT 144 C2+ R1IN 13VccGndPC_RxD (COM Pin2)PC_TxD (COM Pin3)MCU_RxD (P3.0)MCU_TxD (P3.1)PC /电脑 串口PC /电脑 串口235235P3.0P3.189C52RC89C58RD+89LE52RC89LE516RD+5 C2- R1OUT 126 V- T1IN 117 T2OUT T2IN 108 R2IN R2OUT 9P3.0P3.189LE516AD89LE516X2P1.0P1.16 V- T1IN 117 T2OUT T2IN 108 R2IN R2OUT 9上面左图适用如下型号:

STC89C51RC,STC89C52RC,STC89C53RCSTC89LE51RC,STC89LE52RC,STC89LE53RCSTC89C54RD+,STC89C58RD+,STC89C516RD+STC89LE54RD+,STC89LE58RD+,STC89LE516RD+STC89C516RD,STC89C58RD(老产品,不要选)STC89LV516RD,STC89LV58RD(老产品,不要选)上面右图适用如下型号:

STC89LE516AD,STC89LE516X2,STC89LE58AD,

STC89LE54AD,  STC89LE52AD

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下载工具(软件),请随时更新,目前已到Ver2.5 / 2.9版本(2005/2/2),支持

*.Hex(Intel 16 进制格式)文件,RC/RD+系列单片机的底层软件版本为Ver2.7C(旧版可更换)。    请谁时注意升级PC(电脑)端的ISP程序,现Ver2.5是正式版,Ver2.9测试版欢迎测试。     单片机的底层软件版本为Ver2.7C的单片机,PC(电脑)端的ISP程序必须是Ver2.5以上

(3).已经固化有ISP引导码,并设置为上电复位进入ISP的STC89C51RC/RD+系列单片机出厂时就已完全加密,需要单片机内部的电放光后上电复位(冷起动)才运行系统ISP程序。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)18

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

第一次调文件进缓冲区,要清缓冲区。

要调几个文件进缓冲区,一次同时烧录进单片机,除每次均要指定缓冲区起始地址外,第二次及以后不能清缓冲区

用户根据需要限制最大通信波特率

5V单片机,24MHz以下3V单片机,16MHz以下选择1/2 gain,指外部晶振大批量生产时使用Step1/步骤1:选择你所使用的单片机型号,如STC89C58RD+, STC89LE516AD等

Step2/步骤2:打开文件,要烧录用户程序,必须调入用户的程序代码(*.bin, *.hex)Step3/步骤3:选择串行口,你所使用的电脑串口,如串行口1--COM1, 串行口2--COM2,...

有些新式笔记本电脑没有RS-232串行口,可买一条USB-RS232转接器,人民币70元左右。

Step4/步骤4:设置是否双倍速,双倍速选中Double Speed即可

STC89C51RC / RD+ 系列可以反复设置 双倍速/单倍速

STC89LE516AD为单倍速,STC89LE516X2 为双倍速,用户自己无法指定 双倍速/单倍速STC89C516RD系列出厂时为单倍速,用户可指定设为双倍速,如想从双倍速恢复成单倍

速,则需用通用编程器擦除整个晶片方可,这会将单片机内部已烧录的ISP引导程序擦除。一般使用缺省设置即可,无须设置。

OSCDN: 单片机时钟振荡器增益降一半

   选 1/2 gain 为降一半,降低EMI;选 full gain(全增益)为正常状态。

Step5/步骤5:选择“Download/下载”按钮下载用户的程序进单片机内部,可重复执行Step5/

步骤5, 也可选择“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). P1.0, P1.1 = 0, 0 ;上电复位进入ISP 模式,下载完后释放P1.0,P1.1, 89LE516AD/X2运行用

户程序.

STC89C51RC/RD+,STC89LE51RC/RD+系列单片机不需要P1.0,P1.1 = 0,0STC89LE516AD,STC89LE516X2,STC89LE58AD,STC89LE54AD需要P1.0,P1.1 = 0,0

(5). RS-232转换器可选用SP232/MAX232(4.5-5.5V),SP3232/MAX3232(3V-5.5V).

 SP232/MAX232尽量选用SOP封装(窄体,SP232EEN),SP3232尽量选用SSOP封装(SP3232EEA)

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

如用户系统没有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电源管脚B.3V单片机,短接JP1的MCU-VCC, 3.3V电源管脚(2.) 根据单片机的工作电压选择复位信号

A. 5V单片机,短接JP2的MCU-RST, 5V/MCU-RST信号管脚B. 3.3V单片机,短接JP2的MCU-RST, 3.3V/MCU-RST信号管脚(3.)连接线(宏晶提供)

A.将一端有9芯连接座的插头插入PC/电脑RS-232串行接口插座用于通信B.将同一端的USB插头插入PC/电脑USB接口用于取电

C.将只有一个USB插头的一端插入宏晶的STC-ISP Ver 2.0B PCB板USB1插座用于RS-232通

信和供电,此时+5V Power灯亮(D10,USB接口有电)

(4.)其他插座不需连接

(5.)SW1开关处于非按下状态,此时MCU-VCC Power灯不亮(D9), 没有给单片机通电(6.)SW3开关

处于非按下状态,P1.0, P1.1 = 1, 1,不短接到地。

适用于:STC89C51RC / RD+, /RD 系列单片机

处于按下状态,P1.0, P1.1 = 0, 0,短接到地。

适用于:STC89LE516AD, STC89LE58AD, STC89LE54AD, STC89LE516X2

(7.)将单片机插进U1-Socket锁紧座,锁紧单片机

(8.)关于软件:选择“Download/下载”( 必须在给单片机上电之前让PC先发一串合法下载命令)(9.)按下SW1开关,给单片机上电复位, 此时MCU-VCC Power灯亮(D9)    此时STC 单片机进入ISP 模式(STC89C51RC/RD+系列冷启动进入ISP)

(10.)下载成功后,再按SW1开关,此时SW1开关处于非按下状态,MCU-VCC Power灯不亮(D9),

给单片机断电,取下单片机。

利用STC-ISP Ver 2.0B PCB 板进行RS-232转换单片机在用户自己的板上完成下载/烧录:

1.U1-Socket锁紧座不得插入单片机

2.将用户系统上的电源(MCU-VCC,GND)及单片机的P3.0/RXD,P3.1/TXD接入转换板CN2插座   这样用户系统上的单片机就具备了与PC/电脑进行通信的能力

3. 将用户系统的单片机的P1.0,P1.1接入转换板CN2插座(仅STC89LE516AD/X2系列需要)    4.

SW3开关处于按下状态,P1.0, P1.1 = 0, 0,短接到地。仅STC89LE516AD/X2系列需要5.关于软件:选择“Download/下载”

6.给单片机系统上电复位(注意是从用户系统自供电,不要从电脑USB取电,电脑USB座不插)7.下载程序时,如用户板有外部看门狗电路,不得启动,单片机必须有正确的复位,但不能在

ISP下载程序时被外部看门狗复位,可将外部看门狗电路WDI端/或WDO端浮空8. 如有RS-485晶片连到P3.0/Rxd,P3.1/Txd,在下载时应将其断开。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)20

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

STC89C51 RC / RD+ 系列 ISP / IAP 应用STC89C51 RC / RD+ 系列 内部EEPROM的应用

                  -- 利用IAP技术可实现EEPROM,内部Flash擦写次数为100,000次以上

RC/RD+系列 8051 单片机 ISP/IAP 特殊功能寄存器    ISP/IAP SFRs

MnemonicISP_DATA

AddName

E2hISP/IAP  Flash  Data  Register

 7

 6

 5

 4 3 2

 1

 0

Reset Value1111,11110000,00000000,0000

 -

 -

 -

 - -MS2MS1MS0xxxx,x000

xxxx,xxxx

ISPENSWBSSWRST - -WT2WT1WT0000x,x000

ISP_ADDRHE3hISP/IAP  Flash  Address  HighISP_ADDRLE4hISP/IAP  Flash  Address  LowISP_CMDISP_TRIG

E5hISP/IAP  Flash  Command  RegisterE6hISP/IAP  Flash  Command  Trigger

ISP_CONTRE7hISP/IAP  Control  Register

ISP_DATA:ISP_ADDRH:ISP_ADDRL:ISP_CMD:

B7 - - - -

B6 - - - -

B5 - - - -

ISP/IAP操作时的数据寄存器。

ISP/IAP从Flash读出的数据放在此处,向Flash写的数据也需放在此处ISP/IAP操作时的地址寄存器高八位。ISP/IAP操作时的地址寄存器低八位。

ISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。

B4 - - - -

B3 - - - -

B2B1B0命令 /  操作  模式选择命令 选择 0 0 0 0

 0 0 1 1

 0 1 0 1

Standby    待机模式,无ISP操作

AP-Flash / Data-Flash  Read

对用户的应用程序Flash区及数据Flash区字节读AP-Flash / Data-Flash  Program

对用户的应用程序Flash区及数据Flash区字节编程AP-Flash / Data-Flash  Sector Erase

对用户的应用程序Flash区及数据Flash区扇区擦除

         保留

;5V单片机,应在3.6V以下时让其复位,3V单片机,应在2.4V以下时让其复位;在此电压以下,此时再用ISP/IAP功能,编程/擦除Flash,不能保证能达到要求;复位电路可选MAX810,STC810,STC6345,STC6344,813L,706P等

程序在系统ISP程序区时可以对用户应用程序区/数据Flash区(EEPROM)进行字节读/字节编程/扇区擦除;程序在用户应用程序区时,仅可以对数据Flash区(EEPROM)进行字节读/字节编程/扇区擦除。已经固化有ISP引导码,并设置为上电复位进入ISP的STC89C51RC/RD+系列单片机出厂时就已完全加密。ISP_TRIG:

ISP/IAP操作时的命令触发寄存器。

在ISPEN(ISP_CONTR.7) = 1时,对ISP_TRIG先写入46h,再写入B9h,ISP/IAP命令才会生效。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)21

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

ISP_CONTR:

 B7

 B6

ISP/IAP控制寄存器。

 B5

 B4

 B3  -

 B2 WT2

 B1 WT1

 B0

Reset Value

ISPENSWBSSWRST  - WT0000x,x000

ISPEN:

SWBS:SWRST:ISP/IAP 功能允许位。0:禁止ISP/IAP编程改变Flash,1:允许编程改变Flash软件选择从用户主程序区启动(0),还是从ISP程序区启动(1)。0: 不操作;1: 产生软件系统复位,硬件自动清零。

设置等待时间                CPU   等待时间(机器周期)WT2WT1WT0Read 0 0 0 0

 1 1 0 0

 1 0 1 0

6112243

ProgramSector EraseRecommended System Clock3060120240

5471109422188543769

5MHz10MHz20MHz40MHz

STC89C51RC/RD+系列内部可用Data Flash(EEPROM)的地址(与程序空间是分开的):有网友来电说不能IAP写数据,后检查原来他把地址指向了程序区,被单片机忽略程序在用户应用程序区(AP区)时,仅可以对Data Flash(EEPROM)进行IAP/ISP操作,不可以修改自身,这是系统可靠的基础。

STC89C51RC,STC89LE51RC单片机内部可用Data Flash(EEPROM)的地址:

第一扇区起始地址1000h

结束地址11FFh

第二扇区起始地址1200h

结束地址13FFh

第三扇区起始地址1400h

结束地址15FFh

第四扇区起始地址1600h

结束地址17FFh

建议只用128字节以下每个扇区512字节

第五扇区起始地址1800h

结束地址19FFh

第六扇区起始地址1A00h

结束地址1BFFh

第七扇区起始地址1C00h

结束地址1DFFh

第八扇区起始地址1E00h

结束地址1FFFh

STC89C52RC,STC89LE52RC单片机内部可用Data Flash(EEPROM)的地址:

        第一扇区起始地址2000h

结束地址21FFh

        第二扇区起始地址2200h

结束地址23FFh

        第三扇区起始地址2400h

结束地址25FFh

       第四扇区起始地址2600h

结束地址27FFh

每个扇区512字节建议只用128字节以下

        第五扇区起始地址2800h

结束地址29FFh

        第六扇区起始地址2A00h

结束地址2BFFh

        第七扇区起始地址2C00h

结束地址2DFFh

       第八扇区起始地址2E00h

结束地址2FFFh

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)22

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

STC89C54RD+,STC89LE54RD+单片机内部可用Data Flash(EEPROM)的地址:

第一扇区起始地址4000h

结束地址41FFh

第二扇区起始地址4200h

结束地址43FFh

第三扇区起始地址4400h

结束地址45FFh

第四扇区起始地址4600h

结束地址47FFh

每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下

第五扇区起始地址4800h

结束地址49FFh

第六扇区起始地址4A00h

结束地址4BFFh

第七扇区起始地址4C00h

结束地址4DFFh

第八扇区起始地址4E00h

结束地址4FFFh

第九扇区起始地址5000h

结束地址51FFh

第十扇区起始地址5200h

结束地址53FFh

第十一扇区起始地址5400h

结束地址55FFh

第十二扇区起始地址5600h

结束地址57FFh

第十三扇区起始地址5800h

结束地址59FFh

第十四扇区起始地址5A00h

结束地址5BFFh

第十五扇区起始地址5C00h

结束地址5DFFh

第十六扇区起始地址5E00h

结束地址5FFFh

第十七扇区起始地址6000h

结束地址61FFh

第十八扇区起始地址6200h

结束地址63FFh

第十九扇区起始地址6400h

结束地址65FFh

第二十扇区起始地址6600h

结束地址67FFh

第二十一扇区起始地址6800h

结束地址69FFh

第二十二扇区起始地址6A00h

结束地址6BFFh

第二十三扇区起始地址6C00h

结束地址6DFFh

第二十四扇区起始地址6E00h

结束地址6FFFH

第二十五扇区起始地址7000h

结束地址71FFh

第二十六扇区起始地址7200h

结束地址73FFh

第二十七扇区起始地址7400h

结束地址75FFh

第二十八扇区起始地址7600h

结束地址77FFH

第二十九扇区起始地址7800h

结束地址79FFh

第三十扇区起始地址7A00h

结束地址7BFFh

第三十一扇区起始地址7C00h

结束地址7DFFh

第三十二扇区起始地址7E00h

结束地址7FFFH

第三十三扇区起始地址8000h

结束地址81FFh

第三十四扇区起始地址8200h

结束地址83FFh

第三十五扇区起始地址8400h

结束地址85FFh

第三十六扇区起始地址8600h

结束地址87FFH

第三十七扇区起始地址8800h

结束地址89FFh

第三十八扇区起始地址8A00h

结束地址8BFFh

第三十九扇区起始地址8C00h

结束地址8DFFh

第四十扇区起始地址8E00h

结束地址8FFFH

第四十一扇区起始地址9000h

结束地址91FFh

第四十二扇区起始地址9200h

结束地址93FFh

第四十三扇区起始地址9400h

结束地址95FFh

第四十四扇区起始地址9600h

结束地址97FFH

第四十五扇区起始地址9800h

结束地址99FFh

第四十六扇区起始地址9A00h

结束地址9BFFh

第四十七扇区起始地址9C00h

结束地址9DFFh

第四十八扇区起始地址9E00h

结束地址9FFFH

第四十九扇区起始地址A000h

结束地址A1FFh

第五十扇区起始地址A200h

结束地址A3FFh

第五十一扇区起始地址A400h

结束地址A5FFh

第五十二扇区起始地址A600h

结束地址A7FFH

第五十三扇区起始地址A800h

结束地址A9FFh

第五十四扇区起始地址AA00h

结束地址ABFFh

第五十五扇区起始地址AC00h

结束地址ADFFh

第五十六扇区起始地址AE00h

结束地址AFFFH

第五十七扇区起始地址B000h

结束地址B1FFh

第五十八扇区起始地址B200h

结束地址B3FFh

第五十九扇区起始地址B400h

结束地址B5FFh

第六十扇区起始地址B600h

结束地址B7FFH

第六十一扇区起始地址B800h

结束地址B9FFh

第六十二扇区起始地址BA00h

结束地址BBFFh

第六十三扇区起始地址BC00h

结束地址BDFFh

第六十四扇区起始地址BE00h

结束地址BFFFH

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)23

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

STC89C58RD+,STC89LE58RD+单片机内部可用Data Flash(EEPROM)的地址:

第一扇区起始地址8000h结束地址81FFh第二扇区起始地址8200h结束地址83FFh第三扇区起始地址8400h结束地址85FFh第四扇区起始地址8600h结束地址87FFh每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下每个扇区512字节建议只用128字节以下第五扇区起始地址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第五十七扇区第五十八扇区第五十九扇区第六十扇区起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址F000hF1FFhF200hF3FFhF400hF5FFhF600hF7FFH宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)24

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

STC89C51 RC / RD+ 系列 IAP 应用汇编简介STC89C51 RC / RD+ 系列 内部EEPROM的应用

有网友要求提供汇编示例,请尽量参考已调通的C原程序

;用DATA还是EQU声明新增特殊功能寄存器地址要看你用的汇编器/编译器

ISP_DATADATA0E2h;或ISP_DATAEQU0E2hISP_ADDRHDATA0E3h;或ISP_ADDRHEQU0E3hISP_ADDRLDATA0E4h;或ISP_ADDRLEQU0E4hISP_CMDDATA0E5h;或ISP_CMDEQU0E5hISP_TRIGDATA0E6h;或ISP_TRIGEQU0E6hISP_CONTRDATA0E7h;或ISP_CONTREQU0E7h;定义ISP/IAP命令及等待时间

ISP_IAP_BYTE_READEQU1;字节读ISP_IAP_BYTE_PROGRAMEQU2;字节编程,前提是该字节是空,0FFhISP_IAP_SECTOR_ERASEEQU3;扇区擦除,要某字节为空,要擦一扇区WAIT_TIMEEQU0;设置等待时间,40MHz以下0,20M以下1,

;10MHz以下2,5M以下3

;字节读

MOVISP_ADDRH,#BYTE_ADDR_HIGH;送地址高字节MOVISP_ADDRL,#BYTE_ADDR_LOW;送地址低字节CLREA;关中断,此时各中断请求,会被挂起,一开中断,立即响应;加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位

MOVISP_CONTR,#WAIT_TIME;设置等待时间ORLISP_CONTR,#10000000B;允许ISP/IAP操作MOVISP_CMD,#ISP_IAP_BYTE_READ;送字节读命令

;加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位

MOVISP_TRIG,#46h;先送46h,再送B9h到ISP/IAP触发寄存器;加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位

MOVISP_TRIG,#0B9h;送完B9h后,ISP/IAP命令立即被触发起动;CPU等待IAP动作完成后,才会继续执行程序,要先关中断(EA),

;再送46h,B9h到ISP/IAP触发寄存器,起动ISP/IAP命令,关中断在触发之前即可

NOP;数据读出到ISP_DATA寄存器后,CPU继续执行程序MOVISP_CONTR,#00000000B;禁止ISP/IAP操作MOVISP_CMD,#00000000B;去除ISP/IAP命令MOVISP_TRIG,#00000000B;防止ISP/IAP命令误触发MOVISP_ADDRH,#0FF;送地址高字节单元为FF,防止误操作MOVISP_ADDRL,#0FF;送地址低字节单元为FF,防止误操作SETBEA;开中断,CPU处理完ISP/IAP动作即可开中断MOVA,ISP_DATA;将读出的数据送往Acc

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)25

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

;字节编程,该字节为FFh/空时,可对其编程,否则不行,要先执行扇区擦除

MOVISP_DATA,#ONE_DATA;送字节编程数据到ISP_DATAMOVISP_ADDRH,#BYTE_ADDR_HIGH;送地址高字节MOVISP_ADDRL,#BYTE_ADDR_LOW;送地址低字节CLREA;关中断,此时各中断请求,会被挂起,一开中断,立即响应;加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位

MOVISP_CONTR,#WAIT_TIME;设置等待时间ORLISP_CONTR,#10000000B;允许ISP/IAP操作MOVISP_CMD,#ISP_IAP_BYTE_PROGRAM;送字节编程命令;加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位

MOVISP_TRIG,#46h;先送46h,再送B9h到ISP/IAP触发寄存器;加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位

MOVISP_TRIG,#0B9h;送完B9h后,ISP/IAP命令立即被触发起动;CPU等待IAP动作完成后,才会继续执行程序,要先关中断(EA),

;再送46h,B9h到ISP/IAP触发寄存器,起动ISP/IAP命令,关中断在触发之前即可

NOP;字节编程成功后,CPU继续执行程序MOVISP_CONTR,#00000000B;禁止ISP/IAP操作MOVISP_CMD,#00000000B;去除ISP/IAP命令MOVISP_TRIG,#00000000B;防止ISP/IAP命令误触发MOVISP_ADDRH,#0FF;送地址高字节单元为FF,防止误操作MOVISP_ADDRL,#0FF;送地址低字节单元为FF,防止误操作

SETBEA

开中断,CPU处理完ISP/IAP动作即可开中断

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

26

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

;扇区擦除,没有字节擦除,只有扇区擦除,512字节/扇区,每个扇区建议只用;1字节/2字节/3字节/4字节---128字节/256字节/512字节,用得越少越方便

;如果要对某个扇区进行擦除,而其中有些字节的内容需要保护,则需将其先读到单片机;内部的RAM中保存,再将该扇区擦除,然后再将保存的数据写回该扇区,所以每个扇区;中用的字节数越少越好,操作起来越灵活越快(每个扇区只用1-128字节以内较方便)

MOVISP_ADDRH,#SECTOR_FIRST_BYTE_ADDR_HIGH;送扇区起始地址高字节MOVISP_ADDRL,#SECTOR_FIRST_BYTE_ADDR_LOW;送扇区起始地址低字节CLREA;关中断,此时各中断请求,会被挂起,一开中断,立即响应;加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位

MOVISP_CONTR,#WAIT_TIME;设置等待时间ORLISP_CONTR,#10000000B;允许ISP/IAPMOVISP_CMD,#ISP_IAP_SECTOR_ERASE;送扇区擦除命令;加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位

MOVISP_TRIG,#46h;先送46h,再送B9h到ISP/IAP触发寄存器;加入软件陷阱判断,如为非法状态,则让单片机进入掉电模式或软复位

MOVISP_TRIG,#0B9h;送完B9h后,ISP/IAP命令立即被触发起动;CPU等待IAP动作完成后,才会继续执行程序,要先关中断(EA),

;再送46h,B9h到ISP/IAP触发寄存器,起动ISP/IAP命令,关中断在触发之前即可

NOP;扇区擦除成功后,CPU继续执行程序MOVISP_CONTR,#00000000B;禁止ISP/IAP操作MOVISP_CMD,#00000000B;去除ISP/IAP命令MOVISP_TRIG,#00000000B;防止ISP/IAP命令误触发MOVISP_ADDRH,#0FF;送地址高字节单元为FF,防止误操作MOVISP_ADDRL,#0FF;送地址低字节单元为FF,防止误操作

;从用户应用程序区(AP区)软件复位并切换到ISP程序区开始执行程序MOVISP_CONTR,#01100000B;SWBS = 1(选择ISP区), SWRST = 1(软复位);从ISP程序区软件复位并切换到用户应用程序区(AP区)开始执行程序MOVISP_CONTR,#00100000B;SWBS = 0(选择AP区), SWRST = 1(软复位);使用ISP/IAP功能的朋友尽量给13922805190(姚工)一个电话交流一下;建议在打开ISP之前及在ISP触发送46H,B9H之前三个地方,各加些软件陷阱;5V单片机,应在3.6V以下时让其复位,3V单片机,应在2.4V以下时让其复位;在此电压以下,此时再用ISP/IAP功能,编程/擦除Flash,不能保证能达到要求;复位电路可选MAX810,STC810,STC6345,STC6344,813L,706P等

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

27

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

附录A:

 为什么少数用户的普通8051程序烧录后,不能运行

1. 增强型的STC89C58RD+,STC89C52RC系列单片机内部扩展了AUX-RAM.

型号STC89C51RCSTC89LE51RCSTC89C52RCSTC89LE52RCSTC89C53RCSTC89LE53RCSTC89C54RD+STC89LE54RD+STC89C58RD+STC89LE58RD+STC89C516RD+

内部扩展RAM256    字节256    字节256    字节256    字节256    字节256    字节1024  字节1024  字节1024  字节1024  字节1024  字节

占外部64K数据空间0000H - 00FFH0000H - 00FFH0000H - 00FFH0000H - 00FFH0000H - 00FFH0000H - 00FFH0000H - 03FFH0000H - 03FFH0000H - 03FFH0000H - 03FFH0000H - 03FFH0000H - 03FFH

MOVX  @DPTR / xdata地址>=100H,才访问外部地址>=100H,才访问外部地址>=100H,才访问外部地址>=100H,才访问外部地址>=100H,才访问外部地址>=100H,才访问外部地址>=400H,才访问外部地址>=400H,才访问外部地址>=400H,才访问外部地址>=400H,才访问外部地址>=400H,才访问外部地址>=400H,才访问外部0000-FFFFH,均访问外部0000-FFFFH,均访问外部

MOVX  @Ri  / pdata只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM只访问内部扩展RAM

STC89LE516RD+1024  字节STC89LE516ADSTC89LE516X2

256   字节256   字节

STC89C52RC / STC89C58RD+系列

如果用户的单片机 P0 / P2 口是作为普通I/O口(输入/输出口)用的,无冲突

如果用户的单片机 P0 / P2 口是作为总线扩展用的,外部扩展器件的地址在内部扩展RAM之上,无冲突

如果用户的单片机 P0 / P2 口是作为总线扩展用的,访问外部扩展器件的地址在内部扩展RAM的范围内,则访问的是内部扩展的AUX-RAM,所以有些系统用户要禁止内部扩展RAM

MnemonicAddNameAUXR

  7

 6 -

 5 -

 4 -

 3 -

 2 -

    1

 0

Reset value

8EhAuxiliary  Register  0 -EXTRAMALEOFFxxxx,xx00

将AUXR寄存器的EXTRAM设为1,即可禁止内部扩展的AUX-RAM,使之与标准8052一样。STC89LE516AD / STC89LE516X2系列AUXR寄存器无EXTRAM控制位,通过寻址方式区分

,“MOVX @Ri”固定访问内部扩展RAM,“MOVX, @DPTR”固定访问外部扩展64K数据空间,详见相应部分说明。

2.晶振 / 时钟电路

STC89C52RC / STC89C58RD+ 现系列要求将XTAL1管脚接的电容去掉,XTAL2管脚接的电容为47pF,33pF,30pF,详见相应部分说明。

STC89LE516AD / STC89LE516X2系列 XTAL1 / XTAL2管脚的电容接10pF

3.复位电路

电阻/电容复位的值为  电阻 = 10k, 电容 = 10uF。如为用外部专用芯片复位,RESET管脚(复位脚)不要加任何上拉/下拉电阻。详见相应部分说明

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

28

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

附录B:

        STC89LE516AD系列单片机指南

       特殊功能寄存器映像  SFR Mapping

STC89LE516AD,STC89LE58AD,STC89LE54AD,STC89LE52AD为单倍速

因AD系列用户ISP设不了双倍速,故有一STC89LE516AD的双倍速版本(6T)STC89LE516X2是同一芯片,只是出厂时就设为双倍速了。

      Bit                                 Non  Bit  AddressableAddressable      0/8F8hF0hE8hE0hD8hD0hC8hC0hB8hB0hA8hA0h98h90h88h80h     PSW0000,0000    T2CON0000,0000    P4xxxx,1111      IPx000,0000      P31111,1111      IE0000,0000      P21111,1111    SCON0000,0000      P11111,1111    TCON0000,0000      P01111,1111      0/8    TMOD    TL0    TL1    TH0    TH1    AUXR0000,00000000,00000000,00000000,00000000,0000xxxx,xxx0     SP     DPL     DPH0000,01110000,00000000,0000     1/9     2/A     3/B     4/C    5/D    6/E    SBUFxxxx,xxxx    SADDR0000,0000   AUXR1xxxx,xxx0    SADEN0000,0000    T2MOD   RCAP2L   RCAP2H    TL2    TH2xxxx,xx000000,00000000,00000000,00000000,0000ADC_CONTRADC_DATAxxx0,0000xxxx,xxxx     ACC0000,0000      B0000,0000     1/9     2/A     3/B     4/C    5/D    6/E    7/FFFhF7hEFhE7hDFhD7hCFhC7hBFh    IPHB7hx000,0000AFhA7h9FhP1_ADC_EN97h0000,00008Fh    PCON87h0xx1,0000    7/F29

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

      STC89LE516AD / X2 系列单片机 管脚图

XTAL1                                                 P1.1/T2EX/ADC1RD/P3.7                                                 P1.3/ADC3WR/P3.6                                                 P1.4/ADC4XTAL2                                                 P1.2/ADC2VSS                                                 P1.0/T2/ADC0A11/P2.3                                                 P0.2/AD2A10/P2.2                                                 P0.1/AD1A12/P2.4                                                 P0.3/AD3A9/P2.1                                                 P0.0/AD0P4.0                                                 P4.2 6   5  4   3  2  1  44 43 42 41 40

ADC5/P1.5      7                                       39      P0.4/AD4ADC6/P1.6      8                                       38      P0.5/AD5ADC7/P1.7      9                                       37      P0.6/AD6RST      10                                      36      P0.7/AD7RXD/P3.0      11                                      35      EAP4.3      12                                      34      P4.1TXD/P3.1      13                                      33      ALE/PROGINT0/P3.2      14                                      32      PSENINT1/P3.3      15                                      31      P2.7/A15T0/P3.4      16                                      30      P2.6/A14T1/P3.5      17                                      29      P2.5/A1318 19 20 21 22 23 24 25  26 27 28

PLCC-44

A8/P2.0                                                 VDDXTAL1                                                 P1.1/T2EX/ADC1WR/P3.6                                                 P1.4/ADC4RD/P3.7                                                 P1.3/ADC3XTAL2                                                 P1.2/ADC2VSS                                                 P1.0/T2/ADC0A10/P2.2                                                 P0.1/AD144 43 42 41 40 39 38 37 36 35 34

ADC5/P1.5      1                                       33      P0.4/AD4ADC6/P1.6      2                                       32      P0.5/AD5ADC7/P1.7      3                                       31      P0.6/AD6RST      4                                       30      P0.7/AD7RXD/P3.0      5                                       29      EAP4.3      6                                       28      P4.1TXD/P3.1      7                                       27      ALE/PROGINT0/P3.2      8                                       26      PSENINT1/P3.3      9                                       25      P2.7/A15T0/P3.4      10                                      24      P2.6/A14T1/P3.5      11                                      23      P2.5/A13

12 13 14 15 16 17 18 19  20 21 22

A/D转换典型应用线路:按键扫描

Vcc工作电压: 3.6V - 2.4V,  可低至2.4V - 1.9V

10K

I/O口: P0,P2,P3,P4口可以承受5V输入。         P1口不要接到5V系统,只能接3.3V系统.P4口: 地址在C0H, P4.3 - P4.0A/D转换在P1口, P1.0 - P1.7八路。

10K

A8/P2.0                                                 VDDADC0/T2/P1.0    1          40      VCC  ADC1/T2EX/P1.1    2          39      P0.0/AD0

ADC2/P1.2    3          38      P0.1/AD1ADC3/P1.3    4          37      P0.2/AD2ADC4/P1.4    5          36      P0.3/AD3ADC5/P1.5    6          35      P0.4/AD4ADC6/P1.6    7          34      P0.5/AD5ADC7/P1.7     8          33       P0.6/AD6

RST     9            32     P0.7/AD7 RXD/P3.0    10         31       EATXD/P3.1     11         30      ALE/PROGINT0/P3.2    1 2         29      PSENINT1/P3.3     13         28      P2.7/A15T0/P3.4     14         27      P2.6/A14T1/P3.5     15         26      P2.5/A13WR/P3.6     16         25      P2.4/A12RD/P3.7     17         24      P2.3/A11XTAL2     18        23      P2.2/A10XTAL1    19         22     P2.1/A9 VSS     20         21      P2.0/A8

P1.0 - P1.7A/D

1/2 Vcc10K

2/3 Vcc10K

3/4 Vcc10K

4/5 Vcc宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

A11/P2.3                                                 P0.2/AD2A12/P2.4                                                 P0.3/AD3A9/P2.1                                                 P0.0/AD0P4.0                                                 P4.2PQFP-44DIP-40宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

1.STC89LE516AD系列单片机扩展AUX-RAM的使用

    STC89LE516AD/X2系列单片机内部的RAM为512字节(256+256),即扩展了256字节的AUX-RAM,其访问方式为:

汇编语言:  (访问内部扩展的256字节AUX-RAM)

        MOVX   @Ri,  A   ;   将累加器A的值送至@Ri指向的单元, i = 0, 1        MOVX   A,    @Ri ;   将@Ri指向的单元的值读到累加器A, i = 0, 1STC89LE516AD/X2系列单片机用“MOVX  A, @Ri”,“MOVX  A, @Ri”指令访问不到外部64K数据空间。

汇编语言:  (访问外部64K数据空间)

        MOVX   @DPTR,  A     ;   将累加器A的值送至@DPTR指向的单元        MOVX   A,      @DPTR ;   将@DPTR指向的单元的值读到累加器A

STC89LE516AD/X2系列单片机用“MOVX  A, @DPTR”,“MOVX  A, @DPTR”指令访问不到内部扩展的256字节AUX-RAM。C语言:

用pdata 声明的变量访问单片机内部扩展的256字节AUX-RAM用xdata 声明的变量访问单片机外部64K数据空间

2.双数据指针 及  AUXR1寄存器

AUXR1

A2hAuxiliary  Register  1 -

 -

 -

 -

 -

   -DPSxxxx,xxx0

DPS = 0 时选择 DPTR0, DPS = 1 时选择 DPTR1

可以用 “INC AUXR1” 快速切换 DPTR0 / DPTR1

3.禁止ALE输出 及  AUXR1寄存器

AUXR

8EhAuxiliary  Register  0 -

 - - -

 -

 -

 -

ALEOFFxxxx,xxx0

ALEOFF = 0, ALE信号正常输出。

ALEOFF = 1, 禁止ALE信号输出。但在访问外部数据空间及外部程序空间时有信号输出。

4.中断 及  中断优先级控制寄存器 IP / IPH

中断与普通8052完全兼容,优先级可设为4级,通过增加的IPH寄存器

MnemonicAddIEIPIPH

A8hB8hB7h

Name

Interrupt  EnableInterrupt  Priority  LowInterrupt  Priority  High

 7EA - -

 6 - - -

 5ET2PT2

 4ESPS

 3ET1PT1

 2EX1PX1

 1ET0PT0

 0EX0PX0

Reset Value0000,0000xx00,0000

PT2HPSHPT1HPX1HPT0HPX0Hxx00,0000

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

Interrupt Source中断源/INT0Timer 0/INT1Timer 1UARTTimer 2

VectorAddress中断向量地址0003H000BH0013H001BH0023H002BH

Polling

Interrupt

优先级3Sequence中断优先级0

Request优先级1优先级2

优先级设置最低最高中断

中断请求

查询次序123456

PX0H,PX0PT0H,PT0PX1H,PX1PT1H,PT1PSH,  PSPT2H,PT2

0,00,00,00,00,00,0

0,10,10,10,10,10,1

1,01,01,01,01,01,0

1,11,11,11,11,11,1

IE0TF0IE1IF1RI + TITF2 + EXF2

4.A/D 及  A/D转换寄存器 ADC_CONTR/ADC_DATA/P1_ADC_EN

STC89LE516AD/X2在P1口,有8位精度的高速A/D转换器, P1.7 - P1.0共8路

电压输入型,可做按键扫描,电池电压检测,频谱检测等。17个机器周期可完成一次转换,时钟在40MHz以下时。

Mnemonic

Add

Name

允许P1.x成为A/D口A/D 转换控制寄存器A/D 转换结果寄存器

 7 - -

 6 - -

 5- -

 4

 3ADC_P13 -

 2

 1CHS1 -

 0CHS0 -

Reset Valuexxx0,00000000,0000

P1_ADC_EN97hADC_CONTRC5hADC_DATA

C6h

ADC_P17 ADC_P16ADC_P15ADC_P14

 -

ADC_P12ADC_P11ADC_P100000,0000 -

ADC_FLAGADC_STARTCHS2

P1_ADC_EN 特殊功能寄存器:  P1.x作为A/D 转换输入通道来用允许特殊功能寄存器

允许P1.x成为A/D口ADC_P17 ADC_P16ADC_P15ADC_P14ADC_P13ADC_P12ADC_P11ADC_P100000,0000

相应位为“1”时,对应的P1.x口作为A/D转换使用,内部上拉电阻自动断开ADC_CONTR 特殊功能寄存器:  A/D转换控制特殊功能寄存器

A/D 转换控制寄存器 - --

ADC_FLAGADC_STARTCHS2CHS1CHS0xxx0,0000

CHS2 / CHS1 / CHS0:模拟输入通道选择,CHS2 / CHS1 / CHS0

CHS200001111

CHS100110011

CHS001010101

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输入来用

ADC_START: 模拟/数字转换(ADC)启动控制位,设置为“1”时,开始转换ADC_FLAG:   模拟/数字转换结束标志位,当A/D转换完成后,ADC_FLAG = 1。ADC_DATA  特殊功能寄存器:  A/D转换结果特殊功能寄存器

A/D 转换结果寄存器

 -

 -

 -

 -

 -

 -

 -

 -

0000,0000

模拟/数字转换结果计算公式如下: 结果 = 256 x Vin / Vcc

Vin为模拟输入通道输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

32

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

/* ------------- 宏晶科技   2005/1/5      A/D转换C语言示例 ------------ *//* ---Mobile: 13922805190, Tel: 0755 - 82908285,  Fax: 0755 - 82944243  *//* ----Website: www.mcu-memory.com   Email: support@dsp-memory.com  --- *///   ADC DEMO 程序演示 STC89LE516AD/X2 系列 MCU 的 A/D 转换功能。 时钟   11.0592MHz//  转换结果以 16 进制形式输出到串行口,可以用串行口调试程序观察输出结果。#include <reg52.H>#include <intrins.H>

//定义与 ADC 有关的特殊功能寄存器sfrsfrsfr

P1_ADC_ENADC_CONTRADC_DATA

===

0x97;               // A/D 转换功能允许寄存器0xC5;               // A/D 转换控制寄存器0xC6;               // A/D 转换结果寄存器

typedef    unsigned char   INT8U;typedef    unsigned int    INT16U;

void delay(INT8U delay_time)            // 延时函数{

    INT8U    INT16U    {

        for (m=0; m<10000; m++);    }}

void initiate_RS232 (void)          // 串口初始化{

    ES = 0;                         // 禁止串口中断

    SCON = 0x50;                    // 0101,0000  8位数据位, 无奇偶校验    T2CON = 0x34;                   // 0011,0100, 由T2作为波特率发生器    RCAP2H = 0xFF;                  // 时钟11.0592MHz,  9600 波特率    RCAP2L = 0xDB;

    ES = 1;                         // 允许串口中断}

void Send_Byte(INT8U one_byte)      // 发送一个字节{

    TI = 0;                         // 清零串口发送中断标志    SBUF = one_byte;    while (TI == 0);

    TI = 0;                         // 清零串口发送中断标志}

n;m;

    for (n=0; n<delay_time; n++)

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

33

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

INT8U get_AD_result(INT8U channel){

    INT8U AD_finished    ADC_DATA    delay(1);

    ADC_CONTR |= 0x08;    AD_finished = 0;

    while ( AD_finished == 0 )    {

        AD_finished = (ADC_CONTR & 0x10);  //0001,0000, ADC_FLAG ==1 测试A/D转换结束否    }

    ADC_CONTR &= 0xF7;                  //1111,0111 令 ADC_START = 0, 关闭A/D转换,    return (ADC_DATA);}

void main(){

    initiate_RS232();    P1

P1

0x63;   // 0110,0011,要设置为 A/D 转换的P1.x口,先设为高

    P1_ADC_EN = 0x63;      //0110,0011, P1 的P1.0,P1.1,P1.5,P1.6设置为 A/D 转换输入脚                           //断开P1.0,P1.1,P1.5,P1.6内部上拉电阻    while(1)    {

        Send_Byte(get_AD_result(0));//P1.0 为 A/D 当前通道, 测量并发送结果        delay(0x200);

        Send_Byte(get_AD_result(1));//P1.1 为 A/D 当前通道, 测量并发送结果        delay(0x200);

        Send_Byte(get_AD_result(5));//P1.5 为 A/D 当前通道, 测量并发送结果        delay(0x200);

        Send_Byte(get_AD_result(6));//P1.6 为 A/D 当前通道, 测量并发送结果        delay(0x200);

        Send_Byte(0);               //连续发送 4 个 00H, 便于观察输出显示        Send_Byte(0);        Send_Byte(0);        Send_Byte(0);

        delay(0x200);               //延时        delay(0x200);        delay(0x200);        delay(0x200);        delay(0x200);        delay(0x200);    }}

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

34

= 0;

0;            // 存储 A/D 转换标志

//选择 A/D 当前通道//使输入电压达到稳定

//0000,1000 令 ADC_START = 1, 启动A/D转换//等待A/D转换结束

    ADC_CONTR  = channel;

  // 返回 A/D 转换结果

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

附录C:

      STC89C51 RC / RD+ 系列 单片机 ISP (DIY)

自己动手写自己的ISP,写自己的远程升级程序还需了解的信息,只提供给策略性伙伴用户程序区空间和ISP程序区空间:

     型号STC89C51RCSTC89LE51RCSTC89C52RCSTC89LE52RC

用户应用程序区AP Space 地址0000H - 0FFFH0000H - 0FFFH0000H - 1FFFH0000H - 1FFFH用户应用程序区AP Space 地址0000H - 3BFFH0000H - 3BFFH0000H - 37FFH0000H - 37FFH0000H - 33FFH0000H - 33FFH0000H - 2BFFH0000H - 2BFFH

ISP 引导区空间(ISP Space),从ISP区启动MCU才有IAP功能0 K目前

版本禁止ISP/IAP操作

1K(保留IAP)3800H - 3BFFH3800H - 3BFFH3800H - 3BFFH3800H - 3BFFH

2 K(保留IAP)3400H - 3BFFH3400H - 3BFFH3400H - 3BFFH3400H - 3BFFH

4K(保留IAP)2C00H - 3BFFH2C00H - 3BFFH2C00H - 3BFFH2C00H - 3BFFH

     型号STC89C53RCSTC89LE53RCSTC89C53RCSTC89LE53RCSTC89C53RCSTC89LE53RCSTC89C53RCSTC89LE53RC

ISP 引导区空间(ISP Space),从ISP区启动MCU才有IAP功能0 K

目前版本禁止ISP/IAP操作

3800H - 3BFFH3800H - 3BFFH

3400H - 3BFFH3400H - 3BFFH

2C00H - 3BFFH2C00H - 3BFFH

1K(保留IAP)

2 K(保留IAP)

4K(保留IAP)

     型号STC89C54RD+STC89LE54RD+STC89C58RD+STC89LE58RD+

用户应用程序区AP Space 地址0000H - 3FFFH0000H - 3FFFH0000H - 7FFFH0000H - 7FFFH用户应用程序区AP Space 地址0000H - FBFFH0000H - FBFFH0000H - F7FFH0000H - F7FFH0000H - F3FFH0000H - F3FFH0000H - EBFFH0000H - EBFFH

ISP 引导区空间(ISP Space),从ISP区启动MCU才有IAP功能0 K目前

版本禁止ISP/IAP操作

1K(保留IAP)F800H - FBFFHF800H - FBFFHF800H - FBFFHF800H - FBFFH

2 K(保留IAP)F400H - FBFFHF400H - FBFFHF400H - FBFFHF400H - FBFFH

4K(保留IAP)EC00H - FBFFHEC00H - FBFFHEC00H - FBFFHEC00H - FBFFH

     型号STC89C516RD+STC89LE516RD+STC89C516RD+STC89LE516RD+STC89C516RD+STC89LE516RD+STC89C516RD+STC89LE516RD+

ISP 引导区空间(ISP Space),从ISP区启动MCU才有IAP功能0 K

目前版本禁止ISP/IAP操作

F800H - FBFFHF800H - FBFFH

F400H - FBFFHF400H - FBFFH

EC00H - FBFFHEC00H - FBFFH

35

1K(保留IAP)2 K(保留IAP)4K(保留IAP)

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

    动手写自己的ISP还必需要的工具,只提供给策略性伙伴                   -----STC89C51RC / RD+ 系列单片机专用编程工具(200元)    STC89C51RC / RD+ 系列单片机出厂时一般都固化有ISP引导码程序,如只烧录普通的用户程序,则只需将P3.0/P3.1经过RS-232转换器连到电脑的RS-232串口,通过STC-ISP下载软件打开用户程序下载就可以了。如果不用STC的ISP程序而要编写自己的ISP程序,则需要STC89C51RC / RD+ 系列单片机专用编程工具,才可将用户的ISP程序烧录进单片机内部,软件使用STC MCU Programmer编程工具。

   方式一:用户主应用程序和ISP程序一起烧录,上电复位后程序从ISP区开始运行

一.三个加密项全部加密

二.缓冲区从0开始,清缓冲区调入用户主应用程序

三.选定ISP空间从那里开始,不清缓冲区调入ISP程序,保留已调入的程序,用户ISP空间可选0/1K/2K/4K四.选择从ISP区启动

五.烧录程序

   也可直接调入ISP程序至ISP区,选择从ISP程序区启动,再烧录。用户主应用程序由用户自己编的ISP程序下载。还可以把ISP区当成用户程序区,把余下的空间当成DataFlash 数据空间。如STC89C516RD+,4K ISP区当用户程序使用,余下59K当EEPROM用。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

36

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

    方式二:用户主应用程序和ISP程序一起烧录,上电复位后程序从用户主应用程序区开始运行(但现版本单片机ISP/IAP就会无效,只能当成无ISP/IAP的单片机使用,故此法对于写自己的ISP程序来说无效)

一.三个加密项全部加密

二.缓冲区从0开始,清缓冲区调入用户主应用程序

三.选定ISP空间从那里开始,不清缓冲区调入用户自己的ISP程序,保留已调入的程序

四.选择从用户主应用程序区启动,现版本芯片会无ISP/IAP功能,故应设置成从ISP区启动。五.烧录程序

已加过密的单片机,或已设置过ISP空间为1k/2k/4k,上电复位从ISP空间启动的单片机,重新烧录程序时,要先将整个芯片擦除,再停电(单片机电放光后),再上电,再重烧程序,才会写对。擦除整个芯片后,重新允许读出芯片内容的状态,是停电再上电后才能生效。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

37

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

附录D: ISP Demo(演示版)软件(*.hex)及通信协议

www.mcu-memory.com网站上也会提供用户可直接使用的单片机ISP-Demo软件(*.hex),可由用户直接用STC专用编程器烧入即可,在STC-ISP.exe软件中选择 “ISP Demo”功能项下载程序即可。将来的STC专用编程器软件将会自带此单片机ISP程序功能,格式是偶校验,8位数据位,1位停止位,用户要根据单片机工作时钟,确定用那种合理的波特率。(说明:出厂时单片机一般都已烧录有标准的ISP文件,不过那个协议不公开)

STC89C51RCSTC89LE51RC40MHz33MHz27MHz24MHz22.1184MHz20MHz18.432MHz12MHz11.0592MHz

115,200 bps51_40M_115200.hex51_33M_115200.hex51_27M_115200.hex51_24M_115200.hex51_22.1184M_115200.hex51_20M_115200.hex51_18.432M_115200.hex51_12M_115200.hex51_11.0592M_115200.hex

57,600bps51_40M_57600.hex51_33M_57600.hex51_27M_57600.hex51_24M_57600.hex51_22.1184M_57600.hex51_20M_57600.hex51_18.432M_57600.hex51_12M_57600.hex51_11.0592M_57600.hex

38,400bps51_40M_38400.hex51_33M_38400.hex51_27M_38400.hex51_24M_38400.hex51_22.1184M_38400.hex51_20M_38400.hex51_18.432M_38400.hex51_12M_38400.hex51_11.0592M_38400.hex

19,200bps51_40M_19200.hex51_33M_19200.hex51_27M_19200.hex51_24M_19200.hex51_22.1184M_19200.hex51_20M_19200.hex51_18.432M_19200.hex51_12M_19200.hex51_11.0592M_19200.hex

9,600bps51_40M_9600.hex51_33M_9600.hex51_27M_9600.hex51_24M_9600.hex51_22.1184M_9600.hex51_20M_9600.hex51_18.432M_9600.hex51_12M_9600.hex51_11.0592M_9600.hex

4,800bps51_40M_4800.hex51_33M_4800.hex51_27M_4800.hex51_24M_4800.hex51_22.1184M_4800.hex51_20M_4800.hex51_18.432M_4800.hex51_12M_4800.hex51_11.0592M_4800.hex

2,400bps51_40M_2400.hex51_33M_2400.hex51_27M_2400.hex51_24M_2400.hex51_22.1184M_2400.hex51_20M_2400.hex51_18.432M_2400.hex51_12M_2400.hex51_11.0592M_2400.hex

1,200bps51_40M_1200.hex51_33M_1200.hex51_27M_1200.hex51_24M_1200.hex51_22.1184M_1200.hex51_20M_1200.hex51_18.432M_1200.hex51_12M_1200.hex51_11.0592M_1200.hex

STC89C52RCSTC89LE52RC40MHz33MHz27MHz24MHz22.1184MHz20MHz18.432MHz12MHz11.0592MHz

115,200 bps52_40M_115200.hex52_33M_115200.hex52_27M_115200.hex52_24M_115200.hex52_22.1184M_115200.hex52_20M_115200.hex52_18.432M_115200.hex52_12M_115200.hex52_11.0592M_115200.hex

57,600bps52_40M_57600.hex52_33M_57600.hex52_27M_57600.hex52_24M_57600.hex52_22.1184M_57600.hex52_20M_57600.hex52_18.432M_57600.hex52_12M_57600.hex52_11.0592M_57600.hex

38,400bps52_40M_38400.hex52_33M_38400.hex52_27M_38400.hex52_24M_38400.hex52_22.1184M_38400.hex52_20M_38400.hex52_18.432M_38400.hex52_12M_38400.hex52_11.0592M_38400.hex

19,200bps52_40M_19200.hex52_33M_19200.hex52_27M_19200.hex52_24M_19200.hex52_22.1184M_19200.hex52_20M_19200.hex52_18.432M_19200.hex52_12M_19200.hex52_11.0592M_19200.hex

9,600bps52_40M_9600.hex52_33M_9600.hex52_27M_9600.hex52_24M_9600.hex52_22.1184M_9600.hex52_20M_9600.hex52_18.432M_9600.hex52_12M_9600.hex52_11.0592M_9600.hex

4,800bps52_40M_4800.hex52_33M_4800.hex52_27M_4800.hex52_24M_4800.hex52_22.1184M_4800.hex52_20M_4800.hex52_18.432M_4800.hex52_12M_4800.hex52_11.0592M_4800.hex

2,400bps52_40M_2400.hex52_33M_2400.hex52_27M_2400.hex52_24M_2400.hex52_22.1184M_2400.hex52_20M_2400.hex52_18.432M_2400.hex52_12M_2400.hex52_11.0592M_2400.hex

1,200bps52_40M_1200.hex52_33M_1200.hex52_27M_1200.hex52_24M_1200.hex52_22.1184M_1200.hex52_20M_1200.hex52_18.432M_1200.hex52_12M_1200.hex52_11.0592M_1200.hex

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

38

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

;                   STC ISP DEMO 程序通讯协议

;STC89LE51RC, STC89LE52RC, STC89LE53RC, STC89LE54RD+, STC89LE58RD+, STC89LE516RD+;STC89C51RC, STC89C52RC, STC89C53RC, STC89C54RD+, STC89C58RD+, STC89C516RD+;;1. 功能

;        STC ISP DEMO 程序以固定的波特率与上位机(PC机)通讯,将上位机;    传来的程序代码或数据烧录到 MCU 的用户应用程序区中(以下简称 AP 区)和;    Data 区。;

;1.1 应用范围

;    本协议仅适用于 STC89C/LE5xRC 和 STC89C/LE5xxRD+ 系列单片机。;1.2 使用方法

;   1) 将 STC ISP DEMO 程序烧录到 MCU 的 ISP 区, 并设置为上电复位后从;      ISP 区开始运行。

;   2) 先运行上位机程序,不断地发送问讯帧,然后给 MCU 上电。

;   3) MCU 收到问讯帧后回发问讯应答帧,讯问应答反复 3 次双方连接成功。;   4) 上位机发送一系列命令,完成下载工作。

;   5) 下载完毕,PC 发送切换命令,MCU 软复位切换到 AP 程序运行。;

;       STC-ISP (2.9 Beta3 版本以上)下载软件提供了STC ISP DEMO 程序的上位机;   功能,该软件可到 www.MCU-Memory.COM 网站下载。

;       MCU 上电复位后检测串口是否有上位机发来的问讯帧, 若没有就立刻软复位;   切换到 AP 程序运行。也可以参照 STC 下载软件中"用户自定义下载" 功能,;   从应用程序软复位切换到 ISP 进行下载,而不是每次都要上电复位(冷启动);   进入 ISP 程序。;

;2.  帧格式。

;    所有的通讯均由 PC 机启动。;

;2.1 PC机命令帧格式。

;        5AH               0101,1010 起始字节1 ----        ------;        A5H               1010,0101 起始字节2     |             |;        len_H             帧长度高字节             |             |;        len_L             帧长度低字节                          |;        Command           命令字             帧校验和范围       |;        data 0            数据区第 1 字节

;         ..                                       |        帧长度范围;         ..                                       |

;         ..                                       |             |;        data n-1          数据区第 n 字节     ----              |;        check_sum_high    帧校验和高字节                        |;        chenk_sum_low     帧校验和低字节                        |;        16H               结束字节  ----------------------------

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)39

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

2.3 帧长度。

;    帧长度范围从起始字节1 至结束字节。;

;2.4 校验和。

;    从起始字节1开始到校验和之前所有的字节相加。;

;3.0 PC 命令及 MCU 应答

;    命令                     命令代码;

;    问讯                       B0H     1011, 0000;    软复位切换到用户程序       B1H     1011, 0001;    擦除 AP、Data flash        B2H     1011, 0010;    写数据到 AP、Data flash    B3H     1011, 0011;    先擦除扇区再写数据         B4H     1011, 0100;    读固件版本号               B5H     1011, 0101;

;3.1 问讯帧。;

;3.1.1 PC 发送问讯帧。;    序号  内容

;      0   5AH             起始字节1;      1   A5H             起始字节2;      2   00H             帧长度高字节;      3   08H             帧长度低字节;      4   B0H             问讯帧命令字

;      5   01H             校验和高字节 (5AH + A5H + 00H + 08H + B0H = 01B7H);      6   B7H             校验和低字节;      7   16H             结束字节;

;3.1.2 MCU 回发问讯应答帧。;    序号  内容

;      0   5AH             起始字节1;      1   A5H             起始字节2;      2   00H             帧长度高字节;      3   08H             帧长度低字节;      4   B0H             问讯应答帧命令字

;      5   01H             校验和高字节 (5AH + A5H + 00H + 08H + B0H = 01B7H);      6   B7H             校验和低字节;      7   16H             结束字节;

;3.2 结束运行 ISP 程序, 软复位切换到用户程序。

;     ISP 程序收到命令后启动软复位,切换到用户程序运行。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

40

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

;3.2 结束运行 ISP 程序, 软复位切换到用户程序。

;     ISP 程序收到命令后启动软复位,切换到用户程序运行。;3.2.1 PC 命令;    序号  内容

;      0   5AH             起始字节1;      1   A5H             起始字节2;      2   00H             帧长度高字节;      3   08H             帧长度低字节

;      4   B1H             软复位切换到用户程序命令字

;      5   01H             校验和高字节 (5AH + A5H + 00H + 08H + B1H = 01B8H);      6   B8H             校验和低字节;      7   16H             结束字节;

;3.2.2 MCU 应答:

;    用"问讯应答帧"应答, 见 3.1.2 MCU 问讯应答帧。;

;3.3 擦除应用程序区和数据 Flash 区;3.3.1 PC 命令:;    序号  内容

;      0   5AH             起始字节1;      1   A5H             起始字节2;      2   00H             帧长度高字节;      3   08H             帧长度低字节;      4   B2H             擦除应用程序区命令字

;      5   01H             校验和高字节 (5AH + A5H + 00H + 08H + B2H = 01B9H);      6   B9H             校验和低字节;      7   16H             结束字节;

;3.3.2 MCU 应答:

;    用"问讯应答帧"应答, 见 3.1.2 MCU 问讯应答帧。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

41

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

;3.4 写数据到 flash AP 区;3.4.1 PC 命令:;    序号  内容

;      0   5AH             起始字节1;      1   A5H             起始字节2;      2   00H             帧长度高字节;      3   xxH             帧长度低字节

;      4   B3H             写数据到 flash 命令字;      5   00H             保留字节;      6   00H             保留字节;      7   address_H       目标首地址高字节;      8   address_L       目标首地址低字节;      9   00H             数据块长度高字节。;     10   xxH             数据块长度低字节

;                          每次最多写 128 字节。写完一个 512 字节的扇区需分别;                          发送 4 帧数据。某个扇区一旦写失败,须擦除该扇区后;                          从头再写。;     11   data 1          数据块第 1 字节;

;     ..    ..;

;     xx   data n          数据块第 n 字节;     xx   xxH             校验和高字节;     xx   xxH             校验和低字节;     xx   16H             结束字;

;3.4.2 MCU 应答:;    序号  内容

;      0   5AH             起始字节1;      1   A5H             起始字节2;      2   00H             帧长度高字节;      3   0AH             帧长度低字节

;      4   B3H             写数据到 flash 命令字

;      5   xxH             数据区校验和高字节,见 3.4.3 写数据到 flash AP 区后的校验;      6   xxH             数据区校验和低字节,见 3.4.3 写数据到 flash AP 区后的校验;      7   xxH             帧校验和高字节;      8   xxH             帧校验和低字节;      9   16H             结束字节;

;3.4.3 写数据到 flash AP 区后的校验:

;        MCU 把本次接收到的应用程序和数据写入 Flash 后再将它们逐一读出来,计算它们的;    累加和。累加和的校验区由 2.4.1 的目标首地址和数据块长度指明(PC 命令的7,8,9,10字节);    累加和为 2 个字节,发回 PC 供其判断写数据正确与否。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

42

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

;3.5 擦除扇区后再写数据到 flash AP 区

;    除了命令字为 B4H 外,其它与写数据到 flash AP 区完全一致。;

;3.6 读 MCU 代号、固件版本号命令。;3.6.1 PC 命令:;    序号  内容

;      0   5AH              起始字节1;      1   A5H              起始字节2;      2   00H              帧长度高字节;      3   08H              帧长度低字节

;      4   B5H              读 MCU 代号、固件版本号命令字;      5   01H              帧校验和高字节;      6   F9H              帧校验和低字节;      7   16H              结束字节;

;3.6.2 MCU 应答:;    序号  内容

;      0   5AH              起始字节1;      1   A5H              起始字节2;      2   00H              帧长度高字节;      3   0CH              帧长度低字节

;      4   B5H              读 MCU 代号、固件版本号命令字;      5   FIRMWARE_VERSION 固件版本号;      6   MCU_TYPE_HIGH    MCU 代号高字节;      7   MCU_TYPE_LOW     MCU 代号低字节;      8   xxH              保留字节;      9   xxH              帧校验和高字节;     10   xxH              帧校验和低字节;     11   16H              结束字节

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

43

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

附录E: 如何实现运行中自定义下载,无仿真器时方便调试

自定义下载原理:STC-ISP.exe软件

1.STC-ISP.exe软件,可由用户设置,按UART/RS-232的格式向用户程序发送命令

     波特率:  38400bps,  19200bps,  9600bps, 4800bps,  2400bps,  1200bps等     奇偶校验位:  无,  偶校验,    奇校验    数据位几位:  8位, 7位,6位,5位, 等    停止位几位:  1位, 1.5位,2位,等

2.需向用户程序发送的命令用户可在上图自定义下载命令输入窗口中输入(HEX)

  命令之间建议加一个空格,也可不加,STC-ISP.exe会处理,上例为发送自定义命令  12H,34H,56H,78H,0ABH,0CDH,0EFH,  12H,34H,56H,78H,0ABH,0CDH,0EFH

3.用户程序中应加入收到自定义下载命令,延时一秒,软复位到系统ISP程序区的程序4.将以上含有接收自定义下载命令的用户程序先用老方法下载进STC单片机内部:    STC89C51RC,STC89C52RC,STC89C53RC,STC89C54RD+,STC89C58RD+,STC89C516RD+    STC89LE52RC,STC89LE53RC,STC89LE54RD+,STC89LE58RD+,STC89LE516RD+

这样以上型号的STC单片机就具有了“不停电/运行中/自定义下载功能”

6.以下选好型号,打开文件...,在自定义下载中设置相关选项,选择“发送”即可,

STC-ISP.exe在“发送”完用户自定义下载命令后,就会转去调用老的那一套下载命令,而不管用户单片机程序收到命令没有。不过这个转换有些电脑有时需要将近1S的时间,所以用户应用程序要延时1S,否则系统ISP程序收不到下载命令,又会回到用户应用程序。7.调试程序时,还可以在选项中选择“每次下载前自动重新调入文件”,这样你每次修改原文件并从新编译/汇编后生成的*.hex,*.bin文件就不要再次手工调入了,生产时不要用。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

44

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

附录F: Keil C51高级语言编程的软件如何减少代码长度

1.在“Project”菜单中选择“Options for Target”2.在“Options for Target”中选择“C51”

3.选择按空间大小, 9级优化程序4.重新编译程序即可。

宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)45

宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243

附录G:(写给用STC89C51RC/RD+系列单片机做仿真器的朋友)     STC89C51 RC / RD+ 系列 单片机 做仿真器须知

1.对Flash的IAP字节读/字节编程/扇区擦除等待机器周期

设置等待时间                CPU   等待时间(机器周期)WT2WT1WT0Read 0 0 0 0

 1 1 0 0

 1 0 1 0

6112243

ProgramSector EraseRecommended System Clock3060120240

5471109422188543769

5MHz10MHz20MHz40MHz

       512Byte/Sector

2.程序在ISP区可对用户AP区进行IAP读/编程/扇区擦除3.程序在用户AP区不可对ISP区进行IAP操作。4.程序在ISP/AP区可对Data Flash区进行IAP操作。5.可从ISP区软复位到AP区,也可从AP区软复位到ISP区。

MnemonicISP_DATA

AddName

E2hISP/IAP  Flash  Data  Register

 7

 6

 5

 4 3 2

 1

 0

Reset Value1111,11110000,00000000,0000

 -

 -

 -

 - -MS2MS1MS0xxxx,x000

xxxx,xxxx

ISPENSWBSSWRST - -WT2WT1WT0000x,x000

ISP_ADDRHE3hISP/IAP  Flash  Address  HighISP_ADDRLE4hISP/IAP  Flash  Address  LowISP_CMDISP_TRIG

E5hISP/IAP  Flash  Command  RegisterE6hISP/IAP  Flash  Command  Trigger

ISP_CONTRE7hISP/IAP  Control  Register

;从用户应用程序区(AP区)软件复位并切换到ISP程序区开始执行程序    MOVISP_CONTR,#01100000B;SWBS = 1(选择ISP区), SWRST = 1(软复位);从ISP程序区软件复位并切换到用户应用程序区(AP区)开始执行程序    MOVISP_CONTR,#00100000B;SWBS = 0(选择AP区), SWRST = 1(软复位)软复位后所有的寄存器复位,可在软复位前将需保存的SFR的值,保存在RAM或DATAFlash中,建议采用STC89C58RD+设计。

STC89C58RD+50-C-PI:  独立32k字节用户程序区,独立可选0/1/2/4k字节系统ISP区。                      独立27k字节数据Flash区

   只有选择1/2/4k字节ISP区,并选择上电复位从ISP区启动,晶片IAP功能才起作用工作电压:5.5v - 3.4v, 不要过低,否则工作不了。5V串2个1N4001是3.6V宏晶科技:专业单片机/存储器供应商   www.MCU-Memory.com   STC 增强型8051单片机中文指南(RC/RD+系列)

因篇幅问题不能全部显示,请点此查看更多更全内容