MPLAB18编译器与MPLABIDE软件挂接情况的区别

这里要注意的是,PIC10/12/16系列的C语言程序包含的头文件是PIC.H,而PIC18系列的单片机包含的头文件则是PIC18.H。2.4.3源代码的编写头文件的作用是对单片机的各个寄存器进行规范化的定义,从而方便大家使用。程序的第2行至第8行是PIC18单片机的配置字。

在 MPLAB IDE 软件中,PIC 开发是以项目为基础进行的。 您选择的芯片类型、程序源代码以及生成的文件都包含在项目中。 因此,我们将从建立一个新项目开始,直到所有开发工作完成。

2.4.1 建立开发项目

MPLAB IDE 软件安装完成后,桌面上会出现软件快捷方式图标。 由于PICC18编译器是挂接到MPLAB IDE软件中的,所以安装完PICC18软件后,其图标不会出现在桌面上。 MPLAB IDE 软件快捷方式图标如图 2-31 所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

1) 双击桌面上的MPLAB IDE 软件快捷方式图标,打开MPLAB IDE 软件。 软件运行后,会出现两个窗口:一是工作区窗口(Untitled),二是输出窗口(Output),如图2-32所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

2)点击菜单栏上的“Project”选项,点击“Set Language Tool Locations”选项,检查PICC18编译器与MALAB IDE软件的连接情况,如图2-33所示。

3)在弹出的对话框中,展开“HI-TECH Universal ToolSuite”菜单,再展开“Executables”菜单,点击“HI-TECH ANSI C Compiler”选项,在“Location”中勾选语言工具》 栏目安装情况如图2-34所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

MPLAB18编译器与MPLABIDE软件挂接情况的区别

从以上步骤我们不难发现PICC18编译器已经链接到MPLAB IDE软件中,成为集成开发环境的一部分。 接下来我们就用它来写一个小程序,下载到最小系统板来点亮流水灯。 使用MPLAB IDE软件中的项目向导可以帮助我们快速、轻松地创建PIC项目。 具体方法如下:

1)在菜单栏的“Project”选项中,选择工程向导“Project Wizard…”,如图2-35所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

2) 启动新建项目向导,在出现的对话框中单击“下一步”按钮,如图2-36所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

3) 在“第一步:选择设备”对话框中选择微控制器型号。 这里我们选择“PIC18F4520”,如图2-37所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

4) 在“第二步:选择语言工具套件”对话框中选择语言工具套件。 首先,在“活动工具套件”下拉列表中选择“HI-TECH 通用工具套件”。 在下面的“ToolSuite Contents”窗​​口中,会出现“HI-TECH ANSI C Compiler”,即HI-TECH标准C编译器。 其下方的“位置”栏中会出现路径“C:Program FilesHI-TECH SoftwarePICC-189.80binpicc18.exe”。 这说明我们之前安装的PICC18编译器已经成功连接到MPLAB IDE软件上,如图2-38所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

如果我们只安装PICC编译器,这里的路径将显示为C:Program FilesHI-TECH SoftwarePICC9.80binpicc.exe。 选择语言工具后,单击“下一步”按钮。

5) 在“第三步:创建新项目,还是重新配置活动项目?”中创建新项目。 对话框。 首先,单击“创建新项目文件”文本框旁边的“浏览”按钮,如图2-39所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

6) 在出现的窗口中定义存储项目的文件夹和项目名称。 在“保存于”下拉列表中选择工程存放的路径,在“文件名”中输入工程名称:LESSON2,单击“保存”按钮,如图2-40所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

7) 定义完项目路径和名称后,您将返回到“第三步:创建新项目,还是重新配置活动项目?” 再次弹出窗口,单击“下一步”按钮,如图2-41所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

8) 在“第四步:将现有文件添加到您的项目”对话框中,您可以将现有文件添加到您的项目中。 我们在这里不进行选择,只需单击“下一步”按钮即可构建它。 PIC工程已创建,如图2-42所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

9) 单击“完成”按钮结束工程向导,如图2-43所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

项目建立后,MPLAB IDE 软件工作区如图 2-44 所示。 此时的项目还只是一个粗略的框架,我们还需要在项目中添加C源文件。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

2.4.2 新建源文件并添加到工程中

1)PIC工程创建完成后,点击“File→New”选项新建一个文件,在源文件第一行写入以下代码:

#include 

第一行代码写入后的状态如图2-45所示。 这里需要注意的是,PIC10/12/16系列单片机的C语言程序包含的头文件是PIC.H,而PIC18系列单片机包含的头文件是PIC18.H。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

2) 单击工具栏上的“保存”按钮保存该源文件。 源文件的保存路径必须与我们之前创建的工程文件的保存路径一致。 我们之前已经给新项目命名了。 接下来,我们将源文件命名为Lesson2.c。 注意,源文件名必须写成文件名加扩展名的形式,且扩展名必须是“.c”。 另外,需要勾选对话框中的“Add File To Project”选项,将源文件添加到项目中,点击“Save”按钮,源文件即可保存并自动添加到项目中,如图如图2-46所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

