怎么用c51单片机定时器
时间: 2023-09-20 12:15:09 浏览: 95
C51单片机定时器与数码管控制实验报告.doc
5星 · 资源好评率100%
C51单片机有两种定时器:Timer0和Timer1。这里以Timer0为例,介绍如何使用定时器。
1. 初始化定时器
要使用Timer0,需要设置计时模式、计时器值和计时器中断。以下是初始化定时器的代码:
```C
TMOD |= 0x01; //设置计时模式为模式1
TH0 = 0x3C; //设置计时器初值
TL0 = 0xB0; //设置计时器初值
ET0 = 1; //开启定时器中断
TR0 = 1; //启动计时器
```
2. 中断服务程序
当计时器达到设定的值时,会产生一个中断,需要编写中断服务程序来处理中断。以下是一个简单的中断服务程序:
```C
void timer0_isr() interrupt 1
{
TH0 = 0x3C; //重新设置计时器初值
TL0 = 0xB0;
//处理中断
}
```
3. 计时器应用
定时器可以用于许多应用,例如延时、计数、PWM等。以下是一个简单的延时函数,使用Timer0实现:
```C
void delay(unsigned int ms)
{
unsigned int i, j;
for(i = 0; i < ms; i++)
{
for(j = 0; j < 120; j++) //120个计时器时钟为1ms
{
//等待计时器计数完成
while(!TF0);
TF0 = 0; //清除计时器中断标志
}
}
}
```
以上是使用C51单片机的Timer0进行定时的基本方法,可根据实际需求进行修改和扩展。
阅读全文