基于proteus的51单片机仿真实例七、关于proteus和keil c51的联调

1、在利用proteus进行单片机系统的仿真时,如果想要观察内存,寄存器、变量的值以及外围芯片的数据变化情况,可以在仿真运行时单击“帧进(单步)”或“暂停”按钮,然后再菜单栏的“调试”菜单中打开相应设备观察窗口进行观察。
如果要检测电路中某些位置的电压、电流、波形等信息,可以在电路中添加相应的虚拟仪器,如电压表、电流表、示波器等。如果系统运行时添加的虚拟仪器没有显示,这时,同样应在“调试”菜单中将它们打开。
 
2、对于较为复杂的程序,如果仿真运行后没有达到预期效果,这时可根据需要对proteus和keil c51进行联合调试,联合调试之前需要先安装vdmagdi.exe(或vudgi.exe),该软件可到网上或者proteus公司的网站搜索下载。
联合调试时,可先打开proteus应用例程(不要运行例程),然后选中”调试“菜单中的”使用远程调试设备“选项,如下图所示。这样使得keil c51能与proteus进行通信。

 基于proteus的51单片机仿真实例七、关于proteus和keil c51的联调
4、完成上述设置后,再到leil中打开,proteus应用例程中的源程序项目文件。选择菜单栏的“工程”---“为目标‘目标 1’设置选项”命令,在弹出的对话框中选择“调试”选项卡,按照下图进行设置。
基于proteus的51单片机仿真实例七、关于proteus和keil c51的联调
 
5、如果keil c51与proteus安装在同一台计算机中,右边的“seting”选项的内容保持不变即可,如下图所示,如果这两个软件没有安装在同一台计算机中,则需要跨机调试,那主机号与端口号需要根据具体情况进行修改
基于proteus的51单片机仿真实例七、关于proteus和keil c51的联调
 
6、完成上述设置后,在keil c51中运行程序时,proteus中的单片机系统也会跟着运行。这是可以在keil c51中进行单步、跳过、运行到光标、运行到断点等调试,同时可以在proteus的单片机系统中跟踪观察运行结果。
但是并非所有的情况下都能很好的观察运行效果。例如进行按键扫描时,单步跟踪就不能够被很好的跟踪,因为在proteus中敲击按键后,在到keil c51中继续检测按键时,这是按键已经被释放了,自然也就就观察不到按键的实时状态。
因此在进行联合调试时,需要根据实际情况,合理的配合单步、跳出、运行到光标、运行到断点等方法进行仿真调试。