标题: 51单片机pwm直流电机调速 [打印本页]

作者: wangyudong1    时间: 2018-9-7 11:02
标题: 51单片机pwm直流电机调速
#include[reg52.h>    //注意请把‘ [ ’换成 "<",下同。否则编译时会出错。
#include [intrins.h>  //

#define uchar unsigned char  
#define uint unsigned int  
sbit en1=P2^0;   
sbit en2=P2^1;   
sbit s1=P2^2;   
sbit s2=P2^3;   
sbit s3=P2^4;   
sbit s4=P2^5;   
uchar t=0;   
uchar m1=0;   
uchar m2=0;   
uchar tmp1,tmp2;  

void motor(uchar index, char speed)  
{  
if(speed>=-100 && speed<=100)  
{  
  if(index==1)  
  {  
   m1=abs(speed);  
   if(speed<0)  
   {  
    s1=0;  
    s2=1;  
   }  
   else  
   {  
    s1=1;  
    s2=0;  
   }  
  }  
  if(index==2)  
  {  
   m2=abs(speed);  
   if(speed<0)  
   {  
    s3=0;  
    s4=1;  
   }  
   else  
   {  
    s3=1;  
    s4=0;  
   }  
  }  
}  
}  
void delay(uint j)  
{  
for(j;j>0;j--);  
}  
void main()  
{  
char i;  
TMOD=0x02;  
TH0=0x9B;  
TL0=0x9B;  
EA=1;  
ET0=1;  
TR0=1;  
while(1)  
{  
  for(i=0;i<=100;i++)  
  {  
   motor(1,i);  
   motor(2,i);  
   delay(5000);  
  }  
  for(i=100;i>0;i--)  
  {  
   motor(1,i);  
   motor(2,i);  
   delay(5000);  
  }  
  for(i=0;i<=100;i++)  
  {  
   motor(1,-i);  
   motor(2,-i);  
   delay(5000);  
  }  
  for(i=100;i>0;i--)  
  {  
   motor(1,-i);  
   motor(2,-i);  
   delay(5000);  
  }  
}  
}  
void timer0() interrupt 1  
{  
if(t==0)  
{  
  tmp1=m1;  
  tmp2=m2;  
}  
if(t
if(t
t++;  
if(t>=100) t=0;  
}  







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1