в пиборе применял приривание
http://www.stripdetector.by.ru/dosimaters_radiometers.html P1DIR=0x00; // set pins P1.1...P1.5 for INPUT
P1IES=0xBF; // переход из 1 в 0 вызовет прерывание
P1SEL=0x00;
P1IFG=0xFF;
P1IE=0xFF;//3E; // interrupt P1 enable for INPUT P1
#pragma vector=PORT1_VECTOR
__interrupt void PORT1(void)
{
switch( P1IFG )
{
case 1: {KK=1;break;} // P1.0
case 2: {KK=2;break;} // P1.1 G
case 4: {KK=4;break;} // P1.2
case 8: {KK=8;break;} // P1.3 B
case 16: {KK=16;break;} // P1.4
case 32: {KK=32;break;} // P1.5 A
case 64: {KK=64;break;} // P1.6
case 128:{KK=128;break;} // P1.7
default: break;
}
P1IFG=0x00;
}