一.知识点记
定时器初值计算
定时时间 = (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;
}
}
|