at89S52.doc

Similar documents
另外,AT89S52 可降至 0Hz 静态逻辑操作, 支持 2 种软件可选择节电模式 空闲模式下,CPU 停止工作, 允许 RAM 定时器/ 计数器 串口 中断继续工作 掉电保护方式下,RAM 内容被保存, 振荡器被冻结, 单片机一切工作停止, 直到下一个中断或硬件复位为止 8 位微控制器 8K 字

W77E58中文手册

Microsoft Word - 第1章 MCS-51单片机基础.docx

AT89S51

DPJJX1.DOC

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

128K Flash EPROM 的程序?\(Bank=64K\) 切?

部分编号派生器件编号 (P89CXX) 操作频率, 最大 (V) 温度范围 (B) 封装 (AA,BB,PN) P89C51 FLASH U=33MHz B=0 70 AA=PLCC P89C52 FLASH F= BB=PQFP P89C54 FLASH PN=PDIP P89C58

51 C 51 isp 10 C PCB C C C C KEIL

电子驿站技术文档

Microsoft Word - 專題封面.doc

目 录

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

SM2965

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

MPC89LE51_52_53_54_58_515

1

<4D F736F F D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63>

Microsoft Word - P87CL52X2_54X2.doc

MPC82G516A 8 位微控制器 目 录 图表清单... 5 表格清单 综述 功能 方框图 引脚 引脚结构 引脚定义 引脚功能重映射..

MPC89LE51_52_53_54_58_515

SH79F161B I/O 1. SH79F161B SH79F161B IO 30 I/O I/O 4 I/O SH79F161B 30 I/O Px I/O PxCRy I/O PxPCRy x = 0-3 y = IO PxCRy IO x=0-3 y=0-7

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS

Microsoft Word - SC16C550应用实例.doc

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

Microsoft PowerPoint - 第一章(07版).PPT


79F161 V0.2

µPSD3000 系列

MPC82G516

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63>

P89LV51RD2器件手册

STC15W4K60S4系列增强型PWM波形发生器应用

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集

專題最終版.doc

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模

MA816_DS_CN_V005

第一章

单片机原理及应用实验指导书.doc

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P

<4D F736F F D20B5DA31D5C B5A5C6ACBBFAB8C5CAF62E646F6378>

PowerPoint Presentation

79F161 V0.2

<4D F736F F F696E74202D20B5DA35D5C2CEA2B4A6C0EDC6F7B9A4D7F7D4ADC0ED2E707074>

CM ZT1

79F161 V0.2

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

Tel: , Fax: STR-15 STR bps 2400bps 4800bps 9600bps STR : 500mW 2.ISM 433

目录 1 总体描述 主要功能... 1 目录 管脚定义 管脚配置 管脚定义 内部方框图 FLASH ROM 和 SRAM 结构 flash rom Customer

PowerPoint 演示文稿

展 望 与 述 评 2 广 电 设 备 与 技 术

管脚配置 底板插口配置 芯片大小 (mil) 2-2 -

92 系列产品命名规则 名称 SC 92 F X P 32 R 序号 序号 Sinone Chip 缩写 产品系列名称 产品类型 (F:Flash MCU) 系列号 :7:GP 系列,8:TK 系列 含义 ROM

System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and se

SC92F742X

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

CH559指令周期.doc

Applications

79F161 V0.2

(10) 在满足串行口接收中断标志位 RI SCON.0 =0 的条件下, 置允许接收位 REN(SCO N.4)=1 就会启动接收一帧数据进入输入移位寄存器, 并装载到接收 SBUF 中, 同时使 RI =l 当发读 SBUF 命令时 ( 执行 MOV A,SBUF 指令 ), 即是由接收缓冲器

33023A.book(31026A_cn.fm)

AT89C2051中文资料.doc

Microsoft Word - TM1621.doc

92 系列产品命名规则 名称 SC 92 F X P 48 R 序号 序号 Sinone Chip 缩写 产品系列名称 产品类型 (F:Flash MCU) 系列号 :7:GP 系列,8:TK 系列 含义 ROM

MSP430单片机简介

<4D F736F F D20B3E6B4B9A4F930365F32A443AC71C5E3A5DCBEB9B1B1A8EE2E646F63>

CH432DS1.DOC

从MCS51向AVR的快速转换.PDF

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x

AT89LP213 AT89LP214

Cerris IROS

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax)

AT89LP213

微處理機期末專題

Microsoft Word - cat1163.doc

