找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3123|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

(原創(chuàng)設(shè)計程序)藍(lán)牙控制小車源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:317135 發(fā)表于 2018-4-27 14:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/
************************************電機(jī)驅(qū)動模塊為L298N*******************************************
************************************藍(lán)牙模塊為HC-06***********************************************
/
#include<reg52.h>
#include "drive.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define uchar unsigned char
u8 a;
uchar k;
sbit IN1=P1^1;
sbit IN2=P1^2;
sbit IN3=P1^3;
sbit IN4=P1^4;
sbit ENA=P1^0;
void com_init() //串口初始化函數(shù),波特率9600bps
{
TMOD = 0x20;
TH1 = 0xf9;
TL1 = 0xf9;
PCON=0X80;
TR1 = 1;
SCON=0X50;
ES = 1;
EA = 1;
}
void delay(unsigned int z)
{
    unsigned int x,y;
for(x=z;x>0;x--)
   for(y=100;y>0;y--);
}
void Stop()  //停止
{
    while(1)
   {
unsigned int i;
IN1=0;
IN2=0;
IN3=0;
IN4=0; //停止
   for(i=0;i<100;i++)
   {
      delay(20);  
   }
      
   }
}
void Backward()  //后退
{
while(1)
   {
unsigned int i;
IN1=0;
IN2=1;
IN3=0;
IN4=1; //反轉(zhuǎn)
   for(i=0;i<100;i++)
   {
      delay(20);  
   }
    IN1=0;
IN2=0;
IN3=0;
IN4=0;
   }
}
void Forward() //前進(jìn)
{
  while(1)
   {
unsigned int i;
IN1=1;
IN2=0;
IN3=1;
IN4=0; //正轉(zhuǎn)
   for(i=0;i<100;i++)
   {
      delay(20);  
   }
    IN1=0;
IN2=0;
IN3=0;
IN4=0;
   }  
}
void Wleft()     //前左
{
   while(1)
   {
unsigned int i;
IN1=0;
IN2=0;
IN3=1;
IN4=0; //左轉(zhuǎn)
   for(i=0;i<100;i++)
   {
      delay(20);  
   }
    IN1=0;
IN2=0;
IN3=0;
IN4=0;  
   }
}
void Wright()     //前右
{
while(1)
   {
unsigned int i;
IN1=1;
IN2=0;
IN3=0;
IN4=0; //右轉(zhuǎn)
   for(i=0;i<100;i++)
   {
      delay(20);  
   }
    IN1=0;
IN2=0;
IN3=0;
IN4=0;
   }
}
void Bright()   //后右
{
   while(1)
   {
unsigned int i;
IN1=0;
IN2=0;
IN3=0;
IN4=1; //后右
   for(i=0;i<100;i++)
   {
      delay(20);  
   }
    IN1=0;
IN2=0;
IN3=0;
IN4=0;
   }
}
void Bleft()    // 后左
{
while(1)
   {
unsigned int i;
IN1=0;
IN2=1;
IN3=0;
IN4=0; //后左
   for(i=0;i<100;i++)
   {
      delay(20);  
   }
    IN1=0;
IN2=0;
IN3=0;
IN4=0;
   }
}

void main() //主函數(shù)
{
com_init(); //串口初始化
while(1); //死循環(huán),等待藍(lán)牙傳命令過來
}
void Usart() interrupt 4
{
a=SBUF;
SBUF=a;//出去接收到的數(shù)據(jù)
switch(a) //判斷收到的命令是干嘛的
{
case 'A':Stop();break; //停止A
case 'B':Backward();break; //后退B
case 'C':Forward();break; //前進(jìn)C
case 'D':Wleft();break; //前左D
case 'E':Wright();break; //前右E
case 'F':Bright();break; //后右F
case 'G':Bleft();break; // 后左G

}
    REN=0;
    ES=1;
RI = 0;//清除接收中斷標(biāo)志位
while(!TI);    //等待發(fā)送數(shù)據(jù)完成
TI=0;       //清除發(fā)送完成標(biāo)志位
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-4-27 16:49 | 只看該作者
能分享下原理圖 與介紹嗎?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表