单片机实验proteus版(2015) - 图文 下载本文

图1.4

注意:添加完文件后,该对话框并不消失,等待继续加入其它文件,常误认为添加文件不成功,其实已添加成功,只需点击Close按钮关闭对话框即可。

2、工程的详细设置

工程建立好后,要对工程进行进一步的设置,以满足后续工作的要求。

首先点击左边的Project窗口的Target1,然后使用菜单的菜单“Project->Option for target ?target1?”出现对工程设置的对话框,其中有8个页面,这里绝大部分设置取默认值就可以了。

Target页面如图1.5所示:

图1.5

Xtal后面的数值为晶振频率值,默认值为所选CPU的最高工作频率,对AT89C51而言为24MHz,我们常选12MHz值,该值与最后产生的目标代码无关,仅用于软件仿真显示程序执行时间。

Memory Model用于设置RAM的使用情况,设置为small,Code Rom Size用于设置ROM的空间,设置为Large:64k,Operation用于选择操作系统,一般不用操作系统,选择None,Use on-chip ROM用于是否进使用片内的ROM,在此设置如图1.5所示。Off Chip Code memory用以确定系统扩展ROM的地址范围,Off Chip xData memory组用于确定系统扩展RAM的地址范围,这些需根据硬件来决定。

设置对话框中的OutPut页面,如图1.6所示,这里也有多个选项,其中Creat Hex file用于声称可执行代码文件(可用编程器械如单片机芯片中执行的HEX格式文件)默认情况下该项未被选中,如果要写片做硬件试验,就必须选中该项,这一点要特别注意。Select Folder for opjects是用于选择最终生成目标文件所在的文件夹,默认是与工程文件在同一个文件夹中,Name of Executable用于指定最终生成的目标文件的名字,默认与工程的名字相同。

图1.6

Debug页面的设置,如果要进行仿真的,选中Use Simulator,就可以进行软件仿真。与试验箱连接时,选择Use Keil Monitor-51 Driver,setting(设置)中的设置为Port只选 COM1-COM4中空闲的, Baudrate选115200,其它所有页面设置为默认选择即可,设置完后,按确认键返回主界面。

3、编译、连接

设置好工程后,即可以进行编译、连接。选择菜单Project->Build target,对当前工程进行连接,如果当前文加以修改,会现对该文件按进行编译,然后再连接以产生目标代码,如果选择Rebuild All target files将会对当前工程中的所有文件重新编译后再连接确保最终生成的目标代码是最新的。

编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会报告错误,双击该行,可以自动定位到出错的位置。如果没有出错,最终会得到如图所的结果,提示已生成.hex的文件。

图1.9 正确编译、连接后的结果

4、Keil uVision3仿真调试、在线汇编与断点设置

知道如何在建立工程文件、源程序以及编译生成目标代码,这仅仅是语法上没有错误,如果程序在逻辑上出现错误就必须通过调试来解决,实际上绝大部分的程序都必须经过反复调试残能得到正确的结果,调试是软件开发中的一个重要环节。下面着重介绍常用的调试命令、利用在线汇编设置断点进行调试的方法。

4.1常用调试命令、窗口介绍

Keil内建了一个仿真CPU用来模拟执行程序,可以在没有硬件和仿真机的情况下进行程序的调试。在对工程成功汇编、连接后,点击菜单Debug->Start/Stop Debug Session或者按Ctrl+F5或者点击工具按钮

即可进入调试状态。调试状态和编辑状态相比有比较明显

的变化,在Debug菜单中原来不能使用的命令现在都可以使用了,工具栏中多出了一个用

于运行和调试的工具条。如图1.7所示:

图1.7

该工具条从左到右依次为复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析等命令。

学习程序调试必须先了解全速运行和单步运行的概念,全速运行即一次运行完成,可以看见程序运行的整体效果,但如果出错则用这种方法很难查找到具体的出错位置,必须借助于单步运行工具,单步执行是每次执行一行即停止,可以看见当前程序运行的中间状态,两种方式都经常会用到。

按下F11键或使用菜单STEP或相应的命令按钮可以单步执行程序,使用STEP OVER或功能键F10可以进行过程单步执行,进入如图1.8所示的界面,可以看见在源程序窗口的左边出现一个黄色的调试箭头,每执行单步一次,黄色箭头向下移一行。通过单步执行可以找

出一些问题所在,但仅仅依靠单步执行来查

图1.8

错有时很困难,甚至有时效率会很低,有时通过过程单步执行、断点设置等几种方法联合调试来达到目的。另外在调试的过程中可以随时监视到各寄存器的状态,可以查看存储器的值,还可通过设置变量在观察窗口中观看变量值的变化。各监视窗口如图1.9所示。

寄存器窗口 Watches、Memory窗口

图1.9

在调试状态下,点击菜单Peripherals,可以打开弹片击中的资源,包括中断源、定时器计数器、串口以及P0、P1、P2、P3口的窗口一边观察它们的值。如图1.10所示。