PIC单片机配置字是什么-又该如何正确配置

教程大全 2026-03-10 10:32:28 浏览

在现代嵌入式系统开发中,PIC单片机因其结构简单、成本低廉、性能可靠而备受青睐,要成功驱动一款PIC单片机,除了编写正确的应用程序代码外,还有一个至关重要的环节常常被初学者忽略,那就是配置字的正确设置,配置字并非程序代码的一部分,它存在于单片机特定的非易失性存储空间中,在芯片上电复位时被首先读取,用以决定芯片最核心的工作模式,可以将其理解为单片机的“硬件初始设定”或“底层BIOS”,它为后续的用户程序运行奠定了基础。

配置字的核心功能

配置字是一个或多个16位的寄存器,其每一个比特位都控制着一个特定的硬件功能,不同的PIC系列和型号,其配置位的数量和功能各不相同,但通常会涵盖以下几个关键方面。

X

时钟系统配置

时钟是单片机的“心跳”,配置字的首要任务就是选择时钟源,开发者可以根据项目需求在内部振荡器、外部晶体振荡器、陶瓷谐振器或外部时钟源之间做出选择。

看门狗定时器

看门狗定时器是一个独立的、由内部RC振荡器驱动的定时器,用于系统监控,一旦被使能,它会在设定的时间溢出,强制复位单片机,主程序必须在WDT溢出前周期性地执行“清狗”指令,才能防止系统复位,如果程序陷入死循环或“跑飞”,无法按时清狗,WDT就会触发复位,从而使系统恢复到已知的正常状态,这对于提高系统的可靠性和鲁棒性至关重要。

复位与启动配置

这部分配置确保单片机能够可靠地启动。

代码保护与调试

配置字的设置方法

在MPLAB X IDE等现代集成开发环境中,设置配置字非常便捷,主要有两种途径。

以下是一个典型的配置字代码示例:

#include // 配置字设置#pragma config FOSC = HS// 振荡器选择:HS(高速晶振)#pragma config WDTE = OFF// 看门狗定时器:禁用#pragma config PWRTE = ON// 上电延时定时器:使能#pragma config BOREN = ON// 欠压复位:使能#pragma config LVP = OFF// 低电压编程:禁用#pragma config CPD = OFF// 数据EEPROM代码保护:禁用#pragma config WRT = OFF// 程序存储器写保护:禁用#pragma config CP = OFF// 代码保护:禁用void main(void) {// 主程序代码while(1) {// ...}}

配置字示例表(以某PIC16F系列为例)

下表小编总结了几个关键配置位的选项及其描述,帮助理解其具体作用。

配置位 选项示例 描述
(振荡器) 选择内部振荡器、外部高速晶振或外部晶振/陶瓷谐振器。
(看门狗) 使能或禁用看门狗定时器。
(上电延时) 使能或禁用上电定时器(约72ms延时)。
(MCLR功能) 将MCLR引脚配置为复位引脚(ON)或RE3输入引脚(OFF)。
(代码保护) 使能或禁用程序存储器的代码保护功能。
(欠压复位) 使能、禁用BOR,或仅在睡眠模式下使能BOR。

配置字是PIC单片机开发中一个虽小但至关重要的组成部分,它如同一位默默无闻的幕后工作者,在上电瞬间为芯片设定好所有基本的行为准则,任何一个配置位的错误都可能导致系统无法启动、运行不稳定甚至无法正常编程,深入理解每一项配置的物理意义,养成在项目开始时仔细检查并正确设置配置字的习惯,是每一位PIC开发者从入门到精通的必经之路,务必牢记,当遇到无法解释的硬件行为时,首先查阅数据手册中的配置字章节,往往能迅速找到问题的根源。


相关问答FAQs

问题1:我设置了代码保护(CP)后,还能读取芯片内的程序吗?如果可以,读取到的是什么? 解答: 不能,代码保护功能的设计目的就是为了防止未经授权的读取,从而保护开发者的知识产权,一旦代码保护被使能并烧录到芯片中,任何尝试通过常规编程器(如PICkit)读取程序存储器(Flash)内容的操作都会失败,编程器读取到的通常不是您的实际代码,而是一全0或全1的数据,或者直接报告该区域被锁定,从而达到了代码保密的目的,这个过程是不可逆的,一旦设置了代码保护,就无法在不擦除整个芯片的情况下解除它。

问题2:刚把单片机焊到电路板上,烧录程序后完全没反应,会是配置字的问题吗?最可能出错的配置是哪些? 解答: 极有可能是配置字的问题,这种情况在开发初期非常常见,如果程序逻辑没有明显错误,但单片机“毫无反应”,应首先怀疑配置字设置不当,最常见的原因有以下三点:


STC单片机PWM编程!

