如何用51单片机按键加减操作数码管显示0-99
时间: 2023-06-14 12:08:14 浏览: 838
53-2按键加减操作数码管显示(51单片机C语言实例Proteus仿真和代码)
以下是基于Keil C的51单片机的按键加减操作数码管显示0-99的代码示例:
```c
#include <reg51.h>
#define DIGIT P0 // 数码管端口定义
#define KEY P1 // 按键端口定义
unsigned char code digitCode[] = { // 数码管显示0-9的编码
0xc0, 0xf9, 0xa4, 0xb0, 0x99,
0x92, 0x82, 0xf8, 0x80, 0x90
};
unsigned char count = 0; // 数值计数器
void delay(unsigned int t) { // 延时函数
unsigned int i, j;
for (i = 0; i < t; i++)
for (j = 0; j < 125; j++);
}
void display(unsigned char num) { // 数码管显示函数
DIGIT = digitCode[num / 10]; // 显示十位
delay(2); // 延时一段时间
DIGIT = digitCode[num % 10]; // 显示个位
delay(2); // 延时一段时间
}
void main() {
KEY = 0xff; // 初始化按键端口为高电平
while (1) {
if (KEY != 0xff) { // 如果有按键按下
delay(10); // 延时去抖
if (KEY != 0xff) { // 确认按键按下
if (KEY == 0xfe) { // 按下加键
count++;
if (count > 99) count = 0; // 数值范围0-99
} else if (KEY == 0xfd) { // 按下减键
if (count > 0) count--;
else count = 99; // 数值范围0-99
}
display(count); // 显示数值
}
while (KEY != 0xff); // 等待按键释放
}
}
}
```
该代码使用了一个计数器变量count来保存数值,并且在按下加键或减键时对该变量进行加减操作,同时限制了数值范围在0-99之间。在主循环中通过调用display函数来实现数码管的显示。其中delay函数用于实现适当的延时以防止显示闪烁。
阅读全文