单片机按键控制数码管显示00-99
时间: 2023-09-04 13:13:07 浏览: 71
可以使用以下的代码实现单片机按键控制数码管的显示00-99:
```c
#include <reg52.h> // 引入头文件
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 // 数码管显示0-9的编码表
};
void delay(unsigned int i) // 延时函数
{
while(i--);
}
void main()
{
unsigned int i=0, j=0; // 定义两个变量用于存储数值
P0=0;
LSA=0;LSB=0;LSC=0; // 数码管显示0
while(1)
{
if(P3!=0xff) // 当按键被按下时
{
delay(1000); // 延时,避免按键抖动
if(P3!=0xff) // 再次检测按键是否被按下
{
if(P3==0xfe) // 如果按下K1键
{
i++; // 数值加1
if(i>99) i=0; // 如果数值大于99,重新从0开始
}
if(P3==0xfd) // 如果按下K2键
{
j++; // 数值加1
if(j>99) j=0; // 如果数值大于99,重新从0开始
}
}
}
P0=table[i/10]; // 将十位数码管的编码输出到P0口
LSA=1;delay(5);LSA=0; // 显示十位数码管
P0=table[i%10]; // 将个位数码管的编码输出到P0口
LSB=1;delay(5);LSB=0; // 显示个位数码管
P0=table[j/10]; // 将十位数码管的编码输出到P0口
LSC=1;delay(5);LSC=0; // 显示十位数码管
P0=table[j%10]; // 将个位数码管的编码输出到P0口
LSA=1;delay(5);LSA=0; // 显示个位数码管
}
}
```
这段代码中,P2.2、P2.3 和 P2.4 分别连接到数码管的 LSA、LSB 和 LSC 引脚,P0 口连接到数码管的 a~g 引脚。通过检测按键是否被按下,来改变 i 和 j 两个变量的数值,从而控制数码管的显示。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)