c - 如何在 C 语言中为我的 8051、AT89C51CC03 板微 Controller 创建按钮软件复位?

标签 c microcontroller 8051

我在 Keil uVision 中使用 8051 处理器、AT89C51CC03 板和 C 编码。

我正在尝试创建一个循环来检查我的按钮是否被按下并将程序发送回主代码的开头。

按钮在任意引脚上,即 P0_0。如果该引脚变为 low = 0,我希望程序跳回到代码的开头。

到目前为止,我唯一想到的是:

if (P0_0 == 0) {
  /* Reset */
} else {
  /* Body of the rest of the program */
}

我认为这不会令人满意地完成我的过程,因为在运行我的代码主体之前我不会再次查看重置按钮,如果它遇到错误或故障,它可能不会返回到重置。

最佳答案

通常您会在 RST 引脚和地之间连接您的复位按钮。 RST 引脚应使用弱上拉电阻保持高电平,但当您按下按钮时,它会将此引脚接地并执行硬重置。

如果您无法重新连接按钮,您可以将该引脚引导至中断。然后在你的中断中,你可以触发处理器的软复位。这不需要等待当前函数完成。

正如 Phil 在上文中指出的,您很可能希望在顶层有一个 super 循环。自己调用 main 一点也不正常。

关于c - 如何在 C 语言中为我的 8051、AT89C51CC03 板微 Controller 创建按钮软件复位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19455226/

相关文章:

assembly - 微 Controller 8051 : How to get addresses of inputs to JB & CJNE instructions?

Python:编程 8051

assembly - 写一个延迟子程序?

embedded - atmega32的优点

将代码转换为 Neon 程序集

c - 接收一个字符并输出其 ASCII 十六进制值

CTRL-C 不会杀死程序 linux/C

c - MCU 上的 RTC - 函数指针和回调

c - 下面的格式说明符在做什么?

将结构从 C 转换为 Delphi