最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

AT89S52-基本性能介绍

IT圈 admin 19浏览 0评论

2024年10月29日发(作者:谯光赫)

AT89S52-基本性能介绍

主要性能

与MCS-51单片机产品兼容

8K字节在线系统可编程Flash存储器

1000次擦写周期

4.0V-5.5V工作电压

全静态操作:0Hz~33Hz

三级加密程序存储器

256*8字节的内部数据存储器

32个可编程I/O口线

三个16位定时器/计数器

八个中断源

全双工UART串行通道

低功耗空闲和掉电模式

掉电后中断可唤醒

看门狗定时器

双数据指针

掉电标识符

快速编程周期

灵活ISP编程(字节和 模式)

绿色(-免费)工作包操作

1功能特性描述

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内容被保存,振荡器被冻

结,单片机一切工作停止,直到下一个中断或硬件复位为止。

2. 引脚结构

3. 引脚描述

3.1 VCC : 电源

3.2 GND: 地

3.3 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个

TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数

据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉

电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

3.4P1 口: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

P1.1

P1.2

P1.6

P1.7

T2(定时器/计数器T2的外部计数输入),时钟输出

T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

MOSI(在系统编程用)

MISO(在系统编程用)

SCK(在系统编程用)

3.5 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位地址字节和一些

控制信号。

3.6 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱

动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可

以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将

输出电流(I

IL

)。在flash编程和校验时,P3口也接收一些控制信号。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。

Port Pin Alternate Functions

通过硬件复位退出掉电模式后,用户就应该给WDT 喂狗,就如同通常AT89S52 复

位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时

间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保

持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。这就意味着WDT 应

该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢

出,最好在进入掉电模式前就复位WDT。在进入待机模式前,特殊寄存器AUXR

的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE

=0,WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一

个定时器,定时离开待机模式,喂狗,再重新进入待机模式。

7 UART

在AT89S52 中,UART 的操作与AT89C51 和AT89C52 一样。为了获得更深入的

关于UART 的信息,可参考ATMEL 网站()。从这个主页,

选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择

“Product

Overview”即可。

8 定时器0 和定时器1

在AT89S52 中,定时器0 和定时器1 的操作与AT89C51 和AT89C52 一样。为了

获得更深入的关于UART 的信息,可参考ATMEL 网站()。

从这个主页,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,

再选择“ProductOverview”即可。

9 定时器2

定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工

作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。定时器2有三种工作

模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表3 所示,工

作模式由T2CON中的相关位选择。定时器2 有2 个8位寄存器:TH2和TL2。在定

时工作方式中,每个机器周期,TL2 寄存器都会加1。由于一个机器周期由12 个晶

振周期构成,因此,计数频率就是晶振频率的1/12。

在计数工作方式下,寄存器在相关外部输入角T2 发生1 至0 的下降沿时增加1。在

这种方式下,每个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,

而下一个周期采样到低电平,计数器将加1。在检测到跳变的这个周期的S3P1 期间,

