Zigbee无线传输技术的学习_第1页
Zigbee无线传输技术的学习_第2页
Zigbee无线传输技术的学习_第3页
Zigbee无线传输技术的学习_第4页
Zigbee无线传输技术的学习_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录第一章 ZIGBEE核心板(CC2530)21、产品概述22、原理说明2第二章 ZIGBEE节点41、产品概述42、 通用节点原理43、 传感器节点原理7第三章 CC2530功能说明101、CC2530芯片概览102、CC2530 重要寄存器12第四章 软件开发环境入门191、建立模板工程样例191)建立新工程192)添加工程文件233)配置工程选项254)编译和链接292、下载和调试301)安装仿真器驱动302)调试和运行32第五章 基础实验37实验一、LED发光二极管实验37实验二、串口收发数据实验39实验三、按键控制实验47实验四、液晶显示实验48实验五、电池监测实验51实验六、空

2、气温湿度传感器实验52实验七、三轴加速度传感器实验53实验八、人体红外传感器实验54实验九、可燃气体传感器实验55实验十、干簧管与霍尔开关传感器实验57实验十一、接近开关与红外对射传感器实验58实验十二、声光传感器实验59实验十三、 按键实验61第六章 综合实验63实验一、综合实验63实验二、PC机软件综合实验66实验三、网络拓扑综合实验72实验四、Zigbee无线物联网嵌入式综合实验79第一章 Zigbee核心板(CC2530)1、产品概述 Zigbee核心板(Zigbee CC2530)主要完成了两大块功能。第一完成了高频射频电路的设计,使本模块可以完成无线收发功能。第二将核心板的I/O和

3、其他CPU资源进行了引出,方便用户进行其他功能扩展和二次开发。经实测本模块在室内有遮拦情况下通讯距离可达50米,在室外空旷情况下可达100米以上,基本符合一般应用需求。如果需要进一步增加通讯距离只需更换接收天线,调整接收灵敏度,这要视实际情况而定。2、原理说明 核心电路如下:主要包括了时钟电路和高频收发电路,时钟电路包含32.768KHz和32MHz的时钟振荡电路,这个电路可以保证CC253X内部的实时时钟稳定工作,高频电路采用成熟的集成器件2450bm15a0002进行射频信号的平衡非平衡转换,这样可以避免独立器件个体差异导致的性能不稳定。详细细节请查看原理图。扩展口扩展信号如下:全部I/O

4、都已引出,使用时请对照芯片手册和详细原理图即可。使用前请仔细阅读下列注意事项:1.由于射频板(CC2530模块)比较小,引脚比较细,抗扭曲力不高,用力过度容易导致器件接触不良甚至损坏,所以插拔使用时应小心,可加以铜柱进行固定。2.注意防止静电损耗芯片,所以尽量不要触碰核心板底部排针引脚,手拿模块时应拿在模块两侧边缘。3.请勿带电插拔仿真器、Zigbee底板、Zigbee核心板等相关的接插件。4.在利用仿真器和SmartRF Programmer对CC2530芯片进行HEX文件烧写时,由于SmartRF Programmer对HEX文件格式有一些要求,所以需要在IAR里做相关设置,编译之后产生的

5、HEX文件才可以进行下载(设置方法见附件资料)。建议一般情况直接用仿真器在IAR环境下编译下载(编译调试时程序会自动下载进CC2530内部)。第二章 Zigbee节点1、产品概述 Zigbee节点主要分为通用节点和传感器节点两种。如下图左边,通用节点提供最基础的功能:复位按键、用户按键、LED指示灯、USB转串口、JTAG下载接口、电源选择开关和所有IO口通过2.54标准间距排针引出。通用节点可以连接Zigbee核心板并将其I/O资源进行扩展,方便用户扩展其他设备或者模块。并单独引出串口信号,方便调试。如下图右边,传感底节点在通用节点的基础上增加了如下模块:132X32分辨率微型LCD显示屏、

