为什么51单片机中 这条语句不执行呢

#include<reg51.H>#defineucharunsignedchar#defineuintunsignedintsbitrr=P3^3;sbitgg=P3^... #include <reg51.H>
#define uchar unsigned char
#define uint unsigned int
sbit rr=P3^3;
sbit gg=P3^4;
sbit yy=P3^5;
uchar code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar a,i,n,m;
//void init();
void delay(uint);
void main()
{
//init();
while(1)
{
for(i=0;i<9;i++)
{
yy=0;
P2=table[i];
delay(2240);
}
yy=1;
rr=0;

for(m=0;m<9;m++)
{
P0=table[m];
P2=table[m] ;//这条语句在调试的时候怎么不执行呢????

delay(2240);
}
rr=1;
gg=0;

for(n=0;n<9;n++)
{
P0=table[n];
P2=table[n];];//这条语句也在调试的时候怎么就不执行呢????

delay(2240);

}
gg=1;
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
展开
 我来答
天上曲_one
2013-06-04 · TA获得超过639个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:216万
展开全部
我也试了这段代码, 问题跟楼主说的一样, 也是那两句不执行.
改过试过多次,也没有找到问题在哪儿, 但是仿真时P2口也在改变, 运行状态与程序相符
可能正如Ejack1979所说, 是编译器在优化, 但并不是把这句弄掉了, 应该是与上一句合并了, 不过这也仅仅是猜测.
不过楼主可以放心了, 调试时不执行但是它的值还在改变, 对程序功能没有影响, 调试时你可以再看一下.
意法半导体(中国)投资有限公司
2021-01-14 广告
可以写对它写程序,让它听从你的安排,你让它实现什么功能它就能实现,比如电子钟、电子琴、打印机、手机、电梯控制,智能家具如:空调、冰箱、洗衣机等,如果这些家电没有它,什么都不能工作。单片机内部很复杂,你研究的越深你就会越爱上它,它可以帮你实现... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
一剑出血
高粉答主

2013-06-04 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
不是不执行,而是可能被优化掉了,无法从源代码级别进行跟踪。
追问
那就是说那条语句不起作用了?????那要怎么防止被优化呢
追答
怎么可能不起作用!只不过被编译器换了一种表达方式,跟你的源代码不一定完全对应而已。
调试阶段可将优化级别降低甚至干脆关闭优化。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lano5
2013-06-05
知道答主
回答量:30
采纳率:0%
帮助的人:9.5万
展开全部
你p2口是做什么用的?自己看看。一个是用于为选扫描一个是用于段选编码,数组肯定不同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式