相关文章:

看一看 :PIC 16F877简介

看一看 :PIC 16F877 - 架构和记忆组织

看一看 :在PIC16F877中注册记忆组织

看一看 :PIC 16F877中的定时器模块

PIC 16F877中的捕获/比较/PWM(CCP)模块

捕获 - 比较 - 脉冲宽度模块(CCP)是一种用于调制和波形生成应用的特殊模块设计。该模块基本上适用于三种不同的模式(捕获/比较和PWM杂志)。PIC 16F877芯片包含两个CCP端口(CCP1和CCP2)。每个CCP模块包含16位寄存器,它有效

•16位捕获寄存器

•16位比较寄存器

•PWM主/奴隶占空比寄存器

除特殊事件触发操作外,CCP1和CCP2模块的操作相同。在每个CCP模块中,捕获、比较和PWM模式使用不同的定时器资源。下表显示了不同的CCP模式及其计时器资源。CCP模块的详细说明和功能如下所示。

PIC16F877-CCP定时器源交互
CCP定时器源交互

CCP1模块

捕获/比较/PWM寄存器1(CCPR1)是一个16位寄存器,由两个8位寄存器组成:CCPR1L(低字节)和CCPR1H(高字节)。CCP1 CON寄存器控制CCP1的操作。特殊事件触发器由比较匹配生成,并将重置计时器1。

CCP2模块

捕获/比较/ PWM寄存器2(CCPR2)由两个8位寄存器组成:CCPR2L(低字节)和CCPR2H(高字节)。CCP2CON寄存器控制CCP2的操作。特殊事件触发由比较匹配生成,并将重置Timer1并启动A / D转换(如果启用A / D模块)。

捕获模式

在捕获模式下,CCPR1H:CCPR1L在引脚RC2 / CCP1上发生事件时捕获TMR1寄存器的16位值。

事件被定义为以下之一:

•每个下降沿

•每个上升沿

•每4个上升沿

•每16个上升沿

事件类型由控制位配置CCP1M3:CCP1M0(CCPXCON <3:0>)。当进行捕获时,设置中断请求标志位CCP1IF(PIR1 2)。中断标志必须在软件中清除。如果在读取寄存器CCPR1中的值之前发生另一个捕获,则旧的捕获值被新值覆盖。捕获模式的框图如下所示。

捕获模式框图
捕获模式框图

比较模式

在比较模式下,16位CCPR1寄存器值不断与TMR1寄存器对值进行比较。匹配发生时,RC2/CCP1引脚为:

•驱动高

•驾驶低电平

•保持不变

引脚上的动作基于控制位的值CCP1M3:CCP1M0(CCP1CON <3:0>)。同时,设置中断标志位CCP1IF。比较模式框图如下所示。

比较模式框图
比较模式框图

PWM模式(PWM)

在脉宽调制模式下,CCPx引脚产生高达10位分辨率的PWM输出。由于CCP1引脚与端口C数据锁存器多路复用,因此必须清除TRISC<2>位以使CCP1引脚成为输出。图显示了PWM模式下CCP模块的简化框图。

PWM模式框图
PWM模式框图

安装PWM操作

配置CCP模块以进行PWM操作时应采取以下步骤:

1.通过写入PR2寄存器来设置PWM周期。

2.通过写入CCPR1L寄存器和CCP1CON <5:4>位,设置PWM占空比。

3.通过清除Trisc 2位,使CCP1引脚输出。

4.设置TMR2预刻度值,并通过写入T2CON启用Timer2。

5.为PWM操作配置CCP1模块。

下表显示了20 MHz时的PWM频率和分辨率以及与CCP定时器1/2模块相关的寄存器。

注册组织-1
注册组织-1

注册组织-2
注册组织-2

要了解更多关于PIC,请单击下面的链接。

看一看 :Pic 16F877中的USART模块

作者

4.评论

  1. Gitanjali.

    我正在使用PIC16F1613,想要测量信号。每个边缘都定义了一个事件。我注意到CCPR1H和CCPR1L也会捕获TOFF。我的问题是我如何只定义吨,并且假设输入信号完全开/关)我如何检测?
    提前致谢。

  2. Rahul Khedkar.

    不能使用PWM模块在PIC16F1829中生成4个不同的PWM信号,具有四个PWM输出?
    如果PWM模块仅使用Timer2,CCPTMRS注册的作用是什么?
    我的应用是将RGB LED颜色通过3 PWM信号控制到R,G,B和一个PWM信号,用于共同阴极以控制亮度。
    提前致谢。

Baidu