文档详情

PIC单片机CCP模块的应用_立新.pdf

发布:2017-05-29约5.01千字共6页下载文档
文本预览下载声明
电子报/2006 年/11 月/12 日/第015 版 单片机应用 PIC 单片机CCP 模块的应用 脉冲宽度和频率测量实验程序 成都 立新 本文介绍 PIC16F877 内部CCP 模块测量脉冲宽度和频率的实验程序,给出测量脉冲宽度或 频率二进制码的源程序。 一、PIC 单片机CCP 模块的特点 CCP 模块,即捕捉/比较/脉宽调制(Capture /Compare /PWM ),可工作在捕捉输入、比 较输出和脉宽调制输出三种状态,三种状态各自独立工作。 CCP 模块可分为CCPI 和CCP2 ,如PIC16F877 的(17)脚上标注的RC2 /CCP1 和(16)脚 上标注的RC1 /T10S1 /CCP2 ,但有的PIC 单片机片内仅有一种CCP1 ,如PIC16F627 (引脚⑨ RB3 /CCP1 )而无CCP2 。CCP1 和CCP2 的功能相似,这里仅介绍CCP1 的捕捉功能。 CCP1 由16 位寄存器CCPR1 组成,CCPR1H 是高字节,CCPR1L 是低字节组成。CCP1 的工 作全部由对应的控制寄存器CCP1CON 进行操作。 1.CCP1 捕捉功能和控制寄存器CCP1CON 当CCP1 工作在捕捉方式,如在PIC16F877 的(17) 脚RC2 (RC2 /CCP1 )上加一串脉冲信号时,CCP1 寄存器CCPR1L (低8 位)、CCPR1H (高8 位)即可捕捉每个脉冲的下降沿或上升沿;每 4 个脉冲或每 16 个脉冲的上升沿,并在捕捉的时 刻,由定时器TMR1 从0 开始计数,直到规定的上述四种方式之一为止。四种捕捉方式,全部由 控制寄存器CCP1CON 操作完成。 CCP1CON 与捕捉有关的仅为低4 位,如图1 所示。 bit3~bit0 (CCP1M3~CCP1M0 )是工作方式选择位。 0000 =关闭CCP 功能;0100 =捕捉每个脉冲下降沿;0101 =捕捉每个脉冲上升沿;0110 =捕 捉每4 个脉冲上升沿;0111 =捕捉每16 脉冲上升沿。 2.CCP 捕捉功能与定时器/计数器TMR1 关系 CCP 要完成捕捉功能,还应有定时器TMR1 的参与。TMR1 由两个8 位寄存器TMR1H 和TMR1L 组成16 位定时器/计数器,可读写。TMR1 工作在定时方式下,内部的16 位计数器可在每个指令周期加计数,即从0000h~FFFFh 为止,其 定时计数受寄存器T1CON 控制。T1CON 管理TMR1 的定时计数开始、计数停止,还管理TMR1 的预分频(即扩展定时范围)。T1CON 的位功能如图2 所示。 bit5 、bit4 (T1CKPS1、T1CKPS0 )是TMR1 时钟预分频选择位: 00 为1:1;01 为1:2 ;10 为1:4 ;11 为1:8。 bit1 (TMR1CS ):TMR1 时钟源选择 第1 页 共6 页 1=外部时钟计数;0 =工作于定时方式(用内部时钟f0SC /4 )。 bit0 (TMR10N );TMR1 功能位(使能):1=TMR1 打开(使能)开始计数;0 =TMR0 关闭 TMR1 计数。 上述各位bit0 、bit5 和bit4 在捕捉的程序中起着重要的作用。当CCP1 捕捉PIC16F877 的RC2 输入脉冲(上沿或下沿)成功后,TMR1 的定时计数值,通过其低8 位TMR1L 和高8 位TMR1H 自动送到CCP1 模块对应的低8 位CCPR1L 和高8 位CCPR1H 的寄存器中。 3.CCP 捕捉与其他专用寄存器的关系 除了CCP1CON 和TMR1 外,还要用到中断控制寄存 器INTCON ;中断标志寄存器PIR1 ;中断使能寄存器PIE1 等的相关位功能,才能保证CCP 捕捉 成功。当CCP 捕捉事件发生后,中断标志位CCP1IF (PIR1 的bit2 位)置1,说明TMR1 有CCP1 捕捉中断,此时即可利用该中断程序获取定时器的计数值;要使CCP 捕捉发生中断,中断使能位 CCP1IE (PIE1 的bit2 位)还需
显示全部
相似文档