52单片机T2定时计数器装载计数值是如何计算要公式啊,感激不敬.比如12M的晶振,我要1s定时时间该怎么做
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/26 17:22:57
52单片机T2定时计数器装载计数值是如何计算要公式啊,感激不敬.比如12M的晶振,我要1s定时时间该怎么做
52单片机T2定时计数器装载计数值是如何计算
要公式啊,感激不敬.比如12M的晶振,我要1s定时时间该怎么做
52单片机T2定时计数器装载计数值是如何计算要公式啊,感激不敬.比如12M的晶振,我要1s定时时间该怎么做
跟T1、T0完全一样的.T2也是16位的定时器,你要定时1S,那就是20个50ms循环,也就是定时50mS,T0T1你应该会算吧,一模一样,2^16-(定时时间/机器周期),50ms的常数还是3CB0(当然是16进制的).
下面是我以前程序中的一段.
(以下是初始化中的)
TH2=0x3C;/**T2定时初值,50ms**/
TL2=0xB0;
T2CON=0x00;/**T2工作模式,16位定时器**/
RCAP2H=0x3C;/**T2自动重装值,每次溢出后,自动将设置数值重新装入**/
RCAP2L=0xB0;
ET2=1;/**T2中断允许**/
EA=1;
TR2=1;/**T2启动**/
(以下是中断程序的一部分)
void Timer2(void) interrupt 5/**T2中断响应程序**/
{
TR2=0;/**停止T2计数器**/
TF2=0;/**清除T2中断标志,必须**/
con1s++;/**秒计数器加1**/
if(con1s==20)/**当秒计数器计到20,代表1秒,50ms*20=1秒**/
{
con1s=0;
second++;
.
TR2=1;
}
T2最有意思的地方是,可以自动重装载,不过它的中断标志必须人工清除,与T0T1不同.
后两者是初值必须人工装载,但中断标志可以自动清除,刚好相反.