上面的程序,我的52单片机主频是24Mhz,延时函数需要更改吗
时间: 2023-05-21 11:04:59 浏览: 77
根据常规的编程经验,如果你的52单片机主频是24MHz,那么你的延时函数就需要相应地进行更改。由于每个延时循环实际上取决于 CPU 的时钟速度,因此如果不进行修改,你可能会得到错误的延迟时间。因此,建议在更改延时函数之前先确认你的函数与主频是否匹配。
相关问题
51单片机主频12Mhz写一个延时1ms的延时函数
在51单片机中,可以通过定时器来实现延时操作。以下是一个基于定时器的延时函数示例,可以实现1ms的延时:
```
void delay_ms(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++) {
for (j = 0; j < 120; j++) { // 12MHz / 12 = 1MHz
// 使用定时器1计数1us
TMOD &= 0xF0;
TMOD |= 0x01;
TH0 = 0xFC;
TL0 = 0x66;
TR0 = 1;
while (!TF0);
TR0 = 0;
TF0 = 0;
}
}
}
```
在上面的代码中,使用定时器1来计数1us,并通过嵌套循环实现1ms的延时。具体来说,每次外层循环执行一次时,内层循环会执行120次,每次执行1us,总共就是120us,也就是1ms。
51单片机主频35Mhz写一个延时1ms的延时函数
可以使用以下的延时函数:void DelayMs(unsigned int Ms)
{
unsigned int i;
for(i=0;i<Ms;i++)
{
DelayUs(1000);
}
}
阅读全文