基于51单片机串行通信的无线发射极和接收机设计_第1页
基于51单片机串行通信的无线发射极和接收机设计_第2页
基于51单片机串行通信的无线发射极和接收机设计_第3页
基于51单片机串行通信的无线发射极和接收机设计_第4页
基于51单片机串行通信的无线发射极和接收机设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、电子系统设计创新与实践1 概述1.1 课题的目的、背景和意义最近几年来,由于无线接入技术需求日益增大,以及数据交换业务(如因特网、电子邮件、数据文件传输等)不断增加,无线通信和无线网络均呈现出指数增加的趋势。有力的推动力无线通信向高速通信方向发展。然而,工业、农业、车载电子系统、家用网络、医疗传感器和伺服执行机构等无线通信还未涉足或者刚刚涉足的领域,这些领域对数据吞吐量的要求很低,功率消耗也比现有标准提供的功率消耗低。此外,为了促使简单方便的,可以随意使用的无线装置大量涌现,需要在未来个人活动空间内布置大量的无线接入点,因而低廉的价格将起到关键作用。为降低元件的价格,以便这些装置批量生产,所以

2、发展了一个关于这种网络的标准方案。Zigbee就是在这一标准下一种新兴的短距离、低功耗、低数据传输的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术方案。 对于这种短距离、低功耗、低数据传输无线技术,它不仅在工业、农业、军事、环境、医疗等传统领域有着巨大的应用价值,未来应用中还可以涉及人类日常生活和社会生产活动的所有领域。由于各方面的制约,这种技术的大规模商业应用还有待时日,但已经显示出了非凡的应用价值,相信随着相关技术的发展和推进,一定会得到更广泛应用。1.2国内外无线技术相关现状及Zigbee现状无线通信从固定方式发展为移动方式,移动通信发展至今大约经历了五个阶段:第一阶段为20年代

3、初至50年代初,主要用于舰船及军有,采用短波频及电子管技术,至该阶段末期出现才出现150MHVHF单工汽车公用移动电话系统MTS。第二阶段为50年代到60年代,此时频段扩展至UHF450MHZ器件技术已向半导体过渡,大多为移动环境的专用系统,并解决了移动电话与公用电话的接续问题。第三阶段为70年代初至80年代初频段扩展至800MHZ,美国Bell研究所提出蜂窝系统概念并于70年代末进行了AMPS试验。第四阶段为80年代初至90年代中,为第二代数字移动通信兴起与大发展阶段,并逐步向个通信业务方向迈进,此时出现D-AMPS、TACS、ETACS、GSMDCS、cdmaone、PDC、DECT、PA

4、CS、PCS、等各类系统与业务运行。第五阶段为90年代中至今,随着数据通信与多媒体业务需求的发展,适应移动数据、移动计算及移动多媒体运作需要的第三代移动通信兴起,其全球标准化及相应融合工作与样机研制和现场试验工作在快速推进,包括从第二代至第三代移动通信的平滑过渡问题内。近10年来,我国在移动通信领域的科研、设备生产等方面也取得了可喜的进步,国产移动通信设备交换系统、基站和手机等都已经投入生产,并陆续投方市场,第三代移动通信系统的开发和研究也正与世界同步。21世纪的电信技术正进入一个关键的转折期、未来十年将是技术发展最为活跃的时期。信息化社会到来以及IP技术兴起,正深刻地改变着电信网络的面貌以及

5、未来技术发展走向,未来无线通信技术发展主要趋势是宽带化、分组化、综合化、个人化。无线技术也分不同种类,通常以产生无线信号的方式来区分,目前主要的方式有调频无线技术、红外无线技术和蓝牙无线技术三种,其成本和特点也不尽相同。广泛应用于音响 键鼠等各项内容,有很好的发展。而所谓无线技术,就是通过发射模块,以波的形式由接收模块接收,之后把发射的内容解调出来。Zigbee无线技术是一种介于无线标记技术和蓝牙之间的技术方案,Zigbee是一种高可靠的无线数传网络,类似于GSM(全球移动通信)和CDMA(数字通信中出现的一种先进无线扩频通信技术),Zigbee模块类似与移动网络基点,Zigbee技术是建立在

