标题: 小妹刚学单片机,控制直流电机的正反转和加减速,但是仿真电机转速特慢是什么问题啊 [打印本页]

作者: 慧慧。    时间: 2014-12-27 20:53
标题: 小妹刚学单片机,控制直流电机的正反转和加减速,但是仿真电机转速特慢是什么问题啊
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar m;
sbit k1=P2^0;
sbit k2=P2^1;        
sbit k3=P2^2;  
sbit k4=P2^3;
sbit k5=P2^4;
sbit pwm1=P1^4;
void init() ;               
void delay(int x)
{
      uint i,j;
      for(i=0;i<=x;i++)
      for(j=1;j<=110;j++);
}

main()
{   
   TMOD=0X01;
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   TR0=1;
   ET0=1;
   EX0=1;EX1=1;
   IT0=1;IT1=1;
   EA=1;
   while(1)
   {      
       if(k1==0)
        {
           delay(10);
           if(k1==0)
           {  
            P1=0x01;
           }
           while(!k1);
        }

        if(k2==0)
        {
           delay(10);
           if(k2==0)
           {
             P1=0x02;
           }
           while(!k2);
        }
        if(k3==0)
        {
           delay(10);
           if(k3==0)
           {
            P1=0X00;
            pwm1=0;
           }
        while(!k3);
        }
        if(k4==0)
        {
           delay(10);
           if(k4==0)
           {  
             m++;
           }
           while(!k4);
        }
        if(k5==0)
        {
            delay(10);
            if(k5==0)
             {  
              m--;
             }
             while(!k5);
        }
                if(m>3)m=3;
                if(m<1)m=1;   
     }
}
void init()
{
   IE=0X82;
   TMOD=0X01;               
   TH0=(65636-50000)/256;   
   TL0=(65636-50000)%256;
   TR0=1;
   P1=0X00;  
   P2=0Xff;  
   m=2;
}
void timer0(void) interrupt 1
{     
      static uchar c=0;
      TH0=(65636-50000)/256;   
      TL0=(65636-50000)%256;
      c++;
          if(c==3)
          {
          c=0;
          }
          if(c<m)
          {
          pwm1=0xff;
          }
          else pwm1=0x00;                       
}

QQ截图20141227204749.png (15.35 KB, 下载次数: 181)

QQ截图20141227204749.png

作者: 慧慧。    时间: 2014-12-27 20:54
求大神。
作者: dgahz    时间: 2014-12-27 22:15
把仿真文件放上来,方便大家调试。
作者: 大哥小弟    时间: 2014-12-27 22:42
你程序中用到了外部中断0和1,(EX0=1;EX1=1;IT0=1;IT1=1;)硬件上的P3^2和P3^3口没接。用到外部中断0和1,要设置中断优选级和对应中断函数。
   
  
作者: 慧慧。    时间: 2014-12-28 09:09
这是我的文件

电机转动.rar

65.02 KB, 下载次数: 134


作者: 慧慧。    时间: 2014-12-28 09:09
dgahz 发表于 2014-12-27 22:15
把仿真文件放上来,方便大家调试。

已上传。
作者: 慧慧。    时间: 2014-12-28 09:12
大哥小弟 发表于 2014-12-27 22:42
你程序中用到了外部中断0和1,(EX0=1;EX1=1;IT0=1;IT1=1;)硬件上的P3^2和P3^3口没接。用到外部中断0和1, ...

不怎么明白。
作者: dgahz    时间: 2014-12-28 12:18
做了小小改动: 电机转动.rar (70.65 KB, 下载次数: 248)


作者: 11111111111    时间: 2015-4-18 16:44
请问那五个控制信号,就是下面两个圆圈,上面一个框框的元器件叫什么?急
作者: lxa0    时间: 2015-7-12 09:42
11111111111 发表于 2015-4-18 16:44
请问那五个控制信号,就是下面两个圆圈,上面一个框框的元器件叫什么?急

那是按钮开关~~~~~~~~~~~~~晕糊糊
作者: 帅哥广    时间: 2017-5-4 10:04
没有lcd显示吗
作者: 先黑    时间: 2017-10-12 10:22
感觉仿真不出来
作者: cjjcjj1    时间: 2017-10-12 12:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 2016135032    时间: 2017-11-19 15:36
程序好不好使呢




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