程序及仿真电路存在其他健壮性问题,这里不予表述及建议。
主要问题:
while(1)循环有问题。
原因分析:
你的main函数进来a=P1,只是给a附一个初值,然后一直循环while(1)里面。
while(1)里面a的值一直是初值(0xff),switch函数根本侦测不到按键值。
短期建议:
while(1)内添加获取键值代码为 a=P1。
while(1)
{
a=P1; /*添加此行代码*/
switch(a)
{
case 0xfe:P0=0xf9;delay();break;
case 0xfd:P0=0xa4;delay();break;
case 0xfb:P0=0xb0;delay();break;
case 0xf8:P0=0x99;delay();break;
case 0xef:P0=0x92;delay();break;
case 0xdf:P0=0x82;delay();break;
case 0xbf:P0=0xf8;delay();break;
case 0x8f:P0=0x80;delay();break;
}
}
a=p1放在循环里