新的计数值出现在寄存器中。因为识别1-0的跳变需要2个机器周期(24个晶振周

期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在改变

前采样到一次,电平应该至少在一个完整的机器周期内保持不变。

9.1捕捉方式

在捕捉模式下,通过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 也会引起

中断。

9.2 自动重载

当定时器2 工作于16 位自动重载模式,可对其编程实现向上计数或向下计数。这

一功能可以通过特殊寄存器T2MOD(见表4)中的DCEN(向下计数允许位)来实

现。通过复位,DCEN 被置为0,因此,定时器2 默认为向上计数。DCEN 设置后,

定时器2就可以取决于T2EX向上、向下计数。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溢出,并置位

TF2。定时器的溢出也使得RCAP2H和RCAP2L中的16位值分别加载到定时器存储

器TH2和TL2中。T2EX 上的一个逻辑0 使得定时器2 向下计数。当TH2 和TL2 分

别等于RCAP2H 和RCAP2L中的值的时候,计数器下溢。计数器下溢,置位TF2,

并将0FFFFH加载到定时器存储器中。定时器2上溢或下溢,外部中断标志位EXF2

被锁死。在这种工作模式下,EXF2不能触发中断。

10 波特率发生器

通过设置T2CON(见表2)中的TCLK或RCLK可选择定时器2 作为波特率发生器。

如果定时器2作为发送或接收波特率发生器,定时器1可用作它用,发送和接收的波

特率可以不同。如图8 所示,设置RCLK 和(或)TCLK 可以使定时器2 工作于

波特率产生模式。波特率产生工作模式与自动重载模式相似,因此,TH2 的翻转

使得定时器2 寄存器重载被软件预置16位值的RCAP2H和RCAP2L中的值。模式1

和模式3的波特率由定时器2溢出速率决定,具体如下公式:模式1和模式3波特率=

晶振频率

32 x [65536-(RCAP2H,RCAP2L)]

,其中(RCAP2H,RCAP2L)是RCAP2H和

RCAP2L组成的16位无符号整数。

16定时器2溢出率定时器可设置成定时器,也可为计数器。在多数应用情况下,一

般配置成定时方式(CP/T2=0)。定时器2 用于定时器操作与波特率发生器有所不

同,它在每一机器周期(1/12晶振周期)都会增加;然而,作为波特率发生器,它

在每一机器状态(1/2晶振周期)都会增加。

定时器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)。

11 可编程时钟输出

如图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-( 2 , 2 )]晶振频率RCAP H RCAP

L

在时钟输出模式下,定时器2不会产生中断,这和定时器2用作波特率发生器一样。

定时器2也可以同时用作波特率发生器和时钟产生。不过,波特率和输出时钟频率

相互并不独立,它们都依赖于RCAP2H和RCAP2L

12 中断

AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器

0、1、2)和一个串行中断。每个中断源都可以通过置位或清除特殊寄存器IE 中的

相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位

EA,它能一次禁止所有中断。IE.6位是不可用的。对于AT89S52,IE.5位也是不能

用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。定时器2可以被

寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位

都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2 或EXF2激活中断,

标志位也必须由软件清0。定时器0和定时器1标志位TF0 和TF1在计数溢出的那个

周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2 的

标志位TF2 在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。

13

晶振特性

AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分

别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡

器。从外部时钟源驱动器件的话,XTAL2 可以不接,而从XTAL1 接入。由于外

部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占

空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求

的。

14 空闲模式

在空闲工作模式下,CPU 处于睡眠状态,而所有片上外部设备保持激活状态。这

种状态可以通过软件产生。在这种状态下,片上RAM和特殊功能寄存器的内容保

持不变。空闲模式可以被任一个中断或硬件复位终止。由硬件复位终止空闲模式只

需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部RAM,而

可以访问端口引脚。空闲模式被硬件复位终止后,为了防止预想不到的写端口,激

活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。

15 掉电模式

在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上

RAM

和特殊功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外

部中断退出。复位重新定义了SFR 的值,但不改变片上RAM 的值。在V

CC

未恢复

到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工

作和初始化。

16 程序存储器的加密位

AT89S52有三个加密位不可编程(U)和可编程获得下表所示的功能。

加密位1(LB1)编程后,EA 引脚的逻辑值被采样,并在复位期间

加密位1(LB1)编程后,EA 引脚的逻辑值被采样,并在复位期间锁存。如果器件

复位,而没有复位,将锁存一个随机值,直到复位为止。为了器件功能正常,锁存

到的EA值必须和这个引脚的当前逻辑电平一致。

17 Flash编程―并行模式

AT89S52 带有用作编程的片上Flash 存储器阵列。编程接口需要一个高电压(12V)

编程使能信号,并且兼容常规的第三方*(原文:third-party,不知道对不对)Flash

或EPROM编程器。AT89S52程序存储阵列采用字节式编程。

