AT89S52详细资料.docx

上传人:b****3 文档编号:10895845 上传时间:2023-05-28 格式:DOCX 页数:16 大小:73.64KB
下载 相关 举报
AT89S52详细资料.docx_第1页
第1页 / 共16页
AT89S52详细资料.docx_第2页
第2页 / 共16页
AT89S52详细资料.docx_第3页
第3页 / 共16页
AT89S52详细资料.docx_第4页
第4页 / 共16页
AT89S52详细资料.docx_第5页
第5页 / 共16页
AT89S52详细资料.docx_第6页
第6页 / 共16页
AT89S52详细资料.docx_第7页
第7页 / 共16页
AT89S52详细资料.docx_第8页
第8页 / 共16页
AT89S52详细资料.docx_第9页
第9页 / 共16页
AT89S52详细资料.docx_第10页
第10页 / 共16页
AT89S52详细资料.docx_第11页
第11页 / 共16页
AT89S52详细资料.docx_第12页
第12页 / 共16页
AT89S52详细资料.docx_第13页
第13页 / 共16页
AT89S52详细资料.docx_第14页
第14页 / 共16页
AT89S52详细资料.docx_第15页
第15页 / 共16页
AT89S52详细资料.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

AT89S52详细资料.docx

《AT89S52详细资料.docx》由会员分享,可在线阅读,更多相关《AT89S52详细资料.docx(16页珍藏版)》请在冰点文库上搜索。

AT89S52详细资料.docx

AT89S52详细资料

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

1、与MCS-51单片机产品兼容;

2、8K字节在系统可编程Flash存储器;

3、1000次擦写周期;

4、全静态操作:

0Hz-33MHz;

5、三级加密程序存储器;

6、32个可编程I/O口线;

7、三个16位定时器/计数器;

8、六个中断源;

9、全双工UART串行通道;

10、低功耗空闲和掉电模式;

11、掉电后中断可唤醒;

12、看门狗定时器;

13、双数据指针;

14、掉电标识符。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程

AT89S52引脚图DIP封装

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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

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.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。

在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能:

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

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

P1.5MOSI(在系统编程用)

P1.6MISO(在系统编程用)

P1.7SCK(在系统编程用)

P2口:

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

AT89S52引脚图PLCC封装

4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

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

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

端口引脚第二功能:

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2INTO(外中断0)

P3.3INT1(外中断1)

P3.4TO(定时/计数器0)

P3.5T1(定时/计数器1)

P3.6WR(外部数据存储器写选通)

P3.7RD(外部数据存储器读选通)

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP:

外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。

FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1:

振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:

振荡器反相放大器的输出端。

编辑本段特殊功能寄存器

特殊功能寄存器(SFR)的地址空间映象如表1所示。

AT89S52特殊寄存器映象及复位值

并不是所有的地址都被定义了。

片上没有定义的地址是不能用的。

读这些地址,一般将得到一个随机数据;写入的数据将会无效。

用户不应该给这些未定义的地址写入数据“1”。

由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。

定时器2寄存器:

寄存器T2CON和T2MOD包含定时器2的控制位和状态位(如表2和表3所示),寄存器对RCAP2H和RCAP2L是定时器2的捕捉/自动重载寄存器。

中断寄存器:

各中断允许位在IE寄存器中,六个中断源的两个优先级也可在IE中设置。

表2T2CON:

定时器/计数器2控制寄存器

T2CON地址为0C8H复位值:

00000000B位可寻址

TF2

EXF2

RLCLK

TCLK

EXEN2

TR2

C/T2

CP/RL2

7

6

5

4

3

2

1

0

符号

功能

TF2

定时器2溢出标志位。

必须软件清“0”。

RCLK=1或TCLK=1时,TF2不

用置位。

EXF2

定时器2外部标志位。

EXEN2=1时,T2EX上的负跳变而出现捕捉或重载

时,EXF2会被硬件置位。

定时器2打开,EXF2=1时,将引导CPU执行定

时器2中断程序。

EXF2必须如见清“0”。

在向下/向上技术模式(DCEN=1)

下EXF2不能引起中断。

RLCLK

串行口接收数据时钟标志位。

若RCLK=1,串行口将使用定时器2溢出脉冲

作为串行口工作模式1和3的串口接收时钟;RCLK=0,将使用定时器1计数

溢出作为串口接收时钟。

TCLK

串行口发送数据时钟标志位。

若TCLK=1,串行口将使用定时器2溢出脉冲作

为串行口工作模式1和3的串口发送时钟;TCLK=0,将使用定时器1计数溢出

作为串口发送时钟。

EXEN2

定时器2外部允许标志位。

当EXEN2=1时,如果定时器2没有用作串行时钟,

