51单片机定时器延时750ms
时间: 2023-07-30 08:11:34 浏览: 108
根据引用[1]中的代码,可以使用以下函数来实现51单片机定时器延时功能:
```c
void delay_ms(uint16_t t) {
uint16_t count = 0;
TMOD |= 0x01;
TH0 = 0xFC;
TL0 = 0x66;
TR0 = 1;
while (1) {
if (TF0 == 1) {
count++;
TF0 = 0;
TH0 = 0xFC;
TL0 = 0x66;
}
if (count >= t) {
break;
}
}
}
```
根据引用[3]中的代码,可以使用以下代码来实现延时750ms:
```c
#include <REGX51.H>
void main() {
unsigned int a = 0;
unsigned code led[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f}; // 低电平发光
TMOD &= 0xf0;
TMOD |= 0x01; // 定时器配置
TL0 = 0x18;
TH0 = 0XFC; // 初值1ms
TR0 = 1;
P1 = led[0];
while (1) {
static unsigned int T0count;
if (TF0 == 1) // 中断溢出
{
TF0 = 0;
TL0 = 0x18;
TH0 = 0xfc;
T0count++;
if (T0count >= 750) {
T0count = 0;
a++;
if (a >= 8)
a = 0;
P1 = led[a];
break;
}
}
}
}
```
这段代码会在P1口上循环显示led数组中的元素,每个元素显示750ms。
阅读全文