6、大容量锂电池、电池充电管理和传感器部分。电池通过USB接口进行充电,实现了节点了独立长时间工作功能。LCD屏幕可以显示4行字符,输出需要的信息。传感器种类丰富,可实现各种目标参数的测量采集。2、 通用节点原理 通用节点中,P1、P2端口用于连接核心板使用,信号定义已经标出,包含了基本的I/O口、电源、仿真接口等。P3、P4为2.54标准间距排针扩展接口,如果扩展使用请参考芯片手册。详细细节请查看原理图和TI官方资料。S1开关用于选择系统供电,可以从电池供电,也可以从USB口供电,也可以关闭系统。下图稳压电源电路使用5V->3.3V降压芯片保证CC2530提供可靠的电压。 开关S2为用户按

7、键、S3为复位电路经过扩展端口最终会连接到CPU的复位控制引脚。P5是JTAG下载端口, PC机通过仿真器连接底板JTAG口,给Zigbee核心板下载程序。下图为串口调试电路,完成了CC2530的串口与PC机USB口之间的信号与电平转换。P6为扩展接口,用2.54标准间距的排针引出了P2的IO端口和复位信号端口。B1、B2是2个5号电池座,用于装载电源电池。下图是LED指示灯驱动电路,完成了利用CC2530的P0和P1两个8位IO端口的状态来驱动16只LED发光二极管。且这个过程不会对IO口信号造成任何干扰。SN74LVC245是一个具有大电流输出的数据缓冲器,其负责为LED灯提供工作电流。3

8、、 传感器节点原理 传感器节点相对与通用节点复杂,但基本部分和通用节点一样,这里不再重复描述,请读者自行对照电路原理图查看。在通用节点上,增加的锂电池需要一个充电电路,下图所示即为其充电电路。智能充电管理芯片TP4057负责对锂电池充电,通过USB取电,其最大充电电流能够达到0.5A,以0.5A计算要把标配的2AH锂电池充满只需要4个小时。大多数类型的传感器节点工作电流在50mA左右,2AH的锂电池理论上在充满的情况下能够供其连续工作40个小时。图中的D1指示灯指示其充电状态,D2指示灯指示电池是否充满。S3开关用来选择节点是否开机,是总电源开关。P6连接132X32分辨率的LCD显示屏,LC

9、D的主控是ST7565P。接口是2线的串行接口,类似于I2C接口,同时有片选信号CSn、复位信号RESTn和地址信号A0。总共5根数据线,有兴趣的读者可以对照其芯片资料进行了解,这里不具体讲述。P0_0接入了电池电压的分压信号,CC2530通过采集这个信号的电压,乘以系数10/3,就可以得到电池电压。U1为电源LDO,将电池电源稳压到3.3V提供给系统使用。U4为电压监视器,当电池电压降到3V以下时关断LDO,保护锂电池以免过放电。D3和D4是两个LED指示灯,通过CC2530的P1_0和P1_1来控制这两个灯的状态。在后续实验中,这两个灯非常重要,通常用来指示节点的网络接入状态。第三章 CC

10、2530功能说明1、CC2530芯片概览CC2530是一个应用于IEEE 802.15.4、ZIGBEE和RF4CE应用的片上系统(SOC)解决方案。能够以非常低的总体成本建立起强大的网络节点。CC2530结合了性能优良的RF收发器、业界标准的8051CPU、系统内可编程FLASH、8KB内存RAM和许多其他强大功能。CC2530有四种不同的版本分别具有32/64/128/256KB内存。CC2530具有不同的运行模式,使其能够适应超低功耗要求的系统。运行模式的转换时间短进一步确保了低能源消耗。上图为芯片结构图。整个芯片又左侧的并行IO处理模块、右上部分的8051处理器模块、右中的片上外设模块

11、和右下的无线射频模块四大部分组成。其丰富的片上外设可以支持复杂的操作系统运行。同时拥有对外的串行通信接口、对外的AD采样接口可以方便的扩展外部功能。上图为芯片引脚图。芯片为QFN40脚封装。其主要引脚功能如下:引脚名称功能1、2、3、4、Ground PadGND地(芯片衬底必须接地)5-9、11、37-38P1_0-P1_78位IO口P110、39DVDD数字电源12-19P0_0-P0_78位IO口P020RESETn复位,低有效21、24、27、28、29、31AVDD模拟电源22、23XOSC外接晶振25、26RF射频信号30RBIAS参考电流外接精密电阻32、33P2_4、P2_3或

