-
AT89C52
介绍
AT89C52
ATMEL
是一种低功耗,高性能
CMOS
8
位单片机.片内含
8K b
yTES
的可反复擦写的只读程序存储器(
PEROM
< br>)
。器件采用
ATMEL
公司的
高
密度、非易失性存储技术生产,与标准
80C51
指令系统及
80C52
产品引脚
兼容,片内置通用
8
位中央处理器(
< br>CPU
)和
FLASH
由存储
单元,功能强
大
AT89C52
单片适
用于许多较为复杂控制应用场合。
主要性能参数:
与
< br>Mcs-51
产品指令和引脚完全兼容。
8
字节可重擦写
FLASH
闪速存储器
1000
次擦写周期
全静态操作:
0HZ-24MHZ
三级加密程序存储器
256X8
字节内部
RAM
32
个可编程
I/0
口
线
3
个
16
位定时/计数器
8
个中断源
可编程串行
UART
通道
低功耗空闲和掉电模式
AT89C52
提供以下标准功能:
8
字节
FLASH
闪速存储器,
256
字节内部
RAM , 32
个
I/O
口线,
3
个
16
位定时/计数器,
< br>一个
6
向量两级中断结构,
一个
全双工串行通信口,片内振荡器及时钟电路。同时,
AT89c52
可降至零
赫兹的静态逻辑操作,并支持两种软件可选的节电上作模式。空闲方式停<
/p>
止
CPU
的工作,但允许
RAM
,定时/计数器.串行通信口及中断系统继续
工作。掉电方式保存
RAM
中的内容,但振荡器停止工作并禁
止其它所有部
件工作直到下一个硬件复位
.
功能引脚说明:
Vcc:
电源电压
GND:
地
P0
:
P0
口是一组
8
位漏极开路型双向
1/O
口,也即地址
/
数据总线复用口。
作为输出口用时.每位能吸收电流的方式驱动
8
个
TTL
逻辑门电路,对端
口
P0
写“1”时,可作为高阻抗输入端用。
P0
口也可以配置为复低位地址
/
数
据总线和内存数据访问外部程序。
在
这种模式下,
P0
具有内部上拉电阻。
在
FLASH
由编程时,
P0
口接收指令字节,而在程序校验时,输出指令
字节,校验时,要求外接上
拉电阻。
P1
:
P1
是一个带内部上拉电阻的
8
位双向
p>
I/O
口,
Pl
的
输出缓冲级可驱动
(吸收或输出电流)
4
个
TTL
逻辑门电路。对端口写“1”
,通过内部的上拉
电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内
部存
在上拉电阻某个引脚被外部信号拉低时会输出一个电流
II
L
,此外,
Pl.0
和
P1.1
还可分别作为定时
/
计数器
2
的外部计数输入(
Pl.0/T2
)和输入
(
P1.1/T2EX)
。
P2
:
P2
是一个带有内部上拉电阻的
8
位双向<
/p>
I/O
口,
P2
的输出缓冲级可驱
动(吸收或输出电流)
4
个
TTL
逻辑电路。对端口
P2<
/p>
写“l
上拉电阻把端口拉到高电平,此时可作输入口,作输入口使
用时,因为内
部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(
llt
)
。
在访问外部程序存储器或
16
位地址的外部数据
存储器(例如执行
MOvx@DP
TR
指令)时,
P2
送出高
8
位地址数据。在访问
8
位地址的外部数据存储<
/p>
器、如执行
MOVX@RI
指令)时,<
/p>
P2
口输出
P2
锁存器的内容。
FLASH
编程或校
验时,
P2
亦接收高位地址和一些控制信号。
< br>
P3
:
P3
口是一组带有内部上拉电阻的
8
位双向
I/O
口。
P3
口输出缓冲级可
驱动
(
吸收
或输出电流)
4
个
TTL
逻辑门电路。对
P3
口写入“1”时,它们
被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的
P3
口将用上
拉电阻输出电流(
IIL) .
此外,
P3
口还接收一些用于
FLASH
闪速存储器编程和程序校验的控制
信
号。
RST
:
复
位输入。
当振荡器工作时,
RST
引脚
出现两个机器周期以上高电平将
使单片机复位。
ALE/PROG
:
一般情况下,
ALE
仍以时钟振荡频率的
1/6
输出固定的脉冲信号,
因此
< br>它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储
器时将跳
过一个
ALE
脉冲。
对
Flash
存储器编程期间,该引脚还用于输入编程
脉冲
(PROG)
。
如有必要,
可通过对特殊功能寄存器
(
SFR
)
区中的
8EH
单元的
D0
位置位.
可
禁止
ALE
操作。该位置位后,只有
一条
MOVX
和
MOVC
指令才能将
ALE
激活
,<
/p>
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置
AL
E
禁止位
无效。
PSEN
:
程序储存允许
PSEN
输出是外部程序存储器的读选通信号,当
AT89C52
由外部程序存储器取指令(或数据)时,每个机
器周期两次
PSEN
有效,即
输出两个
脉冲。
在此期间,
当访问外部数据存储器,
将跳过两次
PSEN
信号。
EA/VPP
:
外部访问允许。欲使
CPU
仅访问外
部程序存储器
(
地址为
0000H-F
FFFH
) , EA
端必须保持低电平
(
接地)
.需注怠的是:如果加密位
LBI
被编程,
复位时内部会锁存
E
A
端状态。
如
EA
端为高电平(接
Vcc
端)
p>
。
flash
存储器编程时,该引脚加上<
/p>
+12
V
的编程允许电源
VPP
,当然这必须是该器件是使用
12V
编程电压
VPP
。
XTAL1
:振荡器反相放大器的及内部时钟发生器的输入端.
XTAL1
:振荡器反相放大器的输
出端。
特殊功能寄存器:
并非所有的地址都被定义,还有相当一部分没有定义。对没有定义的
单元
读写将是无效的,读出的数位将不确定,而写入的数据也将丢失。
软件使用者不应将数据
写入未定义的单元,由于这些单元在
将来的
产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”
。
定时
/
计数器
2
的控制和状态位位于
< br>T2CON
和
T2MOD
,寄
存器对(
RCA
02H
、
RCAP2L
)
是定时器
2
在
16
位捕获方式或
16
位自动重装载方式下的捕
获
/
自动重装载寄存器。
数据存储器
AT89C52
有
256
个字节的内部
RAM , 80H
-
FFH
高
128
个字节与特殊功
能寄存器(
SFR
)地址是重叠的,也就是高
128
字节的
RAM
和殊功能寄存器
< br>的地址是相同的,但物理上它们是分开的。
当一条指令
访问
7FH
以上的内部地址单元时,指令中使用的寻址方式
p>
是不同的,也即寻址方式决定是访问高
128
字节
RAM
还是访问特殊功能寄
存器
。如果指令是直接寻址方式则为访问特殊功能寄存器.
例如
,下面的直接寻址指令访问特殊功能寄存器
0A0H
(即
P2
口)地址
单元。
MOV 0A0H
,
#data
间接寻址指令访问高
128
字节
RAM
,例如下面的间接子址指令中,
R0
的内容为
OAOH
,则访问数据字节地址为
0A0H ,
而不是
P2
口(
0A0H
)
。
MOV @RO
,
#data
堆栈
操作也是间接寻址方式,所以,高
128
位数据
RAM
亦可作为堆栈
区使用。
定时器
O
和定时器
1
AT89C52
的定时器
O<
/p>
和定时器
1
的工作方式与
AT89C51
相同。
定时器
2
定时器
2
是一个
16
位定时计数器。它既
可当定时器使用,也可作为外
部事件计数器使用,其工作方式由特殊功能寄存器
T2CON
的
C/T2
位选择。
定时器
2
有三种工作方式:捕
获方式,自动重装载(向上或向下计数)方
式和波特率发生器方式,工作方式由
T2CON
的控制位来选择
。
定时器
2
由两个
8
位寄存器
TH2
和
TL2
组成,在定时器工
作方式中,