PIC单片机各寄存器汇总.docx

上传人:b****3 文档编号:4000842 上传时间:2022-11-27 格式:DOCX 页数:18 大小:452.62KB
下载 相关 举报
PIC单片机各寄存器汇总.docx_第1页
第1页 / 共18页
PIC单片机各寄存器汇总.docx_第2页
第2页 / 共18页
PIC单片机各寄存器汇总.docx_第3页
第3页 / 共18页
PIC单片机各寄存器汇总.docx_第4页
第4页 / 共18页
PIC单片机各寄存器汇总.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

PIC单片机各寄存器汇总.docx

《PIC单片机各寄存器汇总.docx》由会员分享,可在线阅读,更多相关《PIC单片机各寄存器汇总.docx(18页珍藏版)》请在冰豆网上搜索。

PIC单片机各寄存器汇总.docx

PIC单片机各寄存器汇总

配置字(__CONFIG):

1)芯片的振荡模式选择。

2)片内看门狗的启动。

3)上电复位延时定时器PWRT的启用。

4)低电压检测复位BOR模块的启用。

5)代码保护。

__CONFIG_CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&_XT_OSC&_WRT_OFF&_LVP_OFF&_CPD_OFF;

_CP_OFF代码保护关闭

_WDT_OFF看门狗关闭

_BODEN_OFF

_PWRTE_ON上电延时定时器打开

_XT_OSCXT振荡模式

_WRT_OFF禁止Flash程序空间写操作

_LVP_OFF禁止低电压编程

_CPD_OFFEEPROM数据读保护关闭

LVPLowVoltageProgram低电压编程

CPCodeProtect代码保护

DateEEReadProtectEEPROM数据读保护

BrownOutDetect

PowerUpTimer

WatchdogTimer

FlashProgramWrite

外部时钟输入(HS,XT或LPOSC配置)如下图:

陶瓷(ceramic)谐振器电容的选择如下表:

配置字(__CONFIG):

一般情况为:

111111001100010x3F31或0x3F71

位13CP:

闪存程序存储器代码保护位1

1=代码保护关闭

0=所有程序存储器代码保护

位12未定义:

读此位为11

位11DEBUG:

在线调试器模式位1

1=禁止在线调试器,RB6和RB7是通用I/O引脚

0=在线调试功能开启,RB6和RB7专用于调试

位10:

9WRT1:

WRT0:

闪存程序存储器的写使能位11

PIC16F876A/877A

11=写保护关闭,所有的程序存储器可能被写入由EECON控制

10=0000h-00FFh写保护,0100h-1FFFh写入由EECON控制

01=0000h-07FFh写保护,0800h-1FFFh写入由EECON控制

00=0000h-0FFFh写保护,1000h-1FFFh写入由EECON控制

位8CPD:

数据EEPROM存储器代码保护位(CodeProtectionbit)1

1=数据EEPROM存储器代码保护关闭

0=数据EEPROM存储器代码保护功能开启

位7LVP:

低电压(单电源)在线串行编程使能位(LowVoltageProgram)0

1=RB3/PGM引脚有PGM功能,低电压编程启用

0=RB3是数字I/O引脚,HV(高电压13V左右)加到MCLR必须用于编程

位6BOREN:

欠压复位使能位(低电压检测复位)(Brown-outReset(Detect))0

1=低电压检测复位BOR(BOD)模块启用

0=低电压检测复位BOR(BOD)模块关闭

位5:

4未定义:

读此两位均为111

位3PWRTEN:

上电定时器使能位(上电复位延时定时器)(Power-upTimer)0

1=上电定时器关闭

0=上电定时器开启

位2WDT:

看门狗定时器使能位0晶体振荡器电容的选择

1=看门狗开启如右图:

0=看门狗关闭

位1:

0Fosc1:

Fosc0:

振荡器选择位01

11=RC振荡器

10=晶体振荡器HS模式。

参考振荡频率范围:

>2MHz

01=晶体振荡器XT模式。

参考振荡频率范围:

100kHz~4MHz

00=晶体振荡器LP模式。

