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

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

关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如需一对一服务私聊我哦1. 设计思路: 首先,我们需要一个输入端口,用于接收用户的表决信号。这个输入可以通过按键来实现,按下按键时,输入1表示赞成,输入0表示反对。 然后,我们需要一个计数器来统计赞成的票数。每当接收到一个赞成的信号时,计数器加1。当赞成的票数达到4或以上时,LED灯亮或音响提示表决通过。 同时,我们需要一个倒计时器来记录表决的时间。在30秒内,用户可以进行表决。当时间到达30秒时,自动停止表决,并根据当前的票数进行结果的判断。
#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. 参考图: