PIC单片机的配置字用CONFIG命令的定义.doc

上传人:白大夫 文档编号:3270779 上传时间:2019-08-07 格式:DOC 页数:5 大小:24KB
返回 下载 相关 举报
PIC单片机的配置字用CONFIG命令的定义.doc_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《PIC单片机的配置字用CONFIG命令的定义.doc》由会员分享,可在线阅读,更多相关《PIC单片机的配置字用CONFIG命令的定义.doc(5页珍藏版)》请在三一文库上搜索。

1、PIC单片机的配置字用CONFIG命令的定义一配置字i nclude_CONFIG(x) ;其中x是配置字,头文件中定义了相应的配置说明符。如:_CONFIG(WDTDIS 这将关闭看门狗,设置XT振方式,程序不加密。注意:不同的配置符间用二ID 位置有些PIC单片机在程序空间外还有ID空间,可用下面的方法来定义:i nclude_IDLOC(x) ;其中x是ID标示。如:_IDLOC(15F0);将ID的四个单元定义为:1, 5, 15, 0. ID的具体位置由所指定的PIC芯片自动设定。三EEPROM 数据有些PIC单片机支持用外部编程器对内部的EEPROM进行编程。_EEPROM_DAT

2、A()可以将用于初始化的数据放入HEX文件中。如:_EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7)可将0-7八个数放入HEX文件中,在用外部的编程器进行编程时将 这八个数写入PIC单片机中。_EEPROM_DATA不是用于运行时写入EEPROM数据的,在运行时请用 EEPROM_READ(), EEPROM_WRITE()。=PIC18_config配置位PIC18的_CONFIG设置与PIC16的不一样。PIC16的如:_CONFIG(_CP_OFF 是写在一起的。PIC18 不写在一起,CONFIG1.7是分开写的。如:_CONFIG(1,IESODIS_CONFI

3、G(2,BOREN_CONFIG(3,MCLREN);_CONFIG(4,DEBUGEN_CONFIG(5,UNPROTECT);_CONFIG(N,X) 函数原型在PIC18.H文件中(PICC软件安装目录下的include文件夹中)。里面的各项设置在PIC18Fxx22.H中。N代表配置信息;X代表设置变量。如果要实现处理器的一些特殊功能,则需要查找相关的帮助文件,根据帮助文件的提示,在同文件中定义相关的变量。上面的各项设置意义是:/各项内容在PIC18FXX22.H文件中定义/1.振荡器切换OFF/2.欠压复位ON/3.mclr用于复位脚/4.使能后台调试器/5.代码不保护=笔者在使用p

4、icc18进行基于PIC18F452的软件开发时,发现对于18系列的单片机,手动设置配置位非常麻烦,而且容易出错,所以考虑在源程序中设定配置位,这样编译后,无论是用什么烧写工具,都不需要再进行配置位的设定了。对于HI-TECH C18 , 配置字的设定通过宏 _CONFIG(n,x)来实现。宏_CONFIG(n,x)的声明在文件pic18.h中,各位元的声明在对应芯片型号的头文件中.18F452的例程如下:/*#include/*/*The declaration of _CONFIG(n,x) is in pic18.h */*The _CONFIG(n,x) direcTIve defin

5、es configuraTIon data within is in pic18fxx2.h */*_CONFIG(1,RC) ;_CONFIG(2,PWRTDIS _CONFIG(4,STVRDIS) ;void main(void)/your code/*在pic18.h中,_CONFIG(n,x)的声明如下#define _CONFIG(n, x) asm(“tpsect config,class=CONFIG”);asm(“global config_word” _mkstr(n); asm(“config_word” _mkstr(n)“:”); asm(“torg (”_mkstr

6、(n)“-1)*2”); asm(“tdw ”_mkstr(x)部分在pic18.h中的声明大体如下,具体请参考对应的头文件。/ ConfiguraTIon bit values/ Config. Register 1#define OSCSEN 0xDFFF / enable oscillator system clock#define OSCSDIS 0xFFFF/ oscilator types#define RCRA6 0xFFFF / RC w/OSC2 config as RA6#define HSPLL 0xFEFF / HS w/PLL Enabled, Clk Freq =

7、4xFreq Osc.#define ECRA6 0xFDFF / EC w/OSC2 config. as RA6#define ECDB4 0xFCFF / EC w/OSC2 as divide by 4 clock output#define RC 0xFBFF#define HS 0xFAFF#define XT 0xF9FF#define LP 0xF8FF/ Config. Register 2/ Brown Out reset#define BOREN 0xFFFF / Brown-out reset enablen代表 Config. Register n(代表配置信息),

8、例如_CONFIG(1,x); 1 代表Config. Register 1, X可为OSCSEN,RC等。!最后还应该注意的是如果在源程序中进行配置位设置,如果使用的软件版本(比如使用picc18的8.20版本和MPLAB6.30)较低,虽然编译不会有问题,但可能会出现配置位设置混乱,推荐使用picc18的8.35版本和MPLAB7.0以上。安装HTSOFT的软件时,也必须保证完全安装,尤其是一定要安装MPLAB_toolsuites工具。=如下:PIC18F452中PIC18.h (此时源程序,哪位高人可否解析下?共同学习。)/* Store a word value to a parTI

9、cular configuration word register eg.* _CONFIG(4, DEBUGEN / write to config word 4* config mask attributes (such as DEBUGEN) defined in chip-specific* header file. */#define_CONFIG(n, x)asm(“tpsect config,class=CONFIG”);/*t是制表符,格式需要;psect 是定义class的关键字,意思是将以下的代码放入CONFIG class 中,并命名为config(注意大小写);config为自定义的class名,可以为任何其他名字;CONFIG说明了这个class的起始地址,在连续命令中指定CONFIG的范围delta=2,规定就是这样的。*/asm(“global config_word” _mkstr(n); /*_mkstr(x)是一个将数字转换为字符的宏,目的是让编译器把一个数字当作是一个字符串来处理,如果不用_mkstr,你需要写成_CONFIG(“0x0F”)的形式,使用了_mkstr,直接写成_CONFIG(0x0F)的形式就行了,这一切只是为了用户更友好的使用这些宏,没什么特别的意思*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1