毕业论文串口蓝牙无线数据传输实验_第1页
毕业论文串口蓝牙无线数据传输实验_第2页
毕业论文串口蓝牙无线数据传输实验_第3页
毕业论文串口蓝牙无线数据传输实验_第4页
毕业论文串口蓝牙无线数据传输实验_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程设计报告年级 09级 专业 集成电路设计与集成系统 班级 姓名 同组人姓名 无指导老师 周密 职称 高工课程名称 短距离无线通信实践课程性质 专业选修设计项目 串口蓝牙无线数据传输实验要求 选开1 设计目的1.1 针对数据采集场合电缆连接复杂、易受电磁干扰等问题,设计了一种基于csr公司的蓝牙芯片(bc417143)进行无线传输的单片机数据采集传输系统,实现对现场数据的采集和短距离内数据的无线传输;1.2 通过串口蓝牙无线数据传输的设计,掌握蓝牙无线通信的原理;1.3 通过串口蓝牙无线数据传输的设计,掌握用protel软件进行电路原理图的设计及绘制pcb图。2 设计要求2.1通过查阅相关

2、资料,制定出设计方案; 2.2设计电路原理图、设计pcb、做出pcb板,安装焊接硬件;2.3设计软件,进行系统调试;2.4 通过设计出的串口蓝牙数据传输系统,实现对现场数据的采集和短距离内数据的无线传输。3 课程设计的进度安排3.1第一周至第二周,联系导师,与导师见面,了解课程设计任务;3.2第三周至第四周,查阅资料,制定计划表,确定计划方案,阅读相关文件,撰写开题报告;3.3第五周至第六周,绘制原理图;3.4第七周至第八周,画pcb板,购买元器件;3.5第九周至第十周,安装、焊接硬件;3.6第十一周至第十二周,程序设计,系统调试;3.7第十三周至第十四周,撰写论文设计报告。4 设计原理及结果

3、摘要:蓝牙是一种低成本、低功耗的短距离无线通信标准,它的目的是取代现有个人电脑与外部设备之间的有线连接,实现设备之间低成本的无线互连通信。本文针对数据采集场合电缆连接复杂、易受电磁干扰等问题,设计了一种基于csr公司的蓝牙芯片(bc417143)进行无线传输的单片机数据采集传输系统,整个装置由前端数据采集、传送部分以及末端的数据接收部分组成。前端数据采集部分由位于现场的温度传感器、信号放大电路、a/d转换器、单片机、存储器、串口通信等构成;传送部分主要利用自带微带天线的蓝牙模块进行数据的无线传输;末端通过蓝牙模块、串口通信传输将数据送到上位pc机进一步处理。实现了对现场数据的采集和短距离内数据

4、的无线传输,解决复杂的电缆连接问题,使用方便,对于类似的数据采集传输系统的设计具有很好的借鉴意义。正文部分4.1蓝牙技术概述蓝牙技术(bluetooth)是近年来发展迅速,可以用来替代数字设备间有线电缆连接的短距离无线通信技术,是一种使用电波的、 近距离的无线数据通信技术。传输速度为1mbps,传输距离为10米左右,工作频段为全球统一开放的2.4ghz工业、科学和医学频段。利用“蓝牙”技术能够有效地简化台式电脑、笔记本电脑和移动电话等移动通信终端设备之间的通信, 从而使这些现代通信设备之间的数据传输变得更加迅速高效,并为无线通信拓宽道路。利用蓝牙技术构建数据采集无线传输模块,与传统的电线传输数

5、据相比,应用篮牙技术的优点主要有:(1)蓝牙系统因采用了跳频扩频技术,故可以有效的提高数据传输的安全性和抗干扰能力。(2)采用全球统一开放的频段,全球范围适用。(3)无需铺设线缆,降低了改造成本,方便了使用人员。(4)可以建立临时性的对等连接,进行主从设备间一对一或一对多的连接,便于进行集中控制。4.2 蓝牙协议规范 蓝牙协议是蓝牙设备间交换信息所应遵守的规则。与开放系统互联(osi)模型一样,蓝牙技术的协议体系也采用了分层结构,从低层到高层形成了蓝牙的协议栈,各层协议定义了所完成的功能和使用的数据分组格式。所有的蓝牙设备制造厂商都必须严格遵守蓝牙协议中的要求和规定,以保证蓝牙产品间的互操作性

