51单片机通过P3.0从蓝牙模块接受数据的C语言程序

51单片机通过P3.0从蓝牙模块接受数据的C语言程序,第1张

#include<reg52h> //串口通信打印与数码管

#define uint unsigned int

#define uchar unsigned char

sbit dula=P2^6; //申明锁存器1

sbit wela=P2^7; //申明锁存器

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //定义数码管段选

uchar flag; //标志位

uchar a,b,e,f,g,h;

void delay(uint x) //毫秒级延时

{

uint i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

void display(uchar e,uchar f) //数码管显示函数

{

wela=1; //位选

P0=0xfe;

wela=0;

P0=0xff; //消影

dula=1; //段选

P0=table[e];

dula=0;

delay(1);

wela=1; //位选

P0=0xfd;

wela=0;

P0=0xff; //消影

dula=1; //段选

P0=table[f];

dula=0;

delay(1);

}

void init()

{

TMOD=0X21; //T1定时器工作方式2 T0定时器工作方式1

TH0=(65536-50000)/256;

TL0=(65536-50000)%256; //装初值

TH1=0XFD;

TL1=0XFD; //定波特率为9600

SCON=0X50;

PCON=0X00;

ET0=1;

TR1=1;

EA=1;

ES=1;

}

void main()

{

init();

while(1)

{

display(e,f);

if(flag==1)

{

ES=0; //关中断

SBUF=a;

while(!TI);

TI=0;

if(a==1)

{

TR0=1; //开中断

}

if(a==2)

{

TR0=0;

}

ES=1;

flag=0;

}

}

}

void T() interrupt 1

{

TH0=(65536-50000)/256; //重装初值

TL0=(65536-50000)%256;

g++;

if(g==20)

{

h++;

b=h;

SBUF=b;

while(!TI);

TI=0;

g=0;

f=h%10;

e=h/10;

}

if(h==99)

h=0;

}

void Th() interrupt 4

{

RI=0;

a=SBUF;

flag=1;

}

打开 蓝牙 打开 发现 (一般安卓蓝牙都要打开发现 除非之前配对过)

或许有些机子会不能接收或发送特殊格式“如:apk格式”

你可以在后面加"MP3" 变成 MP3格式

这样就能发送了

收到之后把名字"MP3"去掉这样会变回之前的apk格式就能安装了

首先是蓝牙通信,我想指出,如果你用的是蓝牙模块的话,那么它的单片机程序与串口的单片机程序差不多一样,只要你会串口 *** 作,蓝牙也就解决了,如果不是用的蓝牙模块,另当别论。

然后是接受端手机这边,你应该懂一些java东西,知道怎么调用底层程序,编写读取串口程序,根据发送的协议,把接受的数据转化为十进制就可以了

扩展资料

单片机采用51系列单片机用C51语言编写,通过sprintf构造JSON格式文件通过蓝牙串口模块发送到安卓手机,简要代码如下:

sprintf(msg,"{\"RR\":\"%02x\"}\0",(unsigned int )RRtemp);

Serial_print(msg);

这里涉及到Serial_print()函数如下:

void Serial_print(char msg)

{

while (msg != '\0') {

S2BUF = msg;

while ((S2CON & S2TI) == 0);

S2CON &= ~S2TI;

msg++;

}

}

1、第一步是搜索app发明者网络中的数据库服务,然后可以看到官方网站的描述,可以保存数据,也可以读取数据。下一步是实现这两个功能。

2、然后需要创建一个界面来完成保存和阅读的基本功能。可以使用简单的标签,按钮,对话框,然后使用界面布局进行组装。切记不要忘记添加Web微数据库。

3、然后将网络微数据库的地址设置为该地址,然后将其保存在网络微数据库中。保存顺序不应颠倒,将无法读取所需的数据。

4、将数据保存到Web,或者当Web服务失败时,会出现一个对话框提醒我们。

5、最后一件事是在阅读时阅读标签问题。保存数据时,应选择标签名称更长且更独特,以便其他人不会覆盖数据。

//创建一个串口通讯

SerialPort CurrentPort = null;

CurrentPort = new SerialPort();

CurrentPortReadBufferSize = 128;

CurrentPortPortName = comName; //端口号

CurrentPortBaudRate = bandRate; //比特率

CurrentPortParity =parity;//奇偶校验

CurrentPortStopBits = stop;//停止位

CurrentPortDataBits = databit;//数据位

CurrentPortReadTimeout = 1000; //读超时,即在1000内未读到数据就引起超时异常

//绑定数据接收事件,因为发送是被动的,所以你无法主动去获取别人发送的代码,只能通过这个事件来处理

CurrentPortDataReceived += Sp_DataReceived;

CurrentPortOpen();

定义一个变量 byte[] receiveStr;

//绑定的事件处理函数

private static void Sp_DataReceived(object sender, SystemIOPortsSerialDataReceivedEventArgs e)

{

SerialPort sp = sender as SerialPort;

if (sp == null)

return;

byte[] readBuffer = new byte[spReadBufferSize];

spRead(readBuffer, 0, readBufferLength);

//赋值

receiveStr=readBuffer;//当然你可以通过转换将byte[]转换为字符串。

}

//你要求的按钮事件可以这么写

private void button1_Click(object sender, EventArgs e)

{

if(receiveStr!=null)

{

变量 xxx=receiveStr;

}

}

以上就是关于51单片机通过P3.0从蓝牙模块接受数据的C语言程序全部的内容,包括:51单片机通过P3.0从蓝牙模块接受数据的C语言程序、安卓蓝牙怎么发送与接收数据、关于单片机通过蓝牙将数据传输给手机,并在app上面显示出来怎么实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10169846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存