打印
[应用方案]

C51—8位单片机定时器运用

[复制链接]
138|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
timfordlare|  楼主 | 2024-6-26 14:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一.知识点记
定时器初值计算
定时时间 = (216- X)✖12/晶振频率
计算的初值X,应转成16进制,分别存放在TH 与 TL中。

static unsigned int T0count;
延长局部生命时间,函数结束后不清零

一.代码段
#include <REGX52.H>
#include  "LCD1602.h"

/*******************************************************************************
* 函 数 名       :  Timer0_Init
* 函数功能                 : 配置定时器T0
* 输    入       : 无
* 输    出             : 无
*******************************************************************************/
void Timer0_Init(void)
{
    TMOD &= 0xF0;
        TMOD |= 0x01;
    TF0  = 0;//将溢出标准位先清0
    TR0 = 1;
    TH0 =0xfc;
    TL0 =0x17;
    EA = 1;
          ET0 = 1;
          PT0 = 0;
}

/*******************************************************************************
* 函 数 名       :
* 函数功能                 : 中断复位函数
* 输    入       : 无
* 输    出             : 无
*******************************************************************************/
void Timer0_() interrupt 1
{   
    static unsigned int T0count;// unsigned int 0---65535 unsigned char则是0~255
    TH0 =0xfc;
    TL0 =0x17;
          T0count++;
          if(T0count >= 1000 )//这里定时为1s
                {
              T0count = 0;
       //可添加执行的操作,例如P2_0 =~ P2_0;
                }
}


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

1179

帖子

1

粉丝