用KEIL编写STC89C52RC编写的C语言程序。在程序编写完成后,经过编译和创建目标函数后,显示没有错误,有两个警告,但是在调试过程中出现了以下问题:还望高手能指出
在调试过程中,用单步执行,其中263、267、272、277、282语句没有执行,而是直接跳过,这是怎么回事,该怎么解决?我在度娘上搜索说的是代码优化级别太高。KEIL默认是8级,我依次修改优先级,依然是上面的问题。我这问题出在什么地方 该怎么修改? 回答到点子上的 可以追加分
我在网上下载了注册机的 使用时间到2016年的。 我编写了再100行以内的程序 完全能够执行没有任何问题。但是编译后调试上面的程序就出现问题
S是通过ADC0832模数转换得到的数值 S会随着模拟量的变化而变化的。
追答在执行你给出的这些语句时,s 是一个确定的数值,是不变的。
s 的数值是多少?
你可以用:P1 = s;,当场看看其数值,究竟是多少。
s=0x70或s=0x7b 还有几个数值没有测试,我觉得不该是这个s值的问题,因为在用KEIL调试的过程中s的值一直是0x00;在调试中能够执行if(s>=0x62),也能执行sw1=0;然后执行if(s=0x93);sw2=0;然后执行if(s<=0x92),然后又跳过sw2=1; 依次类推。
追答因为在用KEIL调试的过程中s的值一直是0x00;
----
00?
00是怎么来的,你又是怎么知道它是00?
你把这一句:
s = AD_result; //模数转换得到的数值,随着模拟量变化
改成:
s = 0x70; //随便改成一个明确且固定的值
其它不变。
然后,再看以下的各个条件语句,应该执行的分支,是否执行了。