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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1680|回復: 0
收起左側

萌新的藍牙控制小車程序制作

[復制鏈接]
ID:254430 發表于 2018-3-4 16:56 | 顯示全部樓層 |閱讀模式
嘗試做了下,應該說模仿制作了個關于藍牙控制的小車避障,還在細化

單片機源程序如下:
  1. #include<reg51.h>
  2. #include<math.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar Buffer[4] = {0}; //從串口接收的數據
  6. uint i,j;
  7. sbit ENA=P1^5; /* L298的Enable A */
  8. sbit ENB=P1^0; /* L298的Enable B */
  9. sbit IN1=P1^4; /* L298的Input 1 */
  10. sbit IN2=P1^3; /* L298的Input 2 */
  11. sbit IN3=P1^2; /* L298的Input 3 */
  12. sbit IN4=P1^1; /* L298的Input 4 */
  13. sbit ISS=P2^1;/*紅外傳感信號接收口*/
  14. uchar a=20;
  15. uchar t=0; /* 中斷計數器 */
  16. uchar m1=0; /* 電機1速度值 */
  17. uchar m2=0; /* 電機2速度值 */
  18. uchar tmp1,tmp2; /* 電機當前速度值 */

  19. /****************************************延時程序 Delay_1ms()******************************************/
  20. void Delay_1ms(uint i)//1ms延時
  21. {
  22.                 uchar x,j;
  23.                 for(j=0;j<i;j++)
  24.                 for(x=0;x<=148;x++);
  25. }

  26. /********************************************************************
  27. * 名稱 : Init()
  28. * 功能 : 初始化,晶振11.0592,波特率9600,使串口中斷,同時定時器0控制PWM
  29. ***********************************************************************/
  30. void Init(void)
  31. {
  32.         TMOD = 0x22; //8 位自動重裝計數
  33.         PCON = 0x00;
  34.         SCON = 0x50;//串行口控制寄存器 SM1=1,SM0=0方式一波特率可變
  35.         TH0=0x9b;
  36.         TL0=0x9b;
  37.         TH1= 0xFd; //設置波特率 9600
  38.         TL1= 0xFd;
  39.         TR1=1; //啟動定時器1
  40.         ET0=1;
  41.         TR0=1;
  42.         ES = 1; //開串口中斷
  43.         EA = 1; //開總中斷
  44. }
  45. void motorL( char speed)
  46. {         m1=abs(speed); /* 取速度的絕對值 */
  47.         if(speed>0)
  48.                 {
  49.                    IN1=0;           //正轉
  50.                    IN2=1;
  51.                  }
  52.      else
  53.            {  
  54.               IN1=1;
  55.                      IN2=0;        //倒轉
  56.                        

  57.                  }  
  58. }
  59. void motorR( char speed)
  60. {
  61.         m2=abs(speed); /* 電機2的速度控制 */
  62.         if(speed>0)
  63.                 {
  64.                   IN3=0;
  65.                   IN4=1;
  66.                  }
  67.         else
  68.                  {       
  69.                   IN3=1;
  70.                   IN4=0;
  71.                  }  
  72. }
  73. void GO(void)

  74.         {       
  75.                 motorL(a);
  76.                 motorR(a);

  77.        
  78.         }
  79. void BACK()
  80.         {       
  81.                 motorL(-20);
  82.                 motorR(-20);

  83.         }
  84. void TL(void)
  85.         {
  86.                 motorL(30);
  87.                 motorR(50);

  88.         }
  89. void TR(void)
  90.         {       
  91.                 motorL(50);
  92.                 motorR(30);

  93.         }

  94. void STOP(void)
  95.         {
  96.                 IN1=1;
  97.                 IN2=1;
  98.                 IN3=1;
  99.                 IN4=1;
  100.         }

  101. void dang1(viod)
  102.    {
  103.      motorL(20);
  104.          motorR(20);

  105.    }
  106. void dang2(viod)
  107.    {
  108.      motorL(30);
  109.          motorR(30);

  110.                    }
  111. void dang3(viod)
  112.    {
  113.      motorL(40);
  114.          motorR(40);

  115.    }
  116. void main()
  117. {
  118.         Delay_1ms(100);
  119.         Init();//初始化


  120.         while(1)
  121.         {
  122.                         switch(Buffer[0])
  123.                         {
  124.                                 case 0X00: STOP(); break;                   

  125.                                 case 0X01:GO(); break;                                

  126.                                 case 0X03: TR(); break;                       

  127.                                 case 0X02:  BACK();break;                       

  128.                                 case 0X04:  TL();  break;            
  129.                                
  130.                                 case 0x05:  dang1();break;                           
  131.                        
  132.                                 case 0x06:  dang2();break;

  133.                                 case 0x07:  dang3();break;
  134.                                
  135.                                 default:break;
  136.                         }
  137.          if(ISS==0)
  138.          {
  139.      motorL(0);
  140.          motorR(0);
  141.          STOP();
  142.            }
  143.         }
  144. }

  145. void Com_Int(void) interrupt 4
  146.         {
  147.        
  148.                  EA = 0;
  149.                 if(RI == 1) //當硬件接收到一個數據時,RI會置位
  150.                 {
  151.                         Buffer[0] = SBUF ;
  152.                         RI = 0;
  153.        
  154.                 }
  155.                 EA = 1;
  156.         }
  157. void timer0() interrupt 1 /* T0中斷服務程序 */
  158.         {
  159.                 if(t==0) /* 1個PWM周期完成后才會接受新數值 */
  160.                 {         tmp1=m1;
  161.                           tmp2=m2;
  162.                 } //這個一開始車子的速度為零
  163.                 if(t<tmp1) ENA=1; else ENA=0; /* 產生電機1的PWM信號 */
  164.                 if(t<tmp2) ENB=1; else ENB=0; /* 產生電機2的PWM信號 */
  165.                 t++;
  166.                 if(t>=50) t=0; /* 1個PWM信號由100次中斷產生 */
  167.         }
復制代碼

下載:
藍牙1.5.rar (25.8 KB, 下載次數: 4)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区在线看 | 成人网av | 毛片一级片| 一级黄大片| 网站一区二区三区 | 国产男女视频 | caoporn国产精品免费公开 | 欧美一级二级三级 | 中文字幕一区二区三区日韩精品 | 国产精品久久久久久久久 | 亚洲欧洲小视频 | 美女131mm久久爽爽免费 | 高清av在线 | 亚洲狠狠丁香婷婷综合久久久 | 色狠狠一区 | 欧美综合一区二区三区 | 午夜激情网 | 久久av网 | 99免费看 | 正在播放亚洲 | www.婷婷亚洲基地 | 伊人热久久 | 亚洲视频在线一区 | 午夜视频在线观看一区二区 | 一级黄色片免费 | 日本三级网 | 国产综合久久 | 91久久久www播放日本观看 | 欧美一二三 | 欧美国产视频 | 精品欧美一区二区三区免费观看 | 狼色网 | 欧美在线a | 精品欧美乱码久久久久久 | 欧美在线不卡 | 少妇久久久 | 欧美日产国产成人免费图片 | 网络毛片| 亚洲永久免费 | 久久久国产一区二区三区 | 国产成人精品一区二区三区 |