这时我们会发现源文件中的#include会显示为蓝色,说明已经添加到工程中,并且C语言关键字#include已经被识别。

3) 如果需要,还可以设置文本的字体和大小。 右键单击我们输入的文本,在弹出的菜单中选择“属性”选项,如图2-47所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

4) 在出现的对话框中选择“文本”选项卡,单击“选择字体”按钮,如图2-48所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

5) 在出现的字体对话框中选择字体、字体样式和大小,单击“确定”保存设置,如图2-49所示。

6)完成字体设置后,源文件中的文字已经按照我们的要求重新设置并显示出来,如图2-50所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

我们还注意到,在工作区的左侧,有一个如图2-51所示的窗口。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

在工作区“LESSON2.mcw”窗口中,有以下项目:

1)Source Files:源程序列表,列出了本工程中用到的所有源程序文件。

2) 头文件:头文件列表,可以在其中添加源程序中使用的头文件。

3)Object Files:目标文件列表,可以在这里添加已经编译成目标代码的文件。

4)Library Files:库文件列表,可以在这里添加已有的库文件。

5) 其他文件:其他文件列表。

2.4.3 编写源代码

PIC驱动水灯电路如图2-52所示。 如果你觉得连接8个发光二极管有点复杂,也可以稍微简化一下电路。 像本书附录C所示的最小系统板电路,只需要连接RD0和RD1端口上的两个流水灯就足够了。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

有了上面的准备,我们就可以专心编写C程序了。 该程序的目的是点亮由 PORTD 端口(RD0)最低位驱动的运行灯。 打开MPLAB IDE软件,使用New Project Wizard,创建一个名为LESSON2的新项目,并将名为lesson2.c的源文件添加到该项目中。 详细代码请参见代码清单2-1。

代码清单2-1 点亮流水灯

#include
__PROG_CONFIG(1,0xC100);        //PIC的配置字1
__PROG_CONFIG(2,0x0A16);        //PIC的配置字2
__PROG_CONFIG(3,0x8100);        //PIC的配置字3
__PROG_CONFIG(4,0x0081);        //PIC的配置字4
__PROG_CONFIG(5,0xC00F);        //PIC的配置字5
__PROG_CONFIG(6,0xE00F);        //PIC的配置字6
__PROG_CONFIG(7,0x400F);        //PIC的配置字7
void  main(void)            //主函数
{
    TRISD=0x00;        //0000  0000, 将PORTD端口设为输出
    TRISE=0xfe;        //1111  1110, 将PORTE最低位设为输出
    PORTD=0x01;        //0000  0001, PORTD最低位输出1,点亮最低位流水灯
    PORTE=0x01;        //0000  0001, PORTE最低位输出1,驱动流水灯公共端
    while(1);        //主循环,让程序在此等候
}

接下来我们需要分析一下代码。 程序第一行是预处理命令,用于将另一个文件的内容复制到include命令的位置。 在程序第一行写入“#include”的目的是将头文件“PIC18.H”引入到该程序中。

头文件的作用是规范单片机各个寄存器的定义,方便大家使用。 “PIC18.H”是专为PIC18系列单片机设计的。 它位于PICC18编译器的安装目录中。 其默认位置为 C:Program FilesHI-TECH SoftwarePICC-189.80includePIC18.H。 关于头文件,这里就不讨论了。 许多叙述将在后面的专门章节中解释。

程序的第2行至第8行是PIC18单片机的配置字。 在应用PIC单片机时,需要对芯片的功能进行基本设置。 这种设置方法可以通过配置字来完成。 为了避免大家第一次接触PIC时感到困惑,我们也将配置字的解释留到后面的章节中。 现在你要做的就是根据代码表的内容将程序行写入你的程序中。 在源文件中。 编写配置字文本时需要注意的是,每个配置字的前面由两个连续的下划线“_ _”组成,中间不能有空格。

“…main(?)”是主函数。 我们知道C语言是模块化语言,程序的内容是由若干个具有特定功能的函数组成的。 main函数在结构上与其他函数相同,只不过它的函数名称为“main”,即主函数的意思。 源程序中只有一个主函数,无论主函数位于源程序中的哪个位置,程序都从这里开始执行。

“void”表示空,即函数的返回值为空,也就是说函数执行后不输出结果。 函数名“main”后面有一对括号“(?)”,括号内写有函数的输入(入口)参数。 如果括号为空或者写“void”,则表示该函数没有输入参数。

“main”函数的第二行以大括号“{?}”开头。 两个大括号括起来的部分是函数体,它是函数的主要部分,由多条C语句组成。 程序的每一行都以分号“;”结束。

代码写完后,就迫不及待地想看看执行后的效果。 好的,接下来要做的就是编译和烧写。

2.4.4 代码编译与编程

