找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 33054|回复: 16
打印 上一主题 下一主题
收起左侧

keil软件与Proteus软件的联机调试

  [复制链接]
跳转到指定楼层
楼主
1) 目的
熟悉keil集成开发环境和Proteus仿真软件的使用,完成两个软件的联机调试,为下一步学习大好基础。
2) 原理
分别在keil软件和Proteus软件中进行一些设置,两个软件便可以进行对同一个程序的联机调试。
3) 过程
下面以点亮一个LED灯为例,来介绍整个过程。
步骤一:建立keil工程。
1) 打开keil软件,如下图选择新建工程。


2) 将工程起名为oneled保存在新建的工程文件夹oneled中。如下图。


3) 选择CPU,我们这里选择Atmel公司的AT89S52,如下面两图所示。




4) 选好芯片确定后,弹出提示框,问是否添加一些文件,我们这里选“否”,如下图。

5) 下面新建文本文档,用来编写源程序。选择菜单File再选择New子菜单,或直接按下界面上的图标进行建立,如下图所示。

6) 按下保存图标,保存新建的文件以“oneled.c”文件名保存在工程文件夹下。如下图。(说明:文件名可以随便起,但一般与工程名相同。)

7) 将新建的文件加入工程中。在Source Group 1上点鼠标右键,在弹出的菜单上选择Add Files…选项,如下图。

在弹出的对话框中选择工程文件夹下刚才新建的“oneled.c”文件。点击Add,再点击Close关闭对话框。如下图。

在下图中可以看到文件已经加入到了Source Group 1中。按下最大化按钮,可使编辑框最大化。

8) 设置工程,让其编译时输出十六进制可执行文件。如图在target 1上点右键选设置。

如下图,将Create HEX File 选中,按确定退出。

至此,工程文件已经建立设置完毕,在开始写源程序之前,我们先用Proteus软件设计出led灯的电路图。
步骤二:设计电路图。
1) 首先选择要用的器件。如下图,按下P 图标进行器件选择。


输入单片机芯片名AT89C52,器件便会出现在右侧列表中。如下图。(说明:这里用AT89C52,是因为该软件中没有AT89S52,但因为程序在两芯片中都可执行,所以可以这样代替。)

双击列表中的芯片名,它便会加入到主界面的器件表中,如下图。


同样,我们在找到LED小灯。这里我们用亮时为黄色的小灯,如下图。

2) 开始画电路图。首先选中器件列表中的AT89C52,然后在设计区点鼠标左键,该器件就会出现。如下图。

同样,加入LED灯,并用鼠标在P0.0口与LED灯一端连线,将二者联通。如图。

在左侧列表中如下图选中相应图标下的电源选项。

在设计区加入电源,并按下图进行连接。

到这里电路已将设计完毕,下面我们到Keil中进行相关程序的编写。
步骤三:编辑,编译并运行程序。
1) 更换文本编辑器的字体。如下图,看到输入文本时很混乱,所以我们更换编辑器的字体。

如下图,进行相应菜单的选择。

在相应的位置选择字体。因为我们改的是C文件的文本字体,所以进行如下图的选择,点击Font后的按键。

我们选择宋体。如下图。(说明:你可以尝试更换成别的字体。)

2) 编写源程序。因为程序很简单,这里主要是写主函数。如下图是改变字体后写好的全部代码。(说明:我们在后面将对程序进行解释。)

3) 对源程序进行编译。按下界面上的编译按键进行编译程序。如下图。可以看到编译成功,并生成了hex可执行文件,该文件在工程文件夹下。

4) 运行程序。在Proteus中的单片机芯片上点鼠标右键,将其选中。如下图,选中的器件将变成红色。

然后再在上面点鼠标左键,打开设置界面。如下图,我们点Program File后的图标,将生成的HEX可执行文件加入芯片中。

我们选择工程文件夹下生成的十六进制hex文件。如下图。

加入文件成功,如下图。我们按下OK键退出。

在设计板上其他地方点击鼠标右键,可以取消器件的选中状态。点击主界面左下角的运行按键,可以看到led小灯亮了起来。如下图。按下停止按键可停止执行。

步骤四:联机调试。
1) 对两个软件进行一些设置。在keil软件工程的设置中在Debug界面进行如下图的选择。

在Proteus中按下图选中相关选项。

