基于STC89C52的蓝牙遥控小车

          说明:犹豫不想要太麻烦所以采用的最小系统板是直接购买的。

          蓝牙小车采用HC05蓝牙模块,一个L298N电机驱动,还有4个直流TT电机,采用串口通讯进行数据的传递。采用3节3.7v锂电池供电。同侧的电机的正负极相接后再入L298N电机驱动以此来实现一个驱动控制四个电机。

 

           下面是小车的程序:

//  电机
//由于再接线部分有些小问题因此在编写程序
//时对小车电机的转动程序做出了一定的调整


#include<reg52.h>

#define uchar unsigned char

sbit IN1=P0^1;
sbit IN2=P0^2;
sbit IN3=P0^3;
sbit IN4=P0^4;
sbit EN1=P0^5;
sbit EN2=P0^6;

int A,dongli[4]={1,2,3,4},i;

void delay(unsigned int z);
void delay(unsigned int aa);


    void delay_us(unsigned int aa)
                {
                            while(aa--);
                }

     void delay(unsigned int z)
                    { 
             unsigned int x,y;
        for(x=z;x>0;x--)
               for(y=114;y>0;y--);
    
  } 

    


void timer0Init()    //定时器0
{
        EA=1;
        TR0=1;
        ET0=1;
        REN=1;    //允许串口接收
        TMOD|=0X01;
        TH0=0XED;
        TL0=0XFF;//设置延迟时间
    
}

void chuankou    ()//串口初始化   完成
{
        EA=1;
        ES=1;
        SM0=0;
        SM1=1;
        REN=1;    //允许串口接收,软件复位
        TR1=1;    //启动定时器1
        TMOD |= 0x20;//定时器1,工作模式2 8位自动重装
        TH1 = 0xfd;
        TL1 = 0xfd;//设置比特率38400
}

void send(int s) //发送数据
 {

        SBUF= s;
     while(!TI);
 }

void qianjin() //前进
    {
    IN1=1;
    IN2=0;
    IN3=0;
    IN4=1;
    }
        
    void houtui() //后退
    {
    IN1=0;
    IN2=1;
    IN3=1;
    IN4=0;
    }
    
    
    void zuozhuan() //左转
    {
    IN1=0;
    IN2=1;
    IN3=0;
    IN4=1;    
    
    }
    
    void youzhuan() //右转
    {
    IN1=1;
    IN2=0;
    IN3=1;
    IN4=0;
    }
    
    void tingzhi() //停车
    {
    IN1=0;
    IN2=0;
    IN3=0;
    IN4=0;
    }
        
        
        

void UART ()interrupt 4//串口中断函数
    //串口中断中接收数据
{
        if(RI)
        {
            A=SBUF;
            RI=0;
            switch(A)
            {
                case  0x01  :qianjin() ;break;
                case  0x03  :houtui()  ;break;
                case  0x05  :zuozhuan();break;
                case  0x07  :youzhuan();break;
                case  0x09  :tingzhi() ;break;
            
            }
            
        }
            if(TI)
                TI=0;
            

  }

    
        
        
        
    
void main()
{
//    qianjin();
//    delay(2000);
//      houtui();
//    delay(2000);
//    zuozhuan();
//    delay(2000);
//    youzhuan();
//    delay(2000);
//    tingzhi();
//    delay(2000);
//    timer0Init();
//    chuankou    ();
    
    timer0Init();
    chuankou    ();
    
}
    

这是我第一次作东西,还有许多需要改进的地方,希望大家发现了多多指出。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
本次设计选择基于蓝牙遥控的多功能智能小车为对象。选用STC98C52RC单片机作为主控芯片,电机驱动采用L293N ,电源部分采用两节3.7V锂电池供电.采用C语言模块化编程,提高开发效率.蓝牙控制功能.用按键或遥控器来控制小车..zip嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明,项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要嵌入式物联网单片机相关领域开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注嵌入式领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【建议小白】: 在所有嵌入式开发中硬件部分若不会画PCB/电路,可选择根据引脚定义将其代替为面包板+杜邦线+外设模块的方式,只需轻松简单连线,下载源码烧录进去便可轻松复刻出一样的项目 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值