標(biāo)題: 雷達防撞避障小車,51單片機代碼 [打印本頁]

作者: guixing    時間: 2021-5-28 22:18
標(biāo)題: 雷達防撞避障小車,51單片機代碼
這個是我做的一個雷達避障小車的51單片機代碼,小車四驅(qū),雙雷達避障,可進可退,判斷最有轉(zhuǎn)彎方向。請高手指點一二,謝謝

單片機源程序如下:
  1. /***********************************************************************************************************/

  2. //串口波特率9600
  3. //系統(tǒng)便啟動對當(dāng)前距離進行測量,然后將距離值通過Echo/RX=p3.0 管腳輸出測量輸出的
  4. //距離值共兩個字節(jié),第一個字節(jié)是距離的高8位(HDate),第二個字節(jié)為距離的低8位(LData),單位為
  5. //毫米。即距離值為 (HData*256 +LData)mm:A3 6F (26 41) C2 96 24 C2 8D F1       
  6. /***********************************************************************************************************/          
  7. #include<reg52.h>
  8. #include<intrins.h>
  9. #include<STDIO.H>

  10. #define uchar unsigned  char
  11. #define uint  unsigned  int  


  12. sbit left_1=P2^2;
  13. sbit left_2=P2^3;
  14. sbit right_1=P2^4;
  15. sbit right_2=P2^5;




  16. #define left_go         {left_1=1,left_2=0;}        //左電機前進
  17. #define left_go_back          {left_1=0,left_2=1;}    //左電機反轉(zhuǎn)
  18. #define left_stop       {left_1=0,left_2=0;}    //左電機停止

  19. #define right_go        {right_1=1,right_2=0;}  //右電機前進
  20. #define right_go_back   {right_1=0,right_2=1;}  //右電機反轉(zhuǎn)
  21. #define right_stop      {right_1=0,right_2=0;}  //右電機停止




  22. void qianjin(void)    //前進
  23. {
  24.   left_go;
  25.   right_go;
  26. }

  27. void stop(void)     //停止
  28. {
  29.   left_stop;
  30.   right_stop;
  31. }

  32. void zuozhuan(void)  //左轉(zhuǎn)
  33. {
  34.   left_stop;
  35.   right_go;
  36. }

  37. void youzhuan(void) //右轉(zhuǎn)
  38. {
  39. left_go;
  40. right_stop;
  41. }
  42. void houtui(void)
  43. {
  44.         left_go_back;
  45.         right_go_back;
  46. }
  47. /********************************************************/
  48. void delayms(unsigned int z)   //ms
  49. {
  50.         unsigned int i,j;
  51.         for(i=z;i>0;i--)
  52.            for(j=110;j>0;j--);
  53. }
  54. /********************************************************/

  55. /*********************************************/
  56. void Init(void)
  57. {
  58.   TMOD=0x21;                   //設(shè)T0為方式1,GATE=1;
  59.   TH0=0;
  60.   TL0=0;
  61.   TR0=1;  
  62.   IT0=0;              //外部中斷:TI0=0:低電平觸發(fā);TI0=1:下降沿觸發(fā)
  63.   PT0=1;              //中斷優(yōu)先級:外部中斷0
  64.   ET0=1;              //允許T0中斷
  65.   EX0=1;              //開啟外部中斷0
  66.   EA=1;                              //開啟總中斷
  67. }
  68. /********************************************/



  69. void main(void)
  70. {  
  71.    //Init();
  72.     delayms(1000);
  73.    qianjin();
  74.           delayms(4000);
  75.    stop();
  76.    

  77.    houtui();houtui();
  78.    delayms(4000);
  79.    stop();stop();
  80.    stop();stop();

  81.    zuozhuan();
  82.    delayms(2000);
  83.         stop();stop();

  84.    youzhuan();
  85.    delayms(2000);
  86.    stop();stop();
  87.   
  88.         while(1)
  89.         {
  90.        
  91.         }
  92. }              
復(fù)制代碼

以上代碼下載:
雷達避障車code.rar (59.26 KB, 下載次數(shù): 10)






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