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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

四輪紅外模塊尋跡小車的單片機代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:293165 發表于 2018-11-1 21:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這個代碼是我參加比賽時用的,有興趣的可以參考下
硬件連接
    P1_6 接驅動模塊 ENA 使能端,輸入PWM信號調節速度
      P1_7 接驅動模塊 ENB  使能端,輸入PWM信號調節速度

      P3_4 P3_5 接IN1  IN2    當  P3_4=1,P3_5=0; 時左電機正轉   驅動藍色輸出端 OUT1
OUT2接左電機   
      P3_4 P3_5 接IN1  IN2    當  P3_4=0,P3_5=1; 時左電機反轉                  
      P3_6 P3_7 接IN3  IN4   當  P3_6=1,P3_7=0; 時右電機正轉   驅動藍色輸出端 OUT3
OUT4接右電機
      P3_6 P3_7 接IN3  IN4   當  P3_6=0,P3_7=1; 時右電機反轉

      P1_0接四路尋跡模塊接口第一路輸出信號即中控板上面標記為OUT1
      P1_1接四路尋跡模塊接口第二路輸出信號即中控板上面標記為OUT2   
      P1_2接四路尋跡模塊接口第三路輸出信號即中控板上面標記為OUT3
    P1_3接四路尋跡模塊接口第四路輸出信號即中控板上面標記為OUT4
   四路尋跡傳感器有信號(白線)為0  沒有信號(黑線)為 1
   四路尋跡傳感器電源+5V GND 取自于單片機板靠近液晶調節對比度的電源輸出接口
                       
                        
   關于單片機電源:本店驅動模塊內帶 LDO 穩壓芯片,當電池輸入最低的電壓 6V 時候
可以輸出穩定的5V
   分別在針腳標+5 與GND 。這個電源可以作為單片機系統的供電電源。
  ****************************************************************************/

  #include<AT89x51.H>

  #define Left_moto_pwm     P1_6      //接驅動模塊ENA  使能端,輸入 PWM 信
號調節速度
  #define Right_moto_pwm    P1_7      //接驅動模塊ENB

     #define Left_1_led        P1_0      //四路尋跡模塊接口第一路
  #define Left_2_led        P1_1      //四路尋跡模塊接口第二路
     #define Right_1_led       P1_2      //四路尋跡模塊接口第三路
  #define Right_2_led       P1_3      //四路尋跡模塊接口第四路


  #define Left_moto_go      {P3_4=0,P3_5=1;} //P3_4 P3_5  接 IN1  IN2     當
P3_4=0,P3_5=1; 時左電機前進
  #define Left_moto_back    {P3_4=1,P3_5=0;} //P3_4 P3_5  接 IN1  IN2     當
P3_4=1,P3_5=0; 時左電機后退      
  #define Left_moto_stp     {P3_4=1,P3_5=1;} //P3_4 P3_5  接 IN1  IN2     當
P3_4=1,P3_5=1; 時左電機停轉                 
  #define Right_moto_go     {P3_6=0,P3_7=1;} //P3_6 P3_7 接 IN1  IN2   當
P3_6=0,P3_7=1; 時右電機前轉
  #define Right_moto_back   {P3_6=1,P3_7=0;} //P3_6 P3_7 接 IN1  IN2   當 P3_6=1,P3_7=0; 時右電機后退
     #define Right_moto_stp    {P3_6=1,P3_7=1;} //P3_6 P3_7  接IN1  IN2   當
P3_6=1,P3_7=0; 時右電機停轉
      unsigned char pwm_val_left  =0;//變量定義
  unsigned char push_val_left =0;// 左電機占空比 N/10
  unsigned char pwm_val_right =0;
  unsigned char push_val_right=0;// 右電機占空比 N/10
  bit Right_moto_stop=1;
  bit Left_moto_stop =1;
  unsigned  int  time=0;
/************************************************************************/
    void delay(unsigned int k)      //延時函數
{      
      unsigned int x,y;
    for(x=0;x<k;x++)   
      for(y=0;y<2000;y++);
}

/************************************************************************/
      void  run(void)  //前進函數
{
      push_val_left  =3;  //PWM 調節參數 1-10   1 為最慢,10 是最快  改這個值可以改變
其速度
    push_val_right =3;    //PWM 調節參數 1-10   1為最慢,10是最快   改這
個值可以改變其速度
    Left_moto_go ;      //左電機前進
    Right_moto_go ;    //右電機前進
}

/************************************************************************/
      void  left(void)  //左轉函數
{
      push_val_left  =8;  //PWM 調節參數 1-10   1 為最慢,10 是最快  改這個值可以改變
其速度
    push_val_right =8;    //PWM 調節參數 1-10   1為最慢,10是最快   改這
個值可以改變其速度
    Right_moto_go;    //右電機繼續
    Left_moto_stp;      //左電機停走
}
  /************************************************************************/
      void  right(void)  //右轉函數
{
      push_val_left  =8;  //PWM 調節參數 1-10   1 為最慢,10 是最快  改這個值可以改變
其速度
    push_val_right =8;    //PWM 調節參數 1-10   1為最慢,10是最快   改這個值可以改變其速度
    Right_moto_stp;    //右電機停走
    Left_moto_go;   //左電機繼續
}
   
   
/************************************************************************/
/*                    PWM 調制電機轉速                                    */
/************************************************************************/
/*                    左電機調速                                         */
/*調節push_val_left的值改變電機轉速,占空比             */
    void pwm_out_left_moto(void)
{   
    if(Left_moto_stop)
    {
     if(pwm_val_left<=push_val_left)
          Left_moto_pwm=1;   
  else   
          Left_moto_pwm=0;
  if(pwm_val_left>=10)
  pwm_val_left=0;
    }
    else  Left_moto_pwm=0;
}
/******************************************************************/
/*                    右電機調速                                   */   
    void pwm_out_right_moto(void)
{   
   if(Right_moto_stop)
    {   
     if(pwm_val_right<=push_val_right)
          Right_moto_pwm=1;   
  else   
          Right_moto_pwm=0;
  if(pwm_val_right>=10)
  pwm_val_right=0;
    }
    else    Right_moto_pwm=0;
}
/***************************************************/
///*TIMER0中斷服務子函數產生 PWM信號*/
    void timer0()interrupt 1   using 2
{
      TH0=0XF8;     //1Ms定時
    TL0=0X30;     time++;
    pwm_val_left++;
    pwm_val_right++;
    pwm_out_left_moto();
    pwm_out_right_moto();
  }   
  /***************************************************/

  void main(void)
{

  TMOD=0X01;
  TH0= 0XF8;       //1ms定時
    TL0= 0X30;
  TR0= 1;
  ET0= 1;
  EA = 1;

  while(1)              /*無限循環*/
  {   
   
       //四路尋跡傳感器有信號(白線)為0  沒有信號(黑線)為1   

       switch(P1&0x0f)
  {
    case 0x00:            // 全部沒有壓線,直轉
      run();
      break;
    case 0x01:            // 右壓線,左轉
      left();
      break;
    case 0x02:            // 右壓線,左轉
         left();
      break;
    case 0x04:            // 左壓線,右轉
      right();
      delay(6);          //轉向延時
      break;
    case 0x08:            // 左壓線,右轉
      right();           
      delay(6);          //轉向延時
      break;
   
     }
     }
}
   
全部資料51hei下載地址:
尋跡小車.pdf (117.16 KB, 下載次數: 79)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:583076 發表于 2019-7-15 21:19 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

板凳
ID:627663 發表于 2019-10-25 21:14 | 只看該作者
您是用了四個電機嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品69av | 国产精品日日夜夜 | 国产japanhdxxxx麻豆 | 99久久婷婷国产亚洲终合精品 | 日本粉嫩一区二区三区视频 | 成人在线中文字幕 | 久久乐国产精品 | 99婷婷| 福利视频网址 | 欧美在线观看网站 | 视频三区 | 麻豆av一区二区三区久久 | 久久一| 久久一 | 天天操妹子 | 免费久久网 | 国产精品欧美一区二区 | 精品日韩一区 | 国产精品揄拍一区二区久久国内亚洲精 | 国产一区二区三区精品久久久 | 在线成人 | 暖暖日本在线视频 | 国产激情视频在线免费观看 | 国产精品日韩一区 | 欧美久久一区二区 | 亚洲精视频| 97伦理电影 | 视频一区在线 | 欧美成人h版在线观看 | 亚洲人成人一区二区在线观看 | 黄网站涩免费蜜桃网站 | 成人中文字幕在线观看 | 中文字幕av亚洲精品一部二部 | 久久久久国产精品免费免费搜索 | 99精品久久 | 国产成人精品网站 | 鸳鸯谱在线观看高清 | 天天插天天舔 | 成人影院在线视频 | 国产午夜精品一区二区三区在线观看 | 国产成人久久av免费高清密臂 |