高级会员
- 积分
- 594
- 金钱
- 594
- 注册时间
- 2014-4-3
- 在线时间
- 74 小时
|
发表于 2016-7-23 01:17:25
|
显示全部楼层
以下内容来源于《51单片机轻松入门-基于STC15W4K系列》
8位PWM的周期= 计数脉冲周期×256
8位PWM的频率= 计数脉冲频率/256
8位PWM的脉宽时间(高电平时间)= 计数脉冲周期×(256-CCAPnL)
8位PWM的占空比= 脉宽时间/PWM周期= (1- CCAPnL/256) ×100%
例8.5 利用PCA 模块实现占空比固定的PWM输出。
说明:利用PCA模块0实现在P1.1输出占空比固定的PWM信号,假设R/C时钟频率Fosc= 22.1184MHz。
#include "STC15W4K.H" // 包含STC15W4K寄存器定义文件
void initPWM()
{
CMOD=0x80; // #10000000B 空闲模式下停止PCA计数器工作
// 选择PCA时钟源为Fosc/12,禁止PCA计数器溢出时中断
CCAPM0=0x42; // 设置PCA模块为PWM输出方式。
CR=1; // PCA计数器开始运行
}
void main()
{
initPWM();
CCAP0H=0x20; // 脉宽控制
while(1); // 让程序停在这里。
}
实验结果:用万用表测量P1.1输出频率为7.210KHz,占空比为87.5%。理论计算P1.1频率=计数脉冲频率
/256 = 22118400/12/256=7.2 KHz,占空比=(1- CCAPnL/256) ×100%=(1-32/256)×100%=87.5%。可见
理论计算与实际结果是一致的。
|
|