【发布时间】:2019-11-28 05:53:10
【问题描述】:
请帮个忙,
我正在使用 MikroC 编译器为 8051 微控制器编写程序,我试图找到一种方法来执行并重复主程序 10 秒,然后停止 2 秒
下面的代码只是一个示例,我需要每 200 毫秒切换两个端口,重复 10 秒,然后停止 2 秒,然后重复此操作。
void main()
{
P2 = 0xAE;
while (1) {
P2 = ~P2;
Delay_ms(200);
}
}
谢谢
【问题讨论】:
-
Delay_ms()是MicroC库的函数吗?您是否考虑过使用计数器来测量 10 秒和 2 秒?顺便说一句,您的源代码不完整,无法编译。 -
感谢您的重播。示例中的代码是正确的并且经过测试。 MikroC 有很多奇怪的命令
-
@Elia:您不能使用延迟来执行此操作,因为您不知道其余代码需要多长时间才能执行。您将需要一种测量时间或时钟滴答声的方法。最简单的方法可能是创建一个(比如说)1 ms 的计时器,它会自动增加一个变量,然后在这个变量大于 10000 时采取行动。
-
@Groo 取决于所需的 200 ms 精度。在显示的代码中,其他指令和循环的开销比延迟低很多,因此可以忽略不计。
-
你用的是哪个 8051 mcu?
标签: embedded microcontroller 8051 mikroc