单片机 蓝牙控制小车
时间:10-02
整理:3721RD
点击:
最近在做一个蓝牙控制的小车,说说自己遇到的问题,及自己学习到的东西,最后发现绕了好大的圈,这方面的资料也不全,现在说说我的小车之路!
这是一开始用普通键盘做的PWM调速程序!可以正常运行:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit in1=P1^1;
sbit in2=P1^6;
sbit in3=P1^2;
sbit in4=P1^7;
sbit ina=P1^3;
sbit inb=P1^4;
sbit key_jia=P2^3;
sbit key_jian=P2^4;
sbit key_dao=P2^5;
sbit key_left=P2^6;
uchar w=0,m=0,n=0;
void init() //定时器初始化,
{ TMOD=0x01;
TH0=0xff;
TL0=0x17;
EA=1;
ET0=1;
TR0=1;
P1=0x00;
}
void key()
{
if(key_jia==0)
{
while(key_jia==0);
if(w==100)
w=100;
else
w+=25;
}
if(key_jian==0)
{
while(key_jian==0);
if(w==25)
w=25;
else
w-=25;
}
if(key_dao==0)
{
while(key_dao==0);
{
m+=1;
if(m==1)
{
in1=0;
in2=1;
in3=0;
in4=1;
}
if(m==2)
{
in1=1;
in2=0;
in3=1;
in4=0;
m=0;
}
}
}
if(key_left==0)
{
while(key_left==0);
{
n+=1;
if(n==1)
{
in1=1;
in2=0;
in3=0;
in4=0;
}
if(n==2)
{
in1=1;
in2=0;
in3=1;
in4=0;
n=0;
}
}
}
}
void main()
{
init();
in1=1;
in2=0;
in3=1;
in4=0;
while(1)
key();
}
void time0() interrupt 1
{ uchar tt;
TH0=0xff;
TL0=0x17;
tt++;
if(tt<w)
{
ina=1;
inb=1;
}
else
{
ina=0;
inb=0;
}
if(tt==100)
tt=0;
}
这个PWM,浪费了我好多的时间,有看不懂的自己多看看书,望大神勿喷!
这是一开始的想法,现在看来,好多都太麻烦了,但是很好理解!
希望可以帮到一些想学习的人!
这是一开始用普通键盘做的PWM调速程序!可以正常运行:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit in1=P1^1;
sbit in2=P1^6;
sbit in3=P1^2;
sbit in4=P1^7;
sbit ina=P1^3;
sbit inb=P1^4;
sbit key_jia=P2^3;
sbit key_jian=P2^4;
sbit key_dao=P2^5;
sbit key_left=P2^6;
uchar w=0,m=0,n=0;
void init() //定时器初始化,
{ TMOD=0x01;
TH0=0xff;
TL0=0x17;
EA=1;
ET0=1;
TR0=1;
P1=0x00;
}
void key()
{
if(key_jia==0)
{
while(key_jia==0);
if(w==100)
w=100;
else
w+=25;
}
if(key_jian==0)
{
while(key_jian==0);
if(w==25)
w=25;
else
w-=25;
}
if(key_dao==0)
{
while(key_dao==0);
{
m+=1;
if(m==1)
{
in1=0;
in2=1;
in3=0;
in4=1;
}
if(m==2)
{
in1=1;
in2=0;
in3=1;
in4=0;
m=0;
}
}
}
if(key_left==0)
{
while(key_left==0);
{
n+=1;
if(n==1)
{
in1=1;
in2=0;
in3=0;
in4=0;
}
if(n==2)
{
in1=1;
in2=0;
in3=1;
in4=0;
n=0;
}
}
}
}
void main()
{
init();
in1=1;
in2=0;
in3=1;
in4=0;
while(1)
key();
}
void time0() interrupt 1
{ uchar tt;
TH0=0xff;
TL0=0x17;
tt++;
if(tt<w)
{
ina=1;
inb=1;
}
else
{
ina=0;
inb=0;
}
if(tt==100)
tt=0;
}
这个PWM,浪费了我好多的时间,有看不懂的自己多看看书,望大神勿喷!
这是一开始的想法,现在看来,好多都太麻烦了,但是很好理解!
希望可以帮到一些想学习的人!
有不懂的地方,可以说,简单易懂的我帮你解答,难懂的就得看书去了!
最后发现2个问题,TMOD=0x21,定时器中断里的初值与初始化的时候不一样了改改
谢谢小编分享!
小编 你好 和蓝牙连接的程序是哪里 我初学蓝牙 想知道蓝牙和单片机是怎么通讯的 非常感谢
小编 你好 和蓝牙连接的程序是哪里 我初学蓝牙 想知道蓝牙和单片机是怎么通讯的 非常感谢
我的蓝牙模块,在手机上按着按着,串口就死掉了。 还找不到原因
学习学习。继续
谢谢分享,先学着
很好,值得学习