历史上的今天
今天是:2025年02月24日(星期一)
2020年02月24日 | PIC单片机如何定义配置字与芯片标记
2020-02-24 来源:eefocus
PICC提供了相关的预处理指令以实现在源程序中定义单片机的配置字和标记单元。
1)定义工作配置字
在源程序中定义PIC单片机工作配置字的重要性在前面章节中已经阐述。在用PICC写程序时同样可以在C原程序中定义,具体方式如下:
__CONFIG(HS&UNPROTECT&PWRTEN&BORDIS&WDTEN);
上面的关键词“__CONFIG”(注意前面有两个下划线符)专门用于是芯片配置字的设定,后面括号中的各项配置位符号在特定型号单片机的头文件中已经定义(注意不是pic.h头文件),相互之间用逻辑“与”操作符组合在一起。这样定义的配置字信息最后将和程序代码一起放入同一个HEX文件。
在这里列出了适用于16F7x系列单片机配置位符号预定义,其它型号或系列的单片机配置字定义方式类似,使用前查阅一下对应的头文件即可。
/*振荡器配置*/
#defineRC 0x3FFF//RC振荡
#defineHS 0x3FFE//HS模式
#defineXT 0x3FFD//XT模式
#defineLP 0x3FFC//LP模式
/*看门狗配置*/
#defineWDTEN0x3FFF//看门狗打开
#defineWDTDIS 0x3FFB//看门狗关闭
/*上电延时定时器配置*/
#definePWRTEN0x3FF7//上电延时定时器打开
#definePWRTDIS0x3FFF//上电延时定时器关闭
/*低电压复位配置*/
#defineBOREN0x3FFF//低电压复位允许
#defineBORDIS 0x3FBF//低电压复位禁止
/*代码保护配置*/
#defineUNPROTECT0x3FFF//没有代码保护
#definePROTECT0x3FEF//程序代码保护
2)定义芯片标记单元
PIC单片机中的标记单元定义可以用下面的__IDLOC(注意前面有两个下划线符)预处理指令实现,方法如下:
__IDLOC(1234);
其特殊之处是括号内的值全部为16进制数,不需要用“0x”引导。这样上面的定义就设定了标记单元内容为01020304。
史海拾趣
|
这是一个内置音乐播放器、扬声器的枕头,手提箱式的设计方便携带,打开之后还可以展开一张很大的毯子,就算是躺在操场的草坪上,也不用担心草尖会扎到脖颈。内置的播放器可以识别U盘或存储卡,随时随地可以营造一个有轻音乐伴随的休憩空间。 … 查看全部问答> |
|
我想用C#开发WinCE的程序,找了半天没有找到怎么在按钮上放图片,听说是没有带这样的控件, 都是第三方的才行. 哪位有发给小弟一个. … 查看全部问答> |
|
在s2440.h有这么一段: #define ADC_BASE 0xB1800000 // 0x58000000 typedef struct { unsigned int rADCCON; ...… 查看全部问答> |
|
买的是tq2440,有四个GPIO引脚支持SPI协议。 但是不知道调试的话该从何做起。 刚开始学习,网上溜达了好多天 看了driver下的驱动程序以及DOcument下面的test程序 但是具体是怎么个操作过程,希望有人能指点一下 譬如说是不是先要用导线将MISO ...… 查看全部问答> |
|
转贴:LM3S单片机UART的FIFO理解 和μDMA方式的UART 最近在看UART,看到这篇理解的不错,特转发过来,和大家一起学习学习。 Stellaris单片机有两个16字FIFO,分别用于缓存收和发的数据。FIFO触发中断的深度可设置,设置为8个数据(1/8)触发发送中断时,就是当发送FIFO中数据少于8时触发发送 ...… 查看全部问答> |
|
void EEP_INIT(void) { FLASH_CR1 = 0x00; FLASH_CR2 = 0x00; FLASH_NCR2 = 0xff; FLASH_DUKR = MASS_KEY1; FLASH_DUKR = MASS_KEY2; while(!FL ...… 查看全部问答> |
|
现在产品已基本上开发出来,即将批量生产,但是却存在一个问题,在以前开发阶段,我总是通过在线 编程的方式将程序写入芯片,现在要批量生产了,总不能还通过这种方式吧,能不能向51单片机一样将程序编译成HEX或二进制文件,通过编程器,先加密,然后写到片子 ...… 查看全部问答> |




