4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
PIC单片机内部寄存器信息汇总_ 肥尾鱼(嵌入式)-CSDN博客_pic寄存器
来自 : CSDN技术社区 发布时间:2021-03-24

配置字 __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_OSC             XT振荡模式

_WRT_OFF            禁止Flash程序空间写操作

_LVP_OFF            禁止低电压编程

_CPD_OFF            EEPROM数据读保护关闭

 

LVP   Low Voltage Program     低电压编程

CP    Code Protect             代码保护

       Date EE Read Protect     EEPROM数据读保护

        Brown Out Detect

      Power Up Timer

      Watchdog Timer

      Flash Program Write

外部时钟输入 HS XT或LP OSC配置 如下图

\"\"

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

\"\"

配置字 __CONFIG

\"\"

 

一般情况为 11  1111  0011  0001    0x3F31  或0x3F71

 

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

          1 代码保护关闭

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

位12     未定义 读此位为1              1

位11     DEBUG 在线调试器模式位       1

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

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

位10 9  WRT1 WRT0 闪存程序存储器的写使能位      11

          PIC16F876A / 877A

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

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

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

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

位8      CPD 数据EEPROM存储器代码保护位       (Code Protection bit)         1

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

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

位7      LVP 低电压 单电源 在线串行编程使能位   (Low Voltage Program)      0

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

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

位6      BOREN 欠压复位使能位 低电压检测复位 (Brown-out Reset(Detect))     0

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

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

位5:4    未定义 读此两位均为1               11

位3      PWRTEN 上电定时器使能位 上电复位延时定时器   (Power-up Timer)    0

\"\"

          1 上电定时器关闭

          0 上电定时器开启

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

          1 看门狗开启                  如右图

          0 看门狗关闭

位1 0   Fosc1 Fosc0 振荡器选择位   01

          11 RC振荡器

          10 晶体振荡器HS模式。参考振荡频率范围 2 MHz

          01 晶体振荡器XT模式。参考振荡频率范围 100 kHz ~ 4 MHz    

          00 晶体振荡器LP模式。参考振荡频率范围 200 kHz

OPTION_REG寄存器

\"\"

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

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

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

位6      INTEDG 选择RB0/INT引脚的中断沿

          1 RB0/INT 上升沿中断

          0 RB0/INT 下降沿中断

位5      T0CS 选择TMR0的计数时钟源

          1 外部脉冲沿跳变计数

          0 内部指令周期计数

位4      T0SE 选择计数的外部脉冲沿

          1 T0CKI脉冲上升沿计数

          0 T0CKI脉冲下降沿计数

位3      PSA 预分频器指派

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

          0 预分频器分配给TMR0

位2 0   PS2 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 4   T1CKPS1 T1CKPS0 TMR1预分频设置

          11 预分频系数1 8

10 预分频系数1 4

01 预分频系数1 2

00 预分频系数1 1

位3      T1OSCEN TMR1内部振荡器控制位

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

          0 关闭内部振荡电路

位2      T1SYNC TMR1同步/异步计数控制位

          1 异步计数模式

          0 同步计数模式

位1      TMR1CS 选择TMR1的计数时钟源

          1 T1CKI引脚上的上升沿计数

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

位0      TMR1ON TMR1计数允许/禁止控制位

          1 TMR1可以计数

          0 TMR1计数暂停

T2CON寄存器

\"\"

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

位6 3   TOUTPS3 TOUTPS0 TMR2计数溢出后分频设置

          0000 后分频系数1 1

0001 后分频系数1 2

……

1111 后分频系数1 16

位2      TMR2ON TMR2计数允许/禁止控制位

          1 TMR2可以计数

          0 TMR2计数暂停

位1 0   T2CKPS1 T2CKPS0 TMR2预分频设置

          00 1 1预分频

01 1 4预分频

1x 1 16预分频

CCPxCON寄存器

\"\"

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

位5 4   CCPxX CCPxY TMR1预分频设置

捕捉模式   未用

比较模式   未用

PWM模式

PWM模式占空比控制字为10位 最低2位即放在CCPxX CCPxY中 高8位数据放入专门的一个寄存器CCPRxL

位3 0   CCPxM2 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寄存器

\"\"

\"\"

位7      GIE 全局中断使能控制位

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

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

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

          1 允许外围功能模块中断

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

位5      TMR0IE T0IE TMR0中断使能控制位

          1 允许TMR0中断

          0 禁止TMR0中断

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

          1 允许RB0/INT引脚中断

          0 禁止RB0/INT引脚中断

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

          1 允许PORTB状态变化中断

          0 禁止PORTB状态变化中断

位2      TMR0IF T0IF TMR0中断标志位

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

          0 TMR0没有溢出中断

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

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

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

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

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

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

STATUS寄存器

\"\"

PIE1寄存器

\"\"

PIR1寄存器

\"\"

PIE2寄存器

\"\"

PIR2寄存器

\"\"

SSPSTAT寄存器

\"\"

位7      SMP SPI模式下数据输入采样点控制  sample采样

          SPI主模式  Serial Peripheral interface 串行外围设备接口

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

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

          SPI从模式

          此位必须保持为0

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

          CKP 0      clock edge 时钟沿

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

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

          CKP 1

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

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

位5      D/A 数据/地址控制位 只适用于I2C模式

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

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

