51单片机数码管按键显示0-15
时间: 2024-03-21 08:44:39 浏览: 70
51单片机使用8个数码管中的一个数码管,循环显示数字0~9,到9回0,数字变化的时间间隔为1s。
5星 · 资源好评率100%
首先,我们需要连接数码管和按键到51单片机上。数码管共阴极连接到P0口,按键连接到P3口。然后,我们编写程序,在程序中实现数码管和按键的控制。
以下是一个简单的程序示例,实现数码管按键显示0-15:
```c
#include<reg52.h>
#define uint unsigned int
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit KEY1=P3^4;
sbit KEY2=P3^5;
sbit KEY3=P3^6;
sbit KEY4=P3^7;
uint code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
};
void delay(uint i){
while(i--);
}
void display(uint num){
LSA=0; LSB=0; LSC=0;
P0=table[num%10];
delay(1000);
LSA=1; LSB=0; LSC=0;
P0=table[num/10];
delay(1000);
}
void main(){
uint i=0;
while(1){
if(KEY1==0){
while(!KEY1);
i++;
if(i>15) i=0;
}
if(KEY2==0){
while(!KEY2);
i--;
if(i<0) i=15;
}
if(KEY3==0){
while(!KEY3);
i=0;
}
display(i);
}
}
```
程序中,我们定义了一个数码管显示表(共阴极),然后定义了一个延时函数和一个数码管显示函数。在主函数中,我们不断检测按键,并根据按键的不同操作显示不同的数字。
阅读全文