您的位置 首页 系统

PIC16F877的Timer2与CCP模块的PWM

Timer2是一个8位定时器,带有一个预分频器、一个后分频器和一个周期寄存器。当将预分频器和后分频器设置为最大值时,其溢出时间与16位定

Timer2是一个8位定时器,带有一个预分频器、一个后分频器和一个周期寄存器。当将预分频器和后分频器设置为最大值时,其溢出时刻与 16位定时器的相同。在PWM形式下运用 CCP模块时, Timer2 为PWM时基。

下图显现了Timer2的结构框图。后分频器对TMR2寄存器和PR2寄存器的匹配次数进行计数。这样有助于削减中止服务程序的调用频率,优化CPU功能。

与Timer2有关的寄存器

PWM形式
在脉冲宽度调制(PWM) 形式下,CCPx引脚可输出分辨率高达10位的 PWM 输出。由于CCPx引脚与端口数据锁存器是复用的,所以相应的TRIS位有必要清零以使CCPx引脚为输出状况,下图为PWM结构简图。

一个PWM输出包括一个时基(周期)和一段输出高电平的时刻(占空比)。PWM的频率是周期的倒数(1/周期)。

PWM周期可经过写入PR2 寄存器来规则,可用以下公式核算:
PWM 周期 = [(PR2) + 1] • 4 • TOSC • (TMR2 预分频比),用时刻单位表明
PWM 频率 (FPWM)界说为1/[PWM周期]。
当TMR2 等于PR2 时,鄙人一递加计数周期中将发生下面三个事情:
• TMR2 被清零
• CCPx 引脚被置1( 例外情况:假如PWM占空比 =0%, CCPx 不被置1)
• PWM 占空比从CCPRxL 被锁定为 CCPRxH

PWM占空比可经过写入CCPRxL寄存器和DCxB1:DCxB0(CCPxCON<5:4>)位来规则。最高分辨率可达10位:由CCPRxL 中的高8位和CCPxCON<5:4>中的低2位组成。这一10位值由DCxB9:DCxB0来表征。核算 PWM 占空比的公式如下:
PWM 占空比 = (DCxB9:DCxB0 ) • Tosc • (TMR2 预分频比),用时刻单位表明
DCxB9:DCxB0的值能够在任何时候写入,但直到PR2与TMR2中的值相符(当时周期完毕)时,占空比的值才被锁存到CCPRxH。在PWM形式下,CCPRxH是只读寄存器。CCPRxH 寄存器和一个2位的内部锁存器用于为PWM占空比供给两层缓冲。两层缓冲对PWM的无毛刺操作是极其重要的。当CCPRxH和2位锁存器的值与TMR2和内部2位Q时钟(或TMR2分频器的2位)串接值相符时,CCPx引脚被清零。此刻占空比完毕。关于给定的PWM频率,其最大分辨率(位)为:

核算举例:

经过以下过程将CCP模块装备为PWM形式:
1. 写入PR2寄存器以设定PWM周期。
2. 写入DCxB9:DCxB0位以设置PWM占空比。
3. 将相应的TRIS位清零以将CCPx引脚设为输出。
4. 写入T2CON以设置TMR2预分频比并使能 Timer2。
5. 将CCP模块装备为PWM形式。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/260324.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部