標題:
單片機藍牙小車代碼
[打印本頁]
作者:
qwssd
時間:
2022-1-2 16:04
標題:
單片機藍牙小車代碼
經過幾天的資料查詢也是終于把藍牙小車搞出來了,手頭只有ZS-040所以用的他,手機上用的是藍牙串口app。做小車其實就用了一個知識點。就是串口通信。把串口通信搞明白就可以。還有最重要的是程序的波特率和藍牙的比特率一定,一定,一定要一樣。其他也就沒什么了。
單片機源程序如下:
#include <reg51.h>
//波特率很重要,波特率,波特率
sbit int1=P2^0;
sbit int2=P2^1;
sbit int3=P2^2;
sbit int4=P2^3;
unsigned char i;
void stop()//停止
{
int1=0;
int2=0;
int3=0;
int4=0;
}
void back()//后退
{
int1=1;
int2=0;
int3=1;
int4=0;
}
void forward()//前進
{
int1=0;
int2=1;
int3=0;
int4=1;
}
void right() //右轉
{
int1=0;
int2=1;
int3=1;
int4=0;
}
void left()//左轉
{
int1=1;
int2=0;
int3=0;
int4=1;
}
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xfd;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{
InitUART();
while(1)
{
switch(i)
{
case 'A':
forward();//前進
break;
case 'B':
back(); //后退
break;
case 'C':
left();//左轉
break;
case 'D':
right();//右轉
break;
case 'E': //停止
stop();
break;
}
}
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
i=SBUF;//SBUF為單片機接收到的數(shù)據,單片機接收到的數(shù)據都存放在SBUF里;
RI = 0;
}
else
TI = 0;
}
復制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1