找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1629|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机pwm直流电机调速

[复制链接]
跳转到指定楼层
楼主
ID:394899 发表于 2018-9-7 11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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;  
}  


评分

参与人数 1黑币 +1 收起 理由
momo0527 + 1 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表