您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 智能电子设计实验三(ZZH)
1实验三Keil与Proteus联调实验一、实验目的1.配置成功Keil和Proteus的联接。2.会利用联调环境修改程序,提高单片机开发的效率。二、实验设备1.PC机一台,最低配置:P42.0GHzCPU/512M内存/80G硬盘。2.一套KeiluVision3软件。3.一套Proteus软件。三、实验地点白龙校区综合实验楼三楼相关实验室。四、实验说明实验一已经学习了Proteus的仿真,它与其他电路仿真软件相比最大的特点是对单片机和外围设备的很好仿真。Keil是非常优秀的单片机编译和调试工具,实验二学习了Keil对程序的调试和软件仿真,但并没有达到模拟对实际电路的仿真。本实验将充分利用两个软件的优点,实现Keil和Proteus的联调,让我们、仅通过软件环境就基本可以达到使用仿真头对硬件开发板调试的效果,节约开发成本,节省开发时间。五、实验过程1.对Keil配置相关文件。首先,安装两个软件。Proteus、Keil(实验一和实验二已经介绍)。第二步,安装完毕,把C:\ProgramFiles\LabcenterElectronics\Proteus6Professional\MODELS\目录下的VDM51.dll文件复制到C:\Keil\C51\BIN文件夹下。(目录名都是默认的,你可以根据你实际安装的目录进行复制。)第三步,用记事本(其它的编辑软件也可以,如UltraEdit)打开Keil根目录下的TOOLS.INI文件,在[C51]栏目下加入TDRV8=BIN\VDM51.DLL(ProteusVSMMonitor-51Driver),其中“TDRV8”中的“8”要根据实际情况写,不要和原来的重复。22.以Open_SC51开发板的ISIS的文件和其例子程序为例,学习Keil和Proteus联调。a)Proteus的设置:运行Proteus的ISIS,鼠标左键点击菜单DEBUG,选中UseRemoteDebugerMonitor。打开open_sc51cpu.DSN。b)Keil设置:打开Keil工程文件Open.UV2,点击工具栏的optionfortarget按钮,在出现的对话框里点击Debug,在右栏上部的下拉菜单里选中ProteusVSMMonitor-51Driver,还要点击一下Use前面的小圆点,再点击Setting设置通信接口,在Host后面添上127.0.0.1,如果你是用的不是同一台电脑,在这里添上另一台电脑的IP地址(另一台电脑安装Proteus)。在Port后面添上8000。点击OK按钮即可。3最后把工程编译一下。调试运行Debug→Start/StopDebugSession.ISIS原理图仿真激活,效果如下图。点击ISIS原理图中的按钮,MCU执行相应的功能,数码管显示器发生变化。如真实开发板在线调试一样。3.使用Keil和Proteus联调可以很方便修改程序,省去昂贵的硬件开发板调试设备。修改Open_SC51开发板例子程序,使它具有按键复用功能,下面是修改后的部分代码:///////////////////////////////////////////////////////////////////新加代码,在main()函数开始处添加ucharj1=0,j2=0,j3=0,j4=0;//定义按键变量/////////////////////////////////////////////////////////////////switch(KEY){4case0x1c://第一个键处理程序//EX1=0;zs=0;////////////////////////////////////////////////////////////////////替换的代码j2=0;j3=0;j4=0;switch(j1){case0://第一键按一次,j1++;break;case1://第一键按两次j1++;break;case2://第一键按三次j1++;break;case3://重复归零j1=0;break;default:break;}DispB[0]=~DispCode[0];DispB[1]=~DispCode[0];DispB[2]=~DispCode[0];DispB[3]=~DispCode[0];DispB[4]=~DispCode[j1];disp();//显示000X,X为1,2,3,0表示按键按下次数,过三次回零.break;/////////////////////////////////////////////////////////////////case0x2c://第二个键处理程序zs=0;//EX1=0;//////////////////////////////////////////////////////////////////////替换的代码j1=0;j3=0;j4=0;switch(j2){5case0://第二键按一次j2++;break;case1://第二键按两次j2++;break;case2://第二键按三次j2++;break;case3:j2=0;break;default:break;}DispB[0]=~DispCode[0];DispB[1]=~DispCode[0];DispB[2]=~DispCode[0];DispB[3]=~DispCode[j2];DispB[4]=~DispCode[0];disp();break;/////////////////////////////////////////////////////////////////case0x34://第三个键处理程序//EX1=0;zs=0;//////////////////////////////////////////////////////////////////////替换的代码j1=0;j2=0;j4=0;switch(j3){case0://第三键按一次j3++;break;case1://第三键按两次j3++;break;case2://第三键按三次j3++;break;6case3:j3=0;break;default:break;}DispB[0]=~DispCode[0];DispB[1]=~DispCode[0];DispB[2]=~DispCode[j3];DispB[3]=~DispCode[0];DispB[4]=~DispCode[0];disp();break;/////////////////////////////////////////////////////////////////case0x38://第四个键处理程序zs=0;//原来程序zs=1,替换为此代码//////////////////////////////////////////////////////////////////////替换的代码j1=0;j2=0;j3=0;switch(j4){case0://第四键按一次j4++;break;case1://第四键按两次j4++;break;case2://第四键按三次j4++;break;case3:j4=0;break;default:break;}DispB[0]=~DispCode[0];DispB[1]=~DispCode[j4];DispB[2]=~DispCode[0];DispB[3]=~DispCode[0];7DispB[4]=~DispCode[0];disp();break;/////////////////////////////////////////////////////////////////default:break;}联调效果见下图:上图显示的是第四个键连续按二次,数码管显示的情况。六、注意事项1.联调要注意Keil和Proteus软件环境设置,要按照实验要求做,不可遗漏某个环节。2.联调时的ISIS的原理图文件要保证正确,且图中元件要有仿真模型。七、实验小结1.工程中的STARTUP。A51文件可以省去,不影响Keil与Proteus的联调。但对于实际硬件开发板来产,此文件必不可以少。有时间可以了解一下STARTUP.A51中的内容。2.对源程序进行修改不可删除原来所有肉容,注意对原来文件进行备份或在源代码中对要修改代码用“/*…*/”或“//”符号改为注释的形式,便于新代码与这对照,又不影响编译。
本文标题:智能电子设计实验三(ZZH)
链接地址:https://www.777doc.com/doc-71641 .html