#define delay_ 5800
#define dir_f *((volatile char*)0x30) // direction register address for port F
#define dir_k *((volatile char*)0x107) // direction register address for port K
#define output_f *((volatile char*)0x31) //output register address for port F
#define output_k *((volatile char*)0x108) // output register address for port K
void wait()
{
for(volatile long j = 0; j < delay_; j++);
}
int main()
{
dir_f = 0xff;
dir_k = 0xff;
char A[] = {0x18, 0x24, 0x42, 0xff, 0x81, 0x81, 0x81, 0x81};
while(1)
{
char row;
char col;
char k_bit = 0x01;
for(row = 0; row < 8; row ++)
{
output_f = A[row];
output_k = ~k_bit;
wait();
k_bit = (k_bit << 1);
}
}
}