智能车制作

标题: 电子菜鸟向各路大神求教! [打印本页]

作者: 电子小菜鸟    时间: 2012-12-1 14:21
标题: 电子菜鸟向各路大神求教!
请问怎么用STC89C52单片机控制两轮直流电机驱动的小车的速度,用PWM控制,不用按键选择加速还是减速,希望前辈能给点用c语言编程的思路,或者能给小弟个例程作为参考。
作者: 四叶草的守候    时间: 2012-12-1 14:45
改变PWM的占空比就可以了啊!
作者: gy810986741    时间: 2012-12-1 14:49
用定时器。
作者: 电子小菜鸟    时间: 2012-12-1 15:04
它大概的原理我知道的,就是请问怎么能够实现比如小车的满额速度是100,能够让他维持在50的速度前进,我自己写的程序车子看上去就是一停一停的,不是那种减速的效果,请问应该怎么来写这个程序

#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit pwma=P1^6;
sbit pwmb=P1^7;
sbit int1=P0^0;
sbit int2=P0^1;
sbit int3=P0^2;
sbit int4=P0^3;
uint time=0;
uint k=10;
bit Flag=1;
void delay()
{
  int i,j;
  for(i=1000;i>0;i--)
   for(j=110;j>0;j--);
}
void chushi()
{TMOD|= 0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;

ET0=1;
TR0=1;
EA=1;
}
void main()
{
int1=1;
int2=0;
int3=0;
int4=1;
delay();
chushi();
while(1)
{if(time==100)
  
  time=0;
if(time<30)
{
pwmb=0;
  pwma=0;
  
}
else
{
pwmb=1;
pwma=1;

}





  

}

}
void time1() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
time++;


}

作者: 电子小菜鸟    时间: 2012-12-1 15:04
上面的是我写的。。。效果就不是减速,而是一停一停的
作者: 李鹏飞    时间: 2012-12-2 00:16
路过 学习的




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2