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

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

QQ登錄

只需一步,快速開始

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

51單片機(jī)藍(lán)牙小車+TB6612控制(原理圖和程序)

  [復(fù)制鏈接]
ID:235954 發(fā)表于 2020-5-19 21:37 | 顯示全部樓層 |閱讀模式
51藍(lán)牙小車,通過藍(lán)牙APP發(fā)送指令讓小車前進(jìn)后退,左轉(zhuǎn),右轉(zhuǎn)。
模塊化的插件,讓你低成本,低基礎(chǔ),完成這個(gè)設(shè)計(jì)。

電路原理圖如下:
{H9HJ{R(S(@KS1GN7CWP})Q.png

單片機(jī)源程序如下:
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char tmp;
unsigned int c=0;
uint Count;
uint Degree=50;
sbit PWMA=P2^0;
sbit AIN2=P2^1;
sbit AIN1=P2^2;         
sbit STBY=P2^3;
sbit BIN1=P2^4;
sbit BIN2=P2^5;
sbit PWMB=P2^6;
sbit beep=P2^7;                        //蜂鳴器
void init();   //串口初始化
void send(unsigned char a);        //單字節(jié)發(fā)送函數(shù)
void ctrl(); //接收處理函數(shù)
void delay(unsigned int x)
{
        unsigned int i,j;
        for(i=x;i>0;i--)
                for(j=110;j>0;j--);
}
void Initialize_time(void)
{        
                                EA=1;
        ET0=1;                                       //EA=1;ET0=1;開啟總中斷、定時(shí)器0
//    TMOD=0x22;                               //M1=1,M1=0;方式2
                        TH0 = 0XA3;                                   //定時(shí)時(shí)間為100us     
                        TL0 = 0XA3;                                                                                          
        TR0=1;                         //啟動(dòng)定時(shí)器0,開始計(jì)數(shù)
}
void timer0 (void) interrupt 1            //定時(shí)中斷0子程序
{                                                                                                                                                                                      
        Count++;        
        if(Count>=0 && Count<=Degree)
        {
                PWMA=0;
                PWMB=0;
        }   
        else
        {
                PWMA=1;
                PWMB=1;
        }
        if(Count==200)        
           Count=0;                                                                                               
}
void init()        //串口初始化
{
                  ES=0;                                //關(guān)中斷
                  SCON = 0x50;                        // REN=1允許串行接受狀態(tài),串口工作模式1,
                                                                                                                                                                                                                 //10位UART(1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗(yàn)),波特率可
                  TMOD = 0x22;                      // 定時(shí)器1工作于方式2,8位自動(dòng)重載模式, 用于產(chǎn)生波特率
                                                                        TH1=TL1=0xFD;                   // 波特率9600 (本次測(cè)試采用晶振為11.0592)

                                                                        PCON &= 0x7f;                          // 波特率不倍增
                                                                        TR1 = 1;                                                                                                                        //定時(shí)器1開始工作,產(chǎn)生波特率
                                                                                                                                                                                                                         //發(fā)送標(biāo)志位置0
                  TI=0;                               //接收標(biāo)志位置0
                  RI=0;
                  PT1=1;
                                                                        ES=1;

}
void send(unsigned char a)        //單字節(jié)數(shù)據(jù)發(fā)送
{                                //注意:若單片機(jī)TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測(cè)試需要接上拉電阻
        TI=0;        
        SBUF=a;
        while(TI==0);
        TI=0;

}

void ctrl()                            //接收處理函數(shù)
{
                                    switch(tmp)
                                  {
                                              case '1':
                                                {
                                                                                                                AIN1=1;
                                                                                                                AIN2=0;        
                                                                                                                BIN1=1;
                                                                                                                BIN2=0;               
                                                PWMA=1;
                                                PWMB=1;
                                                send(tmp);


                                                break;        
                                                        }                                
                                        case '8':
                                        {                                         
                                                                                                 PWMA=0;
                         PWMB=0;
                                                 send(tmp);
                                                   }

                                                  break;        

                                                 case '3':
                                        {                                         
                                                                                                AIN1=0;
                        AIN2=0;        
                        BIN1=1;
                        BIN2=0;               
                                                PWMA=1;
                                                PWMB=1;
                                                 send(tmp);
                                                 }        
                                                   break;        
                                                                  case '4':
                                        {                                         
                                                                                                AIN1=1;
                        AIN2=0;        
                        BIN1=0;
                        BIN2=0;               
                                                PWMA=1;
                                                PWMB=1;
                                                 send(tmp);


                                                 }         
                                                   break;
                                                                           case '5':
                                        {                                         
                                                                                                AIN1=0;
                        AIN2=1;        
                        BIN1=0;
                        BIN2=1;               
                                                PWMA=1;
                                                PWMB=1;
                                                 send(tmp);

                                                 }        
                                                  break;        
                              case '6':
                                        {                                         
                                             beep=0;
                                                 delay(50);
                                                 beep=1;
                                                 send(tmp);
                                                         }
                                                 break;        
                                                             case '7':
                                        {                                         
                                             Degree++;
                                                if(Degree==180)
                                                {
                                                Degree=0;
                                                 }
                                                 send(tmp);
                                                         }
                                                 break;                                                        

                                  }
}

void main()                                                   
{                 

                                                                PWMA=1;
                                                                PWMB=1;
                STBY=1;

                init();
//             Initialize_time();

          while(1)
          {               

                  if(RI==1)                     // 是否有數(shù)據(jù)到來
                  {
                   RI = 0;
                  tmp = SBUF;                   // 暫存接收到的數(shù)據(jù)
                                                                        ctrl();
                                                                        }      
          }
}

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:693144 發(fā)表于 2020-6-24 15:58 來自觸屏版 | 顯示全部樓層
可以控制轉(zhuǎn)速嗎?
回復(fù)

使用道具 舉報(bào)

ID:425677 發(fā)表于 2020-7-12 10:09 | 顯示全部樓層
簡(jiǎn)易小車,藍(lán)牙控制方向和前進(jìn)后退?
回復(fù)

使用道具 舉報(bào)

ID:629091 發(fā)表于 2020-7-30 19:43 | 顯示全部樓層
你好,為什么我接線后,AO1和AO2都沒有電壓
回復(fù)

使用道具 舉報(bào)

ID:910913 發(fā)表于 2023-1-13 10:10 | 顯示全部樓層
挺好的,程序?qū)哟畏置?/td>
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 深夜爽视频 | 欧美精品一区二区三区在线 | 91视频大全 | 亚洲福利免费 | 男女视频在线看 | 亚洲欧洲一区 | ww 255hh 在线观看 | 91最新视频 | 精品久久国产 | 亚洲福利网 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 国产一区欧美一区 | 日韩在线观看网站 | 亚洲伊人久久综合 | 亚洲性人人天天夜夜摸 | 成人在线看片 | 国内91在线| av在线伊人| 久久在线 | 精品国产一区二区三区av片 | 成人在线精品视频 | 日韩有码一区二区三区 | 国产国语精品 | www,黄色,com| 黄色片亚洲 | 免费视频一区二区 | 欧美日韩在线精品 | 性欧美精品一区二区三区在线播放 | 欧美成人h版在线观看 | 亚洲国产一区二区三区在线观看 | 亚洲精品一区二区三区中文字幕 | 亚洲精品日韩欧美 | 国户精品久久久久久久久久久不卡 | 国产精品久久久久久久久免费高清 | 国产精品亚洲一区二区三区在线观看 | 免费观看一区二区三区毛片 | 成人黄色三级毛片 | 久久91精品国产一区二区 | 亚洲精品二区 | 欧美精品久久久 | 看亚洲a级一级毛片 |