单片机软件开发方案商 (单片机软件开发难学吗)

单片机软件开发过程是先编写程序,再编译、仿真和调试程序,然后用编程器将程序写入单片机。这几个过程可以分别用几个软件完成,也可以在一个软件中完成。现在很多单片机开发人员都采用Keil公司开发的KeilC51软件来编写、编译、仿真和调试程序。

3.2.1、编写程序

在编写程序前,需要先安装 KeilC51 软件,然后在该软件中建立项目和源程序文件,再在源程序文件中编写程序。

1.KeilC51软件的获取与安装KeilC51软件是德国Keil公司开发的51系列单片机编程软件,在该软件中,用户可用汇编语言或C语言编写程序,然后对程序进行编译、仿真和调试。

如果读者需要该软件,可到Keil公司网站http://www. Keil.com*载下**Eval(评估)版本,也可登录易天教学网(www.eTV100.com)*载下**。*载下**该软件后获得的是一个压缩包,解压后运行SETUP文件夹中的Setup*ex.e**文件,即开始安装软件。在安装时,首先会出现图3-3所示的对话框,如果不是商业用户,单击“Eval Version”(评估版本)按钮,软件即开始安装,后面的安装过程与一般的软件安装过程相同,这里不再赘述(注:评估版本软件对编写的程序要求不能大于 2KB,其他与商业版软件相同。对于初学者来说, KeilC51评估版本基本够用)。

单片机软件开发的流程,单片机软件开发面试题

图3-3 选择软件安装版本对话框

2.新建项目和源程序文件

KeilC51 软件安装完成后,双击桌面上的“Keil μVision2”图标,或单击桌面左下角的“开始”按钮,在弹出的菜单中选择“程序”→“Keil μVision2”命令,就可以启动 Keil μVision2,进入图3-4所示的“μVision2”软件窗口。

(1)新建项目

在进行单片机程序开发时,为了便于管理,需要先在“μVision2”中建立一个项目,然后在该项目中编写、仿真和调试程序。新建项目的操作过程如下。

① 选择“Project”→“New Project”菜单命令,如图3-5所示,立刻弹出图3-6所示的“Create New Project”(建立新项目)对话框。

② 在“Create New Project”对话框中选择文件保存的位置,再输入项目文件名“test1”,文件的默认扩展名(类型)为“.uv2”,然后单击“保存”按钮,立刻弹出图3-7所示的对话框,要求选择为哪种型号的单片机编写程序。

单片机软件开发的流程,单片机软件开发面试题

图3-4 μVision2软件窗口

单片机软件开发的流程,单片机软件开发面试题

图3-5 执行新建项目命令

单片机软件开发的流程,单片机软件开发面试题

图3-6 建立新项目对话框

单片机软件开发的流程,单片机软件开发面试题

图3-7 选择单片机型号对话框

③ 在图3-7所示对话框左侧的选择区内选择单片机型号为 Atmel 公司的“AT89S51”,然后单击“确定”按钮,会弹出图3-8所示的对话框,该对话框询问是否要把标准8051的启动代码添加到项目中。

单片机软件开发的流程,单片机软件开发面试题

图3-8 询问是否将标准8051的启动代码加入到项目中

KeilC51既支持C语言编程也支持汇编语言编程,如果欲用汇编语言编写程序,则应单击“否”按钮;如果想用C语言编写程序,一般也单击“否”按钮;但是如果用到了某些增强功能需要初始化配置时,则可以单击“是”按钮。这里单击“否”按钮(即不添加启动代码),新建项目结束,在图3-9所示μVision2 软件窗口左边的项目管理器中新增了一个“Target 1”文件夹,该文件夹中还有一个“Source Group 1”文件夹。

单片机软件开发的流程,单片机软件开发面试题

图3-9 新建项目完毕,在μVision2软件窗口中新增“Target 1”文件夹

(2)新建源程序文件

要编写程序,还需要新建一个源程序文件,再在该文件中编写程序。

新建源程序文件的操作过程如下。

① 新建源程序文件。单击工具栏中的新建按钮 ,也可选择“File”→“New”菜单命令,即新建一个默认名为“Text 1”的空白文件,同时该文件在软件窗口中打开,如图3-10所示。

单片机软件开发的流程,单片机软件开发面试题

图3-10 新建源程序文件

② 保存源程序文件。单击工具栏上的保存按钮 ,也可选择“File”→“Save As”菜单命令,弹出图3-11所示的“Save As”对话框。在对话框中打开之前建立的项目文件所在的文件夹,再将文件命名为“test1.asm”(扩展名.asm表示为汇编程序,不能省略),单击“保存”按钮即将该文件保存下来。

单片机软件开发的流程,单片机软件开发面试题

图3-11 保存源程序文件对话框

③ 建立源程序文件与项目关联。新建的源程序文件与新建的项目没有什么关联,需要将它加入到项目中。打开项目管理器的“Source Group 1”文件夹,右击该文件夹,弹出图3-12所示的快捷菜单,在该快捷菜单中选择“Add Files to Group’Source Group 1’”项,会出现图3-13所示的加载文件对话框。在该对话框中选文件类型为“Asm Source file”,找到新建的“test1.asm”文件,再单击“Add”按钮,test1.asm文件即被加入到项目中,此时对话框并不会消失,可以继续加载其他文件,单击“Close”按钮关闭对话框。在Keil软件项目管理器的“Source Group 1”文件夹中可以看到新加载的“test1.asm”文件,如图3-14所示。