T2EX(P1.1)的负跳变将引起定时器2捕捉和重载。

若EXEN2=0,定时器2

将视T2EX端的信号无效

TR2

开始/停止控制定时器2。

TR2=1,定时器2开始工作

C/T2

定时器2定时/计数选择标志位。

C/T2=0,定时;C/T2=1,外部事件计

数(下降沿触发)

CP/RL2

捕捉/重载选择标志位。

当EXEN2=1时,CP/RL2=1,T2EX出现负脉冲,会引

起捕捉操作;当定时器2溢出或EXEN2=1时T2EX出现负跳变,都会出现自动重载

操作。

CP/RL2=0将引起T2EX的负脉冲。

当RCKL=1或TCKL=1时,此标志位

无效,定时器2溢出时,强制做自动重载操作。

双数据指针寄存器:

为了更有利于访问内部和外部数据存储器,系统提供了两路16位数据指针寄存器:

位于SFR中82H~83H的DP0和位于84H~85。

特殊寄存器AUXR1中DPS=0选择DP0;DPS=1选择DP1。

用户应该在访问数据指针寄存器前先初始化DPS至合理的值。

表3aAUXR:

辅助寄存器

AUXR地址:

8EH复位值:

XXX00XX0B不可位寻址

WDIDLE

DISRTO

DISALE

7

6

5

4

3

2

1

0

预留扩展用

DISALEALE使能标志位

DISALE操作方式

0ALE以1/6晶振频率输出信号

1ALE只有在执行MOVX或MOVC指令时激活

DISRTO复位输出标志位

DISRTO

0看门狗(WDT)定时结束,Reset输出高电平

1Reset只有输入

WDIDLE空闲模式下WDT使能标志位

WDIDLE

0空闲模式下,WDT继续计数

1空闲模式下,WDT停止计数

掉电标志位:

掉电标志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。

上电期间POF置“1”。

POF可以软件控制使用与否,但不受复位影响。

表3bAUXR1:

辅助寄存器1

AUXR1地址:

A2H复位值:

XXXXXXX0B

不可位寻址

DPS

7

6

5

4

3

2

1

0

预留扩展用

DPS数据指针选择位

DPS

0选择DPTR寄存器DP0L和DP0H

1选择DPTR寄存器DP1L和DP1H

MCS-51器件有单独的程序存储器和数据存储器。

外部程序存储器和数据存储器都可以64K寻址。

程序存储器:

如果EA引脚接地,程序读取只从外部存储器开始。

对于89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:

2000H~FFFFH。

数据存储器:

AT89S52有256字节片内数据存储器。

高128字节与特殊功能寄存器重叠。

也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。

直接寻址方式访问特殊功能寄存器(SFR)。

例如,下面的直接寻址指令访问0A0H(P2口)存储单元MOV0A0H,#data使用间接寻址方式访问高128字节RAM。

例如,下面的间接寻址方式中,R0内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。

MOV@R0,#data堆栈操作也是间接寻址方式。

因此,高128字节数据RAM也可用于堆栈空间。

看门狗定时器

WDT是一种需要软件控制的复位方式。

WDT由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。

WDT在默认情况下无法工作;为了激活WDT,用户必须往WDTRST寄存器(地址:

0A6H)中依次写入01EH和0E1H。

当WDT激活后,晶振工作,WDT在每个机器周期都会增加。

WDT计时周期依赖于外部时钟频率。

除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。

当WDT溢出,它将驱动RSR引脚一个高电平输出。

WDT的使用为了激活WDT,用户必须向WDTRST寄存器(地址为0A6H的SFR)依次写入01EH和0E1H。

当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。

当计数达到8191(1FFFH)时,13位计数器将会溢出,这将会复位器件。

晶振正常工作、WDT激活后,每一个机器周期WDT都会增加。

为了复位WDT,用户必须向WDTRST写入01EH和0E1H(WDTRST是只读寄存器)。

WDT计数器不能读或写。

当WDT计数器溢出时,将给RST引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。

为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。

掉电和空闲方式下的WDT在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。

在这种方式下,用户不必喂狗。

有两种方式可以离开掉电模式:

硬件复位或通过一个激活的外部中断。

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

通过中断退出掉电模式的情形有很大的不同。

中断应持续拉低很长一段时间,使得晶振稳定。

当中断拉高后,执行中断服务程序。

为了防止WDT在中断保持低电平的时候复位器件,WDT直到中断拉低后才开始工作。

这就意味着WDT应该在中断服务程序中复位。

为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复位WDT。

在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。

默认状态下,在待机模式下,WDIDLE=0,WDT继续计数。

为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。

UART

在AT89S52中,UART的操作与AT89C51和AT89C52一样。

