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

发布者:平和思绪最新更新时间:2013-02-05 来源: dzsc关键字:PIC单片机  C语言  程序设计 手机看文章 扫描二维码
随时随地手机看文章
  在《PIC 单片机C 语言程序(1)~(6)》中,我们介绍了C 语言的一些基本特点和主要内容,并用C 语言编写了一些学习PIC 单片机的基本程序和实用程序。上述源程序,需要生成目标码。hex 文件,并将其烧写到PIC 单片机的芯片中,进行实际运行,方能验证源程序的正确性。此过程必须用PIC 单片机的开发工具来完成。本文介绍这些开发工具及其安装方法。

  十、MPLAB IDE7.40版集成开发环境

  MPLAB IDE 是Microchip 公司推出的PIC系列单片机集成开发环境(IDE :IntegratedDevelopment Environment), 可在PC 机的Windows 操作系统下运行。MPLAB IDE 有多种版本,下面介绍MPLAB IDE7.40 版集成开发环境的主要功能。

  1.编辑程序

  在MPLAB IDE(指7.40 版,以下相同)下,书写编辑适用于PIC 单片机的源程序(汇编语言和C 语言程序均可),也能书写编辑其他文本文件。

  2.汇编程序

  在MPLAB IDE 下,将PIC 的汇编语言源程序进行汇编,生成多种目标代码(如.hex),以支持Microchip 公司的多种编程器。

  3.编译程序

  在MPLAB IDE 下,通过PIC C 与PIC C18 的C 编译器,对PIC 的C 语言源程序进行编译和连接,以生成目标代码(.hex)。

  4.模拟调试

  利用MPLAB I D E 中的M P L A B S I MSimulatov 命令,可以对PIC 系列单片机的目标代码(实际是源程序)进行模拟调试。通过模拟调试,不仅可以找出程序设计中的问题,还可以观察到C 语言程序运行全过程,定量察看程序运行的时间,如延时函数的延时值等。笔者在学习C 语言编辑PIC 单片机某功能源程序时,就常通过模拟调试,直观地观察源程序的运行过程,快速掌握了C 语言程序的特点和运行方式。在后面的连载中,还将介绍源程序模拟调试的详细方法,请关注。MPLAB IDE7.40 集成开发环境还有更多功能,限于篇幅,这里赘述,读者可查阅相关书籍。

  十一、PIC C与PIC C18C编译器简介

  PIC C 与PIC C18C 编译器,是澳大利亚HI—TECH 公司研制的C 语言源程序编译器,简称C 编译器,它完全符合美国ANSIC 标准。

  该编译器是性能优异的PIC 系列单片机C 编译软件。PIC C 可用于PIC16 单片机系列产品,PIC C18 可用于PIC18 单片机系列产品,二者均可在MPLAB IDE 集成开发环境(较高版本)下运行工作。用户编辑的C 语言源程序,必须用C编译器进行编译和连接后,才能生成绝对目标文件而产生其他格式的文件,如.hex(目标码),进行程序应用和调试。所以,用C 语言开发PIC单片机系列产品,除了要了解PIC 单片机的硬件功能外, MPLAB IDE 和PIC C 与PIC C18C 编译器也是不可缺少的。下面介绍PIC C 与PICC18C 编译器的主要功能。

  1.工作方式

  运行在MPLAB IDE 集成开发环境下(较高版本,如MPLAB IDE7.40 版),以创建项目而生成目标码。hex 文件,即将PIC 单片机源程序代码烧写到对应PIC 芯片的文件(。hex)。

  2.支持仿真

 

  支持硬件仿真MPLAB ICE(In-CircuitEmulator);支持软件仿真MPLAB SIM(simalator);支持低价位的在线调试器MPLAB ICD 和MPLABICD2(In-circuit debugger)。

  3.混合编程

  PIC C 与PIC C18C 编译器支持汇编语言和C语言的混合编程。

  4.调试源程序

  PIC C 与PIC C18C 编译器运行在MPLAB IDE下,允许调试源程序。在调试时,可在源程序上设置断点,当程序运行到断点处会自动停止下,以便调试者观察变量值、修改变量值;允许进行程序的单步、连续运行操作等。这些功能,对学习C 语言有极大的帮助。[page]

    十二、PIC单片机烧写编程器

  PIC 单片机烧写编程器(简称编程器)的功能,是把汇编或编译后生成的PIC 单片机程序的目标码.hex 烧写到芯片中,以便程序的运行。

  PIC 单片机的编程器型号较多,归结起来有两大类:一类是简易编程器,一类是所谓全系列编程器。简易编程器烧写的芯片型号较少,烧写速度较慢,且大多是PIC 单片机中级产品的芯片,如PIC16F84/627/628/87X……所谓全系列编程器,是指那些可烧写PIC 单片机多种型号的编程器,其烧写速度较快。简易编程器的价格便宜,售价200元~300 元,适合于学习PIC 单片机之用;后者多为电子公司开发电子产品之用,售价较高(约800元)。

  下面介绍一种简易编程器,它由两部分组成。

  一是硬件部分,工作时通过RS232 口与PC 机相连,图10 是其工作框图;二是该编程器编程时所需的PC 机软件Icprog1.05,其编程界面如图11 所示。

