51单片机智能小车蓝牙

article/2025/10/11 18:29:13

材料:

(1)51单片机开发板

(2)l298n电机驱动模块1个

(3)四个电机

(4)JDY-31蓝牙模块

一、组装

(1)L298N电机驱动模块与开发板接线如下图:

 

(2)蓝牙接线:

VCC接51单片机开发板的5v,GND接51单片机开发板的GND,TXD接51单片机开发板的P30引脚,RXD接51单片机开发板的P31引脚,烧录程序的时候要先把P30,P31两个引脚先拔掉,不然会被占用导致烧录不了程序。

二、烧录问题 

烧录程序的时候要先把蓝牙P30,P31两个引脚先拔掉,不然会被占用导致烧录不了程序。

代码:

#include "reg52.h"typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;//定义电机控制管脚
sbit MOTOA=P1^0;
sbit MOTOB=P1^1; //右电机
sbit MOTOC=P1^2;
sbit MOTOD=P1^3; //左电机void delay10us(void)   
{unsigned char a,b;for(b=1;b>0;b--)for(a=2;a>0;a--);
}void delay_10us(u16 us)
{while(us--);
}void delay_ms(u16 ms)
{u16 i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);
}void Car_ForwardRun(void)//前进
{MOTOA=1;MOTOB=0;MOTOC=1;MOTOD=0;	
}
void Car_BackwardRun(void)//后退
{MOTOA=0;MOTOB=1;MOTOC=0;MOTOD=1;	
}
void Car_StopRun(void)//停止
{MOTOA=0;MOTOB=0;MOTOC=0;MOTOD=0;	
}
void Car_LeftRun(void)//左转
{MOTOA=1;MOTOB=0;MOTOC=0;MOTOD=1;	
}
void Car_RightRun(void)//右转
{	MOTOA=0;MOTOB=1;MOTOC=1;MOTOD=0;	
}#define RELOAD_COUNT 0xFA //宏定义波特率发生器的载入值 9600void UART_Init(void)
{SCON=0X50;			//设置为工作方式1TMOD=0X20;			//设置计数器工作方式2PCON=0X80;			//波特率加倍TH1=RELOAD_COUNT;	//计数器初始值设置TL1=TH1;ES=1;				//打开接收中断EA=1;				//打开总中断TR1=1;				//打开计数器
}void UART_SendByte(u8 dat)
{ES=0; //关闭串口中断TI=0; //清发送完毕中断请求标志位SBUF=dat; //发送while(TI==0); //等待发送完毕TI=0; //清发送完毕中断请求标志位ES=1; //允许串口中断
}//定义蓝牙APP中控制按键的键值
#define BLUETOOTH_FORWARD	0x10
#define BLUETOOTH_BACKWARD	0x11
#define BLUETOOTH_LEFT		0x20
#define BLUETOOTH_RIGHT		0x21
#define BLUETOOTH_STOP		0x30void BlueTooth_Init(void)
{UART_Init();
}void BlueTooth_SendData(u8 dat)
{UART_SendByte(dat);
}#define USART_MAX_RECV_LEN	1
u8 USART_RX_BUF[USART_MAX_RECV_LEN];void Uart() interrupt 4
{if(RI){USART_RX_BUF[0]=SBUF;RI = 0;//清除接收中断标志位}								 
}//主函数
void main()
{BlueTooth_Init();while(1){  switch(USART_RX_BUF[0]){case 1: Car_ForwardRun();break;case 2: Car_BackwardRun();break;case 3: Car_LeftRun();break;case 4: Car_RightRun();break;case 5: Car_StopRun();break;}}							
}

4、手机端调试软件

APP:SPP蓝牙串口

 说明:

首先要点十六进制,如果前,后,左,右方向不对的话就把1,2,3,4调换一下,或者改程序,还可以改硬件电机的接线


http://chatgpt.dhexx.cn/article/28jIiZOO.shtml

相关文章

51单片机通过ESP8266模块与手机进行通讯(单片机)

本文章内容已经弃用,最新内容请参考ESP8266系列ESP-01S模块的配置使用(51单片机) Step1:配置ESP8266 通过USB转TTL模块把ESP8266模块和电脑连接起来,如图 把ESP8266模块的VCC,GND,CH_PD,UTXD,URXD口分别接USB转TTL模块的3.3v,地,3…

C51单片机用esp8266点亮led灯(含源码)

大家好,我是一个单片机新手,也是一个兴趣者,我以前想用c51单片机用esp8266模块的热点控制led小灯的,实验,可是网上的资料很少,所以今天来给新生,老手也好,想出一个教程,希…

C51---PWM 脉冲宽度调制

1.PWM:脉冲宽度调制,它是通过一系列脉冲宽度进行调制,等效出所需要的波形(包含形状以及幅值)。对模拟信号电平进行数字编码。也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于…

基于51单片机的手机电话拨号盘模拟proteus仿真

功能: 0.本项目采用STC89C52作为单片机系统的控制MCU 1.采用4X4矩阵键盘实现号码输入,并在LCD液晶上显示 2.按下enter键,显示calling…,并且蜂鸣器模拟电话拨号发声 3.按下*键,退格,按下#键,清楚…

基于51单片机的简易自动灌溉系统

基于51单片机的简易自动灌溉系统如下图所示。 系统的主要构成 主控核心:AT89C51. 显示器:LCD1602. 输入设备:独立按键(4个). 水泵控制:继电器控制. 外部数据存储:EEPROM. 温湿度传感器&am…

51单片机期末课程作业之蓝牙、操控、测速、里程小车

文章底部附源码 课程设计报告 学 科: 单片机原理及应用 项 目: 里程记录仪 学 院: 专业、年级: 指导老师: 摘要 设计首先实现对…

【超详细】C51单片机与HC-05蓝牙模块实现手机点灯

此文记录HC05蓝牙模块在C51单片机上的学习历程 文章目录 一、硬件连接(1)配置模式下接线(2)正常模式下接线 二、配置模式操作三、正常模式四、使用蓝牙通过蓝牙调试app点灯1.单片机代码烧录与蓝牙连接2.蓝牙调试app配置 一、硬件连接 HC05一共有6个引脚,此实验一般…

【单片机】C51中的I2C操作-Proteus+Keil4+C语言实现

51单片机中I2C读写操作 开发板:普中51-单核-A2; I2C器件-EEPROM:AT24C02、FM24C02(仿真EEPROM); 仿真软件:proteus; 开发环境:Keil4; 参考资料:开发板所附视频; 如有错误…

51单片机 智能小车

主函数中extern char speed 是在整个工程中与别处的speed共用一个内存 sprintf字串格式化命令,主要功能是把格式化的数据写入某个字符串中。 一、小车组装、用面包板供电、单片机也可以用面包板供电,必须共地、分文件(模块化编程&#xff09…

C51单片机 SIM900A 手机给门禁解锁 智能家居 【C程序代码已开源,更新至Ver4.0】...

为何要实施这个项目? 一般小区楼下,每幢都会有一个门禁系统, 可以使用钥匙打开门禁, 有的可以使用刷卡打开门禁, 有的可以使用密码打开门禁, 但是,长期下来,因为小区人多,锁的钥匙孔会被捅坏,物业修起来也很怠慢 使用密码按键解锁门禁,按键也会失灵 每家都会安装一个…

基于STC89C51单片机,CH340芯片的下载电路

前几天看到了卓晴公众号写的三篇关于STC系列单片机的下载电路,然后结合了其他的文章,对下载电路有了更加深入的了解,在这里我梳理一下自己的学习过程,附上完整的资料,方便日后查看,也方便有兴趣的同学交流讨…

C51单片机简易密码锁(课程设计)

已经过测试,全部可用。手机好像不能发博客,相册提取图片代码粘黏复制可用。 本密码锁用于开门关门。绿灯保持常亮状态,表示一直通电状态。如果处于开门状态,则红灯也会亮起。(单片机上无法显示红绿灯,仿真…

51单片机的架构与原理(STC89C51)

前言 学习单片机,不管怎么学都是要走一些弯路的,有的人弯路走得多,有多人弯路走得少,有些人中途就放弃了,也有不少人成功上岸,掌握了各式各样的单片机、处理器。用51单片机来学习是最合适不过的&#xff0c…

C51单片机利用HC-05蓝牙模块实现手机点灯

蓝牙通信,实现手机端远程(15米)控制单片机,这听起来对于初学者的我来说,是那么不可思议,经过不断地实验,阅读其他大佬的文章,终于实现了。 在有基础的通信原理知识的前提下,知,HC-05…

基于C51单片机的ESP8266Wifi模块(ESP-01s)编程(详细)

1、模块简介 ESP-01S 是由安信可科技开发的 Wi-Fi 模块,该模块核心处理器为ESP8266。ESP8266 拥有完整的且自成体系的 Wi-Fi 网络功能,既能够独立应用,也可以作为从机搭载于其他主机 MCU 运行。当 ESP8266 独立应用时,能够直接从外…

(可远程)开源手机app控制c51单片机,附微信小程序控制

开源手机app控制c51单片机 第一 、先上效果图第二、原理讲解第三、下载程序到c51第四 app inventor 开发第五、微信小程序开发第六 可能遇到的一些小问题 第一 、先上效果图 第二、原理讲解 原理简述:利用发布订阅模式。第一步,新建主题,第二…

java实例内部类

内部类:可以将一个类定义在另一个类或者一个方法的内部。描述一个事物的一个完整结构的描述。内部类包括:实例内部类(普通内部类),静态内部类,局部内部类(定义在方法里,几乎不用&…

Java内部类介绍 - 局部内部类和匿名内部类

文章目录 内部类局部内部类匿名内部类匿名内部类介绍常见的使用形式开发中使用场景 内部类 局部内部类 局部内部类 (鸡肋语法,了解即可) 局部内部类, 在方法、代码块、构造器等执行体中创建一个类, 称为为局部内部类(但是我们一般都不会这样…

夯实Java基础系列8:深入理解Java内部类及其实现原理

本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star、Fork、Watch三连哈,感谢你的支持。 文章首发于我的个人博客: www.how2playlife.c…

初识JAVA内部类

1 内部类概述 如果一个类存在的意义就是为指定的另一个类,可以把这个类放入另一个类的内部。 就是把类定义在类的内部的情况就可以形成内部类的形式。 A类中又定义了B类,B类就是内部类,B类可以当做A类的一个成员看待: 2 特点 1) 内部类可以直接访问外…