void lcd_buttons() // read LCD switch matrix
{ char i;
SwData = 0; // clear 'live' sw data var'
data = 0; //
for(i=0; i<6; i++) // clock out six '0' bits
{ clock = 1; clock = 0; // to clear the '174
}
data = 1; //
clock = 1; clock = 0; // col 0, '00001' (Q5..Q1)
data = 0; //
if(swx == 1) //
SwData |= 0b00000001; //
clock = 1; clock = 0; // col 1, '00010'
if(swx == 1) //
SwData |= 0b00000010; //
clock = 1; clock = 0; // col 2, '00100'
if(swx == 1) //
SwData |= 0b00000100; //
clock = 1; clock = 0; // col 3, '01000'
if(swx == 1) //
SwData |= 0b00001000; //
clock = 1; clock = 0; // col 4, '10000'
if(swx == 1) //
SwData |= 0b00010000; //
}