图10

图11

  该编程器可对PIC 单片机芯片的8、18、28、40 等引脚产品进行编程,使用方便,足以满足学习PIC单片机编程之用。

  十三、MPLAB IDE 7.40版和PIC C编译器的安装

  与本文内容配套的光盘中, 有MPLABIDE-V7.40 的Zip 和PICC8.50 的rar 两种压缩软件,如图12 所示,可供学习PIC 单片机C 语言实验使用。

图12

  1.MPLAB IDE7.40版的安装

  把含有上述两种压缩软件的光盘插入PC 机光驱中,在显示器的桌面上,用鼠标点击“我的电脑”,在其下拉菜单中点击“打开”,在桌面上找到“我的光盘”并打开,便会出现图12 所示的两种压缩软件图标。用鼠标分别将它们打开并点击“复制”,再分别打开E 盘,粘贴到E 盘上(也可粘贴到D 盘或F 盘)。先安装MPLAB IDE7.40 版软件,安装过程如下:

  (1) 用鼠标双击“我的电脑”,在其桌面上打开磁盘E,找出压缩软件MPLAB-IDE 的图标,并用鼠标点击之,在其下拉菜单上将鼠标移到“winRAR,又移鼠标到“解压到MPLAB-IDE-V7.4(/ E)”命令,并点击之,即可生成被解压的图标,如图13 所示。

图13

  (2)点击图13 MPLAB-IDE 图标,在下拉菜单中,点击“打开”命令,即可生成多个文件。

[page]

    (3)在多个文件中,选择(点击)图14 的安装MPLAB-V7.40 图标, 在其下栏菜单中,点击“打开”,即可生成图15“安装向导”的“检查工作系统”文件,此时可观察到自动安装进度显示界面的运行。

图14

图15

  (4)自动安装完成,即可生成图16 所示的“欢迎使用修改、复原,或取消程序的功能文件。

图16

  选择Repair(复原—— 即用鼠标在Repair 左边小园中点一黑点, 以复原所有程序的功能特点), 然后点击图16 下方的Next(下一步),即可生成图17 MPLAB T00Ls V7.40 文件,该文件是对新软件MPLAB IDE7.40 进行自动安装,所以你可看到文件上的彩色滑块向右不断增多,还可看到“validating install”(确认安装)的右侧,不断快速生成新的字符,只需略加等待,彩色滑块向右布满,即可自动生成图18 的安装完成界面。

图17

图18

[page]

    (5)点击图18 下方的“Finish”(完成)命令后,PC 机自动关闭,然后自动开启,并在桌面上自动生成“MPLAB IDE”V7.40 快捷图标,如图19 所示。到此,该软件安装便全部完成,可以使用了。

图19

  (6)如果读者有兴趣, 可以观察MPLAB IDE V7.40 版的界面。方法是,双击图19 的MPLAB IDE V7.4 图标,运行该程序,屏幕上会出现MPLAB IDE V7.40 集成开发环境的运行界面,如图20 所示。该界面由“标题栏”、“菜单栏”、“工具栏”和“工作区”、“状态栏”等组成。状态栏在其底部,用于显示当前的芯片型号、地址指针、工作寄存器的值、晶振频率等信息。

图20

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

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

推荐阅读最新更新时间: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