6、。4.2.1蓝牙射频协议蓝牙技术诞生的初衷是以低功耗、低成本的无线接口取代现在纷繁复杂的有线接口。蓝牙射频部分不是重新开发的新技术,而是采用了在技术和市场上已经成熟的协议和算法。此部分介绍蓝牙射频协议规范,包括频段和信道安排、射频收发信机的性能、时隙与分组类型等。4.2.2 蓝牙射频协议规范4.2.2.1蓝牙射频概述射频是指介于声音频率与红外线频率之间的电磁波频率。对于无线通信系统而言,射频部分就是通信系统的“空中接口”,不同厂商的设备要实现兼容或者互操作的基本要求就是射频规范的统一,而且通信质量也是由射频来决定。蓝牙射频规范规定了蓝牙射频频段、调制方式、跳频频率、发射功率、接收机灵度等参数。

7、蓝牙射频部分在蓝牙协议堆栈中的位置和基本功能如下图4-1所示。蓝牙主机应用程序高层协议主机控制器接口主机控制器链路管理器基带与链路控制蓝牙音频射频 蓝牙模块蓝牙设备天线载波产生信号调制数据收发功率控制信号强度蓝牙射频图4-1 蓝牙射频在蓝牙协议堆栈中的位置4.2.2.2频段和信道安排蓝牙工作在无需许可证的2.4ghz ism频段上。表4-1列出了目前世界上各个国家的蓝牙频段和信道频率。蓝牙采用了跳频扩谱技术主动地去避免工作频段受干扰(来自微波炉、无线局域网设备等)。表4-1 蓝牙频段分配地理位置ism频段范围射频信道频率中国、美国、欧洲2400.02483.5mhzf=(2402+k)mhz;

8、k在0、1-78中随机取值法国2446.52483.5mhzf=(2454+k)mhz;k在0、1-22中随机取值日本2471.02497.0mhzf=(2473+k)mhz;k在0、1-22中随机取值西班牙2445.02475.0mhzf=(2449+k)mhz;k在0、1-22中随机取值我国的蓝牙射频频段最低频率2.402ghz,最高频率为2.48ghz。蓝牙每个频道带宽为1mhz,相邻频道中心频率间隔为1mhz。为减少带外的辐射和干扰,保留的上、下保护频带分别为3.5mhz和2mhz。79个跳频频点中至少有75个应该伪随机地进行跳变,在一个30秒的时间段内,任何一个频点的使用时间不得超过

9、0.4s。4.2.2.3蓝牙发射器性能根据蓝牙发射器发射功率电平大小,蓝牙设备有3个功率级别。1级功率的蓝牙设备发射功率为100mw (20dbm);2级功率的蓝牙设备反射功率为2.5mw(约4dbm);3级功率的蓝牙设备发射功率为1mw(0dbm)。(1)蓝牙射频调制特性蓝牙射频采用的调制方式是高斯滤波的二进制频移键控(gaussian frequency shift keying,gfsk),码元带宽积bt=0.5,调整指数(modulation index)h=0.280.35。蓝牙射频数据速率为1mbps,最小频偏不小于115khz,过零误差小于1/8码元周期。二进制“1”用正频偏表示

10、,“0”用负频偏表示。符号定时(symbol timing)精度高于20ppm。发射序列1010的最小频偏不小于发射序列00001111频偏的80。(2)蓝牙射频的杂散辐射带内杂散辐射蓝牙发射器信号必须通过一个频谱整形器(frequency mask),其频谱必须与美国联邦通信委员会的20db带宽定义相一致,并且根据fcc的标准进行测量。除了fcc的要求,邻信道功率也作了定义。发射功率在100khz带宽上进行,发射器在信道m上发射一个伪随机序列,邻信道功率在信道n上测量。发送频谱整形的要求如表4-2所示。表4-2发送频谱整形的要求频偏发送功率/dbm550khz-20|m-n|=2-20|m-

