单片机C语言程序设计实训100例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5 Proteus与μ V3的联合调试

对于较为复杂的程序,如果运行没有达到预期效果,这时可能需要对Proteus和µ V3进行联合调试,联合调试之前需要先安装vudgi.exe,然后在Proteus与μ V3中进行相应设置,vudgi.exe文件可到Proteus的官方网站下载,也可在本书案例压缩包文件中找到。

联合调试时,可先打开Proteus案例(不要运行案例),然后选中“调试”菜单中的“使用远程调试设备”选项,这使得Keil C能与Proteus进行通信。

完成上述设置后,再到Keil C中打开程序项目,单击菜单“Project/Options for Target”菜单项,或单击工具栏上的“Options for Target”按钮,打开图2-3所示的项目选项对话框,在Debug选项卡中选中右边的“Use”及其中的选项“Proteus VSM Simulator”,如果Proteus与Keil C安装在同一台计算机中,右边“Setting”中的Host与Port可保持默认值127.0.0.1与8000不变,在跨计算机调试时则需要进行相应修改。

图2-3 项目选项对话框

完成上述设置后,在Keil C中全速运行程序时,Proteus中的单片机系统也会自动运行,如果希望观察运行过程中某些变量值或者设备状态,需要在Keil C中恰当使用Step in/Step over/Step out/Run to cursor line及Beakpoint进行跟踪,要注意的是并非在任何时候都可以使用它们,例如,键盘矩阵扫描时就不能用单步跟踪,因为程序运行到某一步骤时,如果敲击按键后再到Keil C中继续单步跟踪,这时按键早已释放了,又如程序中某些函数模拟了访问某个芯片的时序,如果在内部单步跟踪,这样也会失去对芯片时序的仿真模拟,跟踪也是达不到效果的。

因此,在联合调试过程中,需要恰当的配合单步、跳出、运行到当前行、设置断点等方法进行跟踪。