第2 章 MPLAB IDE 入门:基础教程

41
http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品 http://www.ajdz.net PIC单片机 图解入门教程 ver2.0 08-06-15 作者:王伟民 2006 爱晶电子发明工作室 版权所有 1

Transcript of 第2 章 MPLAB IDE 入门:基础教程

Page 1: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

爱 晶 电 子

http://www.ajdz.net

PIC单片机

图解入门教程

v e r 2 . 0 0 8 - 0 6 - 1 5

作 者 : 王 伟 民

2006 爱晶电子发明工作室 版权所有 1

Page 2: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

目 录

1.PIC单片机系统开发入门 .............................. 4

1.1 了解PIC单片机系统开发的一般过程 .............................. 4

1.1.1 硬件部分 ................................................ 4

1.1.2 软件部分 ................................................ 4

1.2 PIC单片机开发环境的建立 ...................................... 5

1.2.1 安装MPLAB IDE和PICC C编译器 ............................. 5

1.2.2 设置串口属性(使用TINY ICD2 的用户需阅读此部分,使用ICD2.5USB

的用户跳过此部分) .............................................. 5

1.2.3 安装USB 驱动(使用ICD2.5USB的用户需阅读此部分,使用TINY ICD2

的用户跳过此部分) .............................................. 8

1.2.4 设置开发板 .............................................. 9

1.2.5 硬件连接 ............................................... 10

1.3 如何完成一个项目的开发 ...................................... 13

1.3.1 启动MPLAB IDE .......................................... 13

1.3.2 创建源文件 ............................................. 14

1.3.3 创建项目 ............................................... 17

1.3.4 给项目节点添加文件 ..................................... 18

1.3.5 选择器件 ............................................... 20

1.3.6 设置配置位 ............................................. 21

2006 爱晶电子发明工作室 版权所有 2

Page 3: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

1.3.7 选择ICD 2 作为调试器 ................................... 22

1.3.8 通过向导完成调试器的设置 ............................... 22

1.3.9 建立PC与ICD2 之间的通讯连接 ............................ 26

1.3.10 更新ICD 2 固件(操作系统) ............................ 26

1.3.11 为调试生成目标文件(也就是我们通常说的“编译”) ...... 28

1.3.12 为调试烧写目标代码 .................................... 31

1.3.13 在调试器模式下运行exam1 ............................... 32

1.3.14 调试exam1 ............................................. 33

1.3.15 在编程器模式下烧写目标代码 ............................ 38

1.3.16 文件保存 .............................................. 39

2006 爱晶电子发明工作室 版权所有 3

Page 4: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

1.PIC 单片机系统开发入门

1.1 了解 PIC 单片机系统开发的一般过程

1.1.1 硬件部分

一般情况下建议大家购买现成的开发板,如3ePIC PLUS开发板,这样硬件部分可

以很快搭建起来,如果用户方案中有开发板所没有的特殊接口电路,那么用户可以自

行设计并焊在点阵板上,由于3ePIC PLUS开发板采用“全开放”、“全模块化”设计,

自行设计的电路可以很方便地和开发板连接成一个完整的系统。

1.1.2 软件部分

由6步组成:

1.用汇编语言或C语言编写源程序。

2.将源程序编译成目标代码(机器码)

3.用硬件调试器将目标代码写入到单片机中。(若没有硬件调试器,跳过此步骤)

4.用硬件调试器(也称仿真器)完成软件的调试,排除所编程序中存在的各种错误。

(若没有硬件调试器,可选用MPLAB IDE自带的软件仿真器,完成此步骤)

5.重新编译,用编程器(也称烧写器)将调试成功的目标代码写入到单片机中。

6.单片机通电,运行目标代码。

如果您能保证您所编写的程序绝对没有问题,也可以跳过步骤3、4。

注意:ICD2既是一个调试器,也是一个编程器,也就是说:一台机器同时拥有两种功

能,由于其性价比很高,目前得到了广泛的应用。

2006 爱晶电子发明工作室 版权所有 4

Page 5: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

1.2 PIC 单片机开发环境的建立

1.2.1 安装 MPLAB IDE 和 PICC C 编译器

MPLAB 集成开发环境(IDE)是一个综合的设计平台,适用于使用Microchip