参考振荡频率范围:

<200kHz

 

OPTION_REG寄存器:

位7RBPU:

PORTB输入引脚内部弱上拉使能控制位

1=所有PORTB的内部弱上拉被禁止

0=设定为输入状态的引脚内部弱上拉被使能

位6INTEDG:

选择RB0/INT引脚的中断沿

1=RB0/INT上升沿中断

0=RB0/INT下降沿中断

位5T0CS:

选择TMR0的计数时钟源

1=外部脉冲沿跳变计数

0=内部指令周期计数

位4T0SE:

选择计数的外部脉冲沿

1=T0CKI脉冲上升沿计数

0=T0CKI脉冲下降沿计数

位3PSA:

预分频器指派

1=预分频器分配给看门狗定时器WDT,此时TMR0的计数预分频为1:

1

0=预分频器分配给TMR0

位2:

0PS2:

PS0:

设定预分频器的分频系数如下表所示

分频设定

TMR0分频比

WDT分频比

000

1:

2

1:

1

001

1:

4

1:

2

010

1:

8

1:

4

011

1:

16

1:

8

100

1:

32

1:

16

101

1:

64

1:

32

110

1:

128

1:

64

111

1:

256

1:

128

 

T1CON寄存器:

位7:

6没有定义,读此两位的结果为0

位5:

4T1CKPS1:

T1CKPS0:

TMR1预分频设置

11=预分频系数1:

8

10=预分频系数1:

4

01=预分频系数1:

2

00=预分频系数1:

1

位3T1OSCEN:

TMR1内部振荡器控制位

1=打开内部振荡器,反相放大器工作,需外接晶体产生振荡时钟

0=关闭内部振荡电路

位2T1SYNC:

TMR1同步/异步计数控制位

1=异步计数模式

0=同步计数模式

位1TMR1CS:

选择TMR1的计数时钟源

1=T1CKI引脚上的上升沿计数

0=内部指令周期计数(Fosc/4)

位0TMR1ON:

TMR1计数允许/禁止控制位

1=TMR1可以计数

0=TMR1计数暂停

 

T2CON寄存器:

位7没有定义,读此位的结果为0

位6:

3TOUTPS3:

TOUTPS0:

TMR2计数溢出后分频设置

0000=后分频系数1:

1

0001=后分频系数1:

2

……

1111=后分频系数1:

16

位2TMR2ON:

TMR2计数允许/禁止控制位

1=TMR2可以计数

0=TMR2计数暂停

位1:

0T2CKPS1:

T2CKPS0:

TMR2预分频设置

00=1:

1预分频

01=1:

4预分频

1x=1:

16预分频

 

CCPxCON寄存器:

位7:

6没有定义,读此两位的结果为0

位5:

4CCPxX:

CCPxY:

TMR1预分频设置

捕捉模式:

未用

比较模式:

未用

PWM模式:

PWM模式占空比控制字为10位,最低2位即放在CCPxX:

CCPxY中,高8位数据放入专门的一个寄存器CCPRxL

位3:

0CCPxM2:

CCPxM0:

CCP模块工作模式选择位

0000=关闭所有模式,CCPx模块处于复位状态

0100=捕捉模式,每一个上升沿捕捉一次

0101=捕捉模式,每一个下降沿捕捉一次

0110=捕捉模式,每4个上升沿捕捉一次

0111=捕捉模式,每16个上升沿捕捉一次

1000=比较模式,预置CCPx引脚输出为0,比较一致时CCPx引脚输出为1

1001=比较模式,预置CCPx引脚输出为1,比较一致时CCPx引脚输出为0

1010=比较模式,当比较一致时CCPxIF=1产生软中断,CCPx引脚没有变化

1011=比较模式,当比较一致时CCPxIF=1且触发特殊事件

11xx=PWM模式

 

INTCON寄存器:

位7GIE:

全局中断使能控制位

1=允许中断,但各中断还有独立的使能控制位

0=禁止所有的中断,不管各自的中断是否允许

位6PEIE:

外围功能模块中断允许控制位

1=允许外围功能模块中断

