历史上的今天
返回首页

历史上的今天

今天是: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。

推荐阅读

史海拾趣

Bias Power公司的发展小趣事

Bias Power公司深知研发实力是企业发展的核心。因此,公司投入大量资源用于研发工作,建立了完善的研发团队和实验设施。通过不断的技术创新和研发投入,Bias Power公司成功推出了一系列具有竞争力的新产品,巩固了其在电子行业的领先地位。

同时,公司还注重知识产权的保护,积极申请专利,保护其核心技术不被侵犯。这些专利的申请和授权不仅提升了公司的技术实力,还为公司的发展提供了有力保障。

Bellnix Co Ltd公司的发展小趣事

Bellnix Co Ltd自创立之初,便以技术创新为核心竞争力。在电子元器件制造领域,公司不断投入研发,推出了一系列高性能、低成本的芯片产品。这些产品不仅在国内市场占据了一席之地,还成功打入了国际市场,赢得了众多客户的认可。随着技术的不断积累,Bellnix逐渐在行业内树立起了技术领先的形象,从而实现了公司的快速发展。

Emerson公司的发展小趣事

第二次世界大战期间,Emerson迅速调整生产策略,转产炮弹弹壳等军需品。在随后的五年中,公司共生产出超过1000万支铜制炮弹弹壳,为战争的胜利做出了重要贡献。同时,Emerson还利用战时的技术积累,为战后的电气工业发展奠定了基础。

Genisco Electronics公司的发展小趣事
综合考虑发电机的购置成本、运行成本和维护成本等因素,选择性价比高的产品。
Dresden Elektronik公司的发展小趣事

Dresden Elektronik公司始终将产品质量放在首位。他们建立了严格的质量管理体系,从原材料采购到生产、检测、包装等各个环节都严格把关。这种对品质的执着追求使公司的产品在市场上赢得了良好的口碑,也为公司赢得了众多忠实的客户。

EPC公司的发展小趣事

某EPC公司注重与产业链上下游企业的合作与共赢。公司与供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和成本控制。同时,公司积极与设备制造商、系统集成商等合作伙伴开展深度合作,共同研发新技术、新产品,为客户提供更加全面的解决方案。通过合作共赢的模式,公司实现了跨越式的发展,成为了电子行业的领军企业之一。

问答坊 | AI 解惑

步进程序的疑问

#include #include \"math.h\" unsigned char z,z1;//取步序 unsigned int lj1=0;//a电机累加次数 unsigned int lj2=0; //b电机累加次数 unsigned char pda,pdb;//判断正反转 unsigned char x1=0,x2=0;  //x坐标 unsigned char y ...…

查看全部问答>

枕头里的私人音乐空间

这是一个内置音乐播放器、扬声器的枕头,手提箱式的设计方便携带,打开之后还可以展开一张很大的毯子,就算是躺在操场的草坪上,也不用担心草尖会扎到脖颈。内置的播放器可以识别U盘或存储卡,随时随地可以营造一个有轻音乐伴随的休憩空间。 …

查看全部问答>

单片机能做什么?

今天和同学聊天,谈起单片机,他觉得单片机做不了什么东西,更适合小工厂。而更广泛的应该用PLC,大家觉得单片机会被淘汰吗?用单片机又能做些什么呢?欢迎大家发表自己的意见啊。(我同学研究生毕业直接做了老师,接触实际的很少。)…

查看全部问答>

100分求一个用于C#上能带图片的按钮控件.

我想用C#开发WinCE的程序,找了半天没有找到怎么在按钮上放图片,听说是没有带这样的控件,  都是第三方的才行. 哪位有发给小弟一个. …

查看全部问答>

2440头文件的奇怪问题

在s2440.h有这么一段: #define ADC_BASE      0xB1800000 // 0x58000000 typedef struct {         unsigned int         rADCCON;         ...…

查看全部问答>

菜鸟求问:如果调试2440下面的SPI接口

买的是tq2440,有四个GPIO引脚支持SPI协议。 但是不知道调试的话该从何做起。 刚开始学习,网上溜达了好多天 看了driver下的驱动程序以及DOcument下面的test程序 但是具体是怎么个操作过程,希望有人能指点一下 譬如说是不是先要用导线将MISO ...…

查看全部问答>

task延时问题

我想使用task来实现毫秒级的延时,想延时了就调用task延时。 但是遇到要使用时钟的问题,不知如何解决,哪位大虾能伸出援手????…

查看全部问答>

转贴:LM3S单片机UART的FIFO理解 和μDMA方式的UART

最近在看UART,看到这篇理解的不错,特转发过来,和大家一起学习学习。   Stellaris单片机有两个16字FIFO,分别用于缓存收和发的数据。FIFO触发中断的深度可设置,设置为8个数据(1/8)触发发送中断时,就是当发送FIFO中数据少于8时触发发送 ...…

查看全部问答>

请教STM8S103读取内部EEPROM为什么不行?

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或二进制文件,通过编程器,先加密,然后写到片子 ...…

查看全部问答>