原创 S52单片机T2定时器的可编程时钟发生器

2011-4-6 17:59 4993 8 11 分类: MCU/ 嵌入式

        52单片机里面有一个T2定时器,它比普通的16为定时器功能要强大多了,今天研究了T2定时器的一个应用——可编程时钟输出功能。配置成500KHZ的时钟信号输出后,用示波器测量了时钟输出脚P1^0,发现还真准。


        为了把定时器配置成时钟发生器,位C/T2(T2CON.1)必须清0,也就是选择定时模式,位T2OE(T2MOD.1)必须置1,使能定时器2输出。位TR2(T2CON.2)启动、停止定时器。时钟输出频率取决于晶振频率和定时器2捕捉寄存器(RCAP2H,RCAP2L)的重载值,如公式所示:


2f98b5d0-d6a7-480a-a109-729d53943f30.jpg


定时器2的可编程输出模式原理框图如下


a022c91a-62bc-4284-8465-5fc2b862c373.jpg


图1  定时器2的可编程输出模式


上个测试用的程序



// 文件名: t2_clk.c


// 功能:  T2定时器的可编程时钟输出


// 说明: 单片机AT89S52,晶振12MHZ,输出频率=晶振频率/(4*[63356-(RCAP2H,RCAP2L)])       


// 日期: 2011年4月6日


#include<AT89X52.H>


sbit clk_out=P1^0; //时钟输出端


void t2_clock(void)



          C_T2=0;  //定时器模式


            T2MOD=0x02;   //T2OE=1,定时器2允许输出


            RCAP2L=0XFa; //赋T2的预置值0xfffa,输出频率500K


            RCAP2H=0XFF;


            TR2=1;


}


void main(void)



             t2_clock(); 


             while(1);


}


        当频率为12MHZ时,通过改变(RCAP2H,RCAP2L)的值,时钟输出频率范围为45.7781HZ到3.00MHZ(实测)。信号波形无明显失真。


 


附件供下载:


测试程序(C语言)attachment download


AT89S52中文数据手册attachment download

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户377235 2013-12-3 22:30

真棒~~~点赞

用户449386 2013-10-14 21:30

写的很好,学习了。

用户446306 2013-5-15 10:34

这篇博文对我有很大帮助,谢谢
相关推荐阅读
用户283608 2011-04-15 13:21
C51文件包含两种形式的差异
        在看别人的程序时,一直有这么个疑问,就是#include<>和#include""的两种文件包含的差异,为什么有的地方用尖括号<>,有的地方可以用双撇号""呢,...
用户283608 2011-04-14 16:44
PWM的单片机产生
      在上次说的直流电机调速的项目中,用了S52单片机的T2定时器产生PWM波信号,用于控制直流电机的转速,虽然电机的平均速度与占空比不是严格的线性关系,但是在调节占空比可以明显的看出电机转速发...
用户283608 2011-04-13 19:09
S52单片机T2定时器的应用
     在S51单片机中,有两个16位的定时器,一般的程序用用也差不多,但是有些情况下两个定时器还真不够用,比如在直流电机调速的项目中,一个用于测电机旋转时切割光耦通路产生的脉冲;另一个用于定时精确...
用户283608 2011-04-08 11:06
STC单片机下载器的制作
        STC单片机因其抗干扰能力强,使用串口下载方便,因而得到广泛了的应用。现在大家一般用USB串口芯来给STC单片机下载程序,这类芯片有PL2303、CH341T、CP2101等。这给笔记...
用户283608 2011-04-05 10:23
移位实现乘、除和求模
        在C51中,乘、除、求模运算都是通过调用库函数来实现的,调用库函数的优点在于简化了编程,缺点是代码长度长、调用时间长。适当的使用移位操作来代替乘、除、求模运算可以大大的节省时间和代码...
我要评论
3
8
关闭 站长推荐上一条 /3 下一条