单片机定时器TO工作方式1延迟两秒的完整c51程序
时间: 2024-02-13 21:04:35 浏览: 81
单片机C51的秒表程序,供大家学习定时器
以下是8051单片机的程序代码:
```
#include <reg51.h>
void delay(unsigned int n)
{
unsigned int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < 125; j++); // 1ms延时
}
void main()
{
TMOD = 0x01; // 设置为定时器0工作在模式1
TH0 = 0xB1; // 设置初值,计时1s
TL0 = 0xE0;
TR0 = 1; // 启动定时器
while (1) // 循环执行
{
if (TF0 == 1) // 判断定时器是否溢出
{
TF0 = 0; // 清除溢出标志
delay(1000); // 延时1s
TH0 = 0xB1; // 重新设置初值,计时1s
TL0 = 0xE0;
}
}
}
```
程序中,首先定义了一个延时函数delay,用于实现1ms的延时。然后设置定时器0工作在模式1,即16位定时器模式,设置初值为0xB1E0,表示计时1s。启动定时器后,在while循环中不断判断定时器是否溢出,如果溢出则清除溢出标志并延时1s,然后重新设置初值,继续计时。这样,就实现了定时器TO工作方式1延迟两秒的功能。
阅读全文