《PIC微控制器项目设计:C语言》一3.3 MPLAB XC8编译器

3.3 MPLAB XC8编译器

本文讲的是PIC微控制器项目设计:C语言一3.3 MPLAB XC8编译器,MPLAB XC8编译器是为PIC10/12/16/18系列微控制器开发的强大的C编译器(也有用于24位和32位PIC微控制器的版本)。MPLAB XC8编译器有3个版本:Pro、Standard和Free。在本书中,我们将使用免费版本。不同版本之间的主要区别是编译期间应用程序的优化级别。
XC8编译器必须在安装了MPLAB X IDE之后再安装。编译器可以在MPLAB X IDE的最后安装阶段进行安装。或者,可从Microchip科技公司网站(http://www.microchip.com/pagehandler/en_us/devtools/mplabxc/)上直接进行安装。在写作本书的时候,最新版本的编译器是v1.20。
XC8语言与mikroC Pro for PIC语言有许多相似之处。在本章中,我们将介绍一个简单的基于XC8项目的步骤,还将解释两种语言之间的相似性和差异。
例3.1 一个简单的项目
本节给出一个简单的项目,以展示使用MPLAB X IDE创建源文件、编译文件,以及使用PICkit 3将生成的hex文件下载到Explorer板上的PIC18F8722微控制器中的步骤。
在这个项目中,我们将使用按键开关S1和连接到端口RD0引脚上的LED。只要按下按键,程序将点亮LED。
解决方案3.1
步骤如下。
步骤1 双击图标以启动MPLAB X IDE,应该看到图3.3所示的打开的窗口。

步骤2 向下移动右侧光标,然后单击图标创建新项目(Create New Project)。如图3.4所示选择默认的Categories:Microchip Embedded,Projects:Standalone Project,我们正在创建一个新的独立项目。

步骤3 单击下一步,选择目标微控制器。如图3.5所示,图中显示的内容为Family: Advanced 8- bit MCUs(PIC18)和Device: PIC18F8722。
步骤4 单击下一步,选择硬件工具为PICkit 3,如图3.6所示。
步骤5 单击下一步,选择编译器XC8,如图3.7所示。

步骤6 单击下一步,为项目命名。在此例中,项目命名为BUTTON-LED,存储在文件夹C:\Users\Dogan \ MPLABXProjects中。单击设置主项目(Set as main project)选项,如图3.8所示。

步骤7 单击完成(Finish)以创建所需的项目文件。
步骤8 右键单击左侧窗口上的源文件(Source Files),然后选择新建(New)→主文件(C Main File),将新源文件命名为NEWMAIN(扩展名为.C),如图3.9所示。

步骤9 单击完成(Finish),应该可以得到一个空的模板C文件,如图3.10所示。

步骤10 通过为程序插入以下行来修改文件。只要按下按键开关S1(连接到端口引脚RB0上),程序就会点亮连接端口引脚RD0的LED。有关MPLAB X IDE中部分程序清单的信息,请参见图3.11。
程序描述如下:
程序开头的#include 语句用于标识使用的微控制器,并调用合适的头文件,该头文件中包括处理器在程序开始的特殊定义(注
意mikroC Pro for PIC编译器不需要头文件)。


配置语句#pragma config MCLRE=ON,WDT=OFF,OSC=HS定义处理器的配置。这里,使能主清零(复位),关闭看门狗定时器,并且选择外部高速晶振作为时钟源。安装XC8编译器的docs目录中的文件pic18_chipinfo.html[通常是文件夹:C:\ Program Files (x86) \ Microchip \ xc8 \ v1.20 \ docs \ pic18_chipinfo.html]包含的所有处理器的列表及每个处理器中所有可能的配置选项列表。
语句#define S1 PORTBbits.RB0将符号S1定义为端口引脚RB0。类似地,语句#define LED PORTDbits.RD0将符号LED定义为微控制器的端口引脚RD0。
微控制器的时钟频率定义为10MHz。
在主程序开始时,端口引脚RB0被配置为输入端口。类似地,RD0配置为输出端口。
通过将MEMCON的EBDIS位置1使能PORTD的I/O功能(参见PIC18F8722数据手册)。
然后程序进入检查开关S1的循环语句。每当开关被按下时(即当S1变为0时),LED点亮。
步骤11 通过单击构建主项目(Build Main Project)按钮(显示为锤子)编译程序。程序编译成功后,应该显示加载完成(Loading completed)消息。
步骤12 将PICkit 3编程器/调试器连接到Explorer板上。单击创建和编程设备主项目(Make and Program Device Main Project)按钮将程序加载到Explorer板的目标微控制器中。当目标微控制器正在编程时,你应该能看到Programming和Programming/Verify complete的消息。
步骤13 当按下S1按键时,连接到RD0的LED应当被点亮(见图3.12)。
例3.2 闪烁的LED