6、IEEE802.15.4标准上,为了促进Zigbee技术发展,2001年8月成立Zigbee联盟,2002年下半年,英国invensys公司、日本三菱电子公司、摩托罗拉电子公司以及荷兰飞利浦半导体公司四大巨头共同宣布,它们将加入“Zigbee联盟”,目前该联盟已经有150家成员,以研发名为Zigbee的下一代无线通信为标准。其功能超越蓝牙简单而实用,大规模简化蓝牙的复杂,专注于低传输应用,但是Zigbee不支持语音,而其低功耗、低价格和可靠是它的亮点,让它超越蓝牙简单而实用。预计在未来Zigbee无线传输将大规模占领市场。1.3 课题任务要求(1)实现Zigbee无线模块间的无线通信;(2)发

7、射模块间传输距离大于100米;(3)发射模块间可以实现点对点和广播传输数据,即有相同的通信协议;(4)传输数据在PC或1602液晶屏上显示出来;(5)个人电脑内对单片机的控制; (6)实现单片机对zigbee模块的控制与设置;(7)与同一课题并采用zigbee方案的其他小组组成小型局域网络,相互通信。2 技术方案如下图所示,此次技术方案是:应用Zigbee模块的接收与发送数据功能,对数据的接收与发送,Zigbee模块连接在单片机功能引脚TXD、RXD,这样可以对传送数据处理,用单片机的I/O口连接上液晶显示屏可以对接收与发送的数据显示,串口连接上单片机与PC机相连,可对单片机输入程序控制和输入

8、发送数据。基于stc89C52单片机组成的系统,对zigbee和1602液晶屏进行控制和通信。其他无线模块图2-1 技术方案框图2.1 芯片选择Zigbee模块型号:DRF1605,主要功能:串口(UART)转Zigbee无线数据透明传输。这次我们实习无线接受与发送运用Zigbee模块,Zigbee模块接收与发送是这样的:Zigbee模块有两种节点模式,一种是coordinator(主节点),另一种Router(从节点),这两种节点可以有各自的PAN ID(地址),Zigbee模块出厂默认地址是Router一种,可以用软件修改其PAN ID,当有一个coordinator节点时,其他的Rout

9、er可以与其连接,当很多Router节点在这coordinator节点连接时,就可以形成一个网络,在这网络中任意节点可以相互传输数据。Zigbee模块传输数据有两种方式:一种数据透明传输,另一种是数据点对点传输,所谓透明传输,就是coordinator主节点这网络上发送数据时,任意Router都能接收到发送的数据;而点对点传输,就是在coordinator网络发送数据时,任意两个节点间发送数据,只能这两节点收到数据。图2.2 Zigbee结构及引脚定义图转串口芯片选用MAX232。RS232C是一种电压型总线标准,可用于设计计算机接口与终端或外设之间的连接,以不同的极性的电压表示逻辑值。-3至

10、-25表示逻辑“1”,+3至+25表示逻辑“0”,其电平是TTL和CMOS电平是不同的,所以在通信时必须进行转换。MAXIM公司的MAX232接收/发送器是MAXIM公司特别为满足EIA/TEA2232的标准而设计的,它们具有功耗低、工作电源为单电源、外接电容仅为0.1uF或1uF的电容,其价格低,可在一般需要串行通信的系统中使用。MAX232引脚C1+与C1-、C2+与C2-、V+与VCC、V-与GND之间的4个0.1uF的电容不可缺少,一般选用陶瓷介质的电容。MAX232可以用作单片机和单片机之间、单片机和PC机串口之间的符合RS232串行接口电路。只要将待进行串行传输的设备的发送和接收端

11、相应的接上,编程即可3。图 2.4 Max232内部结构及一家定义STC89C52单片机控制核心单片机选用STC89C52,完全能满足本系统要求。表 2.11 P3口功能引脚端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0)P3.5T1(定时器1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器都选通)3. 硬件设计3.1 Zigbee模块引脚连接设计图 3.1 Zigbee模块电路图3.2Zigbee模块电源设计Zigbee模块电源采用的是3.3v直流电,电路中直接采用四个电容滤波,用芯片LM1

12、117-3.3稳压得到。单片机系统采用的是5V直流电,用7805稳压芯片可得。图3.2 电源电路3.3V图3.3 电源电路 5V3.3 单片机设计电路图 3.4 单片机连接图3.4 串口电路设计图 3.5 串口电路4.软件设计4.1软件功能说明按本课题设计要求,程序所要实现的功能如下:1)、实现1602液晶屏实时显示系统状态,提供较好的人机界面;2)、实现通过按键设置Zigbee模块的工作模式,即给zigbee发送命令,zigbee工作状态及命令见附录;3)、用预先定好的通信协议进行数据的收发控制,实现点对点通信和广播数据,并在1602显示系统的工作状态。4.2软件总流程图个人电脑无线通信系统

13、功能键单片机LED1602显示Zigbee无线收发模块其他无线收发模块图4-1整体思路按上图设计思路编写程序,程序流程图如下:开始初始化功能键扫描程序设置Zigbee程序1602液晶显示程序与无线模块的数据传输控制程序图4-2 程序流程图4.3各功能软件4.4软件测试4.5 软件设计总结5.通信协议5.1模块说明这次实习,我们用的是ZigBee模块,DRF系列ZigBee模块目前包括DRF1601、DRF1602、DRF1605、DRF1605H、DRF2617-ZR232、DRF2618-ZUSB、DRF2619-ZR485及相关配套底板,它是基于TI 公司CC2530F256芯片,运行Zi

14、gBee2007/PRO协议的ZigBee模块,它具有ZigBee协议的全部特点,这有区别于其它种类的ZigBee模块。 其主要特点包括: (一)自动组网:所有的模块上电即自动组网,Coordinator 自动给所有的节点分配地址,不需要用户手动分配地址,网络加入、应答等专业 ZigBee组网流程; (二)简单数据传输: l 串口数据透传:Coordinator 从串口接收到的数据会自动发送给所有的节点,某个节点从串口接收到的数据,会自动发送给Coordinator。 l 通过串口即可在任意节点间进行数据传输,数据传输的格式为:0xFD(数据传输命令)+ 0x0A(数据长度) + 0x73 0

15、x79(目标地址) + 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x10(数据,共0x0A Bytes); (三)唯一IEEE地址:DRF 系列模块采用的TI CC2530F256 芯片,出厂时已经自带IEEE地址,用户无需另行购买IEEE地址,IEEE 地址(MAC地址)可作为ZigBee模块的标识; (四)用户可更改节点类型:用户可通过串口指令更改模块的节点类; (五)用户可更改无线电频道:用户可通过串口指令更改模块使用的无线电频道。(六)简单易用:用户不用考虑ZigBee协议,像使用串口线一样使用无线模块 5.2 ZigBee模块参数 (

16、1)电气参数:输入电压:DC 3.3V温度范围:-40C -85C串口速率:38400bps(默认),可设置9600bps,19200bps, 38400bps,115200bps无线频率:2.4GHz无线协议:ZigBee2007 /PRO传输距离:可视距离400米发射电流:34mA( 最大)接收电流:25mA(最大)低功耗模式:该款模块没有低功耗模式,客户可定制低功耗应用接收灵敏度:-96DBm主芯片:CC2530F256,256K Flash,TI公司最新一代ZigBee SOC芯片(2)机械参数:图5.2.1 机械参数 图5.2.2 机械参数5.3 Zigbee模块的组网 Zigbee

