AT89C52定时器2工作方式

合集下载

STC89C52单片机定时器2详细整理

STC89C52单片机定时器2详细整理

STC89C52单片机定时器2详细整理51单片机是我自学的第一款单片机,那时正好是过春节,想起那个寒假,外面下着大雪,有时还会传来一两声爆竹的炸响,而我一个人在房间里摆弄单片机开发板,反复调试程序的时光,真是难忘!我自认为这款单片机所有的资源中最不好搞清楚的就是定时器2,尤其是对于那些以前从来没有玩过单片机的新手。

定时器2是新增资源,也是51单片机定时器里面功能最强大的一个定时器。

所以掌握好定时器2还是非常有必要的。

以下是在我完全搞明白它的原理和用法的基础上整理的一篇小文章。

读起来,好像Datasheet一样!请原谅,希望没有辜负你的点击!定时器2是一个16位定时器/计数器,通过设置特殊功能寄存器T2CON中的C/T2位可将其设置为定时器或是计数器;通过设置T2CON中的工作模式选择位可将定时器2设置为三种工作模式,分别为捕获、自动重新装载(递增或是递减计数)和波特率发生器。

知识点一、定时器2的控制寄存器T2CON(可按位寻址)*D7位--TF2:定时器2溢出标志位。

用于请求中断(必须由软件清0)D6位--EXF2:定时器外部标志位。

当外部信号使能时,发生外部负跳变时置位请求中断(必须由软件清0)D5位--RCLK:接受时钟标志位。

默认情况下串行口中模式1和模式3的时钟是由定时器1的溢出率提供,若该位置位,则由定时器2提供。

D4位--TCLK:发送时钟标志位。

原理同上D3位--EXEN2:定时器2的外部使能标志位。

定时器2没有作为串行口时钟时,若将该位置位时,将允许T2EX的负跳变产生捕获或重装D2位--TR2:定时器2启动/停止控制位。

D1位--C/T2:定时器2的定时器/计数器选择位(在reg52头文件中定义为了C_T2,请注意,下面相同)D0位--CP/RL2:捕获/重装标志位。

知识点二定时器2的模式控制寄存器T2MOD(不可按位寻址)该寄存器在单片机的头文件reg2.h中可能没有被定义,自己定义吧!D1位—T2OE:定时器2输出使能位D0位—DCEN:向下计数使能位知识点三:定时器2的三种模式**1、捕获模式*在'CP/RL2=1'&&'TR2=1'时进入捕获模式。

STC89C52单片机定时器2的使用

STC89C52单片机定时器2的使用

STC89C52单片机定时器2的使用实现定时和计数的方法一般有:软件定时、专用电路和可编程定时器/计数器三种方法。

软件定时:执行一个循环程序进行时间延迟。

定时准确,不需要外加硬件电路,但会增加CPU 开销。

专用硬件电路定时:可以实现请精确的定时和计数,但参数调节不方波。

可编程定时器/计数器:不占用CPU 时间,能与CPU 并行工作,实现精确的定时和计数,又可以通过变成设置其工作方式和其他参数,使用方便。

以下说明仅试用宏晶的STC89C52!!定时器2:T2MOD,T2CON,TH2,TL2,RC2H,RC2L.T2MOD:0C9H(不可位寻址)000000T2OEDCENT2OE:定时器输出使能位DECN:向上/向下计数使能位。

定时器2 可配制成向上/向下计数器。

0:向上计数(模式状态) 1:向下计数(尽量不使用)T2CON:0XC8H(可位寻址)TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2TF2:7 上/下溢出标志位,定时器2 溢出时置位,必须有用软件清零!当RCLK 或TCLK=1 时,TF2 将不会置位。

EXF2:6 定时器2 外部标志,当EXEN2=1 且T2EX 的负跳变产生捕获或重装时,EXF2 置位。

定时器2 中断使能时,EXF2=1 将使CPU 从中断向量处执行定时器2 中断子程序。

EXF2 位必须用软件清零。

在递增/递减计数器模式(DCEN=1)中,EXF2 位不会引起中断。

RCLK:5 接收时钟标志。

RCLK 置位时,定时器2 的溢出脉冲作为串口模式1 和模式3 的接收时钟。

RCLK=0 时,将定时器1 的溢出脉冲作为串口模式1 和模式3 的接收时钟。

TCLK:4 发送时钟标志位。

TCLK 置位时,定时器2 的溢出脉冲作为串口模式1 和模式3 的发送时钟。

TCLK=0 时,将定时器1 的溢出脉冲作为串口模式1 和模式3 发送时钟。

EXEN2:3 定时器2 外部使能标志。

AT89C52定时器2工作方式

AT89C52定时器2工作方式

·定时器2:定时器2 是一个16 位定时/计数器。

它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON(如表3)的C/T2 位选择。

定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。

定时器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 也会激活中断。

捕获方式如图4 所示。

·自动重装载(向上或向下计数器)方式:当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON(见表5)的DCEN 位(允许向下计数)来选择的。

AT89S52定时器T2

AT89S52定时器T2

四.T2CON暫存器:TIMER2的控制暫存器,89S52除了有以上所述的TIMER0與TIMER1外,又多了一個TIMER2。

