打印

PIC单片机的配置字总结

[复制链接]
944|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xnh123|  楼主 | 2018-4-2 17:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
view plaincopy to clipboardprint?
平台为:MPLAB V8.92,这个ID有两个编译选项:DEBUG和RELEASE,那么可以根据系统预定宏来自动根据选择模式,配置配置字。  
一、PIC18F系列配置字编写  
MUC: PIC18F4550  
IDE: MPLAB V8.92  
编译器:MCC18 V3.47  
配置字讲解帮助手册在编译器如下目录:doc\hlpPIC18ConfigSet.chm  
例如:D:\Program Files\Microchip\mplabc18\v3.47\doc\hlpPIC18ConfigSet.chm  
注意:配置字文件必须只能有main.c文件包含。。。。。。  
配置字编写:以18F为例  
#ifdef  __DEBUG   
    #pragma config  EBTRB   =   OFF  
#else  
    #pragma config  EBTRB   =   ON  
#endif  
这段代码就编译预定义宏__DEBUG,然后根据用户选择编译模式自动打开和关闭读保护  
  
例子:  
#ifndef __PIC18F4550_CONFIG_H__  
#define __PIC18F4550_CONFIG_H__  
  
  
#include      
  
  
  
  
//看门狗  
#define WDT_ENABLE  0//1:打开;0:关闭  
//USB  
#define USB_ENABLE  0//1:打开;0:关闭  
  
  
  
  
  
  
//PLL Prescaler Selection bits  
//96 MHz PLL Prescaler  
/*
PLLDIV  = 1     No  divide      (4  MHz input)   
PLLDIV  = 2     Divide  by  2   (8  MHz input)   
PLLDIV  = 3     Divide  by  3   (12 MHz input)   
PLLDIV  = 4     Divide  by  4   (16 MHz input)   
PLLDIV  = 5     Divide  by  5   (20 MHz input)   
PLLDIV  = 6     Divide  by  6   (24 MHz input)   
PLLDIV  = 10    Divide  by  10  (40 MHz input)   
PLLDIV  = 12    Divide  by  12  (48 MHz input)  
*/  
#pragma config  PLLDIV  =   5  
  
  
  
  
  
  
//CPU System Clock Postscaler  
/*
CPUDIV  =   OSC1_PLL2   [OSC1/OSC2  Src: /1][96 MHz PLL Src: /2]   
CPUDIV  =   OSC2_PLL3   [OSC1/OSC2  Src: /2][96 MHz PLL Src: /3]   
CPUDIV  =   OSC3_PLL4   [OSC1/OSC2  Src: /3][96 MHz PLL Src: /4]   
CPUDIV  =   OSC4_PLL6   [OSC1/OSC2  Src: /4][96 MHz PLL Src: /6]   
*/  
#pragma config  CPUDIV  =   OSC1_PLL2  
  
  
//USB Clock Selection bit  
//used in Full Speed USB mode only; UCFG:FSEN = 1  
//USBDIV = 1    Clock source from OSC1/OSC2   
//USBDIV = 2    Clock source from 96 MHz PLL/2   
#pragma config  USBDIV  =   2  
  
  
//Oscillator Selection bits  
/*
FOSC = XT_XT            XT oscillator, XT used by USB   
FOSC = XTPLL_XT         XT oscillator, PLL enabled, XT used by USB   
FOSC = ECIO_EC          External clock, port function on RA6, EC used by USB   
FOSC = EC_EC            External clock, CLKOUT on RA6, EC used by USB   
FOSC = ECPLLIO_EC       External clock, PLL enabled, port function on RA6, EC used by USB   
FOSC = ECPLL_EC         External clock, PLL enabled, CLKOUT on RA6, EC used by USB   
FOSC = INTOSCIO_EC      Internal oscillator, port function on RA6, EC used by USB   
FOSC = INTOSC_EC        Internal oscillator, CLKOUT on RA6, EC used by USB   
FOSC = INTOSC_XT        Internal oscillator, XT used by USB   
FOSC = INTOSC_HS        Internal oscillator, HS used by USB   
FOSC = HS               HS oscillator, HS used by USB   
FOSC = HSPLL_HS         HS oscillator, PLL enabled, HS used by USB
*/  
#pragma config  FOSC    =   HSPLL_HS  
  
  
//Fail-Safe Clock Monitor Enable bit  
#pragma config  FCMEN   =   OFF  
  
  
//Internal/External Oscillator Switchover bit  
#pragma config  IESO    =   OFF  
  
  
//Power-up Timer Enable bit  
#pragma config  PWRT    =   ON  
  
  
//Brown-out Reset Enable bits  
#pragma config  BOR     =   ON  
  
  
//Brown-out Voltage bits  
#pragma config  BORV    =   3  
  
  
//USB Voltage Regulator Enable bit  
//VREGEN = OFF USB voltage regulator disabled  
//VREGEN = ON USB voltage regulator enabled  
#if USB_ENABLE  
    #pragma config  VREGEN  =   ON  
#else  
    #pragma config  VREGEN  =   OFF  
#endif  
  
  
  
  
//Watchdog Timer Enable bit  
#ifdef  __DEBUG   
    #pragma config  WDT =   OFF  
#else  
    #if WDT_ENABLE  
        #pragma config  WDT =   ON  
    #else  
        #pragma config  WDT =   OFF  
    #endif  
#endif  
  
  
//Watchdog Timer Postscale Select bits  
/*
WDTPS = 1       1:1   
WDTPS = 2       1:2   
WDTPS = 4       1:4   
WDTPS = 8       1:8   
WDTPS = 16      1:16   
WDTPS = 32      1:32   
WDTPS = 64      1:64   
WDTPS = 128     1:128   
WDTPS = 256     1:256   
WDTPS = 512     1:512   
WDTPS = 1024    1:1024   
WDTPS = 2048    1:2048   
WDTPS = 4096    1:4096   
WDTPS = 8192    1:8192   
WDTPS = 16384   1:16384   
WDTPS = 32768   1:32768  
*/  
//看门狗时钟:4ms  
#pragma config  WDTPS   =   256  
  
  
//MCLR Pin Enable bit  
#pragma config  MCLRE   =   ON  
  
  
//Low-Power Timer 1 Oscillator Enable bit  
#pragma config  LPT1OSC =   OFF  
   
//PORTB A/D Enable bit  
#pragma config  PBADEN  =   OFF  
  
  
//CCP2 MUX bit  
#pragma config  CCP2MX  =   OFF  
  
  
//Stack Full/Underflow Reset Enable bit  
#pragma config  STVREN  =   ON  
  
  
//Single-Supply ICSP Enable bit  
#pragma config  LVP     =   OFF  
  
  
//Dedicated In-Circuit Debug/Programming Port (ICPORT) Enable bit  
#pragma config  ICPRT   =   OFF  
  
  
//Extended Instruction Set Enable bit  
#pragma config  XINST   =   OFF  
  
  
//Background Debugger Enable bit  
#ifdef  __DEBUG   
    #pragma config  DEBUG   =   ON  
#else  
    #pragma config  DEBUG   =   OFF  
#endif  
  
  
//Code Protection bit Block 0  
#pragma config  CP0     =   OFF  
  
  
//Code Protection bit Block 1  
#pragma config  CP1     =   OFF  
  
  
//Code Protection bit Block 2  
#pragma config  CP2     =   OFF  
  
  
//Code Protection bit Block 3  
#pragma config  CP3     =   OFF  
  
  
//Boot Block Code Protection bit  
#pragma config  CPB     =   OFF  
  
  
//Data EEPROM Code Protection bit  
#pragma config  CPD     =   OFF  
  
  
//Write Protection bit Block 0  
#pragma config  WRT0    =   OFF  
  
  
//Write Protection bit Block 1  
#pragma config  WRT1    =   OFF  
  
  
//Write Protection bit Block 2  
#pragma config  WRT2    =   OFF  
  
  
//Write Protection bit Block 3  
#pragma config  WRT3    =   OFF  
  
  
//Boot Block Write Protection bit  
#pragma config  WRTB    =   OFF  
  
  
//Configuration Register Write Protection bit  
#ifdef  __DEBUG   
    #pragma config  WRTC=   OFF  
#else  
    #pragma config  WRTC=   ON  
#endif  
  
  
//Data EEPROM Write Protection bit  
#pragma config  WRTD    =   OFF  
  
  
//Table Read Protection bit Block 0  
#pragma config  EBTR0   =   OFF  
  
  
//Table Read Protection bit Block 1  
#pragma config  EBTR1   =   OFF  
  
  
//Table Read Protection bit Block 2  
#pragma config  EBTR2   =   OFF  
  
  
//Table Read Protection bit Block 3  
#pragma config  EBTR3   =   OFF  
  
  
//Boot Block Table Read Protection  
#ifdef  __DEBUG   
    #pragma config  EBTRB   =   OFF  
#else  
    #pragma config  EBTRB   =   ON  
#endif  
  
  
#endif  
  
二、PIC32MX系列配置字编写  
MCU: PIC32MX564F128L  
IDE: MPLAB V8.92  
编译器:C32 V2.02 (本版本不支持MZ系列,XC32支持)  
参考手册同样:D:\Program Files\Microchip\mplabc32\v2.02\doc\hlpPIC32MXConfigSet  
  
说明:这个例子没有用预定义宏__DEBUG进行处理,请自行设置  
  
  
#ifndef __PIC32CONFIG_H__  
#define __PIC32CONFIG_H__  
  
  
  
  
/*****用户自定义16位值标识***********/  
//#pragma config USERID =  
  
  
/*****影子寄存器分配中断优先级*******/  
#pragma config FSRSSEL =PRIORITY_7//PRIORITY_0/PRIORITY_1/PRIORITY_2  
//PRIORITY_3/PRIORITY_4/PRIORITY_5  
//PRIORITY_6/PRIORITY_7  
  
  
/*****CAN引脚选择********************/  
#pragma config FCANIO =ON//ON:Default CAN I/OOFF:Alternate CAN I/O  
  
  
/*****USBID控制位********************/  
#pragma config FUSBIDIO =OFF//ON:Controlled by the USB Module   
//OFF:Controlled by Port Function   
  
  
/*****VBUSON控制位*******************/  
#pragma config FVBUSONIO= OFF//ON:Controlled by USB Module   
//OFF:Controlled by Port Function  
  
  
/*****PLL输入分频比******************/  
#pragma config FPLLIDIV =DIV_5//4MHz<= Fin <=5MHz  
//DIV_1/DIV_2/DIV_3/DIV_4/DIV_5  
//DIV_6/DIV_10/DIV_12  
  
  
/*****PLL倍频系数********************/  
#pragma config FPLLMUL =MUL_20//MUL_15/MUL_16/MUL_17/MUL_18/MUL_19  
//MUL_20/MUL_21/MUL_24  
  
  
/*****USB PLL输入分频比**************/  
#pragma config UPLLIDIV =DIV_2//Fin=4MHz  
//DIV_1/DIV_2/DIV_3/DIV_4/DIV_5/DIV_6  
//DIV_10/DIV_12  
  
  
/*****USB PLL 使能位*****************/  
#pragma config UPLLEN =OFF//ON:使能OFF:禁止  
  
  
/*****PLL后分频器********************/  
#pragma config FPLLODIV =DIV_1//DIV_1/DIV_2/DIV_4/DIV_8/DIV_16/DIV_32/DIV_64/DIV_256  
  
  
/*****振荡器选择*********************
FNOSC = FRC Fast RC Osc (FRC)   
FNOSC = FRCPLL Fast RC Osc with PLL   
FNOSC = PRI Primary Osc (XT,HS,EC)   
FNOSC = PRIPLL Primary Osc w/PLL (XT+,HS+,EC+PLL)   
FNOSC = SOSC Low Power Secondary Osc (SOSC)   
FNOSC = LPRC Low Power RC Osc (LPRC)   
FNOSC = FRCDIV16 Fast RC Osc w/Div-by-16 (FRC/16)   
FNOSC = FRCDIV Fast RC Osc w/Div-by-N (FRCDIV)   
*************************************/  
#pragma config FNOSC =PRI  
  
  
/*****辅助振荡器选择位***************/  
#pragma config  FSOSCEN = OFF//OFF:Disabled  ON:Enabled   
  
  
/*****内/外部振荡器切换位************/  
#pragma config  IESO =OFF//OFF:Disabled  ON:Enabled   
  
  
/*****主振荡器配置位*****************
POSCMOD = EC External clock mode   
POSCMOD = XT XT osc mode   
POSCMOD = HS HS osc mode   
POSCMOD = OFF Primary osc disabled   
*************************************/  
#pragma config POSCMOD=HS  
  
  
/*****CLKO使能位*********************/  
#pragma config OSCIOFNC=OFF//OFF:Disabled  ON:Enabled   
  
  
/*****外设总线时钟分频比*************/  
#pragma config FPBDIV=DIV_1//DIV_1/DIV_2/DIV_4/DIV_8  
  
  
/*****时钟切换和监视器选择配置位*****
FCKSM = CSECME Clock Switch Enable,  FSCM Enabled   
FCKSM = CSECMD Clock Switch Enable,  FSCM Disabled   
FCKSM = CSDCMD Clock Switch Disable, FSCM Disabled   
*************************************/  
#pragma config FCKSM=CSDCMD  
  
  
/*****看门狗时钟后分频比*************
WDTPS = PS1 1:1   
WDTPS = PS2 1:2   
WDTPS = PS4 1:4   
WDTPS = PS8 1:8   
WDTPS = PS16 1:16   
WDTPS = PS32 1:32   
WDTPS = PS64 1:64   
WDTPS = PS128 1:128   
WDTPS = PS256 1:256   
WDTPS = PS512 1:512   
WDTPS = PS1024 1:1024   
WDTPS = PS2048 1:2048   
WDTPS = PS4096 1:4096   
WDTPS = PS8192 1:8192   
WDTPS = PS16384 1:16384   
WDTPS = PS32768 1:32768   
WDTPS = PS65536 1:65536   
WDTPS = PS131072 1:131072   
WDTPS = PS262144 1:262144   
WDTPS = PS524288 1:524288   
WDTPS = PS1048576 1:1048576  
*************************************/  
#pragma config WDTPS=PS2  
  
  
/*****看门狗使能位*******************/  
#pragma config FWDTEN=OFF //ON:WDT Enabled OFF:WDT Disabled (SWDTEN Bit Controls)  
  
  
/*****ICE/ICD Comm Channel Select****
ICESEL = ICS_PGx1 ICE EMUC1/EMUD1 pins shared with PGC1/PGD1   
ICESEL = ICS_PGx2 ICE EMUC2/EMUD2 pins shared with PGC2/PGD2  
*************************************/  
#pragma config ICESEL=ICS_PGx1  
  
  
/******程序闪存写保护位**************
PWP = PWP512K First 512K   
PWP = PWP508K First 508K   
PWP = PWP504K First 504K   
PWP = PWP500K First 500K   
PWP = PWP496K First 496K   
PWP = PWP492K First 492K   
PWP = PWP488K First 488K   
PWP = PWP484K First 484K   
PWP = PWP480K First 480K   
PWP = PWP476K First 476K   
PWP = PWP472K First 472K   
PWP = PWP468K First 468K   
PWP = PWP464K First 464K   
PWP = PWP460K First 460K   
PWP = PWP456K First 456K   
PWP = PWP452K First 452K   
PWP = PWP448K First 448K   
PWP = PWP444K First 444K   
PWP = PWP440K First 440K   
PWP = PWP436K First 436K   
PWP = PWP432K First 432K   
PWP = PWP428K First 428K   
PWP = PWP424K First 424K   
PWP = PWP420K First 420K   
PWP = PWP416K First 416K   
PWP = PWP412K First 412K   
PWP = PWP408K First 408K   
PWP = PWP404K First 404K   
PWP = PWP400K First 400K   
PWP = PWP396K First 396K   
PWP = PWP392K First 392K   
PWP = PWP388K First 388K   
PWP = PWP384K First 384K   
PWP = PWP380K First 380K   
PWP = PWP376K First 376K   
PWP = PWP372K First 372K   
PWP = PWP368K First 368K   
PWP = PWP364K First 364K   
PWP = PWP360K First 360K   
PWP = PWP356K First 356K   
PWP = PWP352K First 352K   
PWP = PWP348K First 348K   
PWP = PWP344K First 344K   
PWP = PWP340K First 340K   
PWP = PWP336K First 336K   
PWP = PWP332K First 332K   
PWP = PWP328K First 328K   
PWP = PWP324K First 324K   
PWP = PWP320K First 320K   
PWP = PWP316K First 316K   
PWP = PWP312K First 312K   
PWP = PWP308K First 308K   
PWP = PWP304K First 304K   
PWP = PWP300K First 300K   
PWP = PWP296K First 296K   
PWP = PWP292K First 292K   
PWP = PWP288K First 288K   
PWP = PWP284K First 284K   
PWP = PWP280K First 280K   
PWP = PWP276K First 276K   
PWP = PWP272K First 272K   
PWP = PWP268K First 268K   
PWP = PWP264K First 264K   
PWP = PWP260K First 260K   
PWP = PWP256K First 256K   
PWP = PWP252K First 252K   
PWP = PWP248K First 248K   
PWP = PWP244K First 244K   
PWP = PWP240K First 240K   
PWP = PWP236K First 236K   
PWP = PWP232K First 232K   
PWP = PWP228K First 228K   
PWP = PWP224K First 224K   
PWP = PWP220K First 220K   
PWP = PWP216K First 216K   
PWP = PWP212K First 212K   
PWP = PWP208K First 208K   
PWP = PWP204K First 204K   
PWP = PWP200K First 200K   
PWP = PWP196K First 196K   
PWP = PWP192K First 192K   
PWP = PWP188K First 188K   
PWP = PWP184K First 184K   
PWP = PWP180K First 180K   
PWP = PWP176K First 176K   
PWP = PWP172K First 172K   
PWP = PWP168K First 168K   
PWP = PWP164K First 164K   
PWP = PWP160K First 160K   
PWP = PWP156K First 156K   
PWP = PWP152K First 152K   
PWP = PWP148K First 148K   
PWP = PWP144K First 144K   
PWP = PWP140K First 140K   
PWP = PWP136K First 136K   
PWP = PWP132K First 132K   
PWP = PWP128K First 128K   
PWP = PWP124K First 124K   
PWP = PWP120K First 120K   
PWP = PWP116K First 116K   
PWP = PWP112K First 112K   
PWP = PWP108K First 108K   
PWP = PWP104K First 104K   
PWP = PWP100K First 100K   
PWP = PWP96K First 96K   
PWP = PWP92K First 92K   
PWP = PWP88K First 88K   
PWP = PWP84K First 84K   
PWP = PWP80K First 80K   
PWP = PWP76K First 76K   
PWP = PWP72K First 72K   
PWP = PWP68K First 68K   
PWP = PWP64K First 64K   
PWP = PWP60K First 60K   
PWP = PWP56K First 56K   
PWP = PWP52K First 52K   
PWP = PWP48K First 48K   
PWP = PWP44K First 44K   
PWP = PWP40K First 40K   
PWP = PWP36K First 36K   
PWP = PWP32K First 32K   
PWP = PWP28K First 28K   
PWP = PWP24K First 24K   
PWP = PWP20K First 20K   
PWP = PWP16K First 16K   
PWP = PWP12K First 12K   
PWP = PWP8K First 8K   
PWP = PWP4K First 4K   
PWP = OFF Disable  
*************************************/  
#pragma config PWP=OFF  
  
  
/******引导闪存写保护位**************
BWP = ON Protection Enabled   
BWP = OFF Protection Disabled   
*************************************/  
#pragma config BWP=OFF  
  
  
/******代码保护位********************
CP = ON Protection Enabled   
CP = OFF Protection Disabled  
*************************************/  
#pragma config CP=OFF  
  
#endif  
深圳嘉立创PCB现在降价了。做板加Q800058675

相关帖子

沙发
zqx1000| | 2018-4-10 08:41 | 只看该作者
大叔准备到神十上去种菜~~~ :lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

74

帖子

1

粉丝