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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

路過哪位大佬可以幫我修改一下這個小車避障單片機代碼嗎

[復制鏈接]
跳轉到指定樓層
樓主
ID:569281 發表于 2019-6-22 09:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<AT89X52.H>        //包含51單片機頭文件,內部有各種寄存器定義
    sbit  DJ=P1^7;  //電機輸出控制線
//主函數
void main(void)
{
unsigned char i;
    //P1=0X00; //關電車電機
    TMOD=0X01;
         TH0= 0XFc;    //1ms定時
          TL0= 0X18;
            TR0= 1;
         ET0= 1;
         EA = 1;       //開總中斷
while(1) //無限循環
{
  
    //有信號為0  沒有信號為1
              if(Left_1_led==1&&Right_1_led==1)
     run();  //調用前進函數
     else
    {     
          if(Left_1_led==1&&Right_1_led==0)     //右邊檢測到紅外信號
      {
           leftrun();   //調用小車左轉函數
        }
      
        if(Right_1_led==1&&Left_1_led==0)  //左邊檢測到紅外信號
      {   
             rightrun();  //調用小車右轉函數
   
      }
   }  
  }
}


Build target 'Target 1'
assembling STARTUP.A51...
compiling 11.c...
11.C(21): error C202: 'Left_1_led': undefined identifier
Target not created
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:405033 發表于 2019-6-22 13:00 | 只看該作者
兄臺,你這個肯定是有個h文件沒有加進去,你這個Left_1_led都沒有定義到,肯定有錯誤呀,這個應該是循跡模塊的定義,你去找找吧,要不然你自己定義一個也可以的,一般h文件里面幫你定義好了
回復

使用道具 舉報

板凳
ID:552614 發表于 2019-6-22 15:41 | 只看該作者
如果只是這個頭文件的問題的話,那應該可以解決,但是不知道你定義的小車移動的函數有沒有問題
回復

使用道具 舉報

