找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1794|回復(fù): 0
收起左側(cè)

51單片機(jī)小車避障程序與電路原理圖

[復(fù)制鏈接]
ID:1073111 發(fā)表于 2023-4-26 11:42 | 顯示全部樓層 |閱讀模式
電路原理圖如下:
51hei.png

單片機(jī)源程序如下:
  1. /**********  循跡程序  ************************/

  2. //    接口連接:

  3. //    P0.0和P0.1-----右電機(jī)
  4. //    P0.2和P0.3-----左電機(jī)

  5. //    P1.0-----------右光電管
  6. //    P1.1-----------前光電管
  7. //    P1.2-----------左光電管

  8. /*****************************************************/

  9. #include<reg52.h>//包含必要頭文件

  10. sbit you1=P0^0;//定義單片機(jī)控制右邊電機(jī)的引腳
  11. sbit you2=P0^1;//定義單片機(jī)控制右邊電機(jī)的引腳
  12. sbit zuo1=P0^2;//定義單片機(jī)控制左邊電機(jī)的引腳
  13. sbit zuo2=P0^3;//定義單片機(jī)控制左邊電機(jī)的引腳

  14. sbit q=P1^1;//定義單片機(jī)連接循跡板前邊光電管的引腳
  15. sbit y=P1^0;//定義單片機(jī)連接循跡板右邊光電管的引腳
  16. sbit z=P1^2;//定義單片機(jī)連接循跡板左邊光電管的引腳


  17. void delay(int z)//pwm中使用的延時(shí)函數(shù)
  18. {
  19.         int i,j;
  20.         for(i=2;i>0;i--)
  21.         for(j=z;j>0;j--);        
  22. }
  23. void qian()//左右輪協(xié)同前進(jìn)子函數(shù)
  24. {
  25.         you1=0;
  26.         you2=1;
  27.         zuo1=0;
  28.         zuo2=1;
  29.         delay(8);//pwm調(diào)速 此為pwm有效值,前進(jìn)時(shí)速度為全速的90%
  30.         you1=1;
  31.         you2=1;
  32.         zuo1=1;
  33.         zuo2=1;
  34.         delay(10-8);         
  35. }
  36. void you()//左右輪協(xié)同  右轉(zhuǎn)子函數(shù)
  37. {
  38.         you1=0;
  39.         you2=1;
  40.         zuo1=1;
  41.         zuo2=0;
  42.         delay(7);//pwm調(diào)速 此為pwm有效值,前進(jìn)時(shí)速度為全速的80%
  43.         you1=1;
  44.         you2=1;
  45.         zuo1=1;
  46.         zuo2=1;
  47.         delay(10-7);
  48. }
  49. void zuo()//左右輪協(xié)同  左轉(zhuǎn)子函數(shù)
  50. {
  51.         you1=1;
  52.         you2=0;
  53.         zuo1=0;
  54.         zuo2=1;
  55.         delay(7);//pwm調(diào)速 此為pwm有效值,前進(jìn)時(shí)速度為全速的80%
  56.         you1=1;
  57.         you2=1;
  58.         zuo1=1;
  59.         zuo2=1;
  60.         delay(10-7);
  61. }
  62. void ting()//左右輪都停止轉(zhuǎn)動(dòng)
  63. {
  64.         you1=1;
  65.         you2=1;
  66.         zuo1=1;
  67.         zuo2=1;
  68.         delay(50000);
  69. }

  70. //下面是后退函數(shù),這里沒有用到,注釋掉了

  71. /*
  72. void hou()//左右輪協(xié)同前進(jìn)子函數(shù)
  73. {
  74.         you1=1;
  75.         you2=0;
  76.         zuo1=1;
  77.         zuo2=0;
  78.         
  79. }
  80. */


  81. void main()//主函數(shù)
  82. {
  83.            z=1;
  84.            q=1;
  85.            y=1;

  86.                 while(1)//單片機(jī)不間斷監(jiān)測 (是個(gè)死循環(huán))
  87.                 {           
  88.                                                                   
  89.                                 qian();//調(diào)用前進(jìn)子函數(shù),使小車光電管不滿足以下幾個(gè)條件時(shí)都處于前進(jìn)狀態(tài)
  90.                                 while((z==0)&&(y==1))//判斷當(dāng)左邊光電管遇到黑線時(shí)
  91.                                 {                                                        
  92.                                         zuo();//調(diào)用左轉(zhuǎn)子函數(shù)
  93.                                 }
  94.                                 while((z==1)&&(y==0))//判斷當(dāng)右邊光電管遇到黑線時(shí)
  95.                                 {        
  96.                                         you();//調(diào)用右轉(zhuǎn)子函數(shù)
  97.                                 }
  98.                                 while((z==0)&&(q==0)&&(y==0))//判斷當(dāng)左、前、右光電管均遇到黑線時(shí)
  99.                                 {
  100.                                          qian();                     //即遇到十字路口時(shí) 繼續(xù)前進(jìn)                                                        
  101.                                 }
  102.                                 while((z==0)&&(q==1)&&(y==0))//判斷當(dāng)左、右光電管均遇到黑線,前光電管時(shí)
  103.                                 {
  104.                                 
  105.                                         ting();                          //即遇到T字路口時(shí) 停止
  106.                                        
  107.                                 }
  108.                                                 
  109.                  }
  110. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表