我把你现在给出的这个程序的分析和调试了一下,并且我在里面加入了一些代码使能能够通过串口输出来观察数据,,一开始是进入到xian1()中的,,就是你的显示为0的这个函数中的,然后当nDataToDisplay<200这个条件不满足的时候,程序就开始进入xian()中,也就是你的显示为9999的函数中,,,,然后又循环到一开始的状态。
就函数已经在你指定的地方调用了,,,,如果有问题,,就要检查你的显示函数和相应硬件连接了。
P651=0DC55.XIDM;
中断里面中断标志没有重置。
在中断里面加 TF0=0; 看看
而且你计数值一 开始就显示9啊,你程序里面
if(nDataToDisplay<200)
{xian1();} 开始就显示9
程序没有问题可以是你的硬件连接
我感觉没什么错