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