//-----头文件
#include<reg52.h>
//-----定义全局变量
unsigned
char
temp
/***************************************************
**
函数名称:
uart_init
**
功能描述:
串口初始化函数
**
输
入:无
**
输
出:
无
**
说
明:
无
****************************************************/
void
uart_init(void)
{
scon
=
0x50
//-----scon:
模式
1,
8-bit
uart,
使能接收
tmod
|=
0x20
//-----tmod:
timer
1,
mode
2,
8-bit
重装
th1
=
0xfd
//-----th1:
重装值
9600
波特率
晶振
11.0592mhz
tr1
=
1
//-----tr1:
timer
1
打开
es
=
1
//-----打开串口中断
ea
=
1
//-----打开总中断
}
/***************************************************
**
函数名称:
sendbyte
**
功能描述:
发送字节函数
**
输
入:无
**
输
出:
无
**
说
明:
无
****************************************************/
void
sendbyte(unsigned
char
dat)
{
sbuf
=
dat
while(!ti)
ti
=
0
}
/***************************************************
**
函数名称:
sendstr
**
功能描述:
发送字符串函数
**
输
入:无
**
输
出:
无
**
说
明:
无
****************************************************/
void
sendstr(unsigned
char
*s)
{
while(*s!='\0')
{
sendbyte(*s)
s++
}
}
/***************************************************
**
函数名称:
main
**
功能描述:
主函数
**
输
入:无
**
输
出:
无
**
说
明:
无
****************************************************/
void
main
(void)
{
uart_init()
//-----串口初始化
while(1)
{
if(temp=='h'&&'i')
{
temp=0
sendstr("hello")
}
}
}
/***************************************************
**
函数名称:
uart_ser
**
功能描述:
串口中断服务子函数
**
输
入:无
**
输
出:
无
**
说
明:
无
****************************************************/
void
uart_ser
(void)
interrupt
4
//-----串行中断服务程序
{
if(ri)
//-----判断是接收中断产生
{
ri=0
//-----标志位清零
temp=sbuf
//-----读入缓冲区的值
}
}
通过蓝牙连接手机和Arduinoa) 接线
VCC:接Arduino的5V
GND:接Arduino的GND
TXD:发送端,一般表示为自己的发送端,接Arduino的RX
RXD:接收端,一般表示为自己的接收端,接Arduino的TX。
b) 写Arduino端程序
void setup()
{
Serial.begin(9600)
}
void loop()
{
while(Serial.available())
{
char c=Serial.read()
if(c=='A')
{
Serial.println("Hello I am amarino")
}
}
}
把程序安装到Ardunio开发板时,请先断开蓝牙模块,因为它们的数据都走串口,会引起冲突造成安装失败。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)