PICmicro 和dsPIC 单片机进行嵌入式设计的应用开发。上面提及软件开发的6个步

骤中的1-5步骤,均需在此平台上完成。

MPLAB 集成开发环境(IDE)完成的功能是:

1.完成源程序的编写。

2.将源程序编译成目标代码。

3.配合硬件调试器、开发板完成软件的调试。

4.配合编程器将调试成功的目标代码写入到开发板的单片机中。

MPLAB IDE安装的具体步骤如下:

先不要连接硬件,双击配套光盘\PIC开发软件\MPLAB_IDE_8.0英文版

\Install_MPLAB_v8.exe进行安装,安装完成后按系统提示重新启动计算机。

注意: Windows xp操作系统,需要管理员权限才能安装该软件。

如果您用汇编语言编写程序,您不必安装MPASM汇编器,它是包含在MPLAB 集成

开发环境(IDE)中的。但如果您用C语言编写程序,则还需要安装PICC C编译器,具

体安装方法请参见配套光盘该软件中的安装说明。

1.2.2 设置串口属性(使用 TINY ICD2 的用户需阅读此部分,使用 ICD2.5USB 的用

户跳过此部分)

1.先不要连接硬件, 依次点“开始” ->“ 设置”->“控制面板”->“系统”,打

开“我的电脑”进入“控制面板”,出现系统属性窗口:

2006 爱晶电子发明工作室 版权所有 5

Page 6: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

2.再依次点“硬件”->“设备管理器”,出现设备管理器窗口,在设备管理器窗口中

再双击“端口(COM 和 LPT)”,展开全部可用的串并口:

2006 爱晶电子发明工作室 版权所有 6

Page 7: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

3.双击我们要使用的串口“通信端口(COM1)”,弹出COM1的属性设置窗,如下图:

4.点击“高级(A)”进入缓冲设置窗口,去掉“使用 FIFO 缓冲区”前面的钩,如

下图:

2006 爱晶电子发明工作室 版权所有 7

Page 8: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

5.设置好以后点击“确定”退出高级设置,再“点击”确定退出串口属性设置,关闭设

备管理区以及控制面板等。

6.重新启动电脑以使上面的硬件设置生效(此步骤切勿忘记!否则,上述设置不会

实际生效,将无法正常使用 ICD2)。

注意:设置好以后,ICD2必须始终使用这个串口或USB口,不要随便调换成其他的串

口或USB口!

1.2.3 安装 USB 驱动(使用 ICD2.5USB 的用户需阅读此部分,使用 TINY ICD2 的

用户跳过此部分)

下面以目前最常用的WINDOWS XP SP2操作系统为例,说明安装方法:

用随机配套的USB连接线连接ICD2至电脑任何一个USB口,系统会提示找到了一

个新硬件设备,如下图:

2006 爱晶电子发明工作室 版权所有 8

Page 9: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

选择“自动安装软件”,点下一步,系统会自动安装所需的驱动。

注意:您必须先安装MPLAB IDE,否则USB 驱动将无法成功安装!!!

1.2.4 设置开发板

对开发板的相关短路帽进行设置,后面的演示实例是由ICD2给开发板供电的,J1

上所有短路帽去除,其余短路帽采用出厂默认设置,无需变动。。

注意:对开发板进行任何硬件操作之前,都必须切断开发板的供电!!!

2006 爱晶电子发明工作室 版权所有 9

Page 10: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

1.2.5 硬件连接

选用ICD 2.5USB的用户阅读以下部分:

1.ICD 2-USB和PC机之间用USB 电缆连接,这一步前面已经完成了,由于USB电

缆本身有5V的供电,因此ICD2-USB无须再接上电源适配器。

2.ICD 2-USB和开发板之间用在线调试编程电缆连接,在线调试编程电缆是一根两

端为6芯水晶头的扁平电缆。

3.后面的演示实例是由ICD2给开发板供电的 ,因此开发板不要接外接电源,J1上所

有短路帽去除。

提醒:开发板需要的供电电流不超过400 mA时,可由ICD 2供电,超过400 mA时,应

2006 爱晶电子发明工作室 版权所有 10

Page 11: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

由开发板外接电源供电。

特别注意:

1、如需拔出 USB 电缆,拔出前务必将 programmer 或 debugger 选择为 None!具体操

作 : (Programmer-->Select Programmer-->None) 或 (debugger-->Select

tool-->None),否则有可能出现下列错误提示:

如果已经出现该错误提示,可按下述两种方法之一解决:

第一种:请拔出 USB 线(等待"叮咚声"1 次的发生)-->然后在未插入 USB 线的情况下,

按软件里的联机 (programmer 或 debugger-->connect)-->再插入 USB 线(等待"叮咚

声"1 次的发生)-->联机 (programmer 或 debugger-->connect)-->OK!

第二种:先将 programmer 或 debugger 选择为 None,拔出 USB 线(等待"叮咚声"1 次

的发生)--> 插入 USB 线(等待"叮咚声"1 次的发生) -->然后重新选择 programmer 或

debugger 为 ICD2, -->联机 (programmer 或 debugger-->connect)-->OK!

重新插入USB电缆后,不要立即启动MPLAB IDE(否则也会导致上述错误的产生),

要等10秒种左右,因为系统对USB设备的自动识别需要一段时间。如果过早启动MPLAB

IDE而出现了上述错误,也没有关系,重新连接就可以了(programmer或

debugger-->connect))。

操作技巧:在开发过程中,USB电缆或串口电缆一般是始终连着的,但在线编程调试

电缆可以根据需要断开和接上。

选用TINY ICD2的用户阅读以下部分:

1.TINY ICD2和PC 机之间先用RS-232电缆连接,RS-232电缆一般连接到PC机的串

2006 爱晶电子发明工作室 版权所有 11

Page 12: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

口1(COM1)。

2.TINY ICD2和开发板之间用在线调试编程电缆连接,在线调试编程电缆是一根两

端为6芯水晶头的扁平电缆。

3.TINY ICD2是开发板通过6芯线来供电的,因此开发板应当接自己的外接电源或用

USB线供电。

2006 爱晶电子发明工作室 版权所有 12

Page 13: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

1.3 如何完成一个项目的开发

通过上面的几个步骤,已经建立了开发PIC单片机系统所必需的软硬件环境,下

面我们通过演示程序来介绍开发一个简单项目的整个过程,这个演示程序可在赠送光

盘的3ePIC PLUS\3ePIC PLUS lessons\1-2\目录下找到,它能实现二进制方式的自动递

增计数(计数间隔时间为1S),并将结果显示在8个LED上。

1.3.1 启动 MPLAB IDE

用下面任何一种方法启动该软件:

• 选择Start>Programs>Microchip>MPLAB IDE 7.41>MPLAB IDE。

• 双击桌面上的MPLAB IDE 图标。

2006 爱晶电子发明工作室 版权所有 13

Page 14: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

1.3.2 创建源文件

1.选择File(文件)>new…(新建),出现一个文本编辑窗口,在该窗口中输入以

下汇编语言源程序:(这里输入C语言源程序也可以,C语言就是写源程序的时候与汇

编不一样外,其他和汇编时都是一样的)

;------------------------------------------------------------------------

;软件延时自动计数实验参考程序(实验1-2.asm)

;------------------------------------------------------------------------

STATUS EQU 03H ;特殊功能寄存器定义

TRISD EQU 88H ;特殊功能寄存器定义

PORTD EQU 08H ;特殊功能寄存器定义

TRISC EQU 87H ;特殊功能寄存器定义

PORTC EQU 07H ;特殊功能寄存器定义

ORG 0000H ;复位地址

NOP ;MPLAB专用语句

ST BSF STATUS,5 ;选择体1

2006 爱晶电子发明工作室 版权所有 14

Page 15: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

CLRF TRISD ;PORTD设置为输出

CLRF TRISC ;PORTC设置为输出

BCF STATUS,5 ;选择体0

CLRF PORTD ;PORTD清零

BSF PORTC,0 ;RC0置高,选通LED

LOOP CALL DELAY1S ;调用1S延迟程序

INCF PORTE ;PORTD+1

GOTO LOOP ;循环操作

;------------------------------------------------------------------------

;1秒延时子程序参考程序

;------------------------------------------------------------------------

DELAY1S MOVLW 06H ;外循环常数

MOVWF 20H ;外循环寄存器

LOP0 MOVLW 0EBH ;中循环常数

MOVWF 21H ;中循环寄存器

LOP1 MOVLW 0ECH ;内循环常数

MOVWF 22H ;内循环寄存器

LOP2 DECFSZ 22H ;内循环寄存器递减

GOTO LOP2 ;继续内循环

DECFSZ 21H ;中循环寄存器递减

GOTO LOP1 ;继续中循环

DECFSZ 20H ;外循环寄存器递减

GOTO LOP0 ;继续外循环

RETURN ;返回

;------------------------------------------------------------------------

END

;------------------------------------------------------------------------

注意:1、为了演示程序的调试过程,上面输入的源程序中人为地加入了一个错误!

2、由于篇幅关系,本教程不涉及程序的编写。要了解如何编写源程序,请参

考有关书籍,这里向大家推荐李学海老师写的《PIC单片机原理》一书。

2006 爱晶电子发明工作室 版权所有 15

Page 16: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

2.先创建文件夹D:\myprj,然后将上面输入的源程序保存该文件夹,注意文件的

扩展名为asm,这里我们将它保存为exam1.asm:

文件保存后,我们发现源程序编辑窗口中的程序被着上了各种颜色,这些颜色能

帮助我们更好地阅读源程序,快速发现输入有误的指令:

2006 爱晶电子发明工作室 版权所有 16

Page 17: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

1.3.3 创建项目

项目是将文件组织起来以便进行编译和汇编的方式。

选择Project(项目)>new…(新建),出现New Project(新项目)对话框:

在New Project(新项目)对话框中,我们将这个示例项目命名为MyPrj,使用

Browse 按钮,将项目放在名为D:\myprj的文件夹中。

单击OK按钮,在MPLAB IDE 界面上我们会看到已创建项目的的项目窗口,如下

图:

2006 爱晶电子发明工作室 版权所有 17

Page 18: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

如果项目窗口未打开,请选择View>Project。

1.3.4 给项目节点添加文件

源文件是必须添加的。其他文件,如头文件、库文件、链接描述文件,视项目的

具体情况可加可不加。

在本实例中,只添加一个源文件exam1.asm,在左边的项目窗口中找到Source

Files节点,在其上点鼠标右键,在弹出的快捷菜单中选Add Files:

双击要添加的文件exam1.asm,或单击要添加的文件exam1.asm,然后点“打开”按纽:

2006 爱晶电子发明工作室 版权所有 18

Page 19: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

文件添加成功后的项目窗口如下,Source Files节点下已经添加了文件 exam1.asm:

配套例程有不少例程除添加源文件外,还要添加头文件my.inc。具体可以看每个

2006 爱晶电子发明工作室 版权所有 19

Page 20: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

例程源文件的开头部分,若有INCLUDE"MY.INC"语句,则该例程是需要添加头文件的。

头文件应添加到项目窗口的Header files节点下,具体添加方法同上。

1.3.5 选择器件

1.选择Configure>Select Device。

2.在Select Device 对话框中,点device栏右边的下拉箭头,选择器件为16F877A,

注意一定要后面有A的!(提醒:16F877A与16F877是两个内部结构和功能不同的芯片,

两个芯片不能直接相互替换,所以千万不要误选成16F877!),在Microchip Programmer

Tool Support 部分中, MPLAB ICD 2 旁边的“灯”图标应为绿色:

说明:MPLAB ICD 2 支持的器件会在Microchip Programmer Tool Support 下MPLAB ICD

2 旁边有一个“绿灯”图标。不支持的器件则有一个“红灯”图标。而“黄灯”图标

表明可以选择这个器件,但可能有某些限制,可能不适于量产,但它可以让MPLAB ICD

2006 爱晶电子发明工作室 版权所有 20

Page 21: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

2 做试用。

3.点击OK。

1.3.6 设置配置位

设置要烧写到器件中的配置位,选择Configure>ConfigurationBits。通过点击

“Settings”栏中的文本,可以更改这些配置位。

对于本演示实例,应该在这个对话框中设置这些配置位如下:

Oscillatot 振荡方式选择,由于开发板使用的是4MHz晶振,因此选XT,也可以选HS

Watchdog Timer 看门狗使能位,本实例未使用看门狗,因此设置为off

