上一次介绍了基于51单片机的蓝牙遥控小车,使用的是手机APP作为遥控器,本节中介绍使用51单片机制作遥控器。
1.单片机
同样使用51单片机作为控制芯片,同样只需要一个芯片和一个晶振电路单片机就能运行,但是注意可以将需要的引脚外拉
2.按键电路
将按键开关的两端,一端连接到单片机引脚,另一端接到地,接单片机的一端再通过一个10K电阻上拉到5V,也可以不上拉,亲试能用,上拉的话稳定一些,能够防干扰,按键数目自行而定,按照遥控器的那件分布来在洞洞板上焊接
3.蓝牙电路
蓝牙信号脚要结对,只需要单片机的发射脚,即P3.1接到蓝牙模块的接收脚,注意和之前的不一样;蓝牙模块设置成主模块,但是注意车上的蓝牙设置成从模块,注意波特率一致
4.降压电路
需要两节18650电池(两节7.2V),使用一个lm2940稳压芯片就可以产生5V电压给设备供电,或使用其他的5V电源来供电,比如说充电宝
5.程序
初始化部分:
EA=0; //ÔÝʱ¹Ø±ÕÖжÏ
TMOD&=0x0F; //¶¨Ê±Æ÷1ģʽ¿ØÖÆÔÚ¸ß4λ
TMOD|=0x20; //¶¨Ê±Æ÷1¹¤×÷ÔÚģʽ2£¬×Ô¶¯ÖØװģʽ
SCON=0x50; //´®¿Ú¹¤×÷ÔÚģʽ1
TH1=256-jingzhen/(botelv*12*16); //¼ÆË㶨ʱÆ÷ÖØ×°Öµ
TL1=256-jingzhen/(botelv*12*16);
PCON|=0x00; //´®¿Ú²¨ÌØÂʼӱ¶
ES=1; //´®ÐÐÖжÏÔÊÐí
TR1=1; //Æô¶¯¶¨Ê±Æ÷1
REN=1; //ÔÊÐí½ÓÊÕ
EA=1; //ÔÊÐíÖжÏ
执行部分:
void send(unsigned char d) //·¢ËÍÒ»¸ö×Ö½ÚµÄÊý¾Ý£¬ÐβÎd¼´Îª´ý·¢ËÍÊý¾Ý¡£
{
SBUF=zifu; //½«Êý¾ÝдÈëµ½´®¿Ú»º³å
sending=1; //ÉèÖ÷¢ËͱêÖ¾
while(sending); //µÈ´ý·¢ËÍÍê±Ï
}
void main()
{
init();
while(1)
{
if(s2==0)
{
delay(20);
if(!s2)
{
while(!s2);
zifu=0x02;
send(zifu);
}
}
if(s3==0)
{
delay(20);
if(!s3)
{
while(!s3);
zifu=0x08;
send(zifu);
}
}
if(s4==0)
{
delay(20);
if(!s4)
{
while(!s4);
zifu=0x20;
send(zifu);
}
}
if(F1==0)
{
delay(20);
if(!F1)
{
while(!F1);
zifu=0x20;
send(zifu);
}
}
}
}
void uart(void) interrupt 4 //´®¿Ú·¢ËÍÖжÏ
{
if(RI) //ÊÕµ½Êý¾Ý
{
RI=0; //ÇåÖжÏÇëÇó
}
else //·¢ËÍÍêÒ»×Ö½ÚÊý¾Ý
{
TI=0;
sending=0; //ÇåÕýÔÚ·¢ËͱêÖ¾
}
}
附上过程下载网址:https://download.csdn.net/download/qq_36071362/11209740