52单片机定时器2定时10秒代码
时间: 2024-03-06 20:46:55 浏览: 21
以下是51单片机定时器2定时10秒的代码:
```c
#include <reg52.h> // 引入STC 51单片机头文件
sbit LED = P1^0; // 定义P1.0口为LED灯控制口
void Timer2Init(void); // 定时器2初始化函数
void main(void)
{
Timer2Init(); // 定时器2初始化
while(1); // 主程序空循环
}
void Timer2Init(void)
{
EA = 1; // 开启总中断
ET2 = 1; // 开启定时器2中断
TR2 = 1; // 启动定时器2
RCAP2H = 0x9C; // 设置定时器2重载值为0x9C40
RCAP2L = 0x40;
}
void Timer2Interrupt() interrupt 5 // 定时器2中断处理函数
{
static unsigned char cnt = 0; // 定义静态计数器
TH2 = 0x9C; // 重置定时器2计数值
TL2 = 0x40;
cnt++; // 计数器加1
if(cnt >= 100) // 计数器累加到100时,即10秒
{
cnt = 0; // 计数器清零
LED = ~LED; // LED灯翻转
}
}
```
以上代码中,定时器2的重载值设置为0x9C40,定时器2中断处理函数中,当计数器累加到100时,即10秒过去,LED灯翻转一次。在主程序中,只需要初始化定时器2,然后进入一个空循环即可。