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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2543|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)掃地機(jī)器人程序有問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:391877 發(fā)表于 2018-10-24 23:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
請(qǐng)求大佬幫忙看一下程序 程序廢真的整不出來(lái)
我想的是這個(gè)小車可以直接用藍(lán)牙遙控(用手機(jī)app操控)著走動(dòng) 也可以按一下app上一個(gè)按鍵(參考程序的case5)可以自動(dòng)清掃 加了驅(qū)動(dòng) 最小系統(tǒng) 避障模塊 就是程序整不了了 希望大佬們幫忙看一下 代碼沒(méi)有寫(xiě)完 如下:
  1. #include<reg52.h>
  2. typedef unsigned int uint;
  3. typedef unsigned char uchar;

  4. sbit ZA1A=P1^0;
  5. sbit ZA1B=P1^1;
  6. sbit ZB1A=P1^2;
  7. sbit ZB1B=P1^3;
  8. sbit YA1A=P1^4;
  9. sbit YA1B=P1^5;
  10. sbit YB1A=P1^6;
  11. sbit YB1B=P1^7;
  12. sbit Trig = P3^2 ;
  13. sbit Echo = P3^3 ;



  14. uchar rev=0; //藍(lán)牙接收緩存值
  15. bit rok=0;        //接收標(biāo)志
  16. /********************************************************************
  17. * 名稱 :qianjin()
  18. * 功能 : 電機(jī)1、2啟動(dòng),都是前進(jìn),整車表現(xiàn)為前進(jìn)。
  19. * 輸入 : 無(wú)
  20. * 輸出 : 無(wú)                                                                       
  21. ***********************************************************************/
  22. void qianjin(){
  23.      ZA1A=0;
  24.          ZA1B=1;
  25.          ZB1A=0;
  26.      ZB1B=1;
  27.      YA1A=0;
  28.      YA1B=1;
  29.      YB1A=0;
  30.      YB1B=1;
  31. }
  32. void houtui(){
  33.          ZA1A=1;
  34.          ZA1B=0;
  35.          ZB1A=1;
  36.      ZB1B=0;
  37.      YA1A=1;
  38.      YA1B=0;
  39.      YB1A=1;
  40.      YB1B=0;
  41. }
  42. void zuozhuan(){
  43.          ZA1A=1;
  44.          ZA1B=0;
  45.          ZB1A=1;
  46.      ZB1B=0;
  47.      YA1A=0;
  48.      YA1B=1;
  49.      YB1A=0;
  50.      YB1B=1;
  51. }
  52. void youzhuan(){
  53.          ZA1A=0;
  54.          ZA1B=1;
  55.          ZB1A=0;
  56.      ZB1B=1;
  57.      YA1A=1;
  58.      YA1B=0;
  59.      YB1A=1;
  60.      YB1B=0;
  61. }

  62. void tingche(){
  63.             ZA1A=0;
  64.          ZA1B=0;
  65.          ZB1A=0;
  66.      ZB1B=0;
  67.      YA1A=0;
  68.      YA1B=0;
  69.      YB1A=0;
  70.      YB1B=0;
  71. }

  72. void chaoshengbo ()
  73. {
  74.     TR0=0;           //定時(shí)器開(kāi)關(guān)
  75.         TH0=0;
  76.         TL0=0;

  77.     Trig=0;
  78.            Echo=0;
  79.         Trig=1;
  80.         DelayUs2x(20);
  81.         Trig=0;
  82.         while(Echo==0); //等待Echo回波引腳變高電平
  83.         TR0=1;           //定時(shí)器0開(kāi)關(guān)打開(kāi)
  84.         while(Echo); //等待
  85.         time=TH0*256+TL0; //*256是16位計(jì)數(shù)器的高8位和低八位之分.恢復(fù)成16位數(shù)的時(shí)候要*256。讀取脈寬長(zhǎng)度
  86.         S=time*0.0172;  //(厘米)*0.0172,根據(jù)超聲的聲速,單片機(jī)的頻率,得出來(lái)的一個(gè)系數(shù).
  87.         if(S>400)S=400;
  88.   }

  89. void bizhang()                                                //避障功能
  90. {  
  91.       
  92.            if(S<=10)                  //距離小于15CM
  93.                    {
  94.                        tingche();          //小車停止
  95.                                            zuozhuan();
  96.                                            delay(1000);
  97.                                            chaoshengbo();
  98.                                            szuo=s;
  99.                                            youzhuan(2000);
  100.                                            chaoshengbo();
  101.                                            syou=s;
  102.                                            zuozhuan(1000);
  103.                                            if(szuo>=syou){
  104.                                               zuozhuan();
  105.                                                   delay(2000);
  106.                                                   else if(szuo<syou){
  107.                                                          youzhuan();
  108.                                                                  delay(2000);
  109.                                                   }
  110.                                            }
  111.                    }
  112.                    else if(S>15)                  //距離大于,30CM往前走
  113.                    qianjin();
  114.                           
  115.            }                     

  116. void suiyuanqingsao(){
  117. qianjin();
  118. }


  119. }

  120. void COMM( void ) //到達(dá)某一位置后左右前后測(cè)距判斷應(yīng)該怎么走
  121. {
  122. chaoshengbo();//超聲波測(cè)距如果還可以直行則直行,不能直行的話判斷應(yīng)該左轉(zhuǎn)還是右轉(zhuǎn)
  123. {if(s>5){
  124. qianjin();
  125. delay(500);
  126. zuoyouzhuanceju();
  127. }
  128. else if(){
  129. tingche();
  130. zuoyouzhaunceju();
  131. }
  132. }
  133. void zuoyouzhuanceju()
  134. {tingche();
  135. zuozhuan();
  136. delay(1000);//需要計(jì)算時(shí)間
  137. chaoshengbo(); //啟動(dòng)超聲波測(cè)距
  138. S2=S;
  139. youzhuan();//小車向右轉(zhuǎn)180度
  140. delay(2000);
  141. chaoshengbo(); //啟動(dòng)超聲波測(cè)距
  142. S4=S;
  143. zuozhuan();//測(cè)完距離后讓小車回到原前進(jìn)方向
  144. delay(1000);
  145. chaoshengbo() //啟動(dòng)超聲波測(cè)距
  146. S1=S;
  147. if((S2<15)||(S4<15)) //只要左右各有距離小于15CM小車后退
  148. {
  149. houtui(); //后退
  150. }

  151. if(S2>S4)
  152. {
  153. youzhuan(); //車的左邊比車的右邊距離小 右轉(zhuǎn)
  154. delay(1000);
  155. }
  156. else
  157. {
  158. zuozhuan(); //車的左邊比車的右邊距離大 左轉(zhuǎn)
  159. delay(1000);
  160. }
  161. }

  162. /********************************************************************
  163. * 名稱 : Com_Init()
  164. * 功能 : 串口初始化,晶振11.0592,波特率9600,使串口中斷
  165. * 輸入 : 無(wú)
  166. * 輸出 : 無(wú)
  167. ***********************************************************************/
  168. void Com_Init(void)
  169. {
  170.         TMOD = 0x20;
  171.         PCON = 0x00;
  172.         SCON = 0x50; //0101 000設(shè)置串行口控制寄存器sm0,sm1為01,即為工作方式1
  173.         TH1 = 0xFd; //設(shè)置波特率 9600
  174.         TL1 = 0xFd;
  175.         TR1 = 1; //啟動(dòng)定時(shí)器1
  176.         ES = 1; //開(kāi)串口中斷
  177.         EA = 1; //開(kāi)總中斷
  178. }

  179. void gongneng()
  180. {
  181.   switch(rev)
  182.                 {
  183.                         case '0': tingche(); break;
  184.                         case '1': qianjin(); break;
  185.                         case '2': houtui(); break;
  186.                         case '3': zuozhuan(); break;
  187.                         case '4': youzhuan(); break;
  188.             case ’5’:suiyuanqingsao();break;
  189.                         default:break;
  190.                 }
  191.   rok=0;
  192. }

  193. void main()
  194. {
  195.     Com_Init();//初始化                                                                                       
  196.     while(1)//循環(huán)結(jié)構(gòu),選擇函數(shù)控制小車的狀態(tài)
  197.         {
  198.           if(rok)gongneng();
  199.         }
  200. }
  201. /********************************************************************
  202. * 名稱 : Com_Int()
  203. * 功能 : 串口中斷子函數(shù)
  204. * 輸入 : 無(wú)
  205. * 輸出 : 無(wú)
  206. ***********************************************************************/
  207. void Com_Int(void) interrupt 4
  208. {
  209.         ES = 0;
  210.         if(RI) //當(dāng)硬件接收到一個(gè)數(shù)據(jù)時(shí),RI會(huì)置位
  211.                 {
  212.                 rev=SBUF;
  213.                 RI = 0;//取消本次中斷申請(qǐng),方便進(jìn)入下一次
  214.                 rok=1;
  215.                 }
  216.         ES = 1;               
  217. }
復(fù)制代碼



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

使用道具 舉報(bào)

沙發(fā)
ID:547750 發(fā)表于 2019-5-26 18:52 | 只看該作者
你好   請(qǐng)問(wèn)你這個(gè)硬件設(shè)計(jì)里有幾個(gè)電機(jī)啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区在线播放 | 久久久www成人免费精品张筱雨 | 青青草原综合久久大伊人精品 | 欧美在线一区二区三区 | 色999日韩 | 日日操操操 | 国产三区av | 久草视频在线播放 | 国产精品不卡一区 | 日韩精品一区二区三区在线观看 | 精产嫩模国品一二三区 | 国产精品中文字幕一区二区三区 | a级片播放 | 一区二区免费 | 日韩毛片网 | 欧美9999 | 日韩中文字幕在线 | 日韩电影一区二区三区 | 国产激情一区二区三区 | 涩涩视频在线观看 | 真人毛片 | 超碰免费在线观看 | 97日韩精品| 91大神新作在线观看 | 一级全黄视频 | 亚洲国产午夜 | 国产精品一区二区三区久久 | 欧美在线一区二区三区 | 欧美视频一区 | 麻豆久久精品 | 91成人在线视频 | 四虎影音 | 中文字幕视频在线 | 亚洲一本| 日韩免费一区二区 | 91亚洲国产成人精品一区二三 | 国产欧美日韩精品在线观看 | 久久久久久免费精品一区二区三区 | 国产精品黄色 | 黄免费观看视频 | 欧美视频一区二区三区 |