用单片机实现蓝牙功能
析、解包,并将其显示在显示器上为了增强可操作性,本数据传输系统考虑了单片机和PC机两种情况。每一个子系统既可以使用单片机和蓝牙模块接口,也可以使用PC机和蓝牙模块接口。采用这样的技术后,不仅单片机之间可以互传数据,而且单片机还可以和PC机互传数据。
3 系统的程序设计
单片机上电后,首先要初始化自身。在本系统中,使用了键盘扫描和LED显示接口芯片8279。因此在主程序中还要对8279进行初始化:
COM8279 = 0xd1; //总清除
COM8279 = 0x00; //8*8字符显示,左边输入,编码扫描键盘, 双键封锁
COM8279 = 0x50; //读FIFO RAM命令
COM8279 = 0x90; //写显示RAM(数码管选择)
之后,可以把程序分为接收、发送和显示三个主要部分。
3.1 接收部分
系统采用查询的方法采集蓝牙模块传送过来的串行数据。对键盘的按键值进行设定由个人的习惯来进行设定。以C语言的形式的伪代码来表示,接收函数的伪代码如下:
void RcvData(void){
while(DataReceivingNotDone){
ReceiveNextBit;
}
}
3.2 发送部分
键盘数据经过处理后,转化为串行数据发送到蓝牙模块,再由蓝牙模块发送出去。发送函数的C语言形式的伪代码为:
void SendData(void){
if( KeyValue 10 ){ //如果数据是一位数
SendOneByte(); //发送这一位
}
else{ //如果数据是两位数
SendTwoBytes(); //分成两位发送,先发送高位再发送低位
}
}
3.3 显示部分
系统中使用的是八位LED显示,通过控制显示的接口芯片8279,可以控制LED显示的内容。显示函数如下:
void DispLong(unsigned int dat,unsigned char addr){
COM8279 = 0x90 + addr;
DAT8279 = disp_tab[0];
COM8279 = 0x90 + addr;
while(dat){
DAT8279 = disp_tab[dat % 10];
dat /= 10;
}
}
4 结束语
短距离通信的发展趋势是无线通信。蓝牙技术在当前已经应用得比较普遍,但是这种应用往往局限于高端的电子产品中。本文的设计采用低成本的单片机来和蓝牙模块进行技术集成,使得蓝牙技术也可以应用在低端电子产品中。如果您有需要可以与51hei.com联系,本文所设计的数据传输系统在实际中运行良好,可以为嵌入式电子厂商提供一种技术参考。
- 基于DSP数字多功能板的实现(09-08)
- 基于DSP2407的多功能电源控制系统设计(09-08)
- DVR操作系统分析(07-23)
- 基于PROTEUS技术的ARM7显示系统设计与仿真实现(11-22)
- 一种大型软件测试方法(08-01)
- 嵌入式软件三大潜在问题及其测试技术(01-13)