久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

一個51單片機打箱裝置源程序(電機控制)

[復制鏈接]
跳轉到指定樓層
樓主
ID:340753 發表于 2018-10-18 10:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<AT89X52.h>
/****************定義***************/
#define  uint  unsigned  int                                                                //宏定義
#define  uchar  unsigned  char

unsigned char  a=0;
unsigned char  b=0;
unsigned char  c=0;
unsigned char  d=0;
unsigned char  e=0;
unsigned char  f=0;

void delay(uint  z)                                                                                         
{
       uint x,y;
         for(x=z;x>0;x--)
            for(y=110;y>0;y--);
}

/******************電機*****************/                                                                                                
void motor1(unsigned char direction_flag)                                                                 //吸盤電機
{
        switch(direction_flag)
        {
                case 0:                                                                                                                            //吸盤電機停止
                        P1_0=0;
                        P1_1=0;
                        break;         
                case 1:                                                                                                                         //吸盤電機正轉
                        P1_0=0;
                        P1_1=1;
                        break;
                case 2:                                                                                                                         //吸盤電機反轉
                        P1_0=1;
                        P1_1=0;
                        break;
                default:
                        break;
        }        

}

void motor2(unsigned char direction_flag)                                                                    //左右電機
{
        switch(direction_flag)
        {
                case 0:                                                                                                                           //左右電機停止
                        P1_2=0;
                        P1_3=0;
                        break;
                case 1:                                                                                                                           //左右電機正轉
                        P1_2=0;
                        P1_3=1;
                        break;
                case 2:                                                                                                                           //左右電機反轉
                        P1_2=1;
                        P1_3=0;
                        break;
                default:
                        break;
        }        

}

void motor3(unsigned char direction_flag)                                                                                //前進電機
{
        switch(direction_flag)
        {
                case 0:                                                                                                                           //前進電機停止
                        P1_4=0;
                        P1_5=0;
                        break;
                case 1:                                                                                                                           //前進電機正轉
                        P1_4=0;
                        P1_5=1;
                        break;
                case 2:                                                                                                                           //前進電機反轉
                        P1_4=1;
                        P1_5=0;
                        break;
                default:
                        break;
        }        

}

void motor4(unsigned char direction_flag)                                                                                //選轉電機
{
        switch(direction_flag)
        {
                case 0:                                                                                                                           //選轉電機停止
                        P1_6=0;
                        P1_7=0;
                        break;
                case 1:                                                                                                                           //選轉電機正轉
                        P1_6=0;
                        P1_7=1;
                        break;
                case 2:                                                                                                                           //選轉電機反轉
                        P1_6=1;
                        P1_7=0;
                        break;
                default:
                        break;
        }        

}

void motor5(unsigned char direction_flag)                                             //關箱電機
{
        switch(direction_flag)
        {
                case 0:                                                                                                        //關箱電機停止
                        P3_4=0;
                        P3_5=0;
                        break;
                case 1:                                                                                                        //關箱電機正轉
                        P3_4=0;
                        P3_5=1;
                        break;
                case 2:                                                                                                         //關箱電機反轉
                        P3_4=1;
                        P3_5=0;
                        break;
                default:
                        break;
        }        

}

void motor6(unsigned char direction_flag)                                             //切刀電機
{
        switch(direction_flag)
        {
                case 0:                                                                                                        //切刀電機停止
                        P3_6=0;
                        P3_7=0;
                        break;
                case 1:                                                                                                        //切刀電機正轉
                        P3_6=0;
                        P3_7=1;
                        break;
                case 2:                                                                                                         //切刀電機反轉
                        P3_6=1;
                        P3_7=0;
                        break;
                default:
                        break;
        }        

}

/*****************主函數***************/
void main()
{
        
  P1=0Xff;
        P3=0Xff;
                        /*************過程一   平臺向右準備吸箱***********/
        motor1(1);                                                                                //吸箱電機
        motor2(1);                                                                                //左右電機
        motor3(0);                                                                                //前進電機
  motor4(0);                                                                                //旋轉電機
        motor5(0);                                                                                //關箱電機
        motor6(0);                                                                                //切刀電機

/*******************************電機部分***************************/
  while(1)
  {
        if(!P0_0)                                                                                                                                     //限位開關一
        {
                delay(10);
                if(!P0_0)                                                                                                                                 
            {

                /*************過程六    第一次將打箱裝置收回
                              過程十三    第二次將打箱裝置收回***********/
                        if(a==0)
                        {
                                   motor1(1);                                                                                //吸箱電機
                                  motor2(0);                                                                                //左右電機
                                  motor3(0);                                                                                //前進電機
                motor4(0);                                                                                //旋轉電機
                      motor5(2);                                                                                //關箱電機
                      motor6(0);                                                                                //切刀電機
                        }
                        while(!P0_0);
                        a++;
                        if(a==1)
                        {
                                a=0;
                        }
                }
        }

        if(!P0_1)                                                                                                                                      //限位開關二
        {        
                delay(10);
                if(!P0_1)                                                                                                                                    
                {            
                           /*************過程二   平臺前進吸箱*************/
                        if(b==0)
                        {
                                    motor1(1);                                                                                //吸箱電機
                 motor2(0);                                                                                //左右電機
                                   motor3(1);                                                                                //前進電機
                 motor4(0);                                                                                //旋轉電機
                 motor5(0);                                                                                //關箱電機
                                   motor6(0);                                                                                //切刀電機                                 
                         }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                           /*************過程四    第一次打箱**************/                                                                              
                         if(b==1)
                         {                          
                                 motor1(1);                                                                                //吸箱電機
         motor2(0);                                                                                //左右電機
                                 motor3(0);                                                                                //前進電機
         motor4(0);                                                                                //旋轉電機
               motor5(1);                                                                                //關箱電機
                                 motor6(0);                                                                                //切刀電機                                
                         }
                           /**************過程十一 第二次打箱*************/                                                                              
                         if(b==2&&!P0_3)
                         {                          
                                 motor1(1);                                                                                //吸箱電機
               motor2(0);                                                                                //左右電機
                                 motor3(0);                                                                                //前進電機
         motor4(0);                                                                                //旋轉電機
         motor5(1);                                                                                //關箱電機
                                 motor6(0);                                                                                //切刀電機                                
                         }
                         while(!P0_1|!P0_3);
                         b++;
                            if(b==3)
                         {
                                  b=0;
                         }
                }
        }

    if(!P0_2)                                                                                                                                    //限位開關三
        {                  
                  delay(10);
            if(!P0_2)                                                                                                                                    
        {
                /*******************過程三   吸箱完成返回***************/
                           if(c==0)
                           {
                                motor1(1);                                                                                //吸箱電機
        motor2(0);                                                                                //左右電機
                                motor3(2);                                                                                //前進電機
              motor4(0);                                                                                //旋轉電機
        motor5(0);                                                                                //關箱電機
                                 motor6(0);                                                                                //切刀電機                                 
                           }                        
                        while(!P0_2);
                        c++;
                           if(c==1)
                        {
                          c=0;
                        }
                }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
}

        if(!P0_3)                                                                                                                                     //限位開關四
      {                  
                  delay(10);
                if(!P0_3)                                                                                                                                 
            {
                                /*****************過程五    第一次打箱動作完成平臺向左
                                                  過程十二    第二次打箱動作完成平臺向左 ***********/
                           if(d==0&&P0_1)
                           {
                                motor1(1);                                                                                //吸箱電機
        motor2(2);                                                                                //左右電機
                                motor3(0);                                                                                //前進電機
              motor4(0);                                                                                //旋轉電機
              motor5(0);                                                                                //關箱電機
                                motor6(0);                                                                                //切刀電機                                 
                                   }
                        /*****************過程七   第一次切膠帶
                                  過程十四   第二次切膠帶**************/        
                        if(d==1&&!P0_0)
                           {
                                    motor1(1);                                                                                //吸箱電機
                 motor2(0);                                                                                //左右電機
                                   motor3(0);                                                                                //前進電機
                 motor4(0);                                                                                //旋轉電機
                 motor5(0);                                                                                //關箱電機
                             motor6(1);                                                                                //切刀電機                                 
                     }
                        while(!P0_3|!P0_0|!P0_4);
                        d++;
                                                if(d==2)
                                        {
                                                d=0;
                                        }                                                
                        }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
      }

          if(!P0_4)                                                                                                                                     //限位開關五
      {                  
                  delay(10);
                   if(!P0_4)                                                                                                                              
               {
                                        /*****************過程八   切膠帶動作完成切膠帶動作回收***********/
                                   if(e==0&&!P0_0&&!P0_3)
                                   {        
                                            motor1(1);                                                                                //吸箱電機
                         motor2(0);                                                                                //左右電機
                                           motor3(0);                                                                                //前進電機
             motor4(0);                                                                                //旋轉電機
             motor5(0);                                                                                //關箱電機
                                           motor6(2);                                                                                //切刀電機                                 
                                   }
                        /*****************過程九    切膠帶過程完成   旋轉紙箱*************/
                                if(e==1&&!P0_0&&!P0_3)
                                   {
                                            motor1(1);                                                                                //吸箱電機
                         motor2(0);                                                                                //左右電機
                                           motor3(0);                                                                                //前進電機
                   motor4(1);                                                                                //旋轉電機
             motor5(0);                                                                                //關箱電機
                                           motor6(0);                                                                                //切刀電機                                 
                                   }
                 /*************** 過程十五   切膠帶動作完成切膠帶動作回收**********/
                                if(e==2)
                                   {
                                            motor1(1);                                                                                //吸箱電機
                         motor2(0);                                                                                //左右電機
                                           motor3(0);                                                                                //前進電機
             motor4(0);                                                                                //旋轉電機
             motor5(0);                                                                                //關箱電機
                                           motor6(2);                                                                                //切刀電機                                 
                                   }
                         /*****************過程十六    切  膠帶過程完成   全部完成 旋轉電機旋轉歸位*************/
                                if(e==3)
                                   {
                                                 motor1(0);                                                                                //吸箱電機
                                                 motor2(0);                                                                                //左右電機
                                                 motor3(0);                                                                                //前進電機
                                                 motor4(2);                                                                                //旋轉電機
                                                 motor5(0);                                                                                //關箱電機
                                                 motor6(0);                                                                                //切刀電機                                 
                                   }
                                while(!P0_4|!P0_6);
                                e++;
                                   if(e==4)
                                {
                                  e=0;
                                }                                       
                        }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

     }

         if(!P0_5)                                                                                                                             //限位開關六
         {                  
           delay(10);
           if(!P0_5)                                                                                                                           
         {
                                /**************過程十   
                                                 過程十七   全部過程結束 ************/
                           if(f==0)
                           {        
                        /**********等待投物**bn*************/                                

                     motor1(1);                                                                                //吸箱電機
                     motor2(0);                                                                                //左右電機
                                       motor3(0);                                                                                //前進電機
               motor4(0);                                                                                //旋轉電機
               motor5(0);                                                                                //關箱電機
                                       motor6(0);                                                                                //切刀電機

                        /*************確認投物準備二次封箱************/                        
                        }
                        while(!P0_5|!P0_6);
                         f++;
                           if(f==1)
                        {
                          f=0;
                        }                                                                                          
            }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
        }
                 /*****************紙箱旋轉完成平臺第二次向右走*************/
        if(!P0_6)
        {
                delay(10);
            if(!P0_6)                                                                                                                          
        {
                         motor1(1);                                                                                //吸箱電機
                   motor2(1);                                                                                //左右電機
                         motor3(0);                                                                                //前進電機
             motor4(0);                                                                                //旋轉電機
             motor5(0);                                                                                //關箱電機
                         motor6(0);                                                                                //切刀電機
            }
        }
  }
}


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

使用道具 舉報

沙發
ID:1 發表于 2018-10-18 15:59 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.黄色片视频 | 久草免费在线视频 | 一级看片| 免费国产一区二区 | 国产偷久久一级精品60部 | 欧美视频一区 | 精品国产乱码久久久久久丨区2区 | 日韩成人精品一区 | 日韩国产三区 | 黄片毛片 | 天天干天天草 | 在线91 | 中文字幕一区二区三区四区五区 | 亚洲国产精品激情在线观看 | 精品视频一区二区 | 色.com| 久久久久久久久久久91 | 国产精品1区 | 国产精品久久久乱弄 | 亚洲国产精品一区二区久久 | 成人3d动漫一区二区三区91 | 啪啪av| 国产精品久久毛片av大全日韩 | 日本午夜精品 | 国产精品欧美一区二区三区不卡 | 日本视频免费 | 国产精品伦理一区二区三区 | 国产精品久久二区 | 午夜精品久久久久久 | www.欧美视频 | 国产乱码精品一区二区三区中文 | 欧美高清一级片 | 国产精品久久久久久久7电影 | 国产日韩久久 | www.夜夜骑| 国产精品18久久久久久久 | 天天视频一区二区三区 | 亚洲精品综合 | av影音资源 | www久久国产 | 中文字幕一区二区三区不卡 |