1、本文译自: 英文翻译原文译文AT89C52芯片说明主要性能参数:l 与MCS-51产品指令和引脚完全兼容l 8k字节可重擦写Flash闪速存储器l 1000次擦写周期l 全静态操作:0Hz24MHzl 三级加密程序存储器l 256*8字节内部RAMl 32个可编程I/O口线l 3个16位定时/计数器l 8个中断源l 可编程串行UART通道l 低功耗空闲和掉电模式功能特性概述:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,内含8k bytes的可反复擦写的只读程序存储器和256 bytes 的随机存储数据存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,与
2、标准MCS-51指令系统及8052产品兼容,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0HZ的静态逻辑操作,并支持良种软件可选的节电工作模式。空闲方式停止CPU的工作,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。引脚功能说明:Vcc:电源电压GND:地P0口:P0口是一组8位8位漏极开路型双向I/O口
3、,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写1时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在校验时,输出指令字节,接收时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双相I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。与AT89C
4、51不同之处是,P1.0和P1.1还可以分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。Flash编程和程序校验期间,P1接收低8位地址。引脚号功能特性P1.0T2(定时计数嚣 2 外部计数脉冲输入),时钟输出P1.1T2EX(定时计数 2 捕获重装裁触发和方向控制)P2口:P2是一个带内部上拉电阻的8位双相I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外
5、部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(例如执行MOVX RI指令)时,P2输出P2口锁存的内容。Flash编程和程序校验期间,P2接收高位地址和一些控制信号。P3口:P3是一个带内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3端口写1,通过内部的上拉电阻把端口拉到高电平并可作输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。此外, P3口还接收一些用于Flash编程和程序校验的控制信号。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2I
6、NT0(外中断 0)P3.3INT1(外中断 1)P3.4T0(定时计数器 0 外部输入)P3.5T1(定时计数器 1 外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将单片机复位。:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲。如有必要,可通
7、过对特殊功能寄存器去中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。:程序存储允许输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据时),每个机器周期两次有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次信号。:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如果EA端为高电平(接VCC端),CPU则执行
8、内部程序存储器中的指令。XTAL1:振荡器反相放大器的内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。特殊功能寄存器:在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器。并非所有的地址都被定义,从80H-FFH共128个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据1写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是0。AT89C52除了与AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。定时/
9、计数器2的控制和状态位位于T2CON、T2MOD,寄存器对(RCA02H、RCAP2L)是定时器2在16位捕获方式或16位自动重装载方式下的捕获/自动重装载寄存器。T2CQN地址=QC8H 复位值=0000 0000B可寻址位BITTF2EXF2RCLKTCLKEXEN2TR2CT2CPRL276543210符号功能TF2定时器2溢出时,又由硬件置位,必须由软件清0.当RCLK=1JF EXF2定时器2外部标志,当EXEN2=1时,且当T2EX引脚上出南负跳变而出现捕获或重装载时,EXF2置位,申请中断,此时如果允许定时器2中断,CPU将响应中断,执行定时器2中断服务程序,EXF2必须由软件清
10、除,当定时器2工作在向上或向下计数工作方式时(DCEN=1),EXF2不能激活中断。RCLK接收时钟允许,RCLK=1时,用定时器2 溢出脉冲作为串行口(工作于工作方式1或3时)的接收时钟,RCLK=0,用定时器1的溢出脉冲作为接收时钟。TCLK发送时钟允许,TCLK=1时,用定时器2 溢出脉冲作为串行口(工作于工作方式1或3时)的发送时钟,RCLK=0,用定时器1的溢出脉冲作为发送时钟。EXEN2定时器2外部允许标志。当EXEN2=1JF ,如果定时器2没有用于作串行口的波特率发生器,在T2EX端出现负跳变脉冲时,激活定时器2捕获或重装载。EXEN2=0时,T2EN端的外部信号无效。TR2定
11、时器2启动、停止控制位。TR2=1,启动定时器2CT2定时器2定时方式或计数方式控制位。C/T2=0,选择定时方式。C/T2=0时,选择对外部事件计数方式 (下降沿触发)CPRL2捕获重装选择,CPRL2=1时,如EXEN2=1时,且T2EX端出现负跳变脉冲时发生捕获操作。CPRL2=0时,若定时器2溢出或EXEN2=1条件下,T2EN端出现负跳变脉冲,都会出现自动重装载操作。 当RCLK=1时,该位无效,在定时器2溢出时,强制其自动重装载。中断寄存器:AT89C52有6个中断源,2个中断优先级,IE寄存器控制各中断位,IP寄存器中6个中断源的每一个可定为2个优先级。数据存储器:AT89C52
12、有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式是决定访问高128字节RAM还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2口)地址单元。MOV 0A0H,#data间接寻址访问指令访问高128字节RAM,例如,下面的间接寻址指令中,R0的内容为0A0H,则访问数据字节地址为0A0H,而不是P2口(0A0H
13、)。MOVR0,#data堆栈操作也是间接寻址方式,所以,高128位数据RAM亦可以作为堆栈区使用。定时器0和定时器1:AT89C52的定时器0和定时器1的工作方式与 AT89C52相同。定时器2:定时器2是一个16位定时/计数器。它既可以当定时器使用,也可以作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON的C/T2位选择。定时器2有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON的控制位来选择。定时器2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期TL2寄存器的值加1,由于一个机器周期由12个振荡时钟构成,因此
14、,计数速率为振荡频率的1/12。在计数工作方式时,当T2引脚上外部输入信号产生由1至0的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的中采到的值为1,而在下一个机器周期中采到的值为0,则紧跟着的下一个周期的S3P1期间寄存器加1。由于识别1至0的跳变需要两个机器周期,因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整的周期,以保证输入信号至少被采样一次。捕获方式:在捕获方式下,通过T2CON控制位EXEN2来选择两种方式。如果EXEN2=0,定时器2是一个16位定时器或计数器,计数溢出时,对T2CON的溢出标志TF2置位,同时激活中断
15、。如果EXEN2=1,定时器完成相同的操作,而当T2EX引脚外部输入信号发生1至0的跳变时,也出现TH2和TL2中的值分别被捕获到RCAP2H和RCAP2L中。另外,T2EX引脚信号的跳变使得T2CON中的EXF2置位,与TF2相仿,EXF2也会激活中断。自动重装载(向上或向下计数器)方式:当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON的DCEN位(允许向下计数)来选择的。复位时,DCEN位置0,定时器2默认设置为向上计数。当DCEN置位时,定时器既可以向上计数也可以向下计数,这取决于T2EX引脚的值。当DCEN=0时,定时器2自动设置为向上计数,在这种方式下,T2CON中的EXEN2有两种选择,若EXEN2=0,定时器2为向上计数至0FFFFH溢出,置位TF2激活中断,同时把16位计数寄存器RCAP1H和RCAP2L重装载,RCAP1H和RCAP2L的值可由软件预置。若EXEN2=1,定时器2的16位重装载由溢出或外部输入端T2EX从1至0的下降沿触发。这个脉冲使EXF2置位,如果允许中断,同样产生中断。