2023年12月13日发(作者:)

实验一MPLABIDE集成开发环境

实验一MPLAB IDE集成开发环境

一、实验目的

1.熟悉MPLAB IDE集成开发环境,学习MPLAB软件的使用。

2.熟悉汇编语言的程序结构及使用方法。

3.熟悉MPLAB IDE的调试方法。

二、实验仪器设备

MPLAB IDE8.0 PC机APP009实验开发板ICD2调试器

三、实验原理

MPLAB 集成开发环境(IDE)是综合的编辑器、项目管理器和设计平台,适用于使用Microchip 的PIC系列单片机和数字信号控制器进行嵌入式设计的应用开发。用户界面上的某些部分可能会在将来的版

本中有所变化,当新的器件推出时,新的功能也会添加进来。

MPLAB IDE 是适用于PIC系列单片机和dsPIC数字信号控制器,基于Windows操作系统的集成开发环境。MPLAB IDE 提供以下功能:

(1)使用内置编辑器创建和编辑源代码。

(2)汇编、编译和链接源代码。

(3)通过使用内置模拟器观察程序流程调试可执行逻辑;或者使用MPLABICE 2000和MPLAB ICE4000 仿真器或MPLABICD 2 在线调试器实时调试可执行逻辑。

(4)用模拟器或仿真器测量时间。

(5)在观察窗口中查看变量。

(6)使用MPLAB ICD 2、PICSTART? Plus 或PRO MATE? II 器件编程器烧写固件。(7)使用MPLAB IDE 丰富的在线帮助快速找出问题的答案。

四、实验内容

创建项目与调试,MPLAB IDE的入门使用学习。汇编语言的程序结构及使用方法的学习。

五、实验操作步骤

1.运行MPLAB IDE

要启动IDE,双击桌面上的图标,或者选择Start>Programs>Microchip MPLABIDE>MPLAB IDE。屏幕上首先会显示MPLAB IDE 的商标图案,然后出现MPLAB IDE的主窗口。

为了生成可由目标PIC 单片机或dsPIC数字信号控制器执行的代码,需要将源文件放入同一个项目中,然后用所选择的语言工具(汇编器、编译器和链接器等)编译代码。在MPLAB IDE 中,项目管理器

负责管理这一过程。

第一步是写一个源代码文件。然后,创建一个项目,将源代码加入此项目,并且为此项目指定语言工具。最后,编译和测试代码。

2.编写源代码

首先使用MPLAB IDE 编辑器为应用编写代码。选择File>New,在工作区中打开一个空

白的编辑窗口。输入汇编代码。把文件保存在一个名为examples 目录下,取名为shiyan1.s 。

在编写汇编程序时,可以使用汇编源程序的模板文件,把模板源文件复制到自己创建的工程文件夹下,重新命名。打开重新命名后的模板文件,在里面编写自己的代码,把模板中不需要的代码和内容可

以用(;)号进行屏蔽(例如中断程序的屏蔽)。模板源文件在

C:Program FilesMicrochipMPLAB ASM30 SuiteSupporttemplatesassembly文件夹内,使用tmp6010.s模板文件。要对模板文件进行修改,以适应自己的工程。

.text ;Start of Code section

__reset:

; MOV #__SP_init, W15 ;Initalize the Stack Pointer

; MOV #__SPLIM_init, W0 ;Initialize the Stack Pointer Limit Register

; MOV W0, SPLIM

; NOP ;Add NOP to follow SPLIM initialization

; CALL _wreg_init ;Call _wreg_init subroutine

MOV.B #0xf0, W0

MOV #0x1000, W0

MOV #0x0001, W6

MOV.B W0, W1

; CLR W6

SUB.B W0, #0x10, W1

ADD.B W0, W1, W2

MOV #0x30, W0

MOV #0x1000, W0

MOV W0, W1

MOV #0x5A5A, W0 ; 将0x5A5A 装载至W0

MOV #0x3636, W1 ; 将0x3636 装载至W1

PUSH W0 ; 将W0 中内容压入TOS

PUSH W1 ; 将W1 中内容压入TOS

POP W3 ; 将W3 中内容压入TOS

;<>

done:

BRA done ;Place holder for last line of executed code3.使用项目向导创建工程

