基于AT89C51最小系统的手机遥控车

想做一个专属于你的用手机当遥控器的遥控车吗?那就看看这篇文章吧,文章将手把手教你做一个遥控车!
首先车轮选择和电机配套的,电机选择小黄电机或者铁电机就可以,转速选择480转的就可以了,驱动选择L298N,电池选择12V蓄电池就行,然后用降压转换成5V给驱动供电,蓝牙选择一个HC—05按正常配置即可(配置可在网上搜索HC—05蓝牙主从配置,配置成从即可,手机当主进行操控),然后用最小系统即可。
因为功能比较简单,所以不需要模块化编程。
手机端下载一个手机蓝牙,然后设置收发的按键即可!
纠结材料的可以看一下之前的小车,里面涉及的视频有BOM表!

#include <REGX52.H>
#include <intrins.h>
//方便下面使用的预处理
#define uchar unsigned char
#define uint  unsigned int
#define ulong  unsigned long
//定义使用到的所有端口
sbit a1=P1^7;sbit a2=P1^6;
sbit b1=P1^5;sbit b2=P1^4;
sbit c1=P0^7;sbit c2=P0^6;
sbit d1=P0^5;sbit d2=P0^4;
//延时函数
void Delay(uint xms)
{
	uchar i, j;
	while(xms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}
//车轮前进
void forward()
{
	a1=1;a2=0;
	b1=1;b2=0;
	c1=1;c2=0;
	d1=1;d2=0;
}
//后退
void back()
{
	a1=0;a2=1;
	b1=0;b2=1;
	c1=0;c2=1;
	d1=0;d2=1;
}	
//左转
void left()
{
	a1=0;a2=1;
	b1=0;b2=1;
	c1=1;c2=0;
	d1=1;d2=0;
	Delay(50);
	a1=0;a2=0;
	b1=0;b2=0;
	c1=0;c2=0;
	d1=0;d2=0;
	Delay(1);
}
//右转
void right()
{
	a1=1;a2=0;
	b1=1;b2=0;
	c1=0;c2=1;
	d1=0;d2=1;
	Delay(50);
	a1=0;a2=0;
	b1=0;b2=0;
	c1=0;c2=0;
	d1=0;d2=0;
	Delay(1);
}
//停车
void stop()
{
	a1=0;a2=0;
	b1=0;b2=0;
	c1=0;c2=0;
	d1=0;d2=0;
}
//中断控制蓝牙收发
void Com_Int(void) interrupt 4
{
	uchar receive_data;	
	EA = 0;
	if(RI == 1) 
	{ 
		RI=0; 
		a1=0;a2=0;
		b1=0;b2=0;
		c1=0;c2=0;
		d1=0;d2=0;
		receive_data = SBUF;
		switch(receive_data)
		{
			case ('1'):
				forward();break;
			case ('2'):
				back();break;
			case ('3'):
				left();break;
			case ('4'):
				right();break;
			case ('0'):
				stop();break;
		}			
	}		
		EA = 1;
}
//蓝牙
void UsartConfiguration()
{	
	SCON=0X50;		
	TMOD=0X20;			
	PCON=0X00;		
	TH1=0Xfd;		    
	TL1=0Xfd;
	TR1= 1;					
	ES = 1;        
  EA = 1;         
}

void main()
{
	UsartConfiguration();	
	while(1);	
}

一个main函数即可!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值