什么是定时器
定时器的工作模式如下:
可以将其分为三部分,时钟部分,计数器部分和中断部分,如下图所示
#include <REGX52.H>
#include <INTRINS.H>
unsigned int cnt = 0;
void Delay(unsigned char n) //@11.0592MHz
{
while(1)
{
if(cnt >= n)
{
cnt = 0;
break;
}
}
}
void main()
{
//1.外部晶振11.0592
//2.使用定时器0,模式1
TMOD = 0x01;
//3.设置TH0,TL0初始值
TH0 = 0xFC;
TL0 = 0x66;
TCON |= 1 << 4; //定时器开始计数 TR0 = 1;
TF0 = 0; //清楚中断标志位
ET0 = 1; //使能定时器0中断
EA = 1; //使能总中断
while(1)
{
P2_0 = 0;
Delay(1000);
P2_0 = 1;
Delay(1000);
}
}
void timer(void) interrupt 1
{
TH0 = 0xFC;
TL0 = 0x66;
cnt++;
}