位址:C8HBitTF2:Timer 2溢位旗號,當Timer 2中斷時,CPU會將此位元設定為1,中斷結束後,CPU並不會將TF2清除為0,須以軟體清除之。

當RCLK=TCLK=1時,TF2不會被設定。

EXF2:Timer 2的外部旗號,當T2EX接腳(P1.1)輸入負緣信號且EXEN2=1,即進入捕入(Capture Mode)或自動載入模式(Auto-Reload Mode),此時EXF2將被設定為1,並產生Timer 2中斷,而中斷結束後,CPU並不會清除該位元為0,須以軟體清除之。

RCLK:串列埠接收時脈選擇位元,當RCLK=1時,串列埠將以Timer 2溢位脈波做為在Mode 1 或Mode 3模式時的接收時脈信號。

若RCLK=0時,則串列埠將以Timer 1溢位脈波做為接收的時脈信號。

TCLK:串列埠傳送時脈選擇位元,當RCLK=1時,串列埠將以Timer 2溢位脈波做為在Mode 1 或Mode 3模式時的傳送時脈信號。

若RCLK=0時,則串列埠將以Timer 1溢位脈波做為傳送的時脈信號。

EXEN2:Timer 2外部致能控制位元,當EXEN2=1時,若Timer 2未做為串列埠的時脈產生器且T2EX接腳(P1.1)輸入負緣觸發信號,即進入捕入(CaptureMode)或自動載入模式(Auto-Reload Mode)。

當EXEN2=0時,Tmer 2將不處理T2EX的信號。

TR2:Timer 2的啟動位元,TR2=1時啟動Timer 2,TR2=0時Timer 2停止計時。

C/2T:Timer 2計時計數切換開關,C/2T=1時為外部計數功能,以計數T2接腳(P1.0)所輸入的脈波信號。

若C/2T=0時為內部計時功能(OSC/12)。

CP/2RL,=1時,EXEN2=1且T2EX輸入負緣觸發信號,RL:Timer 2工作模式切換位元,當CP/2Timer2將產生捕入的功能,將TH2、TL2的值存入RCAP2H與RCAP2L。

AT89C52中文资料

AT89C52中文资料

AT89C52中文资料AT89C52的中文资料AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。

AT89C52单片机属于AT89C51单片机的增强型,与Intel 公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。

其主要工作特性是:片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;片内数据存储器内含256字节的RAM;具有32根可编程I/O口线;具有3个可编程定时器;中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;串行口是具有一个全双工的可编程串行通信口;具有一个数据指针DPTR;低功耗工作模式有空闲模式和掉电模式;具有可编程的3级程序锁定位;AT89C52工作电源电压为5(1+0.2)V,且典型值为5V;AT89C52最高工作频率为24MHz。

单片机正常工作时,都需要有一个时钟电路和一个复位电路。

本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。

如图3.1所示。

功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

at89c52单片机的工作原理

at89c52单片机的工作原理

at89c52单片机的工作原理
AT89C52单片机是一种经典的8位单片机,它具有复杂的工
作原理。

以下是关于AT89C52单片机的工作原理的详细解释。

AT89C52单片机基于CMOS技术,具有8位的CPU核心,工
作频率可高达33MHz。

它内部包含了8K字节的可编程闪存,可用于存储程序指令。

此外,它还有256字节的RAM,用于
临时存储数据。

单片机的工作主要分为两个阶段:取指令阶段和执行阶段。

在取指令阶段,单片机从闪存中读取指令,并将其加载到指令寄存器中。

指令寄存器是一个特殊的寄存器,用于存储当前执行的指令。

单片机通过逐条读取指令来执行程序。

在执行阶段,单片机根据当前指令执行相应的操作。

它可以执行算术和逻辑运算,访问存储器中的数据,并进行数据传输等操作。

单片机还有各种寄存器,如累加器、工作寄存器和状态寄存器等,用于存储和处理数据。

单片机的工作过程是由时钟信号控制的。

时钟信号提供了单片机操作的时间基准。

它将单片机的工作节奏分为多个时钟周期,每个时钟周期中,单片机执行一个基本操作。

时钟频率越高,单片机的工作速度就越快。

除了时钟信号外,单片机还需要外部电源供电。

它将电源电压降低到适当的工作电压,并将它稳定在一定的范围内,以确保
单片机正常工作。

总的来说,AT89C52单片机的工作原理是通过取指令阶段和执行阶段完成指令的执行。

它通过读取闪存中的指令,并根据指令执行相应的操作。

时钟信号提供了工作的时间基准,而外部电源供电则确保单片机正常工作。

at89c52中文资料介绍

at89c52中文资料介绍

at89c52中文资料介绍时间:2009-03-15 07:52:27 来源:频率计爱好者作者:编号:1181 更新日期20110302 073200AT89C52 ATMEL公司生产的低电压,高性能CMOS 8位单片机.片内含8K byTES的可反复擦写的只读程序存储器(PEROM)和256 byTES 。

的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052 产品引脚兼容,片内置通用8位中央处理器(CPU )和FLASH 由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。

