PIC 里面关于 __CONFIG( ) 配置位

一.配置字
      PIC单片机的配置字可以用__CONFIG命令来定义:
    #i nclude
         __CONFIG(x)   ;其中x是配置字,头文件中定义了相应的配置说明符。

如:
        __CONFIG(WDTDIS & XT & UNPROTECT);
       这将关闭看门狗,设置XT振方式,程序不加密。注意:不同的配置符间用'&'相联,未定义的部分保留未编程状态。详细的情况请参考头文件及PIC数据手册

二.ID 位置
      有些PIC单片机在程序空间外还有ID空间,可用下面的方法来定义:
#i nclude
      __IDLOC(x) ;其中x是ID标示。

如:
      __IDLOC(15F0);
   将ID的四个单元定义为:1, 5, 15, 0. ID的具体位置由所指定的PIC芯片自动设定。

三.EEPROM 数据
       有些PIC单片机支持用外部编程器对内部的EEPROM进行编程。
      __EEPROM_DATA()可以将用于初始化的数据放入HEX文件中。

如:
       __EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7)
可将0-7八个数放入HEX文件中,在用外部的编程器进行编程时将 这八个数写入PIC单片机中。
__EEPROM_DATA不是用于运行时写入EEPROM数据的,在运行时请用 EEPROM_READ(), EEPROM_WRITE()。

==============================================================================

PIC 18 __config 配置位

     PIC18的__CONFIG设置与PIC16的不一样。

PIC16的如:

        __CONFIG(_CP_OFF&_WDT_ON&_BODEN_ON&_PWRTE_ON&_RC_OSC); 是写在一起的。

PIC18 不写在一起,CONFIG1..7是分开写的。如:

      __CONFIG(1,IESODIS&FCMDIS&HS);
      __CONFIG(2,BOREN&PWRTEN&WDTDIS&WDTWINDIS&WDTPS32K);
      __CONFIG(3,MCLREN);
      __CONFIG(4,DEBUGEN&XINSTEN&STVRDIS);
      __CONFIG(5,UNPROTECT);

__CONFIG(N,X) 函数原型在PIC18.H文件中(PICC软件安装目录下的include文件夹中)。里面的各项设置在PIC18Fxx22.H中。N代表配置信息;X代表设置变量。如果要实现处理器的一些特殊功能,则需要查找相关的帮助文件,根据帮助文件的提示,在同文件中定义相关的变量。

上面的各项设置意义是:

     //各项内容在PIC18FXX22.H文件中定义
    //1.振荡器切换OFF&故障保护时钟监视器OFF&高速模式
    //2.欠压复位ON&上电延时ON&看门狗OFF&看门狗分频数
    //3.mclr用于复位脚
    //4.使能后台调试器&使能指令集扩展&堆栈溢出不复位
   //5.代码不保护

==============================================================================

       笔者在使用picc18进行基于PIC18F452的软件开发时,发现对于18系列的单片机,手动设置配置位非常麻烦,而且容易出错,所以考虑在源程序中设定配置位,这样编译后,无论是用什么烧写工具,都不需要再进行配置位的设定了。
      对于HI-TECH C18 , 配置字的设定通过宏 __CONFIG(n,x)来实现.
宏__CONFIG(n,x)的声明在文件pic18.h中,各位元的声明在对应芯片型号的头文件中.18F452的例程如下:
/
#define __CONFIG(n, x) asm("\tpsect config,class=CONFIG");\    
   asm("global config_word" ___mkstr(n)); \    

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值