AT89C52单片机简介_第1页
AT89C52单片机简介_第2页
AT89C52单片机简介_第3页
AT89C52单片机简介_第4页
AT89C52单片机简介_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 T2/P1. 0 C 1 40 3 Vcc T2EX/P1. 1 (: 2 39 3 F0. 0 /ADO P1. 2 匚 3 38 3 FO. 1ZAD1 P1. 3 匚 4 37 p FO. 2/AD2 P1. 4 C 5 36 j FQ 3/ADS KOSI/P1. 5 匚 6 35 P0. 4/AD4 KIS0/P1.6 匚 7 34 3 P0. 5/AD5 SCK/P1. 7 匚 8 33 3 F0. 6/ADfe RST 匚 9 32 3 PO. 7/ADT RXD/P3. 0 C 10 31 3 EA/VPP TXD/F3. 1 (: 11 30 3 ALE? PROC- IN

2、T0/F3. 2 : 12 29 3 FESK INT1/F3. 3 (: 13 28 3 F2. 7ZA15 T0/F3. 4 匚 14 27 3 F2. 6ZA14 T1/F3. 5 15 26 P2. 5/A13 TJR/P3. 6 E 16 25 3 P2. 4/1112 RD/F3. 1 匚 17 24 3 F2. 3/A11 :KTAL2 匚 1S 23 Ll P2. 2/A10 XTAL1 C 19 22 3 P2. 1?A9 PHIP CWD (: 20 21 3 F2. 0?AS AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。 AT89C52是一个低电压

3、,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的 Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATHE L公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8 位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂 系统控制应用场合。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时內含2个外中 断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52 可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用

4、 的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地 降低开发成本。 兼容MCS51指令系统 8k可反复擦写(1000次)Flash ROM -32个双向I/O 口256x8bit内部RAM -3个16位可编程定时/计数器中断时钟频率0-24MHz 2个串行中断可编程UART串行通道 -2个外部中断源-共6个中断源 2个读写中断口线3级加密位 低功耗空闲和掉电模式软件设置睡眠和唤醒功能 AT89C52P为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核, 在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。 功能包括对会聚

5、主IC內部寄存器、数据RAM及外部接口等功能部件的初始化,会聚 调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主 要管脚有:XTAL1 (19脚)和XTAL2 (18脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd (9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC (40 脚)和VSS (20脚)为供电端口,分别接+5V电源的正负端。P0、P3为可编程通用I /0脚,其功能用途由软件定义,在本设计中,P0端口(3239脚)被定义为N1功 能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和1 1脚定义为I2C总线控制端

6、口,分别连接N1的SDAS ( 18脚)和SCLS ( 19脚)端口, 12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于 当前制式的检测及会聚调整状态进入的控制功能。 P0 口 P0 口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复用口。作为输出口 用时,每位能吸收电流的 方式驱动8个TTL逻辑门电路,对端口 P0写“1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据 总线复用,在访问期间激活内部上拉电阻。 在Flash编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时, 要求外接上拉

7、电阻。 P1 口 P1是一个带内部上拉电阻的8位双向I/O 口,P1的输出缓冲级可驱动(吸收或输 出电流)4个TTL逻辑 门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输 入口。作输入口使用时,因为内部存在上拉 电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 与AT89C51不同之处是,和还可分别作为定时/计数器2的外部计数输入(T 2)和输入(T2EX), 参见表1。 Flash编程和程序校验期间,P1接收低8位地址。 表和的第二功能 引脚号 功能特 性 T2,时 钟输出 T2EX (定时 /计数 器2) P2 口 P2是一个带有内部上拉电阻的8位双向I/O

8、口,P2的输出缓冲级可驱动(吸收或 输出电流)4个TTL逻辑 门电路。对端口 P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作 输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输 出一个电流(IIL)。 在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令) 时,P2 口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2 口输出P2锁存器的内容。 Flash编程或校验时,P2亦接收高位地址和一些控制信号。 P3 口 P3 口是一组带有内部上拉电阻的8位双向I/O 口。P3 口输出缓冲级可驱动(吸收

9、 或输岀电流)4个TTL逻 辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。 此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。 P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能 P3 口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。 RST 复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG 当访问外部程序存储器或数据存储器时,ALE (地址锁存允许)输出脉冲用于锁存地 址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号, 因此它可对外输出时钟或用于定时目的

10、。要注意的是:每当访问外部数据存储器时将 跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的DO位置位,可禁止 ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引 脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN 程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程 序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在 此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP

11、外部访问允许。欲使CPU仅访问外部程序存储器(地址为OOOOH-FFFFH) , EA端必 须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存E A端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。F lash存储器编程时,该引脚加上+ 12V的编程允许电源Vpp,当然这必须是该器件是 使用12V编程电压Vppo XTAL1 振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2 振荡器反相放大器的输出端。 特殊功能寄存器 在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE) , SFR 的地址空间映象如表2所

12、示。并非所有的地址都被定义,从80HFFH共128个字 节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的, 读出的数值将不确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元, 由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数 值总是“0”。AT89C52除了与AT89C51所有的定时/计数器0和定时/计数器1外, 还增加了一个定时/计数器2。定时/计数器2的控制和状态位位于T2C0N (参见表3) T2M0D (参见表4),寄存器对(RCA02H. RCAP2L)是定时器2在16位捕获方式或1 6位自动重装载方式下的捕获/自动重装载

13、寄存器。 数据存储器 AT89C52有256个字节的內部RAM, 80H-FFH高128个字节与特殊功能寄存器 (SFR)地址是重叠的,也就是高128 字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。 当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的, 也即寻址方式决定是访问高128字节RAM还是访问特殊功能寄存器。如果指令是直 接寻址方式则为访问特殊功能寄存器。 例如,下面的直接寻址指令访问特殊功能寄存器0A0H (即P2 口)地址单元。 MOV OAOH, #data 间接寻址指令访问高128字节RAM,例如,下面的间接寻址指令中,R0的内容 为OA

14、OH,则访问数据字节地址为OAOH, 而不是 P2 口 (OAOH)。 MOV R0,壮ata 堆栈操作也是间接寻址方式,所以,高128位数据RAM亦可作为堆栈区使用。 定时器0和定时器1: AT89C52的定时器0和定时器1的工作方式与AT89C51相同。 定时器2 定时器2是一个16位定时/计数器。它既可当定时器使用,也可作为外部事件 计数器使用,其工作方式由特殊功能寄 存器T2C0N (如表3)的C/T2位选择。定时器2有三种工作方式:捕获方式, 自动重装载(向上或向下计数)方式和波 特率发生器方式,工作方式由T2C0N的控制位来选择。 定时器2由两个8位寄存器TH2和TL2组成,在定时

15、器工作方式中,每个机器 周期TL2寄存黠的值加1,由于一个机 器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。 在计数工作方式时,当T2引脚上外部输入信号产生由1至0的下降沿时,寄 存器的值加1,在这种工作方式下,每个 机器周期的5SP2期间,对外部输入进行采样。若在第一个机器周期中采到的值 为1,而在下一个机器周期中采到的值为0, 则在紧跟着的下一个周期的S3P1期间寄存器加1。由于识别1至0的匙变需要 2个机器周期(24个振荡周期),因此,最 高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前 至少保持一个完整周期的时间,以保证输 入信号至少被采样一

16、次。 捕获方式 在捕获方式下,通过T2C0N控制位EXEN2来选择两种方式。如果EXEN2=0,定 时器2是一个16位定时器或计数器, 计数溢出时,对T2C0N的溢出标志TF2置位,同时激活中断。如果EXEN2=1, 定时器2完成相同的操作,而当T2EX引 脚外部输入信号发生1至0负跳变时,也出现TH2和TL2中的值分别被捕获到 RCAP2H 和 RCAP2L 中。另外,T2EX 引 脚信号的班变使得T2C0N中的EXF2置位,与TF2相仿,EXF2也会激活中断。 捕获方式如图4所示。 自动重装载(向上或向下计数器)方式 当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,

17、 这个功能可通过特殊功能寄存器T2C0N (见表5)的DCEN位(允许向下计数)来选择的。复位时,DCEN位置0”, 定时器2默认设置为向上计数。当DCEN 置位时,定时器2既可向上计数也可向下计数,这取决于T2EX引脚的值,参见 图5,当DCEN=0时,定时器2自动设置 为向上计数,在这种方式下,T2C0N中的EXEN2控制位有两种选择,若EXEN2= 0,定时器2为向上计数至0FFFFH溢 出,置位TF2激活中断,同时把16位计数寄存器RCAP2H和RCAP2L重装载,R CAP2H和RCAP2L的值可由软件预置。 若EXEN2=1,定时器2的16位重装载由溢出或外部输入端T2EX从1至0

18、的下 降沿触发。这个脉冲使EXF2置位,如果 中断允许,同样产生中断。 定时器2的中断入口地址是:002BH 0032H。 当DCEN=1时,允许定时器2向上或向下计数,如图6所示。这种方式下,T2E X引脚控制计数器方向。T2EX引脚为逻 辑“1”时,定时器向上计数,当计数0FFFFH向上溢出时,置位TF2,同时把1 6位计数寄存器RCAP2H和RCAP2L重装 载到TH2和TL2中。T2EX引脚为逻辑0”时,定时器2向下计数,当TH2 和TL2中的数值等于RCAP2H和RCAP2L 中的值时,计数溢出,置位TF2,同时将0 FFFFH数值重新装入定时寄存器中。 当定时/计数器2向上溢出或向

19、下溢出时,置位EXF2位。 波特率发生器 当T2C0N (表3)中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器 使用。如果定时/计数器2作为发送器或 接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7 所示。若RCLK和TCLK置位,则定时器2 工作于波特率发生器方式。 波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2 的寄存器用RCAP2H和RCAP2L中的16 位数值重新装载,该数值由软件设置。 在方式1和方式3中,波特率由定时器2的溢出速率根据下式确定: 方式1和3的波特率二定时器的溢出率/16 定时器既能工作于定时方式也能工作于

20、计数方式,在大多数的应用中,是工作在 定时方式(C/T2=0)。定时器2作为波 特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器 周期(1/12振荡频率)寄存器的值加1, 而作为波特率发生器便用时,在每个状态时间(1/2振荡频率)寄存器的值加1。 波特率的计算公式如下: 方式1和3的波特率=振荡频率/32*65536-(RCP2H,RCP2L) 1 式中(RCAP2H, RCAP2L)是RCAP2H和RCAP2L中的16位无符号数。 定时器2作为波特率发生器使用的电路如图7所示。T2C0N中的RCLK或TCLK =1时,波特率工作方式才有效。在 波特率发生器工作方式中,T

21、H2翻转不能使TF2置位,故而不产生中断。但若E XEN2置位,且T2EX端产生由1至0的 负跳变,则会使EXF2置位,此时并不能将(RCAP2H, RCAP2L)的内容重新装入 TH2和TL2中。所以,当定时器2作 为波特率发生器使用时,T2EX可作为附加的外部中断源来使用。需要注意的是, 当定时器2工作于波特率黠时,作为定 时器运行(TR2=1)时,并不能访问TH2和TL2o因为此时每个状态时间定时器 都会加1,对其读写将得到一个不确定的数值。 然而,对RCAP2则可读而不可写,因为写入操作将是重新装载,写入操作可能 令写和/或重装载出错。在访问定时器2或RCAP2寄存器之前,应将定时署关

22、闭(清 除 TR2) o 可编程时钟输出 定时器2可通过编程从输出一个占空比为50%的时钟信号,如图8所示。引 脚除了是一个标准的I/O 口外,还可以通过编程使其作为定时/计数器2的外部时钟 输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz时,输出时钟频率范围 为61Hz4Mllzo当设置定时/计数器2为时钟发生器时,C/T2 (T2C0N . 1) =0, T20 E ( )=1,必须由TR2 ()启动或停止定时器。时钟输出频率取决于振荡频率和定 时器2捕获寄存器(RCAP2H, RCAP2L)的重新装载值,公式如下:输出时钟频率二振 荡器频率 / 4* 65536-(RCP2H

23、, RCP2L) 在时钟输出方式下,定时器2的翻转不会产生中断,这个特性与作为波特率发 生器使用时相仿。定时器2作为波特率发生器使用时,还可作为时钟发生器使用, 但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用 RCAP2L 和 RCAP2L。 UART AT89C52的UART工作方式与AT89C51工作方式相同。 中断 AT89C52共有6个中断向量:两个外中断(INTO和INT1) , 3个定时器中断(定 时器0、1、2)和串行口中断。所有这些中断源如图9所示。 这些中断源可通过分别设置专用寄存器IE的置位或清0来控制每一个中断的 允许或禁止。IE也有一个总禁止位EA,

24、它能控制所有中断的允许或禁止。 注意表5中的 为保留位,在AT89C51中 也是保留位。程序员不应将“1”写入 这些位,它们是将来AT89系列产品作为扩展用的。 定时器2的中断是由T2C0N中的TF2和EXF2逻辑或产生的,当转向中断服务 程序时,这些标志位不能被硬件清除, 事实上,服务程序需确定是TF2或EXF2产生中断,而由软件清除中断标志位。 定时器0和定时器1的标志位TFO和TF1在定时器溢出那个机器周期的S5P2 状态置位,而会在下一个机器周期才查 询到该中断标志。然而,定时器2的标志位TF2在定时器溢出的那个机器周期 的S2P2状态置位,并在同一个机器周期内查询到该标志。 时钟振荡

25、器 AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XT AL2分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器, 振荡电路参见图10。外接石英晶体(或陶瓷谐振器)及电容Cl、C2接在放大器的反 馈回路中构成并联振荡电路。对外接电容Cl、C2虽然没有十分严格的要求,但电容 容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温 度稳定性,如果使用石英晶体,我们推荐电容使用30pF10pF,而如使用陶瓷谐振器 建议选择40pF10F。用户也可以采用外部时钟。采用外部时钟的电路如图10右图 所示。

26、这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTA L2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所 以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持 续时间应符合产品技术条件的要求。 空闲节电模式 在空闲工作模式状态,CPU自身处于睡眠状态而所有片内的外设仍保持激活状态, 这种方式由软件产生。此时,同时将片内RAM和所有特殊功能寄存器的内容冻结。 空闲模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两 个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端 口引脚,当用复位终

27、止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式 的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。 掉电模式 在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令, 片內RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一 方法是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变RAM中的内容, 在Ycc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动 并稳定工作。 程序存储器的加密 AT89C52有3个程序加密位,可对芯片上的3个加密位LB1、LB2、LB3进行编 程(P)或不编程(U)来得到。当加密位LB1被编

28、程时,在复位期间,EA端的逻辑 电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机 数,且这个随机数会一直保存到真正复位为止。为使单片机能正常工作,被锁存的E A电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法 清除。 Flash存储器的编程 AT89C52单片机内部有8k字节的Flash PER0M,这个Flash存储阵列岀厂时已 处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程 接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合 于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。 AT89C52单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用 户可从芯片上的型号和读取芯片内的签名字节获得该信息。 AT89C52的程序存储器阵列是釆用字节写入方式编程的,每次写入一个字节,要 对整个芯片内的PEROM程序存储器写入一个非空字节,必须使用片擦除的方式将整

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论