主要性能参数:与Mcs-51产品指令和引脚完全兼容。

8字节可重擦写FLASH闪速存储器1000 次擦写周期全静态操作:0HZ-24MHZ三级加密程序存储器256X8字节内部RAM32个可编程I/0口线3个16 位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式AT89C52内部框图功能特性:AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。

空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。

掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.功能引脚说明:Vcc:电源电压GND:地P0:P0口是一组8位漏极开路型双向1/O 口,也即地址/数据总线复用口。

作为输出口用时.每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

·定时器0和定时器1

·定时器0和定时器1

当DCEN=1时,允许定时器2向上或向下计数,如图6所示。

这种方式下,T2EX引脚控制计器方向。

T2EX引脚为逻辑“1”时,定时器向上计数,当计数0FFFFH向上溢出时,置位TF2,同时把16位计数寄存器RCAP2H和RCAP2L载到TH2和TL2中。

T2EX引脚为逻辑“0”时,定时器2向计数,当TH2和TL2中的数值等于RCAP2H和RCAP2L中的值时,计数溢出,置位TF2,同时将0FFF 数值重新装入定时寄存器中。

当定时/计数器2向上溢出或向下溢出时,置位EXF2位。

·波特率发生器:当T2CON(表3)中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。

如果定时计数器2作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7所示。

若RCLK和TCLK置位,则定时器2工作于波特率发生器方式。

波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2的寄存器用RCAP2H和RCAP2L中的16位数值重新装载,该数值由软件设置。

在方式1和方式3中,波特率由定时器2的溢出速率根据下式确定:方式1和3的波特率=定时器的溢出率/16定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/=0)。

定时器2作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每机器周期(1/12振荡频率)寄存的值加1,而作为波特率发生器使用时,在每个状态时间(1/2振荡频率)寄存器的值加1。

波特率的计算公式如下:方式1和3的波特率=振荡频率/{32×[65536-(RCAP2H,RCAP2L)]}式中(RCAP2H,RCAP2L)是RCAP2H和RCAP2L中的16位无符号数。

定时器2作为波特率发生器使用的电路如图7所示。

T2CON中的RCLK或TCLK=1时,波特率作方式才有效。

在波特率发生器工作方式中,TH2翻转不能使TF2置位,故而不产生中断。

单片机定时器方式2的工作原理

单片机定时器方式2的工作原理

单片机定时器方式2的工作原理
单片机定时器方式2的工作原理如下:
在定时器方式2中,定时器/计数器被配置为一个16位的定时器模式。

当定时器/计数器的计数达到最大值(对于8051单片机,最大值为65535)时,计数器会自动回滚到0,并产生一个溢出事件。

当定时器/计数器溢出时,定时器/计数器的输出比较寄存器将被立即加载到输出比较寄存器中。

这意味着在溢出发生后,输出比较寄存器的值将立即被复制到输出比较寄存器中,并产生一个中断请求。

在定时器方式2中,输出比较寄存器的值可以通过编程来设置。

当输出比较寄存器的值被设置后,定时器/计数器的当前计数值将与输出比较寄存器的
值进行比较。

如果定时器/计数器的计数值小于输出比较寄存器的值,则定
时器/计数器的计数值将递增,直到定时器/计数器的计数值等于输出比较寄存器的值。

当定时器/计数器的计数值等于输出比较寄存器的值时,输出比较寄存器的
值将被复制到输出比较寄存器中,并产生一个中断请求。

此时,定时器/计
数器的计数值将被清零,并重新开始计数。

因此,通过设置输出比较寄存器的值,可以控制定时器/计数器的计数值何时达到溢出值,从而控制定时器的定时时间。

STC89C52单片机定时器2的使用知识讲解

STC89C52单片机定时器2的使用知识讲解

52单片机有3个定时器,T2是一个16位自动重载的,像T0和T1的方式2一样,只不过它是16位重载,如果作为计数器或定时用,中断用的是5,就是interrupt 5,T2的引脚是P1.0口。

P1.0作为I/O 口用了以后T2计数是不行了,不过定时或是作为串口时钟还是可以的。

T2CON(T2的控制寄存器),字节地址0C8H:0CFH 0CEH 0CDH 0CCH 0CBH 0CAH 0C9H 0C8HTF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RT2 各位的定义如下:TF2:定时/计数器2溢出标志,T2溢出时置位,并申请中断。

只能用软件清除,但T2作为波特率发生器使用的时候,(即RCLK=1或TCLK=1),T2溢出时不对TF2置位。

EXF2:当EXEN2=1时,且T2EX引脚(P1.0)出现负跳变而造成T2的捕获或重装的时候,EXF2置位并申请中断。

EXF2也是只能通过软件来清除的。

RCLK:串行接收时钟标志,只能通过软件的置位或清除;用来选择T1(RCLK=0)还是T2(RCLK=1)来作为串行接收的波特率产生器TCLK:串行发送时钟标志,只能通过软件的置位或清除;用来选择T1(TCLK=0)还是T2(TCLK=1)来作为串行发送的波特率产生器EXEN2:T2的外部允许标志,只能通过软件的置位或清除;EXEN2=0:禁止外部时钟触发T2;EXEN2=1:当T2未用作串行波特率发生器时,允许外部时钟触发T2,当T2EX引脚输入一个负跳变的时候,将引起T2的捕获或重装,并置位EXF2,申请中断。

