/**************按键开关应用之数码管变数****************/
//按s1键从0到9,若s2从9到0;一开始数码管默认显示0
#includereg52.h
#define uchar unsigned char
sbit S1=P1^0;
sbit S2=P1^1;
sbitGROUND=P1^4;
ucharcode table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9数字
voiddebouncer();
main()
{
int i;
while(1)
{
GROUND=0x00;
P2=0xff;//选中一个数码管
P0=0x3f;//默认亮0
if (S1==0)
{
debouncer() ;
P0=table;
if(i==10)
P0=0x3f;
}
else if(S2==0)
{i=9;
debouncer() ;
P0=table[i--];
if(i==-1)
P0= 0x6f;
}
}
}
void debouncer()
//防抖函数,延迟20ms
{
int i;
for(i=0;i200;i);
}
|