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

標題: 藍牙單片機控制小車地盤源程序 [打印本頁]

作者: ta1689    時間: 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. *******************************************/

復制代碼





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩在线中文字幕 | 天堂免费| 国产精品婷婷 | 欧美黄色录像 | 欧美一区二区在线观看 | 夜夜摸夜夜操 | 免费黄色大片 | 亚洲精品在线看 | 天堂一区二区三区 | 国产精品精品视频一区二区三区 | 中文字幕av第一页 | 久久精品国产亚洲一区二区三区 | 国产日韩欧美一区二区 | 国产精品亚洲成在人线 | 久久国产精品无码网站 | 日韩欧美中文 | 欧美中文在线 | 91在线一区 | 欧美一级在线 | 91精品久久久久久久久久 | 亚洲二区在线 | 日本久久一区二区三区 | 欧美一级欧美一级在线播放 | 成人av一区 | 日日综合| 成人综合一区二区 | 婷婷综合色| 色欧美片视频在线观看 | av在线播放网 | 日韩一区二区免费视频 | 国产精品日本一区二区不卡视频 | 一级a性色生活片久久毛片 午夜精品在线观看 | 精品免费国产 | 欧美中文字幕在线观看 | 午夜精品一区二区三区在线 | 国产精品久久久 | 黄篇网址 | 在线观看日本高清二区 | 精品乱子伦一区二区三区 | 精品一区二区久久久久久久网站 | 中国美女撒尿txxxxx视频 |