51单片机数码管按键加1
时间: 2023-10-22 20:03:34 浏览: 56
以下是使用51单片机实现数码管按键加1的代码:
```
#include <reg52.h>
sbit key = P3^2; // 定义按键引脚
sbit dula = P2^6; // 定义数码管段选引脚
sbit wela = P2^7; // 定义数码管位选引脚
unsigned char code table[] = { // 数码管显示0-9的编码表
0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90
};
void delay(unsigned int i) { // 延时函数
while(i--);
}
void main() {
unsigned char num = 0; // 定义计数变量初始化为0
wela = 1; // 选中第一位数码管
P0 = table[0]; // 显示0
wela = 0;
dula = 1; // 选中段选
dula = 0;
while(1) { // 循环检测按键
if(key == 0) { // 按键被按下
delay(1000); // 延时去抖动
if(key == 0) { // 确认按键按下
num++; // 计数加1
if(num > 9) num = 0; // 超过9则从0开始
wela = 1; // 选中第一位数码管
P0 = table[num]; // 显示计数值
wela = 0;
dula = 1; // 选中段选
dula = 0;
}
}
}
}
```