Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
1
AT89S52使用说明
特性:
1、 与MCS-51兼容;
2、 8K Bytes,Flash存储器,在线编程,可写1000次;
3、 4.0-5.5V工作电压;
4、 晶震:0-33MHz;
5、 3层可编程加密;
6、 自带256×8bit,RAM;
7、 32个可编程I/O管脚;
8、 3个16-bit定时器/计数 器;
9、 8个中断源;
10、 全双工UART;
11、 具有休眠节电模式;
12、 节电模式中断唤醒;
13、 自带看门够
描述:
AT89S52是低功耗,8位CMOS工艺处理器,具有8K在线可编程Flash存储器。片内falsh
可多次编程。At89S52是一个功能强大的处理器,可以为许多嵌入式应用提供高灵活性,高
性价比的解决方案。
2
3
1、 AT89S52芯片管脚说明
VCC/GND
电源引脚;
Port 0
Port 0 是一个 8 位漏极开路型双向 I/O 端口,端口置 1(对端口写 1)时作高阻抗输入
端。
Port 0 还可以用作总线方式下的地址数据复用管脚,用来操作外部存储器。在这种工
作模式下,P0口具有内部上拉。
对内部 Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上
拉电阻。
Port 1
P1 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可驱动 4 个 TTL。端口置 1
时,内部上拉电阻将端口拉到高电平,作输入用。
另外,P1.0,P1.1 可以分别被用作定时器/计数器 2 的外部计数输入(P1.0/T2)和触发
输入(P1.1/T2EX);
对内部 Flash程序存储器编程时,接收低 8 位地址信息。
Port 2
P2 端口[P2.0-P2.7] P2 是一个带有内部上拉电阻的8位双向 I/0端口。输出时可驱动
4个 TTL。端口置 1时,内部上拉电阻将端口拉到高电平,作输入用。
P2 口在存取外部存储器时,可作为高位地址输出。内部 Flash程序存储器编程时,接收
高 8 位地址和控制信息。
Port 3
P3 端口[P3.0-P3.7] P2 是一个带有内部上拉电阻的8位双向 I/0端口。输出时可驱动
4个 TTL。端口置 1时,内部上拉电阻将端口拉到高电平,作输入用。
功能复用:
P3引脚 兼用功能
P3.0 串行通讯输入(RXD)
P3.1 串行通讯输出(TXD)
4
P3.2 外部中断 0( INT0)
P3.3 外部中断 1(INT1)
P3.4 定时器 0输入(T0)
P3.5 定时器 1输入(T1)
P3.6 外部数据存储器写选通 WR
P3.7 外部数据存储器写选通 RD
RST: 9
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此管脚时,将
使单片机复位,只要这个管脚保持高电平,51 芯片便循环复位。复位后 P0-P3 口均置 1,
管脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低
电平时,芯片为 ROM的 00H处开始运行程序。
XTAL1,XTAL2
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部
5
振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如
晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。
ALE/PROG:
访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访
问外部存储器,ALE 端仍以不变的频率输出脉冲信号(此频率是振荡器频率的 1/6)。在访问
外部数据存储器时,出现一个 ALE脉冲。
PSEN:
该引是外部程序存储器的选通信号输出端。当 AT89C51 由外部程序存储器取指令或常数
时,每个机器周期输出 2个脉冲即两次有效。但访问外部数据存储器时,将不会有脉冲输出。
EA/Vpp:
外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。要使AT89C51 只访
问外部程序存储器(地址为 0000H-FFFFH),这时该引脚必须保持低电平。
特殊功能寄存器:
Timer2 寄存器:T2CON 和 T2MOD 包含定时器 2 的控制和状态位。PCAP2H,PCAP2L
是定时器 2的 16位捕获模式和 16位自动重装模式的控制寄存器。
TF2:定时器 2溢出标志位,必须用软件清除。当 RCLK=1或 TCLK=1时,不会被置位。
EXF2:定时器2控制标志位,当定时器 2中断允许时,EXF2=1会触发定时中断。EXF2位需
要用软件清除,当工作在计数模式时(DCEN=1),不会触发中断。
RCLK:接受时钟允许位。当设置为1 时,使用时钟 2 作为串口工作在 1,3 方式下的接受时
钟信号。当为 0时,用定时器 1作为接受时钟。
TCLK:接受时钟允许为。当设置为1 时,使用时钟 2 作为串口工作在 1,3 方式下的发送时
钟信号。当为 0时,用定时器 1作为发送时钟。
EXE2:定时器 2 外部使能位。当定时器 2 没有工作在串口时钟的方式下时,T2EX 下降沿触
发捕获或者重装功能。
TR2:定时器 2开启和关闭控制位。TR2=1时启动定时器。
C/#T2:定时器,计数器选择。0时位定时器,1时为外部计数器(下降沿触发)。
6
CP/#RL2:捕获,重装选择。CP/#RL2=1,且当 EXEN2=1时,T2EX下降沿可以触发捕获操作。
CP/#RL2=0,且当EXEN3=1时,定时器2溢出或者 T2EX下降沿,可以触发自动装置
操作。如果RCLK或者 TCLK为 1时,这个设置位将会被忽略,定时器2只使用自动装
载模式。
辅助寄存器:
- : 保留位,以后扩展使用;
DISALE: ALE使能位
0 ALE 送出 1/6晶振时钟频率;
1 ALE 仅在 MOVX和 MOVC指令时起作用;
DISRTO: 复位使能位
0 看门狗超时,Reset脚置高电平;
1 Reset 只作为输入脚;
WDIDLE:看门狗在休眠模式时,使能位
0 休眠模式时,看门狗继续计数;
1 休眠模式时,看门狗挂起;
看门狗 定时器(WDT):
看门狗可以在 CPU 运行出现问题时,用来恢复系统功能的一种方法。WDT 包括一个 13
位的计数器和一个看门狗定时器复位功能寄存器。默认时不使用 WDT。用户必须依次向
WDTRST 寄存器(0A6H)写入01EH和 0E1H。当打开WDT后,每个机器周期,看门狗计数器都
要增加 1。WDT 溢出周期取决于外部时钟频率。除了使用 Reset 信号(不管硬件复位还是看
门狗溢出复位)外,不能够终止 WDT 的工作。当看门狗溢出时,将会导致RESTET 脚出现复
位高脉冲。
7
看门狗(WDT)的使用:
当需要使用看门狗时,需要往相应寄存器依次写入01EH和 0E1H。一旦打开后,用户必
须定期往该寄存器写入01EH和0E1H,以避免WDT溢出。当十三位的计数器值达到8191(1FFF)
时,看门狗将会复位单片机。每个机器周期计数器都将会增 1,这就意味着在 8191 个机器
周期内必须复位计数器。WDTRST 寄存器是一个只写寄存器,计数器不能读也不能写。
断电和休眠模式下 WDT状态
在断电模式下,晶振将停止工作,这也意味这看门狗也停止了工作。因此在断电模式下
用户不需要控制 WDT。退出看门狗有两种方法:硬件复位或者电平触发的能够进入断电模式
的外部中断。当使用硬件复位时,看门狗的工作方式于普通复位方式一样。而采用外部中断
方式则有很大区别。首先中断管脚必须维持低电平足够的时间,以保证晶振稳定工作。当中
断管脚拉到高电平时,进入中断服务程序。为了避免在中断管脚维持低电平期间,WDT复位
硬件设备,WDT会在中断管脚电平拉高以后开始工作。在退出断电模式,进入中断服务程序
时,建议重置WDT。同时为了保证在WDT在退出断电模式时,不会溢出而复位硬件设备,最
好是在进入断电模式之前复位 WDT。
进入休眠模式前,设置WDIDLE 位(在AUXR辅助寄存器中)决定WDT是否继续计数。默
认方式是 WDT继续计数(WDIDLE=0)。这种状态下如果在休眠期间避免WDT复位硬件,用户
需要设置一个定时器定时退出休眠模式重置WDT,然后在进入休眠模式。WDIDLE 为 1时,WDT
会停止计数,当退出休眠时会继续计数。
定时器 0,1: 和普通该系列单片机相同,可参考相关文档或资料。
定时器 2:
Time 2 是一个 16位定时/计数器,可以用作定时或者计数器。工作模式选择可以通过
设定 T2CON中的 C/#T2位实现。Time 2 有 3种工作放式:捕获模式,自动装载模式(增或
者减计数),波特率产生器。模式设置方式见下表。Time 2 包含 2个 8位寄存器,TH2和 TL2。
在定时方式下 TL2寄存器每个机器周期(即 12个晶振周期)增加 1。
8
在计数方式下,当外部管脚 T2出现 1-0的跳变时,计数器将会增 1。这种工作方式下,
89S52每个时钟周期都会对该管脚进行采样,当采样出现前一个周期是高电平,后一个周期
是低电平,则计数期增加 1 。由于需要 2 个机器周期(24 个晶振周期)才能识别 1-0 的变
化,所以最大计数频率位晶振频率的 1/24。为了保证能够在电平变化时能够被采样,电平
保持时间至少为一个完整的机器周期。
捕捉模式:
在捕捉模式下,设置 EXEN2脚,有两种工作方式。当EXEN2=0时,Time 2 是 16位定
时器或计数器。当计数溢出时,会设置T2CON中的 TF2位,进而触发相关中断。当 EXEN2=
1时,Time 2 工作与前者一样,但当外部输入管脚 T2EX发生 1-0跳变时,会自动将 TH2,
TL2值分别捕获到 PCAP2H,PCAP2L 中。另外,会设置T2CON寄存器中的 EXF2位。这位的功
能与 TF2相似,也可以触发一个中断。捕捉模式原理图如下:
自动装载模式(增计数或减计数):
当 Time 2 设置为 16位自动装置模式时,能够设定增计数或减计数方式。这个功能可以
通过设定 T2MON寄存器的 DCEN位来实现。默认方式是DCEN=0,增加计数。DCEN=1时,计
数方式决定于外部输入管脚 T2EX。下图是当 DCEN=0时的原理图。在这种模式下,通过 EXEN2
位也有两种工作方式。当 EXEN2=0 时,Time 2 计数到 0FFFFH 溢出,同时设置 TF2 位。溢
9
出后会触发寄存器自动从 RCAP2H,RCAP2L 装载 16位数值。这个数值在捕捉模式下由软件预
先设置。如果 EXEN2=1,自动装载过程可以由溢出触发,也可以由外部输入管脚 T2EX 的 1
-0跳变触发。同时也会设置EXF2位,与 TF2位一样,当中断允许时,都会触发相关中断。
T2OE: Time 2 输出允许;
DCEN:允许 Time2 被设定位增计数或减计数方式;
设置 DCEN位为 1时,T2EX管脚可以控制计数器增加或减小计数方式。T2EX=1时,Time
2 计数增加,当超过 0FFFFH 时溢出,置位并重新装载 16位数。T2EX=0时,Time 2 计数减
小,当 TH2,TL2中数值减小直到与 RCAP2H,RCAP2L 中数值相等时,触发下溢出操作,这时
会自动重新装载 0FFFFH,设置 TF2位。不管寄存器出现上溢出,还是下溢出,EXF2 位会取
反。这种工作方式下,EXF2不会触发中断。原理如下图所示:
10
波特率发生器:
通过设置 T2CON 寄存器中的 TCLK,RCLK可以将 Time 2 用作波特率发生器。当定时器1
用作其它功能,定时器 2用作接收发送波特率发生器时,其接收与发送的波特率可以不一样。
原理图如下图所示:
波特率发生器模式下工作方式与自动装载模式相类似,定时器 2也会自动装载预先在程
序中设定的 RCAP2H,RCAP2L 的数值。在该模式下1,3工作方式的波特率大小取决于溢出速
率,公式如下:
11
Time 2 可以配置成计数或者定时模式。在大多数应用中,都用作定时模式。然而定时模式
与用作波特率发生器不一样,一般的,用作定时器时,每一个机器周期(1/12 晶振频率)
计数增加 1。但是用作波特率发生器时,每个状态周期(1/2晶振频率)增加 1。