导航:首页 > 操作系统 > pic单片机配置位变化

pic单片机配置位变化

发布时间:2022-05-24 16:24:45

‘壹’ pic的配置位是什么意思

设置PIC单片机运行时的一些状态信息,例如晶体类型(XT,HS,LP),是否使用看门狗,低电平复位等相关的信息。配置位只能是在烧写时改好,程序运行时就不能更改了。

‘贰’ pic单片机上电复位后所有I/O引脚将被 成什么工作方式

复位后IO脚为输入状态。默认是普通的IO口作为数字式输入模式,就是对应tris位被配置成1。

而如果这个IO引脚复用做AD输入的话,就默认配置为模拟输入。如果还被复用为和比较器相关的引脚,那么就被配置为比较器输入。

有的IO引脚复用为MCLR上电复位引脚,那么它会根据你程序设置的配置位来决定其复位后是作为IO输入还是作为MCLR引脚。

简介

单片机也被称为单片微控器,属于一种集成式电路芯片。在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。

由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。简单地说,单片机就是一块芯片,这块芯片组成了一个系统,通过集成电路技术的应用,将数据运算与处理能力集成到芯片中,实现对数据的高速化处理。

‘叁’ PIC单片机config配置问题

我专门给你编了个PIC16F1823的C程序,用的是PICC9.8。

其配置位的含义,请把这些程序编译后在MPLABIDE的配置位窗口看,就知道了。

程序实现对一个端口的LED闪亮功能,图为在PROTEUS仿真的结果,证明结果是正确的,我用的是PROTEUS7.9的,低的版本没有这个单片机。

#include<pic.h>

//第一个配置设置为:振荡器为内部RC,各种功能(看门狗,上电定时器等)

__CONFIG(0x09E4);

//第二个配置设置为:关闭PLL锁相环,掉电复位电压为2.4V,低电压写使能

__CONFIG(0x3EFF);

#defineLEDRA5

voidDELAY(unsignedint);

voidmain(void)

{ //未对ODSCCON设置,即用默认的500kHz的内部振荡器,指令周期为8us

TRISA5=0;

LED=1;

while(1)

{ DELAY(3);

LED=!LED;

}

}

voidDELAY(unsignedintn)

{ unsignedinti;

for(i=0;i<n;i++)

{ NOP();

NOP();

NOP();

NOP();

}

}

‘肆’ 请教PIC12/16/18系列单片机io口位操作方法种类!

PIC单片机因种类多,不同型号的芯片的对IO位操作也不完全相同。没有统一的操作方法。
也有各种编译器定义不同而有不同的编写方式,比如你说的RA0是因为所写程序所调用的头文件已经声明了RA0的作用:如PIC12/16系列的基本都有这个声明:
static bit RA0 @ (unsigned)&PORTA*8+0;
这表明RA0可以标识PORTA的最低位。
还有就是,PORT寄存器就不一定是对IO口的输出操作寄存器,比如PIC18系列的IO口操作多了一个LAT寄存器,TRIS依旧是方向配置寄存器,但PORT则变成了读IO状态的寄存器,如果对PORT写,只能写到IO口对应的锁存器里,但并不能输出到IO引脚上,只有用LAT寄存器才能输出到IO上,比如LATD=0X01,则 D口的最低位输出一个高电平(当然方向寄存器TRISD还是要设置的)

说了那么多,其实就是想告诉你,PIC单片机种类很多,虽然内部CPU架构和指令集差不太多,但在一些外设的配置上是变化很多的,这需要你写程序的时候,必须对照相应的数据手册来经行开发。

‘伍’ 在PIC单片机中,配置位__CONFIG(XT&WDTDIS&LVPDIS) 是怎么得到的,里面不是数字吗

有二种方法可以得到,
一是从相应单片机型号的头文件中可以找到,它实际上是用宏定义的方法,把几个常数进行与操作,如你给的例子。
二是在MPLAB IDE的界面中设置后得到的数据,这个数据如0x3F39,至于这个数据代表是什么,还得从MPLAB IDE的配置界面中去看。
这个参考文献里说的比较详细。

‘陆’ 为什么PIC单片机定时器0记满低8位不会向高8位进位是不是要有特殊的配置呀

