
PIC单片机CCP模块技术笔记.pdf
4页与输入捕捉模式比较器相关的寄存器CCP1CON、 CCP2CON 中末 4 位功能:CCP1M3CCP1M2CCP1M1CCP1M00 0 0 0 禁止 CCP1 0 1 0 0 捕捉模式 ,捕捉 RC2 脚送入的每个脉冲下降沿0 1 0 1 捕捉模式 ,捕捉 RC2 脚送入的每个脉冲上降沿0 1 1 0 捕捉模式 ,捕捉 RC2 脚送入的每4 个脉冲下降沿名称符号BANK列位名称D7 D6 D5 D4 D3 D2 D1 D0 中断控制INTCON 0123 GIE PEIETOIE INTE RBIE TOIF INTF RBIF 第一外设中断标志PIR1 0 PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF CCP1IF=1 时,捕捉下 ,表示出现捕捉功能;;; 比较下 ,表示比较匹配的条件出现第二外设中断标志PIR2 0 -------- ------- -------- EEIF BCLIF ------- -------- CCP2IF 第一外设中断使能PIE1 1 PSPIE ADIE RCIE TXIE SSPIE CCP1IETMR2IE TMR1IE第二外设中断使能PIE2 1 ---------- -------- ------- EEIE BCLIE ------- ----- CCP2IERC 口方向TRISC 1 TRISC21 输入捕捉0 输出比较TMR1 低字节TMR1L 0 16 位 TMR1 计数累加寄存器低字节TMR1 高字节TMR1H 0 16 位 TMR1 计数累加寄存器高字节TMR1 控制T1CON 0 ------ -------- T1CKPS1 T1CKPS0 T1OSCEN 自 带 振 荡使能T1SYNC 外内时钟同步TMR1CS 时 钟 选择位TMR1ON 开关TMR1 的分频比选择CCP1 低字节CCPR1L 0 16 位 CCP1 计数累加寄存器低字节存放捕捉到的TMR1 的值 ,可读写 ! CCP1 高字节CCPR1H 0 16 位 CCP1 计数累加寄存器高字节CCP1 控制器CCP1CON 0 ------- --------- CCPX CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 脉宽寄存器的低2 位,高 8位在 CCPR1L 中触发方式选择CCP2 低字节CCPR2L 0 16 位 CCP2计数累加寄存器低字节CCP2 高字节CCPR2H 0 16 位 CCP2计数累加寄存器高字节CCP2 控制器CCP2CON 0 ------- -------- CCP2X CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0 0 1 1 1 捕捉模式 ,捕捉 RC2 脚送入的每16 个脉冲下降沿1 0 0 0 比较模式 ,如果匹配 ,RC2 输出高电平 ,CCP1IF 置 1 1 0 0 1 比较模式 ,如果匹配 ,RC2 输出低电平 ,CCP1IF 置 1 1 0 1 0 比较模式 ,如果匹配 ,RC2 电平不变 ,CCP1IF 置 1,产生软件中断1 0 1 1 比较模式,如果匹配,RC2 电平不变 ,CCP1IF 置1 触发特殊事件:CCP1 将复位TMR1,CCP2 将复位 TMR1 和启动 ADC 模块1 1 X X 脉宽调制 PWM 模式,低 2 位无用输入捕捉模式作用 :1) 用于测量输入引脚的周期信号的周期, 频率和占空比等2)测量输入的非周期性矩形脉冲信号的宽度,到达时刻和消失时刻等特点 : 1)时钟源来自TMR1 2)应先设好 TMR1, 且 RC2/CCP1 脚设为输入状态3)捕捉开启后 ,TMR1自动累加 ,CCP1 一直检测引脚状态,与设定事件相同符时 ,TMR1 的值被捕捉到CCPR1 中 ,并产生中断 . 工作原理 :捕捉条件 ,1)每个脉冲下降沿; 2)每个脉冲上升沿; 3) 每 4 个脉冲上升沿; 4) 每 16 个脉冲下降沿; 发生后 ,CCPR1 马上记下 TMR1 的值注意点 :1) CCP1中断后 ,应用软件将其清0; 2)当 CCPR1 中的值还没取出时有新的捕捉发生,则原有的值被覆盖; 3) 如果修改预分频器的值,可能会产生一次错误中断,并且预分频器不会清0.因此第一次捕捉可能是从预分频器的一个非0 的起始值开始计数的. 4)TMR1 要设为定时器或同步工作方式; 使用输入捕捉模式的步骤: 1 设置 RC2/CCP1 为引脚输入; (TRISC 寄存器)2 设置 TIMER1的参数:T1CON=--000001: 内部时钟,计数器频率FOSC/4 ,工作允许(进一步可设置PIE1中的 TMR1IE中断允许, PIR1 中的 TMR1IF )3 设置 CCP1CON 的参数:CCP1CON=----0100;每个下降沿捕捉;(进一步可设置PIE1 中的 CCP1IE 中断允许,PIR1 中的 CCP1IF)4 等待捕捉成功(中断或者查询)5 从 CCPR1L 和 CCPR1H 取值,该值代表捕捉发生的时刻;6 和上次的捕捉值相减,得到两次捕捉之间的时间;7 保留本次捕捉值,为下次作准备;8 重复等待捕捉成功(跳到第4 步) ;输出比较模式作用 : 从引脚上输出不同宽度的矩形脉冲,延时驱动信息,晶闸管驱动信号,步进电机驱动信号等特点 :由 TMR1 作为时钟源 ,选好 TMR1 工作方式 ,如果比较符合的事件发生后,改变 RC2 的状态工作原理 :比较模式时 ,CCPR1和 TMR1 的值会一直作比较,当值相同时 ,产生中断 ,驱动事件 发生:1)RC2/CCP1 输出高电平 ; 2)输出低电平 ; 3)电平不变 ,内部产生软件中断; 4)引脚电平不变 ,内部触发特殊事件./////由 CCP1CON 中的 D3---D0 选择 /////// 使用输出比较模式的步骤: 1)RC2/CCP1 设为输出 , CCP1CON 清 0 迫使 RC2/CCP1 比较输出引脚对低电平锁存. 2)TMR1 设为定时器 (时钟由内部产生) 或同步计数方式(时钟来自外引脚或自带振荡器) 3)设定产生软件中断方式,当 CCP1M3-CCP1M0=1010时,则为软件中断方式,当输出比较匹配时 ,RC2 不受影响 ,而 CCP1IF 置 1,可产生中断4)当 CCP1M3-CCP1M0=1011时 ,为特殊事件触发方式,匹配时内部硬件产生一个触发信号, 启动一些操作 ,同时 TMR1 复位清 0 但 TMR1F 不会置 1 PWM 工作模式作用 :在 RC2 中输出频率与脉宽随时可调的方波信号,时钟来自 TMR2 说明 : 1) 脉宽寄存器用来调整PWM 信号的脉冲宽度. 2) 10 位从属脉宽寄存器,CCPR1H+内部 2 位专用锁存器,只读 ,减少干扰3) 当脉宽寄存器=TMR2 时,输出高电平4) 当对 CCP1CON 清 0 时,RC2 输出一个低电平.并非是正确的PWM 输出结果5) PWM 的周期由8 位的 TMR2 确定 ,宽度由 TMR2 的 8 位+其低端扩展两位工作原理 : 周期确定由 PR2 的值确定 ,公式 :T=(PR2+1)x4TOSCxTMR2预分频器TOSC 为系统的时钟周期,4TOSC 为指令周期 , 预分频器可为1/4/16 *****TMR2后分频不影响周期设定,但可利用其产生的中断来对PR2 和CCLR1L 换新值 ,调节脉宽 .********** 脉冲确定 : 由 CCPR1L+CCP1CON的 D5 和 D4 位确定 , 公式 : 脉宽 =DC1xTOSCxTMR2预分频器当 PR2=TMR2时,脉宽值补装到从属脉宽寄存器中编程步骤 : 1) 向 PR2 写入周期2) 写入脉宽值3) 将 RC2/CCP1 设为输出4) 通过 T2CON 设定 TMR2, 启用 TMR2 5) 设定 CCP1CON 低 4 位为 11XX, 为 PWM 模式。












