分享

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

 昵称40494977 2017-06-19
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灯就会点亮。
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多