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

QQ登錄

只需一步,快速開始

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

用手機(jī)控制的藍(lán)牙小車制作教程與單片機(jī)源碼及APP等資料

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
只是簡(jiǎn)單的用手機(jī)控制小車前進(jìn),后退,轉(zhuǎn)彎
有什么不懂得請(qǐng)留言

電路原理圖如下:


安卓app:


實(shí)物圖:


藍(lán)牙小車單片機(jī)源程序如下:
  1. #include <reg51.h>

  2. void UsartConfiguration();
  3. unsigned char num;


  4. void delay(unsigned int i)                //延時(shí)函數(shù),下面我說的500毫秒,現(xiàn)實(shí)不是500毫秒,方便大家理解而已
  5. {
  6.         unsigned int k;
  7.         for (k=0;k<i;k++);
  8. }


  9. void main()                        //主函數(shù)
  10. {

  11.         UsartConfiguration();                                //調(diào)用藍(lán)牙接受的參數(shù)

  12.         while(1)
  13.         {
  14. /**********************直走*************************************/
  15.                 if(num == 'q')                                //如果藍(lán)牙接收到q字母,就執(zhí)行下面的指令
  16.                 {
  17.                         delay(500);                                        //延時(shí)一下
  18.                         if(num == 'q')
  19.                         {                                                                                                        //p1        1 1 1 1                        分別對(duì)應(yīng)1234號(hào)馬達(dá)
  20.                                 P1=0x0f;                                                                //                0 0 0 0                        上面是高電平,下面是低電平,四個(gè)馬達(dá)都會(huì)向前開
  21.                                 delay(500);                                                        //延時(shí)降速,如果L298N是接12V的電源,那么馬達(dá)的電壓是12v,速度太快了,需要降速
  22.                                 P1=0x00;                                                                //這里降速的原理是讓馬達(dá)轉(zhuǎn)500毫秒,停一下,轉(zhuǎn)500毫秒,停一下,轉(zhuǎn)500毫秒,停一下,從而達(dá)到降速的效果
  23.                         }
  24.                 }
  25. /*****************************后退    ***************/
  26.                
  27.                 if(num == 'h')                        //如果藍(lán)牙接收到h字母,就執(zhí)行下面的指令
  28.                 {
  29.                         delay(500);
  30.                         if(num == 'h')
  31.                         {                                                                                                                                        //p1        0 0 0 0                        分別對(duì)應(yīng)1234號(hào)馬達(dá)
  32.                                 P1=0xf0;                                                                                                //                1 1 1 1                        上面是低電平,下面是高電平,四個(gè)馬達(dá)都會(huì)向后開
  33.                                 delay(500);
  34.                                 P1=0x00;
  35.                         }
  36.                 }
  37. /*****************原地左轉(zhuǎn)  原地左轉(zhuǎn)  原地左轉(zhuǎn)  原地左轉(zhuǎn)  原地左轉(zhuǎn)  原地左轉(zhuǎn)  原地左轉(zhuǎn)  原地左轉(zhuǎn)  原地左轉(zhuǎn)  *****************/
  38.                
  39.                 if(num == 'z')                                        //如果藍(lán)牙接收到z字母,就執(zhí)行下面的指令
  40.                 {
  41.                         delay(500);
  42.                         if(num == 'z')
  43.                         {                                                                                                                //p1  0 1 0 1                                馬達(dá)2 4向前開,馬達(dá)1 3向后開
  44.                                 P1=0x5a;                                                                        //    1 0 1 0
  45.                                 delay(500);
  46.                                 P1=0x00;
  47.                         }
  48.                 }
  49. /****************原地右轉(zhuǎn)   ************************************/
  50.                 if(num == 'y')                                        //如果藍(lán)牙接收到y(tǒng)字母,就執(zhí)行下面的指令
  51.                 {
  52.                         delay(500);
  53.                         if(num == 'y')
  54.                         {                                                                                                                //P1 1 0 1 0                        馬達(dá)13向前開,馬達(dá)24向后開
  55.                                 P1=0xa5;                                                                        //         0 1 0 1
  56.                                 delay(500);
  57.                                 P1=0x00;
  58.                         }
  59.                 }
  60. /****************向左開  ******************************/
  61.                
  62.                 if(num == 'a')                                        //如果藍(lán)牙接收到a字母,就執(zhí)行下面的指令
  63.                 {
  64.                         delay(500);
  65.                         if(num == 'a')
  66.                         {
  67.                                 P1=0x5a;                                                //小車左轉(zhuǎn)600毫秒
  68.                                 delay(600);
  69.                                 P1=0x0f;                                                //小車直行1200毫秒
  70.                                 delay(1200);
  71.                                 P1=0x00;        
  72.                                 
  73.                         }
  74.                 }
  75. /****************向右開*****************************/
  76.                 if(num == 'b')                                        //如果藍(lán)牙接收到b字母,就執(zhí)行下面的指令
  77.                 {
  78.                         delay(500);
  79.                         if(num == 'b')
  80.                         {
  81.                                 P1=0xa5;
  82.                                 delay(600);
  83.                                 P1=0x0f;
  84.                                 delay(1200);
  85.                                 P1=0x00;        
  86.                         }
  87.                 }
  88. /******************沒指令的時(shí)候停車***************************/
  89.                
  90.                 if(num == '0')                                        //如果藍(lán)牙接收到數(shù)字0,就執(zhí)行下面的指令
  91.                 {
  92.                         P1=0x00;                                                        //p1的8個(gè)口都是低電平,小車停下來
  93.                 }
  94.         }

  95. }



  96. void UsartConfiguration()
  97. {

  98.         SCON=0x50;                //設(shè)置為工作方式1               

  99.         TMOD=0x20;                //設(shè)置為工作方式2

  100. //        PCON=0x80;                //波特率加倍

  101.         TH1=0xFD;                //計(jì)數(shù)器初值設(shè)置,波特率是4800

  102.         TL1=0xFD;

  103.         ES=1;                        //開中斷

  104.         EA=1;                                                

  105.         TR1=1;                        //開計(jì)數(shù)器

  106. }

  107. void interrupt_uart() interrupt 4 //using1切換寄存器組到1,進(jìn)入中斷就要判斷是發(fā)送中斷TI,還是接收中斷RI。
  108. {   
  109.     if(TI)  //判斷是否為發(fā)送端TI中斷,中斷結(jié)束之后,只需發(fā)送端清零,表示發(fā)送完成。
  110.    {
  111.      TI = 0;
  112.      REN = 1;  // ******允許接收數(shù)據(jù)。 *******
  113.    }         
  114.    if(RI) //判斷是否為接收端RI中斷,中斷結(jié)束之后,只需接收端清零,表示接收完成。
  115.    {
  116.      RI = 0; //只要數(shù)據(jù)接收端清零,就可以取出數(shù)據(jù)。
  117.            num = SBUF;         //SBUF取數(shù)據(jù)            
  118.            SBUF = num;         //*******把數(shù)據(jù)num從SBUF送出去。************
  119.            REN = 0;        //嚴(yán)謹(jǐn)?shù)膶懛,發(fā)送數(shù)據(jù)的時(shí)候禁止接收數(shù)據(jù)。
  120.    }
  121.         //發(fā)送的時(shí)候不接收數(shù)據(jù) ,發(fā)送完了再接收數(shù)據(jù)。            
  122. }