2024年10月29日发(作者:谯光赫)

AT89S52-基本性能介绍

主要性能

与MCS-51单片机产品兼容

8K字节在线系统可编程Flash存储器

1000次擦写周期

4.0V-5.5V工作电压

全静态操作:0Hz~33Hz

三级加密程序存储器

256*8字节的内部数据存储器

32个可编程I/O口线

三个16位定时器/计数器

八个中断源

全双工UART串行通道

低功耗空闲和掉电模式

掉电后中断可唤醒

看门狗定时器

双数据指针

掉电标识符

快速编程周期

灵活ISP编程(字节和 模式)

绿色(-免费)工作包操作

1功能特性描述

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内容被保存,振荡器被冻

结,单片机一切工作停止,直到下一个中断或硬件复位为止。

2. 引脚结构

3. 引脚描述

3.1 VCC : 电源

3.2 GND: 地

3.3 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个

TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数

据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉

电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

3.4P1 口: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

P1.1

P1.2

P1.6

P1.7

T2(定时器/计数器T2的外部计数输入),时钟输出

T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

MOSI(在系统编程用)

MISO(在系统编程用)

SCK(在系统编程用)

3.5 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位地址字节和一些

控制信号。

3.6 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱

动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可

以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将

输出电流(I

IL

)。在flash编程和校验时,P3口也接收一些控制信号。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。

Port Pin Alternate Functions

通过硬件复位退出掉电模式后,用户就应该给WDT 喂狗,就如同通常AT89S52 复

位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时

间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保

持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。这就意味着WDT 应

该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢

出,最好在进入掉电模式前就复位WDT。在进入待机模式前,特殊寄存器AUXR

的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE

=0,WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一

个定时器,定时离开待机模式,喂狗,再重新进入待机模式。

7 UART

在AT89S52 中,UART 的操作与AT89C51 和AT89C52 一样。为了获得更深入的

关于UART 的信息,可参考ATMEL 网站()。从这个主页,

选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择

“Product

Overview”即可。

8 定时器0 和定时器1

在AT89S52 中,定时器0 和定时器1 的操作与AT89C51 和AT89C52 一样。为了

获得更深入的关于UART 的信息,可参考ATMEL 网站()。

从这个主页,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,

再选择“ProductOverview”即可。

9 定时器2

定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工

作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。定时器2有三种工作

模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表3 所示,工

作模式由T2CON中的相关位选择。定时器2 有2 个8位寄存器:TH2和TL2。在定

时工作方式中,每个机器周期,TL2 寄存器都会加1。由于一个机器周期由12 个晶

振周期构成,因此,计数频率就是晶振频率的1/12。

在计数工作方式下,寄存器在相关外部输入角T2 发生1 至0 的下降沿时增加1。在

这种方式下,每个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,

而下一个周期采样到低电平,计数器将加1。在检测到跳变的这个周期的S3P1 期间,

