基于51单片机的电机调速(PID调速)

一.硬件方案

        本设计以单片机STC89C51和三极管控制的直流电机脉宽调制调速系统。利用STC89C51芯片进行低成本直流电动机控制系统的设计,能够简化系统构成、降低系统成本、增强系统性能、满足更多应用场合的需要。系统实现对电机的正转、反转、急停、加速、减速的控制,以及PWM的占空比在液晶上的实时显示。同时显示实时的电机转速。

二.设计功能

(1)本设计采用51单片机作为主控制器(STC89C51/52,AT89C51/52,AT89S51/52均兼容);

(2)采用霍尔传感器非接触式测电机转速;

(3)LCD1602液晶显示当前的转速,转速单位为转/分(RPM)。和显示当前的pwm占空比0~100%;

(4)电机的速度可以通过按键调整,也可以开始暂停,正转和反转;

(5)按键功能:按键1:正转;按键2:反转;按键3:占空比+1;按键4:占空比-1;按键5:开启/暂停键;

三.设计原理图

       原理图主要采用AD软件进行设计,如图:

Protues仿真:

四.程序设计

    主程序源码如下:

void main()
{  
  LCD_RW=0;
  PWM=0;
  init_lcd();            // 初始化液晶显示
  system_Ini();  //中断配置
  count=0;                  //将T0中断次数初始化为0
  temp=0;
  flag=0;  
  input1=0;
  input2=1;  
  dis(val);    //设置值显示
  write_com(0x80+14);
  write_data('Z');
  while(1)  
  {          
    display_val(v);        //电机速度显示
    delay(10); 
  }
 }
void Time0(void ) interrupt 2 using 1 //定时器T0的中断编号为1,使用第1组工作寄存器
{    
  EX1=0;
  flag_aa++;
  if(count>=10)     //若累计满4次,即计满200ms秒钟
  {  
    v=flag_aa; //计算速度    
    TL1=0;     //计数器1 清零
    TH1=0;
    if(x==0)
      pidout= PIDcontrol(val , v);    //PID调用
    if(pidout>=149)     // PWM限幅值  
    {
      pidout=145;
    }
    else if(pidout<=0)
    {
      pidout=0;
    }  
    flag_aa=0;  
    count=0;       //清0,重新统计中断次数  
  }      
  EX1=1;
}  
 void TIM0(void) interrupt 1 //定时器2中断  产生模拟PWM
 {
  TH0=(65536-25000)/256;    //定时器T0的高8位设置初值,每50ms产生一次中断
  TL0=(65536-25000)%256;    //定时器T0的低8位设置初值,每50ms产生一次中断
  count++; 
  key();
 }
void TIM2(void) interrupt 3 //定时器2中断  产生模拟PWM
{
  TH1=(65536-10)/256;   //定时器T0高8位重新赋初值
  TL1=(65536-10)%256;   //定时器T0低8位重新赋初值      TF1=0;
  timer3++;
  if(timer3>90)    
    timer3=0;
  if(timer3<=pidout)     //pidout
    PWM=1 ;
  else 
    PWM=0 ;  
                                              
}

资料链接:https://pan.baidu.com/s/1l6lp59pDByEv1jAtr2ZlnA?pwd=wdwq 
提取码:wdwq

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值