0 卖盘信息
BOM询价
电子百科词库 >at89s52单片机

at89s52单片机

[ 浏览次数:约2068次 ] 发布日期:2017-06-27

         AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

at89s52单片机.jpg

目录
AT89S52主要性能
AT89S52寄存器
AT89S52存储器
AT89S52中断源

AT89S52主要性能


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

28K字节在系统可编程Flash存储器;

31000次擦写周期;

4、全静态操作:0Hz-33MHz;

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

632个可编程I/O口线;

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

86个中断源;

9、全双工UART串行通道;

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

11、掉电后中断可唤醒;

12、看门狗定时器;

13、双数据指针;

14、掉电标识符。

AT89S52引脚说明

 

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

AT89S52-24PU Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash256字节RAM32 I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数

AT89S52引脚图 DIP封装 器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

P0

P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。

P1

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

此外,P1.0P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能:

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

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

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

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

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

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口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能:

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INTO(外中断0)

P3.3 INT1(外中断1)

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

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

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

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

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

RST

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

ALE/PROG

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVXMOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN

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

EA/VPP

外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH)EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(Vcc)CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp

AT89S52寄存器

 

并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一

AT89S52 特殊寄存器映象及复位值 个随机数据;写入的数据将会无效。

用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”

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

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

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

T2CON 地址为0C8H 复位值:0000 0000B位可寻址

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位数据指针寄存器:位于SFR82H~83HDP0和位于84H85。特殊寄存器AUXR1DPS=0 选择DP0;DPS=1 选择DP1。用户应该在访问数据指针寄存器前先初始化DPS至合理的值。

3a AUXR:辅助寄存器

AUXR 地址:8EH 复位值:XXX00XX0B不可位寻址




WDIDLE

DISRTO



DISALE

7

6

5

4

3

2

1

0

预留扩展用

DISALE ALE使能标志位

DISALE 操作方式

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

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

DISRTO 复位输出标志位

DISRTO

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

1 Reset 只有输入

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

WDIDLE

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

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

掉电标志位:掉电标志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上电期间POF“1”POF可以软件控制使用与否,但不受复位影响。

3b AUXR1:辅助寄存器1

AUXR1 地址:A2H 复位值:XXXXXXX0B

不可位寻址








DPS

7

6

5

4

3

2

1

0

预留扩展用

DPS 数据指针选择位

DPS

0 选择DPTR寄存器DP0LDP0H

1 选择DPTR寄存器DP1LDP1H

AT89S52存储器

 

MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。

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

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

数据存储器:AT89S52 256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

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

例如,下面的直接寻址指令访问0A0H(P2)存储单元MOV 0A0H , #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寄存器(地址为0A6HSFR)依次写入01EH0E1H。当WDT激活后,用户必须向WDTRST写入01EH0E1H喂狗来避免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

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

默认状态下,在待机模式下,WDIDLE=0WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。

UART

AT89S52 中,UART 的操作与AT89C51AT89C52一样。为了获得更深入的关于UART 的信息,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择“ProductOverview”即可。

定时器 0 和定时器1

AT89S52 中,定时器0 和定时器1 的操作与AT89C51 AT89C52 一样。为了获得更深入的关于UART 的信息,选择“Products”,然后选择“8051-Architech Flash Microcontroller”,再选择“ProductOverview”即可。

定时器 2

定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。定时器2有三种工作模式:

捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表3 所示,工作模式由T2CON中的相关位选择。定时器2 2 8位寄存器:TH2TL2。在定时工作方式中,每个机器周期,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)10的下跳变也会使得TH2TL2中的值分别捕捉到RCAP2HRCAP2L中。除此之外,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 位值。定时器工作于捕捉模式,RCAP2HRCAP2L的值可以由软件预设。如果EXEN2=1,计数溢出或在外部T2EX(P1.1)引脚上的10的下跳变都会触发16位重载。这个跳变也置位EXF2中断标志位。T2EX 上的一个逻辑0 使得定时器2 向下计数。当TH2 TL2 分别等于RCAP2H RCAP2L中的值的时候,计数器下溢。计数器下溢,置位TF2,并将0FFFFH加载到定时器存储器中。如图6所示,置位DCEN,允许定时器2向上或向下计数。在这种模式下,T2EX引脚控制着计数的方向。T2EX上的一个逻辑1使得定时器2向上计数。定时器计到0FFFFH溢出,并置位TF2。定时器的溢出也使得RCAP2HRCAP2L中的16位值分别加载到定时器存储器TH2TL2中。

定时器2上溢或下溢,外部中断标志位EXF2 被锁死。在这种工作模式下,EXF2不能触发中断。

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

T2MOD 地址:0C9H 复位值:XXXXXX00B

不可位寻址







T2OE

DCEN

7

6

5

4

3

2

1

0

 

符号

功能


无定义,预留扩展


定时器2输出允许位


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

AT89S52中断源

 

AT89S52 6个中断源:两个外部中断(INT0 INT1),三个定时中断(定时器012)和一个串行中断。这些中断如图10所示每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。

如表5所示,IE.6位是不可用的。对于AT89S52IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。

定时器2可以被寄存器T2CON中的TF2EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清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允许控制位

 


相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号