at89s52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/at89s... ·...

11
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 是一个功能强大的处理器,可以为许多嵌入式应用提供高灵活性,高 性价比的解决方案。

Upload: others

Post on 24-Dec-2019

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增1。这种工作方式下,

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是一个功能强大的处理器,可以为许多嵌入式应用提供高灵活性,高

性价比的解决方案。

Page 2: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增1。这种工作方式下,

2

Page 3: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增1。这种工作方式下,

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)

Page 4: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增1。这种工作方式下,

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则是输出端,使用外部振荡器时,外部

Page 5: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增1。这种工作方式下,

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时为外部计数器(下降沿触发)。

Page 6: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-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 脚出现复

位高脉冲。

Page 7: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增1。这种工作方式下,

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。

Page 8: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增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 位。溢

Page 9: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增1。这种工作方式下,

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不会触发中断。原理如下图所示:

Page 10: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增1。这种工作方式下,

10

波特率发生器:

通过设置 T2CON 寄存器中的 TCLK,RCLK可以将 Time 2 用作波特率发生器。当定时器1

用作其它功能,定时器 2用作接收发送波特率发生器时,其接收与发送的波特率可以不一样。

原理图如下图所示:

波特率发生器模式下工作方式与自动装载模式相类似,定时器 2也会自动装载预先在程

序中设定的 RCAP2H,RCAP2L 的数值。在该模式下1,3工作方式的波特率大小取决于溢出速

率,公式如下:

Page 11: AT89S52使用说明 - pudn.comread.pudn.com/downloads167/sourcecode/embed/766962/AT89s... · 2008-04-25 · 8 在计数方式下,当外部管脚t2出现1-0的跳变时,计数器将会增1。这种工作方式下,

11

Time 2 可以配置成计数或者定时模式。在大多数应用中,都用作定时模式。然而定时模式

与用作波特率发生器不一样,一般的,用作定时器时,每一个机器周期(1/12 晶振频率)

计数增加 1。但是用作波特率发生器时,每个状态周期(1/2晶振频率)增加 1。