在这个简单的例子中,我们将编写一个程序,以1s的间隔闪烁Explorer板上的所有LED。
解决方案3.2
所需的程序命名为FLASH.C,其清单如图3.13所示。注意,在此程序中使用了内置函数Delay10KTCYx(n)来创建1s的延迟。此函数创建一个10?000×n指令周期的延迟,使用10MHz时钟时,指令周期为10/4 = 2.5MHz,周期为0.4μs。因此,Delay10KTCYx的每个单位对应于0.4μs×10?000 = 4ms。要生成1s的延迟,参数应为1000/4 = 250。
例3.3 在调试模式下运行
在本节中,我们将看到如何调试例3.2中编码的程序,调试程序的步骤如下所示:
单击构建和调试主项目(Build for Debugging Main Project)(见图3.14)编译程序以便进行调试。


单击调试主项目的程序设备(Program Device for Debugging Main Project)加载目标微处理器(见图3.15)。

单击调试(Debug)→离散调试(Discrete Debugger Operation)→启动调试器主项目(Launch Debugger Main Project)以启动调试器(见图3.16)。应该看到显示的信息为目标复位(Target reset)。

按F7单步执行程序,按F8键可以跳过延迟函数。在单步执行程序时,应该能够看到LED点亮和熄灭。
可以利用鼠标单击程序左侧栏上的数字在程序中设置断点。或者,可以单击调试(Debug)→新断点(New Breakpoint)来设置断点。
单击窗口(Window)→PIC存储器视图(PIC Memory Views),然后选择所需的显示,可以观察程序存储器、特殊功能寄存器(SFR)、配置位和EE数据。


图3.17显示了SFR列表。

单击窗口(Window)→调试(Debugg-
ing)并选择所需的功能可以监视程序中的变量、断点、调用堆栈等。

原文标题:PIC微控制器项目设计:C语言一3.3 MPLAB XC8编译器

时间: 2024-08-06 18:34:05

《PIC微控制器项目设计:C语言》一3.3 MPLAB XC8编译器的相关文章

《PIC微控制器项目设计:C语言》一2.2 数组

2.2 数组 本文讲的是PIC微控制器项目设计:C语言一2.2 数组,数组是通过指定其类型.名称和存储的元素数量进行声明的.例如: 创建了一个无符号基本整型数组,名称为Total,有5个元素.数组的第一个元素索引为0.因此,在上面的例子中,Total[0]指的是它的第一个元素.数组Total存储在存储器的5个连续位置中,如下表所示. 可以通过指定数组名称和索引将数据存储在数组中.例如,为了将25存储到数组的第二个元素中,我们必须写: 同样,可以通过指定数组名称和它的索引对数组中的内容进行读取.例

《PIC微控制器项目设计:C语言》一1.2 微控制器系统

1.2 微控制器系统 本文讲的是PIC微控制器项目设计:C语言一1.2 微控制器系统,微控制器是一种单芯片的计算机."微"表示该装置很小,"控制器"表明该装置可在控制应用系统中使用.另一个用于微控制器的术语是"嵌入式控制器",这是由于在工业.商业和家庭应用设备中,大多数的微控制器都被内置或嵌入在它们控制的设备中. 微处理器在许多方面与微控制器不同.其主要区别是,微处理器需要其他一些外部组件协助进行计算操作,如程序存储器.数据存储器.I/O模块和外

《PIC微控制器项目设计:C语言》一第2章 mikroC Pro for PIC编程语言

