欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 控制直流電極的程序 用L298n為啥電機沒動 [打印本頁]

作者: 程世龍    時間: 2016-12-9 18:47
標題: 控制直流電極的程序 用L298n為啥電機沒動
上面的程序中有sbit NUM_1=P2^4;這個,是打開第一位數(shù)碼管,沒用到位選,這也可以嗎?還有這個我用L298n為啥電機沒動了?

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int
sbit L1=P1^0;
sbit L2=P1^1;
sbit R1=P1^2;
sbit R2=P1^3;
sbit key_down=P3^4;
sbit key_set=P3^5;
sbit key_up=P3^6;
sbit NUM_1=P2^4;
uchar PWM;
uchar num=0,duty=0,speed=0;
uchar code table[]={

                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
                0x77,  //"A"
                0x7C,  //"B"
                0x39,  //"C"
                0x5E,  //"D"
                0x79,  //"E"
                0x71,  //"F"
                0x76,  //"H"
                0x38,  //"L"
                0x37,  //"n"
                0x3E,  //"u"
                0x73,  //"P"
                0x5C,  //"o"
                0x40,  //"-"
                0x00,  //熄滅
                0x00  //自定義

                         };


void delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void car_forward(uchar speed)
{ duty=speed;
  L1=0;
  L2=PWM;
  R1=0;
  R2=PWM;
}
void car_stop(void)
{ L1=0;
  L2=0;
  R1=0;
  R2=0;
}
void main(void)
{  TMOD=0x02;
   EA=1;
   TH0=0XC3;
   TL0=0XC3;
   ET0=1;
   TR0=1;
   NUM_1=0;
   P0=table[speed];
   while(1)
   { if(key_down==0 || key_up==0)
       {ET0=0;
        car_stop();
        delay(10);
          if(key_up==0)
            {
               speed++;
            }
          else if(key_down==0)
            { if(speed != 0)
                {
           speed--        ;
        }
            }
          P0=table[speed];
          while(key_down==0 || key_up==0)
           { ET0=1;
             if(key_set==0)
               { ET0=0;
                 car_stop();
         speed=0;
         P0=table[speed];
               }
            }
       }
   }
}
void timer0(void) interrupt 1
{ num++;
  if(num <= duty)
    {
      PWM=1;
    }
  else
  {
    PWM=0;
  }
  if(num >= 10)
  {
    num=0;
  }
  car_forward(speed);
}
















作者: aiwang51    時間: 2016-12-9 21:26
首先數(shù)碼管位選肯定不能少,電機沒動因該是在中斷服務函數(shù)里沒有進行計數(shù)器值復位(TH0=0XC3;    TL0=0XC3;)處理
作者: 程世龍    時間: 2016-12-9 21:55
aiwang51 發(fā)表于 2016-12-9 21:26
首先數(shù)碼管位選肯定不能少,電機沒動因該是在中斷服務函數(shù)里沒有進行計數(shù)器值復位(TH0=0XC3;    TL0=0XC3; ...

定時器0工作方式2是自動重載,中斷程序不是不用復位嗎?
作者: 程世龍    時間: 2016-12-9 21:56
程世龍 發(fā)表于 2016-12-9 21:55
定時器0工作方式2是自動重載,中斷程序不是不用復位嗎?

這個需要使能l298n的ENA和ENB嗎?




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1