2014年融360中国小微企业“普惠”指数

MCS FCC

Microsoft Word - SoftICE用户指南.doc

Low-Cost, µP Supervisory Circuits

NiOS II SOPC 嵌入式系统基础教程

2-2 第二章系統分析 XTAL1/ (19/18): 時脈接腳 1. 使用內部振盪器 C1 XTAL1 C2 VSS 2. 使用外部時脈 圖 2-2 使用內部振盪器接線圖 時脈輸入 空接.. 時脈輸入 XTAL1 XTAL1 時脈輸入 XTAL1 VSS VSS VSS (a) (b) (c) 圖

16位A/D转换器

33023A.book(31006A_cn.fm)

1 TPIS TPIS 2 2

MG103_DS_CN_V101

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC

SPMC75F2413A_EVM_使用说明_V1.2.doc

MPW 项目简介

(%) 31,008,215 30,458, ,242,068 15,346, (%) -335, (%) 895,01

fgfdg

双竞具体产品名称

Low-Cost, µP Supervisory Circuits

N79A8211系列单片机内部NVM

Transcription:

主要性能 与 MCS-51 单片机产品兼容 8K 字节在系统可编程 Flash 存储器 1000 次擦写周期 全静态操作 :0Hz~33Hz 三级加密程序存储器 32 个可编程 I/O 口线 三个 16 位定时器 / 计数器 八个中断源 全双工 UART 串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 8 位微控制器 8K 字节在系统可编程 Flash R 功能特性描述 AT89S52 是一种低功耗 高性能 CMOS8 位微控制器, 具有 8K 在系统可编程 Flash 存储器 使用 Atmel 公司高密度非易失性存储器技术制造, 与工业 80C51 产品指令和引脚完全兼容 片上 Flash 允许程序存储器在系统可编程, 亦适于常规编程器 在单芯片上, 拥有灵巧的 8 位 CPU 和在系统可编程 Flash, 使得 AT89S52 为众多嵌入式控制应用系统提供高灵活 超有效的解决方案 AT89S52 具有以下标准功能 :8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线, 看门狗定时器,2 个数据指针, 三个 16 位定时器 / 计数器, 一个 6 向量 2 级中断结构, 全双工串行口, 片内晶振及时钟电路 另外,AT89S52 可降至 0Hz 静态逻辑操作, 支持 2 种软件可选择节电模式 空闲模式下,CPU 停止工作, 允许 RAM 定时器 / 计数器 串口 中断继续工作 掉电保护方式下,RAM 内容被保存, 振荡器被冻结, 单片机一切工作停止, 直到下一个中断或硬件复位为止 AT89S52 Rev. 1919-07/01 1

引脚结构 2

方框图 引脚功能描述 3

VCC : 电源 GND: 地 P0 口 :P0 口是一个 8 位漏极开路的双向 I/O 口 作为输出口, 每位能驱动 8 个 TTL 逻辑电平 对 P0 端口写 1 时, 引脚用作高阻抗输入 当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址 / 数据复用 在这种模式下, P0 具有内部上拉电阻 在 flash 编程时,P0 口也用来接收指令字节 ; 在程序校验时, 输出指令字节 程序校验时, 需要外部上拉电阻 P1 口 :P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P1 端口写 1 时, 内部上拉电阻把端口拉高, 此时可以作为输入口使用 作为输入使用时, 被外部拉低的引脚由于内部电阻的原因, 将输出电流 (I IL ) 此外,P1.0 和 P1.2 分别作定时器 / 计数器 2 的外部计数输入 (P1.0/T2) 和时器 / 计数器 2 的触发输入 (P1.1/T2EX), 具体如下表所示 在 flash 编程和校验时,P1 口接收低 8 位地址字节 引脚号 第二功能 P1.0 T2( 定时器 / 计数器 T2 的外部计数输入 ), 时钟输出 P1.1 T2EX( 定时器 / 计数器 T2 的捕捉 / 重载触发信号和方向控制 ) P1.5 MOSI( 在系统编程用 ) P1.6 MISO( 在系统编程用 ) P1.7 SCK( 在系统编程用 ) P2 口 :P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P2 端口写 1 时, 内部上拉电阻把端口拉高, 此时可以作为输入口使用 作为输入使用时, 被外部拉低的引脚由于内部电阻的原因, 将输出电流 (I IL ) 在访问外部程序存储器或用 16 位地址读取外部数据存储器 ( 例如执行 MOVX @DPTR) 时,P2 口送出高八位地址 在这种应用中,P2 口使用很强的内部上拉发送 1 在使用 8 位地址 ( 如 MOVX @RI) 访问外部数据存储器时,P2 口输出 P2 锁存器的内容 在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号 P3 口 :P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p2 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P3 端口写 1 时, 内部上拉电阻把端口拉高, 此时可以作为输入口使用 作为输入使用时, 被外部拉低的引脚由于内部电阻的原因, 将输出电流 (I IL ) P3 口亦作为 AT89S52 特殊功能 ( 第二功能 ) 使用, 如下表所示 在 flash 编程和校验时,P3 口也接收一些控制信号 4

引脚号 第二功能 P3.0 RXD( 串行输入 ) P3.1 TXD( 串行输出 ) P3.2 INT0( 外部中断 0) P3.3 INT0( 外部中断 0) P3.4 T0( 定时器 0 外部输入 ) P3.5 T1( 定时器 1 外部输入 ) P3.6 WR( 外部数据存储器写选通 ) P3.7 RD( 外部数据存储器写选通 ) RST: 复位输入 晶振工作时,RST 脚持续 2 个机器周期高电平将使单片机复位 看门狗计时完成后,RST 脚输出 96 个晶振周期的高电平 特殊寄存器 AUXR( 地址 8EH) 上的 DISRTO 位可以使此功能无效 DISRTO 默认状态下, 复位高电平有效 ALE/PROG: 地址锁存控制信号 (ALE) 是访问外部程序存储器时, 锁存低 8 位地址的输出脉冲 在 flash 编程时, 此引脚 (PROG) 也用作编程输入脉冲 在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲, 可用来作为外部定时器或时钟使用 然而, 特别强调, 在每次访问外部数据存储器时,ALE 脉冲将会跳过 如果需要, 通过将地址为 8EH 的 SFR 的第 0 位置 1,ALE 操作将无效 这一位置 1, ALE 仅在执行 MOVX 或 MOVC 指令时有效 否则,ALE 将被微弱拉高 这个 ALE 使能标志位 ( 地址为 8EH 的 SFR 的第 0 位 ) 的设置对微控制器处于外部执行模式下无效 PSEN: 外部程序存储器选通信号 (PSEN) 是外部程序存储器选通信号 当 AT89S52 从外部程序存储器执行外部代码时,PSEN 在每个机器周期被激活两次, 而在访问外部数据存储器时,PSEN 将不被激活 EA/VPP: 访问外部程序存储器控制信号 为使能从 0000H 到 FFFFH 的外部程序存储器读取指令,EA 必须接 GND 为了执行内部程序指令,EA 应该接 V CC 在 flash 编程期间,EA 也接收 12 伏 V PP 电压 XTAL1: 振荡器反相放大器和内部时钟发生电路的输入端 XTAL2: 振荡器反相放大器的输出端 5

表 1 AT89S52 特殊寄存器映象及复位值 特殊功能寄存器 特殊功能寄存器 (SFR) 的地址空间映象如表 1 所示 并不是所有的地址都被定义了 片上没有定义的地址是不能用的 读这些地址, 一般将得到一个随机数据 ; 写入的数据将会无效 用户不应该给这些未定义的地址写入数据 1 由于这些寄存器在将来可能被赋予新的功能, 复位后, 这些位都为 0 定时器 2 寄存器 : 寄存器 T2CON 和 T2MOD 包含定时器 2 的控制位和状态位 ( 如表 2 和表 3 所示 ), 寄存器对 RCAP2H 和 RCAP2L 是定时器 2 的捕捉 / 自动重载寄存器 中断寄存器 : 各中断允许位在 IE 寄存器中, 六个中断源的两个优先级也可在 IE 中设置 6

