#include
#include
#define uchar unsigned char
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳级数码管码表0-9
sbit k1=P3^2;
sbit k2=P3^3;
uchar key;
uchar led=0xfe,num;
uchar flag;
void delay(uchar ms)
{
uchar i;
while(ms--)for(i=0;i<120;i++);
}
main()
{
if(k1==0)
{
key=1;
flag=0;
while(k1==0);
}
if(k2==0)
{
key=2;
dat=9;
while(k2==0);
}
if(key==1)
{
if(flag==0)
{
P1=_crol_(led,1);
num++;
delay(250);
if(num>=8){flag=~flag;led=0x7f;}
}
else
{
P1=_cror_(led,1);
num++;
delay(250);
if(num>=8){flag=~flag;led=0xfe;}
}
}
if(key==2)
{
P2=table[dat];
dat--;
if(dat>9)dat=9;
delay(250);
}
}
K1 EQU P1.0K2 EQU P1.1ORG 0000HLJMP MAINORG 0030HMAIN: MOV A,#0FEH CLR 00H CLR 01HLOOP: JB K1,LOOP1 SETB 00H CLR 01H SJMP LOOPLOOP1: JB K2,LOOP2 SETB 01H CLR 00HLOOP2: JB 01H,LOOP3 JB 00H,LOOP4 SJMP MAINLOOP3: MOV P0,A RR A LCALL DELAY SJMP LOOPLOOP4: MOV P0,A RL A LCALL DELAY SJMP LOOPDELAY: MOV R2,#200DLY: MOV R3,#250 DJNZ R3,$ DJNZ R2,DLY RET END