为了获得更深入的关于UART的信息,选择“Products”,然后选择“8051-ArchitechFlashMicrocontroller”,再选择“ProductOverview”即可。

定时器0和定时器1

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

为了获得更深入的关于UART的信息,选择“Products”,然后选择“8051-ArchitechFlashMicrocontroller”,再选择“ProductOverview”即可。

定时器2

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

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

定时器2有三种工作模式:

捕捉方式、自动重载(向下或向上计数)和波特率发生器。

如表3所示,工作模式由T2CON中的相关位选择。

定时器2有2个8位寄存器:

TH2和TL2。

在定时工作方式中,每个机器周期,TL2寄存器都会加1。

由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。

表3定时器2工作模式

RCLK+TCLK

CP/RL2

TR2

MODE

0

0

1

16位自动重载

0

1

1

16位捕捉

1

x

1

波特率发生器

x

x

0

(不用)

捕捉方式在捕捉模式下,通过T2CON中的EXEN2来选择两种方式。

图5定时器的捕捉模式

如果EXEN2=0,定时器2时一个16位定时/计数器,溢出时,对T2CON的TF2标志置位,TF2引起中断。

如果EXEN2=1,定时器2做相同的操作。

除上述功能外,外部输入T2EX引脚(P1.1)1至0的下跳变也会使得TH2和TL2中的值分别捕捉到RCAP2H和RCAP2L中。

除此之外,T2EX的跳变会引起T2CON中的EXF2置位。

像TF2一样,T2EX也会引起中断。

捕捉模式如图5所示。

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

在这种方式下,每个机器周期的S5P2期间采样外部输入。

一个机器周期采样到高电平,而下一个周期采样到低电平,计数器将加1。

在检测到跳变的这个周期的S3P1期间,新的计数值出现在寄存器中。

因为识别1-0的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。

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

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

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

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

DCEN设置后,定时器2就可以取决于T2EX向上、向下计数。

如图6所示,DCEN=0时,定时器2自动计数。

通过T2CON中的EXEN

图6定时器2重载模式(DCEN=0)

2位可以选择两种方式。

如果EXEN2=0,定时器2计数,计到0FFFFH后置位TF2溢出标志。

计数溢出也使得定时器寄存器重新从RCAP2H和RCAP2L中加载16位值。

定时器工作于捕捉模式,RCAP2H和RCAP2L的值可以由软件预设。

如果EXEN2=1,计数溢出或在外部T2EX(P1.1)引脚上的1到0的下跳变都会触发16位重载。

这个跳变也置位EXF2中断标志位。

T2EX上的一个逻辑0使得定时器2向下计数。

当TH2和TL2分别等于RCAP2H和RCAP2L中的值的时候,计数器下溢。

计数器下溢,置位TF2,并将0FFFFH加载到定时器存储器中。

如图6所示,置位DCEN,允许定时器2向上或向下计数。

在这种模式下,T2EX引脚控制着计数的方向。

T2EX上的一个逻辑1使得定时器2向上计数。

定时器计到0FFFFH溢出,并置位TF2。

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

定时器2上溢或下溢,外部中断标志位EXF2被锁死。

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

表4T2MOD-定时器2控制寄存器

T2MOD地址:

0C9H复位值:

XXXXXX00B

不可位寻址

T2OE

DCEN

7

6

5

4

3

2

1

0

符号

功能

无定义,预留扩展

定时器2输出允许位

置1后,定时器2可配置成向上/向下计数

编辑本段中断源

AT89S52有6个中断源:

两个外部中断(INT0和INT1),三个定时中断(定时器0、1、2)和一个串行中断。

这些中断如图10所示每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。

IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。

如表5所示,IE.6位是不可用的。

对于AT89S52,IE.5位也是不能用的。

用户软件不应给这些位写1。

它们为AT89系列新产品预留。

定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。

程序进入中断服务后,这些标志位都可以由硬件清0。

实际上,中断服务程序必须判定是否是TF2或EXF2激活中断,标志位也必须由软件清0。

定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。

它们的值一直到下一个周期被电路捕捉下来。

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

表4中断允许控制寄存器(IE)

(MSB)(LSB)

EA

ET2

ES

ET1

EX1

ET0

EX0

中断允许控制位=1,允许中断

中断允许控制位=0,禁止中断

符号

位地址

功能

EA

IE.7

中断总允许控制位。

EA=0,中断总禁止;EA=1,各中断

由各自的控制位设定

IE.6

预留

ET2

IE.5

定时器2中断允许控制位

ES

IE.4

串行口中断允许控制位

ET1

IE.3

定时器1中断允许控制位

EX1

IE.2

外部中断1允许控制位

ET0

IE.1

定时器0中断允许控制位

EX0

IE.0

外部中断0允许控制位

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2