復(fù)制代碼


所有資料51hei提供下載:
藍(lán)牙小車教程.rar (7.76 MB, 下載次數(shù): 346)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:192020 發(fā)表于 2018-10-16 13:03 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

板凳
ID:413883 發(fā)表于 2018-10-23 10:43 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

地板
ID:351567 發(fā)表于 2018-11-16 21:21 | 只看該作者
app在哪下載
回復(fù)

使用道具 舉報(bào)

5#
ID:429579 發(fā)表于 2018-11-19 22:55 | 只看該作者
想學(xué)習(xí)一下,但是不懂編程
回復(fù)

使用道具 舉報(bào)

6#
ID:435149 發(fā)表于 2018-11-28 20:10 | 只看該作者
小車用的什么芯片
回復(fù)

使用道具 舉報(bào)

7#
ID:383374 發(fā)表于 2018-12-10 22:30 | 只看該作者
白白下,根本就是沒有用的東西

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
lxa0 + 10 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

8#
ID:383374 發(fā)表于 2018-12-10 22:31 | 只看該作者
沒用,藍(lán)牙源代碼都沒有
回復(fù)

使用道具 舉報(bào)

9#
ID:546398 發(fā)表于 2019-5-24 17:01 | 只看該作者
謝謝樓主的分享
回復(fù)

使用道具 舉報(bào)

10#
ID:706455 發(fā)表于 2020-3-11 16:03 | 只看該作者
還不錯(cuò)噢。。!
回復(fù)

使用道具 舉報(bào)

11#
ID:707033 發(fā)表于 2020-3-12 15:05 | 只看該作者
果斷收藏贊
回復(fù)

使用道具 舉報(bào)

12#
ID:702057 發(fā)表于 2020-3-13 11:07 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

13#
ID:618406 發(fā)表于 2020-4-27 13:46 | 只看該作者
果斷收藏贊
回復(fù)

使用道具 舉報(bào)

14#
ID:74784 發(fā)表于 2021-3-8 23:54 | 只看該作者
白白下,根本就是沒有用的東西!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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