c8051f410单片机,keil c51 c语言编写了一个简单的代码,调试的时候发现程序执行的顺序不是按照编写的顺序走了,看了一下编译后的汇编,确实不是原来的顺序,程序跳转的入口根本就不对。
while(1)
{
ch=0x10;
while(ch<=0x14)
{
ADC0MX=ch; //通道选择p2.0
switch (ch)
{
case 0x10: //浊度
SBUF0='Z';
while(!TI0);
TI0=0;
SBUF0='D';
while(!TI0);
TI0=0;
readadc();
break;
case 0x11: //电导率
SBUF0='D';
while(!TI0);
TI0=0;
SBUF0='D';
while(!TI0);
TI0=0;
readadc();
break;
case 0x12: //温度
SBUF0='W';
while(!TI0);
TI0=0;
SBUF0='D';
while(!TI0);
TI0=0;
readadc();
break;
case 0x13: //PH值
SBUF0='P';
while(!TI0);
TI0=0;
SBUF0='H';
while(!TI0);
TI0=0;
readadc();
break;
case 0x14: //溶解氧
SBUF0='R';
while(!TI0);
TI0=0;
SBUF0='J';
while(!TI0);
TI0=0; //每次执行完分支语句都跳转到这里!
readadc();
break;
default:
_nop_();
break;
}
ch++;
}
}
} |