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