11、n|3-40带外杂散辐射蓝牙射频的带外杂散辐射功率的测试在100khz上进行,测试要求如表4-3所示。表4-3带外杂散辐射要求频段运行模式空闲模式301000mhz-36dbm-57dbm112.75ghz-30dbm-47dbm1.81.9ghz-47dbm-47dbm5.155.3ghz-47dbm-47dbm蓝牙射频的初始发送频率在中心频点fo附近75khz范围内。表4-4是同一蓝牙分组内的频率漂移。 表4-4 同一个分组内的频率漂移分组类型频率漂移单时隙25khz三时隙40hz五时隙40hz最大偏移率400khz4.2.2.4蓝牙接受器性能(1)测试接收器的参考信号 参考信号为gfsk

12、已调信号,调制指数h=0.32(11),码元带宽积bt=0.5(11),比特率=mbps,频率偏移不大于,调制序列为伪随机二进制序列(pseudo random binary sequence)prbs9,干扰调制序列为伪随机二进制序列prbs15。(2)接收器的实际灵敏度实际灵敏度为蓝牙通信系统误比特率达到1时所需要的输入电平,蓝牙接收机灵敏度应该优于-70dbm。(3)干扰性能干扰性能测量的条件是:同信道及相邻1mhz,2mhz信道上的信号比参考灵敏度高10dbm以上,其它频率时信号比参考灵敏度高3db。表4-5列出了所要求的信干比。有用信号的2mhz之外允许存在5个不符合要求的杂散频率,

13、它们应该满足放宽的干扰性能(信干比c/i=-17db)。表4-5 要求的信噪比测试信道信噪比同信道干扰111mhz邻信道干扰02mhz邻信道干扰-303mhz邻信道干扰-40镜像信道干扰-901mhz邻信道与带内镜像信道干扰-20(4)接收信号强度指示 通过对接收到的信号与两个门限电平进行比较得到接收信号强度指示rssi。在这两个门限之间是信号最佳接收范围,如图4-2所示。高门限低门限206db最大值= 56db最小值=高出实际接收机灵敏度6db图4-2 rssi的动态范围和精度发射器的功率和接收灵敏度可以决定无线设备的成本和便携性。例如无线局域网设备的发射功率是2030dbm(约1w),设备

14、的体积和功耗都非常大,不适合于大多数功率受限的个人设备和便携式设备,这些设备接收灵敏度也远远低于802.11的无线接收机。相对于无线局域网设备来说,蓝牙设备能够以较低的成本完成简单的无线传输。4.2.3蓝牙基带收发定时蓝牙射频收发器采用时分双工(tdd)机制,tdd定时的精确性取决于蓝牙设备所处的模式(指理想的收发,忽略了定时抖动和时钟频率的不稳定性)。主设备发送分组的平均定时相对漂移(相对于理想的625us时隙)不能超过20ppm(百万分之二十),瞬时定时不能偏离平均定时1us。4.2.3.1主从设备定时同步微微网使用主设备系统本地时钟(clkn)进行同步。微微网存在期间,主设备时钟不进行调

15、整。主设备发送(tx)定时严格依赖于主设备时钟,因此主设备在连续的发送之间必须保持一个精确的m1250us间隔(m是自然数)。主设备接收(rx)定时依赖于主设备tx定时,rx偏移为n625us(n是正奇数)。对于主设备rx定时,主设备使用宽度为10us的漂移窗口。允许从设备有一定的tx定时偏差。主设备将在接收某一个特定分组之前调制rx定时,但不调整后续收发定时。从设备调整自身时钟与主设备时钟同步。从设备每收到一个分组,它与主设备的时钟偏移量就进行更新,通过比较收到分组的rx时刻与自身估计rx时刻,从设备纠正时钟偏移误差。由于同步从设备的过程只需要信道接入码(cac),所以从设备rx时钟可以通过

