设计抢答器:抢答器有I0.0,I0.1,I0.2三个输入,对应输出分别是Q0.0,Q0.1,Q0.2,复位输入是I0.4。要求:三人任意抢答,谁先按动瞬时按钮,谁的指示灯先亮,且只能亮一盏灯。进入下一个问题时,主持人按复位按钮,抢答器重新开始。
时间: 2023-05-19 12:06:51 浏览: 111
以下是一个可能的抢答器设计:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
#define NUM_INPUTS 5
#define NUM_OUTPUTS 3
int main() {
// Initialize inputs and outputs
bool inputs[NUM_INPUTS] = {false};
bool outputs[NUM_OUTPUTS] = {false};
// Initialize random number generator
srand(time(NULL));
// Main loop
while (true) {
// Check for reset input
if (inputs[4]) {
// Reset outputs
for (int i = 0; i < NUM_OUTPUTS; i++) {
outputs[i] = false;
}
} else {
// Check for button inputs
for (int i = 0; i < NUM_OUTPUTS; i++) {
if (inputs[i]) {
// Check if output is already set
if (!outputs[i]) {
// Set output and turn off other outputs
for (int j = 0; j < NUM_OUTPUTS; j++) {
outputs[j] = (i == j);
}
}
// Exit loop
break;
}
}
}
// Generate random inputs for testing
for (int i = 0; i < NUM_INPUTS; i++) {
inputs[i] = (rand() % 2 == 0);
}
// Print inputs and outputs for testing
printf("Inputs: ");
for (int i = 0; i < NUM_INPUTS; i++) {
printf("%d ", inputs[i]);
}
printf("\nOutputs: ");
for (int i = 0; i < NUM_OUTPUTS; i++) {
printf("%d ", outputs[i]);
}
printf("\n");
// Wait for next cycle
usleep(100000);
}
return 0;
}
```
这个抢答器有 5 个输入和 3 个输出,其中第 4 个输入是复位输入。每个输入都是一个布尔值,表示相应的按钮是否按下。每个输出也是一个布尔值,表示相应的指示灯是否亮。在每个循环中,程序会随机生成输入,并根据输入更新输出。如果有多个按钮同时按下,只有第一个按下的按钮会触发相应的指示灯。如果复位按钮按下,所有指示灯都会熄灭。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)