表 2 T2CON: 定时器 / 计数器 2 控制寄存器 T2CON 地址为 0C8H 位可寻址 复位值 :0000 0000B TF2 EXF2 RLCLK TCLK EXEN2 TR2 7 6 5 4 3 2 1 0 符号 TF2 EXF2 RCLK TCLK EXEN2 TR2 功能 定时器 2 溢出标志位 必须软件清 0 RCLK=1 或 TCLK=1 时,TF2 不用置位 定时器 2 外部标志位 EXEN2=1 时,T2EX 上的负跳变而出现捕捉或重载时,EXF2 会被硬件置位 定时器 2 打开,EXF2=1 时, 将引导 CPU 执行定时器 2 中断程序 EXF2 必须如见清 0 在向下/ 向上技术模式 (DCEN=1) 下 EXF2 不能引起中断 串行口接收数据时钟标志位 若 RCLK=1, 串行口将使用定时器 2 溢出脉冲作为串行口工作模式 1 和 3 的串口接收时钟 ;RCLK=0, 将使用定时器 1 计数溢出作为串口接收时钟 串行口发送数据时钟标志位 若 TCLK=1, 串行口将使用定时器 2 溢出脉冲作为串行口工作模式 1 和 3 的串口发送时钟 ;TCLK=0, 将使用定时器 1 计数溢出作为串口发送时钟 定时器 2 外部允许标志位 当 EXEN2=1 时, 如果定时器 2 没有用作串行时钟,T2EX(P1.1) 的负跳变见引起定时器 2 捕捉和重载 若 EXEN2 =0, 定时器 2 将视 T2EX 端的信号无效 开始 / 停止控制定时器 2 TR2=1, 定时器 2 开始工作 定时器 2 定时 / 计数选择标志位 =0, 定时 ; =1, 外部事 件计数 ( 下降沿触发 ) 捕捉 / 重载选择标志位 当 EXEN2=1 时, =1,T2EX 出现负脉冲, 会引起捕捉操作 ; 当定时器 2 溢出或 EXEN2=1 时 T2EX 出现负跳变, 都 会出现自动重载操作 =0 将引起 T2EX 的负脉冲 当 RCKL=1 或 TCKL=1 时, 此标志位无效, 定时器 2 溢出时, 强制做自动重载操作 双数据指针寄存器 : 为了更有利于访问内部和外部数据存储器, 系统提供了两路 16 位数据指针寄存器 : 位于 SFR 中 82H~83H 的 DP0 和位于 84H~85 特殊寄存器 AUXR1 中 DPS=0 选择 DP0;DPS=1 选择 DP1 用户应该在访问数据指针寄存器前先初始化 7

DPS 至合理的值 表 3a AUXR: 辅助寄存器 AUXR 地址 :8EH 复位值 :XXX00XX0B 不可位寻址 - - - WDIDLE DISRTO - - DISALE 7 6 5 4 3 2 1 0 - 预留扩展用 DISALE ALE 使能标志位 DISALE 操作方式 0 ALE 以 1/6 晶振频率输出信号 1 ALE 只有在执行 MOVX 或 MOVC 指令时激活 DISRTO WDIDLE 复位输出标志位 DISRTO 0 看门狗 (WDT) 定时结束,Reset 输出高电平 1 Reset 只有输入 空闲模式下 WDT 使能标志位 WDIDLE 0 空闲模式下,WDT 继续计数 1 空闲模式下,WDT 停止计数 掉电标志位 : 掉电标志位 (POF) 位于特殊寄存器 PCON 的第四位 (PCON.4) 上电期间 POF 置 1 POF 可以软件控制使用与否, 但不受复位影响 表 3b AUXR1: 辅助寄存器 1 AUXR1 地址 :A2H 复位值 :XXXXXXX0B 不可位寻址 - - - - - - - DPS 7 6 5 4 3 2 1 0 - 预留扩展用 DPS 数据指针选择位 DPS 0 选择 DPTR 寄存器 DP0L 和 DP0H 1 选择 DPTR 寄存器 DP1L 和 DP1H 8

