1.分别找到keil和proteus的安装目录
例如我的:
keil:D:\Program Files\Keil_v5
proteus:D:\Program Files\Proteus 7 Professional
2.然后将proteus安装目录 D:\Program Files\Proteus 7 Professional\MODELS\文件夹里的 VDM51.dll文件复制到keil安装目录的 D:\Program Files\Keil_v5\C51\BIN文件夹中
Ps:有些版本可能没有VDM51.dll这个文件,就需要到网上自行下载 ,然后分别粘贴到两个软件对应目录的文件夹里,确保两个软件目录都有这个文件
3.打开keil目录里的名为Tools.ini文件,再C51列表中加入新的一行如:TDRV10=BIN\VDM51.DLL (“Proteus VSM Monitor-51 Driver” )
4.打开keil软件,新建工程
先在电脑没有中文的路径新建一个文件夹,用于存放新建的keil工程文件
打开keil选择Project选择New uVsion Project选择刚才的文件夹路径并填写工程文件名
搜索89C51,选择AT89C51,点击OK,创建完成。
选中文件夹,右键,点击add new item to group …那个选项,选中C File
5.keil配置
点击蓝色小图标Options for Target…
Target:(注意设置为 11.0592, 否则会出现乱码或其他情况)
Output:
Debug:
点击setting后:
Ps: 看见ok就点ok进行保存,一定要记得保存哦
6.protues配置
打开protues软件,勾选debug里的该选项,使得等下进程可以串口显示
左侧栏点击P按钮,输入89C51,找到该芯片,点OK
这里出现89C51,点一下它,再点一下右侧面板,找个位置放置就行。左侧栏找到那个小电视的图标,旁边的选项栏找到VIRTUAL TERMINAL,同样的方法,放到面板上,然后连线,如图:
7.最后结果
打开keil软件,填入hello world代码,点击右上角有两个箭头的图标(rebuild编译一下)
代码为:
#include <reg51.h>
#include <stdio.h>
void initUart(void);
void delay(unsigned int x);
void main (void)
{
unsigned int utime;
initUart();
while(1){
printf("Hello World\n");
delay(1000);
for (utime=0; utime<10; utime++){}
}
}
void initUart(void)
{
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xfd;
TR1 = 1;
TI = 1;
}
void delay(unsigned int x)
{
unsigned char i;
while(x--)
{
for(i=0;i<120;i++);
}
}
提示无错误,无警告,编译成功,在该文件目录下会生成一个object文件夹,其中有后缀为hex的文件,用于烧到protues软件上跑,记住hex文件的路径。
切换到protues软件,双击C51芯片,有个小文件夹,点击它,把刚刚那个后缀为hex的文件放进来。注意下面的设置成和keil软件相同的11.0592,即使是相同的数,不是它貌似也不行。
点击运行,得到结果:
Ps:
运行过程中尽量不要单独关闭virtual terminal显示框,不然下次再运行就不会自动弹出黑色的显示框显示结果了。要是你有这种情况的话,debug选项中点击该项,点是就又可以了。
8:倘若还存在问题,可以看看keil是否完成注册
点击“File”,选择“License Management”,进入安装密钥
具体可参考:http://www.xue51.com/soft/5194.html
Ps:在此感谢我的舍长王同学,提供操作指导支持