16、主从时隙发送的任何分组进行调整。从设备tx定时必须基于最近一次从设备rx定时,rx定时基于主从时隙的最近一次成功的通信。对于acl链路,这次通信一定发生在当前从设备发送之前的主从时隙上;对于sco链路,该通信可能发生在几个主从时隙之前,因为从设备允许即使在主从时隙之前没有收到分组也发送一个sco分组。只要定时误差在宽度为10us的漂移窗口内,从设备就能够接收一个分组并能调整分组。若激活从设备在一段时间内无法接收到来自主设备的合法cac,它将增加漂移窗口宽度或使用预测定时漂移来增加接收主设备分组的概率。4.2.3.2 连接状态蓝牙收发器在连接状态交替的进行收发操作,如图4-3所示。图4-3只给出

17、了单时隙分组的情况,根据分组类型和有效载荷,分组能够占用至多366us(即单时隙分组最多366bit),每个rx和tx在不同的跳频频率上进行。1250us625us主设备从设备主tx时隙主rx时隙主tx时隙g(2m)10us g(2m+1)g(2m+2)=366us10us从rx时隙从rx时隙从tx时隙图4-3 单时隙分组连接模式下主从设备收发定时在rx时隙的开始,接收相关器在不确定窗口中寻找正确的cac,如果没有触发事件发生,接收器进入休眠状态,直到下一个rx事件发生;如果触发事件发生,接收机保持接收状态,并接收后面的分组。4.2.3.3 从保持模式返回到激活模式保持模式中的收发器即不发送也

18、不接收数据,当从保持模式返回到连接模式时,从设备在发送信息之前必须侦听主设备,在这种情况下,查找窗口可以从20us增加到xus,如图4-4所示。为了减少同步时间,当从保持模式返回激活模式时,建议使用单时隙分组,特别是当常时间保持后,查找窗口可以超过625us。xus625us预计主设备tx时刻图4-4 设备由保持模式返回的接收定时4.2.3.4 解除休眠、呼吸模式休眠和呼吸这两种模式与保持模式相似。处于休眠或者呼吸模式的从设备周期性地醒来,侦听主设备信号以便重新调整自身时钟。和由保持模式返回激活模式时相同,从设备从休眠或呼吸模式醒来时也要增加查询窗口,从10us增加到xus。4.2.3.5 寻

19、呼状态进行寻呼的主设备向要连接的从设备发送相应的接入码(通过id分组),发送过程快且使用多个不同的频率。因为id分组非常短,跳频速率可以从1600跳/s增加到3200跳/s。一个tx时隙内进行寻呼的主设备使用两个频率,一个rx时隙从设备要在两个频点上进行接收,如图4-5所示。f (k+1)10us625us312.5ustx时隙rx时隙f(k)f(k+1)ktx时隙f (k)68usf(k+2)f(k+3)图4-5 寻呼模式的收发定时4.2.3.6 fhs分组在连接建立阶段和在主从转换时,主设备发送fhs分组到从设备,用于建立时间和频率同步。当从设备收到寻呼信息,就在625us后立即发送一个包

20、括id分组的响应信息。主设备将在rx时隙后的tx时隙发送fhs分组,响应信息和fhs分组之间的时间差依赖于从设备收到的寻呼信息的定时。图4-6是从设备在主从的第一个频点收到寻呼信息的情况,图4-7是在第二个频点收到寻呼信息的情况。在第一个寻呼信息和fhs分组间有1250的延迟。fhs主到从时隙从到主时隙主到从时隙主设备从设备625us312.5usf(k)68usf(k+1)f (k)f (k+1)图4-6 第一个半时隙成功寻呼fhs分组定时fhs主到从时隙从到主时隙主到从时隙主设备从设备312.5usf (k)68usf(k+1)f (k)f (k+1)f(k+2)625us图4-7 第二个

