多功能波形信号发生模块程序设计 PIC单片机的CPP模块工作在PWM方式下时,可以产生宽度和周期均可编程决定的PWM波形。PlC16F877单片 机内部集成两个CPP(捕捉/比较/脉宽调试PWM)模块,当它工作在PWM方式下时,具有两个脉冲宽度调制输 出通道。
当CCP1工作在PWM方式下时,RC2/CCP1引脚上可以输出分辨率为8bit或1 Obit的PWM波形,此时必须将 TRJSC寄存器中的bit2清0,以设置RC2/CCP1引脚为输出状态。
1.PWM模式结构、波形
PWM模式的结构框图如图1所示。
PWM输出波形有两个参数:周期和工作周期,如图2所示。
图1 PWM模式结构框图 图2 PWM输出波形的两个参数
PWM周期由周期寄存器PR2决定,计算公式为:
可以看出,通过控制PR2寄存器的值,就可以控制输出的PWM波形的频率。在操作过程中,当TMR2等于PR2时 ,在下一个增量周期会将TMR2清0、CCP1置位并将PWM工作周期从CCPRIL锁存到CCPRIH。
2.寄存器
10位分辨率的PWM工作周期由寄存器CCPRIL值的8bit(高8位)和控制寄存器CCPICON的bit5、bit4两位( 低2位)组成,即10bit表示为CCPRIL:CCPICON(bit5、bit4)。
PWM工作周期为(CCPRIL∶CCPICON(bit5~bit4)×Tosc×(TMR2预分频数))
在PR2一定的情况下,通过控制CCPRIL寄存器和CCPICON控制器的bit5、bit4的值,就可以控制输出的PWM波形的占空比。
在操作过程中,CCPRIL∶CCPICON(bit5、bit4)的值可以在任何时间写入,但不能马上锁存到CCPRIH,只有等到周期完成,PR2和TMR2相等,在下一个周期才能采用新设置的值。在PWM模式,CCPRIH为只读寄存器。
CCPRIH寄存器和一个两位的内部锁存器用来双倍缓冲PWM工作周期,这种双缓冲对去干扰是必要的。当CCPRIH和两位锁存值与TMR2相等时,CCP1引脚复位,但当PWM工作周期的赋值大于PWM周期时,CCP1保持高电平。
对给定的一个PWM频率,的PWM分辨率(位)可以用如下公式计算:
图3 CCP1CON/CCP2CON寄存器
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。