PIC复习之建新项目

开发软件平台:MPLAB X IDE V1.85;XC8 compiler;

硬件调试器kit 3

IC芯片:PIC16F877A,外部晶振12MHz。

一、先建立项目工程
1.新建main.c文件即file→new,保存在制定文件夹中。

2.新建项目,即project→project wizard,然后一路下去,其中要选择器件PIC18xx,编译器C18,各种源文件main.c,PIC18xx.HPIC18xx.LKR、PIC18xx.LIB(后面三个在C18安装目录下)

3.还需要设置的是“Project”—》“Build Options”—》“Project”,在弹出的对话框中找到“Directories”标签,看到一个Show directories for:旁边的下拉选项,分别找到“Include Search Path”“Library Search Path”“Linker-Script Search Path”,这三个选项,这三个分别是指定头文件目录(Mcc18\h)、Lib库文件目录(Mcc18\lib)和LKR目录(Mcc18\bin\lkr)的。然后点击那个“New”按钮建立路径。

4,写程序编译

5.更重要的是配置项设置,目前还不清楚用程序怎么写,所以只能在编程工具里面设置。configure→configuration Bits然后configuration Bits set in code,前面的勾打上则表明在配置项写在程序里面,将勾取消掉则表明在该软件工具设置配置项。
配置项有三处需要修改:OSC  WDT  LVP(其它就看自己需求了)

程序中设置配置项用 #pragma config 伪指令
例如:
#pragma config PLLCFG = OFF
#pragma config BORV = 285
#pragma config WDTEN = ON
#pragma config WDTPS = 32768等等,PLLCFG等和右值的定义在C18安装目录下的doc文件夹中hlpPIC18ConfigSet可以找到,或看具体芯片的数据手册。

6.烧录程序
设置烧录模式Release,project→Build,Configuration→Release(Debug为在线调试模式)快捷方式栏有直接设置Release或Debug的。
选择烧录工具,Programmer → select Programmer → PICkit3,最后就可以下载程序啦。

补充说明:

可以在Programmer→setting→Power里面选择PICkit3的电压和目标板的供电方式,PIC中的BANK需要用户自己进行定义,除了bank0内的变量声明不要特殊处理外,其它的bank内的变量定义必须加上相应的bank序号。

unsigned char data;  这个是定义在bank0内的

bank1 unsigned char buffer[32];  // 变量定位在bank1中

bank2 bit flag1;                                //变量定位在bank2中

bank3 float val[2];                         //变量定位在bank3中

bit型位变量智能是全局的或是静态的。PICC把定位在同一个Bank内的8个位变量并成一个字节存放在一个固定地址。位变量不能是局部自动变量。

PICC的位操作是非常高效的 ,对变量中的某一位操作的C语言代码将被直接编译为汇编的位操作指令。

Union {

Struct{    

                  Unsigned  b0:1;

Unsigned  b1:1;

Unsigned  b2:1;

Unsigned  b3:1;

Unsigned  b4:1;

Unsigned  b5:1;

Unsigned  :2

}onebit;

Unsigned char allbits;

}myflag;

Myflag.onebit.b3 =1;

Myflag.allbits = 0;

变量声明的类型:extern、volatile、const以及persistent,尤其注意persistent类型是不允许在程序复位后被清零的。

PIC的仿真器比较:

编程时可结合《PIC单片机的C语言编程》进行学习

银火虫 发表于06-12 10:36 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

银火虫
银火虫(中将)
金币:5919个|学分:6733个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号