我们将鼠标悬停在工具栏中唯一的红色按钮上,下面会出现该按钮功能的提示:“Rebuild with Compiler for PIC18 MCUs (Lite Mode) V9.80”,意思是:用PICC18编译器重新编译(编译器工作在Lite Mode,版本9.80),点击这个红色按钮开始编译代码,如图2-53所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

几秒钟后,代码编译将完成。 Output窗口中的Build选项卡会有单片机的内存占用情况以及编译成功的提示,如图2-54所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

如果出现如下提示“构建失败!” 编译后出现如图2-55所示,则表示编译失败。 需要重新检查程序行的内容并再次编译,直到通过。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

接下来我们将编译成功的文件烧录到单片机中,看看程序运行的效果。 首先将PICkit2编程器连接到电脑USB接口,并使用ICSP数据线连接PICkit 2编程器和最小系统板。 编程器与PC机和目标板的连接方法如图2-56所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

依次点击菜单栏上的“Programmer→ Select Programmer→PICkit 2”,将编程器设置为PICkit 2,如图2-57所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

设置编程器后,Output 窗口的 PICkit 2 选项卡中将出现 PICkit 2 编程器就绪提示,如图 2-58 所示。 此时,如果编程器没有连接到计算机,则该窗口中会出现错误信息。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

PICkit 2 连接成功后,您会在工具栏上发现一组有趣的按钮,如图 2-59 所示。

下面介绍这些按钮的功能。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

单击“Program the target device”按钮,将编译好的HEX文件烧写到我们的最小系统板中,如图2-60所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

输出窗口中的 PICkit 2 选项卡将有一系列操作提示,供 PICkit 2 编程器擦除、编程和重新准备,如图 2-61 所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

MPLAB18编译器与MPLABIDE软件挂接情况的区别

我们需要手动干预MCLR引脚并将其设置为高电平以将微控制器从复位状态释放。 这可以通过将目标器件的MCLR引脚电平设置为高电平(Bring target MCLR to Vdd)按钮来完成,即图2-62中箭头所指的按钮。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

单击该按钮可释放目标单片机的复位状态。 该操作也会在输出窗口中提示,如图2-63所示。

MPLAB18编译器与MPLABIDE软件挂接情况的区别

激动人心的时刻终于到来了。 这时我们会发现最小的系统板上连接到RD0的LED灯已经点亮。 具体状态如图2-64所示。 当看到这盏自己亲手点亮的流水灯时,你是否有一种成就感呢? 是的,控制PIC就像控制家里的灯一样简单,从你点亮这盏流水灯的那一刻起,你就已经开始了。 继续努力,你就会成为一名优秀的单片机工程师。 快点!

MPLAB18编译器与MPLABIDE软件挂接情况的区别

2.4.5 PIC 入门编程示例

接下来,我们需要让RD0和RD1端口驱动的跑灯交替闪烁,间隔约为1秒。 为了方便,我们直接修改了lesson2.c的源文件内容,在程序中添加了延时功能。 具体代码参见代码清单2-2。

代码清单 2-2 交替闪烁水灯

#include
__PROG_CONFIG(1,0xC100);        //PIC的配置字1
__PROG_CONFIG(2,0x0A16);        //PIC的配置字2
__PROG_CONFIG(3,0x8100);        //PIC的配置字3
__PROG_CONFIG(4,0x0081);        //PIC的配置字4
__PROG_CONFIG(5,0xC00F);        //PIC的配置字5
__PROG_CONFIG(6,0xE00F);        //PIC的配置字6
__PROG_CONFIG(7,0x400F);        //PIC的配置字7
void  delay(unsigned int t);    //延时函数声明
void  main(void)            //主函数
{
    TRISD=0x00;    //0000  0000, 将PORTD端口设为输出
    TRISE=0xfe;    //1111  1110, 将PORTE最低位设为输出
    PORTE=0x01;    //0000  0001, PORTE最低位输出1,驱动流水灯公共端
    while(1)    //主循环
    {
        PORTD=0x01; //0000  0001, PORTD最低位输出1,点亮最低位流水灯
        delay(500);
         PORTD=0x02; //0000  0010, PORTD次低位输出1,点亮次低位流水灯
        delay(500);
    }
}
void  delay(unsigned int  t)    //延时函数
{
    unsigned int x,y;
    for(x=t;x>0;x--)
    {
        for(y=100;y>0;y--)
        {
        }
    }
}

程序再次编译并编程到微控制器中。 运行后可以发现两个LED灯交替闪烁。 通过编写上面的两个小程序,你对学习PIC已经有了信心。 是的,单片机并不难学。 关键在于方法。 现在你有了一个很好的开始,接下来的学习也会同样容易。

单片机

建库网建筑图纸下载方法,建筑工程施工图怎么下载

2024-4-6 11:04:28

单片机

1.3Vitis是什么1.4使用MicroBlaze的设计流程1.1使用的意义

2024-4-6 12:14:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索