1个接键控制2位七段LED显示入0.0-9.9通过
时间: 2023-05-19 22:01:17 浏览: 72
使用 Arduino 开发板,可以通过以下代码实现:
int digitPins[] = {2, 3, 4, 5}; // 数码管的位选引脚
int segmentPins[] = {6, 7, 8, 9, 10, 11, 12}; // 数码管的段选引脚
int buttonPin = A0; // 接键的引脚
float value = 0.0; // 显示的数值
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(digitPins[i], OUTPUT);
}
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
pinMode(buttonPin, INPUT);
}
void loop() {
if (digitalRead(buttonPin) == HIGH) {
value += 0.1;
if (value > 9.9) {
value = 0.0;
}
}
int integerPart = (int)value;
int decimalPart = (int)((value - integerPart) * 10);
displayNumber(integerPart, decimalPart);
}
void displayNumber(int integerPart, int decimalPart) {
int digitCodes[] = {
B00111111, // 0
B00000110, // 1
B01011011, // 2
B01001111, // 3
B01100110, // 4
B01101101, // 5
B01111101, // 6
B00000111, // 7
B01111111, // 8
B01101111 // 9
};
int digitValues[] = {integerPart / 10, integerPart % 10, decimalPart};
for (int i = 0; i < 4; i++) {
digitalWrite(digitPins[i], LOW);
for (int j = 0; j < 7; j++) {
digitalWrite(segmentPins[j], bitRead(digitCodes[digitValues[i]], j));
}
delay(1);
digitalWrite(digitPins[i], HIGH);
}
}