你的定时器中断程序有问题,我改动了一些,自己再找
/*TO中断服务子程序 */
void timer0(void) interrupt 1 using 2
{
TR0=0;
if(p1reg^P1)
{
if(_tt1==0)//不是if(_tt1=0)!!!!!!!!!
_tt1=1;
else
{
if(_tt1>20) /*防抖动*/
{
key=P1;
key|=0xF0;
key=~key;
switch(key)
{
case 1:
p20=!p20;
break;
case 2:
p21=!p21;
break;
case 4:
p22=!p22;
break;
case 8:
p23=!p23;
break;
default:
break;
}
}
_tt1=0;
}
p1reg=P1;
}
else
if(_tt1>0) _tt1++;
_tt2++;
sett0();
}
发表时间:2002年5月23日18:28:00