void delaysec(volatile long);
void setup() {
volatile char arr[4][4] = {{0x06, 0x5b, 0x4f, 0x77},
{0x66, 0x6d, 0x7d, 0x7c},
{0x07, 0x7f, 0x6f, 0x39},
{0x80, 0x3f, 0x76, 0x5e}};
volatile char *dir_f,*dir_b,*dir_a,*dir_d,*dir_k,*in_f,*out_b,*out_a,*out_d,*out_k;
volatile char i,row,col;
dir_f=(char*)0x30; dir_b=(char*)0x24; dir_a=(char*)0x21;
dir_d=(char*)0x2a; dir_k=(char*)0x107;
*dir_f=0x00;*dir_b=0xff;*dir_a=0xff;*dir_d=0xff;*dir_k=0xff;
in_f=(char*)0x2f; out_b=(char*)0x25; out_a=(char*)0x22;
out_d=(char*)0x2b; out_k=(char*)0x108;
while(1){
for(i=0;i<4;i++){
*out_b = 1<<i;
if(*in_f != 0){
*out_d=*out_b;
*out_a=*in_f;
row = (*out_b == 0x01) ? 0 : (*out_b == 0x02) ? 1 : (*out_b == 0x04) ? 2 : 3;
col = (*in_f == 0x01) ? 0 : (*in_f == 0x02) ? 1 : (*in_f == 0x04) ? 2 : 3;
*out_k=arr[row][col];
delaysec(5);
*out_k=0x00; *out_a=0x00; *out_d=0x00;
}
}
}
}
void delaysec(volatile long ss) {
volatile long ii, jj;
for (ii = 0; ii < ss; ii++) {
for (jj= 0; jj < 500000; jj++) {
}
}
}
void loop() {
}