急需1份关于单片机概述的中英文资料
急需1份关于单片机概述的中英文资料,毕业设计需要。要求中文3000字以上。小弟在此先谢过了。好人一生平安!!关于单片机总体介绍的也行,最好是52单片机有智能温度控制系统研...
急需1份关于单片机概述的中英文资料,毕业设计需要。要求中文3000字以上。小弟在此先谢过了。好人一生平安!!
关于单片机总体介绍的也行,最好是52单片机 有智能温度控制系统研究目的和意义及发展800字以上,52单片机和DS18B20传感器 展开
关于单片机总体介绍的也行,最好是52单片机 有智能温度控制系统研究目的和意义及发展800字以上,52单片机和DS18B20传感器 展开
2个回答
展开全部
AT89C52 DATASHEET
Features
• Compatible with MCS-51™ Products
• 8K Bytes of In-System Reprogrammable Flash Memory
– Endurance: 1,000 Write/Erase Cycles
• Fully Static Operation: 0 Hz to 24 MHz
• Three-Level Program Memory Lock
• 256 x 8-Bit Internal RAM
• 32 Programmable I/O Lines
• Three 16-Bit Timer/Counters
• Eight Interrupt Sources
• Programmable Serial Channel
• Low Power Idle and Power Down Modes
Description
The AT89C52 is a low-power, high-performance CMOS 8-bit microcomputer with 8Kbytes of Flash programmable and erasable read only memory (PEROM). The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standard 80C51 and 80C52 instruction set and pin out. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C52 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.
Timer 2 consists of two 8-bit registers, TH2 and TL2. In the Timer function, the TL2 register is incremented every machine cycle. Since a machine cycle consists of 12 oscillator periods, the count rate is 1/12 of the oscillator frequency. In the Counter function, the register is incremented in response to a 1-to-0 transition at its corresponding external input pin, T2. In this function, the external input is sampled during S5P2 of every machine cycle. When the samples
Figure 1.
Timer in Capture Mode show a high in one cycle and a low in the next cycle, the count is incremented. The new count value appears in the register during S3P1 of the cycle following the one in which the transition was detected. Since two machine cycles (24 oscillator periods) are required to recognize a 1-to-0 transition, the maximum count rate is 1/24 of the oscillator frequency. To ensure that a given level is sampled at least once before it changes, the level should be held for at least one full machine cycle.
Capture Mode
In the capture mode, two options are selected by bit EXEN2 in T2CON. If EXEN2 = 0, Timer 2 is a 16-bit timer or counter which upon overflow sets bit TF2 in T2CON.This bit can then be used to generate an interrupt. If EXEN2 = 1, Timer 2 performs the same operation, but a 1-to-0 transition at external input T2EX also causes the current value in TH2 and TL2 to be captured into RCAP2H and RCAP2L, respectively. In addition, the transition at T2EX causes bit EXF2 in T2CON to be set. The EXF2 bit, like TF2, can generate an interrupt. The capture mode is illustrated in Figure 1.
Auto-Reload (Up or Down Counter)
Timer 2 can be programmed to count up or down when configured in its 16-bit auto-reload mode. This feature is invoked by the DCEN (Down Counter Enable) bit located in the SFR T2MOD (see Table 4). Upon reset, the DCEN bit is set to 0 so that timer 2 will default to count up. When DCEN is set, Timer 2 can count up or down, depending on the value of the T2EX pin. Figure 2 shows Timer 2 automatically counting up when DCEN = 0. In this mode, two options are selected by bit EXEN2 in T2CON. If EXEN2 = 0, Timer 2 counts up to 0FFFFH and then sets the TF2 bit upon overflow. The overflow also causes the timer registers to be reloaded with the 16-bit value in RCAP2H and RCAP2L. The values in Timer in Capture ModeRCAP2H and RCAP2L are preset by software. If EXEN2 = 1, a 16-bit reload can be triggered either by an overflow or by a 1-to-0 transition at external input T2EX. This transition also sets the EXF2 bit. Both the TF2 and EXF2 bits can generate an interrupt if enabled. Setting the DCEN bit enables Timer 2 to count up or down, as shown in Figure 3. In this mode, the T2EX pin controls
AT89C52数据手册
主要性能参数:
•u19982X MCS—51产品指令和引脚完全兼容
•8k 字节可重擦写Flash闪速存储器
•1000次擦写周期
•u20840X静态操作:0Hz—24MHz
•u19977X级加密程序存储器
•256×8 字节内部RAM
•32个可编程I/O口线
•3个16 位定时/计数器
•8个中断源
•u21487X编程串行UART通道
•u20302X功耗空闲和掉电模式
AT89C52 是美国 ATMEL 公司生产的低电压,高性能CMOS8位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理(CPU)和 Flash 存储单元,功能强大 AT89C52 单片机适合于许多较为复杂控制应用场合。
功能特性概述:
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口的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对端口写“1”通过上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与 AT89C51 不同之处是,P1.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表 1。Flash 编程和程序校验期间,P1 接收低 8 位地址。
•P2 :P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX @DPTR 指令)时,P2 口送出高 8 位地址数据。在访问8位地址的外部数据存储器(如执行 MOVX @RI 指令)时,2 口输出P2锁存器的内容。Flash 编程或校验时,P2 亦接收高位地址和一些控制信号。
•P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:
•RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。
•ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。
•PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。
•EA/VPP:外部访问允许。欲使 CPU仅访问外部程序存储器(地址为 0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。如 EA 端为高电平(接Vcc 端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。
•XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
•XTAL2:振荡器反相放大器的输出端。
•\u29305X殊功能寄存器:在 AT89C52 片内存储器中,80H-FFH 共128个单元为特殊功能寄存器(SFE),SFR的地址空间映象如表2所示。并非所有的地址都被定义,从 80H—FFH 共 128个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。
AT89C52 除了与AT89C51所有的定时/计数器 0 和定时/计数器 1 外,还增加了一个定时/计数器 2。定时/计数器 2 的控制和状态位位于T2CON(参见表 3)T2MOD(参见表 4),寄存器对(RCAO2H、RCAP2L)是定时器2在16位捕获方式或16位自动重装载方式下的捕获/自动重装载寄存器。
•\u20013X断寄存器:AT89C52 有6个中断源,2个中断优先级,IE寄存器控制各中断位,IP寄存器中6个中断源的每一个可定为2个优先级。
•\u25968X据存储器: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 亦可作为堆栈区使用。
•\u23450X时器 0 和定时器 1:AT89C52 的定时器0和定时器1的工作方式与 AT89C51 相同。
•\u23450X时器 2:定时器 2是一个16位定时/计数器。它既可当时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器 T2CON(如表 3)的C/T2位选择。定时器2有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON的控制位来选择,参见表 4。
定时器 2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期 TL2 寄存器的值加 1,由于一个机器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。在计数工作方式时,当T2引脚上外部输入信号产生由1至0的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1期间寄存器加1。由于识别1至0的跳变需要2个机器周期(24个振荡周期),因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。
•捕获方式:在捕获方式下,通过T2CON 控制位EXEN2来选择两种方式。如果EXEN2=0,定时器2是一个16位定时器或计数器,计数溢出时,对 T2CON的溢出标志TF2置位,同时激活中断。如果EXEN2=1,定时器2完成相同的操作,而当T2EX引脚外部输入信号发生1至0负跳变时,也出现TH2和TL2中的值分别被捕获到RCAP2H和RCAP2L中。另外,T2EX引脚信号的跳变使得T2CON中的EXF2置位,与TF2相仿,EXF2 也会激活中断。
•自动重装载(向上或向下计数器)方式当定时器2 工作于16 位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器 T2CON(见表5)的DCEN位(允许向下计数)来选择的。复位时,DCEN 位置“0”,定时器2默认设置为向上计数。当DCEN置位时,定时器2既可向上计数也可向下计数,这取决于T2EX引脚的值,参见图5,当 DCEN=0 时,定时器2自动设置为向上计数,在这种方式下,T2CON中的 EXEN2 控制位有两种选择,若 EXEN2=0,定时器2为向上计数至 0FFFFH 溢出,置位TF2激活中断,同时把16位计数寄存器 RCAP2H 和 RCAP2L重装载,RCAP2H和RCAP2L的值可由软件预置。若EXEN2=1,定时器 2的16位重装载由溢出或外部输入端T2EX从1至0的下降沿触发。这个脉冲使EXF2置位,如果中断允许,同样产生中断。
当 DCEN=0时,允许定时器 2 向上或向下计数,如图 6 所示。这种方式下,T2EX 引脚控制计数器方向。T2EX 引脚为逻辑“1”时,定时器向上计数,当计数 0FFFFH 向上溢出时,置位TF2,同时把16位计数寄存器 RCAP2H 和 RCAP2L重装载到TH2和TL2中。 T2EX 引脚为逻辑“0”时,定时器 2 向下计数,当TH2和TL2中的数值等于 RCAP2H 和 RCAP2L中的值时,计数溢出,置位 TF2,同时将 0FFFFH 数值重新装入定时寄存器中。当定时/计数器 2向上溢出或向下溢出时,置位EXF2 位。
•波特率发生器
当T2CON中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。如果定时/计数器2作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7所示。若 RCLK和TCLK 置位,则定时器2工作于波特率发生器方式。
波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2的寄存器用 RCAP2H和RCAP2L中的16位数值重新装载,该数值由软件设置。在方式1和方式3中,定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。定时器 2 作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12 振荡频率)寄存器的值加 1,而作为波特率发生器使用时,在每个状态时间(1/2 振荡频率)寄存器的值加 1。定时器 2 作为波特率发生器使用的电路如图 7 所示。T2CON 中的 RCLKTCLK=1 时,波特率工作方式才有效。在波特率发生器工作方式中,TH2 翻转不能使 TF2 置位,故而不产生中断。但若 EXEN2 置位,且 T2EX 端产生由1至0的负跳变,则会使 EXF2 置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入 TH2 和 TL2 中。所以,当定时器 2 作为波特率发生器使用时,T2EX可作为附加的外部中断源来使用。需要注意的是,当定时器2工作于波特率器时,作为定时器运行(TR2=1)时,并不能访问 TH2和 TL2。因为此时每个状态时间定时器都会加 1,对其读写将得到一个不确定的数值。然而,对 RCAP2 则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。在访问定时器 2或 RCAP2 寄存器之前,应将定时器关闭(清除 TR2)。
定时器 2 可通过编程从 P1.0 输出一个占空比为 50%的时钟信号,如图 8 所示。P1.0 引脚除了是一个标准的 I/O 口外,还可以通过编程使其作为定时/计数器 2 的外部时钟输入和输出占空比 50%的时钟脉冲。当时钟振荡频率为 16MHz时,输出时钟频率范围为61Hz—4MHz。当设置定时/计数器 2 为时钟发生器时,C/T2(T2CON .1)=0,T2OE(T2MOD.1) =1,必须由 TR2(T2CON.2)启动或停止定时器。时钟输出频率取决于振荡频率和定时器 2 捕获寄存器(RCAP2H,RCAP2L)的重新装载值. 在时钟输出方式下,定时器2的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。定时器2作为波特率发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用RCAP2L 和 RCAP2L。
•UART:
AT89C52 的 UART 工作方式与 AT89C51 工作方式相同。
•\u20013X断AT89C52 共有6个中断向量:两个外中断(INT0 和 INT1),3个定时器中断(定时器 0、1、2)和串行口中断。所有这些中断源如图 9 所示。这些中断源可通过分别设置专用寄存器 IE 的置位或清0来控制每一个中断的允许或禁止。IE也有一个总禁止位EA,它能控制所有中断的允许或禁止。注意表 5 中的 IE.6 为保留位,在 AT89C51 中 IE.5 也是保留位。程序员不应将“1”写入这些位,它们是将来 AT89 系列产品作为扩展用的。定时器 2 的中断是由 T2CON 中的 TF2 和 EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是 TF2 或 EXF2 产生中断,而由软件清除中断标志位。定时器 0 和定时器 1 的标志位 TF0 和 TF1 在定时器溢出那个机器周期的 S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器 2的标志位TF2在定时器溢出的那个机器周期的S2P2状态置位,并在同一个机器周期内查询到该标志。
•\u26102X钟振荡器:AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图 10。外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择 40pF±10F。用户也可以采用外部时钟。采用外部时钟的电路如图 10 右图所示。这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
•\u31354X闲节电模式 :在空闲工作模式状态,CPU自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,同时将片内 RAM 和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。
•\u31354X闲节电模式 :在空闲工作模式状态, CPU 自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,同时将片内 RAM 和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。
•\u25481X电模式:在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变 RAM中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。
•\u31243X序存储器的加密:AT89C52 有3个程序加密位,可对芯片上的3个加密位 LB1、LB2、LB3 进行编程(P)或不编程(U)来得到如表 7所示的功能:当加密位 LB1 被编程时,在复位期间,EA端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止。为使单片机能正常工作,被锁存的 EA 电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。
Features
• Compatible with MCS-51™ Products
• 8K Bytes of In-System Reprogrammable Flash Memory
– Endurance: 1,000 Write/Erase Cycles
• Fully Static Operation: 0 Hz to 24 MHz
• Three-Level Program Memory Lock
• 256 x 8-Bit Internal RAM
• 32 Programmable I/O Lines
• Three 16-Bit Timer/Counters
• Eight Interrupt Sources
• Programmable Serial Channel
• Low Power Idle and Power Down Modes
Description
The AT89C52 is a low-power, high-performance CMOS 8-bit microcomputer with 8Kbytes of Flash programmable and erasable read only memory (PEROM). The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standard 80C51 and 80C52 instruction set and pin out. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C52 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.
Timer 2 consists of two 8-bit registers, TH2 and TL2. In the Timer function, the TL2 register is incremented every machine cycle. Since a machine cycle consists of 12 oscillator periods, the count rate is 1/12 of the oscillator frequency. In the Counter function, the register is incremented in response to a 1-to-0 transition at its corresponding external input pin, T2. In this function, the external input is sampled during S5P2 of every machine cycle. When the samples
Figure 1.
Timer in Capture Mode show a high in one cycle and a low in the next cycle, the count is incremented. The new count value appears in the register during S3P1 of the cycle following the one in which the transition was detected. Since two machine cycles (24 oscillator periods) are required to recognize a 1-to-0 transition, the maximum count rate is 1/24 of the oscillator frequency. To ensure that a given level is sampled at least once before it changes, the level should be held for at least one full machine cycle.
Capture Mode
In the capture mode, two options are selected by bit EXEN2 in T2CON. If EXEN2 = 0, Timer 2 is a 16-bit timer or counter which upon overflow sets bit TF2 in T2CON.This bit can then be used to generate an interrupt. If EXEN2 = 1, Timer 2 performs the same operation, but a 1-to-0 transition at external input T2EX also causes the current value in TH2 and TL2 to be captured into RCAP2H and RCAP2L, respectively. In addition, the transition at T2EX causes bit EXF2 in T2CON to be set. The EXF2 bit, like TF2, can generate an interrupt. The capture mode is illustrated in Figure 1.
Auto-Reload (Up or Down Counter)
Timer 2 can be programmed to count up or down when configured in its 16-bit auto-reload mode. This feature is invoked by the DCEN (Down Counter Enable) bit located in the SFR T2MOD (see Table 4). Upon reset, the DCEN bit is set to 0 so that timer 2 will default to count up. When DCEN is set, Timer 2 can count up or down, depending on the value of the T2EX pin. Figure 2 shows Timer 2 automatically counting up when DCEN = 0. In this mode, two options are selected by bit EXEN2 in T2CON. If EXEN2 = 0, Timer 2 counts up to 0FFFFH and then sets the TF2 bit upon overflow. The overflow also causes the timer registers to be reloaded with the 16-bit value in RCAP2H and RCAP2L. The values in Timer in Capture ModeRCAP2H and RCAP2L are preset by software. If EXEN2 = 1, a 16-bit reload can be triggered either by an overflow or by a 1-to-0 transition at external input T2EX. This transition also sets the EXF2 bit. Both the TF2 and EXF2 bits can generate an interrupt if enabled. Setting the DCEN bit enables Timer 2 to count up or down, as shown in Figure 3. In this mode, the T2EX pin controls
AT89C52数据手册
主要性能参数:
•u19982X MCS—51产品指令和引脚完全兼容
•8k 字节可重擦写Flash闪速存储器
•1000次擦写周期
•u20840X静态操作:0Hz—24MHz
•u19977X级加密程序存储器
•256×8 字节内部RAM
•32个可编程I/O口线
•3个16 位定时/计数器
•8个中断源
•u21487X编程串行UART通道
•u20302X功耗空闲和掉电模式
AT89C52 是美国 ATMEL 公司生产的低电压,高性能CMOS8位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理(CPU)和 Flash 存储单元,功能强大 AT89C52 单片机适合于许多较为复杂控制应用场合。
功能特性概述:
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口的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对端口写“1”通过上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与 AT89C51 不同之处是,P1.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表 1。Flash 编程和程序校验期间,P1 接收低 8 位地址。
•P2 :P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX @DPTR 指令)时,P2 口送出高 8 位地址数据。在访问8位地址的外部数据存储器(如执行 MOVX @RI 指令)时,2 口输出P2锁存器的内容。Flash 编程或校验时,P2 亦接收高位地址和一些控制信号。
•P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:
•RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。
•ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。
•PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。
•EA/VPP:外部访问允许。欲使 CPU仅访问外部程序存储器(地址为 0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。如 EA 端为高电平(接Vcc 端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。
•XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
•XTAL2:振荡器反相放大器的输出端。
•\u29305X殊功能寄存器:在 AT89C52 片内存储器中,80H-FFH 共128个单元为特殊功能寄存器(SFE),SFR的地址空间映象如表2所示。并非所有的地址都被定义,从 80H—FFH 共 128个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。
AT89C52 除了与AT89C51所有的定时/计数器 0 和定时/计数器 1 外,还增加了一个定时/计数器 2。定时/计数器 2 的控制和状态位位于T2CON(参见表 3)T2MOD(参见表 4),寄存器对(RCAO2H、RCAP2L)是定时器2在16位捕获方式或16位自动重装载方式下的捕获/自动重装载寄存器。
•\u20013X断寄存器:AT89C52 有6个中断源,2个中断优先级,IE寄存器控制各中断位,IP寄存器中6个中断源的每一个可定为2个优先级。
•\u25968X据存储器: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 亦可作为堆栈区使用。
•\u23450X时器 0 和定时器 1:AT89C52 的定时器0和定时器1的工作方式与 AT89C51 相同。
•\u23450X时器 2:定时器 2是一个16位定时/计数器。它既可当时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器 T2CON(如表 3)的C/T2位选择。定时器2有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON的控制位来选择,参见表 4。
定时器 2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期 TL2 寄存器的值加 1,由于一个机器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。在计数工作方式时,当T2引脚上外部输入信号产生由1至0的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1期间寄存器加1。由于识别1至0的跳变需要2个机器周期(24个振荡周期),因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。
•捕获方式:在捕获方式下,通过T2CON 控制位EXEN2来选择两种方式。如果EXEN2=0,定时器2是一个16位定时器或计数器,计数溢出时,对 T2CON的溢出标志TF2置位,同时激活中断。如果EXEN2=1,定时器2完成相同的操作,而当T2EX引脚外部输入信号发生1至0负跳变时,也出现TH2和TL2中的值分别被捕获到RCAP2H和RCAP2L中。另外,T2EX引脚信号的跳变使得T2CON中的EXF2置位,与TF2相仿,EXF2 也会激活中断。
•自动重装载(向上或向下计数器)方式当定时器2 工作于16 位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器 T2CON(见表5)的DCEN位(允许向下计数)来选择的。复位时,DCEN 位置“0”,定时器2默认设置为向上计数。当DCEN置位时,定时器2既可向上计数也可向下计数,这取决于T2EX引脚的值,参见图5,当 DCEN=0 时,定时器2自动设置为向上计数,在这种方式下,T2CON中的 EXEN2 控制位有两种选择,若 EXEN2=0,定时器2为向上计数至 0FFFFH 溢出,置位TF2激活中断,同时把16位计数寄存器 RCAP2H 和 RCAP2L重装载,RCAP2H和RCAP2L的值可由软件预置。若EXEN2=1,定时器 2的16位重装载由溢出或外部输入端T2EX从1至0的下降沿触发。这个脉冲使EXF2置位,如果中断允许,同样产生中断。
当 DCEN=0时,允许定时器 2 向上或向下计数,如图 6 所示。这种方式下,T2EX 引脚控制计数器方向。T2EX 引脚为逻辑“1”时,定时器向上计数,当计数 0FFFFH 向上溢出时,置位TF2,同时把16位计数寄存器 RCAP2H 和 RCAP2L重装载到TH2和TL2中。 T2EX 引脚为逻辑“0”时,定时器 2 向下计数,当TH2和TL2中的数值等于 RCAP2H 和 RCAP2L中的值时,计数溢出,置位 TF2,同时将 0FFFFH 数值重新装入定时寄存器中。当定时/计数器 2向上溢出或向下溢出时,置位EXF2 位。
•波特率发生器
当T2CON中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。如果定时/计数器2作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7所示。若 RCLK和TCLK 置位,则定时器2工作于波特率发生器方式。
波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2的寄存器用 RCAP2H和RCAP2L中的16位数值重新装载,该数值由软件设置。在方式1和方式3中,定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。定时器 2 作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12 振荡频率)寄存器的值加 1,而作为波特率发生器使用时,在每个状态时间(1/2 振荡频率)寄存器的值加 1。定时器 2 作为波特率发生器使用的电路如图 7 所示。T2CON 中的 RCLKTCLK=1 时,波特率工作方式才有效。在波特率发生器工作方式中,TH2 翻转不能使 TF2 置位,故而不产生中断。但若 EXEN2 置位,且 T2EX 端产生由1至0的负跳变,则会使 EXF2 置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入 TH2 和 TL2 中。所以,当定时器 2 作为波特率发生器使用时,T2EX可作为附加的外部中断源来使用。需要注意的是,当定时器2工作于波特率器时,作为定时器运行(TR2=1)时,并不能访问 TH2和 TL2。因为此时每个状态时间定时器都会加 1,对其读写将得到一个不确定的数值。然而,对 RCAP2 则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。在访问定时器 2或 RCAP2 寄存器之前,应将定时器关闭(清除 TR2)。
定时器 2 可通过编程从 P1.0 输出一个占空比为 50%的时钟信号,如图 8 所示。P1.0 引脚除了是一个标准的 I/O 口外,还可以通过编程使其作为定时/计数器 2 的外部时钟输入和输出占空比 50%的时钟脉冲。当时钟振荡频率为 16MHz时,输出时钟频率范围为61Hz—4MHz。当设置定时/计数器 2 为时钟发生器时,C/T2(T2CON .1)=0,T2OE(T2MOD.1) =1,必须由 TR2(T2CON.2)启动或停止定时器。时钟输出频率取决于振荡频率和定时器 2 捕获寄存器(RCAP2H,RCAP2L)的重新装载值. 在时钟输出方式下,定时器2的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。定时器2作为波特率发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用RCAP2L 和 RCAP2L。
•UART:
AT89C52 的 UART 工作方式与 AT89C51 工作方式相同。
•\u20013X断AT89C52 共有6个中断向量:两个外中断(INT0 和 INT1),3个定时器中断(定时器 0、1、2)和串行口中断。所有这些中断源如图 9 所示。这些中断源可通过分别设置专用寄存器 IE 的置位或清0来控制每一个中断的允许或禁止。IE也有一个总禁止位EA,它能控制所有中断的允许或禁止。注意表 5 中的 IE.6 为保留位,在 AT89C51 中 IE.5 也是保留位。程序员不应将“1”写入这些位,它们是将来 AT89 系列产品作为扩展用的。定时器 2 的中断是由 T2CON 中的 TF2 和 EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是 TF2 或 EXF2 产生中断,而由软件清除中断标志位。定时器 0 和定时器 1 的标志位 TF0 和 TF1 在定时器溢出那个机器周期的 S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器 2的标志位TF2在定时器溢出的那个机器周期的S2P2状态置位,并在同一个机器周期内查询到该标志。
•\u26102X钟振荡器:AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图 10。外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择 40pF±10F。用户也可以采用外部时钟。采用外部时钟的电路如图 10 右图所示。这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
•\u31354X闲节电模式 :在空闲工作模式状态,CPU自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,同时将片内 RAM 和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。
•\u31354X闲节电模式 :在空闲工作模式状态, CPU 自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,同时将片内 RAM 和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。
•\u25481X电模式:在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变 RAM中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。
•\u31243X序存储器的加密:AT89C52 有3个程序加密位,可对芯片上的3个加密位 LB1、LB2、LB3 进行编程(P)或不编程(U)来得到如表 7所示的功能:当加密位 LB1 被编程时,在复位期间,EA端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止。为使单片机能正常工作,被锁存的 EA 电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询