数码管-按键加1且满10进1,初始显示00000000
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit k1=P3^1;
u8 code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
u8 code wei[8]={0xe3,0xe7,0xeb,0xef,0xf3,0xf7,0xfb,0xff};
u16 x=0x3f;
u16 i=0;
u16 n=1;
u8 duan2[8]={0,0,0,0,0,0,0,0};
u16 y=0,q=0;
void delay(u16 j)
{
u8 m=120;
while(j--)
{while(m--);}
}
void key()
{
while(k1==0)
{
delay(1);
if(k1==0)
{
while(k1==0);
duan2[0]=n;
duan2[1]=y;
n++;
if(n==10)
{ q++;
y=q;}
if(q==10)
q=0;
if(n==10)
n=0;
}
}
}
void main()
{
while(1)
{
for(i=0;i<8;i++)
{
P2=wei[i];
P0=duan[duan2[i]];
delay(2);
key();
}
}
}