求51单片机实现PWM的程序

 我来答
chenmin196
推荐于2017-10-13 · 超过10用户采纳过TA的回答
知道答主
回答量:19
采纳率:0%
帮助的人:30.2万
展开全部
#include <stc51.h>

int X ; // PWM的周期 单位:us微秒
int duty; //占空比变量

void main()
{

X=2000; //周期100uS 即PWM的频率=10KHZ
duty=50; //占空比 50%

TMOD=0X11;
EA=1;
ET0=1;
ET1=1;

TH0=(65535-duty)/256; //定时器0 改变占空比
TL0=(65535-duty)%256;

TH1=(65535-X)/256 ; //定时器1 改变频率
TL1=(65535-X)%256;

TR0=1;
TR1=1;

while(1) ;

}

void timer0_isr() interrupt 1 //定时器0;改变占空比
{

TR0=0;
P1=0X00;
++duty;
if(duty>=X-1) duty=1;

}

void timer1_isr() interrupt 3 //定时器1 ;改变PWM频率 即周期
{

P1=0XFF;

TH1=(65535-X)/256; //改变周期
TL1=(65535-X)%256;

TH0=(65535-duty)/256; //改变占空比
TL0=(65535-duty)%256;

TR0=1;
//TR1=1;

}
3岁愚公
2011-08-28
知道答主
回答量:8
采纳率:0%
帮助的人:1.3万
展开全部
改用AVR单片机吧,是自带的功能,速度是51的10倍以上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nongjianjun
2011-08-29 · TA获得超过831个赞
知道小有建树答主
回答量:3761
采纳率:0%
帮助的人:882万
展开全部
还搞不定吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式