0=禁止所有外围功能模块中断

位5TMR0IE(T0IE):

TMR0中断使能控制位

1=允许TMR0中断

0=禁止TMR0中断

位4INTE:

RB0/INT引脚沿跳变中断允许控制位

1=允许RB0/INT引脚中断

0=禁止RB0/INT引脚中断

位3RBIE:

PORTB引脚状态变化中断使能控制位

1=允许PORTB状态变化中断

0=禁止PORTB状态变化中断

位2TMR0IF(T0IF):

TMR0中断标志位

1=TMR0计数溢出发生中断,必须用软件将其清除

0=TMR0没有溢出中断

位1INTF:

RB0/INT引脚沿跳变中断标志

1=RB0/INT引脚发生中断,必须用软件将其清除

0=没有发生RB0/INT引脚中断

位0RBIF:

PROTB引脚状态变化中断标志位

1=PORTB引脚出现状态变化中断,必须用软件将其清除

0=PORTB引脚没有发生状态变化中断

 

STATUS寄存器:

PIE1寄存器:

PIR1寄存器:

PIE2寄存器:

PIR2寄存器:

 

SSPSTAT寄存器:

位7SMP:

SPI模式下数据输入采样点控制(sample采样)

SPI主模式(SerialPeripheralinterface串行外围设备接口)

1=输出时间的中点对输入数据采样

0=输出时间结束时对输入数据采样

SPI从模式

此位必须保持为0

位6CKE:

SPI模式下时钟沿选择,与CKE位一起实现SPI时钟极性的4中模式

CKP=0(clockedge时钟沿)

0=数据在时钟的上升沿时发送

1=数据在时钟的下降沿时发送

CKP=1

0=数据在时钟的下降沿时发送

1=数据在时钟的上升沿时发送

位5D/A:

数据/地址控制位,只适用于I2C模式

0=表明接收或发送的是地址码

1=表明接收或发送的是普通数据

位4P:

停止位指示,只适用于I2C模式。

当SSP模块没有启用时,此位为0

1=表明刚才检测到一个停止位(芯片复位后此位为0)

0=没有检测到停止位

位3S:

起始位指示,只适用于I2C模式。

当SSP模块没有启用时,此位为0

1=表明刚才检测到一个起始位(芯片复位后此位为0)

0=没有检测到起始位

位2R/W:

读/写命令指令,只适用于I2C模式。

在I2C通信时如果寻址地址匹配,该位就留有读或写的标志。

其有效期限到出现下一个起始位/停止位/无应答信号为止

0=此次I2C通信为写操作

1=此次I2C通信为读操作,与BF位配合可以判断主器件有/无应答位输出

位1UA:

地址更新标志,只适用于I2C通信时的10位寻址模式

0=无需地址更新

1=表明SSPADD寄存器需要更新地址

位0BF:

数据缓冲器满标志

接收时(SPI和I2C)

0=接收没有完成,SSPBUF寄存器为空

1=接收已经完成,SSPBUF寄存器满

发送时(只适用于I2C)

0=发送完成,SSPBUF寄存器为空

1=正在发送过程中,SSPBUF寄存器满

 

SSPCON(SSPCON1)寄存器:

位7WCOL:

发送数据写入时的冲突标志

0=写入时没有冲突发生

1=当SSPBUF正在发送数据时程序又对其进行数据写入而发送冲突,此位被置位后必须有软件将其清0

位6SSPOV:

接收数据溢出标志位

SPI模式

0=数据接收没有溢出

1=当SSPBUF寄存器中所接收的数据还没有被读走时,内部的移位寄存器SSPSR内又有新的数据就绪,此时SSPSR内的数据将被丢弃,SSPBUF不会被更新。

SPI模式下接收数据溢出只可能发生在从模式下。

如果在从模式下只发送数据,发送完毕后应用程序也必须读一次SSPBUF以免发生溢出标志。

在主模式下得一次接收(或发送)过程都必须通过写SSPBUF才能启动,故一般不会出现接收溢出,除非你在接收数据到来后故意不去读SSPBUF寄存器。

I2C模式

