是你没有让它灭,所以它没有灭。你只开了没有进行关,单片机IO是不会自动给你关的,你可以这样,你按1时它开,按2时它关,那么你要把这句:“case 0x18:DataPort=dofly_DuanMa[2];break;数码管显示2”改为:“ case 0x18:DataPort=dofly_DuanMa[2]; P1 =0xFF; break;(我是假设你的LED是低电平点亮的)。
因为你按下2的时候,程序里并没有把1对应的LED关掉case 0x0c:DataPort=dofly_DuanMa[1];//数码管显示1 P1=0x05;break;//数码管控制p1口的led = 00000101 case 0x18:DataPort=dofly_DuanMa[2];P1=0x....;
//P1赋值位对应LED位,以下也是一样;break;数码管显示2
LED是不是这样写的 led=~led;
这样写会导致多次执行,有可能和当初一样,所以看不到效果。
你的led指的是什么?数码管可以控制,你就在数码管控制的地方加上控制led灯的程序就可以了!
你没有清了就会一直亮啊!通信是不是正常看一下!