TR2:T2的启动控制标志;TR2=0:停止T2;TR2=1:启动T2C/T2:T2的定时方式或计数方式选择位。

只能通过软件的置位或清除;C/T2=0:选择T2为定时器方式;C/T2=1:选择T2为计数器方式,下降沿触发。

CP/RT2:捕获/重装载标志,只能通过软件的置位或清除。

at89c52单片机介绍

at89c52单片机介绍

at89c52中文资料介绍AT89C52 ATMEL公司生产的低电压,高性能CMOS 8位单片机.片内含8K byTES的可反复擦写的只读程序存储器(PEROM)和256 byTES 。

的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052 产品引脚兼容,片内置通用8位中央处理器(CPU )和FLASH 由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。

主要性能参数:与Mcs-51产品指令和引脚完全兼容。

8字节可重擦写FLASH闪速存储器1000 次擦写周期全静态操作:0HZ-24MHZ三级加密程序存储器256X8字节内部RAM32个可编程I/0口线3个16 位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式AT89C52内部框图功能特性:AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。

空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。

掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.功能引脚说明:Vcc:电源电压GND:地P0:P0口是一组8位漏极开路型双向1/O 口,也即地址/数据总线复用口。

作为输出口用时.每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在FLASH由编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

单片机AT89C52简要说明

单片机AT89C52简要说明