21、半时隙成功寻呼fhs分组定时4.2.3.7 多个从设备的收发定时当有多个从设备时,从设备要分时地与主设备进行通信。从设备只有当收到带有am_addr的分组时,才在下一个从主时隙中进行响应。在广播信息的情况下,不允许返回响应分组。多个从设备的收发定时如图4-8所示。 主设备主设备从设备1从设备1从设备2从设备2txtxtxtxrxrxrxrxtxtxrxrxrxrxrxrxrxrxrxtx11111121112222222221 图4-8 多个从设备收发定时4.2.4 蓝牙主机控制器接口传输层4.2.4.1 hci传输层概述hci传输层是指蓝牙主机和蓝牙主机控制器之间相连的物理接口。目前,蓝牙h

22、ci传输层的物理接口有通用串行总线usb、串行端口(rs232)、通用异歩收发器uart和个人计算机存储卡国际协会(pc卡),蓝牙设备可以采用一种或几种不同的物理接口来实现通信。本部分只介绍hci的rs232传输层。4.2.4.2 hci的rs232传输层与蓝牙usb传输层比较 hci指令分组、事件分组和数据分组经过不同的usb端点传输,蓝牙usb主机可以区分不同的hci分组类型,从而做出相应的处理。但是对于rs232来说,所有数据收发都是分别经过rx和tx两条线,蓝牙rs232主机无法区分接收到的hci分组究竟是哪一组分组,所以,通过蓝牙rs232主机的hci分组必须附加特殊的标志用于区分其

23、分组类型。这一特殊标志就是蓝牙hci rs232分组指示器,它附加于每一种对应的hci分组的最前面。rs232分组头列于表4-6当中。表4-6 rs232分组指示器hci分组类型rs232分组指示器取值hci指令分组0x01hci acl数据分组0x02hci sco数据分组0x03hci事件分组0x04hci错误消息分组0x05hci协商分组0x06rs232的传输分组的结构如图4-9所示。当一次发送一个以上的hci分组时,hci分组类型头将8位的序列号增加1(除非该重发分组作为实现纠错功能的一部分)。lsb msbrs232分组头(8位)序列号(8位)hci分组/错误消息/协商分组的有效载

24、荷 图4-9 rs232传输分组的结构利用rs232接口进行数据传输之前,在rs232接口两端的设备应该双方协商波特率、奇偶校验类型等接口参数。实际应用中,主机最好采用主机控制器的默认值。4.2.5系统结构原理本课题以蓝牙模块csr 417143和单片机为主,设计了基于串口的蓝牙无线数据传输系统,整个装置由前端数据采集、传送部分以及末端的数据接受部分组成(如pc机)。前端数据采集部分由位于现场的温度传感器18b20、信号放大电路、a/d转换器、单片机、存储器、串口通信等构成,传送部分主要利用自带微带天线的蓝牙模块进行数据的无线传输;末端通过蓝牙模块、串口通信传输将数据送到上位pc机进一步处理。

25、整个系统结构框架图如图4-10所示。电源电路温度传感器信号放大器a/d转换器下位机主控器at89c51数据存储扩展通信电平转换蓝牙模块1晶振电路上位机通信电平转换蓝牙模块2图4-10 基于蓝牙无线传输的数据采集系统结构框架图 蓝牙模块与at89c51串口之间采用蓝牙模块提供的rs232传输层接口实现通信,需要外接电路实现电平转换。另外,为了将5v输入电压转换为3.3v电压,选用电源稳压芯片1117为蓝牙模块供电。at89c51与蓝牙模块的接口示意图如图4-11所示。at89c51txd(p31)rxd(p30)csr417rxdtxd图4-11 at89c51与蓝牙模块的接口示意图4.2.5.

26、1 串口蓝牙无线数据传输硬件电路方案(1)csr417143 蓝牙模块资料蓝牙串口核心模块采用csr公司的bluecore4-external蓝牙芯片,v2.0协议标准,工业级标准26.9mm x 13 mm x 2.2mm,自带高效板载天线,透明串口,可与各种蓝牙适配器、蓝牙手机配对使用,也可主从一对使用。如图4-12所示。产品特点如下: 模块中使用csr公司蓝牙芯片bc417143 支持蓝牙规范v2.0edr 支持piconect 和 scatternet 提供uart及全速usb v1.1/2.0标准接口 有效通讯速率到2.1mbps spi调试接口 可编程i/o口 13bit pcm语

27、音接口,用于外界codec芯片 用户定制片内软件,即对应各种应用的profiles 50欧姆天线接口 图4-12 csr417143 蓝牙模块(2)电路接口rs232串行口(ttl电平)、电源接口、连接状态信号口、主机模块含“放弃原记忆的从机模块地址重新搜寻模块”信号引脚。应用方案如图4-13所示。 图4-13 rs232 串行口应用方案(3)状态说明该模块使用分两种方式:成对使用,一主一从,分别接串口(配对后,上电给单个模块,闪得慢的为主机,闪得快的为从机,注:当主模块从未与从模块配对过时为快闪)。主从成对使用不需要驱动程序,两个模块都上电就能传输;从机配合蓝牙适配器使用,蓝牙适配器需要驱动

28、程序。可配合笔记本电脑、pda 、蓝牙手机等设备直接使用。 模块上的led灯频闪状态时表示正在配对。 常亮表示配对完毕,此时串口功能已经启动。 一主一从成对正常使用时灯不会灭。如主机和从机距离太远而断线,则主机和从机的灯一直闪,如果它们距离再靠近,则又会找在一起而自动连上。主机会记忆它配好的从机,一上电给主机就会找它记忆的从机地址,如果要主机配新的从机,则按下s2按键,则主机会放弃原来配的从机,重新寻找新的从机。(4)串口蓝牙无线数据传输电路原理图4-14和pcb图4-15 图4-14 蓝牙应用电路原理图 图4-15 蓝牙应用电路pcb图(5)蓝牙模块应用电路原理图4-16和pcb图4-17

29、图4-16 蓝牙模块应用电路原理图图4-17 蓝牙模块应用电路pcb图(6)蓝牙spi下载线原理图4-18 图4-18 蓝牙spi下载线原理图(5)硬件结构图4-19 图4-19 硬件结构4.2.5.2 蓝牙主机与从机固件烧写和参数的修改(1)通过蓝牙开发工具bluelab中的blue flash给蓝牙烧写主机和从机的应用固件。过程如下图4-20所示。图4-20 烧写主机和从机的应用固件(2)通过蓝牙开发工具bluelab中的pstool修改蓝牙参数,例如蓝牙名称,波特率等。过程如下图4-21所示。 图4-21 修改蓝牙参数4.2.5.3 数据采集和蓝牙通信软件实现本课题的软件主要包括两部分:

30、数据采集和蓝牙通信。为了保证数据采集的实时性,数据采集部分采用汇编语言编程,单片机采用定时采样,具体选择定时方式2,定时为100微秒,定时结束后,进行a/d转换,单片机采用查询的方式读取18b20的转换结果,然后将转换后的数据存至外扩存储器6264中。另外,串行口工作在方式1,波特率为2400bps。蓝牙通信部分利用主机控制器接口hci层建立点对点的蓝牙异步无链接数据传输通道,当两个蓝牙模块链路建立成功后,就可以按照蓝牙规范规定的hci数据分组格式收发数据。(1)温度数据采集和显示程序如下:;温度传感器18b20汇编程序,采用器件默认的12位转化,最大转化时间750微秒,将温度数据通过串口发送

31、出去,波特率2400,适合12晶振dot equ 30hzhengshu equ 31hflag1 equ 38h ;是否检测到ds18b20的标志位;定义温度数据dis_1 equ 32h ;符号dis_2 equ 33h ;十位dis_3 equ 34h ;个位dis_4 equ 35h ;小数点后第一位dis_5 equ 36h ;小数点后第二位wddata bit p1.5 ;定义ds18b20的数据脚为p2.2端口 org 0000h;以下为主程序进行cpu中断方式设置clr ea ;关闭总中断mov scon,#50h ;设置成串口1方式mov tmod,#20h ;波特率发生器t

32、1工作在模式2上mov th1,#0f4h ;预置初值(按照波特率2400bps预置初值)mov tl1,#0f4h ;预置初值(按照波特率2400bps预置初值)setb tr1 ;启动定时器t1;以上完成串口2400通讯初始化设置;-; 主程序;-main:lcall init_1820 ;调用复位ds18b20子程序main1:lcall get_temper;调用读温度子程序lcall formula ;通过公式计算,小数点后显示两位lcall bcdlcall display ;调用串口显示子程序lcall delay500 ;延时0.5秒lcall delay500 ;延时0.5秒

33、lcall delay500 ;延时0.5秒ajmp main1;-; ds18b20复位初始化程序;-init_1820:setb wddatanopclr wddata;主机发出延时540微秒的复位低脉冲mov r0,#36lcall delaysetb wddata;然后拉高数据线nopnopmov r0,#36tsr2:jnb wddata,tsr3;等待ds18b20回应djnz r0,tsr2ljmp tsr4 ; 延时tsr3:clr flag1 ; 置标志位,表示ds1820存在 mov c,flag1 mov p0.0,c ;sjmp $ljmp tsr5tsr4:setb

34、flag1 ; 清标志位,表示ds1820不存在ljmp tsr7tsr5:mov r0,#06bhtsr6:djnz r0,tsr6 ;复位成功!时序要求延时一段时间tsr7:setb wddataret;-; 读出转换后的温度值;-get_temper:setb wddata ; 定时入口lcall init_1820 ;先复位ds18b20jnb flag1,tss2ret ; 判断ds1820是否存在?若ds18b20不存在则返回tss2:mov a,#0cch ; 跳过rom匹配lcall write_1820mov a,#44h ; 发出温度转换命令lcall write_1820

35、mov r0,#50 ;等待ad转换结束,12位的话750微秒.lcall delaylcall init_1820 ;准备读温度前先复位mov a,#0cch ; 跳过rom匹配lcall write_1820mov a,#0beh ; 发出读温度命令lcall write_1820lcall read_18200; 将读出的九个字节数据保存到60h-68hret;-;写ds18b20的子程序(有具体的时序要求);-write_1820:mov r2,#8 ;一共8位数据clr c wr1:clr wddatamov r3,#6djnz r3,$rrc amov wddata,cmov r3

36、,#24djnz r3,$setb wddatanopdjnz r2,wr1setb wddataret;-; 读ds18b20的程序,从ds18b20中读出九个字节的数据;-read_18200:mov r4,#9mov r1,#60h ; 存入60h开始的九个单元re00:mov r2,#8re01:clr csetb wddatanopnopclr wddatanopnopnopsetb wddatamov r3,#09re10:djnz r3,re10mov c,wddatamov r3,#23re20:djnz r3,re20rrc adjnz r2,re01mov r1,ainc

37、r1djnz r4,re00ret;-;温度计算子程序;-formula: ; 按公式:t实际=(t整数-0.25)+( m每度-m剩余)/ m每度;计算出实际温度,整数部分和小数部分分别存于zhengshu单元和dot单元;将61h中的低4位移入60h中的高4位,得到温度的整数部分,并存于zhengshu单元mov 29h,61hmov a,60hmov c,48hrrc amov c,49hrrc amov c,4ahrrc amov c,4bhrrc amov zhengshu,a; ( m每度-m剩余)/ m每度,小数值存于a中mov a,67hsubb a,66hmov b,#64h

38、mul abmov r4,bmov r5,amov r7,67hlcall div457mov a,r3;再减去0.25,实际应用中减去25subb a,#19hmov dot,a ;小数部分存于dot中mov a,zhengshusubb a,#00h ;整数部分减去来自小数部分的借位mov zhengshu,amov c,4bhjnc zheng ;是否为负数cpl ainc amov dis_1,#2dh ; 零度以下时,第一位显示-号mov zhengshu,azheng:mov dis_1,#2bh ; 零度以上时,第一位显示+号ret;-;双字节除以单字节子程序;-div457:

