89C51单片机按键控制数码管静态显示0~9
程序员文章站
2022-06-08 21:30:05
...
89C51单片机按键控制数码管静态显示0~9
1.proteus仿真图
左边为共阴管,高电平点亮;右边为共阳数码管,低电平点亮
2.keli代码
#include <reg51.h>
sbit key1=P3^0;
sbit key2=P3^1;
int CC_num[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int CC_I=0,CA_I=0;
void delay_ms(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for(j=0;j<110;j++);
}
void key1_exam()
{
if(key1 == 0)
{
//按钮延时去抖动
delay_ms(20);
if(key1 == 0)
{
if(CC_I>=9)
{
CC_I=0;
}
else
{
CC_I++;
}
P1=CC_num[CC_I];
}
while(!key1);
}
}
void key2_exam()
{
if(key2 == 0)
{
//按钮延时去抖动
delay_ms(20);
if(key2 == 0)
{
if(CA_I>=9)
{
CA_I=0;
}
else
{
CA_I++;
}
P2=~CC_num[CA_I];
}
while(!key2);
}
}
int main()
{
P1=CC_num[CC_I];
P2=~CC_num[CA_I];
while(1)
{
key1_exam();
key2_exam();
}
}
上一篇: JVM的体系结构
下一篇: SpringMVC的初始化