第2章 mikroC Pro for PIC编程语言 本文讲的是PIC微控制器项目设计:C语言一第2章 mikroC Pro for PIC编程语言,在商业.工业和教育领域中,针对可编程接口控制器(PIC)18系列单片机的开发,使用的流行C语言编译器有: mikroC Pro for PIC C编译器 PICC18 C编译器 MPLAB C18 C编译器 MPLAB XC8 C编译器 CCS C编译器 mikroC Pro for PIC C编译器是由制造商MikroElektronika(网址

《PIC微控制器项目设计:C语言》一2.10 练习

2.10 练习 本文讲的是PIC微控制器项目设计:C语言一2.10 练习 1.编写一个C程序,设置PORTC的第0位和第7位为逻辑1. 2.编写一个C程序,连续倒序计数,并发送计数值给PORTB. 3.编写一个C程序,将数组里的10个元素都乘以2. 4.编写一个C程序,将两个矩阵P和Q进行相加.假设每个矩阵的维数均为3×3,并将结果存储在另一个称为W的矩阵中. 5.程序重复是什么意思?描述C程序中的while.do-while和for循环操作. 6.什么是数组?编写语句来定义以下数组: a.一个

《PIC微控制器项目设计:C语言》一2.1 mikroC Pro for PIC程序的结构

2.1 mikroC Pro for PIC程序的结构 本文讲的是PIC微控制器项目设计:C语言一2.1 mikroC Pro for PIC程序的结构,图2.1显示了一个mikroC Pro for PIC程序最简单的结构.这个程序使连接到PIC单片机RB0端口(PORTB的第0位)上的发光二极管(LED)按1s的间隔闪烁.如果在这个阶段你没有理解程序的操作过程,请不要担心,随着内容的进展,一切都会清楚的.在图2.1中使用的一些编程语句将在下面进行详细描述. 程序员使用注释阐明程序或编程语句的

《PIC微控制器项目设计:C语言》一第1章 微机系统

第1章 微机系统 1.1 引言 本文讲的是PIC微控制器项目设计:C语言一第1章 微机系统,微机一词用于描述一个系统,该系统至少包括一个微处理器.程序存储器.数据存储器和输入/输出(I/O)模块.有的微机系统还包括一些附加组件,如定时器.计数器.中断处理模块.模拟数字转换器.串行通信模块.USB接口模块等.因此,一个微机系统可以是从由硬盘.键盘.显示器.软盘和打印机构成的大型系统到嵌入控制器的单个芯片的任何系统. 在本书中,我们将只考虑单个硅芯片构成的微型计算机系统.这样的微型计算机系统也称为微

《PIC微控制器项目设计:C语言》一3.5 练习

3.5 练习 本文讲的是PIC微控制器项目设计:C语言一3.5 练习 1.编写一个XC8程序,将PORT C的第0位和第7位设置为逻辑1. 2.编写一个连续倒计数的XC8程序,并将计数值发送给PORTB. 3.编写一个C程序,将有10个元素的数组中每个元素乘以2. 4.解释如何访问端口的各个位.编写代码清零PORTB的第3位. 5.编写一个XC8程序,计算存储在数组中的数字的平均值.假设数组名为M,它有20个元素. 6.编写一个将英寸(1英寸= 0.0254米)转换为厘米的函数.该函数接收的英寸

《PIC微控制器项目设计:C语言》一导读

前 言 本文讲的是PIC微控制器项目设计:C语言一导读,微控制器是一个单芯片微处理器系统,其中包含数据和程序存储器.串行和并行输入/输出.定时器.外部和内部中断,所有这些都集成在一个芯片中,其价格可以低至2.00美元.大约40%的微控制器应用在办公自动化中,例如,PC.激光打印机.传真机.智能电话等.大约1/3的微控制器存在于消费类电子产品中,如CD播放器.高保真设备.视频游戏.洗衣机.厨具等产品.通信市场.汽车市场和军事设备共享其余的应用领域. 目前有许多不同类型的微控制器,它们是由不同的制造

《PIC微控制器项目设计:C语言》一2.5 C运算符

2.5 C运算符 本文讲的是PIC微控制器项目设计:C语言一2.5 C运算符,运算符应用在表达式里的变量和其他对象上,它们会引起一些条件或计算的发生. mikroC Pro for PIC语言支持以下运算符: 算术运算符 逻辑运算符 位运算符 条件运算符 赋值运算符 关系运算符 预处理运算符 原文标题:PIC微控制器项目设计:C语言一2.5 C运算符

《PIC微控制器项目设计:C语言》一3.1 PICDEM PIC18 Explorer开发板

3.1 PICDEM PIC18 Explorer开发板 本文讲的是PIC微控制器项目设计:C语言一3.1 PICDEM PIC18 Explorer开发板,PICDEM PIC18 Explorer开发板(从现在开始称其为Explorer板)是PIC18系列微控制器的低成本开发板.该板配有PIC18F8722型微控制器. 图3.1显示了该Explorer板,其中每个功能都用一个数字来表示.该板提供了以下功能. 1.?PIC18F8722微控制器. 2.?用于连接备用PIC18微控制器的PIM头