0=接收数据没有溢出

1=当SSPBUF中原来接收到的数据还没有被取走时又有新的数据被收到。

在I2C处于数据发送模式时,此位不起任何作用。

但无论是接收还是发送,如果此位被置1,必须用软件将其清0。

位5SSPEN:

同步串行接口使能控制位

SPI模式

1=开启SPI功能,配置芯片的SCK、SDO、SDI、和SS引脚为SPI通信引脚

0=SSP模块被关闭,相应的引脚为普通数字I/O功能。

I2C模式

1=开启I2C功能,配置芯片的SDA、SDL为I2C通信引脚

0=SSP模块被关闭,相应的引脚为普通数字I/O功能。

位4CKP:

时钟极性控制位(clockpolarity时钟极性)

SPI模式

0=在通信的空闲状态下时钟处于低电平

1=在通信的空闲状态下时钟处于高电平

I2C模式用于时钟SCK的释放控制

0=将时钟持续拉低,用以保证数据建立或准备所需的时间

1=允许主器件控制时钟变化

 

位3:

0SSPM3:

SSPM0:

同步串行接口工作模式选择M=Mode模式

0000=SPI主模式,时钟=fosc/4

0001=SPI主模式,时钟=fosc/16

0010=SPI主模式,时钟=fosc/64

0011=SPI主模式,时钟=TMR2的溢出率/2

0100=SPI从模式,时钟=SCK引脚输入,使用SS引脚控制

0101=SPI从模式,时钟=SCK引脚输入,无SS引脚控制(SS可以作为普通I/O)

0110=I2C从模式,7位寻址发送

0111=I2C从模式,10位寻址发送

1000=I2C主模式,时钟=fosc/(4(SSPADD+1))

1001=保留

1010=保留

1011=软件控制型I2C主模式,硬件从模式功能关闭

1100=保留

1101=保留

1110=I2C从模式,7位寻址发送,起始位和停止位产生中断响应

1111=I2C从模式,10位寻址发送,起始位和停止位产生中断响应

 

SSPCON2寄存器:

(只有带MSSP模块的有该寄存器且只在I2C模式时有用)

位7GCEN:

广播呼叫使能位(只适用于I2C从模式)

0=禁止广播寻呼

1=当接收到特殊的广播寻呼地址0x00时,允许产生中断

位6ACKSTST:

应答位接收状态标志(只适用于I2C主模式发送数据)

0=发出数据后接收到从器件发出的应答位

1=发出数据后从器件没有产生应答位

位5ACKDT:

应答数据位(只适用于I2C主模式接收数据)

0=数据收到后主器件将发出应答位

1=数据收到后主器件将不发出应答位

位4ACKEN:

使能硬件自动产生应答位(只适用于I2C主模式接收数据)

0=无应答位发出

1=启动SDA和SCL总线上产生ACKDT所设置的应答位。

在应答位发出后此位被硬件自动清零0

位3RCEN:

接收使能位(只适用于I2C主模式)

0=禁止I2C接收数据

1=启动I2C接收8位数据,8位数据接收完毕后硬件自动清0

位2PEN:

使能硬件自动产生停止位(只适用于I2C主模式)

0=无停止位发出

1=启动SDA和SCL总线上产生停止位。

停止位发出后此位被硬件自动清零0

位1RSEN:

使能硬件自动产生重复起始位(只适用于I2C主模式)

0=无重复起始位发出

1=启动SDA和SCL总线上产生重复起始位。

重复起始位发出后此位被硬件自动清零0

位0SEN:

使能硬件自动产生起始位/电平延伸控制位

I2C主模式

0=无起始位发出

1=启动SDA和SCL总线上产生起始位。

起始位发出后此位被硬件自动清零0

I2C从模式

0=只在从器件发送数据时延伸时钟电平

1=在从器件接收或发送数据时延伸时钟电平

 

ADCON0寄存器:

(设置ADC模块工作方式)

位7:

6ADCS1:

ADCS0:

A/D转换时钟选择

00=fosc/2,即时钟源自于芯片主振荡的2分频

