#include <reg52.h>
sbit K1 = P1^0;
sbit K2 = P1^1;
sbit K3 = P1^2;
sbit K4 = P1^3;
sbit K5 = P3^7;
unsigned char pattern = 0x01;
unsigned char i=0;
int b;
unsigned char q=0;
int m;
unsigned char display_vbl[6] = {0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8e};
unsigned char display_vcl[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char direction = 0;
unsigned char h = 0;
void delay(int ms)
{
int o,j;
for(o=1;o<=ms;o++)
for(j=0;j<100;j++);
}
void main() {
while(1) {
if (K1 == 0) {
delay(20);
i++;
if (i > 9) {
i = 0;
}
P0=display_vcl[i] ;
while (K1 == 0);
}
if (K2 == 0) {
delay(20);
q++;
if (q > 5) {
q = 0;
}
P0=display_vbl[q];
while (K2 == 0);
}
if (K3 == 0) {
h=!h;
while(K3==0);
} if(h==0)
{
K5=0;
}
else {
K5 = 1;
}
if (K4 == 0) {
direction = !direction;
while (K4 == 0);
}
if (direction == 0) {
for ( b = 0; b < 8; b++) {
P2 = ~(pattern << b);
delay(100);
}
} else {
for ( m = 7; m >= 0; m--) {
P2 = ~(pattern << m);
delay(100);
}
}
}
}