(1)选择Start>Programs>Microchip MPLABIDE>MPLAB IDE。打开MPLAB IDE,然后出现MPLAB IDE的主窗口。

(2)选择Project>Project Wizard来创建新项目。将出现一个欢迎页面。点击Next>继续。

(3)在“Step One:Select a Device”中,通过下拉菜单选择dsPIC304011 芯片,点击Next>继续。

(4)在“Step Two:Select a language toolsuite”中,选择“Microchip ASM30 Toolsuite”作为“Active Toolsuite”。然后点击工具包中(在“Toolsuite Contents”之下)的每个语言工具并检查或设置与其相关

的可执行文件的路径(图1-1)。

图1-1 项目向导— 选择语言工具

MPLAB ASM30 汇编器应指向“LOCATION”下的汇编程序可执行文件。如果没有这个文件,应键入或浏览到可执行文件的位置,通常默认为:C:Program FilesMPLAB

IDEdsPIC_。

MPLAB C30 编译器应指向“LOCATION”下的编译程序可执行文件。如果没有这个文件,应键入或浏览到可执行文件的位置,通常默认为:C:pic30_。

MPLAB LINK30 目标链接器应指向“LOCATION”下的链接程序可执行文件。如果没有这个文件,应键入或浏览到可执行文件的位置,通常默认为:C:Program FilesMPLAB

IDEdsPIC_。

点击Next>继续。

(5)在“Step Three:Name your project”中,键入项目名shiyan1 并点击BROWSE 进入examples 文件夹。然后点击NEXT > 继续。

图1-2 项目向导— 项目名称和目录

(6)在“Step Four:Add any existing files to your project”中,将添加两个文件到项目中。

首先,选择先前在工程文件夹中生成的源文件shiyan1.s。点击ADD>> 将它添加到项目要使用的文件列表中(出现在右边)。

图1-3 项目向导— 添加汇编源文件

其次,必须添加链接描述文件,告知链接器关于dsPIC30F4011 的存储器构成。链接描述文件位于MPLAB ASM30 安装目录下的supportgld 文件夹中。向下找到 文件,选中它并点击

ADD>> 将它添加到项目中。点击Next> 继续。

图1-4 项目向导— 添加链接器脚本

(7)在Summary (摘要)窗口中重新检查“项目参数”,验证芯片、工具包和项目文件的位置是否正确。如果想修改某一项,可以点击Back 返回上一个对话框。点击Finish 生成新的项目和工作区。

4.使用项目窗口

项目窗口在MPLAB IDE 的工作区内。工作区的文件名应出现在项目窗口顶部的标题栏中,,项目文件名 作为项目的顶部“节点”。

图1-5 项目窗口

在项目窗口的文件夹图标上点右键,可以把头文件、库文件等添加到工程中,以便编译时调用。头文件、库文件等一般位于安装的编译器安装目录下的support文件夹中,找到对应的文件,加入到工程

中。

5.设置编译选项

(1)选择Project>Build Options 并点击“Project”显示整个项目的Build Options(编译选项)对话框。

(2)选择General (常规)选项卡。在本教程中,不需要为“Include Path”添加路径,但对于你自己将来的项目可能需要添加路径。“Library Path”必须是MPLAB ASM30 安装目录下的lib 目录。在特定工

具的选项卡中可以对传递到dsPIC 工具的命令行选项进行设置。

图1-6 编译选项对话框

(3)择MPLAB LINK30 选项卡。MPLAB LINK30 有三个选项对话框:General、Diagnostics (诊断)和Symbols & Output (符号和输出)。这三个选项对话框可在“Categories”下拉菜单中选择,出现

在对话框中的内容也将相应发生改变。为了运行本指南后面的教程3,需要在General 类中设置一个堆。堆大小设置为512。

图1-7 链接器编译选项— GENERAL

(4)选择MPLAB ASM30选项卡。MPLAB ASM30 有两个选项对话框:General 和Diagnostics。这两个选项对话框可在“Categories”下拉菜单中选择,出现在对话框中的内容也将相应发生改变。在这个

例子中,将保持MPLAB ASM30 默认的命令行选项不变。

6.编译项目

选择Project>Build All对项目进行编译、汇编和链接。如果有任何错误或警告消息,会显示在输出窗口中。于本例来说,Output (输出)窗口不应显示错误消息,而应显示表明项目“BUILD

