用c写一个c51用按键控制数码管加减的程序
时间: 2023-10-04 14:09:33 浏览: 155
按键控制数码管加减程序
好的,我可以给您提供一个简单的C语言程序,用于控制C51单片机通过按键控制数码管加减。下面是程序:
```c
#include <reg51.h>
sbit KEY_ADD = P1^0; // 定义加号按键
sbit KEY_SUB = P1^1; // 定义减号按键
sbit LED = P2^0; // 定义数码管控制引脚
unsigned char count = 0; // 数码管计数器
void delay(unsigned int i) // 延时函数
{
while(i--);
}
void display(unsigned char num) // 数码管显示函数
{
switch(num)
{
case 0: LED = 0xc0; break;
case 1: LED = 0xf9; break;
case 2: LED = 0xa4; break;
case 3: LED = 0xb0; break;
case 4: LED = 0x99; break;
case 5: LED = 0x92; break;
case 6: LED = 0x82; break;
case 7: LED = 0xf8; break;
case 8: LED = 0x80; break;
case 9: LED = 0x90; break;
default: LED = 0xff; break;
}
}
void main()
{
while(1)
{
if(KEY_ADD == 0) // 检测加号按键是否按下
{
delay(1000); // 延时去抖
if(KEY_ADD == 0) // 再次检测加号按键是否按下
{
count++; // 计数器加一
if(count > 9) count = 0; // 如果计数器超过9则归零
}
}
if(KEY_SUB == 0) // 检测减号按键是否按下
{
delay(1000); // 延时去抖
if(KEY_SUB == 0) // 再次检测减号按键是否按下
{
count--; // 计数器减一
if(count < 0) count = 9; // 如果计数器小于零则等于9
}
}
display(count); // 显示计数器的值
}
}
```
程序实现的功能是,通过按下加号和减号按钮来控制数码管上的数字增加或减少。程序中使用了一个计数器变量 `count` 来存储当前数码管上显示的数字,每次按下加号按钮计数器加一,每次按下减号按钮计数器减一,然后根据计数器的值来显示相应的数字。
注意,在程序中使用了延时函数,这是为了去除按键抖动产生的误触发。在实际应用中,可以根据具体情况调整延时时间。
阅读全文