ZYLCSDN2022 2023-09-14 14:46 采纳率: 0%
浏览 7

三个IO口控制两个灯一个按键

三个IO口控制一个按键以及两个LED灯;
按键按下一次后其中一个灯常亮,再次按下后另一个灯做闪烁提示

  • 写回答

2条回答 默认 最新

  • 嘿哈小将 2023-09-14 15:01
    关注

    以下是一个使用C语言编写的程序,用于控制一个按键和两个LED灯。当按键被按下一次时,其中一个LED灯会常亮;当按键再次被按下时,另一个LED灯会闪烁。

    #include <stdio.h>
    #include <stdlib.h>
    
    // 定义IO口
    #define IO_KEY 0
    #define IO_LED1 1
    #define IO_LED2 2
    
    // 延时函数
    void delay(int ms) {
        for (int i = 0; i < ms; i++) {
            for (int j = 0; j < 120; j++) {
                // 这里空循环用于延时
            }
        }
    }
    
    int main() {
        int key_state = 0; // 按键状态,0表示未按下,1表示按下
        int led1_state = 0, led2_state = 0; // LED状态,0表示熄灭,1表示亮起
    
        while (1) {
            // 检查按键状态
            if (getchar() == IO_KEY) {
                key_state = 1; // 按键按下
            } else {
                key_state = 0; // 按键未按下
            }
    
            // 根据按键状态控制LED灯
            if (key_state == 1 && led1_state == 0) {
                printf("\033[1;1HLED1 ON"); // 打开LED1
                led1_state = 1;
            } else if (key_state == 1 && led1_state == 1) {
                printf("\033[1;1HLED2 BLINK"); // LED2闪烁
                led2_state = 0;
            } else if (key_state == 0 && led2_state == 0) {
                printf("\033[1;1HLED1 OFF"); // LED1熄灭
                led1_state = 0;
            } else if (key_state == 0 && led2_state == 1) {
                printf("\033[1;1HLED2 OFF"); // LED2熄灭
                led2_state = 0;
            }
        }
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月14日

悬赏问题

  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