SUCCEEDED”(编译成功)的消息。如果有错误,应检查源文件的内容与例中shiyan1.s文件的内容是否一致。

图1-9 编译Output窗口

如果在项目编译后出现错误,可双击显示错误消息的行直接进入导致该错误的源代码行。如果您使用的是例子中的代码,那么最常见的错误就是拼写错误、漏掉了分号或大括号不匹配等。

7.用MPLAB SIM软件模拟器进行调试

要调试应用代码,需要调试工具的帮助。我们使用MPLAB SIM 软件模拟器进行调试。在这个模拟器中可以在源代码中设置断点,并可以在Watch (观察)窗中对变量的值进行观察。

(1)通过选择Debugger>Select Tool>MPLAB SIM将MPLAB SIM 软件模拟器作为调试工具。

(2)通过双击项目窗口的项目树中的文件名(shiyan1.s)来打开源文件。在源文件中,将光标移动到下面的行上:MOV #0x30, W0;然后通过鼠标右键选择“Set Breakpoint”(设置断点)。

图1-10 设置断点

在源代码窗口左边的空白处出现的红色符号表明断点已经设置并激活。

(3)选择View>Watch打开Watch 窗口。从Add SFR旁边的下拉扩展菜单中选择特殊功能寄存器进行观察。或点击Add Symbol 旁边的下拉扩展菜单中选择符号或变量进行观察。(4)点击工具栏中的

RUN运行程序。程序将在执行设置了断点的语句之前停下。源代码窗口左边空白处的绿色箭头指向下一个要执行的语句。

图1-12 添加观察变量

图1-13 运行到断点

(5)点击RUN继续运行程序。观察Watch窗口的寄存器的值。

(6)要单步执行源代码,即每次执行一条语句,可以使用工具栏中的Step Into按钮。每执行一个语句,源代码窗口左边空白处的绿色箭头都会指向下一个将执行的语句。

(7)将光标移动到设置了断点的行上,用鼠标右键选择“Remove Breakpoint (删除断点)”。现在按Run 按钮。状态栏的左下方将出现“”消息,在它的旁边,一个移动条表明程序正在运行。

Run 图标右边的Step 图标将变成灰色。如果调试器菜单是下拉的,在列表中的Step 选项也将灰掉。在运行模式下,这些操作都是禁止的。要中断运行的程序,使用工具栏中的Halt按钮。一旦程序运行停

止,Step 图标将不再是灰色的。

8.生成映射文件

映射文件可提供在调试时有用的附加信息,如存储器分配的详细信息。这个文件可通过设置合适的链接器编译选项来生成。(1)选择Project>Build Options>Project,然后点击MPLAB LINK30选项卡。

(2)从“Categories”中选择“Diagnostics”并勾选“Generate map file”复选框。

(3)点击OK保存设置。

(4)重新编译项目(Project>Build Al)生成映射文件。

图1-14 生成映射文件

映射文件()出现在项目目录中,可通过选择File>Open,然后浏览至项目目录来打开。选择文件类型为“All files(*.)”以便可以看见映射文件。下面这段 文件的摘录说明了在

MyProject.C 编译后程序存储器和数据存储器的使用。

六、实验报告要求

要写实验目的、实验仪器设备、实验原理、实验内容、实验操作的主要步骤。

要写实验源代码。

七、实验代码

代码1.

MOV #0x1000, W0

MOV #0x0001, W6

MOV.B W0, W1

SUB.B W0, #0x10, W1

ADD.B W0, W1, W2

MOV #0x30, W0

MOV #0x1000, W0

MOV W0, W1

MOV #0x5A5A, W0 ; 将0x5A5A 装载至W0

MOV #0x3636, W1 ; 将0x3636 装载至W1

PUSH W0 ; 将W0 中内容压入TOS

PUSH W1 ; 将W1 中内容压入TOS

POP W3 ; 将W3 中内容压入TOS

done:

BRA done

代码2.

MOV.B #0xf0, W0

done: CLR TRISE

CLR LATE

CLR PORTE

CLR TRISB

SETM LATB

SETM PORTB

CLR TRISE

SETM LATE

SETM PORTE

CLR TRISBCLR LATB

CLR PORTB

BRA done

注意:本实验代码需要添加入汇编模板文件中使用。