ATmega 2560 LED 控制示例:LED0 亮,LED1 灭

电路连接:

  • +V 连接 LED0, LED1 的正极以及开关 S1 的正极;
  • LED0, LED1 的负极分别连接到 ATmega 2560 的 PD2, PD1 脚位;
  • 开关 S1 的负极连接到 ATmega 2560 的 PD0 脚位。

代码示例:

int val = 0;
PORTD |= 0x06;
while (1) {
  PORTD &= ~(1 << val);
  if (PIND & 0x01) {
    val += 1;
    if (val > 2) {
      val = 2;
    }
  } else {
    val = 1;
  }
}

假设: DDRC 已经被初始化,开关 S1 是接通的。

执行结果:

LED0 亮,LED1 灭。

解释:

  • 代码中使用 PORTD 寄存器控制 LED 的亮灭状态。
  • PORTD |= 0x06 初始化 LED0 和 LED1 的输出状态,使其初始状态为灭。
  • val 变量用来控制 LED 的亮灭状态,取值为 0, 1, 2 分别对应 LED0 亮,LED1 亮,两者都灭。
  • PIND & 0x01 检查开关 S1 的状态,如果开关 S1 接通,则 val 加 1,否则 val 等于 1。
  • PORTD &= ~(1 << val) 根据 val 的值控制 LED 的亮灭状态。

总结:

该示例代码展示了如何使用 ATmega 2560 控制 LED 灯的亮灭状态,并根据开关的状态进行切换。

ATmega 2560 LED 控制示例:LED0 亮,LED1 灭

原文地址: https://www.cveoy.top/t/topic/ojUX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录