位4      P 停止位指示 只适用于I2C模式。当SSP模块没有启用时 此位为0

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

          0 没有检测到停止位

位3      S 起始位指示 只适用于I2C模式。当SSP模块没有启用时 此位为0

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

          0 没有检测到起始位

位2      R/W 读/写命令指令 只适用于I2C模式。

          在I2C通信时如果寻址地址匹配 该位就留有读或写的标志。其有效期限到出现下一个起始位/停止位/无应答信号为止

          0 此次I2C通信为写操作

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

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

          0 无需地址更新

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

位0      BF 数据缓冲器满标志

          接收时 SPI和I2C

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

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

          发送时 只适用于I2C

          0 发送完成 SSPBUF寄存器为空

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

 

 

SSPCON SSPCON1 寄存器

\"\"

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

          0 写入时没有冲突发生

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

位6      SSPOV 接收数据溢出标志位

          SPI模式

          0 数据接收没有溢出

          1 当SSPBUF寄存器中所接收的数据还没有被读走时 内部的移位寄存器SSPSR内又有新的数据就绪 此时SSPSR内的数据将被丢弃 SSPBUF不会被更新。SPI模式下接收数据溢出只可能发生在从模式下。如果在从模式下只发送数据 发送完毕后应用程序也必须读一次SSPBUF以免发生溢出标志。在主模式下得一次接收 或发送 过程都必须通过写SSPBUF才能启动 故一般不会出现接收溢出 除非你在接收数据到来后故意不去读SSPBUF寄存器。

          I2C模式

          0 接收数据没有溢出

          1 当SSPBUF中原来接收到的数据还没有被取走时又有新的数据被收到。在I2C处于数据发送模式时 此位不起任何作用。但无论是接收还是发送 如果此位被置1 必须用软件将其清0。

位5      SSPEN 同步串行接口使能控制位

          SPI模式

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

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

          I2C模式

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

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

位4      CKP 时钟极性控制位  clock polarity时钟极性

          SPI模式

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

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

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

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

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

 

 

 

 

 

位3 0    SSPM3 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模式时有用

\"\"

位7      GCEN 广播呼叫使能位 只适用于I2C从模式

          0 禁止广播寻呼

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

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

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

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

位5      ACKDT 应答数据位 只适用于I2C主模式接收数据

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

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

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

          0 无应答位发出

          1 启动SDA和SCL总线上产生ACKDT所设置的应答位。在应答位发出后此位被硬件自动清零0

位3      RCEN 接收使能位 只适用于I2C主模式

          0 禁止I2C接收数据

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

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

          0 无停止位发出

          1 启动SDA和SCL总线上产生停止位。停止位发出后此位被硬件自动清零0

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

          0 无重复起始位发出

          1 启动SDA和SCL总线上产生重复起始位。重复起始位发出后此位被硬件自动清零0

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

I2C主模式

0 无起始位发出

1 启动SDA和SCL总线上产生起始位。起始位发出后此位被硬件自动清零0

I2C从模式

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

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

 

  

ADCON0寄存器 设置ADC模块工作方式

\"\"

 

位7 6   ADCS1 ADCS0 A/D转换时钟选择

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

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

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

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

位5 3   CHS2 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

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

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

          1 A/D转换正在进行中

          0 A/D转换过程结束

位1      未定义 程序中记得该位要始终保持为0

位0      ADON A/D模块启动控制位

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

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

 

  

ADCON1寄存器 设置ADC模块端口和数据格式

\"\"

位7      ADFM A / D转换结果格式选择位 AD Result Format Select Bit

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

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

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

\"\"

位5 4   未定义 读取这些位将得到0

位3 0   PCFG3 PCFG0 A / D模块引脚功能配置位

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

\"\"

 

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

\"\"

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

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

          同步通信时

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

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

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

          1 选择9位数据格式发送

          0 选择8位数据格式发送

位5      TXEN 发送使能控制位

          1 允许发送数据

          0 数据发送被禁止

位4      SYNC USART工作模式选择

          1 选择同步通信模式

          0 选择异步通信模式

位3      未定义 读此位结果为0

位2      BRGH 波特率控制位

          异步通信时

          1 高速波特率发生模式

          0 低速波特率发生模式

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

          1 移位寄存器为空

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

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

 

  

 

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

\"\"

位7      SPEN 串行通信端口使能控制位

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

          0 USART通信端口关闭

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

          1 选择9位数据格式接收

          0 选择8位数据格式接收

位5      SREN 单次接收使能控制位

          异步通信时 此位不起作用

          同步通信主模式时

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

          0 禁止接收数据

位4      CREN 数据连续接收控制位

          异步通信时

          1 连续接收串行数据

          0 禁止接收数据

同步通信时

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

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

位3      未定义 读此位结果为0

位2      FERR 接收数据帧错误标志 只读

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

          0 没有帧错误

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

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

          0 没有溢出错误

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

  

 

 

 

CMCON寄存器

 

\"\"

 

CVRCON CONTROL寄存器

\"\"

 

PCON寄存器

 

\"\"

 

EECON1寄存器

 

\"\"

 

TRISE寄存器

\"\"

\"\" \"\" \"\" 点赞 \"\" \"\" 评论

本文链接: http://osfrc.immuno-online.com/view-684203.html

发布于 : 2021-03-24 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://