找回密码
 注册
关于网站域名变更的通知
查看: 332|回复: 1
打印 上一主题 下一主题

详细注解的PWM c程序初学者适用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-6 09:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
详细注解的PWM c程序初学者适用/ }; ?; H# \0 B# U3 }" M% n3 Z' p

% A; z$ E+ U: X. ?3 x/ C
) Y) q* {6 L6 W

#include "stc2052.h"

unsigned int pulse_width_MAX = 0xF0; // WM 脉宽最大值, 占空比 = 93.75%

unsigned int pulse_width_MIN = 0x10; // WM 脉宽最小值, 占空比 = 6.25%

unsigned int step =0x38;

unsigned int pulse_width;

unsigned int i,j;

unsigned char state;

void PCAinit(); //PCA模块初始化

void delay1ms(unsigned int TIME); //1ms延时程序(大概是1ms)

void zhankongbi(); //调节占空比

void st(); //用来表示pulse_width的状态函数

void main(void)

{

EA=0;

PCAinit(); //初始化PCA定时器

zhankongbi();

}

void PCAinit()

{

CMOD=0x80; //PCA 在空闲模式下停止 PCA 计数器工作

//PCA 时钟模式为fosc/12

//禁止 PCA 计数器溢出中断

CCON=0x00; //禁止 PCA 计数器工作, 清除中断标志、计数器溢出标志

CL=0X00; //清0计数器

CH=0X00;

//下面设置模块0为 8 位 PWM 输出模式, PWM 无需中断支持。脉冲在P3.7(第11脚)输出

CCAPM0=0x42; //PCA(计数器阵列)模块0的工作模式 :8位PWM工作模式

PCA_PWM0=0x00; //赋值为0,pwm才能有高电平输出

//下面设置模块1为 8 位 PWM 输出模式, PWM 无需中断支持。脉冲在P3.5(第9脚)输出

CCAPM1=0x42; //PCA(计数器阵列)模块1的工作模式 :8位PWM工作模式

PCA_PWM1=0x00; //赋值为0,pwm才能有高电平输出

EPCA=1; // 开 PCA 中断

EA =1; // 开总中断

CR=1; //将PCA 计数器打开

}

void zhankongbi()

{

pulse_width=pulse_width_MIN;

while(1)

{

st();

if(state==0)

{

pulse_width+=step;

}

if(state==1)

{

pulse_width-=step;

}

CCAP0H=pulse_width; // 模块0站空比的比较值

CCAP1H=pulse_width; // 模块1站空比的比较值

delay1ms(1000);

}

}

void delay1ms(unsigned int TIME)

{

for(i=0;i

for(j=0;j<400;j++)

{;}

}

void st()

{

if(pulse_width==pulse_width_MIN)

state=0;

if(pulse_width==pulse_width_MAX)

state=1;

}

程序功能说明程序在P3.7和P3.5都输出3.9k的PWM信号其脉冲宽度从6.25% 慢慢递增到93.75%然后在从93.75%递减到6.25%程序完全由本人自己写的,非网摘。这也是本人自己写的第一个比较完善的程序,现分享给大家,希望给有心学习的初学者!~


( l2 H3 p* @" A- W! i
8 A$ b# y; \) s

该用户从未签到

2#
发表于 2019-3-6 11:35 | 只看该作者
不错的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-2 04:09 , Processed in 0.093750 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表