欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2690|回復: 0
打印 上一主題 下一主題
收起左側

藍牙單片機控制小車地盤源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:360610 發表于 2018-7-3 17:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

  1. /************************************
  2. 課題:藍牙控制小車
  3. 效果:小車能與手機藍牙連接,實現前進、后退、左轉、右轉、開燈、鳴笛、轉向燈、重力感應控制等功能。
  4. 作者:change
  5. 店鋪:穿山乙電子
  6. 硬件鏈接:
  7.         左電機控制端口:P0.0、P0.1
  8.         右電機控制端口:P0.2、P0.3                     
  9. *************************************/

  10. #include<reg52.h>//聲明頭文件
  11. #define uchar unsigned char//宏定義
  12. #define uint unsigned int//宏定義
  13. #define aa 35//左輪速度調節值
  14. #define bb 35//右輪速度調節值

  15. sbit deng=P2^0;//前車燈
  16. sbit y=P2^1;//右轉向燈
  17. sbit z=P2^2;//左轉向燈
  18. sbit BEEP=P2^3;//蜂鳴器

  19. sbit you1=P0^3;//右輪正轉信號端
  20. sbit you2=P0^2;//右輪倒轉信號端
  21. sbit zuo1=P0^1;//左輪正轉信號端
  22. sbit zuo2=P0^0;//左輪倒轉信號端

  23. uchar a=0;//定義一個變量a,用來讀取串口的數據

  24. void delay(uint z)//一個帶參數的延時程序
  25. {
  26.         int i,j;//定義兩個變量
  27.         for(i=10;i>0;i--)
  28.         for(j=z;j>0;j--);//將參數z賦值給j
  29. }

  30. void init()//初始化子程序
  31. {
  32.         TMOD=0x20;//設置定時器T1為工作方式2
  33.         TH1=0xfd;
  34.         TL1=0xfd;//T1定時器裝初值
  35.         TR1=1;//啟動定時器T1
  36.         REN=1;//允許串口接收
  37.         SM0=0;
  38.         SM1=1;//設置串口工作方式1
  39.         EA=1;//開總中斷
  40.         ES=1;//開串口中斷
  41. }

  42. void go1()//前進子程序
  43. {
  44.         zuo1=1;
  45.         zuo2=0;//左邊輪子正轉
  46.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  47.         zuo2=1;//關閉左邊輪子

  48.         you1=1;
  49.         you2=0;        //右邊輪子正轉
  50.         delay(bb);//pwm有用值,越大右邊的輪子越快
  51.         you2=1;//關閉右邊輪子

  52.         delay(100);//pwm無用值,越大,小車跑的越慢
  53.         z=1;
  54.         y=1;//關閉轉向燈
  55. }

  56. void go2()//前進子程序
  57. {
  58.         zuo1=1;
  59.         zuo2=0;//左邊輪子正轉
  60.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  61.         zuo2=1;//關閉左邊輪子

  62.         you1=1;
  63.         you2=0;        //右邊輪子正轉
  64.         delay(bb);//pwm有用值,越大右邊的輪子越快
  65.         you2=1;//關閉右邊輪子

  66.         delay(80);//pwm無用值,越大,小車跑的越慢
  67.         z=1;
  68.         y=1;//關閉轉向燈
  69. }

  70. void go3()//前進子程序
  71. {
  72.         zuo1=1;
  73.         zuo2=0;//左邊輪子正轉
  74.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  75.         zuo2=1;//關閉左邊輪子

  76.         you1=1;
  77.         you2=0;        //右邊輪子正轉
  78.         delay(bb);//pwm有用值,越大右邊的輪子越快
  79.         you2=1;//關閉右邊輪子

  80.         delay(60);//pwm無用值,越大,小車跑的越慢
  81.         z=1;
  82.         y=1;//關閉轉向燈
  83. }

  84. void go4()//前進子程序
  85. {
  86.         zuo1=1;
  87.         zuo2=0;//左邊輪子正轉
  88.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  89.         zuo2=1;//關閉左邊輪子

  90.         you1=1;
  91.         you2=0;        //右邊輪子正轉
  92.         delay(bb);//pwm有用值,越大右邊的輪子越快
  93.         you2=1;//關閉右邊輪子

  94.         delay(40);//pwm無用值,越大,小車跑的越慢
  95.         z=1;
  96.         y=1;//關閉轉向燈
  97. }

  98. void go5()//前進子程序
  99. {
  100.         zuo1=1;
  101.         zuo2=0;//左邊輪子正轉
  102.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  103.         zuo2=1;//關閉左邊輪子

  104.         you1=1;
  105.         you2=0;        //右邊輪子正轉
  106.         delay(bb);//pwm有用值,越大右邊的輪子越快
  107.         you2=1;//關閉右邊輪子

  108.         delay(20);//pwm無用值,越大,小車跑的越慢
  109.         z=1;
  110.         y=1;//關閉轉向燈
  111. }

  112. void go6()//前進子程序
  113. {
  114.         zuo1=1;
  115.         zuo2=0;//左邊輪子正轉
  116.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  117.         zuo2=1;//關閉左邊輪子

  118.         you1=1;
  119.         you2=0;        //右邊輪子正轉
  120.         delay(bb);//pwm有用值,越大右邊的輪子越快
  121.         you2=1;//關閉右邊輪子

  122.         z=1;
  123.         y=1;//關閉轉向燈
  124. }

  125. void hui1()//小車后退的子程序
  126. {
  127.         zuo1=0;
  128.         zuo2=1;//左邊輪子倒轉
  129.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  130.         zuo1=1;//關閉左邊輪子

  131.         you1=0;
  132.         you2=1;        //右邊輪子倒轉
  133.         delay(bb);//pwm有用值,越大右邊的輪子越快
  134.         you1=1;//關閉右邊輪子

  135.         delay(100);//pwm無用值,越大,小車跑的越慢
  136.         z=1;
  137.         y=1;//關閉轉向燈
  138. }

  139. void hui2()//小車后退的子程序
  140. {
  141.         zuo1=0;
  142.         zuo2=1;//左邊輪子倒轉
  143.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  144.         zuo1=1;//關閉左邊輪子

  145.         you1=0;
  146.         you2=1;        //右邊輪子倒轉
  147.         delay(bb);//pwm有用值,越大右邊的輪子越快
  148.         you1=1;//關閉右邊輪子

  149.         delay(80);//pwm無用值,越大,小車跑的越慢
  150.         z=1;
  151.         y=1;//關閉轉向燈
  152. }

  153. void hui3()//小車后退的子程序
  154. {
  155.         zuo1=0;
  156.         zuo2=1;//左邊輪子倒轉
  157.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  158.         zuo1=1;//關閉左邊輪子

  159.         you1=0;
  160.         you2=1;        //右邊輪子倒轉
  161.         delay(bb);//pwm有用值,越大右邊的輪子越快
  162.         you1=1;//關閉右邊輪子

  163.         delay(60);//pwm無用值,越大,小車跑的越慢
  164.         z=1;
  165.         y=1;//關閉轉向燈
  166. }

  167. void hui4()//小車后退的子程序
  168. {
  169.         zuo1=0;
  170.         zuo2=1;//左邊輪子倒轉
  171.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  172.         zuo1=1;//關閉左邊輪子

  173.         you1=0;
  174.         you2=1;        //右邊輪子倒轉
  175.         delay(bb);//pwm有用值,越大右邊的輪子越快
  176.         you1=1;//關閉右邊輪子

  177.         delay(40);//pwm無用值,越大,小車跑的越慢
  178.         z=1;
  179.         y=1;//關閉轉向燈
  180. }
  181. void hui5()//小車后退的子程序
  182. {
  183.         zuo1=0;
  184.         zuo2=1;//左邊輪子倒轉
  185.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  186.         zuo1=1;//關閉左邊輪子

  187.         you1=0;
  188.         you2=1;        //右邊輪子倒轉
  189.         delay(bb);//pwm有用值,越大右邊的輪子越快
  190.         you1=1;//關閉右邊輪子

  191.         delay(20);//pwm無用值,越大,小車跑的越慢
  192.         z=1;
  193.         y=1;//關閉轉向燈
  194. }
  195. void hui6()//小車后退的子程序
  196. {
  197.         zuo1=0;
  198.         zuo2=1;//左邊輪子倒轉
  199.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  200.         zuo1=1;//關閉左邊輪子

  201.         you1=0;
  202.         you2=1;        //右邊輪子倒轉
  203.         delay(bb);//pwm有用值,越大右邊的輪子越快
  204.         you1=1;//關閉右邊輪子

  205.         z=1;
  206.         y=1;//關閉轉向燈
  207. }

  208. void turnleft()//小車左轉彎子程序
  209. {
  210.         
  211.         z=~z;//左轉向燈打開

  212.         zuo1=1;
  213.         zuo2=1;//左邊輪子停止轉動
  214.         you1=1;
  215.         you2=0;        //右邊輪子正轉
  216.         delay(bb);//pwm有用值,越大右邊的輪子越快
  217.         you2=1;//右邊輪子停止
  218.         delay(50);//pwm無用值,越大,小車跑的越慢
  219.         
  220.         z=1;
  221.         y=1;//關閉轉向燈
  222. }

  223. void turnright()//小車右轉彎子程序
  224. {
  225.         y=~y;//右轉向燈打開

  226.         zuo1=1;
  227.         zuo2=0;//左邊輪子正轉
  228.         delay(aa);//pwm有用值,越大左邊方向的輪子越快
  229.         zuo2=1;//左邊輪子停止

  230.         you1=1;
  231.         you2=1;        //右邊輪子停止
  232.         delay(50);//pwm無用值,越大,小車跑的越慢
  233.         z=1;
  234.         y=1;//關閉轉向燈
  235.         
  236. }
  237. void down()//停止子程序
  238. {
  239.         zuo1=1;
  240.         zuo2=1;
  241.         you1=1;
  242.         you2=1;        //左右輪全部停止
  243.         z=1;
  244.         y=1;//關閉轉向燈
  245. }

  246. void main()//主程序
  247. {
  248.         init();//調用初始化子程序
  249.         while(1)//死循環
  250.         {
  251.                     if(a==0x14||a==0x15||a==0x54||a==0x55||a==0x64||a==0x65)//如果是就前進
  252.                         go1();
  253.                         if(a==0x16||a==0x17||a==0x56||a==0x57||a==0x66||a==0x67)//如果是就前進
  254.                         go2();
  255.                         if(a==0x18||a==0x19||a==0x58||a==0x59||a==0x68||a==0x69)//如果是就前進
  256.                         go3();
  257.                         if(a==0x1a||a==0x1b||a==0x5a||a==0x5b||a==0x6a||a==0x6b)//如果是就前進
  258.                         go4();
  259.                         if(a==0x1c||a==0x1d||a==0x5c||a==0x5d||a==0x6c||a==0x6d)//如果是就前進
  260.                         go5();
  261.                         if(a==0x1e||a==0x1f||a==0x5e||a==0x5f||a==0x6e||a==0x6f)//如果是就前進
  262.                         go6();

  263.                     if(a==0x24||a==0x25||a==0x74||a==0x75||a==0x84||a==0x85)//如果是就后退
  264.                         hui1();
  265.                         if(a==0x26||a==0x27||a==0x76||a==0x77||a==0x86||a==0x87)//如果是就后退
  266.                         hui2();
  267.                         if(a==0x28||a==0x29||a==0x78||a==0x79||a==0x88||a==0x89)//如果是就后退
  268.                         hui3();
  269.                         if(a==0x2a||a==0x2b||a==0x7a||a==0x7b||a==0x8a||a==0x8b)//如果是就后退
  270.                         hui4();
  271.                         if(a==0x2c||a==0x2d||a==0x7c||a==0x7d||a==0x8c||a==0x8d)//如果是就后退
  272.                         hui5();
  273.                         if(a==0x2e||a==0x2f||a==0x7e||a==0x7d||a==0x8e||a==0x8f)//如果是就后退
  274.                         hui6();

  275.                         if(a==0x3f)//如果是0x3f就左轉
  276.                         turnleft();
  277.                         if(a==0x4f)//如果是0x4f就右轉
  278.                         turnright();
  279.                         if(a==0x00)//如果是0x00就停止
  280.                         down();
  281.                         if(a==0xa0)//如果是0xa0車燈打開
  282.                         deng=0;
  283.                         if(a==0xb0)//如果是0xb0車燈關閉
  284.                         deng=1;
  285.                         if(a==0xc0)//如果是0xc0蜂鳴器鳴響
  286.                         BEEP=0;                        
  287.                         if(a==0xd0)//如果是0xd0蜂鳴器關
  288.                         BEEP=1;
  289.                         
  290.                         else
  291.                         down();
  292.                 }        
  293. }        

  294. void chuan() interrupt 4//串口中斷服務程序
  295. {
  296.         RI=0;//軟件清除串口響應
  297.         a=SBUF;//讀取單片機串口接受的藍牙模塊發送的數據
  298. }
  299. /******************************************

  300. 知識產權聲明:本程序為穿山乙電子原創作品,
  301. 擁有絕對的知識產權。未經授權,任何單位和個
  302. 人不得公開發布或用于任何商業用途,特此聲明!

  303. *******************************************/

復制代碼

評分

參與人數 1黑幣 +5 收起 理由
組織者組織啊 + 5

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表