主要性能
l 与 MCS-51 单片机产品兼容
l 8K 字节在系统可编程 Flash 存储器
l 1000 次擦写周期
l 全静态操作:0Hz~33Hz
l 三级加密程序存储器
l 32 个可编程 I/O 口线
l 三个 16 位定时器/计数器
l 八个中断源
l 全双工 UART 串行通道
l 低功耗空闲和掉电模式
l 掉电后中断可唤醒
l 看门狗定时器
l 双数据指针
l 掉电标识符
功能特性描述
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
R
8 位微控制器
8K 字节在系统可编程
Flash
AT89S52
Rev. 1919-07/01
1
引脚结构
AT89S52
2
方框图
AT89S52
引脚功能描述
3
AT89S52
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”时,内部上拉电阻把端口拉高,此时可以作为输入
口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部计数输入(P1.0/T2)和时器/计数器 2
的触发输入(P1.1/T2EX),具体如下表所示。
在 flash 编程和校验时,P1 口接收低 8 位地址字节。
引脚号
P1.0
P1.1
P1.5
P1.6
P1.7
第二功能
T2(定时器/计数器 T2 的外部计数输入),时钟输出
T2EX(定时器/计数器 T2 的捕捉/重载触发信号和方向控制)
MOSI(在系统编程用)
MISO(在系统编程用)
SCK(在系统编程用)
P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个
TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入
口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行 MOVX @DPTR)
时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送 1。在使用
8 位地址(如 MOVX @RI)访问外部数据存储器时,P2 口输出 P2 锁存器的内容。
在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。
P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p2 输出缓冲器能驱动 4 个
TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入
口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3 口亦作为 AT89S52 特殊功能(第二功能)使用,如下表所示。
在 flash 编程和校验时,P3 口也接收一些控制信号。
4
AT89S52
引脚号
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
第二功能
RXD(串行输入)
TXD(串行输出)
INT0(外部中断 0)
INT0(外部中断 0)
T0(定时器 0 外部输入)
T1(定时器 1 外部输入)
WR(外部数据存储器写选通)
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 应该接 VCC。
在 flash 编程期间,EA 也接收 12 伏 VPP 电压。
XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:振荡器反相放大器的输出端。
5
表 1 AT89S52 特殊寄存器映象及复位值
AT89S52
特殊功能寄存器
特殊功能寄存器(SFR)的地址空间映象如表 1 所示。
并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将
得到一个随机数据;写入的数据将会无效。
用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的
功能,复位后,这些位都为“0”。
定时器 2 寄存器:寄存器 T2CON 和 T2MOD 包含定时器 2 的控制位和状态位(如表 2
和表 3 所示),寄存器对 RCAP2H 和 RCAP2L 是定时器 2 的捕捉/自动重载寄存器。
中断寄存器:各中断允许位在 IE 寄存器中,六个中断源的两个优先级也可在 IE 中设置。
6
AT89S52
表 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
-
7
0 ALE
1 ALE
0
1 Reset
WDIDLE
0
1
AT89S52
DPS 至合理的值。
表 3a AUXR:辅助寄存器
AUXR 地址:8EH 复位值:XXX00XX0B
不可位寻址
WDIDLE
DISRTO
-
2
-
1
DISALE
0
-
6
-
5
4
- 预留扩展用
DISALE ALE 使能标志位
DISALE 操作方式
3
DISRTO 复位输出标志位
DISRTO
以 1/6 晶振频率输出信号
只有在执行 MOVX 或 MOVC 指令时激活
看门狗(WDT)定时结束,Reset 输出高电平
只有输入
WDIDLE 空闲模式下 WDT 使能标志位
空闲模式下,WDT 继续计数
空闲模式下,WDT 停止计数
掉电标志位:掉电标志位(POF)位于特殊寄存器 PCON 的第四位(PCON.4)。上电期
间 POF 置“1”。POF 可以软件控制使用与否,但不受复位影响。
表 3b AUXR1:辅助寄存器 1
AUXR1 地址:A2H 复位值:XXXXXXX0B
不可位寻址
-
7
-
6
-
5
-
4
-
3
-
2
-
1
DPS
0
-
DPS 数据指针选择位
预留扩展用
DPS
0 选择 DPTR 寄存器 DP0L 和 DP0H
1 选择 DPTR 寄存器 DP1L 和 DP1H
8