存储器结构 MCS-51 器件有单独的程序存储器和数据存储器 外部程序存储器和数据存储器都可以 64K 寻址 程序存储器 : 如果 EA 引脚接地, 程序读取只从外部存储器开始 对于 89S52, 如果 EA 接 V CC, 程序读写先从内部存储器 ( 地址为 0000H~1FFFH) 开始, 接着从外部寻址, 寻址地址为 :2000H~FFFFH 数据存储器 :AT89S52 有 256 字节片内数据存储器 高 128 字节与特殊功能寄存器重叠 也就是说高 128 字节与特殊功能寄存器有相同的地址, 而物理上是分开的 当一条指令访问高于 7FH 的地址时, 寻址方式决定 CPU 访问高 128 字节 RAM 还是特殊功能寄存器空间 直接寻址方式访问特殊功能寄存器 (SFR) 例如, 下面的直接寻址指令访问 0A0H(P2 口 ) 存储单元 MOV 0A0H, #data 使用间接寻址方式访问高 128 字节 RAM 例如, 下面的间接寻址方式中,R0 内容为 0A0H, 访问的是地址 0A0H 的寄存器, 而不是 P2 口 ( 它的地址也是 0A0H) MOV @R0, #data 堆栈操作也是简介寻址方式 因此, 高 128 字节数据 RAM 也可用于堆栈空间 看门狗定时器 WDT 是一种需要软件控制的复位方式 WDT 由 13 位计数器和特殊功能寄存器中的看门狗定时器复位存储器 (WDTRST) 构成 WDT 在默认情况下无法工作 ; 为了激活 WDT, 户用必须往 WDTRST 寄存器 ( 地址 :0A6H) 中依次写入 01EH 和 0E1H 当 WDT 激活后, 晶振工作,WDT 在每个机器周期都会增加 WDT 计时周期依赖于外部时钟频率 除了复位 ( 硬件复位或 WDT 溢出复位 ), 没有办法停止 WDT 工作 当 WDT 溢出, 它将驱动 RSR 引脚一个高个电平输出 WDT 的使用为了激活 WDT, 用户必须向 WDTRST 寄存器 ( 地址为 0A6H 的 SFR) 依次写入 0E1H 和 0E1H 当 WDT 激活后, 用户必须向 WDTRST 写入 01EH 和 0E1H 喂狗来避免 WDT 溢出 当计数达到 8191(1FFFH) 时,13 位计数器将会溢出, 这将会复位器件 晶振正常工作 WDT 激活后, 每一个机器周期 WDT 都会增加 为了复位 WDT, 用户必须向 WDTRST 写入 01EH 和 0E1H(WDTRST 是只读寄存器 ) WDT 计数器不能读或写 当 WDT 计数器溢出时, 将给 RST 引脚产生一个复位脉冲输出, 这个复位脉冲持续 96 个晶振周期 (TOSC), 其中 TOSC=1/FOSC 为了很好地使用 WDT, 应该在一定时间内周期性写入那部分代码, 以避免 WDT 复位 掉电和空闲方式下的 WDT 在掉电模式下, 晶振停止工作, 这意味这 WDT 也停止了工作 在这种方式下, 用户不必喂狗 有两种方式可以离开掉电模式 : 硬件复位或通过一个激活的外部中断 通过硬件复位退出掉电模式后, 用户就应该给 WDT 喂狗, 就如同通常 AT89S52 复位一样 通过中断退出掉电模式的情形有很大的不同 中断应持续拉低很长一段时间, 使得晶振 9

