1、MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)模板的发布编 制 卢继珍审 核批 准发布日期实施日期模板更改记录更改序号更改人/日期更改后的版次 更改说明1 卢继珍/2014-1-24 A/00 初稿模板详细内容见后文。MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 2 页 共 21 页MPLAB X IDE 快速操作指南编 制 卢继珍审 核批 准发布日期实施日期MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 3 页 共 21 页MPLAB X I
2、DE 快速指南一、 环境搭建PIC 单片机的开发环境以前主要是 MPLAB IDE,但由于其已经暴露出诸多问题,在 2010 年 8 月,微芯公司发布了全新的 MPLAB X IDE 开发环境。见图 1.1。MPLAB X IDE 是可以运行在 PC(Windows 、Mac OS和 Linux)上的软件程序,用于开发 Microchip单片机和数字信号控制器的应用。由于它提供了一个统一的集成“环境” 来支持嵌入式单片机的代码开发,因此称为集成开发环境(IDE)。下载路径:http:/ 1.1 MPLAB X IDE 集成开发环境图标由于其主要是一个集成的软件编辑环境,并不提供编译功能,所以安
3、装 MPLAB X IDE 以后,我们还要安装编译器。Microchip 最新编译器产品线MPLAB XC 为项目开发的软件需求提供完整的解决方案,并且可以替换所有 MPLAB C 和 HI-TECH 编译器。MPLAB XC 编译器具有以下特性:支持所有 8/16/32 位 PIC MCU 以及 dsPIC DSC与 MPLAB X IDE 配合工作,提供全面的图形前端: 编辑错误和断点,以匹配源代码中相应的行 支持 C 和 C+源代码单步执行,以检测关键点的变量和结构 在观察窗口显示已定义数据类型的数据结构(包括浮点)可以在 Windows、Linux 和 Mac OS X 系统上运行提供
4、不同优化等级以满足各种需求,并且可以免费下载表 1.1:Microchip PIC 单片机与编译器对应表专业版 标准版 免费版* C+PIC10/12/16/18 MCU MPLAB XC 8 MPLAB XC 8 MPLAB XC 8 MPLAB XC 8 不可用PIC24 MCU 和 dsPIC DSC MPLAB XC 16 MPLAB XC 16 MPLAB XC 16 MPLAB XC 16 不可用PIC32 MCU MPLAB XC 32 MPLAB XC 32 MPLAB XC 32 MPLAB XC 32MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海
5、扶医疗科技股份有限公司 A/00 第 4 页 共 21 页XC 系列编译器的下载路径:http:/ PIC 中低端系列的单片机,我们安装 XC8 和 XC16 编译器就可以了。MPLAB XC8 编译器提供了三种模式:免费(Free)、标准(Standard)、专业(PRO) 。标准和专业模式需要序列号来启用。无序列号的客户可以使用免费模式。基本的编译器操作、支持的器件和可用的存储器在三种模式中都是相同的,区别仅在于编译器的优化级别。如果我们要求的优化级别比较高,可以对 XC8 进行破解,破解方法见:http:/ MPLAB X IDE 集成开发环境和 XC8 等编译器以后,接下来就可以打开
6、MPLAB X IDE 进行相关设置了。双击 MPLAB X IDE 图标,然后点击顶部菜单栏的 Tools-Options, 点击“Embedded”图标,出现图 1.2 所示界面:图 1.2 MPLAB X IDE 编译环境设置界面点击“Add”,弹出图 1.3:MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 5 页 共 21 页图 1.3 MPLAB X IDE 添加新的编译工具路径设置界面点击“Browse ”,选择 XC8 及 XC16 的安装文件路径。将 XC8 及 XC16 编译工具添加进入开发环境中进行管理。以 X
7、C8 为例,完成后如下图所示:图 1.4 MPLAB X IDE 编译环境设置界面至此,已完成 PIC 单片机的开发及编译环境了。MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 6 页 共 21 页创建第一个项目:点击“File”“New Project”,弹出如下界面:图 1.5 MPLAB X IDE 新建工程选择界面点击“Next ”,出现如下 “Select Device”界面,选择我们的目标 CPU,这里以 PIC16F877A 为例:图 1.6 MPLAB X IDE 芯片选择界面继续点击“Next ”,出现“Sele
8、ct Tool”界面,选择我们的下载工具,这里选择“PICKit3”,如果当前MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 7 页 共 21 页选择的下载工具有效的话,会出现 SN 号,如下图所示:图 1.7 MPLAB X IDE 下载器选择界面选择“Next ”,进入 “Select Compiler”界面,选择我们的编译器,即所谓的语言工具。这里因为PIC16F877A 单片机是 8 位的,所以我们选择 XC8 编译器。图 1.8 MPLAB X IDE 编译器选择界面选择“Next ”,进入 “Select Projec
9、t Name and Folder”,设置工程名和工程路径。MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 8 页 共 21 页图 1.9 MPLAB X IDE 工程名及路径设置界面点击“Finish”完成工程的建立。刚刚建立的工程是没有任何内容的,如下图所示:图 1.10 MPLAB X IDE 新建工程后的界面接下去,我们就可以新建文件或添加已经存在的文件,完成软件工程的代码编辑工作。MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 9 页 共 21 页常用的工程
10、设置及工具含义:创建项目之后,可以在 Project Properties(项目属性)对话框中查看或更改项目属性。通过以下任一方式访问该对话框: 在 Projects 窗口中右键单击项目名称,然后选择“Properties”(属性)。 在 Projects 窗口中单击项目名称,然后选择 FileProject Properties。里面有我们经常要设置的目标板的供电方式及编译的优化等级等等。图 1.11 MPLAB X IDE 工程属性设置界面其它的一些设置基本都在“Tool ”-“Options”里面进行设置,如下图所示:MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重
11、庆海扶医疗科技股份有限公司 A/00 第 10 页 共 21 页图 1.12 MPLAB X IDE 选项设置界面基于 MPLAB X IDE 配置位设置 MPLAB X IDE 和 MPLAB IDE 8 不同。MPLAB IDE 8 可以再界限中选择配置位就行。配置选项可以不写在代码中。MPLAB X IDE 如果要配置的话必须在代码中写出配置。配置字中最重要的配置选项就是:看门狗配置 如:WDTE ; 一般选择关闭看门狗。MCLRE 复位脚的配置 如:MCLRE;一般选择复位脚作 I/O,PIC16F877A 无此选项。不用设置。震荡器的选择: 如:FOSC;根据实际情况配置,我这里一般
12、选用 XT,即标准的振荡频率1M4M。因为如果这三个没有配置好的话程序根本无法运行。其他配置可以看数据手册此不赘述。MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 11 页 共 21 页图 1.13 MPLAB X IDE 开发环境 PIC 设置位的设置界面实例介绍:打开 MPLAB X IDE 在菜单栏中 点击 Window-PIC Memory Veiws-Configuration bits,如下图所示:图 1.14 MPLAB X IDE 开发环境 PIC 设置位的设置界面2 在出现的 Configuration Bits
13、 中的改变每个配置中的 option 选项,红色的就是我们改变过的配置选项MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 12 页 共 21 页图 1.15 MPLAB X IDE 开发环境 PIC 设置位的设置界面3 配置完成后 点击 Genarate Source Code to Output 产生配置源代码。图 1.16 MPLAB X IDE 开发环境 PIC 设置位的设置界面将其中的#include MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 13 页
14、共 21 页#pragma config FOSC = XT / Oscillator Selection bits (XT oscillator)#pragma config WDTE = ON / Watchdog Timer Enable bit (WDT enabled)#pragma config PWRTE = OFF / Power-up Timer Enable bit (PWRT disabled)#pragma config BOREN = OFF / Brown-out Reset Enable bit (BOR disabled)#pragma config LVP =
15、 OFF / Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)#pragma config CPD = OFF / Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)#pragma config WRT = OFF / Flash Program Memory Write Enable bit
16、s (Write protection off; all program memory may be written to by EECON control)#pragma config CP = OFF / Flash Program Memory Code Protection bit (Code protection off)上述代码粘贴在 main.c 中即可。另外,为了编辑过程中支持中文注释,需要对编码格式进行更改,右键点击工程名,选择“Properties”-“General”,在 Encoding 下拉选项中选择“GB2312 ”选项。如图所示:图 1.17 MPLAB X ID
17、E 开发环境工程属性的设置界面下面重点介绍一下在 MPLAB X IDE 中如何使用 SVN。在介绍 SVN 的使用之前,先让我们来了解一下 SVN。SVN 是什么?MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 14 页 共 21 页有一个简单但不十分精确比喻: SVN = 版本控制 + 备份服务器简单的说,您可以把 SVN 当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容。并且自动的赋予每次的变更一个版本。通常,我们称用来存放上传档案的地方就做 Repository。用中文来说,有点像是档案仓库的意思
18、。不过,通常我们还是使用 Repository 这个名词。基本上,第一次我们需要有一个新增(add) 档案的动作,将想要备份的档案放到 Repository 上面。日后,当您有任何修改时,都可以上传到 Repository 上面,上传已经存在且修改过的档案就叫做 commit,也就是提交修改给 SVN server 的意思。针对每次的 commit,SVN server都会赋予他一个新的版本。同时,也会把每次上传的时间记录下来。日后,因为某些因素,如果您需要从Repository 下载曾经提交的档案。您可以直接选择取得最新的版本,也可以取得任何一个之前的版本。如果忘记了版本,还是可以靠记忆尝试
19、取得某个日期的版本。为什么要用 SVN? 备份工作档案是十分重要的。您永远不知道计算机上的硬盘何时会坏掉。根据经验法则再加上摩菲定理,坏事情往往都发生在最重要的时刻。例如,要 release 东西的前一刻,硬盘完全坏掉,无法修复。所以,常常备份工作数据是非常重要的。大部分公司的 server 都会有专门的备份机制,甚至是异地备援。绝对比放在自己的计算机里头,或是随身碟上面来的安全。版本控管非常重要。您无法保证手头上最新版本永远都是对的。很多时候,在经过数天努力工作后,您才发现走错方向。需要将所有的修改回复到数天前版本。没有几个人能够完全记住自己修改过什么东西。如果没有做好版本控管,那么,最差的
20、状况就是要全部重来。伙伴间的数据同步也是非常重要的。很多时候,除了您个人外,还有其它的伙伴也需要您的档案。怎么把最新的档案提供给伙伴呢?用 e-mail?根据经验,用 e-mail 是一个很差的办法。到了最后,根本就不知道哪一封 e-mail 才是新的。因为可能您最新的 e-mail 已经被当成垃圾信给丢了。别忘了,现在很多 e-mail 软件都有 anti-spam 的功能,说不定这些信件都被当成广告信给处理掉了。而且,您也应该知道一般档案如果放在 e-mail 内,档案大小会变得比较大(通常是原来的 4/3 倍以上) 。如果每天更新一次,恐怕几天没收信的话,信箱就爆了!如果没有一个好的办法
21、,备份不同版本是很耗费硬盘空间的。例如:您有一个总共 10MB 的目录,使用单纯的档案备份。如果有 10 个版本就会变成 100MB。20 个版本就有 200MB。如果,不想备份这么多版本,势必就是要减少备份的次数。拉长备份周期将会导致数据遗失的危险性增高。把旧的不需要的备份删除?根据经验,只要时间一拉长,您跟本就不知道一个月以前的版本是重要或者是不重要。SVN 能帮我们解决上面的问题吗?答案是肯定的:SVN Repository 可以是自己计算机上的一个目录,或者是随身碟(不建议这样用) 。当然也可以是公司的服务器。SVN 有很棒的版本控管机制。所有上传的版本都会帮您记录下来。日后您可以随时
22、取得某一个时刻的版本。而且,也有版本分支及合并等好用的功能。SVN 可以让不同的开发者存取同样的档案,并且利用 SVN Server 作为档案同步的机制。也就是说,您有档案更新时,无须将档案寄给您的开发成员。只需要告诉他新的版本已经在 SVN Server 上面,请他自己去 SVN Server 上面就可以取得最新版本。而且,SVN Server 也可以做到当您上传新版本后,自动发信给相关的成员。SVN 的存放档案方式是采用差异备份的方式。也就是说,他只会备份有不同的地方。所以很省硬盘空间。此外,他也可以针对所谓的非文字文件进行差异备份。MPLAB X IDE 快速操作指南 HIFU-TM-1
23、4*(TY)重庆海扶医疗科技股份有限公司 A/00 第 15 页 共 21 页MPLAB X IDE 具有一个内置的本地文件历史记录功能,这是NetBeans 平台的补充功能。该功能为本地项目和文件提供内置的版本控制支持,类似于传统的版本控制系统。可用工具包括本地DIFF 和文件恢复。在项目或文件窗口右键单击一个文件可以查看本地历史记录选项。要查看文件的本地历史记录: 在项目或文件窗口中右键单击文件,并选择Local History (本地历史记录) Show Local History (显示本地历史记录) 。此处将会列出过去对文件进行的所有更改。 在项目或文件窗口中右键单击文件,并选择Lo
24、cal HistoryRevert to (还原为) 。此时将打开Revert to 对话框,列出文档的所有先前版本。选择一个并单击OK 可还原为该版本。如果更偏好使用完整的版本控制系统,也提供了对于CVS、Subversion和Mercurial 的支持。 源代码控制可通过以下方式获取: ToolsOptions,Miscellaneous(杂项) ,Versioning(版本控制) 设置版本控制程序。 Team(团队)菜单选择版本控制程序子菜单。 WindowVersioning打开版本控制窗口。需要保存到存储库(repository)中的项目文件: MPLAB X IDE项目定义为包含n
25、bproject子目录的目录。该nbproject子目录包含编译项目映像所需的文件。nbproject下的一些文件将根据需要重新生成。因此,不需要将它们提交到版本控制存储库。将重新生成因而不需要保存在存储库中的文件包括: nbproject/Makefile-* nbproject/Package-* nbproject/private nbproject/private/* 其中,private是一个目录。 在MPLAB X IDE项目目录中,存在另一个仅在创建项目时创建的Makefile文件;因此应将它提交到存储库中。更多信息: 关于使用本地文件历史记录和/或源代码控制的更多信息,请参见N
26、etBeans帮助主题IDE BasicsVersion Control and File History(版本控制和文件历史记录)下的目录。关于以上源代码控制程序的进一步信息,请参见: CVShttp:/www.nongnu.org/cvs/ Subversionhttp:/subversion.tigris.org/ Mercurialhttp:/ X IDE最新版本也不能支持SVN1.7及以上版本,故如果使用MPALB 内部的集成SVN 菜单,只能下载SVN1.6版本到SVN1.5之间的版本。首先,介绍MPLAB X IDE内部集成的Subversion版本控制菜单的使用:第一步设置Su
27、bversion的安装路径及用户名密码等,依次,Tools-Options,Miscellaneous(杂项) ,Versioning(版本控制) ,Subversion,打开如下窗口,MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 16 页 共 21 页按图设置。图 1.18 MPLAB X IDE 开发环境 SVN 的设置界面执行Team-Subversion-Checkout,图 1.19 MPLAB X IDE 开发环境 SVN 的操作界面弹出如下界面:MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重
28、庆海扶医疗科技股份有限公司 A/00 第 17 页 共 21 页图 1.20A MPLAB X IDE 开发环境 SVN 环境设置界面点击“Next ”,弹出如下界面:图 1.20B MPLAB X IDE 开发环境 SVN 环境设置界面点击“Finish” ,完成文件从服务器到本地的下载,然后就可以添加到工程中,进行相关更改,可以看到,当我们编辑已经纳入到版本控制里面的文件时,再次点击“Team”菜单,里面的内容已经由图1.19变成了图1.20C的形式。更加方便我们进行版本控制的操作。MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00
29、第 18 页 共 21 页图 1.20C MPLAB X IDE 开发环境 SVN 环境设置界面下面重点介绍一下单独使用外部SVN来进行版本控制,这种控制方式也是比较推荐的,因为MPLAB X IDE支持的SVN版本比较低,基本不是主流的版本了。而且,经过测试,MPLAB X IDE对SVN 的支持也不好,在验证SVN的用户名和密码时存在BUG (也许是版本不兼容问题) 。SVN的安装和使用具体可以参见SVN 客户端操作指导 。当我们新开始一个软件工程开发时,首先申请SVN仓库申请一块空间,也就是得到一个SVN路径,当我们得到SVN 路径,就可以进行SVN 的版本管理了。我们先建立一个SVN工
30、作的文件夹,例如,我们先在E 盘建立一个SVN_WORK的文件夹,然后再在里面根据我们的工程实际建立一个文件夹,比如PIC16F877A(名称不推荐使用中文) 。右键点击“PIC16F877A”这个文件夹,在弹出的菜单中选择SVN Checkout,弹出图1.21,如下图所示:MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 19 页 共 21 页图1.21 SVN Checkout设置界面点击“OK ”,进入PIC16F877A文件夹,我们就可以发现多了一个 .SVN的隐藏属性的文件夹。打开MPLAB X IDE,根据我们上述章节
31、所描述,开始在PIC16F877A文件夹下面建立一个新的软件工程,并且在其工程文件夹中再分别建立Source,Header 文件夹,存放我们的C源文件和头文件。完成后如图1.22 所示:图1.22 新建CZF300_KEYBOARD 工程目录图新建我们项目的头文件及源文件,并放入相应的文件夹内。完成后如图1.23所示:MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 20 页 共 21 页图1.23 MPLAB X IDE新建立工程界面回到PIC16F877A文件夹的上层目录,在PIC16F877A文件夹上点击右键,弹出图1.24所示界面,在红色框框中填写软件提交的备注。MPLAB X IDE 快速操作指南 HIFU-TM-14*(TY)重庆海扶医疗科技股份有限公司 A/00 第 21 页 共 21 页图1.24 SVN Committed界面以下四类文件因为是在编译过程中产生的文件,因此不需要上传到SNV中: nbproject/Makefile-* nbproject/Package-* nbproject/private nbproject/private/* 在软件开发及调试的过程中,建议每天做一次版本的提交,并编写相关版本的备注。如果是多人开发,在每次软件更改前建议做一次SVN Checkout。