17、网络通常由三种节点构成:Coordinator:用来创建一个Zigbee网络,并为最初加入网络的节点分配地址,每个Zigbee网络需要且只需要一个Coordinator;Router:也称为Zigbee全功能节点,可以转发数据,起到路由的作用,也可以收发数据,当成一个数据节点,还能保持网络,为后加入的节点分配地址;End Device:终端节点,通常定义为电池供电的低功耗设备,通常只周期性发送数据,不接收数据。Zigbee模块的主要功能是无线数据传输,即,每个节点随时能够收发数据,所以节点的配置只有Coordinator,Router,连接的网络如下图所示,这样的网络通常也称为MESH网(即:

18、网状网),每个节点可以收发数据,同时也能担任其它节点的路由器,而且,所有的数据传输路由都是自动计算的,无需用户干预。第一次使用Zigbee模块时,请先给Coordinator上电,然后给Router上电,Router上电后,会自动寻找Zigbee网络并加入,可以使用TI的Sensor Monitor软件来观察Zigbee网络的形态。 图5.3.1 Zigbee mesh 网络 图5.3.2 Zigbee网络节点个数5.4 Zigbee模块的数据传输DRF1600 系列Zigbee 模块数据传输功能非常简单易用,有二种数据传送方式:(1)数据透明传输方式: 只要传送的第一个字节不是0xFE,0x

19、FD 或 0xFC,则自动进入数据透明传输方式;Coordinator从串口接收到的数据,会自动发送给所有的节点;某个节点从串口接收到的数据,会自动发送到Coordinator;(2)点对点数据传输方式: Zigbee网络内的任意节点之间,可通过点对点传输指令,传送数据;指令格式:0xFD + 数据长度 + 目标地址 + 数据1、 数据透明传输:(数据透明传输是DRF1600系列模块的最重要功能)(1)只要传送的第一个字节不是0xFE,0xFD 或 0xFC,则自动进入数据透明传输方式;(扩展:只要数据包的头与设置指令不一样,也会当成数据透明传输)(2)Coordinator从串口接收到的数据

20、,会自动发送给所有的节点;某个节点从串口接收到的数据,会自动发送到Coordinator;(3)任意一个节点与Coordinator之间,类似于电缆直接连接;(4)支持数据包变长(无需设置),最大不超过256字节/数据包,一般每个数据包32字节之内。 图5.4.1 数据透明传输:Coordinator发送至所有节点 图5.4.2 数据透明传输:某个节点发送至Coordinator 表5.4.1 数据透明传输的性能 数据传送方向数据包长度最快间隔RouteràCoordinator16字节20 ms32字节20 ms64字节20 ms128字节50 ms256字节200 ms>

21、256字节不能传输CoordinatoràRouter16字节100 ms32字节100 ms64字节100 ms128字节200 ms256字节500 ms> 256字节不能传输测试条件:1, 室温,实验室条件2, 模块间距离2米,信号良好3, 串口波特率38400(最优选波特率)4, 连续发送,接收100K字节,无误码,连续测试10次5, 测试软件:串口调试助手SSCOM3.2随着模块之间的传输距离增加,传输速率会降低Coordinator发送到Router是广播方式发送,传输速率会比较慢一般应用,建议每个数据包32字节,间隔200-300ms传输2 、点对点数据传输方式:

22、以下图为例,简述点对点数据传输方式:(数据从0x50F5传送至0x143E) 图5.4.3 点对点传输发送指令格式:数据传送指令(0xFD)+ 数据长度+ 目标地址+ 数据(最多32 Bytes)数据长度在32 字节内支持变长。如发送:FD0A14 3E01 02 03 04 05 06 07 08 09 10FD:数据传输指令0A:数据区数据长度,共10 个字节14 3E:目标地址01 02 03 04 05 06 07 08 09 10:数据接收数据格式:接收到发送方的全部数据,并在最后增加来源地址(二个字节)如接收到的数据为:FD0A14 3E01 02 03 04 05 06 07 0