附录A 英文原文Microcomputer AT89C52 Synoptic ElucidationThe microcomputer AT89C52 provides the following standard features: 8K bytes of Flash, 256 bytes of RAM, 32 I/O lines, three 16-bit timer/counters, a six-vector two-level interrupt architecture,a full duplex serial port, on-chip oscillator, and clock circuitry.In addition, the AT89C52 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning.The Power Down Mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next hardware reset,for the figure 1.Pin DescriptionVCC:Supply voltage.GND:Ground.Port 0:Port 0 is an 8-bit open drain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high impedance inputs.Port 0 can also be configured to be the multiplexed low order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pullups.Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification.External pull-ups are required during program verification.Port 1:Port 1 is an 8-bit bidirectional I/O port with internal pullups.The Port 1 output buffers can sink/source four TTL inputs.When 1s are written to Port 1 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs,Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pull-ups.In addition, P1.0 and P1.1 can be configured to be the timer/counter 2 external count input (P1.0/T2) and the timer/counter 2 trigger input (P1.1/T2EX), respectively, as shown in the following table.Port 1 also receives the low-order address bytes during Flash programming and verification.Port 2:Port 2 is an 8-bit bidirectional I/O port with internal pullups.The Port 2 output buffers can sink/source four TTL inputs.When 1s are written to Port 2 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pull-ups. Port 2 emits the high order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @DPTR). In this application, Port 2 uses strong internal pull-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register.Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.Port 3:Port 3 is an 8-bit bidirectional I/O port with internal pullups.The Port 3 output buffers can sink/source four TTL inputs.When 1s are written to Port 3 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs,Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups.Port 3 also serves the functions of various special features of the AT89C51, as shown in the following table.Port 3 also receives some control signals for Flash programming and verification.RST:Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device.ALE/PROG:Address Latch Enable is an output pulse for latching the low byte of the address during accesses to external memory.This pin is also the program pulse input (PROG) during Flash programming.In normal operation, ALE is emitted at a constant rate of 1/6the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory.If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Other- wise, the pin is weakly pulled high. Setting the ALE-disable bit hasno effect if the microcontroller is in external execution mode.PSEN:Program Store Enable is the read strobe to external program memory.When the AT89C52 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.EA/VPP:External Access Enable. EA must be strapped to GND in order to enable the图A.1 AT89C52方框图device to fetch code from external program memory locations starting at 0000H up to FFFFH.Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset.EA should be strapped to VCC for internal program executions.This pin also receives the12-volt programming enable voltage(VPP) during Flash programming when 12-volt programming is selected.XTAL1:Input to the inverting oscillator amplifier and input to the internal clock operating circuit.XTAL2:Output from the inverting oscillator amplifier.Special Function Registers:Not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip.Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate er software should not write 1s to these unlisted locations, since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0.Timer 2 Registers: Control and status bits are contained in registers T2CON and T2MOD for Timer 2. The register pair (RCAP2H,RCAP2L) are the Capture/Reload registers for Timer 2 in 16-bit capture mode or 16-bit auto-reload mode.Interrupt Registers: The individual interrupt enable bits are in the IE register. Two priori- ties can be set for each of the six interrupt sources in the IP register.Data Memory:The AT89C52 implements 256 bytes of on-chip RAM. The upper 128 bytes occupy a parallel address space to the Special Function Registers. That means the upper 128 When an instruction accesses an internal location above address 7FH, the address mode used in the instruction specifies whether the CPU accesses the upper 128 bytes of RAM or the SFR space. Instructions that use direct addressing access SFR space. For example, the following direct addressing instruction accesses the SFR at location 0A0H (which is P2).Instructions that use indirect addressing access the upper 128 bytes of RAM. For example, the following indirect addressing instruction, where R0 contains 0A0H, accesses the data byte at address 0A0H, rather than P2 (whose address is 0A0H). Note that stack operations are examples of indirect addressing, so the upper 128 bytes of data RAM are available as stack space.Timer 0 and 1:Timer 0 and Timer 1 in the AT89C52 operate the same way as Timer 0 and Timer 1 in the AT89C51.Timer 2:Timer 2 is a 16-bit Timer/Counter that can operate as either a timer or an event counter. The type of operation is selected by bit C/T2 in the SFR T2CON.Timer 2 has three operating modes: capture, auto-reload(up or down counting), and baud rate generator. The modes are selected by bits in T2CON.Timer 2consists 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 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 maxi- mum 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.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. Timer 2 automatically count up when DCEN = 0. In this mode, two option s 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 transi- tion also sets the EXF2 bit. Both the TF2 and EXF2 bits cangenerate 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 the direction of the count. A logic 1 at T2EX makes Timer 2 count up. The timer will overflow at 0FFFFH and set the TF2 bit. This overflow also causes the 16-bit value in RCAP2H and RCAP2L to be reloaded into the timer registers,TH2 and TL2, respect- tively.A logic 0 at T2EX makes Timer 2 count down. The timer underflows when TH2 and TL2 equal the values stored in RCAP2H and RCAP2L. The underflow sets the TF2 bit and causes 0FFFFH to be reloaded into the timer registers.The EXF2 bit toggles whenever Timer 2 overflows or underflows and can be used as a 17th bit of resolution. In this operating mode, EXF2 does not flag an inter- rupt.Baud Rate Generator:Timer 2 is selected as the baud rate generator by setting TCLK and/or RCLK in T2CON (Table 2). Note that the baud rates for transmit and receive can be different if Timer 2 is used for the receiver or trans- mitter and Timer 1 is used for the other function. Setting RCLK and/or TCLK puts Timer 2 into its baud rate generator mode, as shown in Figure 4.The baud rate generator mode is similar to the auto-reload mode, in that a rollover in TH2 causes the Timer 2 registers to be reloaded with the 16-bit value in registers RCAP2H and RCAP2L, which are preset by software.The baud rates in Modes 1 and 3 are determined by Timer2’s overflow rate according to the following (A.1)equation.Modes1 and 3 band rates=Timer 2 Overflow Rate16(A.1)The Timer can be configured for either timer or counter operation. In most applications, it is configured for timer operation (CP/T2 = 0). The timer operation is different for Timer 2 when it is used as a baud rate generator. Normally,as a timer, it increments every machine cycle (at 1/12 the oscillator frequency). As a baud rate generator, however, it increments every state time (at 1/2 the oscillator frequency).The baud rate formula is given below(A.2).modes 1 and 3 band Rate =Oscillator frequency32[65536-(RCAP2H,RCAP2L)](A.2)where (RCAP2H, RCAP2L) is the content of RCAP2H and RCAP2L taken as a 16-bit unsigned integer Timer 2 as a baud rate generator is showed.This figure is valid only if RCLK or TCLK = 1 in T2CON. Note that a rollover in TH2 does not set TF2 and will not generate an interrupt. Note too, that if EXEN2 is set, a 1-to-0 transition in T2EX will set EXF2 but will not cause a reload from (RCAP2H, RCAP2L) to (TH2, TL2). Thus when timer 2 is in use as a baud rate generator, T2EX can be used as an extra external interrupt. Note that when Timer 2 is running (TR2 = 1) as a timer in the baud rate generator mode, TH2 or TL2 should not be read from or written to. Under these conditions, the Timer is incremented every state time, and the results of a read or write may not be accurate. The RCAP2 registers may be read but should not be written to, because a write might overlap a reload and cause write and/or reload errors. The timer should be turned off (clear TR2) before accessing the Timer 2 or RCAP2 registers.附录B 中文翻译单片机AT89C52简要说明AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

STC89C52定时器使用方法介绍

STC89C52定时器使用方法介绍

定时器/计数器0 和定时器/计数器1 都可以在方式0、方式1、方式2 工作,而方式3 只有前者才能工作。

1. 方式 0当TMOD 中M1、M0 都为0 时,T/C 工作在方式0。

方式0 为13 位的T/C,由TH 提供高8 位,TL 提供低5 位,注意TL 的高3 位是无效的,计数溢出值为2 的13 次方=8192,启动该计数器需要设置好计数初值。

当C/-- T该位为0 时,T/C 为定时器,振荡源12 分频的信号作为计数脉冲;当C/-- T该位为1 时,T/C为计数器,对外部脉冲输入端的T0 或T1 引脚进行脉冲计数。

计数脉冲能否加到计数器上,受启动信号的控制。

当GATE=0 时,只要TR=1,则T/C 启动;当GATE=1时,启动信号受到TR 与INT 的双重控制。

T/C 启动后立即加1 计数,当13 位计数满时,TH 向高位进位。

此进位将中断溢出标志TF 置位即TF=1,产生中断请求,表示定时时间或计数次数到达。

