数码管显示按键次数程序
时间: 2023-06-27 08:04:52 浏览: 429
假设你使用的是单片机,以下是一个简单的数码管显示按键次数的程序:
```
#include <reg52.h> // 8051 单片机的头文件
sbit key = P1^0; // 按键连接在 P1.0 上
sbit led = P2^0; // LED 连接在 P2.0 上
sbit dula = P2^6; // 数码管段选1连接在 P2.6 上
sbit wela = P2^7; // 数码管位选连接在 P2.7 上
unsigned int count = 0; // 计数器初始值为0
void delay(unsigned int i) // 延时函数
{
while(i--);
}
void display(unsigned int num) // 显示函数
{
unsigned char duanma[] = { // 数码管段码表
0x3f, // 0
0x06, // 1
0x5b, // 2
0x4f, // 3
0x66, // 4
0x6d, // 5
0x7d, // 6
0x07, // 7
0x7f, // 8
0x6f, // 9
};
P0 = duanma[num % 10]; // 显示个位数码
dula = 0; // 打开个位段选
delay(100); // 延时一段时间
dula = 1; // 关闭个位段选
P0 = duanma[num / 10 % 10]; // 显示十位数码
dula = 0; // 打开十位段选
delay(100); // 延时一段时间
dula = 1; // 关闭十位段选
P0 = duanma[num / 100 % 10]; // 显示百位数码
dula = 0; // 打开百位段选
delay(100); // 延时一段时间
dula = 1; // 关闭百位段选
}
void main()
{
while(1)
{
if(key == 0) // 如果按键被按下
{
while(key == 0); // 等待按键松开
count++; // 计数器加1
}
display(count); // 显示计数器的值
}
}
```
该程序使用一个计数器变量 `count` 来保存按键次数,每次按键时将计数器加1,然后调用 `display` 函数在数码管上显示计数器的值。在 `display` 函数中,我们使用了一个数码管段码表来将数字转换为对应的数码管段选信号,同时使用了一个延时函数来控制数码管的显示速度。