PIC16F877的Timer2与CCP模块的PWM

发布者:ananan一二三四五最新更新时间:2015-12-21 来源: eefocus关键字:PIC16F877  Timer2  CCP模块  PWM 手机看文章 扫描二维码
随时随地手机看文章
Timer2是一个8位定时器,带有一个预分频器、一个后分频器和一个周期寄存器。当将预分频器和后分频器设置为最大值时,其溢出时间与 16位定时器的相同。在PWM模式下使用 CCP模块时, Timer2 为PWM时基。

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

PIC16F877的Timer2与CCP模块的PWM

 

与Timer2有关的寄存器

PIC16F877的Timer2与CCP模块的PWM


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

 

PIC16F877的Timer2与CCP模块的PWM

 

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

PIC16F877的Timer2与CCP模块的PWM


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频率,其最大分辨率(位)为:

PIC16F877的Timer2与CCP模块的PWM

计算举例:

PIC16F877的Timer2与CCP模块的PWM

 


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

关键字:PIC16F877  Timer2  CCP模块  PWM 引用地址:PIC16F877的Timer2与CCP模块的PWM

上一篇:PIC16F877 CCP模块的捕捉模式
下一篇:PIC16F877的Timer1

推荐阅读最新更新时间:2024-03-16 14:40

高精度三相PWM波形产生器SA4828在逆变器中的应用
    摘要: SA4828是Mitel公司生产的三相PWM波开产生器,它可提供高质量,全数字的三相脉宽调制波形,而且编程简单方便,修改灵活,文中介绍SA4828的原理及其应用在逆变器中的软、硬件设计方法。     关键词: 脉宽调制(PWM)  控制  逆变  SA4828 1 引言     脉宽调制(PWM)控制技术在逆变电路中得到广泛的应用,其波形产生方法有两种:一是模拟方法,二是数字方法。模拟方法电路结构复杂,有温漂现象,难以实现精确控制。数字方法则克服了上述缺点。MITEL公司生产的SA系统PWM波形产生器具有精度高、抗干扰能力强、外围电路简单等优点,其中SA4828是主要用于变频调速、逆变电源及
[应用]
stm32cubemx配置PWM
STM32F4定时器时钟频率和时钟源 (1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线 (2)通用定时器timer2timer5,通用定时器timer12timer14以及基本定时器timer6,timer7的时钟来源是APB1总线 cubemx配置 以下转自:https://blog.csdn.net/qq_42967008/article/details/89267010 一、打开Cube,建立工程 图片: 点击ACCESS project from MCU 然后选择芯片类型(我这里选的是F103C8T6) 图片: 二、系统配置 在 P
[单片机]
stm32cubemx配置<font color='red'>PWM</font>
能用直流信号驱动LED的简单PWM调制器电路
利用可变占空比(脉宽调制或PWM)的方法,可实现LED驱动电路的调光。PWM方法可充分利用LED的功能,因为电流越大,特定功耗(温度)水平下的LED光输出就越大。因此,在LED两端施加PWM电流后,其输出的平均功耗与采用直流控制方法所产生的平均功耗相当,但工作电流更大,光输出更高。 即使可用的控制信号是直流信号,也可以用性能可预测且具良好线性的简单电路实施PWM控制。这个电路由一个双路比较器和一些外部元件组成,采用0~5V控制信号产生500Hz PWM信号,非线性度为2%,占空比可调范围为0~100%(图1)。 比较器的“B”端被配置为工作在500Hz左右的振荡器。正输入端产生三角波,振幅约为电源电压的1/10.比较器的
[电源管理]
能用直流信号驱动LED的简单<font color='red'>PWM</font>调制器电路
PIC 脉冲调控PWM模块
PWM的输出引脚通过PWMxCON寄存器的第7位 PWM 模块使能位(PWMxEN)配置为PWM输出 其中输出脚分别为 RC5-----PWM1 RC3-----PWM2 RA2-----PWM3 RC1-----PWM4 个人总结关于PIC的PWM模块配置的一般步骤,感觉数据手册推荐的配置方法略微麻烦。 ①配置系统时钟 ②配置PWM引脚为输出 ③配置TIM2的预分频数 ④配置计数器PR2和TMR2 ⑤配置输出极性并且PWM引脚输出使能 ⑥设置占空比 ⑦使能PWM波输出 void main() { OSCCON = 0x78;//16M __delay_ms(20);
[单片机]
PIC 脉冲调控<font color='red'>PWM</font><font color='red'>模块</font>
半导体激光管驱动电源设计与实现
  半导体激光管(LD)和普通二极管采用不同工艺,但电压和电流特性基本相同。在工作点时,小电压变化会导致激光管电流变化较大。此外电流纹波过大也会使得激光器输出不稳定。二极管激光器对它的驱动电源有十分严格的要求;输出的直流电流要高、电流稳定及低纹波系数、高功率因数等。随着激光器的输出功率不断加大,需要高性能大电流的稳流电源来驱动。为了保证半导体激光器正常工作,需要对其驱动电源进行合理设计。并且随着高频、低开关阻抗的MOSFET技术的发展,采用以MOSFET为核心的开关电源出现,开关电源在输出大电流时,纹波过大的问题得到了解决。   由于大电流激光二极管价格昂贵,而且很容易受到过电压,过电流损伤,所以高功率仅仅有大电流开关模块还不能
[电源管理]
stm32PWM精确控制脉冲个数
/**************************** 02 **TIM2的通道1使用单脉冲模式 03 **TIM3使用门控模式用来输出PWM 04 ** 05 ****************************/ 06 //TIM2per:重装值 07 //Compare1:比较捕获1的预装载值 08 void Motor_Init(u16 TIM2per, u16 TIM3per, u16 TIM3Compare1) 09 { 10 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; 11 TIM_OCInitTypeDef TIM_OCInitStruct; 12
[单片机]
STM32——PWM输出总结
学习后发现stm32的定时器功能确实很强大,小总结一下方便以后使用的时候做参考。Stm32定时器一共分为三种:tim1和tim8是高级定时器,6和7是基本定时器,2 5是通用定时器。从名字就可以看得出来主要功能上的差异。今天我主要是用定时器做pwm输出,所以总结也主要是针对pwm方面的。 先大致说下通用和高级定时器的区别。通用的可以输出四路pwm信号互不影响。高级定时器可以输出三对互补pwm信号外加ch4通道,也就是一共七路。 所以这样算下来stm32一共可以生成4*5+7*2=30路pwm信号。接下来还有功能上的区别:通用定时器的pwm信号比较简单,就是普通的调节占空比调节频率(别的不常用到的没去深究);
[单片机]
有源嵌位PWM控制器LM5025原理及应用
1. 引 言   LM5025是一款有源钳位专用的PWM变换器,其内部驱动器可驱动P沟道或N沟道钳位开关。与传统的绕组或RDC的钳位技术相比,有源钳位技术具有效率高、功率密度高的特点。LM5025有两路控制输出:主功率驱动(OUT_A)输出和有源钳位驱动(OUT_B)输出。有源钳位输出可以设定重叠时间(P沟道开关管)或死区时间(N沟道开关管)。两路驱动输出具有良好的驱动性能,即可驱动MOS管,也可驱动双极晶体管。LM5025的振荡器频率可达1MHz,PWM和电流采样传输的延迟时间小于100ns。LM5025内部有一个高电压启动调节器,使电源有一个13V~90V的宽输入范围。LM5025还有输入欠压锁定、软启动、振荡器同步及热保护等
[电源管理]
有源嵌位<font color='red'>PWM</font>控制器LM5025原理及应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved