标题: 基于51单片机手机方向传感器蓝牙控制小车 [打印本页]

作者: 1317537277    时间: 2018-12-24 13:42
标题: 基于51单片机手机方向传感器蓝牙控制小车
制作目的:通过手机前倾,后倾,左倾,右倾,采集手机姿态(读取手机方向传感器数据),调整手机姿态控制小车运动


源码易懂,修改容易
附: 手机apk ,c源码,proteus仿真



#include<reg52.h>//

sbit SEH_PWM=P1^7;//舵机PWM口定义

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

unsigned char T0RH =(65536-100)/256;//赋初值定时
//0.02ms;  //T0重载值的高字节
unsigned char T0RL =(65536-100)%256;  //T0重载值的低字节
unsigned char RxdByte = 0;  //串口接收到的字节

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定时1ms
    ConfigUART(9600);  //配置波特率为9600

    while (1)
    {  
                                        switch(RxdByte)       
                                {
                                        case 0x31:{
                                                                                PWM(11);//手机向单片机发送‘0’,舵机转到0度
                                                                                a=1;
                                                                                b=0;   
                                                                                };break;
                                        case 0x32:{
                                                                                PWM(13);//手机向单片机发送‘1’,舵机转到45度
                                                                                a=1;
                                                                                b=0;
                                                                                  
                                                                                };break;
                                        case 0x33:{
                                                                                PWM(9);//手机向单片机发送‘2’,舵机转到90度
                                                                                a=1;
                                                                                b=0;
                                                                                };break;
                                        case 0x34:{
                                                                                PWM(14);//手机向单片机发送‘3’,舵机转到135度  
                                                                                a=0;
                                                                                b=0;
                                                                                };break;
                                        case 0x35:{                       
                                                                                PWM(11);//手机向单片机发送‘4’,舵机转到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;
                                }
    }
}
/* 配置并启动T0,ms-T0定时时间 */
void ConfigTimer0()
{



    TMOD &= 0xF0;   //清零T0的控制位
    TMOD |= 0x01;   //配置T0为模式1
    TH0 = T0RH;     //加载T0重载值
    TL0 = T0RL;
    ET0 = 1;        //使能T0中断
    TR0 = 1;        //启动T0
}
/* 串口配置函数,baud-通信波特率 */
void ConfigUART(unsigned int baud)
{
    SCON  = 0x50;  //配置串口为模式1
    TMOD &= 0x0F;  //清零T1的控制位
    TMOD |= 0x20;  //配置T1为模式2
    TH1 = 256 - (11059200/12/32)/baud;  //计算T1重载值
    TL1 = TH1;     //初值等于重载值
    ET1 = 0;       //禁止T1中断
    ES  = 1;       //使能串口中断
    TR1 = 1;       //启动T1
}

/* T0中断服务函数,完成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中断服务函数 */
void InterruptUART() interrupt 4
{
    if (RI)  //接收到字节
    {
        RI = 0;  //手动清零接收中断标志位
        RxdByte = SBUF;  //接收到的数据保存到接收字节变量中
        SBUF = RxdByte;  //接收到的数据又直接发回,叫作-"echo",
                         //用以提示用户输入的信息是否已正确接收
    }
    if (TI)  //字节发送完毕
    {
        TI = 0;  //手动清零发送中断标志位
    }
}








蓝牙玩具车控制.rar

854 KB, 下载次数: 33, 下载积分: 黑币 -5


作者: a172049929    时间: 2019-5-8 21:00
分享,谢谢楼主
作者: 1498972336    时间: 2019-5-16 09:18
没有电路图




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1