《单片机C语言编程模板(PWM脉宽调制)(共6页).docx》由会员分享,可在线阅读,更多相关《单片机C语言编程模板(PWM脉宽调制)(共6页).docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上转单片机C语言编程模板(PWM脉宽调制) | - MCS-51系列单片机C语言编程PWM脉宽调制器程序模板 - 适用于STC系列内嵌PWM的单片机产品(以STC12C2052为例) - 以PWM控制LED亮度实验电路为例 /*函数名:PWM初始化函数调 用:PWM_init();参 数:无返回值:无结 果:将PCA初始化为PWM模式,初始占空比为0备 注:需要更多路PWM输出直接插入CCAPnH和CCAPnL即可/*/void PWM_init (void)CMOD=0x02; /设置PCA定时器 CL=0x00; CH=0x00;CCAPM0=0x42; /PWM0
2、设置PCA工作方式为PWM方式(0100 0010) CCAP0L=0x00; /设置PWM0初始值与CCAP0H相同 CCAP0H=0x00; / PWM0初始时为0/CCAPM1=0x42; /PWM1设置PCA工作方式为PWM方式(使用时删除/)/CCAP1L=0x00; /设置PWM1初始值与CCAP0H相同 /CCAP1H=0x00; / PWM1初始时为0/CCAPM2=0x42; /PWM2设置PCA工作方式为PWM方式/CCAP2L=0x00; /设置PWM2初始值与CCAP0H相同 /CCAP2H=0x00; / PWM2初始时为0/CCAPM3=0x42; /PWM3设置P
3、CA工作方式为PWM方式/CCAP3L=0x00; /设置PWM3初始值与CCAP0H相同 /CCAP3H=0x00; / PWM3初始时为0 CR=1; /启动PCA定时器/*/*函数名:PWM0占空比设置函数调 用:PWM0_set();参 数:0x000xFF(亦可用0255)返回值:无结 果:设置PWM模式占空比,为0时全部高电平,为1时全部低电平备 注:如果需要PWM1的设置函数,只要把CCAP0L和CCAP0H中的0改为1即可/*/void PWM0_set (unsigned char a)CCAP0L= a; /设置值直接写入CCAP0L CCAP0H= a; /设置值直接写入
4、CCAP0H/*/- 程序模块/*程序名: PWM模块调试程序(仅实验用)编写人: 杜洋编写时间:2009年7月22日硬件支持:STC12C2052 12MHz接口说明:LED灌电流接P3.7接口(PWM0) 修改日志:NO.1-/*说明:/*/#include /头文件/*函数名:PWM初始化函数调 用:PWM_init();参 数:无返回值:无结 果:将PCA初始化为PWM模式,初始占空比为0备 注:需要更多路PWM输出直接插入CCAPnH和CCAPnL即可/*/void PWM_init (void)CMOD=0x02; /设置PCA定时器 CL=0x00; CH=0x00;CCAPM0
5、=0x42; /PWM0设置PCA工作方式为PWM方式(0100 0010) CCAP0L=0x00; /设置PWM0初始值与CCAP0H相同 CCAP0H=0x00; / PWM0初始时为0/CCAPM1=0x42; /PWM1设置PCA工作方式为PWM方式(使用时删除/)/CCAP1L=0x00; /设置PWM1初始值与CCAP0H相同 /CCAP1H=0x00; / PWM1初始时为0/CCAPM2=0x42; /PWM2设置PCA工作方式为PWM方式/CCAP2L=0x00; /设置PWM2初始值与CCAP0H相同 /CCAP2H=0x00; / PWM2初始时为0/CCAPM3=0x
6、42; /PWM3设置PCA工作方式为PWM方式/CCAP3L=0x00; /设置PWM3初始值与CCAP0H相同 /CCAP3H=0x00; / PWM3初始时为0 CR=1; /启动PCA定时器/*/*函数名:PWM0占空比设置函数调 用:PWM0_set();参 数:0x000xFF(亦可用0255)返回值:无结 果:设置PWM模式占空比,为0时全部高电平,为1时全部低电平备 注:如果需要PWM1的设置函数,只要把CCAP0L和CCAP0H中的0改为1即可/*/void PWM0_set (unsigned char a)CCAP0L= a; /设置值直接写入CCAP0L CCAP0H= a; /设置值直接写入CCAP0H/*/*函数名:主函数调 用:无参 数:无返回值:无结 果:程序开始处,无限循环备 注:/*/void main (void)PWM_init(); /PWM初始化PWM0_set(0x10); /设置PWM占空比while(1) /无限循环程序/*/* 杜洋工作室 www.DoY/*/- 应用实例 - 使用说明 专心-专注-专业