12、XOSC32KIO引脚P2_4、P2_3或外接32K晶振34、35、36P2_0-P2_2IO引脚P2_0-P2_240DCOUPL接1.8V内部数字电源去耦电容2、CC2530 重要寄存器P0、P1、P2 数字IO口寄存器PERCFG并口控制、APCFG模拟接口配置 寄存器P0SEL、P1SEL、P2SEL IO口功能选择寄存器P0DIR、P1DIR、P2DIR IO口方向设置寄存器P0INP、P1INP、P2INP IO口输入模式寄存器P0IFG、P1IFG、P2IFG IO口中断状态寄存器PICTL IO口中断控制寄存器P0IEN、P1IEN、P2IEN IO口中断屏蔽寄存器以上图表列出

13、了关于CC2530 处理器的P0 和P1 IO 端口相关寄存器,其中P0DIR、P1DIR 为IO 方向寄存器,P0INP 为P0 端口输入配置寄存器,PICTL 用来控制P0 端口中断使能和中断触发模式寄存器。CLKCONCMD 时钟控制命令寄存器CLKCONSTA 时钟状态寄存器SLEEPCMD 睡眠模式控制寄存器SLEEPSTA 睡眠模式状态寄存器 以上为CC2530的时钟控制、睡眠控制相关寄存器。在芯片工作的过程中起着非常重要的作用。U0CSR 串行接口0控制及状态寄存器U0UCR 串口0控制寄存器U0GCR 串口0一般控制寄存器U0BUF串行接口0收发数据缓冲、U0BAUD串口0波特

14、率设置寄存器以上图表列举了和CC2530处理器的串口0使用相关寄存器,串口0在以后的代码中会经常用到,其初始化、设定波特率、使用过程都和这些寄存器密切相关。串行接口1的相关寄存器和接口0类似,这里不再详细介绍,请参看TI官方手册。第四章 软件开发环境入门ZIGBEE模块硬件基础实验、综合实验都会使用到的软件开发环境IAR Embedded Wordbench for MCS-51。TI官方指定的最佳软件开发平台就是IAR。本节将介绍如何学习使用该IAR 环境。包括从零新建一个工程、对这个工程进行配置,到将这个工程下载到硬件中仿真验证。注意!在学习IAR环境下的软件编程环境之前,要求读者熟悉计算

15、机WINDOWS XP操作系统、要求读者会基本的C语言编程。1、建立模板工程样例通过此章的学习,读者应对IAR环境下的软件开发有一个基础的认识,会自行搭建一个基本的软件工程,后续实验的工程建立方法均可参照本章,所以在后面将不再赘述相关内容。关于 IAR 的详细说明文档请浏览软件安装目录下的8051doc子目录中的支持文档。以下将通过一个简单的 LED 闪灯测试程序工程带领用户逐步熟悉 IAR for 51 实验开发环境。 (IAR软件的安装这里不详细介绍,请使用附带的软件安装包进行安装)1)建立新工程打开IAR 软件,默认进入建立工作区菜单,我们先选择-取消,进入IAR IDE 环境。点击 P

16、roject 菜单,选择 Greate New Project . 如图所示:建立一个新工程 弹出建立新工程对话框,确认 Tool chain 栏已经选择 8051,在 Project templates: 栏选择 Empty project 点击下方 OK 按钮。选择工程类型点击右上角快捷方式,创建新文件夹。在计算机相应目录下,创建工程目录,本例创建了test_iar目录,用来存放工程,进入到创建的test_iar 文件夹中,更改工程名,如 test 点击 Save ,这样便建立了一个空的工程。创建工程目录创建工程目录test_iar创建工程目录配置文件这样工程就出现在工作区窗口中了。创建工

17、程加入工作区系统产生两个创建配置:调试和发布。在这里我们只使用 Debug选择debug模式工程项目名称后的星号指示修改还没有保存。选择菜单 FileSave Workspace ,保存工作区文件,并指明存放路径,这里把它放到新建的工程test_iar 目录下。点击 Save 保存工作区。选择 File/Save Workspace保存工作区2)添加工程文件选择菜单 ProjectAdd File 或在工作区窗口中,在工程名上点右键,在弹出的快捷菜单中选择 Add File ,弹出文件打开对话框,选择需要的文件点击 打开 退出。如没有建好的程序文件也可点击工具栏上的按钮或选择菜单 FileNe

18、wFile 新建一个空文本文件。新建文件向文件里添加如下代码:#include <ioCC2530.h>#define D_COUNT 50void Delay(unsigned int n) unsigned int t,tt; for(tt=0;tt<n;tt+) for(t=0;t<1000;t+) ;void main( void ) unsigned int i; P0DIR = 0xff; P1DIR = 0xff; P0 = 0xff; P1 = 0xff; Delay(D_COUNT);Delay(D_COUNT);Delay(D_COUNT); P0

19、= 0; P1 = 0; Delay(D_COUNT);Delay(D_COUNT);Delay(D_COUNT); while(1) for(i=0;i<100;i+) P1_1 = 1; Delay(D_COUNT); P1_0 = 0; Delay(D_COUNT); P1_1 = 0; Delay(D_COUNT); P1_0 = 1; Delay(D_COUNT); 选择菜单 FileSave 弹出保存对话框,填写文件名为test.c,点击保存。保存新建文件按照前面添加文件的方法将 test.c 添加到当前工程里,在工程中右键添加文件:将新建文件加入工程选择刚刚编写好的文件te

20、st.c。将新建文件test.c加入工程完成的结果如下图:加入新文件后的工程3)配置工程选项选择 Project 菜单下的 Options.或者在工程名上点击右键,选择“Options”, 配置与 CC2530 相关的选项。General Options-Target 标签:按下图配置 Target ,点击Device右侧的按钮:在弹出对话框中找到“Texas Instruments”文件夹,选择“CC2530.i51”。(按照IAR程序安装位置是C:Program FilesIAR SystemsEmbedded Workbench 5.38051 configdevicesTexas In

21、struments下的文件CC2530.i51)按照下图,选择 Code model 为Near 和 Data model 为Large ,Calling convention 为XDATA stack reentrant 以及其它参数。target标签配置DataPointer 标签:选择数据指针数 1 个,16 位.默认即为该配置。数据指针选择其他标签项按照默认设置即可。在左侧的Linker选项中,Output标签:选中 Override default 可以在下面的文本框中更改输出文件名。如果要用 C-SPY 进行调试,选中 format 下面的 Debug information fo

22、r C-SPY。输出文件设置Config 标签: 点击 Linker command file 栏中勾选“Override default”,文本框右边的按钮。选择正确的连接命令文件lnk51ew_cc2530.xcl,如图:选择连接命令文件左侧的Debugger栏中: 在 Setup 标签按下图设置driver 选项为Chipcon:Debugger配置在 Device Description file 选择 CC2431.ddf 文件,其位置在程序安装文件夹下如 $TOOLKIT_DIR$configdevicesTexas InstrumentsCC2530.ddf配置调试器4)编译和链

23、接选择 ProjectMake 或 按 F7 键编译和连接工程。编译和链接工程链接结果在下面的MESSAGES窗口中可以看到链接的结果,其中有一个WARMING,说的是I变量声明了却没有使用过。在通常的开发中,WARMING并不会导致程序编译失败,当时ERROR会。我们将I变量的声明行去掉,再编译,就会发现没有WARMING了。2、下载和调试1)安装仿真器驱动 安装仿真器前确认 IAR Embedded Workbench 已经安装。将系统配套的USB 接口仿真器一端连接到PC 机上,另一端连接到ZIGBEE 节点下载仿真端口中。且打开ZIGBEE节点开关。手动安装:手动安装适用于系统以前没有

24、安装过仿真器驱动的情况。将仿真器通过开发系统附带的 USB 电缆连接到 PC 机,在 Windows XP 系统下,系统提示找到新硬件后提示如下对话框,选择 从列表或指定位置安装 ,点下一步。如下图设好驱动安装选项,点击右边的-浏览 按钮选择驱动所在路径:驱动文件在程序安装目录下,如 C:Program FilesIAR SystemsEmbedded Workbench 5.38051driversTexas Instruments,如下图选中 Texas Instruments文件夹,点 确定 退出,回到安装选项界面,点 下一步 ,系统安装完驱动后提示完成对话框,点击 完成 退出安装。自动

25、安装:将仿真器通过开发系统附带的 USB 电缆连接到 PC 机,在 Windows XP 系统下,系统找到新硬件后提示如下对话框,选择 自动安装软件 ,点下一步。向导会自动搜索并复制驱动文件到系统。系统安装完驱动后提示完成对话框,点击 完成 退出安装。2)调试和运行选择菜单 ProjectDebug 或按快捷键 CTRL+D 进入调试状态,也可按工具栏上的按钮进入调试。进入调试查看源文件语句:Step Into 执行内部函数或子进程的调用Step Over 每步执行一个函数调用Next statement 每次执行一个语句这些命令在工具栏上都有对应的快捷键。查看变量:C-SPY 允许用户在源代

26、码中查看变量或表达式,可在程序运行时跟踪其值的变化。使用自动窗口选择菜单 ViewAuto ,开启窗口。自动窗口会显示当前被修改过的表达式。连续步进观察 i 的值的变化情况。查看变量设置监控点: 使用 Watch 窗口来查看变量。选择菜单 ViewWatch ,打开 Watch 窗口。点击 Watch 窗口中的虚线框,出现输入区域时键入 i 并回车。也可以先选中一个变量将其从编辑窗口拖到 Watch 窗口。设置观察变量单步执行,观察 i的变化。如果要在 Watch 窗口中去掉一个变量,先选中然后点击键盘上的Delete 键或点右键删除。设置并监控断点:使用断点最便捷的方式是将其设置为交互式的,

27、即将插入点的位置指到一个语句里或靠近一个语句,然后选择 Toggle Breakpoint 命令。在 i+ 语句出插入断点:在编辑窗口选择要插入断点的语句,选择菜单 EditToggle Breakpoint或者在工具栏上点击按钮。设置断点这样在这个语句设置好一个断点,用高亮表示并且在左边标注一个红色的X 显示有一个断点存在。可选择菜单 ViewBradkpoint 打开断点窗口,观察工程所设置的断点。在主窗口下方的调试日志 Debug Log窗口中可以查看断点的执行情况。如要取消断点,在原来断点的设置处再执行一次 Toggle Breakpoint 命令。反汇编模式:在反汇编模式,每一步都对

28、应一条汇编指令,用户可对底层进行完全控制。选择菜单 ViewDisassembly ,打开反汇编调试窗口,用户可看到当前 C 语言语句对应的汇编语言指令。反汇编窗口监控寄存器:寄存器窗口允许用户监控并修改寄存器的内容。选择菜单 ViewRegisster ,打开寄存器窗口。查看寄存器内容选择窗口上部的下拉列表,选择不同的寄存器分组。单步运行程序观察寄存器值的变化情况。监控存储器: 存储器窗口允许用户监控寄存器的指定区域。选择菜单 ViewMemory ,打开存储器窗口。查看存储器运行程序:选择菜单 DebugGo ,或点击调试工具栏上按钮如果没有断点,程序将一直运行下去。可以看到LED1、LE

29、D2 间隙点亮。如果要停止,选择菜单 DebugBreak 或点调试工具栏上按钮,停止程序运行。退出调试: 选择菜单 DebugStop Debugging 或点击调试工具栏上的按钮。退出调试模式。第五章 基础实验下面介绍CC2530芯片Zigbee节点的基本使用方法,配合相关传感器节点进行数据采集及相关控制的方法。这些传感器模型可以被广泛地运用于科学研究、工业生产、医疗卫生以及日常生活各个方面的安全监控领域。实验一、LED发光二极管实验1实验环境1) 硬件:通用节点一个、USB仿真器、PC机;2) 软件:IAR Embedded Workbench for MCS-51。2实验内容1) 熟悉

30、Zigbee硬件模块相关接口;2) 使用IAR 开发环境设计程序,利用CC2530 的IO口进行LED发光二极管的亮灭操作。3实验原理1) 硬件接口原理在CC2530中,我们总共有3个可用的GPIO接口:P0、P1和P2。其中P0和P1的全部8位都有对应的引脚,而P2只有0-4几个引脚可用。这里我们主要对P0和P1共16个引脚进行操作,每个引脚都连接到一个发光二极管的驱动端,这样通过控制P0和P1的每一位,我们可以控制所有的16个发光二极管的亮灭。首先我们需要了解CC2530 的IO口相关寄存器:P0和P1 寄存器P0SEL和P1SEL寄存器P0DIR和P1DIR寄存器以上图表列出了我们需要用

31、到的和P0、P1相关的寄存器,其中P0、P1寄存器为IO数据寄存器,P0SEL、P1SEL为外设功能选择寄存器,P0DIR、P1DIR为IO 输入输出选择寄存器,例程中我们需要对这几个寄存器进行IO配置相关设置和操作。此处如想深入了解请自行参考CC2530 的芯片手册。2) 软件设计#include <ioCC2530.h>#define D_COUNT 50void Delay(unsigned int n) unsigned int t,tt; for(tt=0;tt<n;tt+) for(t=0;t<1000;t+) ;void main( void ) unsi

32、gned int i; P0DIR = 0xff; P1DIR = 0xff; P0 = 0xff; P1 = 0xff; Delay(D_COUNT);Delay(D_COUNT);Delay(D_COUNT); P0 = 0; P1 = 0; Delay(D_COUNT);Delay(D_COUNT);Delay(D_COUNT); while(1) for(i=0;i<8;i+) P0 = 0x01<<i; Delay(D_COUNT); P0 = 0; for(i=0;i<8;i+) P1 = 0x01<<i; Delay(D_COUNT); P1

33、= 0; 程序通过配置CC2530相关控制寄存器来设置P0、P1工作于普通GPIO的输出模式。4实验步骤l 使用USB 仿真器连接PC 机和通用节点模块,模块电源开关处于中间“OFF”档,使用仿真器给模块供电。l 启动IAR 开发环境,打开“.基础传感器实验1-5基础例程1-LED”目录下的实验工程。l 在IAR 开发环境中编译程序、点击下载、调试程序。按“F5”使程序运行。l 观察现象,可以看到发光二极管轮流亮起。l 使用调试界面上的停止按钮使程序停止,观察现象是否停止。l 使用调试界面上的go按钮(等同“F5”),观察现象。实验二、串口收发数据实验1实验环境1)硬件:通用节点或任意传感器节

34、点一个、USB仿真器、USB电缆、PC机;2)软件:IAR Embedded Workbench for MCS-51、串口调试工具。2实验内容1) 熟悉Zigbee硬件模块相关接口;2)使用IAR 开发环境设计程序,利用CC2530 的串口0 进行数据收发通讯。3实验原理1) 硬件接口原理在CC2530中,我们总共有2个可用的串行接口,这些串行接口可被配置为标准串口或者SPI接口。这个例程中我们只使用USART0,并且工作在UART标准串口模式下。由于每种设置都有2套可用的IO映射,这里根据我们的硬件设置,我们应该使用其默认设置,UART0的TX和RX对应于P0_3和P0_2。部分外设复用I

35、O对应图首先我们需要了解CC2530 的IO口相关寄存器:P0 寄存器P0SEL 寄存器P0DIR 寄存器以上图表列出了关于CC2530 处理器的P0 IO口相关的寄存器,其中P0 寄存器为IO数据寄存器,P0SEL为外设功能选择寄存器,P0DIR 为IO 输入输出选择寄存器,例程中我们需要对这3个寄存器进行IO配置相关设置,其他相关寄存器使用默认配置。如想深入了解请自行参考CC2530 的芯片手册。其次,我们要对芯片的时钟操作有所了解,因为程序的启动部分,需要先对芯片时钟进行配置。CLKCONCMD 寄存器CLKCONSTA 寄存器SLEEP 控制寄存器本例程中,程序通过配置以上寄存器将系统

36、主时钟设置为片外32M晶振。然后是串行接口外设相关寄存器,通过设置这些寄存器,我们将串行接口设定为预想的模式。PERCFG 寄存器U0CSR 寄存器U0GCR 寄存器U0BUF 寄存器U0BAUD 寄存器以上图表列举了和CC2530串口操作定相关的寄存器,其中包括CLKCONCMD控制寄存器,用来控制系统时钟源,SLEEP 寄存器用来控制各种时钟源的开关和状态。PERCFG 寄存器为外设功能控制寄存器,用来控制外设功能模式。U0CSR、U0GCR、U0BUF、U0BAUD 等位串口相关寄存器。2) 软件设计#include "ioCC2530.h"#include <

37、string.h>#define uint unsigned int#define uchar unsigned char/定义控制灯的端口#define led1 P1_0#define led2 P1_1void InitIO(void); /IO初始化void InitUart(void); /串口初始化void SendString(char*string,uint legth); /发送字符串uchar temp; / 存放接受的数据char wch = "Welcome to test this program!n"/* 功能描述: 延时 Count: 延

38、时单位数量 */void DelayXms(unsigned int Count) unsigned int i; unsigned int j; for(i = 0; i < Count; i+) for( j=10000; j>0; j-); /* 功能描述: IO初始化*/void InitIO(void) SLEEPCMD &= 0X04; CLKCONCMD = 0X10; /32k和32M时钟使用外部晶体,timer分频8M while(CLKCONSTA!=0X10); /等待时钟切换 SLEEPCMD = 0X04; P2DIR = 0x00; /高两位零

39、若设则最高优先USART0 P1DIR|= 0X03; /P1.0 P1.1 LEDs 灯端口配置 P0DIR|= 0X00; /input PERCFG = 0x00; /UART0 默认端口 P1SEL = 0X00; P0SEL = 0X0c; /P0<3:2>设置成外围应用/* 功能描述: 串口初始化*/void InitUart(void) U0CSR |= 0x80;/UART方式 U0GCR = 11; /baud_e 波特率设为115200 U0BAUD |= 216;/baud_m = BaudRate*2(28-buad_e)/32M-256 /BaudRate

40、=(256+baud_m)/2(28-buad_e)x32MHz UTX0IF = 1; /接收中断标记 U0CSR |= 0X40;/允许接收 URX0IE = 1; /接收中断使能 EA =1; /总中断开关打开/* 功能描述: 串口发送字符串 string: 字符串指针 lenth: 长度*/void SendString(char*string,uint lenth) uint j; for (j=0; j<lenth; j+) U0DBUF = *string+; while(UTX0IF = 0); UTX0IF = 0; /* 功能描述: 主函数 */ void main(

41、void) InitIO(); InitUart(); DelayXms(10); led1=1; led2=1; SendString(wch,sizeof(wch); while(1) ; /* 功能描述: 串口中断函数*/#pragma vector = URX0_VECTOR_interrupt void UART0_ISR(void) URX0IF = 0; /清中断标志temp = U0DBUF; U0DBUF = temp; while(UTX0IF = 0); /等待发送 UTX0IF = 0; /清发送标志 led1 = led1; /指示中断活动 led2 = led2;程

42、序通过配置CC2530 处理器的串口相关控制寄存器来设置串口0 的工作模式为串口模式,波特率为115200,使用中断方式接受串口数据并向串口输出。4.实验步骤l 使用USB 仿真器连接PC 机和ZIGBEE模块。将系统配套USB线一端连接PC 机,一端连接ZIGBEE模块的MINI-USB接口上。注意:如果使用通用节点运行本例程,请检查板子上的“TXD”和“RXD”位置跳线帽是否已经插上(右下图圆圈处),下方的电源开关打到“OFF”档,节点使用仿真器连接供电。如果使用传感器节点运行本例程,请检查板子上的“TXD”和“RXD”位置跳线帽是否已经插上(左下图圆圈处),下方的电源开关打到“OFF”档

43、,节点使用仿真器连接供电。 左为传感器节点 右为通用节点l 连接USB电缆时,需要安装USB转串口的驱动程序,在“.基础传感器实验1-5基础例程2-串口”目录下运行程序“CH341SER.EXE”安装驱动,重新拔插USB电缆,待驱动自动加载好,在“我的电脑右键属性设备管理器”中可以发现如下虚拟串口条目“USB-SERIAL CH340(COMXX)”。记住这里的串口号码“COMXX”。l 启动IAR 开发环境,打开“.基础传感器实验1-5基础例程2-串口”目录下的实验工程。l 在IAR 开发环境中编译程序、点击下载、调试程序。按“F5”使程序运行。l 打开“.基础传感器实验1-5基础例程2-串

44、口”目录下的串口调试程序“串口调试程序(支持中文).EXE”。按照下图设置这几项:串口号选择刚刚在设备管理器中记下的串口号;波特率选择“115200”;数据位8位;停止位1位;校验位none;流控制none等其他均为默认。点击右下角的发送数据按钮,可以看到接受文本框中显示接受到同样的数据。l 更换发送文本框“字符串输入框”中的内容,点击发送按钮。可以看到相同的字符串又被返回。实验三、按键控制实验1实验环境1)硬件:传感器节点一个、USB仿真器、PC机;2)软件:IAR Embedded Workbench for MCS-51;2实验内容1)熟悉Zigbee硬件模块相关接口;2)使用IAR 开