稳定 当中断拉高后, 执行中断服务程序 为了防止 WDT 在中断保持低电平的时候复位器件,WDT 直到中断拉低后才开始工作 这就意味着 WDT 应该在中断服务程序中复位 为了确保在离开掉电模式最初的几个状态 WDT 不被溢出, 最好在进入掉电模式前就复位 WDT 在进入待机模式前, 特殊寄存器 AUXR 的 WDIDLE 位用来决定 WDT 是否继续计数 默认状态下, 在待机模式下,WDIDLE=0,WDT 继续计数 为了防止 WDT 在待机模式下复位 AT89S52, 用户应该建立一个定时器, 定时离开待机模式, 喂狗, 再重新进入待机模式 UART 在 AT89S52 中,UART 的操作与 AT89C51 和 AT89C52 一样 为了获得更深入的关于 UART 的信息, 可参考 ATMEL 网站 (http://www.atmel.com) 从这个主页, 选择 Products, 然后选择 8051-Architech Flash Microcontroller, 再选择 Product Overview 即可 定时器 0 和定时器 1 在 AT89S52 中, 定时器 0 和定时器 1 的操作与 AT89C51 和 AT89C52 一样 为了获得更深入的关于 UART 的信息, 可参考 ATMEL 网站 (http://www.atmel.com) 从这个主页, 选择 Products, 然后选择 8051-Architech Flash Microcontroller, 再选择 Product Overview 即可 定时器 2 定时器 2 是一个 16 位定时 / 计数器, 它既可以做定时器, 又可以做事件计数器 其工作方式由特殊寄存器 T2CON 中的 C/T2 位选择 ( 如表 2 所示 ) 定时器 2 有三种工作模式 : 捕捉方式 自动重载 ( 向下或向上计数 ) 和波特率发生器 如表 3 所示, 工作模式由 T2CON 中的相关位选择 定时器 2 有 2 个 8 位寄存器 :TH2 和 TL2 在定时工作方式中, 每个机器周期,TL2 寄存器都会加 1 由于一个机器周期由 12 个晶振周期构成, 因此, 计数频率就是晶振频率的 1/12 表 3 定时器 2 工作模式 RCLK+TCLK CP/RL2 TR2 MODE 0 0 1 16 位自动重载 0 1 1 16 位捕捉 1 1 波特率发生器 0 ( 不用 ) 在计数工作方式下, 寄存器在相关外部输入角 T2 发生 1 至 0 的下降沿时增加 1 在这 10

种方式下, 每个机器周期的 S5P2 期间采样外部输入 一个机器周期采样到高电平, 而下一个周期采样到低电平, 计数器将加 1 在检测到跳变的这个周期的 S3P1 期间, 新的计数值出现在寄存器中 因为识别 1-0 的跳变需要 2 个机器周期 (24 个晶振周期 ), 所以, 最大的计数频率不高于晶振频率的 1/24 为了确保给定的电平在改变前采样到一次, 电平应该至少在一个完整的机器周期内保持不变 捕捉方式在捕捉模式下, 通过 T2CON 中的 EXEN2 来选择两种方式 如果 EXEN2=0, 定时器 2 时一个 16 位定时 / 计数器, 溢出时, 对 T2CON 的 TF2 标志置位,TF2 引起中断 如果 EXEN2=1, 定时器 2 做相同的操作 除上述功能外, 外部输入 T2EX 引脚 (P1.1)1 至 0 的下跳变也会使得 TH2 和 TL2 中的值分别捕捉到 RCAP2H 和 RCAP2L 中 除此之外, T2EX 的跳变会引起 T2CON 中的 EXF2 置位 像 TF2 一样,T2EX 也会引起中断 捕捉模式如图 5 所示 图 5 定时器的捕捉模式 自动重载当定时器 2 工作于 16 位自动重载模式, 可对其编程实现向上计数或向下计数 这一功能可以通过特殊寄存器 T2MOD( 见表 4) 中的 DCEN( 向下计数允许位 ) 来实现 通过复位,DCEN 被置为 0, 因此, 定时器 2 默认为向上计数 DCEN 设置后, 定时器 2 就可以取决于 T2EX 向上 向下计数 如图 6 所示,DCEN=0 时, 定时器 2 自动计数 通过 T2CON 中的 EXEN2 位可以选择两种方式 如果 EXEN2=0, 定时器 2 计数, 计到 0FFFFH 后置位 TF2 溢出标志 计数溢出也使得定时器寄存器重新从 RCAP2H 和 RCAP2L 中加载 16 位值 定时器工作于捕捉模式,RCAP2H 和 RCAP2L 的值可以由软件预设 如果 EXEN2=1, 计数溢出或在外部 T2EX(P1.1) 引脚上的 1 到 0 的下跳变都会触发 16 位重载 这个跳变也置位 EXF2 中断标志位 如图 6 所示, 置位 DCEN, 允许定时器 2 向上或向下计数 在这种模式下,T2EX 引脚控制着计数的方向 T2EX 上的一个逻辑 1 使得定时器 2 向上计数 定时器计到 0FFFFH 11

溢出, 并置位 TF2 定时器的溢出也使得 RCAP2H 和 RCAP2L 中的 16 位值分别加载到定时器存储器 TH2 和 TL2 中 T2EX 上的一个逻辑 0 使得定时器 2 向下计数 当 TH2 和 TL2 分别等于 RCAP2H 和 RCAP2L 中的值的时候, 计数器下溢 计数器下溢, 置位 TF2, 并将 0FFFFH 加载到定时器存储器中 定时器 2 上溢或下溢, 外部中断标志位 EXF2 被锁死 在这种工作模式下,EXF2 不能触发中断 图 6 定时器 2 重载模式 (DCEN=0) 表 4 T2MOD- 定时器 2 控制寄存器 T2MOD 地址 :0C9H 复位值 :XXXXXX00B 不可位寻址 - - - - - - T2OE DCEN 7 6 5 4 3 2 1 0 符号 功能 - 无定义, 预留扩展 T2OE DCEN 定时器 2 输出允许位 置 1 后, 定时器 2 可配置成向上 / 向下计数 12

图 7 定时器 2 自动重载 (DCEN=1) 图 8 定时器 2 波特率发生器模式 13

波特率发生器通过设置 T2CON( 见表 2) 中的 TCLK 或 RCLK 可选择定时器 2 作为波特率发生器 如果定时器 2 作为发送或接收波特率发生器, 定时器 1 可用作它用, 发送和接收的波特率可以不同 如图 8 所示, 设置 RCLK 和 ( 或 )TCLK 可以使定时器 2 工作于波特率产生模式 波特率产生工作模式与自动重载模式相似, 因此,TH2 的翻转使得定时器 2 寄存器重载被软件预置 16 位值的 RCAP2H 和 RCAP2L 中的值 模式 1 和模式 3 的波特率由定时器 2 溢出速率决定, 具体如下公式 : 定时器 2 溢出率模式 1 和模式 3 波特率 = 16 定时器可设置成定时器, 也可为计数器 在多数应用情况下, 一般配置成定时方式 (CP/T2=0) 定时器 2 用于定时器操作与波特率发生器有所不同, 它在每一机器周期 (1/12 晶振周期 ) 都会增加 ; 然而, 作为波特率发生器, 它在每一机器状态 (1/2 晶振周期 ) 都会增加 波特率计算公式如下 : 晶振频率模式 1 和模式 3 的波特率 = * 原文少半个括号 ( 32 [65536 ( RCAP2H, RCAP2L)] 其中,(RCAP2H,RCAP2L) 是 RCAP2H 和 RCAP2L 组成的 16 位无符号整数 定时器 2 作为波特率发生器, 如图 8 所示 图中仅仅在 T2CON 中 RCLK 或 TCLK=1 才有效 特别强调,TH2 的翻转并不置位 TF2, 也不产生中断 ; EXEN2 置位后,T2EX 引脚上 1~0 的下跳变不会使 (RCAP2H,RCAP2L) 重载到 (TH2,TL2) 中 因此, 定时器 2 作为波特率发生器,T2EX 也还可以作为一个额外的外部中断 定时器 2 处于波特率产生模式,TR2=1, 定时器 2 正常工作 TH2 或 TL2 不应该读写 在这种模式下, 定时器在每一状态都会增加, 读或写就不会准确 寄存器 RCAP2 可以读, 但不能写, 因为写可能和重载交迭, 造成写和重载错误 在读写定时器 2 或 RCAP2 寄存器时, 应该关闭定时器 (TR2 清 0) 可编程时钟输出如图 9 所示, 可以通过编程在 P1.0 引脚输出一个占空比为 50% 的时钟信号 这个引脚除了常规的 I/O 角外, 还有两种可选择功能 它可以通过编程作为定时器 / 计数器 2 的外部时钟输入或占空比为 50% 的时钟输出 当工作频率为 16MHZ 时, 时钟输出频率范围为 61HZ 到 4HZ 为了把定时器 2 配置成时钟发生器, 位 C/T2(T2CON.1) 必须清 0, 位 T2OE(T2MOD.1) 必须置 1 位 TR2(T2CON.2) 启动 停止定时器 时钟输出频率取决于晶振频率和定时器 2 捕捉寄存器 (RCAP2H,RCAP2L) 的重载值, 如公式所示 : 晶振频率时钟输出频率 = 4 [65536-( RCAP2H, RCAP2L) ] 在时钟输出模式下, 定时器 2 不会产生中断, 这和定时器 2 用作波特率发生器一样 定 14

时器 2 也可以同时用作波特率发生器和时钟产生 不过, 波特率和输出时钟频率相互并不独立, 它们都依赖于 RCAP2H 和 RCAP2L 图 9 定时器 2 时钟输出模式 中断 AT89S52 有 6 个中断源 : 两个外部中断 (INT0 和 INT1), 三个定时中断 ( 定时器 0 1 2) 和一个串行中断 这些中断如图 10 所示每个中断源都可以通过置位或清除特殊寄存器 IE 中的相关中断允许控制位分别使得中断源有效或无效 IE 还包括一个中断允许总控制位 EA, 它能一次禁止所有中断 如表 5 所示,IE.6 位是不可用的 对于 AT89S52,IE.5 位也是不能用的 用户软件不应给这些位写 1 它们为 AT89 系列新产品预留 定时器 2 可以被寄存器 T2CON 中的 TF2 和 EXF2 的或逻辑触发 程序进入中断服务后, 这些标志位都可以由硬件清 0 实际上, 中断服务程序必须判定是否是 TF2 或 EXF2 激活中断, 标志位也必须由软件清 0 定时器 0 和定时器 1 标志位 TF0 和 TF1 在计数溢出的那个周期的 S5P2 被置位 它们的值一直到下一个周期被电路捕捉下来 然而, 定时器 2 的标志位 TF2 在计数溢出的那个周期的 S2P2 被置位, 在同一个周期被电路捕捉下来 15

表 4 中断允许控制寄存器 (IE) (MSB) (LSB) EA - ET2 ES ET1 EX1 ET0 EX0 中断允许控制位 =1, 允许中断 中断允许控制位 =0, 禁止中断 符号位地址功能 EA IE.7 - IE.6 预留 中断总允许控制位 EA=0, 中断总禁止 ;EA=1, 各中断由各自的控制位设定 ET2 IE.5 定时器 2 中断允许控制位 ES IE.4 串行口中断允许控制位 ET1 IE.3 定时器 1 中断允许控制位 EX1 IE.2 外部中断 1 允许控制位 ET0 IE.1 定时器 0 中断允许控制位 EX0 IE.0 外部中断 1 允许控制位 图 10 中断源 16

晶振特性 AT89S52 如图 10 所示,AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和 XTAL2 分别是放大器的输入 输出端 石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器 从外部时钟源驱动器件的话,XTAL2 可以不接, 而从 XTAL1 接入, 如图 12 所示 由于外部时钟信号经过二分频触发后作为外部时钟电路输入的, 所以对外部时钟信号的占空比没有其它要求, 最长低电平持续时间和最少高电平持续时间等还是要符合要求的 图 11 内部振荡电路连接图图 12 外部振荡电路连接图 石英晶振陶瓷谐振器 C1,C2=30PF±10PF C1,C2=40PF±10PF 空闲模式 在空闲工作模式下,CPU 处于睡眠状态, 而所有片上外部设备保持激活状态 这种状态可以通过软件产生 在这种状态下, 片上 RAM 和特殊功能寄存器的内容保持不变 空闲模式可以被任一个中断或硬件复位终止 由硬件复位终止空闲模式只需两个机器周期有效复位信号, 在这种情况下, 片上硬件禁止访问内部 RAM, 而可以访问端口引脚 空闲模式被硬件复位终止后, 为了防止预想不到的写端口, 激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器 掉电模式 在掉电模式下, 晶振停止工作, 激活掉电模式的指令是最后一条执行指令 片上 RAM 17

和特殊功能寄存器保持原值, 直到掉电模式终止 掉电模式可以通过硬件复位和外部中断退出 复位重新定义了 SFR 的值, 但不改变片上 RAM 的值 在 V CC 未恢复到正常工作电压时, 硬件复位不能无效, 并且应保持足够长的时间以使晶振重新工作和初始化 表 6 空闲模式和掉电模式下的外部引脚状态 模式程序存储器 ALE PSEN PORT0 PORT1 PORT2 PORT3 空闲内部 1 1 数据数据数据数据 空闲外部 1 1 浮空数据地址数据 掉电内部 0 0 数据数据数据数据 掉电外部 0 0 浮空数据数据数据 程序存储器的加密位 AT89S52 有三个加密位不可编程 (U) 和可编程获得下表所示的功能 表 7 加密位保护模式 加密位 1(LB1) 编程后,EA 引脚的逻辑值被采样, 并在复位期间锁存 如果器件复位, 而没有复位, 将锁存一个随机值, 直到复位为止 为了器件功能正常, 锁存到的 EA 值必须和这个引脚的当前逻辑电平一致 Flash 编程 并行模式 AT89S52 带有用作编程的片上 Flash 存储器阵列 编程接口需要一个高电压 (12V) 编程使能信号, 并且兼容常规的第三方 *( 原文 :third-party, 不知道对不对 )Flash 或 EPROM 编程器 AT89S52 程序存储阵列采用字节式编程 编程方法对 AT89S52 编程之前, 需根据 Flash 编程模式表和图 13 图 14 对地址 数据和控制信号设置 可采用下列步骤对 AT89S52 编程 : 18

1. 在地址线上输入编程单元地址信号 2. 在数据线上输入正确的数据 3. 激活相应的控制信号 4. 把 EA/V pp 升至 12V 5. 每给 Flash 写入一个字节或程序加密位时, 都要给 ALE/PROG 一次脉冲 字节写周期时自身定制的, 典型值仅仅 50us 改变地址 数据重复第 1 步到第 5 步, 知道全部文件结束 Data Polling AT89S52 用 Data Polling 作为一个字节写周期结束的标志特征 译者注 : 后面全是编程的时序问题, 实在译不下去了 感兴趣的接着翻啊 参考资料 : 1.ATMEL 公司 AT89S52 的技术手册 2. 深圳市中源单片机发展有限公司 AT89C52 Datasheets 3. 复旦大学出版社单片微型机原理 应用和实验张友德等 19