|
发表于 2014-4-15 16:28:49
|
显示全部楼层
void interrupt( void )
{
if(test_bit( intcon, INTF))
{
clear_bit( intcon, INTF ); //clear INTF overflow flag
if(!test_bit( porta, RA0))
{
q = 1;
}
if(!test_bit( porta, RA1))
{
q = 2;
}
if(!test_bit( porta, RA2))
{
q = 3;
}
if(!test_bit( porta, RA3))
{
q = 4;
}
if(!test_bit( porta, RA4))
{
q = 5;
}
}
}
void main()
{
trisb = 0x01; //configure port B
portb = 0xff;
trisa = 0xff;
// enable interrupts
set_bit( intcon, INTE ); //enable INTE overflow bit
set_bit( intcon, GIE );
r = 1;
while( 1 ) //endless loop
{
switch(q)
{
case 1:set_bit( portb, RB3);break;
case 2:set_bit( portb, RB4);break;
case 3:set_bit( portb, RB5);break;
case 4:set_bit( portb, RB6);break;
case 5:set_bit( portb, RB7);break;
default:break;
}
}
}
以上自理解基础上改的,没经过验证;但理论上是没问题的
|
|