新的计数值出现在寄存器中。因为识别1-0的跳变需要2个机器周期(24个晶振周

期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在改变

前采样到一次,电平应该至少在一个完整的机器周期内保持不变。

9.1捕捉方式

在捕捉模式下,通过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 也会引起

中断。

9.2 自动重载

当定时器2 工作于16 位自动重载模式,可对其编程实现向上计数或向下计数。这

一功能可以通过特殊寄存器T2MOD(见表4)中的DCEN(向下计数允许位)来实

现。通过复位,DCEN 被置为0,因此,定时器2 默认为向上计数。DCEN 设置后,

定时器2就可以取决于T2EX向上、向下计数。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溢出,并置位

TF2。定时器的溢出也使得RCAP2H和RCAP2L中的16位值分别加载到定时器存储

器TH2和TL2中。T2EX 上的一个逻辑0 使得定时器2 向下计数。当TH2 和TL2 分

别等于RCAP2H 和RCAP2L中的值的时候,计数器下溢。计数器下溢,置位TF2,

并将0FFFFH加载到定时器存储器中。定时器2上溢或下溢,外部中断标志位EXF2

被锁死。在这种工作模式下,EXF2不能触发中断。

10 波特率发生器

通过设置T2CON(见表2)中的TCLK或RCLK可选择定时器2 作为波特率发生器。

如果定时器2作为发送或接收波特率发生器,定时器1可用作它用,发送和接收的波

特率可以不同。如图8 所示,设置RCLK 和(或)TCLK 可以使定时器2 工作于

波特率产生模式。波特率产生工作模式与自动重载模式相似,因此,TH2 的翻转

使得定时器2 寄存器重载被软件预置16位值的RCAP2H和RCAP2L中的值。模式1

和模式3的波特率由定时器2溢出速率决定,具体如下公式:模式1和模式3波特率=

晶振频率

32 x [65536-(RCAP2H,RCAP2L)]

,其中(RCAP2H,RCAP2L)是RCAP2H和

RCAP2L组成的16位无符号整数。

16定时器2溢出率定时器可设置成定时器,也可为计数器。在多数应用情况下,一

般配置成定时方式(CP/T2=0)。定时器2 用于定时器操作与波特率发生器有所不

同,它在每一机器周期(1/12晶振周期)都会增加;然而,作为波特率发生器,它

在每一机器状态(1/2晶振周期)都会增加。

定时器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)。

11 可编程时钟输出

如图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-( 2 , 2 )]晶振频率RCAP H RCAP

L

在时钟输出模式下,定时器2不会产生中断,这和定时器2用作波特率发生器一样。

定时器2也可以同时用作波特率发生器和时钟产生。不过,波特率和输出时钟频率

相互并不独立,它们都依赖于RCAP2H和RCAP2L

12 中断

AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器

0、1、2)和一个串行中断。每个中断源都可以通过置位或清除特殊寄存器IE 中的

相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位

EA,它能一次禁止所有中断。IE.6位是不可用的。对于AT89S52,IE.5位也是不能

用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。定时器2可以被

寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位

都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2 或EXF2激活中断,

标志位也必须由软件清0。定时器0和定时器1标志位TF0 和TF1在计数溢出的那个

周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2 的

标志位TF2 在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。

13

晶振特性

AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分

别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡

器。从外部时钟源驱动器件的话,XTAL2 可以不接,而从XTAL1 接入。由于外

部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占

空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求

的。

14 空闲模式

在空闲工作模式下,CPU 处于睡眠状态,而所有片上外部设备保持激活状态。这

种状态可以通过软件产生。在这种状态下,片上RAM和特殊功能寄存器的内容保

持不变。空闲模式可以被任一个中断或硬件复位终止。由硬件复位终止空闲模式只

需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部RAM,而

可以访问端口引脚。空闲模式被硬件复位终止后,为了防止预想不到的写端口,激

活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。

15 掉电模式

在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上

RAM

和特殊功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外

部中断退出。复位重新定义了SFR 的值,但不改变片上RAM 的值。在V

CC

未恢复

到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工

作和初始化。

16 程序存储器的加密位

AT89S52有三个加密位不可编程(U)和可编程获得下表所示的功能。

加密位1(LB1)编程后,EA 引脚的逻辑值被采样,并在复位期间

加密位1(LB1)编程后,EA 引脚的逻辑值被采样,并在复位期间锁存。如果器件

复位,而没有复位,将锁存一个随机值,直到复位为止。为了器件功能正常,锁存

到的EA值必须和这个引脚的当前逻辑电平一致。

17 Flash编程―并行模式

AT89S52 带有用作编程的片上Flash 存储器阵列。编程接口需要一个高电压(12V)

编程使能信号,并且兼容常规的第三方*(原文:third-party,不知道对不对)Flash

或EPROM编程器。AT89S52程序存储阵列采用字节式编程。

发布评论

评论列表 (0)

  1. 暂无评论