23、8 09 1050 F5FD:数据传输指令0A:数据区数据长度,共10 个字节14 3E:发送方的目标地址,接收方本身地址01 02 03 04 05 06 07 08 09 10:数据50 F5:发送方的地址,即数据来源地址点对点数据传输可在网络内任意节点之间进行:1, 即使Coordinator 断电,也可在Router 之间通过点对点指令传输;2, Router 加入网络后,地址(Short Address)不会发生改变;3, 长度字节一定要等于数据区数据长度,否则数据传输出错(当成透明传输,发送给了Coordinator);4, 数据区数据最多32 字节,否则数据传输出错(当成透明传输

24、,发送给了Coordinator);5, 目标地址 = FF FF,则为广播发送,会发送至网络内所有节点;目标地址 = 00 00,则发送给Coordinator表5.4.2点对点数据传输性能 数据传送方向数据包长度最快间隔RouteràRouter32字节40 msCoordinatoràRouter32字节40 msRouteràCoordinator32字节40 ms测试条件:1,室温,实验室条件2,模块间距离2米,信号良好3,串口波特率38400(最优选波特率)4,连续发送,接收100K字节,无误码,连续测试10次5,测试软件:串口调试助手SSCOM3.2

25、5.5 怎样使用配置软件 配置软件是用来设定及读取模块的基本参数;模块可设置4个参数:PAN ID、波特率、节点类型、无线频道;PAN ID: 同一个网络内的每个节点具有相同的PAN ID,不同的网络之间PAN ID是不同的,在同一空间,二个不同PAN ID 的网络是不会相互影响的; 图 5.5.1 同一网络内的节点具有相同的PAN ID对于Coordinator: (1)设定新的PAN ID,重启,则马上读取为新的PAN ID; (2) 设定新的PAN ID后,则以前储存在Coordinator内的网络信息会全部清空,重启后,Coordinator会重新创建一个网络; (3)对于一个已经存在

26、的网络,重新设定Coordinator的PAN ID为同样的值,重启,此时,Coordinator里的网络值会被全部清空,由于以前的网络仍然存在,此时的Coordinator的PAN ID会自动加1,避免PAN ID冲突; 对于Router: (1)设定新的PAN ID,重启,如果读取为FF FE,表示Router还没有加入网络; (2)设定新的PAN ID,重启,如果读取为新的PAN ID,表示Router已经加入网络; (3)设定新的PAN ID为FF FF,重启,Router会自动寻找网络并加入; (4)设定新的PAN ID为FF FF,重启,Router会自动寻找网络并加入,在没有加入

27、网络之前,读取的值为FF FE;波特率: 与模块直接连接的设备的硬件波特率,同一个网络内,多个Zigbee模块与多个设备连接,并不需要全网具有同样的波特率,只要模块与设备之间具有相同的波特率即可 图5.5.2 具有相同的波特率模块的波特率重新设定后,需重启生效。5.6 Zigbee模块网络特性1,每个Coordinator允许6个Router加入网络,并为其分配地址,每个Router又能允许6个Router加入网络并为其分配地址,总共6层深度,最多支持9330个节点2,Coordinator是用来创建网络的,第一次使用时,Coordinator需要先上电;3,一个Zigbee网络形成后,即使C

28、oordinator断电,Router之间也能通讯;4,一个Zigbee网络形成后,即使Coordinator断电,新的节点也能通过已入网的Router加入,由这个Router为其分配地址;5,Zigbee网络创建完成后,这个网络内Router的地址(Short Address)是不变的,但是,这个节点加入到了其它的网路,则有新的网络为其分配地址,地址会变的,不建议将Short Address作为模块的标识;6,Zigbee模块的MAC地址(IEEE地址)是全球唯一的,可以作为模块的标识;5.7 Zigbee模块的设置表5.7.1设置指令 序号指令功能返回是否重启1FC 02 91 01 XX

29、 XX XY(XY =前6个字节的和,保留低8位,下同)设定模块的PAN ID为特定值XX XX1, 如果将模块的PAN ID设定为FF FF:如果是Coordinator,重启后自动产生一个新的PAN ID如果是Router,重启后自动寻找新的网路加入不可以设定为FF FE2, 重设PAN ID后(或同样的值重设后)如果是Coordinator,会清除已加入网络的节点,如果是Router,清除已加入的网络,重新寻找并加入网络XX XX如:输入:FC 02 91 01 12 34 D6返回:12 34是2FC 00 91 03 A3 B3 XY读取模块的PAN ID值模块的PAN ID值1,

30、如果Router还没加入网络,读取的值FF FE 2Coordinator读取为设定值否3FC 00 91 04 C4 D4 XY读取模块的Short Address(模块在网络内的地址)Short Address1, 如果模块还没有加入网络,读取的值为FFFE2, 2, Coordinator的地址永远是00 00否4FC 01 91 06 XX F6 XY设置模块的串口波特率XX = 01:设定为9600XX = 02:设定为19200XX = 03:设定为38400XX = 04:设定为57600XX = 05:设定为115200XX=其它00 00 09 06 00 0000 01 0

31、9 02 00 0000 03 08 04 00 0000 05 07 06 00 0001 01 05 02 00 00否5FC 00 91 07 97 A7 XY测试串口波特率如果串口波特率正确,返回:, 01 02 03 04 05如果串口波特率错误,无返回是6FC 00 91 08 A8 B8 XY读取模块的MAC地址8个字节的MAC地址 如:00 12 4B FF 56 78 FE FF否7FC 01 91 0C XX 1A XY设置模块的无线频道: XX = 0B:设定为Channel 11,频率:2405MHz XX = 0C:设定为Channel 12,频率:2410MHz X

32、X = 0D:设定为Channel 13,频率:2415MHz XX = 0E:设定为Channel 14,频率:2420MHz XX = 0F:设定为Channel 15,频率:2425MHz XX = 10:设定为Channel 16,频率:2430MHz XX = 11:设定为Channel 17频率:2435MHz XX = 12:设定为Channel 18频率:2440MHz XX = 13:设定为Channel 19频率:2445MHz XX = 14:设定为Channel 20频率:2450MHz XX = 15:设定为Channel 21频率:2455MHz XX = 16:设

33、定为Channel 22,频率:2460MHz XX = 17:设定为Channel 23,频率:2465MHz XX = 18:设定为Channel 24,频率:2470MHz XX = 19:设定为Channel 25,频率:2475MHz XX = 1A:设定为Channel 26,频率:2480MH返回: 00 08 00 00 0B 00 10 00 00 0C 00 20 00 00 0D 00 40 00 00 0E 00 80 00 00 0F 00 00 01 00 10 00 00 02 00 11 00 00 04 00 12 00 00 08 00 13 00 00 1

34、0 00 14 00 00 20 00 15 00 00 40 00 16 00 00 80 00 17 00 00 00 01 18 00 00 00 02 19 00 00 00 04 1A8FC 00 91 0D 34 2B XY读取模块的无线频道返回: 00 00 08 00 52 0B 00 00 10 00 52 0C 00 00 20 00 52 0D 00 00 40 00 52 0E 00 00 80 00 52 0F 00 01 00 00 52 10 00 02 00 00 52 11 00 04 00 00 52 12 00 08 00 00 52 13 00 10 0

35、0 00 52 14 00 20 00 00 52 15 00 40 00 00 52 16 00 80 00 00 52 17 01 00 00 00 52 18 02 00 00 00 52 19 04 00 00 00 52 1A否9FC 00 91 0B CB EB XY读取模块的节点类型如果是Coordinator,返回: 43 6F 6F 72 64 69 如果是Router,返回: 52 6F 75 74 65 72否10FC 01 91 64 58 XX XY设定模块的数据传输方式: XX = 00:保留(目前为透明传输) XX = 01:透明传输 XX = 02:在数据包最后

