arduino蓝牙无线自动下载程序
arduino蓝牙无线自动下载程序测试成功,[img][/img]
下面随便写的程序,请各位不要用与商业,谢谢合作
#include<reg52.h>
#define BAUD 0xfe80 //22.1184
#define uchr unsigned char
#define uint unsigned int
sfr AUXR=0x8e;
sbit RXB=P3^0;
sbit TXB=P3^1;
sbit out=P3^4;
uint cnt;
typedef bit BOOL;
typedef unsigned char BYTE;
typedef unsigned int WORD;
BYTE TBUF,RBUF;
BYTE TDAT,RDAT;
BYTE TCNT,RCNT;
BYTE TBIT,RBIT;
BOOL TING,RING;
BOOL TEND,REND;
void UART_INIT();
void delay();
void delay1();
BYTE t,r;
BYTE buf[16];
void main()
{
TMOD=0x00;
AUXR=0x80;
TL0=BAUD;
TH0=BAUD>>8;
TR0=1;
ET0=1;
PT0=1;
EA=1;
UART_INIT();
while(1)
{
if(REND)
{
REND=0;
if(RBUF == 0x20)
{
out=0;
delay();
delay();
}
if(RBUF == 0x20)
{
EA=0;
out=1;
delay1();
delay1();
RBUF=0;
EA=1;
}
}
}
}
void tm0() interrupt 1 using 1
{
if(RING)
{
if(--RCNT==0)
{
RCNT=3;
if(--RBIT==0)
{
RBUF=RDAT;
RING=0;
REND=1;
}
else
{
RDAT>>=1;
if(RXB)RDAT|=0X80;
}
}
}
else if(!RXB)
{
RING=1;
RCNT=4;
RBIT=9;
}
}
void UART_INIT()
{
RING=0;
REND=0;
RCNT=0;
out=1;
}
void delay()
{
uint x,y;
for(x=0;x<500;x++)
{
for(y=0;y<1000;y++);
}
}
void delay1(uint u)
{
uint x,y;
for(x=0;x<3000;x++)
{
for(y=0;y<5000;y++);
}
}
本自动下载是通过单片机STC15F104E实现的,成本很低的单片机,手机电池供电.
以下是缺点
蓝牙无线下载问题
1:数据量大了无法下载。
2:串口调试使用不方便,如9600就无法使用
3:如果是无线就要考虑充电电池供点电
4:成本高,一套收发蓝牙和板下来成本价格100左右
5:可靠性不是很高
以上问题还的不断解决
电路还没画了,好了上传,谢谢次论坛的教程,小小贴子给大家一点动力
via - 极客工坊