wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)避障小車制作資料與問題解決(附源碼)

  [復(fù)制鏈接]
ID:237538 發(fā)表于 2017-12-5 10:30 | 顯示全部樓層 |閱讀模式
避障小車程序?qū)崿F(xiàn)功能:
1.藍(lán)牙控制,重力感應(yīng),通過串口通訊實(shí)現(xiàn)手機(jī)和藍(lán)牙之間的連接控制用到hc-06模塊
2.循跡壁障,遇見障礙能夠及時躲避,通過舵機(jī)帶動hc-sr04超聲波模塊的左右轉(zhuǎn)動來測量前左右的障礙
3.跟蹤,可以追蹤一個物體,物進(jìn)車進(jìn),物退車退
4.走黑線,不同顏色的物體對光的反射不同
4.pwm速度快慢調(diào)速,通過pwm調(diào)節(jié)l298n產(chǎn)生脈寬調(diào)制
5.開燈,通過手機(jī)控制單片機(jī)的io口輸出高低電頻實(shí)現(xiàn)
6.喇叭,高低電頻產(chǎn)生震蕩
********************************************************************************/
/********************************************************************************
避障小車出現(xiàn)的問題:
1.主要是定時器優(yōu)先級別問題,解決辦法調(diào)節(jié)定時器優(yōu)先級別,第一次掌握了定時器二的用法,這是52特有的
2.切記,定時器0不能和定時器1互換,因?yàn)槎〞r器1優(yōu)先級沒有0高,互換會導(dǎo)致超聲波測距模塊接受不到數(shù)據(jù)
3.出現(xiàn)模塊從諜,的問題,解決辦法用標(biāo)記把可能出問題模塊一個一個標(biāo)記;最后發(fā)現(xiàn)原來是延時函數(shù)名字相同
4.字符串不能直接比較需要用if(strcmp(字符串,字符串2)==0)如果一樣就返回一個0,如果一比二大就返回
一個正數(shù)否則返回負(fù)數(shù)記住需要包含#include<string.h>頭文件
5.舵機(jī)不能兩個地方同時出現(xiàn)歸中,剛開始以為是定時器優(yōu)先級別的問題,打開定時器1串口通訊就會制動打開
所以我在串口函數(shù)里設(shè)了點(diǎn)亮led燈來測試串口中斷是否自己打開,然后我先是注釋ET1發(fā)現(xiàn)程序正常,
后面又注釋掉中斷3發(fā)現(xiàn)程序正常,說明不是定時器設(shè)置問題, 注釋掉中斷三里的內(nèi)容發(fā)現(xiàn)也正常說明不是中斷引起的
然后注釋掉舵機(jī)pwm調(diào)速,發(fā)現(xiàn)也正常說明不是小車檔位pwm的問題最后注釋掉小車快慢pwm調(diào)速,發(fā)現(xiàn)舵機(jī)函數(shù)有問題
然后注釋掉舵機(jī)pwm調(diào)速里的eles發(fā)現(xiàn)不正常,之后嘗試了改pwm輸出口的名字以及io口發(fā)現(xiàn)都沒用,最后拔掉舵機(jī)信號線
發(fā)現(xiàn)有用,說明舵機(jī)初始化有問題,最后把初始化里的歸中14,該成0,發(fā)現(xiàn)能正常運(yùn)作,最后把初始化該成14,注釋掉
超聲波次主函數(shù)的歸中發(fā)現(xiàn)能正常運(yùn)作,說明兩個歸中只能要一個。
結(jié)論;一點(diǎn)要細(xì)致認(rèn)真,勤于思考,碰到問題要迎難而上因?yàn)榫幊瘫緛砭褪莻改錯的過程別碰到問題就想著
問別人,因?yàn)樽约旱某绦蛑挥凶约鹤盍私?寫代碼一定要規(guī)范,免得到時后亂起來連自己都看不懂。
11月13日,吳才成

下面是制作的避障小車的實(shí)物圖:
psb.jpg psb (6).jpg psb (5).jpg psb (4).jpg psb (3).jpg psb (2).jpg psb (1).jpg

51單片機(jī)避障小車源程序如下:
  1. #include<AT89X52.H>        
  2. #include<string.h>                        //字符串比較頭文件
  3. #include <intrins.h>                                //nop的頭文件
  4. #define Left_moto_go {P3_1=1,P3_2=0,P3_3=1,P3_4=0;}         //左邊兩個電機(jī)向前走
  5. #define Left_moto_back {P3_1=0,P3_2=1,P3_3=0,P3_4=1;}         //左邊兩個電機(jī)向后轉(zhuǎn)
  6. #define Left_moto_Stop {P3_1=0,P3_2=0,P3_3=0,P3_4=0;}         //左邊兩個電機(jī)停轉(zhuǎn)
  7. #define Right_moto_go {P1_4=1,P1_5=0,P1_6=1,P1_7=0  ;}         //右邊兩個電機(jī)向前走
  8. #define Right_moto_back {P1_4=0,P1_5=1,P1_6=0,P1_7=1;}         //右邊兩個電機(jī)向前走
  9. #define Right_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0;}         //右邊兩個電機(jī)停轉(zhuǎn) */
  10. /***************************************************************/
  11. //藍(lán)牙的設(shè)置
  12. /*****************************************************************/
  13. void zxddc ();   //轉(zhuǎn)向燈 后退 剎車指示燈
  14. void zxdzz ();         //轉(zhuǎn)向燈左轉(zhuǎn)
  15. void zxdyz ();          //轉(zhuǎn)向燈右轉(zhuǎn)
  16. void zxdgd ();         //轉(zhuǎn)向燈關(guān)燈
  17. sbit LEDHZ = P3^5;                                        //轉(zhuǎn)向燈左邊
  18. sbit LEDHY = P3^6;                                        //轉(zhuǎn)向燈右邊
  19. sbit LED1 = P1^0 ;                                        //左方向燈
  20. sbit LED2 = P1^1 ;                                        //右方向燈
  21. sbit  fmq = P1^2 ;                                        //喇叭,蜂鳴器
  22. int pwmjishu = 0 ;                                        //pwm調(diào)速
  23. int pushjishu = 0 ;                                    //pwm調(diào)速
  24. sbit ena1 = P2^7;
  25. sbit enb1 = P2^6;                                          //l298npwm調(diào)速引腳
  26. sbit ena2 = P2^5;
  27. sbit enb2 =        P2^4;
  28. unsigned char data table[4]={ 0,0,0,};//用來裝串口發(fā)送過來的字符串,不包括0
  29. /***************************************************************/
  30. //超聲波的設(shè)置
  31. /*********************************************************/
  32. #define CSBPWM P2_2                         //接舵機(jī)信號端輸入PWM信號調(diào)節(jié)速度
  33. #define ECHO P2_0                                 //超聲波接口定義
  34. #define TRIG P2_1                                 //超聲波接口定義
  35. unsigned char disdat[4]={ 0,0,0,0,};
  36. unsigned char pwm_val_left = 0;//變量定義
  37. unsigned char push_val_left =0;//14;//舵機(jī)歸中,產(chǎn)生約,1.5MS 信號
  38. unsigned long S=0;
  39. unsigned long S1=0;
  40. unsigned long S2=0;
  41. unsigned long S3=0;
  42. unsigned long S4=0;
  43. unsigned int time=0;                         //時間變量
  44. unsigned int timer=0;                         //延時基準(zhǔn)變量
  45. unsigned char timer1=0;                 //掃描時間變量


  46. void qianj(void)                //前進(jìn)
  47. {
  48.         Left_moto_go ;                         //左電機(jī)往前走
  49.         Right_moto_go ;                         //右電機(jī)往前走
  50. }
  51. /************************************************************************/
  52. //全速后退
  53. void hout(void)                                 //后退
  54. {
  55.         Left_moto_back ;                 //左電機(jī)往前走
  56.         Right_moto_back ;                 //右電機(jī)往前走
  57.         zxddc ();                                //后退指示燈
  58. }
  59. /*********************        ***************************************************/
  60. //左轉(zhuǎn)                                                  //左轉(zhuǎn)
  61. void zuoz(void)
  62. {
  63.         Left_moto_back ;                 //左電機(jī)往前走
  64.         Right_moto_go ;                 //右電機(jī)往前走
  65.         zxdzz ();                                //左轉(zhuǎn)指示燈
  66. }
  67. /************************************************************************/
  68. //右轉(zhuǎn)
  69. void youz(void)                                  //右轉(zhuǎn)
  70. {
  71.         Left_moto_go ;                         //左電機(jī)往前走
  72.         Right_moto_back ;                 //右電機(jī)往前走
  73.         zxdyz ();                                //右轉(zhuǎn)指示燈
  74. }
  75. /************************************************************************/
  76. //STOP
  77. void tingz(void)                           //停止
  78. {                                                  
  79.         Left_moto_Stop ;                 //左電機(jī)停走
  80.         Right_moto_Stop ;                 //右電機(jī)停走
  81.         zxdgd ();                                //車子停止指示燈關(guān)閉
  82. }
  83. /************************************************************************/
  84. /************************************************************************/
  85.   void delay1(unsigned int k) //延時函數(shù)
  86. {
  87.         unsigned int x,y;
  88.         for(x=0;x<k;x++)
  89.         for(y=0;y<2000;y++);
  90. }
  91. /******************************//*******************************************/
  92.          void delay_50us(unsigned int z)        //延時函數(shù)
  93. {
  94.         unsigned int x,y;
  95.         
  96.         for(x=z;x>0;x--)
  97.                 for(y=110;y>0;y--);
  98.         
  99. }        

  100. /*************************************************/

  101. void StartModule() //啟動測距信號
  102. {
  103.         TRIG=1; //給10us以上的高電頻
  104.         _nop_(); //_nop_()一個機(jī)器周期,1us
  105.         _nop_();
  106.         _nop_();
  107.         _nop_();
  108.         _nop_();
  109.         _nop_();
  110.         _nop_();
  111.         _nop_();
  112.         _nop_();
  113.         _nop_();
  114.         _nop_();
  115.         _nop_();
  116.         _nop_();
  117.         _nop_();
  118.         _nop_();
  119.         _nop_();
  120.         _nop_();
  121.         _nop_();
  122.         _nop_();
  123.         _nop_();
  124.         _nop_();
  125.         TRIG=0;
  126. }
  127. /***************************************************/
  128. /**************************************************/
  129. void Conut(void) //計(jì)算距離
  130. {
  131.                 while(!ECHO); //當(dāng)RX為零時等待
  132.                 TR0=1; //開啟計(jì)數(shù)
  133.                 while(ECHO); //當(dāng)RX為1計(jì)數(shù)并等待
  134.                 TR0=0; //關(guān)閉計(jì)數(shù)
  135.                 time=TH0*256+TL0; //讀取脈寬長度
  136.                 TH0=0;
  137.                 TL0=0;
  138.                 S=(time*1.7)/100; //算出來是CM

  139. }


  140. void COMM( void )         //方向計(jì)算
  141. {


  142.         push_val_left=5; //舵機(jī)向左轉(zhuǎn)90度
  143.         timer=0;
  144.         while(timer<=4000); //延時400MS讓舵機(jī)轉(zhuǎn)到其位置
  145.         StartModule(); //啟動超聲波測距
  146.         Conut(); //計(jì)算距離
  147.         S2=S;
  148.         
  149.         push_val_left=23; //舵機(jī)向右轉(zhuǎn)90度
  150.         timer=0;
  151.         while(timer<=4000); //延時400MS讓舵機(jī)轉(zhuǎn)到其位置
  152.         StartModule(); //啟動超聲波測距
  153.         Conut(); //計(jì)算距離
  154.         S4=S;
  155.         push_val_left=14; //舵機(jī)歸中
  156.         timer=0;
  157.         while(timer<=4000); //延時400MS讓舵機(jī)轉(zhuǎn)到其位置
  158.         StartModule(); //啟動超聲波測距
  159.         Conut(); //計(jì)算距離
  160.         S1=S;
  161.         if((S2<20)||(S4<20)) //只要左右各有距離小于20CM小車后退
  162.         {
  163.                 hout(); //后退
  164.                 timer=0;
  165.                 while(timer<=4000);
  166.         }

  167.         if(S2>S4)
  168.         {
  169.                 youz(); //車的左邊比車的右邊距離小 右轉(zhuǎn)
  170.                 timer=0;
  171.                 while(timer<=4000);
  172.         }
  173.         else
  174.         {
  175.                         zuoz(); //車的左邊比車的右邊距離大 左轉(zhuǎn)
  176.                         timer=0;
  177.                 while(timer<=4000);
  178.         }
  179. }

  180. /**********************************************************************************
  181. 舵機(jī)pwm調(diào)速,和小車換擋調(diào)速共用一個定時器
  182. ***********************************************************************************/
  183. void pwm_Servomoto()
  184. {
  185.         
  186.         if(pwm_val_left<=push_val_left)
  187.         CSBPWM=1;
  188.         else
  189.         CSBPWM=0;
  190.         if(pwm_val_left>=200)
  191.         pwm_val_left=0;         

  192. }


  193. /************************************************************/
  194. void Delay(unsigned int i)
  195. {
  196.         char j;
  197.         for(i; i > 0; i--)
  198.                 for(j = 200; j > 0; j--);
  199. }
  200. /*****************************************************************/
  201. void fangx()         //方向函數(shù)
  202. {
  203.                 if(strcmp(table,"ONA")==0)      qianj();//前進(jìn)

  204.                 else if(strcmp(table,"ONB")==0) hout();//后退

  205.                 else if(strcmp(table,"ONC")==0)  zuoz();//左轉(zhuǎn)
  206.                
  207.                 else if(strcmp(table,"OND")==0)  youz ();//右轉(zhuǎn)

  208.                 else tingz();//停止
  209.                                        

  210.         //         if((a[0]=='O')&&(a[1]='N')&&(a[2]=='A')&&(a[3]==0)) qianj();
  211.                 /*if(a=="ONA")qianj();//前進(jìn) 總結(jié)字符串不能用==比較需要調(diào)用內(nèi)部庫函數(shù)

  212.                 else if(a=="ONB") hout();//后退

  213.                 else if(a=="ONC") zuoz();//左轉(zhuǎn)
  214.                
  215.                 else if(a=="OND") youz();//右轉(zhuǎn)
  216.    
  217.                 else tingz();//停止        */        
  218. }               
  219. /*****************************************************************************/
  220. void dangwei()           //檔位函數(shù)
  221. {
  222.         if (strcmp(table,"ON1") ==0 )
  223.                 pushjishu=0;
  224.         if (strcmp(table,"ON2") ==0 )                         //判斷是否按下按鍵
  225.                 {
  226.                         //pushjishu=pushjishu+10;
  227.                         pushjishu+=10;                                        //x+=y;相當(dāng)與x=x+y;這樣使程序更精煉
  228.                   while (strcmp(table,"ON2") ==0 ); //當(dāng)按鍵按下的時候進(jìn)入while循環(huán)執(zhí)行分號空語句,
  229.                                                                                           //當(dāng)按鍵是釋放跳出while循環(huán),很好的使按鍵按下一次執(zhí)行一次,不會跑飛
  230.                 }
  231.         if (strcmp(table,"ON3") ==0 )
  232.                 {
  233.                         //pushjishu=pushjishu-10;
  234.                    pushjishu-=10;
  235.                         while (strcmp(table,"ON3") ==0 );
  236.                 }
  237.   /*         if (strcmp(table,"ON4") ==0 )
  238.                 pushjishu=105;
  239.         /*if(strcmp(table,"ON5")==0)
  240.                 pushjishu=160;
  241.         if(strcmp(table,"ON6")==0)
  242.                 pushjishu=200;        */
  243. }
  244. /**************************************************************************/
  245. void zxddc ()   //轉(zhuǎn)向燈 后退 剎車指示燈 。函數(shù)需要在前面聲明,因?yàn)殡姍C(jī)函數(shù)定義在此函數(shù)前面,在電機(jī)函數(shù)調(diào)用此函數(shù)會出現(xiàn)錯誤
  246. {
  247.         LEDHZ = 0;
  248.         LEDHY = 0;
  249. }
  250. void zxdzz ()         //轉(zhuǎn)向燈左轉(zhuǎn)
  251. {
  252.         LEDHZ = 0;
  253.         LEDHY = 1;
  254. }
  255. void zxdyz ()          //轉(zhuǎn)向燈右轉(zhuǎn)
  256. {
  257.         LEDHZ = 1;
  258.         LEDHY = 0;
  259. }
  260. void zxdgd ()         //轉(zhuǎn)向燈關(guān)燈
  261. {

  262.         LEDHZ = 1;
  263.         LEDHY = 1;
  264. }
  265. /***************************************************************************/
  266. void kaideng()        //開前大燈燈函數(shù)
  267. {                                                                                
  268.         if ( strcmp(table,"ON7") == 0 )        //開燈
  269.     {
  270.                 LED1=0;
  271.                 LED2=0;
  272.         }
  273.          if ( strcmp(table,"ON8") == 0 )//關(guān)燈
  274.     {
  275.                 LED1=1;
  276.                 LED2=1;
  277.         }
  278. }
  279. /*************************************************************************/
  280. void laba()
  281. {
  282.         if(strcmp(table,"ON9")==0)
  283.         {
  284.                 fmq = 1;           //給高電平
  285.                 Delay(5);           //延時
  286.                 fmq = 0;           //給低電平
  287.                 Delay(5);        
  288.         }
  289. }
  290. /**********************************************************/
  291. void pwm(void)//小車快慢pwm調(diào)速,是通過l298n完成的
  292. {

  293. if(pwmjishu<=pushjishu)        
  294.         {
  295.                 ena1 = 0;
  296.                 enb1 = 0;
  297.                 ena2 = 0;
  298.                 enb2 = 0;    //l298n,實(shí)現(xiàn)pwm調(diào)速,當(dāng)給高電頻的時候io引腳有效,給低電平時無效
  299.         }        
  300.         else
  301.         {
  302.                 ena1 = 1 ;
  303.                 enb1 = 1 ;
  304.                 ena2 = 1 ;
  305.                 enb2 = 1 ;     
  306.         }

  307. if(pwmjishu >= 200)
  308.         pwmjishu = 0;

  309. }
  310. /*******************************************************************************
  311. 超聲波魔術(shù)手程序
  312. *******************************************************************************/
  313. void moss ()
  314. {
  315.         Delay (100);
  316.         push_val_left=14; //舵機(jī)歸中
  317.         while(1) /*無限循環(huán)*/
  318.         {         
  319.             dangwei();//檔位        
  320.                 if(strcmp(table,"ON6")==0)        //判斷按鍵 是否按下如果按下就退出csbmian函數(shù),return結(jié)束函數(shù)
  321.                         return;        
  322.                 if(timer>=1000) //100MS檢測啟動檢測一次
  323.                 {
  324.                         timer=0;
  325.                         StartModule(); //啟動檢測
  326.                         Conut(); //計(jì)算距離
  327.                         if(S<10) //距離小于20CM
  328.                                 hout(); //小車停止
  329.                         if(20>S&&S>10) //距離小于20CM
  330.                                 tingz();
  331.                         if(30>S&&S>20) //距離大于,30CM往前走
  332.                                 qianj();
  333.                         else
  334.                          if(S>35)
  335.                                 tingz();
  336.                 }        
  337.         }
  338. }
  339. /****************************************
  340. 超聲波壁障主函數(shù)
  341. /***************************************************************/

  342. /*        delay_50us(500);
  343.         TMOD=0X11;
  344.         TH1=(65536-100)/256; //100US定時
  345.         TL1=(65536-100)%256;
  346.         TH0=0;
  347.         TL0=0;
  348.         TR1= 1;
  349.         ET1= 1;
  350.         ET0= 1;
  351.         EA = 1; */        
  352. void csbmian ()
  353. {

  354.         timer=0;
  355.     push_val_left=14; /*舵機(jī)歸中,在初始化的時候歸要不在這歸中,如果兩個地方貴在程序就會出現(xiàn)毛病                                                兩個地方
  356.                                                 同時歸中串口中斷無緣無辜的會打開,導(dǎo)致車子不能串口通訊, */
  357.         delay1(50);
  358.         while(1) //無限循環(huán)//
  359.         {         
  360.                    dangwei();//檔位               
  361.                    kaideng();  //開燈函數(shù)
  362.                    laba();         //鳴笛函數(shù)
  363.          
  364.                     if(strcmp(table,"ON6")==0)        //判斷按鍵 是否按下如果按下就退出csbmian函數(shù),return結(jié)束函數(shù)
  365.                                         return;
  366.         
  367.                         if(timer>=1000) //100MS檢測啟動檢測一次
  368.                         {
  369.                                 timer=0;
  370.                                 StartModule(); //啟動檢測
  371.                                 Conut(); //計(jì)算距離
  372.                                 if(S<45) //距離小于20CM
  373.                                 {
  374.                                         hout();
  375.                                         hout();         //剎車
  376.                                         hout();
  377.                                         tingz(); //小車停止
  378.                                         COMM(); //方向函數(shù)
  379.                                 }
  380.                                 else
  381.                                         if(S>45) //距離大于,30CM往前走
  382.                                         qianj();
  383.                         }
  384.         }
  385. }
  386.    
  387. /**********************************************************/
  388. void main()
  389. {         
  390.           T2CON=0x30; //設(shè)置定時器二為串口波特率模式
  391.           SCON=0x50;  //設(shè)置串口方式為1
  392.           RCAP2H=0xff;
  393.           RCAP2L=0xdc; //定時器二自動裝初值16位
  394.           TH2=0xff;
  395.           TL2=0xdc;                //定時器二
  396.           TR2=1;                    //啟動定時器2
  397.           ES=1;                           //打開串口中斷
  398.           PS=1;                           //串口優(yōu)先級設(shè)置為最高

  399.           TMOD=0X11;         //打開定時器0和定時器1,工作做方式一
  400.           TH1=(65536-100)/256; //100US定時
  401.           TL1=(65536-100)%256;
  402.           ET1=1 ;                         //打開定時器一中斷
  403.           TR1=1 ;                         //啟動定時器一
  404.           TH0=0;                   //定時器0初始化
  405.           TL0=0;                   //切記定時器0不能和定時器一互換,因?yàn)槎〞r器0優(yōu)先級比1高,如果換了以后就不能接收超聲波了
  406.       ET0=1;                 //打開定時器0中斷
  407.           EA=1;                          //打開總中斷        
  408.                               
  409.                            

  410.                                     
  411. /*  T2CON=0x30;
  412.           SCON=0x50;  //設(shè)置串口方式為1
  413.           RCAP2H=0xff;
  414.           RCAP2L=0xdc;
  415.           TH2=0xff;
  416.           TL2=0xdc;
  417.           TMOD=0X11;         //打開定時器0和定時器1,工作做方式一
  418.           TH1=(65536-100)/256; //100US定時
  419.           TL1=(65536-100)%256;
  420.           TH0=0;                   //定時器0初始化
  421.           TL0=0;
  422.           ET1=1 ;
  423.           ET0= 1;                 //打開定時器0中斷
  424.           TR2=1;
  425.           ES=1;
  426.           PS=1;        
  427.           EA=1;

  428. /*******************************************/
  429. /*        TMOD=0X11;
  430.         TH1=(65536-100)/256; //100US定時
  431.         TL1=(65536-100)%256;
  432.         TH0=0;
  433.         TL0=0;
  434.         TR1= 1;
  435.         ET1= 1;
  436.         ET0= 1;
  437.           EA=1;                                //總開關(guān)
  438. /******************************************/
  439.    //單獨(dú)藍(lán)牙的串口設(shè)置
  440. /******************************************/
  441.         /*TMOD=0x21;//定時器1工作方式2,8位自動重裝  
  442.         TH0=(65536-100)/256; //100US定時
  443.         TL0=(65536-100)%256;
  444.     TH1=0xFd; //11.0592M晶振,9600波特率 
  445.     TL1=0xFd;
  446.         PS=1;
  447.         ET0=1 ;
  448.         TR0=1 ;
  449.         TR1=1 ;//打開定時器1
  450.     SM0=0 ;//串口方式1 SM0 SM1 01 允許接收  
  451.     SM1=1 ;//SMOD=0 16分頻
  452.     REN=1 ;
  453.         ES=1 ;//打開串口中斷   
  454.     EA=1;//開總中斷  */
  455.     //以上跟串口通信初始化有關(guān)

  456.         while(1)
  457.         {
  458.           dangwei();//檔位               
  459.           fangx();    //方向函數(shù)
  460.           kaideng();  //開燈函數(shù)
  461.           laba();         //鳴笛函數(shù)

  462.           if(strcmp(table,"ON5")==0)//判斷是否按下第五個按鍵,按下則啟動超聲波模式
  463.            csbmian ();          //超聲波模塊的主函數(shù)
  464.           if(strcmp(table,"ON4")==0)//判斷是否按下第四個按鍵,按下則啟動超聲波魔術(shù)手
  465.            moss ();          //超聲波魔術(shù)手模塊的主函數(shù)
  466.          }
  467. }
  468. /***************************************************/
  469. ///*TIMER1中斷服務(wù)子函數(shù)產(chǎn)生PWM信號*/
  470. void pwmdins()interrupt 3           //定時器一,優(yōu)先級別最低
  471. {

  472.         TH1=(65536-100)/256;                                         //100US定時
  473.         TL1=(65536-100)%256;  
  474.         pwmjishu++;                                                           // 小車快慢的pwm調(diào)速
  475.         pwm();                                                                    //小車快慢的pwm函數(shù)
  476.         timer++;                                                 //超聲波的基準(zhǔn) 定時器100US為準(zhǔn)。在這個基礎(chǔ)上延時
  477.         pwm_val_left++;                                         //舵機(jī)的pwm調(diào)速基準(zhǔn)時間
  478.         pwm_Servomoto();                                 //舵機(jī)pwm調(diào)速函數(shù)

  479. }
  480. /***************************************************/
  481. ///*TIMER0中斷服務(wù)子函數(shù)產(chǎn)生PWM信號*/
  482. void timer0()interrupt 1                 //因?yàn)榇趦?yōu)先級別變最高所以定時器0位第二高
  483. {

  484. }
  485. /***************************************************/

  486.    void serial() interrupt 4      //中斷子函數(shù)          //ps=1;使之優(yōu)先級最高
  487. {
  488.         int i;
  489.         ES=0;                                   //關(guān)閉串口中斷,其實(shí)不關(guān)也沒影響
  490.         table[i++]=SBUF;           //數(shù)組下標(biāo)加一,把字符串變成字符字單個取出存入數(shù)組,使之成為一元素
  491.         if(i==3)                           //字符串有三個字符,不包括標(biāo)志位0
  492.         i=0;                                  //使之清零以便下次從收
  493.         RI=0;                                  //串口標(biāo)志位硬件制一,手動清零
  494.         ES=1;                                  //打開串口                        
  495. …………
  496. …………
  497. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

原理圖: 無
仿真: 無
代碼:
寶馬自動駕駛.zip (53.9 KB, 下載次數(shù): 509)


評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2017-12-5 14:20 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

ID:171111 發(fā)表于 2018-5-1 22:10 | 顯示全部樓層
謝謝樓主    資料真好
回復(fù)

使用道具 舉報(bào)

ID:322672 發(fā)表于 2018-5-5 12:12 | 顯示全部樓層
手動點(diǎn)贊
回復(fù)

使用道具 舉報(bào)

ID:77866 發(fā)表于 2018-5-8 16:59 | 顯示全部樓層
謝謝樓主,提供資料,解決了急需問題
回復(fù)

使用道具 舉報(bào)

ID:269454 發(fā)表于 2018-7-20 17:11 | 顯示全部樓層
能不能發(fā)下電路圖
回復(fù)

使用道具 舉報(bào)

7#
無效樓層,該帖已經(jīng)被刪除
ID:376635 發(fā)表于 2018-7-21 15:26 | 顯示全部樓層
資料挺不錯的,感謝
回復(fù)

使用道具 舉報(bào)

ID:393768 發(fā)表于 2018-9-4 22:36 | 顯示全部樓層
厲害哦
回復(fù)

使用道具 舉報(bào)

ID:394168 發(fā)表于 2018-9-6 01:50 | 顯示全部樓層
下載了沒搞明白怎么弄
回復(fù)

使用道具 舉報(bào)

ID:400222 發(fā)表于 2018-9-19 20:09 來自觸屏版 | 顯示全部樓層
有沒有制作小車的材料清單
回復(fù)

使用道具 舉報(bào)

ID:406979 發(fā)表于 2018-10-9 13:22 | 顯示全部樓層
謝謝樓主好東西
回復(fù)

使用道具 舉報(bào)

ID:409750 發(fā)表于 2018-10-15 09:36 來自觸屏版 | 顯示全部樓層
能不能發(fā)下電路圖
回復(fù)

使用道具 舉報(bào)

ID:405273 發(fā)表于 2018-10-17 11:31 | 顯示全部樓層
我從論壇下載的資料為啥打不開啊
keil4 keil3都打不開啊

回復(fù)

使用道具 舉報(bào)

ID:405273 發(fā)表于 2018-10-17 14:26 | 顯示全部樓層
已解決 謝謝 文件夾名字的問題
回復(fù)

使用道具 舉報(bào)

ID:413969 發(fā)表于 2018-10-23 12:54 | 顯示全部樓層
不錯 學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:430125 發(fā)表于 2018-11-20 19:41 | 顯示全部樓層
感謝樓主,來學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:434555 發(fā)表于 2018-11-27 21:34 | 顯示全部樓層
資料真好
回復(fù)

使用道具 舉報(bào)

19#
無效樓層,該帖已經(jīng)被刪除
ID:436792 發(fā)表于 2018-11-30 20:31 | 顯示全部樓層
人才,好資料,謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:436792 發(fā)表于 2018-11-30 20:49 | 顯示全部樓層
好資料
回復(fù)

使用道具 舉報(bào)

22#
無效樓層,該帖已經(jīng)被刪除
ID:443011 發(fā)表于 2018-12-10 09:06 | 顯示全部樓層
贊一個
回復(fù)

使用道具 舉報(bào)

ID:483314 發(fā)表于 2019-3-2 17:07 | 顯示全部樓層
可以的對我?guī)椭艽?/td>
回復(fù)

使用道具 舉報(bào)

25#
無效樓層,該帖已經(jīng)被刪除
ID:482489 發(fā)表于 2019-3-16 18:54 | 顯示全部樓層

資料真好
回復(fù)

使用道具 舉報(bào)

ID:495816 發(fā)表于 2019-3-21 23:26 | 顯示全部樓層
不錯,學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:511444 發(fā)表于 2019-4-13 19:44 | 顯示全部樓層
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:300463 發(fā)表于 2019-4-16 15:49 | 顯示全部樓層
剛好在調(diào)試小車  謝謝了
回復(fù)

使用道具 舉報(bào)

ID:431514 發(fā)表于 2019-4-29 07:45 | 顯示全部樓層
有沒有制作小車的材料清單
回復(fù)

使用道具 舉報(bào)

ID:414113 發(fā)表于 2019-4-29 16:18 | 顯示全部樓層
感謝樓主分享,慢慢學(xué)習(xí)中
回復(fù)

使用道具 舉報(bào)

ID:431514 發(fā)表于 2019-5-2 09:04 | 顯示全部樓層
下載了沒搞明白怎么弄
回復(fù)

使用道具 舉報(bào)

ID:538080 發(fā)表于 2019-5-18 08:30 | 顯示全部樓層
這個可以呀
回復(fù)

