大学生电子设计竞赛
直播中

何柳毅

10年用户 158经验值
擅长:嵌入式技术 模拟技术 光电显示 接口/总线/驱动
私信 关注
[问答]

PWM脉宽调制程序

求大神帮助用Keil的.c格式编一个C51的PWM脉宽调制程序。
小弟在此感谢不尽。

回帖(4)

风中素

2014-8-7 18:12:20
郭天祥学过了吧
我就用口述加代码来说了
uchar zkb=100;
uint count=0;
设置定时器
定重装周期
定时器内部函数
{
       重装周期
if(count>1000)count=0;
count++
       if(count>=zkb)
P1^1=1;
else
P1^1=0;
这里PWM波周期=重装时间xcount最大值
高电平时间就是8/9上述时间
}
举报

风中素

2014-8-7 23:36:34
学过郭天祥吧
头文件和其他什么的就不写了
uchar zkb=100;(设占空比为100)
uint  count=0;
开一个定时器0并设初值
void timer0()interrupt 1
{
再设初值
count++;
if(count=1000)
count=0
if(count>=zkb)
P1^1=1;
else
P1^1=0;
}
自动重装的周期乘上count的时间就是PWM波的一个周期
高电平时间即当count>zkb时时间(count-zkb)x自动重装的周期
举报

往日伊晞

2014-8-21 14:52:02
ghdfghdfhbcgfhbfghgfhngf
举报

马西贺

2014-8-21 22:33:35
你要先学会定时器和中断,这样才能得心应手的使用PWM
举报

更多回帖

发帖
×
20
完善资料,
赚取积分