若T/C 开中断(ET=1)且CPU 开中断(EA=1),则当CPU 自动转向中断服务函数时,TF 自动清零,不需要人工软件清零。

2. 方式 1当TMOD 中M1、M0 为0、1 时,T/C 工作在方式1。

方式1 与方式0 基本相同,唯一不同的是方式0 是13 位计数方式,方式1 是16 位计数方式,TH 和TL 都同时提供8 位(方式0 时TL 只提供低5 位,高3 位无效),计数溢出值为2 的16 次方=65536。

3. 方式 2当TMOD 中M1、M0 为1、0 时,T/C 工作在方式2。

方式2 是8 位的可自动重装载的T/C,满计数值为2 的8 次方=256。

在方式0 和方式1 中,当计数满后,若要进行下一次定时/计数,必须通过软件向TH 和TL 重新装载预置计数值。

方式2 中TH 和TL 被当作两个8 位计数器。

技术过程中,TH 寄存8 位初值并保持不变,由TL 进行8 位计数。

AT89C52

AT89C52

单片机AT89S52中文资料单片机AT89S52 中文资料AT89S52 1 主要性能l 与MCS-51 单片机产品兼容l 8K 字节在系统可编程Flash 存储器l 1000 次擦写周期l 全静态操作:0Hz~33MHz l 三级加密程序存储器l 32 个可编程I/O 口线l 三个16 位定时器/计数器l 八个中断源l 全双工UART 串行通道l 低功耗空闲和掉电模式l 掉电后中断可唤醒l 看门狗定时器l 双数据指针l 掉电标识符功能特性描述AT89S52 是一种低功耗、高性能CMOS8 位微控制器,具有8K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash 允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52 具有以下标准功能:8k 字节Flash,256 字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6 向量2 级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52 可降至0Hz 静态逻辑操作,支持2 种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

R 8 位微控制器8K 字节在系统可编程Flash AT89S52 Rev. 1919-07/01 AT89S52 2 引脚结构AT89S52 3 方框图引脚功能描述AT89S52 4 VCC : 电源GND: 地P0 口:P0 口是一个8 位漏极开路的双向I/O 口。

作为输出口,每位能驱动8 个TTL 逻辑电平。

基于AT89C52倒计时定时器设计

基于AT89C52倒计时定时器设计

摘要在日常的生活和工作中, 倒计时定时器已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

倒计时定时器具有实用性高、成本低、功耗低、易操作等优点。

本文主要介绍了基于AT89C52单片机控制的倒计时定时器的设计。

文中阐述了设计该系统的一些基本背景、原理及系统的各部分组成等。

本次设计实现了在4位八段LED显示分秒、时间的设定、倒计时、复位、报警等功能。

关键字:倒计时定时器 AT89C52 报警The Design of Countdown Timer Based on AT89C52Abstract:In our daily life and work, countdown timer has become essential to daily life.It is widely used in our family, stations, terminals, theaters, offices and other public places,also take a great convenience to people's lives, study, work and entertainment. Countdown timer has a character of practical and low-cost, lowpower consumption, easy operation and so on.This paper introduced the design of countdown timer based on AT89C52, and described the background, principles and the various parts of the system. The design has achieved the main function such as: time setting, time count-down ,resetting and alarm.Keywords: Countdown Timer AT89C52 Alarm目录第1章引言 (1)1.1选题背景 (1)1.2指导思想 (2)1.3方案论证与选择 (2)1.4系统概述 (4)第2章系统总体设计 (5)2.1模块功能实现与原理 (5)2.2计时精度 (6)第3章硬件及软件设计 (8)3.1主控模块 (8)3.1.1 AT89C52的基本知识 (8)3.1.2 AT89C52的内部结构 (10)3.1.3 AT89C52的引脚功能描述 (11)3.1.4 AT89C52的工作模式 (14)3.1.5 AT89C51的内部存储器 (15)3.2显示模块 (16)3.3键盘模块 (17)3.4系统电路 (19)3.4.1蜂鸣器报警/提示音电路设计 (19)3.4.2电源电路设计 (20)3.4.3时钟电路设计 (21)3.5系统软件框图 (21)3.6编程语言选择 (22)第四章结论 (23)4.1总结 (23)4.2系统展望 (23)4.3在本次课程设计中获得的学习体会 (23)致谢 (24)参考文献 (25)附录 1 (26)附录2 (27)第1章引言1.1选题背景倒计时定时器已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

AT89C52单片机定时器如何设置工作方式

AT89C52单片机定时器如何设置工作方式

AT89C52 单片机定时器如何设置工作方式AT89C52 是一个低电压,高性能CMOS 8 位单片机,片内含8k bytes 的可反复擦写的Flash 只读程序存储器和256 bytes 的随机存取数据存储器(RAM),器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS-51 指令系统,片内置通用8 位中央处理器和Flash 存储单元,AT89C52 单片机在电子行业中有着广泛的应用。

AT89C52 单片机硬件结构如图3-1 所示,为AT89C52 的硬件结构图。

AT89C52 单片机的内部结构与MCS-51 系列单片机的构成基本相同。

CPU 是由运算器和控制器所构成的。

