PIC单片机C语言程序设计(9)

发布者:张延强最新更新时间:2013-02-05 来源: dzsc关键字:PIC单片机  C语言  程序设计 手机看文章 扫描二维码
随时随地手机看文章
    3.pic07.C源程序的编译

  在《PIC 单片机C 语言程序(8)》一文中,我们已在MPLAB IDE7.40 集成开发环境中编辑了pic07.C 源程序(0~99 秒脉冲发生器)。对于PIC 单片机来说,所有的C 语言源程序,都要在进行编译并生成目标码。hex 文件后,方能烧写到PIC 单片机中运行,即每编辑一个C 程序都要进行一次编译,所以对C 程序(pic0.7c)的编译操作是十分重要的。下面详细介绍用PICC 编译器对pic07.C 源程序进行编译并生成目标码。hex文件的全过程。

  (1)编辑源程序

  根据《PIC 单片机C 语言程序(8)》一文介绍的方法,在MPLAB IDE7.40 运行界面中编辑源程序pic07.C,并存盘,如图29 所示。

  (2)建立项目project

  点击图29 中菜单栏的项目project,在其下拉菜单中点击“project wizard”(项目向导)命令,即可生成图30 所示的Welcome !(欢迎)界面。该界面的项目向导可帮助你配置一个新项目。

图29

图30

  (3)选择器件

  点击图30 中的“下一步”,弹出“Step One:

  Select a device”(第一步:选择器件)对话框,如图31(a)所示。如果对话框中的器件(Device)不是PIC16F84A, 可点击该对话框中的三角形下拉按钮, 并在下拉菜单中选择器件( 这里是PIC16F84A),完成器件选择,如图31(b)所示。

a

b

图31[page]

    (4)选择需要的语言工具

  点击图31(a) 中的“下一步”,弹出“StepTwo: Select a languagetoolsuite”( 第二步:选择语言工具) 对话框, 如图32 所示。对于C 语言程序的编译工具,只需满足“Active Toolsuite : Hl-TECH PICCToolsuite”(PICC 工具) 的标识字母要求,如图32所示。如果不符合,则点击该标识字母右边的三角形按钮,并在弹出的下拉菜单中选择“HI-TECHPICC Toolsuite”即可。

图32

  (5)命名项目名

  点击图32 中的“ 下一步”, 弹出“stepT h r e e : N a m e y o u rproject”(第三步:添加项目名)对话框。分别在该对话框的“ProjectName”( 项目名) 栏输入“pic07”,在“ProjectDirectory”(项目路径)栏输入“e:\\pic07” ,如图33 所示。

图33

  (6)增加节点(Add)

  点击图33 中的“下一步”,然后在生成的如图34 所示的界面中点击“确定”,得到类似图35 的对话框(这里未列出)。用鼠标拉动其左边滑块,找到pic07.C 文件名并点击之,再点击命令Add(增加节点),就完成了第四步step Four 添加C 程序。(pic07.C)节点到项目的操作,如图35 所示。

图34

图35

[page]

    (7)完成建立项目

  点击图35 中的“ 下一步”,弹出建立项目已经完成界面,如图36 所示。点击图36 中的“完成”,即可生成如图37 所示的“项目树”窗口。

图36

图37

  (8) 完成C 程序的编译以生成目标码.hex

  点击图29 工具栏中左数第6 个图标(Buildall)命令,或点击菜单栏中的“Project”并在其下拉菜单中点击“Build all”命令,即可生成“output”(输出)信息提示窗口,如图38 所示。其最下面一行“BUILD SUCCEEDED……”为编译成功提示。

图38

  到此,对pic07.C 源程序的编译全部完成,并生成了目标码。hex。这时,就可用PIC 单片机的任何一种编程器调用.hex 文件,对单片机进行烧写了。

  (9)错误提示及修改

  如果我们在MPLAB 中编辑的源程序pic07.c 有错误,例如把pic07.c 延时函数中的unsigned(关键字——无符号)写成了umsigned,如图39所示,则经过上述编译操作后,会得到一个编译程序失败提示文件(BUILD FAILED),如图40 所示。

图39

图40

[page]

    在该文件中会指出源程序pic07.c 中的所有错误行及错误类型(原因),即源文件中的行“Error”指示。我们只要点击该文件中的“Error”,即可生成如图41 所示的pic07.c 源程序文件。在其左侧有一箭头指向pic07.c 的对应错误行,即“umsigned”。

图41

  这时,只需将umsigned 改写成unsigned,然后在MPLAB 中存盘,再如前述,一步一步地编译,即可完成程序编译,生成。hex 文件。

  说明:本文给出的图形界面与实际界面相比,仅是略去了其空白区域或取其主要部分(版面受限),不会影响读者的学习操作过程。另外,虽然不同版本的MPLAB IDE 对C 程序的编译过程稍有差别,但只要熟练掌握了一种较高版本MPLAB IDE的操作方法,其他版本MPLAB 的使用便不成问题。

  PICC 编译器还可对PIC 单片机的汇编语言、。ASM 进行汇编,其操作方法与对C 语言源程序的编译过程相似,不同之处仅在第二步stepTwo(见图32)选择语言操作时,点击“ActiueToolsuite”右边的三角形按钮,在其下拉菜单中选择“Microchip MPASM Toolsuite” 即可, 如图42 所示,其余操作不变。

图42

关键字:PIC单片机  C语言  程序设计 引用地址:PIC单片机C语言程序设计(9)

