找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4029|回復: 6
打印 上一主題 下一主題
收起左側

新人,求教寫的這個演示L298N的程序是否合理~

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:59027 發(fā)表于 2014-2-10 21:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>    //頭文件
sbit ENA=P0^0;    /*   */
sbit IN1=P0^1;    /* 定義針腳  */
sbit IN2=P0^2;    /*   */
sbit IN3=P0^3;    /*   */
sbit IN4=P0^4;    /*   */
sbit ENB=P0^5;    /*   */
  
void MotorMoshi(unsigned nNum)   //電機轉(zhuǎn)向函數(shù)
{
                 
/*此段為選擇電機轉(zhuǎn)向*/
switch(nNum)
  {
  case 1:    //前進
   IN1=1;
   IN3=1;
   break;
  case 2:    //后退
   IN1=0;
   IN3=0;
   break;
  case 3:    //左前
   IN1=1;
   IN3=1;
   break;
  case 4:    //左后
   IN1=0;
   IN3=1;
   break;
  case 5:    //右前
   IN1=0;
   IN3=1;
   break;
  case 6:    //右后
   IN1=0;
   IN3=0;
   break;
  case 7:    //左旋轉(zhuǎn)
   IN1=0;
   IN3=1;
   break;
  case 8:    //右旋轉(zhuǎn)
   IN1=1;
   IN3=0;
   break;
  }
  /*取IN1和IN3的反值*/
  if(IN1==0)
   IN2=1;
  else
   IN2=0;
  if(IN3==0)
   IN4=1;
  else
   IN4=0;
  
  /*使能ENA,ENB為1或0*/
  if((nNum==1)||(nNum==2)||(nNum==3)||(nNum==4)||(nNum==7)||(nNum==8))      
               
   ENA=1;           
  else            
   ENA=0;                        
  if((nNum==1)||(nNum==2)||(nNum==5)||(nNum==6)||(nNum==7)||(nNum==8))            
   ENB=1;     
  else         
   ENB=0;
}
void delay(void)   //延時5S
{
    unsigned char a,b;
    for(b=19;b>0;b--)
        for(a=130;a>0;a--);
}
void main(void)
{
unsigned a;
a=0;
while(1)
{
  MotorMoshi(a);
  delay();
  a++;
  if(a==9)
  {
  break;
  }
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:59027 發(fā)表于 2014-2-10 21:57 | 只看該作者
還有這段能簡寫嗎
if((nNum==1)||(nNum==2)||(nNum==3)||(nNum==4)||(nNum==7)||(nNum==8))
剛開始以為可以寫成if(nNum==(1||2||3||4||7||8))
結果變成了隨機
回復

使用道具 舉報

板凳
ID:63747 發(fā)表于 2014-7-9 21:16 | 只看該作者
俺還沒到樓主腳跟,只能仰望了~~
回復

使用道具 舉報

地板
ID:63700 發(fā)表于 2014-7-10 14:44 | 只看該作者
俺還沒到樓主腳跟,只能仰望了~~
回復

使用道具 舉報

5#
ID:72577 發(fā)表于 2015-1-26 14:36 | 只看該作者
616001467 發(fā)表于 2014-2-10 21:57
還有這段能簡寫嗎
if((nNum==1)||(nNum==2)||(nNum==3)||(nNum==4)||(nNum==7)||(nNum==8))
剛開始以為可 ...

直接寫if(nNum)就行了
回復

使用道具 舉報

6#
ID:73964 發(fā)表于 2015-3-15 07:08 來自手機 | 只看該作者
學習學習
回復

使用道具 舉報

7#
ID:58502 發(fā)表于 2015-3-15 11:25 | 只看該作者
ENA和ENB那直接插上就行了啊,不用單片機來控制
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表