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

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

QQ登錄

只需一步,快速開始

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

藍(lán)牙單片機(jī)控制小車地盤源程序

[復(fù)制鏈接]
ID:360610 發(fā)表于 2018-7-3 17:25 | 顯示全部樓層 |閱讀模式

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

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

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

  19. sbit you1=P0^3;//右輪正轉(zhuǎn)信號(hào)端
  20. sbit you2=P0^2;//右輪倒轉(zhuǎn)信號(hào)端
  21. sbit zuo1=P0^1;//左輪正轉(zhuǎn)信號(hào)端
  22. sbit zuo2=P0^0;//左輪倒轉(zhuǎn)信號(hào)端

  23. uchar a=0;//定義一個(gè)變量a,用來讀取串口的數(shù)據(jù)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  122.         z=1;
  123.         y=1;//關(guān)閉轉(zhuǎn)向燈
  124. }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  205.         z=1;
  206.         y=1;//關(guān)閉轉(zhuǎn)向燈
  207. }

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

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

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

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

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

  246. void main()//主程序
  247. {
  248.         init();//調(diào)用初始化子程序
  249.         while(1)//死循環(huán)
  250.         {
  251.                     if(a==0x14||a==0x15||a==0x54||a==0x55||a==0x64||a==0x65)//如果是就前進(jìn)
  252.                         go1();
  253.                         if(a==0x16||a==0x17||a==0x56||a==0x57||a==0x66||a==0x67)//如果是就前進(jìn)
  254.                         go2();
  255.                         if(a==0x18||a==0x19||a==0x58||a==0x59||a==0x68||a==0x69)//如果是就前進(jìn)
  256.                         go3();
  257.                         if(a==0x1a||a==0x1b||a==0x5a||a==0x5b||a==0x6a||a==0x6b)//如果是就前進(jìn)
  258.                         go4();
  259.                         if(a==0x1c||a==0x1d||a==0x5c||a==0x5d||a==0x6c||a==0x6d)//如果是就前進(jìn)
  260.                         go5();
  261.                         if(a==0x1e||a==0x1f||a==0x5e||a==0x5f||a==0x6e||a==0x6f)//如果是就前進(jìn)
  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就左轉(zhuǎn)
  276.                         turnleft();
  277.                         if(a==0x4f)//如果是0x4f就右轉(zhuǎn)
  278.                         turnright();
  279.                         if(a==0x00)//如果是0x00就停止
  280.                         down();
  281.                         if(a==0xa0)//如果是0xa0車燈打開
  282.                         deng=0;
  283.                         if(a==0xb0)//如果是0xb0車燈關(guān)閉
  284.                         deng=1;
  285.                         if(a==0xc0)//如果是0xc0蜂鳴器鳴響
  286.                         BEEP=0;                        
  287.                         if(a==0xd0)//如果是0xd0蜂鳴器關(guān)
  288.                         BEEP=1;
  289.                         
  290.                         else
  291.                         down();
  292.                 }        
  293. }        

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

  300. 知識(shí)產(chǎn)權(quán)聲明:本程序?yàn)榇┥揭译娮釉瓌?chuàng)作品,
  301. 擁有絕對(duì)的知識(shí)產(chǎn)權(quán)。未經(jīng)授權(quán),任何單位和個(gè)
  302. 人不得公開發(fā)布或用于任何商業(yè)用途,特此聲明!

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

復(fù)制代碼

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产激情偷乱视频一区二区三区 | 欧美男人天堂 | 成人二区 | 久久久av中文字幕 | 欧产日产国产精品视频 | 久久中文字幕一区 | 欧美成人精品在线 | 一区二区免费在线观看 | 日韩一区二区精品 | 国产精品国产精品国产专区不卡 | 国产特级毛片aaaaaa喷潮 | 欧美性久久 | 亚洲精品视频播放 | 欧美日韩精品综合 | 91porn成人精品 | 91精品国产日韩91久久久久久 | 亚洲精品一区中文字幕乱码 | 久久久精品 | 亚洲视频在线看 | 91精品国产综合久久久动漫日韩 | 999视频| 亚洲国产精品久久久久秋霞不卡 | 成人精品鲁一区一区二区 | 国产精品成人在线观看 | 草逼网站 | 欧美日韩不卡在线 | 日本一区二区电影 | 野狼在线社区2017入口 | 久久久精品一区 | 欧美涩| www.婷婷 | 久热久热| 爱爱免费视频网站 | aaa在线| 99re在线视频 | 在线看亚洲 | www.黄色网 | 青青久在线视频 | 亚洲一二三视频 | 亚洲电影专区 | 欧美高清视频 |