你这是那款PIC的单片机啊?如果是PIC12或者PIC16的话,定时器0本身就是八位的,没有高位。
看程序貌似是PIC18系列的,这个你注意看数据手册,只有在读TMR0L的时候,才能读出TMR0H,有可能他已经进位了,只是没读出来。你可以以单步跟踪的方式,看看在TMR0L快到FF的时候,是否对TMR0IF置位了。

我以前用PIC18F4680也遇到这种情况,我当时使用ICD2进行仿真,发现ICD2仿真或者软件仿真的时候,查看watch有时候并不能及时反映寄存器的变化。
再有就是TMR0H不一定能直接看出来的,就像前面我说过的,你看数据手册,一开始TMR0L溢出是到了TMR0上而不是TMR0H上。只有程序读一下TMR0L,才能让TMR0的数值自动移存到TMR0H那里。所以,你想看他是否有变化,需要在程序中读一下TMR0L。
或者你看中断标志寄存器(不是叫你开中断)溢出后会自动置位INTCON的bit2位的TMR0IF。就是让你看看在TMR0L=0XFE的时候,单步运行一下,然后看TMR0IF是否被置位了。如果是,就说明你设置还是在8位定时器。

‘柒’ 怎样用pic单片机头文件配置字 具体怎么用 我是c语言 要一位一位的配置 比如PLLEN_ON = 1;

我以现在最新的XC编译器为例:
XC8(8位单片机):C:\Program Files (x86)\Microchip\xc8\v1.10\docs\chips
XC16(16位单片机):C:\Program Files (x86)\Microchip\xc16\v1.11\docs\config_docs
XC32(32位单片机):C:\Program Files (x86)\Microchip\xc32\v1.11\docs\hlpPIC32MXConfigSet.chm

我用的是Win7 64位系统,32位系统XC默认安装目录在C:\Program Files文件夹下。版本号也可能不一致,比如XC8编译器C:\Program Files (x86)\Microchip\xc8\v1.10\docs\chips,v1.10是当前我安装的XC版本号,这个地方要改成你安装的XC版本号。

‘捌’ pic单片机标志位问题

C:进位/借位位,结果有进位或者借位,C被置1,否则为0
DC:辅助进位/借位位,执行加、减运算指令后,若结果的低四位向高四位有进位或借位,则DC置1,否则置0
Z:零标志位,零标志位运算结果为零,Z被置1;运算结果不为零,Z被清零

‘玖’ PIC单片机的配装位如何设置

汇编指令这样写:
在程序开头设置玩芯片信息即:list=xxx芯片后,用“__CONFIG”来配置,注意,这里的“__”是两个下划线,不是一个。CONFIG后面空格接各个配置位。例如:
__CONFIG _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC
我用的芯片是16F873,配置字关闭了看门狗“_WDT_OFF”,关闭掉电检测“_BODEN_OFF”,打开上电复位“_PWRTE_ON”,振荡电路选外部标准晶振“_XT_OSC”。PIC各个不同型号的芯片之间有不同的配置位,你用那款芯片就去microchip的网站找这芯片的数据手册,里面有这芯片涉及到的配置位说明。

对于C语言程序:
也是“__CONFIG”用来设置配置位,但格式稍稍不同
__CONFIG { WDTDIS & BORDIS & PWRTEN & XT };

阅读全文

与pic单片机配置位变化相关的资料

热点内容
如何登录服务器看源码 浏览:522
如何做服务器端 浏览:154
注册服务器地址指什么 浏览:433
文本命令行 浏览:97
扑克牌睡眠解压 浏览:192
rc4算法流程图 浏览:159
胡萝卜解压方法 浏览:35
扫描pdf格式软件 浏览:876
程序员在银行开账户 浏览:516
android数据库下载 浏览:749
中午服务器崩溃怎么办 浏览:425
产品经理和程序员待遇 浏览:442
解忧程序员免费阅读 浏览:109
录像免压缩 浏览:508
总结所学过的简便算法 浏览:362
南昌哪些地方需要程序员 浏览:761
三台服务器配置IP地址 浏览:175
如何用命令方块连续对话 浏览:280
win7linux共享文件夹 浏览:305
命令符打开本地服务 浏览:601