2301_78770717 2024-02-24 16:32 采纳率: 0%
浏览 34
已结题

数字逻辑电路七人表决器

求帮忙把这个设计功能用 Eninetime Dream Logic2019完善出来。
数字电路与逻辑设计实践中,任务:七人表决器的设计
基本设计要求:使用一位交互式数字信号作为表决按键.输入0表示反对,输入1表示赞成,设计一个七人表决器,并使用数码管将表决中赞成的票数显示出来,赞成票数达到4或4以上时,有LED灯亮或音响表示表决通过。表决倒计时为30秒。
附带参考别的图,不过不全不完整

img

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-02-24 17:49
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如需一对一服务私聊我哦
    1. 设计思路: 首先,我们需要一个输入端口,用于接收用户的表决信号。这个输入可以通过按键来实现,按下按键时,输入1表示赞成,输入0表示反对。 然后,我们需要一个计数器来统计赞成的票数。每当接收到一个赞成的信号时,计数器加1。当赞成的票数达到4或以上时,LED灯亮或音响提示表决通过。 同时,我们需要一个倒计时器来记录表决的时间。在30秒内,用户可以进行表决。当时间到达30秒时,自动停止表决,并根据当前的票数进行结果的判断。
    1. 设计实现: 以下为一个简化版的七人表决器的实现代码:
    #include <SevenSegment.h>
    // 定义引脚
    #define VOTE_PIN  2    // 表决按键输入
    #define LED_PIN   3    // LED灯输出
    #define BUZZ_PIN  4    // 蜂鸣器输出
    #define DISP_PIN1 5    // 数码管显示1
    #define DISP_PIN2 6    // 数码管显示2
    #define DISP_PIN3 7    // 数码管显示3
    #define DISP_PIN4 8    // 数码管显示4
    // 定义变量
    int voteCount = 0;    // 票数计数器
    int voteTime = 30;    // 表决倒计时
    int voteResult = 0;   // 表决结果
    SevenSegment display(DISP_PIN1, DISP_PIN2, DISP_PIN3, DISP_PIN4);  // 初始化数码管显示
    void setup() {
      pinMode(VOTE_PIN, INPUT);
      pinMode(LED_PIN, OUTPUT);
      pinMode(BUZZ_PIN, OUTPUT);
    }
    void loop() {
      // 判断是否在表决时间内
      if (voteTime > 0) {
        // 检测是否有按键输入
        if (digitalRead(VOTE_PIN) == HIGH) {
          voteCount++;    // 票数计数器加1
          // 判断是否达到4票以上
          if (voteCount >= 4) {
            voteResult = 1;    // 表决通过
            digitalWrite(LED_PIN, HIGH);   // LED灯亮
            tone(BUZZ_PIN, 1000);   // 发出蜂鸣声
          }
        }
        // 显示倒计时剩余时间
        display.clear();
        display.print(voteTime);
        display.refresh();
        // 延时1秒,倒计时减1
        delay(1000);
        voteTime--;
      } else {
        // 表决时间到,停止倒计时
        display.clear();
        display.print(voteResult);
        display.refresh();
      }
    }
    

    在这个代码中,我们利用了一个SevenSegment库来实现数码管的显示。在setup函数中,我们初始化了表决器所需要的引脚,设置VOTE_PIN为输入模式,LED_PIN和BUZZ_PIN为输出模式,并在loop函数中进行了相关的逻辑判断。 在loop函数中,首先判断是否在表决时间内,然后检测是否有按键输入,并根据输入的信号进行票数计数。当达到4票以上时,标记为表决通过,并亮起LED灯并发出蜂鸣声。反之,当倒计时时间到达时,显示表决结果并停止倒计时。 3. 参考图: 七人表决器参考图

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月11日
  • 创建了问题 2月24日