36、增加模块的短地址(Short Address,2个字节) XX = 03:在数据包最后增加模块的MAC地址(8个字节) XX = 04:保留(目前为透明传输)XX: 00 04 共5个值,超出范围当成透明传输数据 指令正确返回: 06 07 08 09 0A XX 如果写入不成功: 16 17 18 19 1A FF否11FC 00 91 87 6A 35 XY模块软件重启1秒后系统重启成功6.性能测试6.1 测试方法本次测试是直接通过已经调试好的Zigbee模块两台机子来测试,测试模式为点对点数据传输,测试主要是通过主机向从机发送信息,从机收到信息并向主机发送短信已经接受到,这样测试成功,这

37、样进行多次测试,测试如下表;主机与从机反过来再测试一次得到一个表格。表6.1 测量结果序号|测量范围(m)0.51257101成功成功成功成功成功成功2成功成功成功成功成功成功3成功成功成功成功成功成功4成功成功成功成功成功成功5成功成功成功成功成功成功表6.2 主机与从机反过来测试序号|测量范围(m)0.51257101成功成功成功成功成功成功2成功成功成功成功成功成功3成功成功成功成功成功成功4成功成功成功成功成功成功5成功成功成功成功成功成功表6.3 主从机子间隔着一堵墙测试序号|测量范围(m)0.51257101成功成功成功成功成功成功2成功成功成功成功成功成功3成功成功成功成功成功成

38、功4成功成功成功成功成功成功5成功成功成功成功成功成功参考文献1 王贤勇单片机原理及接口技术应用教程,-5版.-北京:清华大学出版社,2007.2 谭浩强c语言程序设计,-3版.-北京:清华大学出版社,2007.3 汪德彪MCS-51单片机原理及接口技术,-5版.-北京:电子工业出版社,2007.4 吴黎明单片机原理及应用技术,-1版.-北京:科学出版社,2005.5 李光才 楼然笛单片机课程设计实例指导,北京:北京航空航天大学出版社,2004.6 石宗义电路原理图与电路板设计教程Protel 99SE,北京希望电子出版社,7 梅丽凤王艳秋,任国臣,汪毓铎单片机原理及接口技术清华大学出版社8郭

39、天祥 51单片机c语言教程电子工业出版处9李文仲,段朝玉,PIC单片机与Zigbee无线网络实战,北京:北京航空航天大学出版社10 杨欣,莱·诺克斯,王玉凤,刘湘黔 电子设计从零开始,-第二版,-北京:清华大学出版社,2010.10附录1.总原理图附录2.PCB布线图附录3.我们的作品附录4.与其他小组调试照片附录5.源代码#include<reg52.h>/#include<stdlib.h>/用随机函数,发送随机数据#define uint unsigned int#define uchar unsigned charuintLED_Buffer16, c

40、om_dat, *q;uchar FF;void wdata(ucharsj); /输入数据void wcom(uchar or);/输入命令voidnint();voidkeyscan();void keyscan1();void L1602_char(ucharhang,ucharlie,char sign);void L1602_string(ucharhang,ucharlie,uchar *p);voidprint_data(uint *num,uchari);voidyanshi(uinti);void sent(uintss,ucharnum);sbitrs=P37;sbitle

41、de=P36;sbit set=P35;sbit key1=P34;sbit key2=P33;sbit key3=P32;uintflat,n,num,KKK,jj,sb;/ucharm,shi,fen,miao,ge,si,qq,dd;uint code cz1=0xbd,0x68,0x7d,0xbf,0xfe,0x52,0x6c,0x19,0x10,0xea, 0xFF,0x2b,0x90,0xa4,0xd8,0xaa,0x30,0x20,0xb0,0x8d,0xa9;uint code pp=0XFD,0X04,0X00,0X00,0xcc,0xb5,0x89,0x64;uint co