Power Up Timer 上电廷时使能位,一般选择为 on 有利于芯片起振,也可以选off。

Brown Out Detect 掉电检测使能位,ICD2作调试工具时一定要选择为 off!

Low Voltage Program 低压编程使能,必须选择为 off!

Flash Program Write 写 FLASH 使能,选择为Write Protection off(写保护关闭)。

Data EE Read Protect 读内部 EEPROM 保护位, 用 ICD2 作调试工具时一定要选择

为 off!

2006 爱晶电子发明工作室 版权所有 21

Page 22: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

Code Protect 加密位, 用 ICD2 作调试工具时一定要选择为 off!

1.3.7 选择 ICD 2 作为调试器

1.选择Debugger>Select Tool>MPLAB ICD 2。Debugger 菜单会显示可用的其它

调试选项。同时,Output 窗口会打开显示连接信息:

注意:ICD2 作为调试工具时所烧写的程序只能用于仿真调试,不能够脱机使用,若

要烧写能脱机使用程序,就要选择Programmerr>Select Programmer>MPLAB ICD2将

MPLABICD2作为编程工具。

1.3.8 通过向导完成调试器的设置

1.选择 Debugger>MPLAB ICD2 Setup Wizard…,启动 ICD2 调试器设置向导:

2006 爱晶电子发明工作室 版权所有 22

Page 23: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

2.选择 USB 或 COM 端口/波特率。使用 ICD2-USB 时通信口选 USB,使用 TINY ICD2

时选通信口 COM1、波特率选 57600:

2006 爱晶电子发明工作室 版权所有 23

Page 24: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

3.确定是否由ICD2对开发板供电。本演示实例由ICD2向开发板供电,因此选中“Power

target from the MPLAB ICD2”:

4.自动连接前面最好打上钩,这样不用手动连接,比较方便:

2006 爱晶电子发明工作室 版权所有 24

Page 25: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

5.自动下载 OS(操作系统)前面最好打上钩,这样不用手动下载 OS(操作系统),

比较方便:

6.完成:

2006 爱晶电子发明工作室 版权所有 25

Page 26: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

1.3.9 建立 PC 与 ICD2 之间的通讯连接

手动连接:选择Debugger>Connect 连接到MPLAB ICD 2。

自动连接:如果ICD 2设置中选择了选择“Automatically connect at startup”,那么

系统会自动连接。

输出窗口提示“…Connected”,并且没有出现红色的警告或错误信息,表示已经

正常连接:

注: 使用TINY ICD2的用户注意,IDE有时会自作聪明地将通讯端口设置USB,如果输

出窗口提示连接失败,请检查通讯端口设置是否正确,然后再连接!

1.3.10 更新 ICD 2 固件(操作系统)

由于不同型号的单片机使用不同的ICD2 固件,当切换到一个不同型号的单片机

时,会出现一条消息提示固件需要更新。

2006 爱晶电子发明工作室 版权所有 26

Page 27: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

点OK即可,MPLAB IDE 会自动安装新固件。

特殊情况下,固件也可以按照以下步骤手动更新:

1.选择Debugger>Download ICD2 Operating System。Select ICD 2 Firmware File

对话框会打开。

2.从列表中选择或者浏览需要下载的固件。文件名形式为icdxxxxxx.hex,其中

xxxxxx 为版本号。不用东找西找了,对话框中显示的那个文件就是,直接点打开就

可以了。

2006 爱晶电子发明工作室 版权所有 27

Page 28: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

3.点击Open。MPLAB IDE 会把新的操作系统下载到MPLAB ICD 2中。

注意:如果您始终用同一种型号的芯片,除第一次外不会弹出更新固件对话框,如果

没有弹出更新固件对话框,通常无需手动更新,可以跳过这一步骤。

1.3.11 为调试生成目标文件(也就是我们通常说的“编译”)

注意:为调试生成目标文件(.HEX 文件)之前,必须已经选择ICD 2 作为调试器!!!

选择Project>Build All 或在项目窗口中的项目名称上点击右键,并从弹出菜单中

选择“Build All”。

MPASM 汇编器总会生成文件名与源文件(.asm 文件)名相同的目标文件(.hex

文件)。

