51单片机用独立式按键,通过数码管显示对应的键值1~8代码
时间: 2024-06-16 22:04:19 浏览: 156
51单片机使用8个数码管,在8个数码管上分别显示“12345678”这八个数字。
5星 · 资源好评率100%
51单片机是一种常用的微控制器,它具有广泛的应用领域。独立式按键是一种常见的外部输入设备,通过按下不同的按键可以实现不同的功能。下面是通过数码管显示对应的键值1~8的代码:
```c
#include <reg51.h>
sbit key1 = P1^0; // 定义按键1引脚
sbit key2 = P1^1; // 定义按键2引脚
sbit key3 = P1^2; // 定义按键3引脚
sbit key4 = P1^3; // 定义按键4引脚
sbit key5 = P1^4; // 定义按键5引脚
sbit key6 = P1^5; // 定义按键6引脚
sbit key7 = P1^6; // 定义按键7引脚
sbit key8 = P1^7; // 定义按键8引脚
void delay(unsigned int t) {
while(t--);
}
void main() {
unsigned char keyValue = 0; // 存储按键值
while(1) {
if (key1 == 0) { // 检测按键1是否按下
delay(1000); // 延时去抖动
if (key1 == 0) { // 再次检测按键1是否按下
keyValue = 1; // 设置按键值为1
}
} else if (key2 == 0) { // 检测按键2是否按下
delay(1000);
if (key2 == 0) {
keyValue = 2;
}
} else if (key3 == 0) { // 检测按键3是否按下
delay(1000);
if (key3 == 0) {
keyValue = 3;
}
} else if (key4 == 0) { // 检测按键4是否按下
delay(1000);
if (key4 == 0) {
keyValue = 4;
}
} else if (key5 == 0) { // 检测按键5是否按下
delay(1000);
if (key5 == 0) {
keyValue = 5;
}
} else if (key6 == 0) { // 检测按键6是否按下
delay(1000);
if (key6 == 0) {
keyValue = 6;
}
} else if (key7 == 0) { // 检测按键7是否按下
delay(1000);
if (key7 == 0) {
keyValue = 7;
}
} else if (key8 == 0) { // 检测按键8是否按下
delay(1000);
if (key8 == 0) {
keyValue = 8;
}
}
P2 = keyValue; // 将按键值显示在数码管上
}
}
```
以上是通过按下不同的独立式按键,将对应的键值1~8显示在数码管上的代码。
阅读全文