45、发环境设计程序,利用CC2530 的GPIO读取按键值并相应对进行LED发光二极管的亮灭操作;3实验原理1)硬件接口原理按键的输出信号连接到了CC2530的GPIO引脚上,利用对GPIO引脚的读取可以取得按键的状态。这里通过按键的状态来对板上2个LED发光二极管进行操作。2)软件设计#include <ioCC2530.h>#define D_COUNT 50#define KEY_INPUT P2_0void Delay(unsigned int n) unsigned int t,tt; for(tt=0;tt<n;tt+) for(t=0;t<1000;t+) ;

46、void main( void ) unsigned int i; P0DIR = 0x00; P1DIR = 0x03; P1 = 0; Delay(D_COUNT);Delay(D_COUNT);Delay(D_COUNT); while(1) if(!KEY_INPUT) i+; P1 = i; Delay(100); Delay(10); 程序通过读取P2.0的信息来获得按键的状态,同时对P1上的2个发光二极管进行操作。程序中的长延时是为了使得一定时间内的按下只被识别为一次按下,短延时是为了滤掉可能的干扰信号。4实验步骤l 使用USB 仿真器连接PC 机和任意一个传感器节点模块,模块电

47、源开关处于“ON”档,使用电池给模块供电(如电池电量低插上USB电缆,可一边充电一边使用)。l 启动IAR 开发环境,打开“.基础传感器实验1-5基础例程3-按键控制”目录下的实验工程。l 在IAR 开发环境中编译程序、点击下载、调试程序。按“F5”使程序运行。l 观察现象,可以看到2个发光二极管都没有亮起。l 按下模块中间的“KEY”按键,观察2个发光二极管的状态。l 重复按键操作,尝试长按或短按,观察发光二极管状态。修改程序中的延时数值(下图中红点行)后再重复上面操作,体会不同延时下的效果。实验四、液晶显示实验1实验环境1)硬件:传感器节点一个、USB仿真器、PC机;2)软件:IAR Em

48、bedded Workbench for MCS-51。2实验内容1)熟悉Zigbee硬件模块相关接口;2)使用IAR 开发环境设计程序,利用CC2530 的GPIO操作LCD液晶,在液晶上显示需要的内容。3实验原理1)硬件接口原理液晶采用的是串行接口,这里利用GPIO模拟串行接口与液晶控制芯片进行通信,从而在液晶上显示指定的信息。2)软件设计这里只给出main函数部分程序代码,全部代码参见工程文件。void main() SLEEPCMD &= 0X04; CLKCONCMD = 0X10; /32k和32M时钟使用外部晶体,timer分频8M while(CLKCONSTA!=0X

49、10); /等待时钟切换 SLEEPCMD = 0X04; P1DIR |= 0x03; /LEDs P1_0=0;P1_1=1; /LEDs Uart_init(); lcd_init(); while(1) P1_0=P1_0; P1_1=P1_1; lcd_init(); /初使化 disp(0); /清屏 delay(1); /设置断点1 delay(1);delay(1);delay(1);delay(1);delay(1); disp(1); /满屏 delay(1); /设置断点2 delay(1);delay(1);delay(1);delay(1);delay(1); dispgraphics(); /填充图形 delay(1); /设置断点3 delay(1);delay(1);delay(1);delay(1);delay(1); disp(2); SendString("P0.4 is ");S

温馨提示

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

评论

0/150

提交评论