PIC16系列只有一组配置位,而18系列却有多组,弄清楚其含义正确配置即可。
一.配置字
PIC单片机的配置字可以用__CONFIG命令来定义:
# include
__CONFIG(x)
其中x是配置字,头文件中定义了相应的配置说明符,如:
__CONFIG(WDTDIS & XT & UNPROTECT);
这将关闭看门狗,设置XT振方式,程序不加密。注意:不同的配置符间用’&’相联,未定义的部分保留未编程状态。详细的情况请参考头文件及PIC数据手册
二.ID 位置
有些PIC单片机在程序空间外还有ID空间,可用下面的方法来定义:
# include
__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文件中。里面的各项设置在PIC18Fxx22。H中。
上面的各项设置意义是:
//各项内容在PIC18FXX22.H文件中定义
//1.振荡器切换OFF&故障保护时钟监视器OFF&高速模式
//2.欠压复位ON&上电延时ON&看门狗OFF&看门狗分频数
//3.mclr用于复位脚
//4.使能后台调试器&使能指令集扩展&堆栈溢出不复位
//5.代码不保护
写程序的时候可以设置,在MPLAB软件里也可以设置。如果用某些PIC专用的烧录工具也可以再烧录界面来设置。
学PIC的单片机首先就必须要学CONFIG配置位等内部寄存器。下面是各种设置配置位的方法:
1:在汇编程序里加入__CONFIG xxxxx(注意下划线_是两条不是一条,后面的“xxxxx”是你需要配置的各个配置位信息。比如:__CONFIG _CP_OFF & _DEBUG_ON & _WRT_ENABLE_ON & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
2:在C语言程序里加入__CONGFIG(xxxxxx);,(如上面说的xxxxx是配置信息,config前的下划线还是两条,如:__CONFIG(INTOSCIO & WDTDIS & BORDIS & PWRTEN);注意有个分号“;”相关头文件可以看到单独配置位的关键字
3:还有就是在MPLAB软件里设置,建立好项目后,点击菜单栏的configure,然后是configuration bit,打开窗口后修改配置位。
多多实验,弄清楚起含义。
文章评论(0条评论)
登录后参与讨论