| AT89C52是美国ATMEL公司生产的低电压,高性能CMOS
8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。 |
| 主要性能参数:
|
|
| ·与MCS-51产品指令和引脚完全兼容
|
| ·8k字节可重擦写Flash闪速存储器
|
| ·1000次擦写周期
|
| ·全静态操作:0Hz—24MHz
|
| ·三级加密程序存储器
|
| ·256×8字节内部RAM
|
| ·32个可编程I/O口线
|
| ·3个16位定时/计数器
|
| ·8个中断源
|
| ·可编程串行UART通道
|
| ·低功耗空闲和掉电模式
|
|
| 功能特性概述: |
| AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 |
|

|
|

|
| 引脚功能说明 |
| ·Vcc:电源电压 |
|
·GND:地 |
| ·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。 |
| 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。 |
| 在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 |
| ·P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 |
| 与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表1。 |
| Flash编程和程序校验期间,P1接收低8位地址。 |
| 表1 P1.0和P1.1的第二功能 |
| 引脚号 |
功能特性 |
| P1.0 |
T2(定时/计数器2外部计数脉冲输入),时钟输出
|
| P1.1 |
T2EX(定时/计数2捕获/重装载触发和方向控制)
|
|
| ·P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 |
| 在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。 |
| Flash编程或校验时,P2亦接收高位地址和一些控制信号。 |
| ·P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上位电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。 |
| P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示: |
|
|
| 端口引脚 |
第二功能 |
| P3.0 |
RXD(串行输入口) |
| P3.1 |
TXD(串行输出口) |
| P3.2 |
INT0(外中断0) |
| P3.3 |
INT1(外中断1) |
| P3.4 |
T0(定时/计数器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操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 |
| ·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次RSEN信号。 |
| ·EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 |
| 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。 |
| Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。 |
| ·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 |
| ·XTAL2:振荡器反相放大器的输出端。 |
| ·特殊功能寄存器: |
| AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE),SFR的地址窨映象如表2所示。 |
| 并非所有的地址都被定义,从80H-FFH共128个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是元效的,读出的数值将不确定,而写入的数据也将丢失。 |
| 不应将数据“1”写入未定义的单元,则于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。 |
|

|
| AT89C52除了与AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。定时/计数器2的控制状态位位于T2CON(见表3)T2MOD(见表4),寄存器对(RCA02H、RCAP2L)是定时器2在16位捕获方式或16位自动重装载方式下的捕获/自动重装载寄存器。 |
|

|
| ·中断寄存器: |
| AT89C52有6个中断源,2个中断优先级,IE寄存器控制各中断位,IP寄存器中6个中断源的每一个可定为2个优先级。 |
| ·数据存储器: |
| AT89C52有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。 |
| 当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节RAM还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。 |
| 例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2口)地址单元。 |
| MOV 0A0H,#data |
|
间接寻址指令访问高128字节RAM,例如,下面的间接寻址指令中,R0的内容为0A0H,则访问数据字节地址为0A0H,而不是P2口(0A0H)。 |
| MOV @R0,#data |
|
堆栈操作也是间接寻址方式,所以,高128位数据RAM亦可作为堆栈区使用。 |
|
下一页 |