编译时会打开一个状态窗口,显示编译的进度和最后的结果。编译完成后自动关

闭该窗口。 同时还将打开Output 窗口,Output 窗口没有出现红色警告或错误信息,

而且最后一句显示“BUILD SUCCEEDED”,就表示编译成功了:

2006 爱晶电子发明工作室 版权所有 28

Page 29: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

如果编译失败,请检查以下各项,然后重新编译项目:

1.检查在编辑器窗口中输入的所有代码的拼写和格式。如果在Output 窗口中报告有

错,双击该错误就会在源代码窗口左侧的灰色区域中以绿色箭头指出源代码中出错的

行。

2. 查用于该项目及其项目文件的语言工具设置是否正确。

点Project下拉菜单的Select Language Toolsuite,如下图:

如果您用汇编语言编写程序,检查“Active Toolsuite”中显示的是否为

“Microchip MPASM Toolsuite”,若不是请更正。

2006 爱晶电子发明工作室 版权所有 29

Page 30: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

如果您用 PICC C 语言编写程序,检查“Active Toolsuite”中显示的是否

为“HI-TECH PICC Toolsuite”,若不是请更正。

为初学者解释几个概念:.

.asm 文件是我们用汇编语言(一种类似英语缩写的语言)写的源程序,.C 文件

是我们用C语言(一种类似英语的语言)写的源程序,但单片机无法识别和运行源程

序,单片机只能看懂由0和1组成的机器码,因此这里需要一个“翻译”的过程,称为

2006 爱晶电子发明工作室 版权所有 30

Page 31: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

“汇编”或“编译”,编译的作用就是把单片机无法识别的汇编源程序翻译成单片机

能识别的机器码,由于机器码是最终在单片机上运行的代码,因此也称为目标代码,

其后缀是.hex。

另外,整个“翻译”的过程是由一个小小的工具软件完成的,它就是MPLAB IDE

自带的MPASM汇编器或C编译器(本教程采用PICC C编译器)。当您选择Project>Build

All的时候,系统会自动调用MPASM汇编器或C编译器,自动完成整个编译过程。

1.3.12 为调试烧写目标代码

在调试之前,必须把目标代码烧写到目标单片机中。

选择Debugger>Program,把目标文件exam1.hex(目标文件中包括的就是目

标代码) 烧写到3ePIC PLUS开发板上的PIC16F877A中。

烧写可能需要几分钟时间。在烧写过程中, Output 对话框的MPLAB ICD 2 选

项卡下会显示目前的操作阶段。Output 窗口没有出现红色的警告或错误信息,而且

倒数第3句显示“…Programming succeeded”,就表示烧写成功了:

2006 爱晶电子发明工作室 版权所有 31

Page 32: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

提醒:进入调试模式的一个必要条件是,开发板或您的应用系统已经加了晶振。如编

程器模式下烧写没问题,但调试器模式下烧写不成功,通常是开发板或您的应用系统

忘了装上晶振!

注意:初学者容易将Debugger(调试器)下拉菜单下的Program(编程)命令和

Programmer(编程器)下拉菜单下的Program(编程)命令混为一谈,其实这是两个

作用完全不同的命令,切记:在调试器模式下,必须使用调试器下拉菜单下的Program

命令,同样,在编程器模式下,必须使用编程器下拉菜单下的Program命令!!!同

时也不要以为:在编程器模式下已经执行“Program”命令了,因此切换到调试器模

式时,就可以不用执行了调试器模式下的“Program”命令了,这是大错特错的,反

之也是一样。

Debugger(调试器)下拉菜单下和rogrammer(编程器)下拉菜单下还有许多命令

字面上一样,但实际功能是不一样的,注意不要混淆!

进一步的解释,初学者可以跳过不读:

执行Debugger(调试器)下拉菜单下的Program(编程)命令时,系统会自动在用

户编写程序的目标代码中加入调试执行代码,调试执行代码会自动烧写到程序存储器

的高端地址,以便用MPLAB ICD 2 来进行调试。执行Programmer(编程器)下拉菜单

下的Program(编程)命令时,只将用户编写程序的目标代码烧写到程序存储器中,

和一般单片机的编程性质完全一致,由此可见,这两个编程命令的作用是完全不同的。

1.3.13 在调试器模式下运行 exam1

