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

標(biāo)題: 基于51單片機(jī)手機(jī)方向傳感器藍(lán)牙控制小車(chē) [打印本頁(yè)]

作者: 1317537277    時(shí)間: 2018-12-24 13:42
標(biāo)題: 基于51單片機(jī)手機(jī)方向傳感器藍(lán)牙控制小車(chē)
制作目的:通過(guò)手機(jī)前傾,后傾,左傾,右傾,采集手機(jī)姿態(tài)(讀取手機(jī)方向傳感器數(shù)據(jù)),調(diào)整手機(jī)姿態(tài)控制小車(chē)運(yùn)動(dòng)


源碼易懂,修改容易
附: 手機(jī)apk ,c源碼,proteus仿真



#include<reg52.h>//

sbit SEH_PWM=P1^7;//舵機(jī)PWM口定義

unsigned char SEH_count=11;
unsigned char count=0;
sbit a=P0^0;
sbit b=P0^1;

unsigned char T0RH =(65536-100)/256;//賦初值定時(shí)
//0.02ms;  //T0重載值的高字節(jié)
unsigned char T0RL =(65536-100)%256;  //T0重載值的低字節(jié)
unsigned char RxdByte = 0;  //串口接收到的字節(jié)

void ConfigTimer0();
void ConfigUART(unsigned int baud);

void PWM(unsigned char x)
{
        SEH_count=x;
}

void main()
{
       
    EA = 1;       //使能總中斷
    a=0;
    b=0;
    ConfigTimer0();   //配置T0定時(shí)1ms
    ConfigUART(9600);  //配置波特率為9600

    while (1)
    {  
                                        switch(RxdByte)       
                                {
                                        case 0x31:{
                                                                                PWM(11);//手機(jī)向單片機(jī)發(fā)送‘0’,舵機(jī)轉(zhuǎn)到0度
                                                                                a=1;
                                                                                b=0;   
                                                                                };break;
                                        case 0x32:{
                                                                                PWM(13);//手機(jī)向單片機(jī)發(fā)送‘1’,舵機(jī)轉(zhuǎn)到45度
                                                                                a=1;
                                                                                b=0;
                                                                                  
                                                                                };break;
                                        case 0x33:{
                                                                                PWM(9);//手機(jī)向單片機(jī)發(fā)送‘2’,舵機(jī)轉(zhuǎn)到90度
                                                                                a=1;
                                                                                b=0;
                                                                                };break;
                                        case 0x34:{
                                                                                PWM(14);//手機(jī)向單片機(jī)發(fā)送‘3’,舵機(jī)轉(zhuǎn)到135度  
                                                                                a=0;
                                                                                b=0;
                                                                                };break;
                                        case 0x35:{                       
                                                                                PWM(11);//手機(jī)向單片機(jī)發(fā)送‘4’,舵機(jī)轉(zhuǎn)到180?
                                                                                a=0;
                                                                                b=0;
                                                                                };break;
                                        case 0x36:{
                                                                                PWM(8);        //       
                                                                                a=0;
                                                                                b=0;                                                                                                       
                                                                                };break;
                                        case 0x37:{
                                                                            a=0;
                                                                                b=1;
                                                                                PWM(13);//                                                                                                                               
                                                                                };break;
                                        case 0x38:{               
                                                                                PWM(11);
                                                                                a=0;
                                                                                b=1;
                                                                                };break;
                                        case 0x39:{
                                                                                a=0;
                                                                                b=1;
                                                                                PWM(9);
                                                                                };break;
                                }
    }
}
/* 配置并啟動(dòng)T0,ms-T0定時(shí)時(shí)間 */
void ConfigTimer0()
{



    TMOD &= 0xF0;   //清零T0的控制位
    TMOD |= 0x01;   //配置T0為模式1
    TH0 = T0RH;     //加載T0重載值
    TL0 = T0RL;
    ET0 = 1;        //使能T0中斷
    TR0 = 1;        //啟動(dòng)T0
}
/* 串口配置函數(shù),baud-通信波特率 */
void ConfigUART(unsigned int baud)
{
    SCON  = 0x50;  //配置串口為模式1
    TMOD &= 0x0F;  //清零T1的控制位
    TMOD |= 0x20;  //配置T1為模式2
    TH1 = 256 - (11059200/12/32)/baud;  //計(jì)算T1重載值
    TL1 = TH1;     //初值等于重載值
    ET1 = 0;       //禁止T1中斷
    ES  = 1;       //使能串口中斷
    TR1 = 1;       //啟動(dòng)T1
}

/* T0中斷服務(wù)函數(shù),完成LED掃描 */
void InterruptTimer0() interrupt 1
{
    TH0 = T0RH;  //重新加載重載值
    TL0 = T0RL;
          if(count <= SEH_count)
    {

        SEH_PWM=1;
    }
    else
    {
        SEH_PWM=0;
    }


    count++;
    if (count >= 164)
    {
        count = 0;
                       
    }
       
}
/* UART中斷服務(wù)函數(shù) */
void InterruptUART() interrupt 4
{
    if (RI)  //接收到字節(jié)
    {
        RI = 0;  //手動(dòng)清零接收中斷標(biāo)志位
        RxdByte = SBUF;  //接收到的數(shù)據(jù)保存到接收字節(jié)變量中
        SBUF = RxdByte;  //接收到的數(shù)據(jù)又直接發(fā)回,叫作-"echo",
                         //用以提示用戶(hù)輸入的信息是否已正確接收
    }
    if (TI)  //字節(jié)發(fā)送完畢
    {
        TI = 0;  //手動(dòng)清零發(fā)送中斷標(biāo)志位
    }
}








藍(lán)牙玩具車(chē)控制.rar

854 KB, 下載次數(shù): 33, 下載積分: 黑幣 -5


作者: a172049929    時(shí)間: 2019-5-8 21:00
分享,謝謝樓主
作者: 1498972336    時(shí)間: 2019-5-16 09:18
沒(méi)有電路圖




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1