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

QQ登錄

只需一步,快速開始

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

藍(lán)牙小車接線圖及資料與程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
組裝接線圖:


單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit In1=P2^0;
  5. sbit In2=P2^1;
  6. sbit In3=P2^2;
  7. sbit In4=P2^3;
  8. uchar a=0;
  9. void delay(uint z)
  10. {
  11.         int i,j;
  12.         for(i=10;i>0;i--)
  13.                 for(j=z;j>0;j--);               
  14. }
  15. void init()//初始化子程序
  16. {
  17.         TMOD=0x20; //設(shè)置定時(shí)器T1為工作方式2
  18.         TH1=0xfd;
  19.         TL1=0xfd;//T1定時(shí)器裝初值
  20.         TR1=1;//啟動(dòng)定時(shí)器T1                                                  
  21.         REN=1;//允許串口接收
  22.         SM0=0;
  23.         SM1=1;//設(shè)置串口工作方式1
  24.         EA=1; //開總中斷                                                                                                                                                                                                                                                                              
  25.         ES=1;//開串口中斷
  26. }
  27. void go()
  28. {
  29.         In1=0;
  30.         In2=1;//左邊輪子正轉(zhuǎn)
  31.         delay(60);//PWM有用值,越大左邊輪子轉(zhuǎn)得越快
  32.         In1=1;//關(guān)閉左邊輪子

  33.         In3=0;
  34.         In4=1;//右邊輪子正轉(zhuǎn)
  35.         delay(60);//PWM有用值,越大右邊的輪子越快
  36.         In3=1;//關(guān)閉右邊輪子
  37.         delay(100);//PWM無用值,越大,小車跑的越慢
  38. }
  39. void hou()
  40. {
  41.         In1=1;
  42.         In2=0;//左邊輪子倒轉(zhuǎn)
  43.         delay(60);//PWM有用值,越大左邊輪子越快
  44.         In2=1;//關(guān)閉左邊輪子

  45.         In3=1;
  46.         In4=0;//右邊輪子倒轉(zhuǎn)
  47.         delay(60);//PWM有用值,越大右邊輪子越快
  48.         In4=1;//關(guān)閉右邊輪子
  49.         delay(100);//PWM無用值,越大,小車跑的越慢
  50. }
  51. void left()//小車左轉(zhuǎn)程序
  52. {
  53.         In1=1;
  54.         In2=0;        //左輪制動(dòng)
  55.         delay(35);
  56.         In2=1;

  57.         In3=0;
  58.         In4=1;        //右輪正轉(zhuǎn)
  59.         delay(35); //PWM有用值,越大,右輪越快
  60.         In3=1;           //右輪停止

  61.         delay(100);//PWM無用值,越大,小車跑的越慢
  62. }

  63. void right()//小車右轉(zhuǎn)程序
  64. {
  65.         In1=0;
  66.         In2=1;        // 左邊輪子正轉(zhuǎn)
  67.         delay(35);//PWM有用值,越大,左邊輪子越快

  68.         In1=1;        // 左輪停止

  69.         In3=1;
  70.         In4=0;          //右輪停止
  71.         delay(35);
  72.         In4=1;

  73.         delay(100);//        PWM無用值,越大,小車跑的越慢
  74. }

  75. void down()//停止程序
  76. {
  77.         In1=1;
  78.         In2=1;
  79.         In3=1;
  80.         In4=1;
  81. }

  82. void main()//主程序
  83. {      
  84.         init();//調(diào)用初始化子程序
  85.         while(1) //死循環(huán)
  86.         {
  87.                 switch(a)//判斷a從串口讀取到的數(shù)據(jù)
  88.                 {
  89.                 case 0x2f: //0x1f 前進(jìn)
  90.                 go();
  91.                 break;
  92.                
  93.                 case 0x1f: //0x2f 后退
  94.                 hou();
  95.                 break;
  96.                
  97.                 case 0x3f: // 0x3f 左轉(zhuǎn)
  98.                 left();
  99.                 break;
  100.                
  101.                 case 0x4f: //0x4f右轉(zhuǎn)
  102.                 right();
  103.                 break;
  104.                
  105.                 case 0x00: //0x00停止
  106.                 down();
  107.                 break;
  108.                 }
  109.                        
  110.         }
  111. }


  112. void chuan()interrupt 4//串口中斷服務(wù)
  113. {
  114.         RI=0;//軟件清除串口響應(yīng)
  115.         a=SBUF;//讀取單片機(jī)串口接收的藍(lán)牙模塊發(fā)送的數(shù)據(jù)
  116. }

復(fù)制代碼

所有資料51hei提供下載:
手機(jī)藍(lán)牙遙控車.doc (517.5 KB, 下載次數(shù): 25)
L298N的詳細(xì)資料.doc (1.37 MB, 下載次數(shù): 15)


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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