nullCapture, Compare & PWMCapture, Compare & PWMCapture/Compare/PWM (CCP) OverviewCapture/Compare/PWM (CCP) OverviewCapture
Times the duration of an external event using an input pin
Compare
Changes an output pin or generates an interrupt when a specific amount of time has passed
Pulse Width Modulation (PWM)
Creates a reconfigurable, steady duty-cycle, square wave output at a defined frequency
Provides enhanced features for various bridge connectivityCapture/Compare/PWM (CCP) OverviewCapture/Compare/PWM (CCP) OverviewCapture
Times the duration of an external event using an input pin
Compare
Changes an output pin or generates an interrupt when a specific amount of time has passed
Pulse Width Modulation (PWM)
Creates a reconfigurable, steady duty-cycle, square wave output at a defined frequency
Provides enhanced features for various bridge connectivityCCP Control RegisterCCP Control RegisterCCP1 Control Register (CCP1CON)CCP的应用CCP的应用PIC16F87X单片机具有两个CCP模块
CCP1,CCP2
CCP模块共有三种工作模式:
输入捕捉(Capture)
输出比较(Compare)
脉宽调制(PMW)
时钟:定时器模块提供
CCP模块工作在输入捕捉与输出比较模式下需要TIMER1的支持。
CCP模块工作在脉宽调制调制也需要TIMER1的支持。寄存器CCP1模块包含两个8位寄存器
CCP1L(低8位)和CCP1H(高8位)
控制寄存器CCP1CON管理CCP1的运作,当比较匹配时专用事件触发器触发,同时复位Timer1。
CCP2模块包含两个8位寄存器
CCP2L(低8位)和CCP2H(高8位)
控制寄存器CCP2CON管理CCP2的运作,当比较匹配时专用事件触发器触发,同时复位Timer1,如果开放了A/D转换模块,还触发A/D开始转换。 寄存器CCP Control RegisterCCP1 Control Register (CCP1CON)CCP Control RegisterCapture ModeCCPxCapture ModePrescaler
÷1, 4, 16Edge Detect
andSystem Clock (Fosc)CCPxCONCCPxIF in PIRxSingle BufferedCapture ModeCCPxCapture ModePrescaler
÷1, 4, 16Edge Detect
andSystem Clock (Fosc)CCPxCONCCPxIF in PIRxSingle BufferedCapture InitializationCapture InitializationTMR1HTMR1ONCCP1IFTMR1LPIR10CCP1CONT1CON10CCPR1HCCPR1L1Rising Edge
Detected!!Captured!;Turn off CCP module
banksel CCP1CON
clrf CCP1CON
;Make sure Timer1 is off
bcf T1CON,TMR1ON
;Clear Timer1 registers
clrf TMR1H
clrf TMR1L
;Disable all interrupts for CCP
bcf PIR1,CCP1IF
banksel PIE1
bcf PIE1,CCP1IE
;Set CCP1 pin for input
bsf TRISC,2
;Set Capture for every 4th rising edge
banksel CCP1CON
movlw b’00000110’
movwf CCP1CON
;Start Timer1 incrementing
bsf T1CON,TMR1ON
;Test the interrupt flag for capture
btfss PIR1,CCP1IF
goto $-1CCP1
Pin011111st2nd3rd4th11TIMER1 INCREMENTING!!Current Timer1 ValueCompare ModeCCPxSpecial Event TriggerCompare ModeCCPxIF in PIRxOUTPUT
LOGICCCP1CON捕捉(Capture)工作方式捕捉(Capture)工作方式捕捉工作方式,引脚RC2/CCP1有事发生,CCPR1H:CCPR1L就捕捉TMR1寄存器16位的值。
捕捉工作方式的事件:每一个下降沿;每一个上升沿;每4个上升沿;每16个上升沿。
事件的类型由CCPxCON控制寄存器的CCP1M3:CCP1M0设定。
当捕捉成功,中断请求标志位CCP1IF置位(置位后由软件复位)。当CCP1
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
还没有取走,另一捕捉出现,旧的值被新的值覆盖。输入捕捉工作模式的应用捕捉
CCP模块工作在输入捕捉模式时,如有设置的事件在RC2脚发生,CCPR1寄存器会
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
这一时刻TIMER1的计数值,并能产生中断。
功能
测量一个脉冲的脉宽或周期。
例
测量脉冲周期:测量两次上升沿之间的时间间隔。在第一次捕获上升沿时将TIMER1计数清零,在下一次捕获上升沿后CCPR1的计数值即为脉冲的周期。输入捕捉工作模式的应用null ORG 00H
GOTO RESET
ORG 04H
GOTO INT_PRO
ORG 10H
RESET CLRF INTCON
BSF STATUS,RP0
MOVLW 0FFH
MOVWF TRISB
MOVLW 04H
MOVWF TRISC ;RC2为输入
MOVLW 04H
MOVWF PIE1 ;中断允许
BCF STATUS,RP0
CLRF PIR1
CLRF PIR2
CLRF TMR1L
CLRF TMR1H
CLRF TEMP
MOVLW 30H
MOVWF T1CON ;1:8
MOVLW 05H
MOVWF CCP1CON ;每个脉冲的上升沿
MOVLW 0C0Hnull MOVWF INTCON ;开中断
BSF T1CON,TMR1ON ;开启定时器1
WAIT_LOOP NOP
GOTO WAIT_LOOP
INT_PRO BCF PIR1,CCP1IF ;清中断标志
MOVF TEMP,W
BTFSS STATUS,Z
GOTO CAP_OVER
BCF T1CON,TMR1ON ;关闭定时器1
CLRF TMR1L
CLRF TMR1H ;清定时器1
BSF T1CON,TMR1ON ;开启定时器1
MOVLW 055H
MOVWF TEMP
RETFIE
CAP_OVER MOVF CCPR1L,W
MOVWF TEMP1
MOVF CCPR1H,W
MOVWF TEMP2
CLRF TEMP
RETFIE
ENDCompare ModeCCPxSpecial Event TriggerCompare ModeCCPxIF in PIRxOUTPUT
LOGICCompare InitializationCompare InitializationTMR1HTMR1ONCCP1IFTMR1LPIR10CCP1CONT1CONCCPR1HCCPR1L011;Turn off the CCP module
banksel CCP1CON
clrf CCP1CON
;Turn off Timer1
bcf T1CON,TMR1ON
;Clear Timer1 result registers
clrf TMR1H
clrf TMR1L
;Disable CCP1 interrupt and make sure
;its flag is clear
banksel PIE1
bcf PIE1,CCP1IE
banksel PIR1
bcf PIR1,CCP1IF
;Make CCP1 pin output
banksel TRISC
bcf TRISC,2
;Initialize Compare to set output on match
banksel CCP1CON
movlw b’00001000’
movwf CCP1CON
;Load Compare value into CCPR1H:CCPR1L
banksel CCPR1H
movlw b’10000000’
movwf CCPR1H
clrf CCPR1L
;Start Timer1 incrementing
bsf T1CON,TMR1ON
;Test CCP1IF for Timer1 match with CCPR1x
btfss PIR1,CCP1IF
goto $-1111111111比较(Compare)工作方式比较(Compare)工作方式比较工作方式,16位CCPR1寄存器的值一直与TMR1寄存器的值相比较,一旦相等,在RC2/CCP1引脚会出现如下三种现象之一:变高、变低或不变,同时中断标志位CCP1IF置1
三种变化的选择由控制位CCP1M3:CCP1M0决定,引脚工作在输出方式,在设置时应使端口C方向寄存器TRISC的D2=0。输出比较工作模式的应用输出比较模式
不停地用CCPR1寄存器值与TIMER1的计数值相比较,若相等则输出所设置的事件。
功能
通过改变CCPR1的值则可以在RC2的IO口上输出符合需要的波形。
例
通过在CCP的中断中对CCPR1累加固定的值并改变输出事件,实现了在RC2口输出一个1KHz的方波。
如每次累加值不是固定的一个值则可以在RC2口输出一个脉宽不断变化的脉冲序列。输出比较工作模式的应用null例6.7 输出比较模式编程
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 00H
GOTO RESET
ORG 04H
GOTO INT_PRO
ORG 10H
RESET BCF STATUS,RP0
CLRF TMR1L
CLRF TMR1L
CLRF INTCON
CLRF PIR1
BSF STATUS,RP0
CLRF T1CON
MOVLW 04H
MOVWF PIE1 ;中断允许
BCF TRISC,2 ;RC2输出
BCF STATUS,RP0
MOVLW 08H
MOVWF CCP1CONnull MOVLW 0E8H
MOVWF CCPR1L
MOVLW 03H
MOVWF CCPR1H
MOVLW 0C0H
MOVWF INTCON ;开中断
BSF T1CON,TMR1ON ;开启定时器1
WAIT GOTO WAIT
INT_PRO BCF PIR1,CCP1IF
MOVLW 0E8H
ADDWF CCPR1L,F
BTFSC STATUS,C
INCF CCPR1H,F
MOVLW 03H
ADDWF CCPR1H,F ;下次比较输出值
MOVLW 01H
XORWF CCP1CON,F ;反转RC2
RETFIE
ENDPWM ModePWM ModeGenerates a Pulse-Width Modulated (PWM) signal on the CCP1 and CCP2 pins
Duty cycle, period and resolution determined by the following registersPeriod RegisterPR2Timer2 ControlT2CONDuty Cycle RegisterCCPRxLCCP Control RegisterCCPxCONDescriptionRegister PWM OperationPWM OperationCCP1 pinLatchCCP1 Output PinCOMPARATORCOMPARATORR
S88TMR2 is concatenated with 2 bits from FOSC, or 2 bits from Prescaler to create a 10 bit time base1010101TMR2PR2CCPR1HCCPR1LCCP1X:CCP1Y
bits in CCP1CONDetermines Period1111TMR2 Reset to 0’sPWM OperationPWM OperationCCP1 pinLatchCCP1 Output PinCOMPARATORCOMPARATORDouble
BufferR
S88TMR2 is concatenated with 2 bits from FOSC, or 2 bits from Prescaler to create a 10 bit time base10101010TMR2PR2CCPR1HCCPR1LCCP1X:CCP1Y
bits in CCP1CONDetermines Duty Cycle11111110PWM OperationPWM OperationCCP1 pinLatchCCP1 Output PinCOMPARATORCOMPARATORR
S88TMR2 is concatenated with 2 bits from FOSC, or 2 bits from Prescaler to create a 10 bit time base10101010TMR2PR2CCPR1HCCPR1LCCP1X:CCP1Y
bits in CCP1CON11111111PWM OperationPWM OperationCCP1 pinLatchCCP1 Output PinCOMPARATORCOMPARATORDouble
BufferR
S88TMR2 is concatenated with 2 bits from FOSC, or 2 bits from Prescaler to create a 10 bit time base10101010TMR2PR2CCPR1HCCPR1LCCP1X:CCP1Y
bits in CCP1CONDetermines Duty CycleTMR2 Reset to 0’sTMR2 Reset to 0’s1111111111111PWM InitializationPWM InitializationPR210111111CCP1CON00000PWM Mode
CCP1M <3:0>duty cycle
LSBs
CCP1
CCPR1L10001111TMR200000000111T2CON1TMR2ON0000000Prescaler bits
TOUTPS<3:0>Prescaler bits
T2CKPS<1:0>;Turn off CCP1 pin by making it an input
banksel TRISC
bsf TRISC,2 ;configure pin as input
;Turn off Timer2
banksel T2CON
bcf T2CON,TMR2ON
;Clear Timer2
clrf TMR2
;Set up Period and Duty Cycle
movlw b’01111111’ ;
movwf PR2 ;Load a Period Value
movlw b’00011111’ ;
movwf CCPR1L ;Load Duty Cycle Value
;Configure CCP module for PWM
;and LSB’s of Duty Cycle = b’10’
movlw b’00101100’
movwf CCP1CON
;Turn CCP1 pin back on (make it an output)
banksel TRISC
bcf TRISC,2
;Start the PWM by turning on Timer2 and
;Configure Prescaler and Postscaler to 1:1
movlw b’00000100’
movwf T2CON 脉宽调制(PWM)工作方式脉宽调制(PWM)工作方式脉宽调制(PWM)工作方式,CCPx引脚可以产生10位分辨率的PWM输出。端口C引脚为多功能复用,必须复位方向寄存器TRISC的D2使CCP1引脚位输出。
PWM输出波形有两个参数:周期和占空因子
PWM的频率是周期的倒数:PWM周期由寄存器PR2决定
TPWM=[(PR2)+1]×Tosc×(TMR2预分频数)占空因子占空因子10位分辨率的PWM占空因子由寄存器CCPR1L的8位和CCP1CON的D5:D4两位组成,CCP1L包含高8位,CCP1CON包含低2位,10位
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示为CCPR1L:CCP1CON。
PWM占空因子可由下式计算:
PWM占空因子=(CCPR1L:CCP1CON)×T×(TMR2)预分频数)
在操作过程中,CCPR1L:CCP1CON的值可以在任何时间写入,但并不能马上锁存到CCPR1LH,只有等到周期完成,PR2和TMR2相等,在下一个周期采用新设置的值。在PWM模式,CCPR1H为只读寄存器。PWM工作模式的应用PWM输出模式
在RC2口输出脉冲宽度与周期随时可以调整的脉冲(PWM)。
PWM信号周期由PR2设置,PWM信号脉宽由(CCPR1L,CCP1CON)设置。
当改变CCPR1L与CCP1CON值时就可以改变输出信号的占空比。
功能
日常中的电机控制,调速,变频PWM工作模式的应用null利用PWM输出模式,在RC2口输出一个38.4KHz占空比为1:1的波形
ORG 00H
GOTO RESET
ORG 10H
RESET BSF STATUS,RP0
MOVLW 19H
MOVWF PR2
BCF TRISC,2 ;RC2输出
BCF STATUS,RP0
CLRF TMR2
MOVLW 0CH
MOVWF CCPR1L
MOVLW 0CH
MOVWF CCP1CON ;定义PWM输出
MOVLW 00H
MOVWF T2CON ;PWM输出为38.46Khz
BSF T2CON,TMR2ON
WAIT GOTO WAIT
END