用c写一个c51用按键控制数码管的加减的程序
时间: 2023-05-12 09:05:56 浏览: 131
以下是一个简单的C语言程序,用于控制C51单片机上的数码管进行加减操作:
```
#include <reg51.h>
sbit KEY_ADD = P1^0; // 定义加法按键
sbit KEY_SUB = P1^1; // 定义减法按键
void delay(unsigned int t) // 延时函数
{
unsigned int i, j;
for(i = 0; i < t; i++)
for(j = 0; j < 125; j++);
}
void main()
{
unsigned char num = 0; // 数码管显示的数字
unsigned char key_add = 0; // 加法按键状态
unsigned char key_sub = 0; // 减法按键状态
while(1)
{
// 检测加法按键
if(KEY_ADD == 0)
{
delay(10); // 延时去抖动
if(KEY_ADD == 0)
{
key_add = 1; // 按键按下
num++; // 数字加1
if(num > 9) num = 0; // 循环显示0~9
}
}
else
{
key_add = 0; // 按键松开
}
// 检测减法按键
if(KEY_SUB == 0)
{
delay(10); // 延时去抖动
if(KEY_SUB == 0)
{
key_sub = 1; // 按键按下
num--; // 数字减1
if(num > 9) num = 9; // 循环显示0~9
}
}
else
{
key_sub = 0; // 按键松开
}
// 数码管显示数字
P2 = num;
}
}
```
这个程序使用了P1口的第0、1位作为加减法按键的输入,使用P2口作为数码管的输出。程序中使用了一个简单的延时函数来去抖动按键。
阅读全文