PIC单片机之PWM原理分析

电子常识

2589人已加入

描述

  1、什么是PWM

  什么是PWM,专业点说脉宽调制,通俗点说 就是不断的输出高低电平。 比如 单片机 40ms的时间 输出高电平然后60ms的时间 输出低电平接着一直不断周期性的交替输出高低电平 这就是典型的PWM波。高电平输出的时间40ms就是传说中的脉宽,40ms+60ms=100ms 便是PWM的周期。假定我们把周期定为100ms.我们可以根据我们的需要 把高电平的时间加大或者减小,比如 高电平输出时间加大为80ms.那么低电平的时间就变为20ms. 也可以 高电平输出时间减小为20ms.那么低电平的时间就变为80ms.这即是脉宽调制 调的便是这高电平的时间。 而高电平(脉宽)在周期中,所占用的时间比例 就被称为占空比。用数学公式表示 高电平的时间/周期的时间=占空比。

  2、PWM的实现方式

  我们如何让单片机输出PWM波。有两种方式 一种是直接用I/O输出,另一种方式利用模块。

  2.1利用I/O口输出PWM

  如果你的单片机没有带有PWM输出功能模块,那么你可以自己写个程序输出PWM波。因为PWM不就是高低电平。一个I/O在加上一个定时器,对于任何单片机来说都是很容易做到的。

  2.2利用模块输出PWM

  对于PIC单片机而言就带有输出PWM的功能模块。利用模块输出PWM其实比利用I/O输出PWM更加简单便捷精确。

  3、PWM控制的基本原理

  理论基础:

  冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。冲量指窄脉冲的面积。效果基本相同,是指环节的输出响应波形基本相同。低频段非常接近,仅在高频段略有差异。

PWM

  图1形状不同而冲量相同的各种窄脉冲

  面积等效原理:

  分别将如图1所示的电压窄脉冲加在一阶惯性环节(R-L电路)上,如图2a所示。其输出电流i(t)对不同窄脉冲时的响应波形如图2b所示。从波形可以看出,在i(t)的上升段,i(t)的形状也略有不同,但其下降段则几乎完全相同。脉冲越窄,各i(t)响应波形的差异也越小。如果周期性地施加上述脉冲,则响应i(t)也是周期性的。用傅里叶级数分解后将可看出,各i(t)在低频段的特性将非常接近,仅在高频段有所不同。

PWM

  图2冲量相同的各种窄脉冲的响应波形

  用一系列等幅不等宽的脉冲来代替一个正弦半波,正弦半波N等分,看成N个相连的脉冲序列,宽度相等,但幅值不等;用矩形脉冲代替,等幅,不等宽,中点重合,面积(冲量)相等,宽度按正弦规律变化。

  SPWM波形——脉冲宽度按正弦规律变化而和正弦波等效的PWM波形。

PWM

  图3用PWM波代替正弦半波

  4、PWM工作原理分析

  脉冲宽度调制波通常由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。下图所示为脉冲宽度调制系统的原理框图和波形图。该系统有一个比较器和一个周期为Ts的锯齿波发生器组成。语音信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。因此,从图中可以看出,比较器输出一列下降沿调制的脉冲宽度调制波。

PWM

  通过图b的分析可以看出,生成的矩形脉冲的宽度取决于脉冲下降沿时刻t k时的语音信号幅度值。因而,采样值之间的时间间隔是非均匀的。在系统的输入端插入一个采样保持电路可以得到均匀的采样信号,但是对于实际中tk-kTs《 《的情况,均匀采样和非均匀采样差异非常小。如果假定采样为均匀采样,第k个矩形脉冲可以表示为:

PWM

  其中,x{t}是离散化的语音信号;Ts是采样周期; 是未调制宽度;m是调制指数。

PWM

  然而,如果对矩形脉冲作如下近似:脉冲幅度为A,中心在t = k Ts处, 在相邻脉冲间变化缓慢,则脉冲宽度调制波xp(t)可以表示为:

  其中,PWM 。无需作频谱分析,由式(2)可以看出脉冲宽度信号由语音信号x(t)加上一个直流成分以及相位调制波构成。当PWM时,相位调制部分引起的信号交迭可以忽略,因此,脉冲宽度调制波可以直接通过低通滤波器进行解调。

  5、PWM的优点

  PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。

  对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。

  总之,PWM既经济、节约空间、抗噪性能强,是一种值得广大工程师在许多设计应用中使用的有效技术。

  6、PWM的作用

  PWM能用来做什么?PWM比较典型的应用就是对LED调光和电机调速。那PWM是如何进行调光和调速的呢,其实也很好理解。以给LED调光为例。给LED一直通电LED是最亮的。不给LED断电LED是不亮的。那要是在极短的时间内给LED不断的通电断电。那给人眼的感觉就是LED虽然是亮的,但亮度较低。

  如果单片机高平输出时LED是亮的。那么在PWM波中高电平输出的时间越长LED就越亮,反之则越暗。

  7、PIC单片机学习之PWM信号输出

  实现功能:通过键盘(BUTTON)控制蜂鸣器发生,键盘按下,通过RC2/CCP1接口输出PWM信号(频率880Hz,脉宽50)驱动蜂鸣器发声。

  实验环境:Proteus

  编程语言:汇编

  编程环境:MPLAB

  单片机:PIC16F877

  晶振:20MHz

  Proteus仿真电路如下图:

  实验源程序:

  LIST P=16F877

  ;设置pwm为880Hz,50%占空比 INCLUDE P16F877.INC

  ORG

  0000H

  START BANKSEL TRISC;进入TRISC所在BANK BCF

  TRISC,2;清零TRIC的bit2,以使CCP1引脚成为输出

  MOVLW D‘70’

  MOVWF PR2;将70写入PR2以设置PWM周期

  BANKSEL CCPR1L

  MOVLW D‘35’

  MOVWF CCPR1L

  MOVLW 0X06

  MOVWF T2CON;bit2=1,使能Timer2,bit1-1,预分频值为16

  CHECKBUTTON BTFSC PORTA,4

  GOTO

  BUTTONOFF

  BUTTONON MOVLW H‘0C’

  MOVWF CCP1CON;设置CCP1为PWM模式

  GOTO

  CHECKBUTTON

  BUTTONOFF

  CLRF CCP1CON

  GOTO CHECKBUTTON

  END

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分