进入调试模式后,工具栏会多出调试器快捷工具条,见下图:

从左到右分别是

1.run –全速运行

2.halt –暂停

3.animate –自动单步(或称为慢速运行)

4.step into –单步运行(子程序内部也单步运行)

2006 爱晶电子发明工作室 版权所有 32

Page 33: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

5.step over --单步运行(子程序内部代码被全速执行,整个子程序被作为单步运

行中的一步来执行的)

6.step out --跳出子循环(当程序运行在子程序中时,可以使用它直接运行完该子

程序)

7.reset –复位

MPLAB ICD 2 在调试器模式下可以实时或单步执行代码,实时执行代码又称

“全速运行”,调试器模式下的“全速运行”与单片机脱离开发系统独立运行时的“全

速运行”没有太大的区别,单步执行代码又称“单步运行”。

我们首先执行调试器模式下的“全速运行”。

选择Debugger>Run (或点击Run 工具栏按钮)。

如果我们编写的程序没有错误,我们将在开发板上看到8个LED显示8位二进制递

增数。但遗憾的是,8个LED上面什么也没有显示,程序没有按我们的要求运行,说明

程序有错误,不必担心,利用调试器模式下的单步运行、变量观察窗口、断点等调试

手段可以查找出任何错误。

先选择Debugger>Halt(或点击Halt 工具栏按钮)来中止程序执行。

1.3.14 调试 exam1

1.我们首先在把累加值输出到LED的那一行设置断点。在需要设置断点的语句上双击,

这一行的行首就出现如下图所示的断点标记了(红色的B 停止标记):

2006 爱晶电子发明工作室 版权所有 33

Page 34: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

2.打开一个新的Watch 窗口,来观察随着程序的执行输出端口(PORTD)寄存器

值的变化。选择View>Watch。从Add SFR 按钮旁边的列表中选择“PORTD”,再

点击这个按钮,PORTD加到了Watch窗口中,如下图所示:

2006 爱晶电子发明工作室 版权所有 34

Page 35: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

3.现在我们调整源程序窗口和观察窗口的大小,使它们同时可见,这样便于观察源

程序的执行和被观察寄存器数据的变化:

2006 爱晶电子发明工作室 版权所有 35

Page 36: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

4.选择Debugger>Run(或者点击Run 工具栏按钮),再次全速运行程序。当程序

执行到被标记断点的行时,程序会中止执行,绿色箭头停在源代码窗口第24行“GOTO

LOOP”,表示下一条将被执行的指令是“GOTO LOOP”:

2006 爱晶电子发明工作室 版权所有 36

Page 37: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

5.此时我们观察观察窗口,PORTD的内容是0X00(就是16进制00)。

6.再选择Debugger>Run(或者点击Run 工具栏按钮),再次全速运行程序。当程

序执行到被标记断点的行时,程序同样又中止执行。我们再观察观察窗口,PORTD

的内容怎么还是0X00,应该是0X01才对呀,显然PORTD端口没有执行加1操作,仔

细观察第23行语句“INCF PORTE”,原来在输入的时候将PORTD错输成了

PORTE。

7.将第23行语句修改为“INCF PORTD”,同时在该语句上双击左键,去消该

语句上设置的断点。

8.选择File>Save ,保存修改。

9.选择Project>Build All ,重新编译项目。

10.选择Debugger>Program,重新烧写修改过的程序。

提醒:源程序每次修改后都必须执行“保存”、“编译”、“烧写”这三个步骤!

11.选择Debugger>Run(或者点击Run 工具栏按钮),全速运行程序。此时8个LED

已经显示正常了。

本演示实例中的源代码只包含一个非常简单的错误,调试时没有使用“单步执

2006 爱晶电子发明工作室 版权所有 37

Page 38: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

行”。单步执行是一种很常用的调试手段,适合于排除流程故障(程序未按照预设的

流程运行)。选择Debugger>Step (或者点击Step 工具栏按钮)来单步执行程序。

建议使用工具栏按钮,当您不断点击Step 工具栏按钮时,语句就会随着您的点击一

条一条地运行,绿色箭头不断地移动,时时指向下一条将被执行的指令。

许多时候,程序的调试会比编写花费更多的时间和精力。一段实际的代码可能包

含有很多的错误,排除这些错误,不仅需要必要的调试技巧,同时也要求程序员有良

好的心理素质,尤其是初学者,遇到错误不要惊慌,编程出现错误实在是一件很正常

的事,要坚信任何错误都是可以排除的,充分利用ICD 2 和MPLAB IDE 的调试功能,

您完全可以成功地定位和修复其代码中存在的错误。如果错误很多,宜采用“缩小包

围圈”的排错策略,逐步排除错误。

1.3.15 在编程器模式下烧写目标代码

当程序成功调试并运行后,下一步是在编程器模式下烧写PIC单片机,以便它能

脱离开发系统独立工作。

进行这一步时,为ICD 保留的资源被释放。(这句话,初学者可以不用去管它)

按照以下步骤进行烧写:

1.选择Debugger>Select Tool>none,禁止MPLAB ICD 2 作为调试器。

2.在Programmer>Select Tool菜单中,选择MPLAB ICD 2作为编程器。

3.选择Programmer>MPLAB ICD2 Setup Wizard…,通过向导完成编程器的设置。

(方法和前面“通过向导完成调试器的设置”时一致)

4.选择Programmer>Program。

当用户使用MPLAB IDE中的编程器模式时,编程(也称烧写)完成后,开发板处

于停止运行状态,点programmer菜单下的Release from reset命令开发板才会进入运

行状态。

用户要想让开发板复位,采取的操作是先点programmer菜单下的hold in reset

命令,后点Release from reset,即完成一次复位。

注意:现在开发板是独立运行的,ICD2 只是为开发板供电。当然开发板也可以

2006 爱晶电子发明工作室 版权所有 38

Page 39: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

不由 ICD2 供电,改由自己的外接电源供电,只要断开在线调试编程电缆,开发板 P1

中插入外接电源插头,同时开发板 J1 座的标有 AC/DC 和*的两个插针间插上短路帽,

如下图:

正常情况下,开发板上的电源指示灯 LED8 会点亮。

开发板由自己的外接电源供电时,系统的复位由复位按钮SW-RST来控制。

1.3.16 文件保存

开发工作中途及完成后,要及时进行文件的保存,可以选择File>Save

Workspace,保存为工作空间文件或选择Project>Save Project,保存项目文件。

下面对这两种文件类型及其区别进行说明:

Project(项目文件) 文件后 为.mcp。包括了编译所需的源文件、连接

文件、头文件……及这些文件间的组织结构,同时还包括了芯片设置、

配置位设置等。

2006 爱晶电子发明工作室 版权所有 39

Page 40: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

Workspace(工作空间文件) 文件后 为.mcw。在项目文件包含的内容

基础上,还进一步包含了调试器或编程器的选择,已打开的窗口等。

简单地说:项目文件就是程序员辛辛苦苦做出来的“产品”,工作空间

文件比项目文件多包括了一些内容,多包括的内容其实就是做“产品”

过程中用到的各种工具,例如当前您正在调试程序,为此选择了 ICD2

调试器,还打开了变量观察窗口,这些在工作空间文件中也会被保存。

如果您的项目还没有最终完成,那么在保存时应该保存为工作空间文件

类型,下一次打开时,应该打开这个工作空间文件( .mcw 文件),这样

出现在您面前的一切和您上次看到的一模一样,您可以方便地继续您未

完成的工作。

如果您的项目很简单,立马就完成了,那么在保存时您可以保存为任何

一种文件类型。

2006 爱晶电子发明工作室 版权所有 40

Page 41: 第2 章 MPLAB IDE 入门:基础教程

http://www.ajdz.net 爱晶电子网站 做人人都买得起的 PIC 精品

版权声明:

本入门教程为爱晶电子网站原创作品,欢迎网上下载、转载、传播!爱晶电子保

留该教程的所有权、修改权、署名权。

该教程编写比较仓促,可能会存在错误或不当之处,欢迎朋友们指正。

我们的联系方式:

地址:(312300)浙江省上虞市百官恒利西4区6-305 联系人:王伟民

电话:0575-82263178

网站:http://www.ajdz.net

QQ:634653011

MSN:[email protected]

E-mail:[email protected]

2006 爱晶电子发明工作室 版权所有 41