上一篇:PIC单片机C语言程序设计(11)
下一篇:PIC单片机C语言程序设计(8)

推荐阅读最新更新时间:2024-03-16 13:17

AT89C51单片机快热式热水器程序设计
快热式热水器程序MCU AT89C51 XAL 12MHz //#pragmaSRC #include #include #include voiddelay(unsignedint);//延时函数 voiddisplay(void);//显示函数 unsignedcharkeysCAN(void);//按键扫描处理函数 voidheatCTRl(void);//加热控制函数 voidtemptest(void);//测温函数 sbitswkey=P1^0;//开关键 sbitupkey=P1^1;//加热档位“+”键 sbitdownkey=P1^2;//加热档位“-”键 sbitbuzz=P1^05;//蜂鸣器输出端 sbit
[单片机]
AT89C51单片机快热式热水器<font color='red'>程序设计</font>
基于PIC单片机的正弦波逆变器设计与实现
目前,SPWM信号主要有3种生成方式: 1)使用比较器、振荡器等模拟电路产生三角波和方波进行比较,产生SPWM波,但是此种方法电路复杂,受元器件精度影响大,且不易控制; 2)利用专用SPWM集成芯片,其优点是电路简单,集成度高,缺点是无法全面实现对系统的反馈控制、监视管理和保护工作,故一般也要配合单片机实现; 3)利用单片机等微处理器产生SPWM波,此方法控制电路简单,调节灵活,硬件成本低。本文介绍一种利用PIC16F877A单片机实现SPWM波形的方法,并将其应用到全桥逆变电路中,验证了利用PIC单片机调制SPWM波的可行性。 1、系统总体设计 本系统从结构上看主要由单片机控制电路、驱动及逆变主电路组成。 1.1、单片机控制
[单片机]
基于<font color='red'>PIC单片机</font>的正弦波逆变器设计与实现
LED的使用纯汇编和C语言的点亮
概述 我们通过观察原理图可以发现LED灯有四个分别连接在GPM4_1, GPM4_2, GPM4_3 GPM4_4上面,这时候我们去查询我们板子4412的说明书,去寻址寄存器的配置 初始化的时候我们需要将他配置为输出模式,同时我们观察下面的电路可以发现,他需要输出低电平,来使led亮 #define GPM4BASE 0x11000000 #define GPM4CON 0x02E0 #define GPM4DAT 0x02E4 #define UDELAY 0x43e2647c #define N 5000000 .text .align 2 .global _start _start: mo
[单片机]
LED的使用纯汇编和<font color='red'>C语言</font>的点亮
LCD12864 C语言驱动
#include reg52.h sbit RS=P2^0; sbit RW=P2^1; sbit EN=P2^2; sbit CS1=P2^3; sbit CS2=P2^4; sbit RST=P2^5; #define databus P0 #define uchar unsigned char #define startline 0xc0 #define displayon 0x3f #define startcolumn 0x40 #define page 0xb8 void init(); void clearscreen(uchar); void readbusy(); void writecmd(uchar); v
[单片机]
LCD12864 <font color='red'>C语言</font>驱动
PS7219的PIC单片机接口程序
; Copyright (c) 1998, MICROCHIP Technology Inc ;******************************************* TITLE PS7219 TEST ;标题 LIST P=16C711 ;处理器为PIC16C711单片机 #INCLUDE P16c711.INC   TIMER1 EQU H'000C' ;定义延时寄存器 TIMER2 EQU H'000D' SENT_ADDRESS EQU H'000E' ;定义发送地址寄存器 SENT_DATA EQU H'000F' ;定义发
[单片机]
C语言写一个跑马灯程序
#define MAIN_Fosc 22118400L //定义主时钟 #include STC15Fxxxx.H /********* 功能说明 ***程序使用P4.7 P4.6 P1.6 P1.7 来演示跑马灯,输出低驱动。********/ void delay_ms(u8 ms); /******************** 主函数 ******************/ void main(void) { P0M1 = 0; P0M0 = 0; //设置为准双向口 P1M1 = 0; P1M0 = 0; //设置为准双向口 P2M1 = 0; P2M0 = 0; //设置为准双向口 P3M1 = 0; P3M0 = 0
[单片机]
pic单片机控制电机启动、转动、停止C语言程序
#include pic.h #define MOTOR RB2 void DELAY(unsigned int); main(void) {char A; MOTOR=0; OPTION=0b00000000; //设定RB0为下降沿中断 TRISB=0b00000001; //设定RB0为输入,RB2为输出 TRISD=0b00000000; //PORTD全为输出口 A=0b00000001; PORTD=A; //PORTD的第0位LED亮 INTCON=0; //禁止中断 while(1) { if (RB0==1)
[单片机]
小容量单片机系统的C语言程序结构
引 言:   2002年初,笔者着手写一个IC卡预付费电表的工作程序,该电表使用Philips公司的8位51扩展型单片机87LPC764,要求实现很多功能,包括熄显示、负荷计算与控制、指示闪烁以及电表各种参数的查询等,总之,要使用时间的单元很多。笔者当时使用ASM51完成了这个程序的编写,完成后的程序量是2KB多一点。后来,由于种种原因,这个程序并没有真正使用,只是作了一些改动之后用在一个老化设备上进行计时与负荷计算。约一年后,笔者又重新改写了这些代码。 1 系统的改进   可以说,这个用ASM51实现的代码是没有什么组织性可言的,要什么功能就加入什么功能,弄得程序的结构非常松散,其实这也是导致笔者最终决定重新改写这些代码的原
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved