上面是我用于C8051F060芯片编的AD转换主程序。从程序一看主程序执行到后面的while循环体之后会一直在此保持循环,我用Keil uVision4执行单步调试的确如此,程序最后一直在while循环体保持循环,AD转换只执行一次(通过DciDisplay(temp_long);显示到数码管的数据也看得出来,通过Keil uVision4的value观察temp_long的值也可以看得到不再有变化,单步调试的光标也一直在while循环体移动。)
然而奇怪的是当地时间把程序灌到板上后自动执行AD转换的时候发现AD转换竟然在不断地进行(当我调节电位器改变模拟输入电压的时候,数码管上显示的值也跟着相应地改变,按理说如果while循环体前面的程序只执行一次的话数码管显示的数据是不会变的,显示程序也不会连续执行的。)这个也就是令我百思不得其解的地方,当时怀疑是不是因为中断的原因令程序跳出了while循环体,可是我在F060PortConfig()设置程序中把IE置0x00后还是一样的现象。
请高手们帮忙分析一下到底是什么原因引起的,我为这个问题思考了一周了,无解!先谢谢帮忙!!
附件是本人调试的完整程序,恳各位高手帮忙看一下,希望能够解决问题!