如何使MCS-51单片机产生PWM信号来控制直流电机的转速

本人现在在做毕业设计,就差程序部分没出来了,以前没学过单片机,不知道所谓的定时器是什么东西。学了几天没有头绪。现在很着急。现在请求高手能帮我编个程序,用C语言,基于msc... 本人现在在做毕业设计,就差程序部分没出来了,以前没学过单片机,不知道所谓的定时器是什么东西。学了几天没有头绪。现在很着急。
现在请求高手能帮我编个程序,用C语言,基于msc-51单片机,使它以软件的方式直接产生占空比分别为30%,60%。90%的脉冲波,通过L298驱动电路放大来控制直流电机的转速,还有就是我不知道我的单片机选多大的晶振。
另外,我到现在还搞不懂,单片机输出pwm从哪几个管脚输送给L298。单片机和驱动电路l298之间的线路连接方式,不知道从哪儿输出从哪儿输入。哪位高手能给我个详细的电路图,方便我明白理解,
十分感谢高手能够相助,另外由于我的财富值下载文库用完了,没有分值了,十分抱歉大家了。
就要毕设答辩了,现在很着急,恳请哪位大侠帮忙一下。~~~~在下感激不尽~~~
我再把情况补充一下,单片机要控制的是一个电机的转速,分为三个功能:加速、减速、停止。用C语言编程,KEIL软件编译。
展开
 我来答
A律13折
2010-06-12
知道答主
回答量:13
采纳率:0%
帮助的人:15.7万
展开全部
我试了几次都传不上图去,我把管脚定义说一下吧。
P1.0—P1.4接5个对地键,分别作为:顺时针、逆时针、停止、加速和减速按键。
P3.0接L294的IN1,P3.1接IN2。P3.7接ENA,也就是PWM输出口。
另外你也可以用P0和P2口接LED或者LCD显示屏。
晶振就用单片机流行的12MHz就行了。
我这是用C语言写程序Keil编译。
#include<reg51.h>

sbit MA = P3^0;
sbit MB = P3^1;
sbit PWM = P3^7;

bit KeyFree;
unsigned char PWM_OUT;

void Delay(unsigned char); //声明延时函数
unsigned char KeyScan(void);
void keyProcess(unsigned char);
main()
{
TMOD = 0x01;
TH0 = - 50000 /256;
TL0 = - 50000 % 256;
IE = 0x82;
TR0 = 1;
while (1)
{
keyProcess(KeyScan());
}
}

void T0_INT () interrupt 1 //定时器函数控制PWM输出
{
TH0 = -5000 / 256;
TL0 = -5000 % 256;

PWM=1; //设置PWM输出
Delay(PWM_OUT);
PWM=0;
Delay(100-PWM_OUT);
}
void Delay(unsigned char x)
{
uchar i;
while(x--) for(i = 0;i < 200; i++);
}

unsigned char KeyScan(void)
{
P1|=0x1f;
if((P1&0x1f)!=0x1f)
{
Delay(10); //延时去抖
if((P1&0x1f)!=0x1f)
{
return P1&0x1f;
}
}
return P1&0x1f;
}

void keyProcess(uint key)
{
if(key==0x1f) /*******************/
{ /* */
KeyFree=1; /* 软件松手检测 */
} /* */
else /* */
{ /* */
if(KeyFree==1) /* */
{ /*******************/
KeyFree=0;
/*******************************************/
switch (key)
{

case 0x1e : {
MA=1;
MB=0;
break;}
case 0x1d : {
MA=0;
MB=1;
break;}
case 0x1b : {
PWM_OUT =0;
break;}
case 0x17 : {
if(PWM_OUT!=90){
PWM_OUT+=30;}
break;}
case 0x0f : {
if(PWM_OUT!=30&&PWM_OUT!=0){
PWM_OUT-=30;}
break;}
}
/*******************************************/
}
}
}
Kanemcustutio
2010-06-13
知道答主
回答量:16
采纳率:0%
帮助的人:11.1万
展开全部
软件模拟,(时间中断实现)
也可选用有PWM输出的MCU,如STC12xxxx
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旺盛又素雅丶榜首3959
2010-06-14
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部
楼上回答的很认真
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式