即可进入 μVision IDE(集成开发环境)。在此之前,Windows 10 家庭版将会弹出“用户账户控制”页面,我们点击“是”允许“Uv2.exe”程序运行,如下图所示
然后就会弹出一个标准的 Windows 程序窗口。该程序窗口由多个子窗口组成,我们初次进入 μVision IDE 时,只能看到工程管理窗口、源程序窗口和输出窗口。如下图所示
?
左 侧的工程管理窗口有 3 个选项卡:文件、寄存器、文档选项卡;我们刚进入 μVision IDE 时显示的是文件选项卡,显示该工程中的所有文件,如果没有任何工程被打开,这里将没有内容被显示,如上图所示;中间的选项卡是寄存器,在进入程序调试时自 动切换到该窗口,用于显示有关寄存器值的内容,如下图所示
?
第 3 个选项卡是一些帮助文件、电子文档的目录索引,如果遇到疑难问题,可以随时到这里来查找答案。如下图所示
?图 0-5
1 源文件的建立
μVision IDE 内集成了一个文本编辑器,便于我们在 μVision IDE 中直接进行源程序的输入。
对于汇编或 C 语言,该文本编辑器具有语法高亮功能,即会对关键字进行变色显示。如下图所示
?
在图 0-5 中选择菜单栏的“File-->New...”或者按下快捷键Ctrl+N,在源程序窗口中将出现一个新的文件输入窗口,如下图所示
?
我们可以在该窗口里输入源程序,我们将下面两行程序输入进去
SETB P1.0
END
如下图所示
?
输入完毕之后,选择菜单栏的“File-->Save”或者按下快捷键Ctrl+S,给该文件命名保存。重命名时必须要加上扩展名,一般汇编程序以".asm"或".a51"为扩展名。我这里重命名为“201.asm”,如下图所示
?
注意:μVision IDE 对于中文的支持不好,有时会出现半个汉字的现象。因此,在书写注释时要小心。建议使用其它编辑器(如notepad--) 来输入源文件。μVision IDE 能自动识别被 IDE 外部软件改变了的源文件,即加果用 μVision IDE 打开了一个文件,而该文件又由其它编辑器编辑并保存,只要切换回 μVision IDE,μVision IDE 就能感知文件已发生变化,并询问是否重新加载。notepad-- 软件也具有同样的功能,两者配合使用非常方便。
2 工程的建立
在 项目开发过程中,除了编写源程序之外,我们还要选择器件——MCU,确定编译/汇编、链接的参数,指定调试的方式等等。为了方便管理和使用,Keil 使用工程(Project)将所需设置的参数和所有文件都配置在一个工程中,我们只能对工程而不能对单一源程序进行编译(汇编)和链接等操作。下面我们就 一起来看一看如何建立和设置工程。
在图 0-5 中选择菜单栏的“Project-->New Project...”,出现“Create New Project(创建新工程)”的对话框,如图 2-1 所示。
?图 2-1 创建新工程对话框
要求对给工程命名并保存。一般我们把工程建立在与源文件同一个文件夹中,注意不用加扩展名,单击“保存(S)”即可。
进 入下一步,选择目标器件——MCU,如图 2-2 所示。Keil 支持所有 400 余种以 80C51 为内核的单片机系列。我们可以根据需要选择相应的 MCU,这里以选择 Atmel 公司的 89C51 为例。在图 2-2 左侧的“Data base(数据库)”列表框中单击展开“Atmel”供应商名称,逃择其中的“AT89C51”器件;在其右边的“Description:(说明)”显 示区域中有关于该 MCU 特性的一般性描述。单击“确定”按钮即可返回主界面。此时还会询问我们“Copy Standard 8051 Startup Code to Project Folder and Add File to Project(是否将启动代码复制到工程文件夹下,并加入到工程中)”,我们先点击“是(N)”添加进来看看,如下图所示
?图 2-2 为工程选择目标 MCU
选择好 MCU 回到主界面后,工程管理窗口会出现一些目录信息;但目前这个工程里面还没有任何文件,是一个空的工程,我们需要为这个工程添加文件。
我们单击左侧列表框中目录 Target1 下的 Source Group1 子目录,使其高亮显示;然后右击鼠标,在出现的快捷菜单中选择“Add File to Group 'Source Group1'”,如下图所示
?
Keil 默认加入 C 源文件,因此,在文件浏览框中未显示该文件夹下的汇编文件。如果要加入汇编语言源文件,需单击“文件类型”下拉列表框右侧的下三角按钮,弹出下拉列表,选择“Asm Source file(*.s*;*.src;*.a*)”。如下图所示
?
这时才会将文件夹下的“*.asm”文件显示出来。如下图所示
?
双击要加入的文件名,或者单击要加入的文件名后单击 Add 按钮,都可将该文件加入到工程中。如下图所示
?
文件加入后,添加文件对话框并不会消失,还可加入其它文件到工程中。如果不再需要加入其它文件,单击 Close 按钮,关闭该对话框。如下图所示
?
注意: 由于在文件加入工程中后,添加文件对话框并不会消失,所以刚开使使用该软件时,常会误以为文件没有加入成功。再次双击文件或再次单击 Add 按钮,会出现一个如下图所示对话框,提示该文件已加入,不需要再次加入,此时只要单击“确定”按钮,然后单击 Close 按钮,关闭对话框即可。
?
关闭对话框后回到主界面,刚加入的文件名出现在工程管理器的 Source Group 1 下一级。双击该文件名,即可在右边打开该文件。
?
3 工程的设置
工程新建好后,我们还要对工程进行进一步设置,以便满足每个工程的个性化要求。
单击工程窗口下的 Target 1,使其高亮显示;然后选择菜单栏的“Project-->Options for Target 'Target 1'”,如下图所示
?
弹出对工程设置的对话框。该对话框非常复杂,有 8 个选项卡,但大部分设置项取默认值即可。
设置对话框中 Target 选项卡如下图所示。
?
Xtal(MHz):文本框中的数值是晶振频率值,默认值是所选目标 MCU 的最高可用频率值。对于 AT89C51 而言是 24MHz,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。
?Memory Model:下拉列表框用于设置 RAM 使用情况,有 3 个选择项:
?
Small:所有变量都在单片机内部 RAM 中;
Compact:可以使用一页外部扩展 RAM;
Large:可以使用全部外部扩展 RAM。
Code Rom Size:下拉列表框用于设置 ROM 空间的使用,同样也有 3 个选择项:
?
Operating system:下拉列表框是操作系统选择。
?
Keil 提供了两种操作系统:RTX-51 Tiny 和 RTX-51 Full。如果一个工程不使用操作系统,应取该项的默认值 None(不使用任何操作系统)。
Use On-chip ROM(0x0-0xFFF) 复选框用于确认是否仅仅使用片内 ROM(注意:选择该项并不会影响最终生成的目标代码量);
?Off-chip Code memory 选项区域用于确定系统扩展 ROM 的地址范围。
?Off-chip Xdata memory 选项区域组用于确定系统扩展 RAM 的地址范围。
?Code Banking 复选框用于设置代码分组的情况。
?
上述选择项必须根据使用的硬件来决定。
设置完毕后,单击 Output 标签进入输出设置选项卡,如下图所示。
?该页面卡中也有很多内容,其中:
该文件是 Intel HEX 格式文件,扩展名为.HEX,上板验证时可以使用烧录器将其写入单片机芯片内。默认情况下该项未被选中。如果要将可执行代码写入芯片,就必须选择该项。这一点是初学者易疏忽的,在此特别提醒注意。
如果需要对程序进行调试,应当选择该项。
Browse Information 复选框:产生浏览信息。该信息可以用 View-->Browse 来查看。这里取默认值。
?Select Folder for Objects... 按钮:送择最终目标文件所在的文件夹。默认是与工程文件在同一个文件夹中。
?Name of Executable 文本框:用于指定最终生成的目标文件的名字。默认与工程名字相同。
?
上面两项一般不需要更改。
用于确定是否将目标文件生成库文件。
工程设置对话框中其它各选项卡与 C51 编译选项、A51 汇编选项、BL51 链接器的链接选项等用法有关,这里不作详叙。通常可取默认设置,不必修改。
设置完成后单击“确认”按钮返回主界面,工程文件设置完毕。
4 编译、链接
设置好工程后,即可进行编译、链接。
?
上图是有关编译、链接以及工程设置的工具条。该工具条中各按钮的具体含义如下:
编译或汇编当前文件:若当前文件是汇编语言程序文件,则使用 A51 汇编器对汇编语言源程序进行汇编处理;若当前文件是 C 语言源程序文件,则使用 C51 编译器进行编译处理。得到可浮动地址的目标代码。
建立目标文件:根据汇编或编译得到的目标文件,并调用有关库模块,链接产生绝对地址的目标文件。如果在上次汇编或编译过后又对源程序作了修改,将先对源程序进行汇编或编译,然后再链接。
重建全部目标文件:对工程中所有文件进行重新编译、汇编处理,然后再进行链接以产生目标代码。使用该按钮可以防止由于一些意外情况(如系统日期不正确)而造成的源文件与目标代码不一致。
停止建立:在建立目标文件的过程中,可以单击该按钮停止这一工作。
工程设置:该按钮用于对工程进行设置,其效果如同选择“Project-->Options for Target 'Target 1'”。
以 上建立目标文作的操作也可以通过选择“Project-->Translate...”、“Project-->Build target”、“Project-->Rebuild all target files”和“Project-->Stop build”来完成。
编译过程中的信息将出现在输出窗口中的 Build 页中。如果源程序中有语法错提,则会出现错误文档。双击错误文档行,可以定位到出错的源程序的相应行。
?
右键 STARTUP.A51,选择“Remove File 'STARTUP.A51'”将其从工程中删除
?
再次建立目标文件,最终得到如图所示结果。
?
给出了目标代码量的大小(2字节)、内部 RAM 使用量(8字节)、外部 RAM 使用量(0字节),提示生成了 HEX 格式的文件。在这一过程中,还会生成一些其它文件,产生的目标文件被用于 Keil 的仿真与调试