《PIC18 CCP课件》由会员分享,可在线阅读,更多相关《PIC18 CCP课件(26页珍藏版)》请在金锄头文库上搜索。
1、CLASS 81上讲总结上讲总结理解定时器理解定时器/计数器基本结构原理计数器基本结构原理弄清弄清Timer0寄存器设置寄存器设置掌握掌握C18 编程操作定时器编程操作定时器定时器的应用定时器的应用Timer0结构原理图及寄存器结构原理图及寄存器Time0 编程方法及流程编程方法及流程初始初始化化中断中断使能使能端口设置端口设置及引脚配及引脚配置置C C语言控语言控制寄存制寄存器器第六章第六章 CCP模块原理及应用模块原理及应用6-1 CCP模块概述模块概述6-2 CCP模块的结构原理及寄存器模块的结构原理及寄存器6-3 CCP模块的编程方法模块的编程方法6-4 CCP模块的应用实例模块的应用
2、实例6-1 CCP模块概述模块概述CCP(比较(比较/ 捕捉捕捉/ 脉宽调制)模块脉宽调制)模块q 8位控制寄存器(位控制寄存器(CCPxCON)q 完成以下工作的完成以下工作的16位寄存器位寄存器 (CCPRxH:CCPRxL):):- 16位捕捉寄存器位捕捉寄存器- 16位比较寄存器位比较寄存器- 10位位PWM 主主/从占空比寄存器从占空比寄存器PIC 18F452单片机引脚图单片机引脚图CCP寄存器的命名及定时器资源寄存器的命名及定时器资源6-2 CCP的结构原理及寄存器的结构原理及寄存器qCCP的结构原理的结构原理q相关寄存器使用方法相关寄存器使用方法CCPRxLCCPRxHINTC
3、ON.CCPxCONTRISABit7-6 未实现:读作未实现:读作0Bit5-4 PWM 占空比低占空比低2位,捕捉、比较:未用位,捕捉、比较:未用Bit3-0 模式模式选择位选择位CCPXCON控制寄存器控制寄存器0000= 禁用捕捉禁用捕捉/ 比较比较/PWM (复位(复位CCPx)0001= 保留保留0010= 比较模式,匹配时翻转输出(比较模式,匹配时翻转输出(CCPxIF 置置1)0011= 保留保留0100= 捕捉模式,每个下降沿发生捕捉模式,每个下降沿发生0101= 捕捉模式,每个上升沿发生捕捉模式,每个上升沿发生0110= 捕捉模式,每捕捉模式,每4 个上升沿发生个上升沿发生
4、0111= 捕捉模式,每捕捉模式,每16 个上升沿发生个上升沿发生1000= 比较模式,比较模式, CCP 低电平变高电平低电平变高电平1001= 比较模式,比较模式,CCP 高电平变低电平高电平变低电平1010= 比较模式,比较相符时,产生软件中断比较模式,比较相符时,产生软件中断1011= 比较模式,特殊事件触发(比较模式,特殊事件触发(CCPIF 位置位置1)11xx= PWM 模式模式12bit 7 16 位读位读/ 写模式使能位写模式使能位bit 6-3 Timer3 和和Timer1 到到CCPx 的使能位的使能位bit 5-4 Timer3 输入时钟预分频选择位输入时钟预分频选择
5、位bit 2 Timer3 外部时钟输入同步控制位外部时钟输入同步控制位bit 1 时钟源选择位时钟源选择位bit 0 Timer3 使能位使能位T3CON寄存器寄存器CCP捕捉结构原理图及寄存器捕捉结构原理图及寄存器CCP比较结构原理图及寄存器比较结构原理图及寄存器15CCP比较、捕捉寄存器比较、捕捉寄存器16CCP PWM结构原理图及寄存器结构原理图及寄存器17CCP PWM结构原理图及寄存器结构原理图及寄存器18CCP PWM寄存器寄存器6-3 CCP编程方法及流程编程方法及流程初始初始化化中断中断使能使能端口设置端口设置及引脚配及引脚配置置C C语言控语言控制寄存制寄存器器20#inc
6、lude void interrupt capture_edge(void);unsigned char tc2; void timer1_init(void)TMR1L=0;TMR1H=0;PIE1bits.TMR1IE=0;T1CON=0x10;6-4 CCP应用举例应用举例(捕捉捕捉)21/ccp1 initialize functionvoid ccp1_init(void)T3CON=0;IPR1bits.CCP1IP=1; / 设置设置 CCP 高优中断高优中断TRISCbits.TRISC2=1;/CCP1输入输入CCP1CON=0x05;/ 上升沿捕捉上升沿捕捉PIR1bits
7、.CCP1IF=0; /清清CCP1中断标志位中断标志位INTCONbits.PEIE=1;PIE1bits.CCP1IE=1;INTCONbits.GIEH=1;/全局中断使能全局中断使能22void capture_edge(void)if( PIR1bits.CCP1IF )PIR1bits.CCP1IF=0;/ 清清Timer1 中断标志中断标志if( (CCP1CON&0x0F)=0x05 ) / 上升沿上升沿TMR1H=0;TMR1L=0;T1CON=0x11;/ 开定时器开定时器CCP1CON=0x04;23else if( (CCP1CON&0x0F)=0x04 ) / 下降沿
8、下降沿T1CON=0;/stop timer1t1.tc0=CCPR1L;t1.tc1=CCPR1H;CCP1CON=0x05;24void main(void)TRISCbits.TRISC2=1;timer1_init();ccp1_init();while(1)256-4 CCP 应用举例应用举例(PWM)1.写写PR2寄存器以设定寄存器以设定PWM 周期。周期。2.写写DCxB9:DCxB0位以设置位以设置PWM占空比。占空比。3.将将相相应应的的TRIS位位清清零零以以使使CCPx引引脚脚设设置置为输出。为输出。4.写写T2CON以以设设置置TMR2预预分分频频值值并并使使能能Timer2。5.将将CCP 模块设定为模块设定为PWM 模式。模式。void main(void)TRISC=0x00; /将将RC2设为输出设为输出T2CON=1;/将将Timer2预分频的倍数设为预分频的倍数设为4CCP1CON=0x0C; /打开打开PWM模式,输出为高模式,输出为高TMR2=0;/将将Timer2计数器清零计数器清零PR2=10;/将将P2设为设为10CCPR1L=5;/设设CCPR1L设为设为5T2CONbits.TMR2ON=1;/打开定时器打开定时器Timer2while(1)/执行控制、显示等其他功能执行控制、显示等其他功能