2) 在keil中按下调试按键,可以看到Proteus中的运行按键已经执行,说明联机成功。
如下图。

3) 选择oneled源程序界面,按下单步执行按键,出现黄色箭头指向源程序的主函数的第一行。如下图。

4) 再次按下单步执行按键,“P00=0;”此条语句便执行了,可以看到右边的led灯已经亮了。如下图。

5) 再次按下调试按键,停止调试。如下图。


6) 在关闭Proteus之前,将文件保存,一般都保存到工程文件夹下,文件名与工程名相同。如下图。

到这里,我们整个实验过程就全部结束了。下面我们看一下工程文件夹。如下图。

其中,1是源程序,2是Proteus软件设计的仿真电路图,3是keil工程文件,4是编译生成的十六进制可执行文件。其他的文件是建立工程时生成的。
4)程序讲解

电路图如上,可以看出,LED小灯一端接电源即高电平,一端接P0口的第0位,很明显,如果让P0口的0位为低电平,那么小灯就会点亮。
下面是相应的源程序:
#include //头文件,该头文件对52系列单片机的寄存器等进行了定义,以后每次写//程序都要加入该头文件。
sbit P00 = P0^0; //位定义,因为端口的各位不能直接使用,所以我们要将其先定义一下,所//以P00就代表P0口的第0位。
void main() //主函数,这里的写法和标准C语言相似。
{
P00=0; //P0口的0位赋值为0,即低电平,执行该语句,led灯就会点亮。
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:71991 发表于 2015-1-29 22:33 | 只看该作者
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/115806121/QQ/WinTemp/RichOle/LPPMX%60]RPFAHV1]B_BIP5~K.png 我的软件没有找到这个选项呀

QQ图片20150129223137.png (20.25 KB, 下载次数: 229)

QQ图片20150129223137.png
回复

使用道具 举报

板凳
ID:74319 发表于 2015-3-8 15:49 | 只看该作者

51hei的这个论坛确实做得不错 主要是资料多 我还刚入门希望大家多多指点
回复

使用道具 举报

地板
ID:53825 发表于 2015-4-5 15:17 | 只看该作者
很仔细
回复

使用道具 举报

5#
ID:74331 发表于 2015-4-10 20:06 | 只看该作者
强大,以后可能用得上
回复

使用道具 举报

6#
ID:76401 发表于 2015-4-12 16:58 | 只看该作者
好东西赞一个,感谢楼主。
回复

使用道具 举报

7#
ID:82988 发表于 2015-7-11 11:57 | 只看该作者
很好的内容,图文并茂支持下楼主
回复

使用道具 举报

8#
ID:89595 发表于 2015-9-13 18:33 | 只看该作者
谢了,我是刚刚学的,感到很有用。
回复

使用道具 举报

9#
ID:84205 发表于 2015-10-5 23:35 | 只看该作者
谢楼主
回复

使用道具 举报

10#
ID:91733 发表于 2015-10-6 17:55 | 只看该作者
hsanper 发表于 2015-1-29 22:33
我的软件没有找到这个选项呀

我的软件也没有找到这个选项呀!

联机调试2合1.JPG (118.86 KB, 下载次数: 179)

联机调试2合1.JPG
回复

使用道具 举报

11#
ID:91733 发表于 2015-10-6 19:07 | 只看该作者
我的问题解决了。很简单:在你的电脑上运行一下驱动程序vdmagdi.exe就行了。至于驱动程序vdmagdi.exe网上多得很,搜索一下就能找到。
回复

使用道具 举报

12#
ID:66287 发表于 2017-4-6 08:44 | 只看该作者
很细致,谢楼主分享
回复

使用道具 举报

13#
ID:165117 发表于 2017-4-11 11:39 | 只看该作者
很好的内容,图文并茂支持下楼主  谢了,我是刚刚学的!!
回复

使用道具 举报

14#
ID:298008 发表于 2018-10-21 14:47 | 只看该作者
谢谢楼主分享!!
回复

使用道具 举报

15#
ID:412827 发表于 2018-10-22 17:52 | 只看该作者
一看就是大佬  很详细
回复

使用道具 举报

16#
ID:585177 发表于 2019-7-26 10:48 | 只看该作者
终于看到有人讲得明明白白了 给你一个大赞
回复

使用道具 举报

17#
ID:589399 发表于 2019-10-5 16:07 | 只看该作者
我也在学这个,现在正需要这个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表