运算器主要用来对操作数进行算术、逻辑运算和位操作的。

控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。

它的程序存储器为8K 字节可重擦写Flash 闪速存储器,闪烁存储器允许在线+5V 电擦除、电写入或使用编程器对其重复编程。

数据存储器比51 系列的单片机相比大了许多为256 字节RAM。

AT89C52 单片机的指令系统和引脚功能与MCS-51的完全兼容。

主要性能参数• 8K 字节可重擦写Flash 闪速存储器• 1000 次可擦写周期• 全静态操作:0Hz-24MHz• 三级加密程序存储器• 256&TImes;8 字节内部RAM• 32 个可编程I/O 口线• 3 个16 位定时/计数器• 8 个中断源• 可编程串行UART 通道• 低功耗空闲和掉电模式AT89C52 外部引脚图AT89C52 管脚说明VCC:电源GND:接地P0 口:P0 口是一个8 位漏级开路的双向I/O 口。

STC89C52单片机定时器2的使用

STC89C52单片机定时器2的使用

52单片机有3个定时器,T2是一个16位自动重载的,像T0和T1的方式2一样,只不过它是16位重载,如果作为计数器或定时用,中断用的是5,就是interrupt 5,T2的引脚是P1.0口。

P1.0作为I/O口用了以后T2计数是不行了,不过定时或是作为串口时钟还是可以的。

T2CON(T2的控制寄存器),字节地址0C8H:0CFH 0CEH 0CDH 0CCH 0CBH 0CAH 0C9H 0C8HTF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RT2 各位的定义如下:TF2:定时/计数器2溢出标志,T2溢出时置位,并申请中断。

只能用软件清除,但T2作为波特率发生器使用的时候,(即RCLK=1或TCLK=1),T2溢出时不对TF2置位。

EXF2:当EXEN2=1时,且T2EX引脚(P1。

0)出现负跳变而造成T2的捕获或重装的时候,EXF2置位并申请中断。

EXF2也是只能通过软件来清除的。

RCLK:串行接收时钟标志,只能通过软件的置位或清除;用来选择T1(RCLK=0)还是T2(RCLK=1)来作为串行接收的波特率产生器TCLK:串行发送时钟标志,只能通过软件的置位或清除;用来选择T1(TCLK=0)还是T2(TCLK=1)来作为串行发送的波特率产生器EXEN2:T2的外部允许标志,只能通过软件的置位或清除;EXEN2=0:禁止外部时钟触发T2;EXEN2=1:当T2未用作串行波特率发生器时,允许外部时钟触发T2,当T2EX引脚输入一个负跳变的时候,将引起T2的捕获或重装,并置位EXF2,申请中断.TR2:T2的启动控制标志;TR2=0:停止T2;TR2=1:启动T2C/T2:T2的定时方式或计数方式选择位。

只能通过软件的置位或清除;C/T2=0:选择T2为定时器方式;C/T2=1:选择T2为计数器方式,下降沿触发.CP/RT2:捕获/重装载标志,只能通过软件的置位或清除.CP/RT2=0时,选择重装载方式,这时若T2溢出(EXEN2=0时)或者T2EX引脚(P1。

80C52、AT89C52的定时计数器2

80C52、AT89C52的定时计数器2

∙80C52、AT89C52的定时/计数器2∙作者:佚名发布时间:2009-10-30 阅读次数:543 字体大小: 【小】【中】【大】80C52、AT89C52、80C51FA/FB等单片机增加了一个16位定时/计数器T2,可用于定时或外部事件计数。

它有三种工作方式:16位自动重装初值的定时/计数器、捕捉事件、串行口波特率发生器。

与T2有关的外部引脚是:P1。

0-外部计数脉冲输入端T2,P1。

1-外部控制端T2EX。

8052、AT89C52、80C51FA/FB等单片机增加了一个16位定时/计数器T2,可用于定时或外部事件计数。

它有三种工作方式:16位自动重装初值的定时/计数器、捕捉事件、串行口波特率发生器。

与T2有关的外部引脚是:P1。

0-外部计数脉冲输入端T2,P1。

1-外部控制端T2EX。

1、T2的特殊功能寄存器1)控制寄存器T2CON(C8H)位:TF2 EXF2 RCLK TCLK EXEN2 TR2 C//T2 CP//RL2TF2:T2溢出中断标志,在捕捉方式和自动重装初值方式中计数溢出时置1,对应中断入口002BH,但中断响应后,必须由软件清0。

在串行口波特率发生器方式中TF2不会置1。

EXF2:T2外部中断标志。

当EXEN2=1(T2外部中断允许)时,引脚T2EX(P1。

1)的负跳变使EXF2=1,CPU响应中断,入口地址002BH;EXF2也必须由软件清0。

EXEN2:T2外部中断允许标志。

使EXEN2=1,当T2工作在捕捉方式时,引脚T2EX上出现的负跳变使EXF2=1,申请中断,同时TH2、TL2的当前值自动送入RCAP2H、RCAP2L寄存器;如果T2工作在重载初值方式,那么T2EX的负跳变将RCAP2H和RCAP2L的内容自动装入TH2、TL2,同时EXF2=1,申请中断。

EXEN2=0时,T2EX引脚上的变化对T2工作无影响。

RCLK、TCLK:选择串行口波特率发生器方式。

AT89C52单片机简介

AT89C52单片机简介

AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。

AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C5 2可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。

其将通用的微处理器和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 相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12 MHz 晶振。

51单片机AT89C52中文资料

51单片机AT89C52中文资料

51单片机AT89C52中文资料--------------------------------------------------------------------------------51单片机AT89C52中文资料AT89C52 ATMEL公司生产的低电压,高性能CMOS 8位单片机.片内含8K byTES的可反复擦写的只读程序存储器(PEROM)和256 byTES 。

的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052 产品引脚兼容,片内置通用8位中央处理器(CPU )和FLASH由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。

主要性能参数:与Mcs-51产品指令和引脚完全兼容。

8字节可重擦写FLASH闪速存储器1000 次擦写周期全静态操作:0HZ-24MHZ三级加密程序存储器256X8字节内部RAM32个可编程I/0口线3个16 位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式内部结构图AT89C52内部框图功能特性:AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。

空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。

掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.功能引脚说明:Vcc:电源电压GND:地P0:P0口是一组8位漏极开路型双向1/O 口,也即地址/数据总线复用口。

作为输出口用时.每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

·定时器2:
定时器2 是一个16 位定时/计数器。

它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄
存器T2CON(如表3)的C/T2 位选择。

定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。

定时器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 也会激活中断。

捕获方式如图4 所示。

·自动重装载(向上或向下计数器)方式:
当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON
(见表5)的DCEN 位(允许向下计数)来选择的。

复位时,DCEN 位置“0”,定时器2 默认设置为向上计数。

当DCEN
置位时,定时器2 既可向上计数也可向下计数,这取决于T2EX 引脚的值,参见图5,当DCEN=0 时,定时器2 自动设置
为向上计数,在这种方式下,T2CON 中的EXEN2 控制位有两种选择,若EXE N2=0,定时器2 为向上计数至0FFFFH 溢出,置位TF2 激活中断,同时把16 位计数寄存器RCAP2H 和RCAP2L重装载,RCAP2H 和RCAP2L 的值可由软件预置。

若EXEN2=1,定时器2 的16 位重装载由溢出或外部输入端T2EX 从1 至0
的下降沿触发。

这个脉冲使EXF2 置位,如果
中断允许,同样产生中断。

定时器2 的中断入口地址是:002BH ——0032H 。

当DCEN=1 时,允许定时器2 向上或向下计数,如图6 所示。

这种方式下,T2 EX 引脚控制计数器方向。

T2EX 引脚为逻
辑“1”时,定时器向上计数,当计数0FFFFH 向上溢出时,置位TF2,同时把16 位计数寄存器RCAP2H 和RCAP2L 重装
载到TH2 和TL2 中。

T2EX 引脚为逻辑“0”时,定时器2 向下计数,当TH2
和TL2 中的数值等于RCAP2H 和RCAP2L
中的值时,计数溢出,置位TF2,同时将0FFFFH 数值重新装入定时寄存器中。

当定时/计数器2 向上溢出或向下溢出时,置位EXF2 位。

·波特率发生器:
当T2CON(表3)中的TCLK 和RCLK 置位时,定时/计数器2 作为波特率发生器使用。

如果定时/计数器2 作为发送器或
接收器,其发送和接收的波特率可以是不同的,定时器1 用于其它功能,如图7 所示。

若RCLK 和TCLK 置位,则定时器2
工作于波特率发生器方式。

波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2 翻转使定时器2 的寄存器用RCAP2H 和RCAP2L 中的16
位数值重新装载,该数值由软件设置。

在方式1 和方式3 中,波特率由定时器2 的溢出速率根据下式确定:
方式1和3的波特率=定时器的溢出率/16
定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。

定时器2 作为波
特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12 振荡频率)寄存器的值加1,
而作为波特率发生器使用时,在每个状态时间(1/2 振荡频率)寄存器的值加1。

波特率的计算公式如下:
方式1和3的波特率=振荡频率/{32*[65536-(RCP2H,RCP2L)]}
式中(RCAP2H,RCAP2L)是RCAP2H 和RCAP2L中的16 位无符号数。

定时器2 作为波特率发生器使用的电路如图7 所示。

T2CON 中的RCLK 或TC LK=1 时,波特率工作方式才有效。


波特率发生器工作方式中,TH2 翻转不能使TF2 置位,故而不产生中断。

但若E XEN2 置位,且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 (T2MO D.1)=1,必须由TR2(T2CON.2)启
动或停止定时器。

时钟输出频率取决于振荡频率和定时器2 捕获寄存器(RCAP2 H,RCAP2L)的重新装载值,公式如下:
输出时钟频率=振荡器频率/{4*[65536-(RCP2H,RCP2L)]}
在时钟输出方式下,定时器2 的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。

定时器2 作为波特率
发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用
RCAP2L和RCAP2L。

·UART:
AT89C52的UART 工作方式与AT89C51 工作方式相同。

·中断:
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 状态置位,并在同一个机器周期内
查询到该标志。

相关文档
最新文档