找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5561|回复: 1
收起左侧

51单片机蓝牙控制小车程序

[复制链接]
ID:330538 发表于 2018-5-23 19:40 | 显示全部楼层 |阅读模式
这个可以用蓝牙控制小车前进后退左右转
#include <reg52.h>
sbit INT=P2^0;
sbit INT2=P2^1;
sbit INT3=P2^2;
sbit INT4=P2^3;
sbit ENA=P1^1;
sbit ENB=P1^2;
int buf,t;
int zuo,you,zuo1=5,you1=5;
int zuo1,you1;
void delay(int z)
{
        int x,y;
        for (x=z;y>0;y--)
        for (y=114;z>0;z--);
}
void CarGo()
{
        zuo=zuo1;
        you=you1;
        ENA=1;
        ENB=1;
        INT= 1;
        INT2=0;
        INT3=1;
        INT4=0;
}

void CarBack()
{
        zuo=zuo1;
        you=you1;
        ENA=1;
        ENB=1;
        INT= 0;
        INT2=1;
        INT3=0;
        INT4=1;
}

void CarTurnLeft()
{
        zuo=5;
        you=5;
        INT=0;
        INT2=1;
        INT3=1;
        INT4=0;
}

void CarTurnRight()
{
        zuo=5;
        you=5;
        INT= 1;
        INT2=0;
        INT3=0;
        INT4=1;
}               

void kuaiLeft()
{          
        zuo=10;
        you=10;
        INT=0;
        INT2=1;
        INT3=1;
        INT4=0;
}

void kuaiRight()
{
        zuo=10;
        you=10;
        INT= 1;
        INT2=0;
        INT3=0;
        INT4=1;
}
               
void CarStop()
{
        zuo=0;
        you=0;
}         
void main()
{
        SCON=0x50;           //设定串口工作方式
    PCON=0x00;           //波特率不倍增
       
        EA=1;

        TMOD|=0x02;
        TR0=1;
        ET0=1;
        TH0=(65535-100)/256;
        TL0=(65535-100)%256;

        TMOD|=0x20;
        ES=1;
        TR1=1;
        TH1=0xfd;
        TL1=0xfd;
        while(1);
}
void in() interrupt 1
{
        TH0=(65535-100)/256;
        TL0=(65535-100)%256;
         t++;
         if(t==10) t=0;
         if(t<zuo)
         {
                ENB=1;
         }
         else
         {
                ENB=0;
         }
         if(t<you)
         {
                ENA=1;
         }
         else
         {
                ENA=0;
         }
}
void  serial() interrupt 4
{
        TL1=0xfd;
   TH1=0xfd;             //波特率9600
   ES = 0;                //关闭串行中断
   RI = 0;                //清除串行接受标志位
   buf = SBUF;            //从串口缓冲区取得数据
  switch(buf)
   {
      case 0x00 :  CarGo();break;           
      case 0x01 :  CarBack();break;  
          case 0x02 :  CarStop();break;
          case 0x03 :  CarTurnLeft();break;
          case 0x04 :  CarTurnRight();break;  
          case 0x05 :  zuo1--,you1--;break;
          case 0x06 :  zuo1++,you1++;break;
          case 0x07 :  kuaiLeft();break;
          case 0x08 :  kuaiRight();break;     
   }
   ES = 1;    //允许串口中断
}


蓝牙车.zip

966 Bytes, 下载次数: 39, 下载积分: 黑币 -5

源代码

回复

使用道具 举报

ID:441270 发表于 2018-12-16 12:46 | 显示全部楼层
谢谢楼主!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表