看看这个,单片机用的是ADUC848,AD转换输出正弦波,和PWM原理类似。 实验八D/A转换实验一、实验目的1.了解芯片内部D/A转换模块设置方法。 2.了解D/A转换原理。 3.了解Keil软件中逻辑分析仪的使用方法。 4.了解用单片机产生正弦信号的基本方法。 二、实验原理ADuC848中包含一个12位电压输出DAC模块,DAC模块中寄存器的设置如下:DAC控制寄存器:DACCONNC表示未定义;DACPIN为DAC输出引脚选择;1=设置DAC输出引脚为Pin13(AINCOM);0=设置DAC输出引脚为Pin14(DAC);DAC8为DAC转换位数模式选择位;1=设置DAC为8位转换;0=设置DAC为12位转换;DACRN为DAC输出范围选择位;1=设置DAC的输出范围为0V-AVDD;0=设置DAC的输出范围为0V-2.5V(VREF);DACCLR为DAC清除位;1=设置DAC为正常操作模式;0=复位DAC数据寄存器DACL/Hto0;DACEN为DAC使能位1=使能DAC转换;0=不使能DAC转换;DAC数据寄存器:DACH/LDACH为12位转换的高位数据寄存器四、程序流程图和源程序1、主程序流程图2、源程序清单DACCONEQU0xfD;定义模数转换控制器DACHEQU0xfc;定义模数转换数据寄存器高8位DACLEQU0xfb;定义模数转换数据寄存器低8位ORG0000HLJMPMAINORG0200HMAIN:MOVDACCON,#0fH;DACoperationCLRA;MOVDACH,A;模数转换高八位清零PRG3:MOVR0,#09H;正弦波MOVR4,#40HLP11:MOVA,R0MOVCA,@A+PCMOVDACL,A;2ACALLDELAY;2INCR0;1DJNZR4,LP11;2SJMPPRG3;2DATA0:DB80H,8CH,98H,0A5H,0B0H,0BCH,0C7H,0D1H,0DAH,0E2H,0EAHDB0F0H,0F6H,0FAH,0FDH,0FFH,0FFH,0FDH,0FAH,0F6H,0F0HDB0EAH,0E2H,0DAH,0D1H,0C7H,0BCH,0B0H,0A5H,98H,8CHDB80H,7FH,73H,67H,5AH,4FH,43H,38H,2EH,25H,1DH,15HDB0FH,09H,05H,02H,00H,00H,02H,05H,09H,0FH,15HDB1DH,25H,2EH,38H,43H,4FH,5AH,67H,73H,7FHRETDELAY:MOVR6,#10HMOVR7,#0A1HDELAYLOOP:;延时程序DJNZR6,DELAYLOOPDJNZR7,DELAYLOOPRETEND四、实验板插针配置:无需插针配置,注意DAC是从CONDACOUT1端子输出,可用示波器观察DAC输出波形。 若产生失真情况,请检查开发板DA输出端LM358运算放大器的放大倍数,适当更改所查函数表的范围。 五、思考题1、改变程序,使能添加输出锯齿波;2、改变程序,使输出添加三角波;3、改变程序,使输出添加方波;4、改变程序,并制作一个简单的函数发生器

开机时进不了系统,一直在自检,出现上面的字符Inserting an index entry with id 401into index $SDH of 9

开机按键(参考下文)进入BIOS,将其设置成出厂默认值。 开机按F8键,进入安全模式,也许会有改善。 如能进去,那就再重启电脑,继续按F8键:此时可以选择使用【“最后一次正确的配置”启动windows】选项来解决诸如新添加的驱动程序与硬件不相符之类问题的一种方法。 用这种方式启动,Windows XP只恢复注册表项HklmSystemCurrentControlSet下的信息。 任何在其他注册表项中所做的更改均保持不变。 参考资料:【系统安装·进入BIOS一览表·芝麻开门】(可以使用网络搜索引擎找到此博文)

电脑时常出现蓝屏用360修复检测修复得更新显卡驱动更新完安装完后电脑屏幕图标字体变宽显示分辨率模糊了

1)这是驱动不合适引起的,软件说什么,您就听吗? 1、开机按F8不动到高级选项出现在松手,选“最近一次的正确配置”回车修复(这个方法可以恢复原来的驱动)。 2、如果是因更新驱动引起的故障,右击我的电脑选属性,选设备管理器找到这个驱动右键选属性/上面的驱动程序选项/选下面返回驱动程序选项按确定。 3、如果故障依旧,还原系统或重装。 使用系统自带的系统还原的方法: 系统自带的系统还原:“开始”/“程序”/“附件”/“系统工具”/“系统还原”,点选“恢复我的计算机到一个较早的时间”,按下一步,你会看到日期页面有深色的日期,那就是还原点,你选择后,点击下一步还原(Win7还原系统,右击计算机选属性,在右侧选系统保护,系统还原,按步骤做就是了,事前也可以选择这个页面最下面创建,自己创建还原点)。 驱动有随电脑自带的,有官方网站下载的,软件有驱动精灵、驱动人生、超级兔子等软件(安装驱动尽量按顺序安装)。 2)蓝屏 您的电脑蓝屏的时候,您在电脑干什么呢,能说说吗?我会跟据您说的较为准确的回答您。 蓝屏代码或事件查看器里面的内容普通人是看不懂的,请将你在蓝屏前电脑的表现,和你操作说的详细些(我跟据你提供的信息重新回答你)。 一般蓝屏是自己不正确操作引起的,记住容易引起蓝屏的操作不做。 电脑不要满负荷操作,就是在玩游戏、看视频时、下载时、看网页的同时在干别的操作最容易死机、蓝屏,因此在玩游戏、看视频、下载时、看网页时不要在操作别的东西了。 不管您在干什么,只要一有卡的迹象时就赶紧停止手头的操作退出在试,这样就不会蓝屏,如果还是这样就不要玩了或是不要看了。 硬件方面:如果内存小请加内存条,硬盘是否有坏道,硬件是否不兼容或是故障,在用鲁大师测试一下CPU等硬件的温度是否高。 90%的蓝屏是自己操作使用电脑不当引起的,卡是蓝屏发生的根源,容易引起卡的操作不做,就会避免蓝屏或少发生蓝屏。 360、新毒霸等软件是解决不了蓝屏问题的,因为一般的蓝屏是自己操作不正确引起的,如果注意了操作就不会蓝屏,这样的蓝屏用软件是不行的(软件查后就是让你安装显卡驱动,如果不是这的问题,安装后会出现新的问题,因为90%的蓝屏是操作不正确引起的)。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