39、clr cmov a,r4subb a,r7jc dv50setb ov ;商溢出retdv50: mov r6,#8 ;求平均值(r4r5r7r3)dv51: mov a,r5rlc amov r5,amov a,r4rlc amov r4,amov f0,cclr csubb a,r7anl c,/f0jc dv52mov r4,adv52: cpl cmov a,r3rlc amov r3,adjnz r6,dv51mov a,r4 ;四舍五入add a,r4jc dv53subb a,r7jc dv54dv53: inc r3dv54: clr ovret;-;转换成非压缩的bcd码;

40、-bcd: mov a,zhengshumov b,#0ahdiv aborl a,#00110000b ;转换成ascii码mov dis_2,amov dis_3,bmov a,dis_3orl a,#00110000b ;转换成ascii码mov dis_3,amov a,dotmov b,#0ahdiv aborl a,#00110000b ;转换成ascii码mov dis_4,amov dis_5,bmov a,dis_5orl a,#00110000b ;转换成ascii码mov dis_5,aret;-;串口显示数据子程序;-display:clr timov a,dis_1m

41、ov sbuf,ajnb ti,$ ;发送给pc,通过串口调试助手显示+/-clr timov a,dis_2mov sbuf,ajnb ti,$ ;发送给pc,通过串口调试助手显示整数第一位clr timov a,dis_3mov sbuf,ajnb ti,$ ;发送给pc,通过串口调试助手显示整数第二位clr timov a,#2ehmov sbuf,ajnb ti,$ ;发送给pc,通过串口调试助手显示小数点clr timov a,dis_4mov sbuf,ajnb ti,$ ;发送给pc,通过串口调试助手显示小数第一位clr timov a,dis_5mov sbuf,ajnb ti

42、,$ ;发送给pc,通过串口调试助手显示小数第一位clr timov a,#0dh;回车mov sbuf,ajnb ti,$ ;发送给pc,通过串口调试助手显示clr timov a,#0ah;换行mov sbuf,ajnb ti,$ ;发送给pc,通过串口调试助手显示ret;-;延时子程序;-;为保证ds18b20的严格i/o时序,需要做较精确的延时;在ds18b20操作中,用到的延时有15 s,90 s,270 s,540 s;因这些延时均为15 s的整数倍,因此可编写一个delay15(n)函数delay: ;11.05962m晶振loop: mov r1,#06hloop1: djnz

43、 r1,loop1djnz r0,loopret;500毫秒延时子程序,占用r4、r5delay500:mov r4,#248da222:mov r5,#248djnz r5,$djnz r4,da222retend(2)两个蓝牙设备间进行数据通信是通过hci分组实现的,hci作为蓝牙软件协议堆栈中软硬件之间的接口,为上层提供了访问和控制蓝牙硬件的统一接口。hci是通过分组(packet)的方式来进行信息交换的。hci分组有三种类型:指令分组(command packet)、事件分组(event packet)和数据分组(data packet)。主机与蓝牙模块用指令-应答方式进行通信,主机向

44、主机控制器发送指令分组;主机控制器执行某一指令后,大多数情况下会返回给主机一个指令完成事件分组(command complete event packet),该分组携带有指令完成的信息。有些分组不会返回指令完成事件,而返回指令状态事件分组(command status event packet)用以说明主机发出的指令己经被主机控制器接收并开始处理。如果指令分组的参数有误,返回的指令状态事件分组就会给出相应的错误代码;数据分组分为异步无连接(asynchronous connectionless, acl)数据分组和同步面向连接(synchronization connection oriented, sco)数据分组两种。在本课题中,仅涉及到数据通信,而没有涉及到语音通信,因此建立的是acl链路。单片机与蓝牙模块的软件接口,就是指单片机如何通过软件实现向蓝牙模块发送hci指令,蓝牙模块又如何通过软件向单片机返回hci事件以及两者之间如何实现数据传输。单片机和蓝牙模块间通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论