使用道具 舉報(bào)

ID:704712 發(fā)表于 2020-3-9 17:26 | 顯示全部樓層
沒有原理圖呢
回復(fù)

使用道具 舉報(bào)

ID:707535 發(fā)表于 2020-3-14 13:42 | 顯示全部樓層
求元件庫和封裝庫
回復(fù)

使用道具 舉報(bào)

ID:702493 發(fā)表于 2020-3-14 15:29 | 顯示全部樓層
樓主,我最近也在玩這個,遇到點(diǎn)問題。
程序沒有有關(guān)超聲波的內(nèi)容,只是一個直走的命令,但HC-SR04超聲波模塊連在單片機(jī)上,小車不走。
拔掉echo端口,小車直走。
檢查超聲波模塊,超聲波模塊完好,收發(fā)端未接反。
這什么原因啊?求解答。
網(wǎng)上實(shí)在是找不到資料,都卡半個月了,以上問題你也遇到過嗎?
回復(fù)

使用道具 舉報(bào)

ID:712292 發(fā)表于 2020-3-20 15:17 | 顯示全部樓層
謝謝大神~
回復(fù)

使用道具 舉報(bào)

ID:713570 發(fā)表于 2020-3-23 16:53 來自觸屏版 | 顯示全部樓層
樓主有沒有電路圖
回復(fù)