42、de pp1=0XFD,0X02,0X00,0X00,0x00,0x00;uint code pp2=0XFD,0X04,0X00,0X00,0xcc,0xb5,0x89,0x64;uint code pp3=0XFD,0X04,0X00,0X00,0xcc,0xb5,0x89,0x64;int number2; uchar code s1=" Auto Search net"uchar code s2=" Set PAN ID "uchar code s3=" Set node type "uchar code s3a="

43、Set Coordinator"uchar code s3b=" Set as Router "uchar code s4=" Read short add "uchar code s=" ok! "uchar code s5=" Set send type "uchar code s6=" Restart! "uchar code s33=" Read PAN ID "uchar code r="Received data: "uchar co

44、de rss="Received succeed "uchar code tt=" Broadcast "uchar code ts=" Sent succeed "uchar code ret=" "uint code com1=0xFC,0x02,0x91,0x01,0xFF,0xFF,0x8E;/自动搜索网络uint code com2=0xFC,0x02,0x91,0x01,0x56,0x34,0x1A; /ID56 34uint code com3a=0xFC,0x00,0x91,0x09,0xA9,0x

45、C9,0x08;/设为 Coordinatoruint code com3b=0xFC,0x00,0x91,0x0A,0xBA,0xDA,0x2B;/设定为Routeruint code com3=0xFC,0x00,0x91,0x03,0xA3,0xB3,0xE6;/ 读模块PAN IDuint code com4=0xFC,0x00,0x91,0x04,0xC4,0xD4,0x29;/读取模块的 Short Address(模块在网络内的地网络内的地址)/uint code com5=0xFC,0x00,0x91,0x08,0xA8,0xB8,0xF5; /读MAC地址uint code

46、com5=0xFC,0x01,0x91,0x64,0x58,0x01,0x4B;/设定为透明传输方式uint code com6=0xFC,0x00,0x91,0x87,0x6A,0x35,0xB3;/模块软件重启 /void main() nint();/*/ P1=0x00;wcom(0x01);com_dat = 0; FF=0;flat=0;while(1)if(FF=1)FF=0;yanshi(200);q = LED_Buffer;/L1602_string(2,1,q);L1602_string(1,1,r);print_data(q,com_dat);if(KKK=1&

47、&jj!=1) KKK=0; sent(LED_Buffer+8,2); /if(jjj=1) / L1602_string(1,1,rss);yanshi(200);yanshi(200);/ jjj=0;/ / if(sb=1) sent(pp1,6);/if(jj=1)jj=0;com_dat=0;if(set=0)yanshi(10);if(set=0) while(!set);flat+;if(flat=10) /功能选择标识flatflat=0; keyscan();if(key3=0)yanshi(10);if(key3=0)sent(cz1+num,4);num=num

48、+4;if(num=16)num=0;while(!key3); L1602_string(1,1,tt);yanshi(200); yanshi(210);/if(key2=0)yanshi(10);if(key2=0) sent(pp,8);yanshi(200); if(jj=1)jj=0;L1602_string(1,1,ts);yanshi(250);elsesent(pp,8); / yanshi()void wcom(uchar or)/输入命令rs=0;P1=or;yanshi(4);lede=1;yanshi(4);lede=0;void wdata(ucharsj)/输入数据 rs=1;P1=sj;yanshi(5);lede=1;yanshi(5);lede=0;/初始化voidnint()/1602wcom(0x38);wcom(0x0c);wcom(0x06);wcom(0x01);/串口TMOD=0x20; /设置定时器1为工作方式2PCON=0x00;TH1=0Xfd; /波特率9600 晶振11.0592MHzTL1=0XFD;REN=1; /串口允许接收SM0=0; /设置串口工作方式SM1=1;EA=1;/ 开中断ES=1;TR1=1;v

温馨提示

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

评论

0/150

提交评论