单片机软件开发的流程,单片机软件开发面试题

图3-12 在快捷菜单中选择加载文件命令

单片机软件开发的流程,单片机软件开发面试题

图3-13 在对话框中选择要加载的文件

3.编写程序

编写程序有两种方式:一是直接在 Keil 软件中编写;二是在其他软件中编写,再加载到 Keil软件中。

单片机软件开发的流程,单片机软件开发面试题

图3-14 软件项目管理器中出现加载的文件

(1)在Keil软件中编写程序

在Keil软件的源程序文件中用汇编语言编写程序(也可以用C语言编写),如图3-15所示。

单片机软件开发的流程,单片机软件开发面试题

图3-15 在源程序文件的文本框内编写程序

源程序文件中的汇编语言程序如下:

MAIN:

MOV  P3,#0FFH

LOOP:

MOV P1,P3

LJMP LOOP

END

有关程序的编写方法在后面的章节将专门介绍。

(2)加载其他软件编写的程序

Keil 软件源程序文件的文本框对中文的支持不是很好,在输入中文时,有时会出现文字残缺现象。编程时也可以使用其他文本编辑器(如 Windows 自带的记事本)编写程序,再将程序加载到Keil软件中进行编译、仿真和调试。加载其他软件编写的程序的过程如下。

① 用文本编辑器编写程序。打开Windows 自带的记事本,在其中编写程序,如图3-16所示。编写完后将该文件保存下来,文件的扩展名为.asm或.a51,这里将文件保存为test1S.asm

单片机软件开发的流程,单片机软件开发面试题

图3-16 用记事本编写程序

② 将程序文件装载进 Keil 软件。加载程序文件的过程与图3-12~图3-14所示的过程相同,具体操作过程如下。

打开Keil软件,在项目管理器中的“Source Group 1”文件夹上右击,弹出快捷菜单,选择其中的“Add Files to Group’Source Group 1’”项,会出现加载文件对话框,在对话框中选文件类型为“Asm Source file”,然后找到之前编写的“test1S.asm”文件,再单击“Add”按钮,test1S.asm文件即被加载进Keil软件中,单击“Close”按钮关闭对话框。

加载程序结束后,可以在项目管理器的“Source Group 1”文件夹中看到加载进来的“test1S.asm”文件,如图3-17所示,双击可以打开该文件。

单片机软件开发的流程,单片机软件开发面试题

图3-17 用记事本编写的程序被加载进项目管理器

3.2.2、编译或汇编程序

用汇编语言写好程序后,程序还不能直接写入单片机,因为单片机只接受二进制数,所以要将汇编语言程序转换成二进制或十六进制代码(又称机器代码)。将汇编语言程序或其他程序(如 C语言程序)转换成二进制或十六进制代码的过程称为汇编或编译。

汇编要用到汇编器,汇编器可以将汇编语言程序转换成二进制或十六进制代码;编译要用到编译器,编译器可以将高级语言程序(如C语言程序)转换成二进制或十六进制代码。不同类型的单片机需要使用不同的汇编器或编译器,MCS-51系列单片机对汇编语言程序汇编时采用A51汇编器,而对C语言程序编译时采用C51编译器。

KeilC51 软件本身带有汇编器和编译器,在对程序进行汇编或编译时,会自动调用相应的汇编器或编译器。下面以汇编test1.asm程序为例,说明汇编和编译的过程。

(1)汇编或编译前的设置

在汇编或编译程序前需要对项目进行一些设置。设置时,选择“Project”→“Options for Target ’Target 1’”菜单命令,弹出图3-18所示的对话框。该对话框中有 10 个选项卡,每个选项卡中都有一些设置内容,其中“Target”和“Output”选项卡较为常用,默认打开“Target”选项卡,这里保持默认值。

单片机软件开发的流程,单片机软件开发面试题

图3-18 Target选项卡中的内容

单击“Output”选项卡即可切换到该选项卡,该选项卡的内容如图3-19所示。这里只选中“Create HEX Fi”复选框,选中该复选框后在汇编或编译时会生成扩展名为.hex的十六进制文件

单片机软件开发的流程,单片机软件开发面试题

图3-19 Output选项卡中的内容

(2)进行汇编或编译

在图3-19所示的“Options for Target’Target 1’”对话框中设置完成后,单击“确定”按钮,返回到Keil软件界面,然后单击编译或汇编按钮 ,软件就开始对test1.asm文件中的程序进行编译或汇编,完成后,在软件窗口下方的输出窗口中可看到有关的编译或汇编信息。如图3-20所示,如果出现“0 Error(s),0 Warning(s)”,则表示程序没有问题(至少在语法上不存在问题);如果存在错误或警告,则要认真检查程序,修改后再编译或汇编,直到通过为止。

单片机软件开发的流程,单片机软件开发面试题

图3-20 程序汇编或编译结束出现有关的汇编或编译信息

编译或汇编完成后,打开项目文件所在的文件夹,会发现生成了一个“test1.hex”文件。该文件是由汇编器将汇编语言程序汇编成的十六进制代码,用记事本程序打开它,可以看见该文件的具体内容,如图3-21所示。通过编程

器可以将test1.hex文件中的内容写入到单片机中。

单片机软件开发的流程,单片机软件开发面试题

图3-21 汇编生成的test1.hex文件的内容