请设计一个计数显示器,通过两位的LED和按键进行计数,每按一按键,可以计数一次,最终能够实现0到99的计数功能,使用C语言
时间: 2024-02-26 12:59:10 浏览: 25
好的,我来为你设计一个计数显示器。这个计数显示器可以通过两位的LED和按键进行计数,每按一按键,可以计数一次,最终能够实现0到99的计数功能。以下是代码实现:
```
#include <reg51.h>
#define LED P0
#define KEY P1
unsigned char code num[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; // 数码管译码表
unsigned char cnt = 0; // 计数器
void delay(unsigned int t) // 延时函数
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++);
}
void display(unsigned char n) // 数码管显示函数
{
LED = num[n/10];
KEY = 0xFE; // 打开第一位按键
delay(5); // 延时
KEY = 0xFF; // 关闭所有按键
LED = num[n%10];
KEY = 0xFD; // 打开第二位按键
delay(5); // 延时
KEY = 0xFF; // 关闭所有按键
}
void main()
{
KEY = 0xFF; // 初始化按键
while(1)
{
if(KEY != 0xFF) // 如果有按键按下
{
delay(10); // 延时去抖动
if(KEY != 0xFF) // 如果按键还在按下状态
{
cnt++; // 计数器加1
if(cnt > 99) // 如果计数器超过99,归零
{
cnt = 0;
}
display(cnt); // 显示计数器的值
}
}
}
}
```
这个计数显示器的原理是,通过两个按键分别控制数码管的两位显示。每按一次按键,计数器加1,然后将计数器的值通过数码管显示出来。如果计数器超过99,就将计数器归零。