永发信息网

51单片机,电机使用了PWM调速后,就一直转,其他后续函数入暂停失效,如不能停止

答案:2  悬赏:70  手机版
解决时间 2021-02-05 14:46
代码如下,帮忙找下问题何在
#include
//********************************************
//***********分为50档,0为最低速,50为全速。
//********************************************
sbit IN1= P1^0;
sbit IN2= P1^1;
sbit IN3= P1^2;
sbit IN4= P1^3;
sbit EN1= P1^4; //左电机使能
sbit EN2= P1^5; //右电机使能

unsigned int L_pwm=30;
unsigned int R_pwm=30;
unsigned int f=0; //50等分信号数

// PWM调速信号初始化函数
void pwm_initial(void)
{
TMOD=0x22; //定时器0,1工作方式2,8位自动装入计数。
TH1=0xF0;
TL1=0xF0; //定时器赋初值 计时20us,50次为1ms,为一PWM信号周期

EA=1;
ET1=1;
TR1=1; //开中断
TR0=0;
}

//1KHzPWM 50等分信号产生中断函数
void F_PWM(void) interrupt 3
{
if(f > 50) f=0;

if(f <= L_pwm) EN1=1;
else EN1=0;

if(f <= R_pwm) EN2=1;
else EN2=0;

f++;
}

//停止函数*******************************
void stop(void)
{

IN1=0; //左电机停止
IN2=0;

IN3=0; //右电机停止
IN4=0;
}

//前进函数*******************************
void run(void)
{
IN1=1; //左电机正转
IN2=0;

IN3=1; //右电机正转
IN4=0;
}

void main()
{

pwm_initial();

while(1)
{
run();
delay(100);
stop();
delay(100);

}
}

也就是电机转动后就一直转动着,速度可以调,但是就是不会停下来,也就是run()后面的函数仿佛都失效了,为什么啊,大神们求解!
最佳答案
while(1)
{
run();
delay(100);
stop();
delay(100);
}

以上循环体反复执行,不待电机停止(惯性),开通信号又来了,所以电机一直转。你把延时时间大大加大看看效果。
全部回答
这个程序以前做遥控小车的时候写过,很长,不过控制l298的很短的,楼主只需要控制l298的ena,enb,in1,2,3,4的高电平时间长短,也就是占空比就可以控制左右电机的速度了,原理自己百度文库很简单的,我是用定时器控制的,没法,52单片机没pwm功能,呵呵
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
通常买花生油1.8升是多少市斤的
在新生儿耳边大声说话会影响他的听力吗
气门的意思是什么啊?知道的请说下!
哆啦啦童装在哪里啊,我有事要去这个地方
【世博会中国馆介绍】上海世博会中国馆英文介
怎么说敲门的声音
人参泡茶多少度的水适当
用珍贵水长痘
大平山地址在哪,我要去那里办事
和田打车到墨玉多少钱
Java 正则表达式文字匹配问题比如说我有一个
局踀的意思是什么啊?知道的请说下!
郑州龙子湖的河南警察学院附近住的住宿问题。
青山湾怎么去啊,有知道地址的么
自来水改造后,铁管换成PPR管,由于管径变小
推荐资讯
国家新发行的货币是怎么样流入市场的
今生缘婚庆地址在哪,我要去那里办事
下列选项中对于方案评估说法正确的是()A.方
甲醛烟熏对身体有害吗
心心相印婚纱礼服地址有知道的么?有点事想过
万安初级中学地址在什么地方,我要处理点事
五粟的意思是什么啊?知道的请说下!
朱集大酒店在什么地方啊,我要过去处理事情
清华少儿英语学校(衡阳衡阳县)怎么去啊,我要
英才幼儿园(巴中南江县)地址好找么,我有些事
易县乾坤汽车运输有限公司地址有知道的么?有
省弶港农场怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?