循环程序设计。软件延时子程序与指令执行时间有很大的关系,在使用12MHz晶振时,一个机器周期为1µs。如果软件延时10ms,请利用循环程序实现该延时。
时间: 2024-03-26 12:38:21 浏览: 88
不同晶振的1ms延时程序
可以利用循环计数的方式来实现延时,具体实现如下:
```
void delay_10ms() {
unsigned int i, j;
for (i = 0; i < 10; i++) {
for (j = 0; j < 12000; j++) {
// 空循环,耗时1个机器周期
}
}
}
```
在上述代码中,外层循环执行10次,内层循环执行12000次,总共执行了10 * 12000 = 120000次循环,每次循环的耗时为1个机器周期,因此总共的延时时间为120000 * 1µs = 120ms,符合要求。如果要实现其他时间的延时,只需要根据需要调整内层循环的次数即可。注意,在实际编程中,要根据具体的处理器性能和晶振频率进行调整。
阅读全文