首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 嵌入式系统 > 【STM8教程】 PWM

【STM8教程】 PWM

资料介绍
【STM8教程】 PWM

STM8的C语言编程(14)-- PWM
 
在单片机应用系统中,也常常会用到PWM信号输出,例如电机转速的控制。现在很多高档
的单片机也都集成了PWM功能模块,方便用户的应用。
对于PWM信号,主要涉及到两个概念,一个就是PWM信号的周期或频率,另一个就是PWM信
号的占空比。例如一个频率为1KHZ,占空比为30%,有效信号为1的PWM信号,在用示波器
测量时,就是高电平的时间为300uS,低电平的时间为700uS的周期波形。
在单片机中实现PWM信号的功能模块,实际上就是带比较器的计数器模块。首先该计数器
循环计数,例如从0到N,那么这个N就决定了PWM的周期,PWM周期=(N+1)*计数器时钟
的周期。在计数器模块中一定还有一个比较器,比较器有2个输入,一个就是计数器的当
前值,另一个是可以设置的数,这个数来自一个比较寄存器。当计数器的值小于比较寄
存器的值时,输出为1(可以设置为0),当计数器的值大于或等于比较寄存器的值时,
输出为0(也可设置为1,与前面对应)。
了解了这个基本原理后,我们就可以使用STM8单片机中的PWM模块了。下面的实验程序首
先将定时器2的通道2设置成PWM输出方式,然后通过设置自动装载寄存器TIM2_CCR2,决
定PWM信号的周期。在程序的主循环中,循环修改占空比,先是从0逐渐递增到128,然后
再从128递减到0。
当把下面的程序在ST的三合一板上运行时,可以看到发光二极管LD1逐渐变亮,然后又逐
渐变暗,就这样循环往复。如果用示波器看,可以看到驱动LD1的信号波形的占空比从0
变到50%,然后又从50%变到0。
同样还是利用ST的开发工具,生成一个C语言程序的框架,然后修改其中的main.c,修改
后的代码如下。
 
//  程序描述:用PWM输出驱动LED
 
#include "STM8S207C_S.h"
 
void CLK
标签:stm8st
【STM8教程】 PWM
本地下载

评论