地板
ID:155507 發表于 2019-6-22 22:41 | 只看該作者
我給你來個程序試試

  1. #include <AT89X52.H>        //包含51單片機頭文件,內部有各種寄存器定義
  2. #define Left_1_led        P3_4      //P3_4接四路尋跡模塊接口第一路輸出信號即中控板上面標記為OUT1
  3. #define Left_2_led        P3_5      //P3_5接四路尋跡模塊接口第二路輸出信號即中控板上面標記為OUT2        

  4. #define Right_1_led       P3_6      //P3_6接四路尋跡模塊接口第三路輸出信號即中控板上面標記為OUT3
  5. #define Right_2_led       P3_7      //P3_7接四路尋跡模塊接口第四路輸出信號即中控板上面標記為OUT4


  6. #define Left_moto_pwm     P1_1      //PWM信號端
  7. #define Left_moto_pwm1    P1_3

  8. #define Right_moto_pwm    P1_5
  9. #define Right_moto_pwm1   P1_7


  10. #define Left_moto_go      {P1_0=1,P1_1=0,P1_2=1,P1_3=0;}    //左邊兩個電機向前走
  11. #define Left_moto_back    {P1_0=0,P1_1=1,P1_2=0,P1_3=1;}    //左邊兩個電機向后轉
  12. #define Left_moto_Stop    {P1_0=0,P1_1=0,P1_2=0,P1_3=0;}    //左邊兩個電機停轉                     
  13. #define Right_moto_go     {P1_4=1,P1_5=0,P1_6=1,P1_7=0;}    //右邊兩個電機向前走
  14. #define Right_moto_back   {P1_4=0,P1_5=1,P1_6=0,P1_7=1;}    //右邊兩個電機向前走
  15. #define Right_moto_Stop   {P1_4=0,P1_5=0,P1_6=0,P1_7=0;}    //右邊兩個電機停轉   

  16. unsigned char pwm_val_left  =0;//變量定義
  17. unsigned char push_val_left =0;// 左電機占空比N/10
  18. unsigned char pwm_val_right =0;
  19. unsigned char push_val_right=0;// 右電機占空比N/10
  20. bit Right_moto_stop=1;
  21. bit Left_moto_stop =1;
  22. unsigned  int  time=0;

  23. //前速前進
  24. void  run(void)
  25. {
  26.         push_val_left=7;         //速度調節變量 0-9。。。9最小,0最大
  27.         push_val_right=7;
  28.         Left_moto_go ;   //左電機往前走
  29.         Right_moto_go ;  //右電機往前走
  30. }

  31. //前速后退
  32. void  backrun(void)
  33. {
  34.         push_val_left=3;         //速度調節變量 0-9。。。0最小,1最大
  35.         push_val_right=3;
  36.         Left_moto_back ;   //左電機往前走
  37.         Right_moto_back ;  //右電機往前走
  38. }

  39. //左轉
  40. void  leftrun(void)
  41. {
  42.        
  43.         Left_moto_back ;   //左電機往前走
  44.         Right_moto_go ;  //右電機往前走
  45. }

  46. //右轉
  47. void  rightrun(void)
  48. {
  49.        
  50.         Left_moto_go ;   //左電機往前走
  51.         Right_moto_back ;  //右電機往前走
  52. }
  53. /************************************************************************/
  54. /*                    PWM調制電機轉速                                   */
  55. /************************************************************************/
  56. /*                    左電機調速                                        */
  57. /*調節push_val_left的值改變電機轉速,占空比            */
  58. void pwm_out_left_moto(void)
  59. {  
  60.         if(Left_moto_stop)
  61.         {
  62.                 if(pwm_val_left<=push_val_left)
  63.                 {
  64.                         Left_moto_pwm=1;
  65.                         Left_moto_pwm1=1;
  66.                 }
  67.                 else
  68.                 {
  69.                         Left_moto_pwm=0;
  70.                         Left_moto_pwm1=0;
  71.                 }
  72.                 if(pwm_val_left>=10)
  73.                 pwm_val_left=0;
  74.         }
  75.         else   
  76.         {
  77.                 Left_moto_pwm=0;
  78.                 Left_moto_pwm1=0;
  79.         }
  80. }
  81. /******************************************************************/
  82. /*                    右電機調速                                  */  
  83. void pwm_out_right_moto(void)
  84. {
  85.         if(Right_moto_stop)
  86.         {
  87.                 if(pwm_val_right<=push_val_right)
  88.                 {
  89.                         Right_moto_pwm=1;
  90.                         Right_moto_pwm1=1;
  91.                 }
  92.                 else
  93.                 {
  94.                         Right_moto_pwm=0;
  95.                         Right_moto_pwm1=0;
  96.                 }
  97.                 if(pwm_val_right>=10)
  98.                 pwm_val_right=0;
  99.         }
  100.         else   
  101.         {
  102.                 Right_moto_pwm=0;
  103.                 Right_moto_pwm1=0;
  104.         }
  105. }

  106. /***************************************************/
  107. ///*TIMER0中斷服務子函數產生PWM信號*/
  108. void timer0()interrupt 1   using 2
  109. {
  110.         TH0=0XFc;          //1Ms定時
  111.         TL0=0X18;
  112.         time++;
  113.         pwm_val_left++;
  114.         pwm_val_right++;
  115.         pwm_out_left_moto();
  116.         pwm_out_right_moto();
  117. }        

  118. //主函數
  119. void main(void)
  120. {
  121.         unsigned char i;
  122.         //P1=0X00; //關電車電機
  123.         TMOD|=0x01;
  124.         TH0= 0xFc;    //1ms定時
  125.         TL0= 0x18;
  126.         TR0= 1;
  127.         ET0= 1;
  128.         EA = 1;       //開總中斷
  129.         while(1) //無限循環
  130.         {

  131.                 //有信號為0  沒有信號為1
  132.                 if(Left_1_led==1&&Right_1_led==1)
  133.                 run();  //調用前進函數
  134.                 else
  135.                 {     
  136.                         if(Left_1_led==1&&Right_1_led==0)     //右邊檢測到紅外信號
  137.                         {
  138.                                 leftrun();   //調用小車左轉函數
  139.                         }
  140.                        
  141.                         if(Right_1_led==1&&Left_1_led==0)  //左邊檢測到紅外信號
  142.                         {   
  143.                                 rightrun();  //調用小車右轉函數
  144.                                
  145.                         }
  146.                 }  
  147.         }
  148. }


復制代碼
回復

使用道具 舉報

5#
ID:282095 發表于 2019-6-23 06:25 | 只看該作者
首先沒有添加避障小車的相關內容模塊,并且沒有使用電機正反轉控制小車運動。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品一二三影院 | 成人在线视频网站 | 日日干日日操 | 成人在线一区二区三区 | 日本成人毛片 | 91亚洲国产成人精品一区二三 | 欧美精品1区2区 | 国产精品 亚洲一区 | av超碰| 日韩在线观看网站 | 91在线精品视频 | 久久免费精品视频 | 综合另类| 国产精品久久久久久久久免费高清 | 久久久国产一区二区三区 | 在线观看精品视频网站 | www成人免费 | 中文字幕 在线观看 | 成人免费看片网 | 精品在线免费观看视频 | 黄a网站| 久久9精品 | 狠狠的干 | 中文字幕在线观看一区 | 色婷婷激情 | 91精品国产91久久久久青草 | 亚洲欧美日韩精品久久亚洲区 | 亚洲美女网站 | 99re99| 久久精品国产精品青草 | 欧美亚洲在线视频 | 日本欧美在线观看视频 | 精品免费视频 | 中文字幕在线观看www | 中文字幕日韩一区 | 午夜一级黄色片 | 91久久看片 | 国产精品一区二区在线观看 | 又爽又黄axxx片免费观看 | 91精品国产综合久久久久久 | 欧美日韩一区二区三区四区 |