使用道具 舉報(bào)

ID:713570 發(fā)表于 2020-3-23 16:54 來自觸屏版 | 顯示全部樓層
ghdok 發(fā)表于 2019-4-16 15:49
剛好在調(diào)試小車  謝謝了

有沒有電路圖,求電路圖
回復(fù)

使用道具 舉報(bào)

ID:712292 發(fā)表于 2020-4-25 22:31 | 顯示全部樓層
感謝樓主分享,謝謝大師
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
jjzzjjzz欧美69巨大| 国产麻豆视频网站| 成人免费毛片网| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | av电影在线网| 日韩亚洲天堂| 性高潮视频在线观看| 中文字幕天堂网| 99热这里只有精品免费| 亚洲自拍偷拍色片视频| 久久亚洲精品视频| 欧美一区二区三区在线看| 国产女人18毛片水真多成人如厕| 亚洲精品专区| 亚洲欧洲美洲国产香蕉| 88xx成人免费观看视频库| 国产精品久久久久一区二区国产| www.嫩草免费在线观看| 午夜性色福利影院| 波多野结衣大片| 国产91在线播放九色| 手机av在线免费| 日产精品久久久久久久蜜臀| 黄色99视频| 国产精品黄色影片导航在线观看| 日韩天堂在线视频| 精品国产一区二区三区av性色| 婷婷六月综合网| 国产欧美精品区一区二区三区 | 欧美大秀在线观看| 午夜国产一区二区| 亚洲视频一起| 欧美一级大黄| 黄色一级片在线观看| 国产超碰精品在线观看| 九九爱免费视频在线观看 | 九色成人搞黄网站| av免费在线免费观看| 自拍偷拍电影| 天天色综合6| 国产精品入口麻豆免费观看| 亚洲欧美自偷自拍| av 一区二区三区| 久久久久99精品成人片我成大片| 日韩在线视频免费看| 亚洲国产精品成人综合久久久| 香港日本韩国三级网站| 国产黄页在线观看| 日本大胆人体视频| 日本一区二区免费高清视频| 日韩在线三级| 久久艳妇乳肉豪妇荡乳av| 96精品久久久久中文字幕| 国产精品va在线播放我和闺蜜| 欧美日韩高清区| xvideos亚洲人网站| 亚洲香蕉成视频在线观看| 精品国产亚洲一区二区三区在线观看 | 久久精品国产清自在天天线| 亚洲黄色在线看| 精品1区2区在线观看| 日韩欧美精品在线| 欧美一区二区性放荡片| 91精品国产综合久久久久久久| 色94色欧美sute亚洲线路二| 精品日本美女福利在线观看| 亚洲福利国产精品| 欧美视频中文在线看| 疯狂欧美牲乱大交777| 亚洲h动漫在线| 亚洲成国产人片在线观看| 亚洲国产日韩综合久久精品| 性做久久久久久久久| 图片区小说区区亚洲影院| 欧美freesex交免费视频| 极品尤物一区| 综合国产视频| 99久久精品费精品国产风间由美| 久久精品国产68国产精品亚洲| 欧美韩国日本在线观看| 亚洲欧美一区在线| 国产欧美日韩一级| 麻豆精品新av中文字幕| 国产寡妇亲子伦一区二区| 99精品视频一区二区| 国产三级久久久| 亚洲欧洲国产日本综合| 性久久久久久久久久久久| 在线视频国内自拍亚洲视频| 91麻豆精品国产91久久久资源速度 | 日韩免费黄色av| 国产一区私人高清影院| 成人免费看片网站| 神马影院午夜我不卡| 99er在线视频| 美女网站色免费| 风间由美一二三区av片| 国产馆在线观看| 国产精品第二十页| 国产美女三级无套内谢| 一区二区三区四区在线不卡高清 | 成人vr资源| 亚洲性人人天天夜夜摸| 精品一区二区在线免费观看| jiyouzz国产精品久久| 中文字幕在线观看一区| 欧美日韩中文字幕在线视频| 欧美mv和日韩mv的网站| 久久激情视频久久| 国产精品久久久久9999| 日本一区二区三区免费看| 日韩av中文字幕第一页| 日本r级电影在线观看| 国产大屁股喷水视频在线观看| 国产精品午夜影院| 蜜桃视频污在线观看| 羞羞影视羞羞在线| 日中文字幕在线| 在线一区av| 国产亚洲电影| 久久xxxx| 国产精品色一区二区三区| 91久久人澡人人添人人爽欧美| 亚洲第一精品夜夜躁人人躁| 久久噜噜噜精品国产亚洲综合| 欧美亚洲尤物久久| 亚洲激情在线观看视频免费| 5252色成人免费视频| 免费日韩av电影| 婷婷丁香激情网| 国产第一页精品| 国产成人a人亚洲精品无码| 国产成人精品男人的天堂538| 亚欧黄色av| 日本在线啊啊| 色中色综合网| 成人一区二区三区视频在线观看| 无码av免费一区二区三区试看| 亚洲欧美一区二区三区在线| 国产中文日韩欧美| 人妻激情另类乱人伦人妻 | 樱花草在线观看www| 在线资源av| 亚洲国产91视频| 亚洲精品韩国| 国产精品午夜久久| 精品久久久三级丝袜| 欧美在线国产精品| 18视频在线观看娇喘| www国产视频| 91av国产精品| 成人www视频网站免费观看| 伦理在线一区| 国产午夜一区| 91在线免费播放| 3atv一区二区三区| 奇米四色中文综合久久| 日韩一二区视频| 国产精品国产三级国产专业不| 亚洲av无码乱码国产麻豆| 色偷偷亚洲第一综合| 多野结衣av一区| 亚洲欧美在线专区| 国产精品色哟哟网站| 亚洲色图五月天| 国产精品美女xx| 图片区乱熟图片区亚洲| 中文无码av一区二区三区| jizzjizz4| 成人看片网页| 亚洲中字黄色| 狠狠干狠狠久久| 久久久久久久久久久久av| 成人短视频在线看| 麻豆明星ai换脸视频| 欧美成人做性视频在线播放| 黄色在线观看网站| 国产精品麻豆久久| 亚洲欧洲一区二区三区| www.66久久| 欧美精品aⅴ在线视频| 国产成人精品a视频一区www| 大肉大捧一进一出好爽视频| 日本一级淫片免费放| 黄色的毛片免费| 欧美日韩视频免费观看| 久久xxxx| 91精品视频网| 国产区一区二区三区| 醉酒壮男gay强迫野外xx| 国产三级三级在线观看| 黄色大片在线看| 国产一区网站| 一区二区三区.www| 琪琪亚洲精品午夜在线| 五月婷婷激情久久| 国产精品自拍电影| 亚洲欧洲闷骚av少妇影院| 国产成人久久| 亚洲私人黄色宅男| 久久久久久久久久婷婷| 国产九九在线视频| 人妻中文字幕一区| 天天在线视频色| 激情综合视频| 日本乱码高清不卡字幕| 成人黄色av网| av在线网站观看| 污的视频网站| 亚洲无线观看| 日韩一区欧美小说| 91国内在线视频| 99日在线视频| sihu影院永久在线影院| 中文字幕资源网在线观看免费| 久久激五月天综合精品| 精品国产乱码久久久久久免费| 日本精品国语自产拍在线观看| 久草免费新视频| 97国产在线| 久久国产成人精品| 色婷婷av一区二区三区之一色屋| av一区二区在线看| 中文国语毛片高清视频| 黄色av免费| 久久国产中文字幕| 91国产精品成人| 欧美日韩国产免费一区二区三区 | 一区二区三区中文字幕精品精品| 国产精品极品美女粉嫩高清在线| 久久性爱视频网站| 美女三级福利视频| 一本色道久久综合亚洲精品酒店 | 国产美女av| 999久久久精品国产| 欧美日韩一区二区电影| 久久亚洲国产精品日日av夜夜| 黄色激情视频在线观看| 国产日产精品久久久久久婷婷| 久久精品日产第一区二区| 亚洲欧洲午夜一线一品| 韩国一区二区av| 久久一区二区免费播放| 日韩综合久久| 国产精品理论片在线观看| 国产剧情日韩欧美| 日韩av手机在线免费观看| 在线免费观看h| 亚洲精品综合| 宅男66日本亚洲欧美视频| 伊人网在线综合| 天堂午夜在线| 青草国产精品| 欧美一卡二卡三卡| 午夜精品久久久久久久无码| 成人综合社区| 成人香蕉社区| 在线观看欧美日本| 中文字幕在线乱| 天堂中文字幕av| 亚州一区二区| 精品久久久久久久久久久| 日韩中文字幕一区| 丰满人妻av一区二区三区| 主播大秀视频在线观看一区二区| 亚洲人吸女人奶水| 国产在线一区二区三区欧美| 最新中文字幕第一页| 最新中文字幕在线播放| 国产精品天美传媒沈樵| 99久久国产免费免费| 91视频免费网址| 日本乱码一区二区三区不卡| 成人免费小视频| 欧美亚洲另类在线一区二区三区| 国产日韩在线观看一区| 精品一区二区三区中文字幕在线| 精品久久久中文| 亚洲成年人专区| 影音先锋中文资源站| 欧洲亚洲视频| 欧美大片日本大片免费观看| 一道本在线免费视频| eeuss第一页| 国产欧美精品| 57pao国产成人免费| 久久久久久久久精| gratisvideos另类灌满| 亚洲日本丝袜连裤袜办公室| 欧美午夜精品理论片a级大开眼界| 国产香蕉在线观看| 欧美1区二区| 日韩精品免费综合视频在线播放 | 久草在线在线精品观看| 国产成+人+综合+亚洲欧美丁香花| 久久久久久久蜜桃| 综合日韩av| 色婷婷精品大在线视频 | 五月天婷婷社区| 中文字幕伦av一区二区邻居| 亚洲美女激情视频| 免费观看a级片| 成人影音在线| 亚洲高清免费观看| jizzjizzxxxx| 日本成在线观看| 成人高清视频在线| 免费观看成人在线| 欧美xx在线| 亚洲自拍另类| 国产在线精品成人一区二区三区| 中文字幕永久在线观看| 人妖一区二区三区| 亚洲乱码国产乱码精品精天堂| 素人fc2av清纯18岁| 成人无遮挡免费网站视频在线观看| 中文字幕一区免费在线观看 | www三级免费| 97偷自拍亚洲综合二区| 粉嫩13p一区二区三区| 亚洲qvod图片区电影| 亚洲av色香蕉一区二区三区| 欧美精品一区二区久久| 色狠狠久久aa北条麻妃| 黄色一级视频在线观看| 国产一区二区色噜噜| 欧美精品一区二区三区蜜桃| 超薄肉色丝袜一二三| 亚洲美女尤物影院| 678五月天丁香亚洲综合网| 亚洲少妇18p| 国产高清自产拍av在线| 91精品国产一区二区人妖| 久久久久久久久久久国产精品| 超黄网站在线观看| 欧美年轻男男videosbes| 一级性生活毛片| 欧美成人黑人| 亚洲国产欧美久久| 国产1区2区3区4区| 亚洲精品不卡在线观看| 日韩在线欧美在线国产在线| 国产一级免费视频| 欧美一级精品片在线看| 欧洲日本亚洲国产区| 日批免费在线观看| 激情综合自拍| 俄罗斯精品一区二区三区| 91在线资源站| 99久久99久久综合| 成人黄色av片| 在线免费观看黄色网址| 欧美性色黄大片手机版| 人成免费在线视频| 香蕉大人久久国产成人av| 久久久久在线观看| 日本免费一区视频| 麻豆精品在线观看| 伊人久久大香线蕉成人综合网| 黄色直播在线| 欧美日韩在线第一页| 欧美黄色激情视频| 国产精品xxxav免费视频| 91国内精品久久| 欧美高清3dfreexxxx性| 99re成人在线| 国产精品视频分类| 人成在线免费网站| 在线观看欧美成人| 国产精品毛片一区视频播| 午夜在线视频观看日韩17c| 日本欧美精品久久久| 有色激情视频免费在线| 色婷婷亚洲精品| 91精品国产高清一区二区三蜜臀| 黑丝美女一区二区| 国产日韩换脸av一区在线观看| free欧美性| 中文av一区二区| 朝桐光av一区二区三区| 91精品国产自产在线丝袜啪 | 亚洲一区二区三区综合| 精品久久毛片| 韩国国内大量揄拍精品视频| 中文字幕av手机在线| 99久久伊人精品| 福利片一区二区三区| 欧美在线va视频| 国产91对白在线播放| 俄罗斯性欧美| 亚洲美女视频一区| 精品国产aaa| 99久久婷婷国产综合精品电影√| 精品国产一区二区三区麻豆免费观看完整版 | 国产日韩欧美精品一区| 自拍偷拍激情视频| 亚洲精品成a人ⅴ香蕉片| 51视频国产精品一区二区| 尤物在线视频观看| 一区二区三区四区蜜桃|