51单片机c语言定时器
时间: 2023-09-19 10:08:26 浏览: 648
51单片机的定时器可以用来产生精确的时间计数和延时操作,下面是一个简单的定时器的C语言示例代码:
```
#include <reg52.h>
void Timer0Init()
{
TMOD |= 0x01; //设置为模式1,16位定时器
TH0 = 0xFC; //给定时器赋初值,定时1ms,计算公式:65536 - (1ms / 12.5us)
TL0 = 0x18;
ET0 = 1; //使能定时器0中断
TR0 = 1; //启动定时器0
EA = 1; //开全局中断
}
void main()
{
Timer0Init();
while(1)
{
//主程序循环
}
}
void Timer0() interrupt 1 //定时器0中断函数
{
TH0 = 0xFC; //给定时器赋初值,定时1ms,计算公式:65536 - (1ms / 12.5us)
TL0 = 0x18;
//定时器中断处理代码
}
```
在以上代码中,定时器0被设置为16位定时器,预设初值为65536-1ms/12.5us=0xFC18,即每1ms触发一次定时器中断。在主程序中,只需要调用Timer0Init()函数来初始化定时器,并在Timer0()函数中添加定时器中断处理代码即可实现定时器功能。
阅读全文