01=fosc/8,即时钟源自于芯片主振荡的8分频

10=fosc/32,即时钟源自于芯片主振荡的32分频

11=fRC,即时钟源自于AD模块内自带的RC振荡频率

位5:

3CHS2:

CHS0:

A/D转换输入模拟信号通道选择

000=通道0,AN0

001=通道1,AN1

010=通道2,AN2

011=通道3,AN3

100=通道4,AN4

101=通道5,AN5

110=通道6,AN6

111=通道7,AN7

位2GO/DONE:

A/D转换启动控制位和转换状态标志位

这一位既是A/D转换控制位,通过软件将其置1后开始一个A/D转换过程;同时又是一个标志位

1=A/D转换正在进行中

0=A/D转换过程结束

位1未定义:

程序中记得该位要始终保持为0

位0ADON:

A/D模块启动控制位

1=A/D转换模块开始工作

0=A/D转换模块被禁止,该部分电路没有任何耗电

 

ADCON1寄存器:

(设置ADC模块端口和数据格式)

位7ADFM:

A/D转换结果格式选择位(ADResultFormatSelectBit)

0=结果左对齐,ADRESL寄存器的低6位读作0

1=结果右对齐,ADRESH寄存器的高6位读作0

位6ADCS2:

A/D转换时钟频率选择位(ADCON1位在阴影区域,并以粗体字)

位5:

4未定义:

读取这些位将得到0

位3:

0PCFG3:

PCFG0:

A/D模块引脚功能配置位

这4个位决定了功能复用的引脚哪些作为普通数字I/O,哪些作为A/D转换时的电压信号输入。

如下表所示:

TXSTA数据发送控制及状态寄存器:

位7CSRC:

同步通信时钟源选择控制位

异步通信时此位不起作用,可以是任意值

同步通信时

1=选择同步通信主模式,时钟信号通过波特率发生器自己产生

0=选择同步通信从模式,时钟信号由其他主芯片提供

位6TX9:

9位数据格式发送使能控制位

1=选择9位数据格式发送

0=选择8位数据格式发送

位5TXEN:

发送使能控制位

1=允许发送数据

0=数据发送被禁止

位4SYNC:

USART工作模式选择

1=选择同步通信模式

0=选择异步通信模式

位3未定义:

读此位结果为0

位2BRGH:

波特率控制位

异步通信时

1=高速波特率发生模式

0=低速波特率发生模式

位1TRMT:

发送移位寄存器状态位,该位只读

1=移位寄存器为空

0=移位寄存器正在忙于发送数据

位0TX9D:

使用9位数据格式时的第9位发送数据,可以作为奇偶校验位

 

RCSTA数据接收控制及状态寄存器:

位7SPEN:

串行通信端口使能控制位

1=USART通信端口打开,模块接管引脚RX/DT和TX/CK

0=USART通信端口关闭

位6RX9:

9位数据格式接收使能控制位

1=选择9位数据格式接收

0=选择8位数据格式接收

位5SREN:

单次接收使能控制位

异步通信时,此位不起作用

同步通信主模式时

1=启动单次接收方式,当接收完一个数据后自动清0

0=禁止接收数据

位4CREN:

数据连续接收控制位

异步通信时

1=连续接收串行数据

0=禁止接收数据

同步通信时

1=选择数据连续接收模式,直到此位被清0,CREN将超越SREN的控制

0=禁止数据连续接收,将由SREN决定是否启动单次数据接收

位3未定义:

读此位结果为0

位2FERR:

接收数据帧错误标志,只读

1=当前接收的数据发生帧错误,读一次RCREG寄存器该位将被更新

0=没有帧错误

位1OERR:

接收数据溢出错误,该位只读

1=发生溢出错误,只有通过清除CREN位才能将其清除

0=没有溢出错误

位0RX9D:

使用9位数据格式时的第9位接收数据,可以作为奇偶校验位

 

CMCON寄存器:

CVRCONCONTROL寄存器:

PCON寄存器:

EECON1寄存器:

TRISE寄存器:

 

欢迎您的下载,

资料仅供参考!

 

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

 

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1