ZigBee无线网络实验实训手册V2.0 - 图文

更新时间:2024-04-15 18:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

无线传感网络实验实训手册

II

无线传感网络实验实训手册

0、实验准备

0.1、硬件认知

节点

ZigBee模块

1

无线传感网络实验实训手册

? 采用TI最新一代ZIGBEE芯片CC2530

? 支持基于IEEE802.15.4的ZIGBEE2007/PRO协议

? 采用WXL标准的20芯双排直插模式接入网关主板和感知节点

CC2530特点:

? 低功耗

? 主动模式RX(CPU 空闲):24 mA ? 主动模式TX 在1dBm(CPU 空闲):29mA ? 供电模式1(4 μs 唤醒):0.2 mA ? 供电模式2(睡眠定时

器运行):1 μA ? 供电模式3(外部中断):0.4 μA

? 宽电源电压范围(2 V 3.6 V) ? 微控制器

? 优良的性能和具有代码预取功能的低功 ? 耗8051 微控制器内核

? 32-、64-或128-KB 的系统内可编程闪存 ? 8-KB RAM,具备在各种供电方式下的数

? 据保持能力

? 支持硬件调试 ? 外设 ? 强大的5 通道DMA

? IEEE 802.5.4 MAC 定时器,通用定时器(一个16 位定时器,一个8 位定时器)

? IR 发生电路

? 具有捕获功能的32-kHz 睡眠定时器 ? ? ? ? ?

硬件支持CSMA/CA 支持精确的数字化RSSI/LQI 电池监视器和温度传感器

具有8 路输入和可配置分辨率的12 位ADC AES 安全协处理器

2

无线传感网络实验实训手册

? ? ? ? ? ? ?

2 个支持多种串行通信协议的强大USART 21 个通用I/O 引脚( 19× 4 mA,2×20 mA) 看门狗定时器节点底板 支持4节电池供电

96*16液晶显示 ? 1个多功能按键

一个miniUSB串口,可通过伸缩USB线缆供电

标准WXL20针高频模块接口以及标准的传感器模块接口。

图表 1传感器/控制扩展模块

图表 2LED*4

3

无线传感网络实验实训手册

图表 3继电器

图表 4RFID

图表 5振动传感器

图表 6人体红外传感器

图表 7温度光敏传感器

4

无线传感网络实验实训手册

图表 8温湿度传感器

图表 9C51RF-3仿真器

USB接口:通过USB接口把C51RF-3仿真器与计算机有机的连接起来。C51RF-3 仿真器通过此接口与计算机进行通信,要在CC2430/CC2431的ZigBee模块的开发上实现下载、调试(DEBUG)、仿真等的通信都由此接口来实现。

复位按键:此按键用来实现C51RF-3仿真器的复位,当你需要重新下载、调试 (DEBUG)、仿真你可通过此按键来实现硬复位。

仿真线:这是一根10芯的下载、调试(DEBUG)、仿真线,通过它与感知节点的 ZigBee模块进行连接。 仿真器跟感知节点的连接示意图如下所示:

0.2、软件及驱动安装 0.2.1、IAR安装

如同Windows操作系统其它一般的软件安装一样,单击―\\物联网实验系统\\tools\\iar8.10‖ 目录下的EW8051-EV-Web-8101.exe 文件进行安装,你将会看到如下图所示的界面。

5

无线传感网络实验实训手册

单击―Next‖

至下一步,将出现如下所示界面,点击―Accept‖。

将分别需要填写你的名字、公司以及认证序列,如下图所示。

6

无线传感网络实验实训手册

正确填写后,单击―Next‖至下一步,将分别需要由你计算机的机器码和认证序列生成的序列钥匙,如下图所示。

输入的认证序列以及序列钥匙正确后,单击―Next‖到下一步。如下图所示,

在你将选择完全安装或是典型安装,在这里我们选择第1个也就是完全安装。

7

无线传感网络实验实训手册

单击―Next‖到下一步,在这里你将查证看你输入的信息是否正确,如下图所示。如果需要修改,单击―Back‖返回修改。

单击―Next‖正式开始安装,如下图所示。在这你将看到安装进度,这将需要

几分钟时间的等待,现在你需要耐心等待。

8

无线传感网络实验实训手册

当进度到100%时,它将跳到下一个界面,如下图所示。在此你可选择查看IAR 的介绍以及是否立即运行IAR开发集成环境。单击―Finish‖来完成安装。

9

无线传感网络实验实训手册

0.2.2、USB转串口驱动安装

这里主要是介绍两个USB转串口驱动的安装。 驱动目录:\\物联网实验系统\\tools\\USB串口驱动

这里有两个去驱动的安装,其安装方法一样。 安装ft232驱动。

将实验箱中的串口网关底板用D口的USB线连接到电脑,如果是第一次接入(电脑没有安装驱动)时,系统会自动跳出安装驱动提示,只要按照提示指定安装驱动路径(\\物联网实验系统\\ZIGBEE无线传感网络实验\\工具软件\\USB 串口驱动\\ft232usbdriver2.0)即可自动安装:

然后直接点击下

一步即可顺利完成安装。

安装CP2102驱动。运行目录:―物联网实验系统\\tools\\USB串口驱动\\cp2102‖中的安装文件。自动安装。安装完毕后,当使用到该串口驱动的时候,自动检测到硬件,可以选择自动安装。直到在设备 管理中看到虚拟串口表示安装成功。

10

无线传感网络实验实训手册

也可以类似安装ft232驱动驱动一样指定驱动文件路径进行安装。这里需要 安装两次,第一次路径为: \\物联网实验系统\\tools\\USB串口驱动

\\cp2102\\Drivers\\CP210x USB to UART Bridge Controller。第二次路径为:\\物联网实验系统\\tools\\USB串口驱动\\cp2102\\Drivers\\CP210x USB Composite Device。

0.2.3、SmartRF Flash Programmer安装及使用

安装文件所在目录为:\\物联网实验系统\\tools\\TI工具\\SmartRF Flash Programmer

1.10.2 (Rev. L) 目录下的

点击开始安装。

全部采用默认设置,Next 到安装完成。

0.2.4、ZigBee仿真器驱动安装

正常情况下,如果已经安装了IAR或者TI任何一款软件,那么在接入仿真器的时候均可自动安装其驱动。在设备管理中得到:

。表示仿真器驱动正常安装。

11

无线传感网络实验实训手册

或者运行目录: \\物联网实验系统\\tools\\TI工具 下的

文件。

如同安装其他软件一样,按步操作即可完成安装。安装完后当接入仿真器后可以选择自动安装完成仿真器驱动的安装

1、CC2530基础实验

1.1、输入输出I/O控制实验

1.1.1、CC2530-1:控制LED灯闪烁

【实验目的】

1.了解CC2530的GPIO结构和配置原理

2.如何通过程序控制CC2530的GPIO驱动外部设备如:LED灯 【实验设备】

实 验 设 备 CC2530多传感器节点底板 CC2530节点模块 USB线 C51RF-3仿真器 【实验原理】 数 量 1 1 1 1 备 注 支持CC2530工作的底板 无线SOC 连接仿真器 程序下载调试用

12

无线传感网络实验实训手册

本例以LED灯为外设,用CC2530控制简单外设,将I/O设置为输出,实验现象LED闪烁。实验中操作了的寄存器有P1,P1DIR,没有设置而是取默认值的寄存器有:P1SEL,P1INP。

P1 (P1口寄存器) 位号 7:0 位名 P1[7:0] 位名 DIRP1_7 DIRP1_6 DIRP1_5 DIRP1_4 DIRP1_3 DIRP1_2 DIRP1_1 DIRP1_0 复位值 0x00 复位值 0 0 0 0 0 0 0 0 操作性 读/写 操作性 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 功能描述 P1端口普通功能寄存器,可位寻址 功能描述 P1DIR (P1方向寄存器) 位号 7 6 5 4 3 2 1 0 P1_7方向:0 输入,1 输出 P1_6方向:0 输入,1 输出 P1_5方向:0 输入,1 输出 P1_4方向:0 输入,1 输出 P1_3方向:0 输入,1 输出 P1_2方向:0 输入,1 输出 P1_1方向:0 输入,1 输出 P1_0方向:0 输入,1 输出 功能描述 P1SEL (P1功能选择寄存器) 位号 7 6 5 4 3 2 1 位名 SELP1_7 SELP1_6 SELP1_5 SELP1_4 SELP1_3 SELP1_2 复位值 0 0 0 0 0 0 操作性 读/写 读/写 读/写 读/写 读/写 读/写 P1_7功能:0 普通I/O,1 外设功能 P1_6功能:0 普通I/O,1 外设功能 P1_5功能:0 普通I/O,1 外设功能 P1_4功能:0 普通I/O,1 外设功能 P1_3功能:0 普通I/O,1 外设功能 P1_2功能:0 普通I/O,1 外设功能 P1_1功能:0 普通I/O,1 外设功能 P1_0功能:0 普通I/O,1 外设功能 功能描述 P1_7输入模式:0 上拉/下拉,1 三态 SELP1_1 SELP1_0 位名 MDP1_7 0 0 读/写 读/写 0 位号 P1INP (P1输入模式寄存器) 复位值 操作性 0 读/写 7

13

无线传感网络实验实训手册

6 5 4 3 2 1 0 MDP1_6 MDP1_5 MDP1_4 MDP1_3 MDP1_2 MDP1_1 MDP1_0 0 0 0 0 0 0 0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 P1_6输入模式:0 上拉/下拉,1 三态 P1_5输入模式:0 上拉/下拉,1 三态 P1_4输入模式:0 上拉/下拉,1 三态 P1_3输入模式:0 上拉/下拉,1 三态 P1_2输入模式:0 上拉/下拉,1 三态 P1_1输入模式:0 上拉/下拉,1 三态 P1_0输入模式:0 上拉/下拉,1 三态 硬件电路:

GPIO输出控制对象为CC2530模块上的红色和绿色LED,分别接在CC2530 芯片的P1.0和P1.1脚上。输出置位为0时LED灯点亮,置位为1时LED灯熄灭。

【实验步骤】

第一步:使用IAR7.51打开―\\物联网实验系统\\ZIGBEE无线传感网络实验\\1-CC2530单片机基础实验\\1.1GPIO输入输出实验\\CC2530-1‖中工程文件―forJ1.eww‖。

二步:打开工程后选择Debug或Release模式

14

无线传感网络实验实训手册

点击左上角程序功能

选择框,如下图所示。

Debug 生成调试信息,支持代码调试

Release 不输出调试信息,直接生成HEX文件第三步:编译工程并下载到目标板。

点击菜单Project,选择―Rebuild All‖,等待一会儿工程文件编译完成。等待一会儿工程文件编译完成把仿真器与网关通过仿真器下载线连接起来。确保仿真器与计算机、仿真器与节点底板连接正确,CC2530无线模块正确地插在节点底板后。

点击菜单Project,选择―Debug‖,或点击如下图标,等待一会儿即完成程序下载

图:编

译工程 图:下载和调试目标板第4步:运行和查看效果。 下载完成后点击全速运行(GO按钮,见下图)或直接按F5键查看程序运行效果。

15

无线传感网络实验实训手册

图:全速运行程

图:节点底板上图所示CC2530模块板载的绿色LED灯(左边)闪烁。

【实验相关代码】

在―CC2530单片机基础程序\\1.1GPIO输入输出实验\\CC2530-1‖目录下的 ―main.c‖文件中我们可以看到:

程序的初始化Initial() 和处理流程 GPIO有关的初始化 ↓ LED初始状态设置 程序主循环 控制LED灯状态翻转和等待演示 RLED = 0; YLED = 0; ↓ While(1) ↓ 主程序 GPIO初始化函数void Initial(void) /**************************** //初始化程序

16

无线传感网络实验实训手册

*****************************/ void Initial(void) { }

P1DIR |= 0x03; //P10、P11定义为输出 RLED = 1; YLED = 1; //LED

主要是配置控制LED灯的GPIO口为输出模式,同时将它们设为高电平(此时LED灭)。

延时子函数void Delay(uint n)

/**************************** //延时

*****************************/ void Delay(uint n) {

uint tt; for(tt =

0;tt

执行5次0到n的空循环来实现软件延时。延时时间约为5*n/32μs。

1.1.2、CC2530-2:按键控制LED灯开关

【实验目的】

1.了解CC2530的GPIO结构和配置原理

2.学习配置按键的GPIO口为输入模式,并采集有效按键 3.如何通过程序控制由按键触发控制LED灯 【实验设备】

17

无线传感网络实验实训手册

实 验 设 备 CC2530多传感器节点底板 CC2530节点模块 USB线 C51RF-3仿真器 【实验原理】 数 量 1 1 1 1 备 注 支持CC2530工作的底板 无线SOC 连接仿真器 程序下载调试用 本例中让用户掌握按键应用这一常用人机交互方法,本次使用按键LED灯的开关。按下―SW2‖键切换ZigBee模块左边LED灯开关,实验中操作了的寄存器有P0,P0DIR,没有设置而是取默认值的寄存器有:P0SEL,P0INP。

P0 (P0口寄存器) 位号 7:0 位名 P0[7:0] 位号 位名 7 6 5 4 3 2 1 0 位号 7 6 5 4 3 2 1

复位值 0x00 操作性 读/写 功能描述 P0端口普通功能寄存器,可位寻址 功能描述 P0_7方向:0 输入,1 输出 P0_6方向:0 输入,1 输出 P0_5方向:0 输入,1 输出 P0_4方向:0 输入,1 输出 P0_3方向:0 输入,1 输出 P0_2方向:0 输入,1 输出 P0_1方向:0 输入,1 输出 P0_0方向:0 输入,1 输出 功能描述 P0_7功能:0 普通I/O,1 外设功能 P0_6功能:0 普通I/O,1 外设功能 P0_5功能:0 普通I/O,1 外设功能 P0_4功能:0 普通I/O,1 外设功能 P0_3功能:0 普通I/O,1 外设功能 P0_2功能:0 普通I/O,1 外设功能 P0_1功能:0 普通I/O,1 外设功能 18

P0DIR (P0方向寄存器) 复位值 操作性 0 0 0 0 0 0 0 0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 操作性 读/写 读/写 读/写 读/写 读/写 读/写 读/写 DIRP0_7 DIRP0_6 DIRP0_5 DIRP0_4 DIRP0_3 DIRP0_2 DIRP0_1 DIRP0_0 P0SEL (P0功能选择寄存器) 位名 SELP0_7 SELP0_6 SELP0_5 SELP0_4 SELP0_3 SELP0_2 SELP0_1 复位值 0 0 0 0 0 0 0 无线传感网络实验实训手册

0 位号 7 6 5 4 3 2 1 0 SELP0_0 位名 MDP0_7 MDP0_6 MDP0_5 MDP0_4 MDP0_3 MDP0_2 MDP0_1 MDP0_0 0 读/写 P0_0功能:0 普通I/O,1 外设功能 功能描述 P0_7输入模式:0 上拉/下拉,1 三态 P0_6输入模式:0 上拉/下拉,1 三态 P0_5输入模式:0 上拉/下拉,1 三态 P0_4输入模式:0 上拉/下拉,1 三态 P0_3输入模式:0 上拉/下拉,1 三态 P0_2输入模式:0 上拉/下拉,1 三态 P0_1输入模式:0 上拉/下拉,1 三态 P0_0输入模式:0 上拉/下拉,1 三态 P0INP (P0输入模式寄存器) 复位值 操作性 0 0 0 0 0 0 0 0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 硬件电路: 图:按键

电路图

按键采用五向摇杆按键Joystick,这里只使用按下这个键。无按键按下时 P06的状态为上拉,高电平。中间键按下时(Cneter),P06与GND连通,P06采集到低电平。

【实验步骤】

第一步:使用IAR7.51打开―\\物联网实验系统\\ZIGBEE无线传感网络实验\\1-

CC2530单片机基础实验\\1.1GPIO输入输出实验\\CC2530-2‖中工程文件 ―switchLED.eww‖。

19

无线传感网络实验实训手册

二步:打开工程后选择Debug或Release模式

点击左上角程序功能

选择框,如下图所示。

Debug 生成调试信息,支持代码调试

Release 不输出调试信息,直接生成HEX文件第三步:编译工程并下载到目标板。

20

无线传感网络实验实训手册

点击菜单Project,选择―Rebuild All‖,等待一会儿工程文件编译完成。等待一会儿工程文件编译完成把仿真器与网关通过仿真器下载线连接起来。确保仿真器与计算机、仿真器与节点底板连接正确,CC2530无线模块正确地插在节点底板后。点击菜单Project,选择―Debug‖,或点击如下图标,等待一会儿即完成程序下载

图:编

译工程 图:下载和调试目标板第4步:运行和查看效果。 下载完成后点击全速运行(GO按钮,见下图)或直接按F5键查看程序运行效果。

图:全速运行程

图:节点底板

按下SW2 摇杆按键的中间键上图所示节点底板板载的红色LED灯(右边边)点亮,再次按下熄灭。

【实验相关代码】在―CC2530单片机基础程序\\1.1GPIO输入输出实验\\CC2530-3‖目录下的

21

无线传感网络实验实训手册

―main.c‖文件中我们可以看到:

程序的初始化Initial() ↓ InitKey(); 和处理流程

LED控制GPIO的初始化

配置按键输入GPIO

↓ RLED = 0; YLED = 0; LED初始状态设置

程序主循环

采集按键和控制LED灯状态翻转

↓ ↓ 按键初始化函 While(1) 主程序 数void InitKey (void)

/***************************************** //按键初始化

*****************************************/ void InitKey(void) {

P0SEL &= ~0X40; P0INP |= 0x40; //上拉

P0DIR &= ~(0x01<<(6)); //按键在P06 ADC采集 }

主要是配置采集输入采集的GPIO P06为输入模式。 延时子函数uchar KeyScan(void)

22

无线传感网络实验实训手册

/***************************************** //读键值

*****************************************/ uchar KeyScan(void)

{ if(K1 == 0) //低电平有效 {

Delay(100); //检测到按键 if(K1 == 0) { while(!K1); //直到松开按键 return(1); } } return(0); }

监测P0.6(K1)上的电平变化,如有高电平变低即有按键产生,返回按键扫描结果为有按键发生。

1.1.3、CC2530-3:按键控制LED灯闪烁

【实验目的】

1.了解CC2530的GPIO结构和配置原理

2.学习配置按键的GPIO口为输入模式,并采集有效按键 3.如何通过程序控制由按键触发控制LED灯闪烁 【实验设备】

实 验 设 备 CC2530多传感器节点底板 CC2530节点模块 USB线 C51RF-3仿真器

数 量 1 1 1 1 备 注 支持CC2530工作的底板 无线SOC 连接仿真器 程序下载调试用 23

无线传感网络实验实训手册

【实验原理】

本例中让用户掌握按键应用这一常用人机交互方法,本次使用按键LED灯的开关。按下―SW2‖键切换ZigBee模块左边LED灯开关,实验中操作了的寄存器有P0,P0DIR,没有设置而是取默认值的寄存器有:P0SEL,P0INP。

P0 (P0口寄存器) 位号 7:0 位名 P0[7:0] 位号 7 6 5 4 3 2 1 0 位号 7 6 5 4 3 2 1 0 位号 7 6 5

复位值 0x00 操作性 读/写 功能描述 P0端口普通功能寄存器,可位寻址 功能描述 P0_7方向:0 输入,1 输出 P0_6方向:0 输入,1 输出 P0_5方向:0 输入,1 输出 P0_4方向:0 输入,1 输出 P0_3方向:0 输入,1 输出 P0_2方向:0 输入,1 输出 P0_1方向:0 输入,1 输出 P0_0方向:0 输入,1 输出 功能描述 P0_7功能:0 普通I/O,1 外设功能 P0_6功能:0 普通I/O,1 外设功能 P0_5功能:0 普通I/O,1 外设功能 P0_4功能:0 普通I/O,1 外设功能 P0_3功能:0 普通I/O,1 外设功能 P0_2功能:0 普通I/O,1 外设功能 P0_1功能:0 普通I/O,1 外设功能 P0_0功能:0 普通I/O,1 外设功能 功能描述 P0_7输入模式:0 上拉/下拉,1 三态 P0_6输入模式:0 上拉/下拉,1 三态 P0_5输入模式:0 上拉/下拉,1 三态 24

P0DIR (P0方向寄存器) 位名 DIRP0_7 DIRP0_6 DIRP0_5 DIRP0_4 DIRP0_3 DIRP0_2 DIRP0_1 DIRP0_0 位名 SELP0_7 SELP0_6 SELP0_5 SELP0_4 SELP0_3 SELP0_2 SELP0_1 SELP0_0 位名 MDP0_7 MDP0_6 MDP0_5 复位值 0 0 0 0 0 0 0 0 操作性 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 操作性 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 P0SEL (P0功能选择寄存器) 复位值 0 0 0 0 0 0 0 0 P0INP (P0输入模式寄存器) 复位值 操作性 0 0 0 读/写 读/写 读/写

无线传感网络实验实训手册

4 3 2 1 0 MDP0_4 MDP0_3 MDP0_2 MDP0_1 MDP0_0 0 0 0 0 0 读/写 读/写 读/写 读/写 读/写 P0_4输入模式:0 上拉/下拉,1 三态 P0_3输入模式:0 上拉/下拉,1 三态 P0_2输入模式:0 上拉/下拉,1 三态 P0_1输入模式:0 上拉/下拉,1 三态 P0_0输入模式:0 上拉/下拉,1 三态 硬件电路: 图:按键

电路图

按键采用五向摇杆按键Joystick,这里只使用按下这个键。无按键按下时 P06的状态为上拉,高电平。中间键按下时(Cneter),P06与GND连通,P06采集到低电平。

【实验步骤】

第一步:使用IAR7.51打开―\\物联网实验系统\\ZIGBEE无线传感网络实验\\1-

CC2530单片机基础实验\\1.1GPIO输入输出实验\\CC2530-3‖中工程文件 ―switchGLINT.eww‖。

25

无线传感网络实验实训手册

二步:打开工程后选择Debug或Release模式

点击左上角程序功能

选择框,如下图所示。

Debug 生成调试信息,支持代码调试

Release 不输出调试信息,直接生成HEX文件第三步:编译工程并下载到目标板。

点击菜单Project,选择―Rebuild All‖,等待一会儿工程文件编译完成。等待一会儿工程文件编译完成把仿真器与网关通过仿真器下载线连接起来。确保仿真器与计算机、仿真器与节点底板连接正确,CC2530无线模块正确地插在节点底板后。点击菜单Project,选择―Debug‖,或点击如下图标,等待一会儿即完成程序下载

26

无线传感网络实验实训手册

图:编

译工程 图:下载和调试目标板第4步:运行和查看效果。 下载完成后点击全速运行(GO按钮,见下图)或直接按F5键查看程序运行效果。

图:全速运行程

图:节点底板

按下SW2 摇杆按键的中间键上图所示节点底板板载的绿色LED灯(左边)闪烁,再次按下停止。

【实验相关代码】在―CC2530单片机基础程序\\1.1GPIO输入输出实验\\CC2530-2‖目录下的

―main.c‖文件中我们可以看到:

27

无线传感网络实验实训手册

程序的初始化Initial() ↓ InitKey(); 和处理流程

LED控制GPIO的初始化

配置按键输入GPIO

↓ RLED = 0; YLED = 0; LED初始状态设置

程序主循环

采集按键和控制LED灯状态翻转

↓ ↓ 按键初始化函 While(1) 主程序 数void InitKey (void)

/***************************************** //按键初始化

*****************************************/ void InitKey(void) {

P0SEL &= ~0X40; P0INP |= 0x40; //上拉

P0DIR &= ~(0x01<<(6)); //按键在P06 ADC采集 }

主要是配置采集输入采集的GPIO P06为输入模式。 延时子函数uchar KeyScan(void)

28

无线传感网络实验实训手册

/***************************************** //读键值

*****************************************/ uchar KeyScan(void)

{ if(K1 == 0) //低电平有效 { Delay(100); //检测到按键 if(K1 == 0) { while(!K1); //直到松开按键 return(1); } } return(0); }

监测P0.6(K1)上的电平变化,如有高电平变低即有按键产生,返回按键扫描结果为有按键发生。

1.1.4、CC2530-4:OLED显示

【实验目的】

1.了解OLED显示屏的驱动原理,学习使用UG-9616GLBBG02显示屏 2.通过CC2530的GPIO模拟IIC总线驱动OLED显示 【实验设备】

实 验 设 备 CC2530多传感器节点底板 CC2530节点模块 USB线 C51RF-3仿真器 【实验原理】

数 量 1 1 1 1 备 注 支持CC2530工作的底板 无线SOC 连接仿真器 程序下载调试用 29

无线传感网络实验实训手册

节点底板配置的OLED显示屏为悠景科技股份有限公司的UG-9616GLBBG0显示屏。屏幕的参数如下:

显示屏驱动芯片为SSD1306,驱动芯片和显示屏连接示意图如下:

CC2530通过模拟IIC通讯接口控制和驱动OLED的驱动芯片SSD1306,硬件电路图如下:

图:OLED电路图 P12模拟

成SDA,P13模拟成SCL信号线。

【实验步骤】

30

无线传感网络实验实训手册

第一步:使用IAR7.51打开―\\物联网实验系统\\ZIGBEE无线传感网络实验\\1-

CC2530单片机基础实验\\1.1GPIO输入输出实验\\CC2530-4‖中工程文件 ―OledDisp.eww‖。

第二步:打开工程后选择Debug或Release模式

点击左上角程序功能选择框,如下图所示。

Debug

生成调试信息,支持代码调试

Release 不输出调试信息,直接生成HEX文件第三步:编

译工程并下载到目标板。

31

无线传感网络实验实训手册

点击菜单Project,选择―Rebuild All‖,等待一会儿工程文件编译完成。等待一会儿工程文件编译完成把仿真器与网关通过仿真器下载线连接起来。确保仿真器与计算机、仿真器与节点底板连接正确,CC2530无线模块正确地插在节点底板后。

点击菜单Project,选择―Debug‖,或点击如下图标,等待一会儿即完成程序下载

图:编

译工程 图:下载和调试目标板第4步:运行和查看效果。 下载完成后点击全速运行(GO按钮,见下图)或直接按F5键查看程序运行效果。

图:全速运行程

图:节点底板 图:序全速运行后OLED屏幕上显示【实验相关代码】

Welcome OLE显示结果程―Welcome‖字符。

在―CC2530单片机基础程序\\1.1GPIO输入输出实验\\CC2530-2‖目录下的

32

无线传感网络实验实训手册

―main.c‖文件中我们可以看到:

程序的初始

Initial() 化和处理流程

LED控制GPIO的初始化

↓ ugOled9616int (); OLED的初始化配置

点亮红色LED

↓ ↓ RLED = 0; 显示―Welcome‖

LcdPutString16_8 函数void ugOled9616int (void) 进行控制驱动

OLED有关的GPIO配置,

以及配置OLED驱动芯片的寄存器启动OLED运行,程序在―ugOled9616.c‖文件中。

void ugOled9616int( void ) { }

ugOledPortInt(); OLED_Init();

//驱动OLED的GPIO配置 //OLED驱动芯片的寄存器配置

输出显示子函数void LcdPutString16_8( u8 x,u8 y,u8 *ptr,u8 len,u8 op ),在OLED指定的位置显示一串字符串。

33

无线传感网络实验实训手册

void LcdPutString16_8( u8 x,u8 y,u8 *ptr,u8 len,u8 op ) { u8 i,j,*tptr = ptr,xx = x,yy = y; u16 m; if( xx > 95)

return ;

if( yy )

return ;

for( i = 0;i < len; i ++ )

{

m = lookforChar(*tptr ++); if( m != FONTLISTCOUNT ) {

m = m * 16;

for( j = 0;j < 8;j ++ ) { if(op) { LcdPutChar8( (xx + j),yy,font[m+j] ); LcdPutChar8( (xx + j),yy+1,font[m+j+8] );

} else

{

34

无线传感网络实验实训手册

}

}

}

}

LcdPutChar8( (xx + j),yy,~font[m+j] ); LcdPutChar8( (xx + j),yy+1,~font[m+j+8] );

else

break;

xx += 8;

if( xx > 96 ) }

PutPic( (void *)LcdBuf );

return;

监测P0.6(K1)上的电平变化,如有高电平变低即有按键产生,返回按键扫描结果为有按键发生。

1.2定时器控制实验

1.2.1、CC2530-5:使用定时器T1

【实验目的】

1.了解CC2530的定时器T1的配置和使用

2.如何通过程序控制CC2530的T1驱动LED灯定时点亮 【实验设备】

实 验 设 备 CC2530多传感器节点底板 CC2530节点模块 USB线 C51RF-3仿真器 【实验原理】 数 量 1 1 1 1 备 注 支持CC2530工作的底板 无线SOC 连接仿真器 程序下载调试用

35

无线传感网络实验实训手册

本例用定时器1 来改变小灯的状态,T1 每溢出两次,两个小灯闪烁一次,并且在停止闪烁后成闪烁前相反的状态。

T1的操作模式有3种:free-running模式,modulo模式和up-down模式 1. free-running模式

计数器从0x0000开始计数,当计算值达到0xFFFF时溢出,此时

IRCON.T1IF 和T1CTL.OVFIF被置1,如果TIMF.OVFIF和IEN1.T1EN也被置1,就会产生中断

请求,计数器复位为0x0000,重新开始计数。

2. modulo模式

计数器从0x0000开始计数,当计算值达到T1CC0时溢出,此时

IRCON.T1IF 和T1CTL.OVFIF被置1,如果TIMF.OVFIF和IEN1.T1EN也被置1,就会产生中断

请求,计数器复位为0x0000,重新开始计数。

3. up-Down模式

36

无线传感网络实验实训手册

计数器从0x0000开始计数,当计算值达到T1CC0时,计数值开始递减直至 0x0000,此时IRCON.T1IF和T1CTL.OVFIF被置1,如果TIMF.OVFIF和IEN1.T1EN 也被置1,就会产生中断请求,计数器重新开始计数。

T1CTL(T1控制&状态寄存器) 位号 7 6 5 4 3:2 位名 CH2IF CH1IF CH0IF OVFIF DIV[1:0] 复位值 操作性 0 0 0 0 00 读/写 读/写 读/写 读/写 读/写 功能描述 定时器1通道2中断标志位 定时器1通道1中断标志位 定时器1通道0中断标志位 定时器溢出中断标志,在在计数器达到计数终值的时候置位 定时器1计数时钟分步选择 00:不分频 01:8分频 10:32分频 11:128分频 定时器1模式选择 00:暂停 01:自动重装0x0000-0xffff 10:比较计数0x0000-T1CC0 11 :PWM方式 1:0 MODE[1:0] 00 读/写 硬件电路:

37

无线传感网络实验实训手册

GPIO输出控制对象为CC2530模块上的红色和绿色LED,分别接在CC2530 芯片的P1.0和P1.1脚上。输出置位为0时LED灯点亮,置位为1时LED灯熄灭。【实验步骤】

第一步:使用IAR7.51打开―\\物联网实验系统\\ZIGBEE无线传感网络

实验\\1-CC2530单片机基础实验\\1.2定时器控制实验\\CC2530-1‖中工程文件 ―T1.eww‖。

二步:打开工程后选择Debug或Release模式

点击左上角程序功能

选择框,如下图所示。

Debug

生成调试信息,支持代码调试

38

无线传感网络实验实训手册

Release 不输出调试信息,直接生成HEX文件第三步:编

译工程并下载到目标板。点击菜单Project,选择―Rebuild All‖,等待一会儿工程文件编译完成。等待一会儿工程文件编译完成把仿真器与网关通过仿真器下载线连接起来。确保仿真器与计算机、仿真器与节点底板连接正确,CC2530无线模块正确地插在节点底板后。

点击菜单Project,选择―Debug‖,或点击如下图标,等待一会儿即完成程序下载

图:编

译工程 图:下载和调试目标板第4步:运行和查看效果。 下载完成后点击全速运行(GO按钮,见下图)或直接按F5键查看程序运行效果。

图:全速运行程

图:节点底板 上图所示节点底板板载的绿色LED灯(左边)和红

色LED(右边)交替闪烁。

【实验相关代码】

在―CC2530单片机基础程序\\1.2定时器控制实验\\CC2530-1‖目录下的 ―main.c‖文件中我们可以看到:

39

无线传感网络实验实训手册

程序的初始化和处

理流程 Initial() 初始化GPIO和T1 点亮红色LED 程序主循环 ↓ ↓ RLED = 0; 有T1的计数溢While(1) void ↓ 主程序 出控制LED 灯状态翻转初始化函数Initial(void) /**************************** //初始化程序 ***************************/ void Initial(void) { //初始化P1 P1DIR = 0x03; //P10 P11为输出 RLED = 1; YLED = 1; } //灭LED //用T1来做实验 T1CTL = 0x3d; //通道0,中断有效,128分频;自动重装模式(0x0000->0xffff); 函数功能是将P10,P11设为输出,并将定时器1设为自动重装模式,计数时钟为0.25M

40

无线传感网络实验实训手册

1.2.2、CC2530-6:使用定时器T2

【实验目的】

1.了解CC2530的定时器T2的配置和使用,定时器的中断使用方式 2.如何通过程序控制CC2530的T1驱动LED灯定时点亮 【实验设备】

实 验 设 备 CC2530多传感器节点底板 CC2530节点模块 USB线 C51RF-3仿真器 【实验原理】 本例开启定时器2的中断,计数比较溢出后产生中断来改变小灯的状态,T2 每溢出一次,红色小灯状态改变一次(由亮变暗或由暗变亮)。

T2的操作模式如T1不同没有T1的3种工作模式:free-running模式,modulo 模式和up-down模式。

T2CTRL(T2配置寄存器) 位号 7:4 3 位名 - LATCH_MODE 复位值 0 0 操作性 读 保留,读 0 功能描述 数 量 1 1 1 1 备 注 支持CC2530工作的底板 无线SOC 连接仿真器 程序下载调试用 读/写 0:当T2MSEL.T2MSEL = 000 读T2M0, T2M1,T2MSEL.T2MOVFSEL=000。读T2MOVF0, T2MOVF1 T2MOVF2。 1:当T2MSEL.T2MSEL = 000 读T2M0, T2M1,T2MOVF0 , T2MOVF1, aT2MOVF2 读 0 计数器空闲模式,1 计数器正常运行。 2 1 STATE SYNC 0 1 读/写 同步使能 0:T2立即起、停。 1:T2起、停和32.768kHz时钟及计数新值同步 41

无线传感网络实验实训手册

0 读/写 启动T2,通过读出该位可以知道T2的状态。 0:停止T2(IDLE),1:启动T2(RUN) T2MOVF2 (T2多路复用溢出计数器2寄存器) 位名 CMPIM 复位值 0 操作性 读/写 功能描述 T2MSEL.T2MOVFSEL=000, T2CTRL.LATCH_MODE =0 时,计数值被锁存。 功能描述 和 T2CTRL.LATCH_MODE=0时,计数值被锁存。 T2MSEL.T2MSEL=000 和 T2CTRL.LATCH_MODE=1 时,计数值和溢出值被锁存。 T2IRQF(中断标志) RUN 0 位号 7:0 T2M0 ((T2多路复用寄存器) 位号 7:0 位名 CMPIM 复位值 操作性 0 读/写 T2MSEL.T2MSEL=000 位号 7:6 5 4 3 2 1 0 位名 - TIMER2_OVF_COMPARE2F TIMER2_OVF_COMPARE1F TIMER2_OVF_PERF TIMER2_COMPARE2F TIMER2_COMPARE1F TIMER2_PERF T2IRQM(中断屏蔽) 复位值 0 0 0 0 0 0 0 操作性 读 读/写 读/写 读/写 读/写 读/写 读/写 保留 功能描述 当溢出计数器计数达到 t2ovf_cmp2的值时置位 当溢出计数器计数达到 t2ovf_cmp1的值时置位 当溢出计数器计数等于 t2ovf_per的值时置位 当计数器计数达到 t2_cmp2 的值时置位 当计数器计数达到 t2_cmp1 的值时置位 当计数器计数等于 t2_per 的值时置位 功能描述 位号 位名 复位值 操作性

42

无线传感网络实验实训手册

7:6 - 0 0 0 0 0 0 0 读 保留 读/TIMER2_OVF_COMPARE2M 写 中断使能 读/TIMER2_OVF_COMPARE1M 写 中断使能 读/TIMER2_OVF_PERM 中断 写 使能 读/TIMER2_COMPARE2M 中 写 断使能 读/TIMER2_COMPARE1M 中 写 断使能 读/TIMER2_PERM中断使能 写 5 TIMER2_OVF_COMPARE2MF 4 3 2 1 0 TIMER2_OVF_COMPARE1M TIMER2_OVF_PERM TIMER2_COMPARE2M TIMER2_COMPARE1M TIMER2_PERM 硬件电路:

GPIO输出控制对象为CC2530模块上的红色和绿色LED,分别接在CC2530 芯片的P1.0和P1.1脚上。输出置位为0时LED灯点亮,置位为1时LED灯熄灭。

【实验步骤】

第一步:使用IAR7.51打开―\\物联网实验系统\\ZIGBEE无线传感网络

实验\\1-CC2530单片机基础实验\\1.2定时器控制实验\\CC2530-2‖中工程文件 ―T2.eww‖。

43

无线传感网络实验实训手册

第二步:打开工程后选择Debug或Release模式

点击左上角程序功能

选择框,如下图所示。

Debug

生成调试信息,支持代码调试

Release 不输出调试信息,直接生成HEX文件第三步:编

译工程并下载到目标板。

点击菜单Project,选择―Rebuild All‖,等待一会儿工程文件编译完成。等待一会儿工程文件编译完成把仿真器与网关通过仿真器下载线连接起来。确保仿真器与计算机、仿真器与节点底板连接正确,CC2530无线模块正确地插在节点底板后。

点击菜单Project,选择―Debug‖,或点击如下图标,等待一会儿即完成程序下载

44

无线传感网络实验实训手册

图:编

译工程 图:下载和调试目标板第4步:运行和查看效果。下载完成后点击全速运行(GO按钮,见下图)或直接按F5键查看程序运行效果。

图:全速运行程

图:节点底板

上图所示节点底板板载的绿色LED灯(左边)由定时器T2的比较溢出中断改变状态。 【实验相关代码】

在―CC2530单片机基础程序\\1.2定时器控制实验\\CC2530-2‖目录下的 ―main.c‖文件中我们可以看到:

45

无线传感网络实验实训手册

程序的初始化和处

理流程 Initial() 初始化GPIO和T2

↓ RLED = 0; 点亮红色LED 启动T2定时器 ↓ ↓ TIMER2_RUN() 程序主循环 由T2的计数溢出改变 TempFlag值,控制LED灯

状态翻转 While(1) ↓ 主程序 初始化函数void Initial(void) { //用T2来做实验 void Initial(void) LED_ENALBLE(); //启用LED SET_TIMER2_OF_INT(); //开溢出中断 SET_TIMER2_CAP_COUNTER(0X00ff); //设置溢出值 } 函数功能是启用LED,使用LED可控,开T2比较中

断重要的宏定义开启溢出中断

#define SET_TIMER2_CAP_INT() \\ do{ \\ T2IRQM = 0x04; \\

EA = 1; \\ T2IE = 1; \\ T2MSEL |= 0xf4; \\ }while(0)

设定溢出周期

#define SET_TIMER2_CAP_COUNTER(val) SET_WORD(T2M1,T2M0,val) 功能:将无符号整形数val的高8位写入T2CAPLPL,低8位写入

T2CAPHPH。 启动T2

46

无线传感网络实验实训手册

#define TIMER2_RUN() T2CTRL|=0X01 停止T2

#define TIMER2_STOP() do{T2CTRL&=0XFE;}while(0)

1.3中断输入和采集实验

1.3.1、CC2530-7:定时器T4中断

【实验目的】

1.了解CC2530的T4的使用 2.学习定时器T4的中断模式使用 【实验设备】

实 验 设 备 CC2530多传感器节点底板 CC2530节点模块 USB线 C51RF-3仿真器 【实验原理】 本例用定时器4来改变小灯的状态,T4每2000次中断小灯闪烁一轮,闪烁的时间长度为1000次中断所耗时间。

定时器T3,T4是8Bit的定时器和前面实验中的T1,T2不同。T4使用的寄存器如下:

T4CTL(T4控制寄存器) 位号 7:5 位名 DIV[2:0] 复位值 操作性 000 读/写 功能描述 定 时 器 时 钟 再 分 频 数 ( 对 CLKCONCMD.TICKSPD分频后再次分频) 000 不再分频 001 2分频 010 4分频 011 8分频 100 16分频 101 32分频 110 64分频 111 128分频 47

数 量 1 1 1 1 备 注 支持CC2530工作的底板 无线SOC 连接仿真器 程序下载调试用

无线传感网络实验实训手册

4 3 2 1:0 START OVFIM CLR MODE[1:0] 00 0 1 0 读/写 T4起停位 0 暂停计数,1 正常运行 读/写0 溢出中断掩码 0 关溢出中断,1 开溢出中断 R0/W1 清计数值,写1使T4CNT=0x00 读/写 T4模式选择 00 自动重装 01 DOWN (从T4CC0到0x00计数一次) 10 模计数 (反复从0x00到T4CC0计数) 11 UP/DOWN(反复从0x00到T4CC0再到0x00) 功能描述 预留 通道0中断掩码 0 关中断,1 开中断 通道 0 比较输出模式选择,指定计数值过T4CC0时的发生事件 000 输出置1(发生比较时) 001 输出清0(发生比较时) 010 输出翻转 011 输出置1(发生上比较时)输出清 0(计数值为0或UP/DOWN模式下发生下比较) 100输出清0(发生上比较时)输出置 1(计数值为0或UP/DOWN模式下发生下比较) 101 输出置1(发生比较时)输出清0 (计数值为0xff时) 110输出清0(发生比较时)输出置1 (计数值为0x00时) 111 预留 T4通道0模式选择 0 捕获,1 比较 T4CCTL0 (T4通道0捕获/比较控制寄存器) 位号 7 6 5:3 位名 - IM CMP[7:0] 复位值 0 1 000 操作性 读 读/写 读/写 2 MODE- 0 读/写

48

无线传感网络实验实训手册

1:0 CAP 00 读/写 T4通道0捕获模式选择 00 没有捕获 01 上升沿捕获 10 下降沿捕获 11 边沿捕获 操作性 读/写 功能描述 T4 通道 0 比较/捕获值 功能描述 预留 通道1中断掩码 0 关中断,1 开中断 通道1比较输出模式选择,指定计数值过T4CC0时的发生事件 000 输出置1(发生比较时) 001 输出清0(发生比较时) 010 输出翻转 011 输出置1(发生上比较时)输出清0(计数值为0或UP/DOWN模式下发生下比较) 100 输出清 0(发生上比较时)输出置1(计数值为0或UP/DOWN模式下发生下比较) 101 输出置1(发生比较时)输出清 0(计数值为0xff时) 110 输出清 0(发生比较时)输出置 1(计数值为0x00时) 111 预留 T4CC0 (T4通道0捕获/比较值寄存器) 位号 7:0 位名 VAL[7:0] 复位值 0x00 T4CCTL1 (T4通道1捕获/比较控制寄存器) 位号 7 6 5:3 位名 - IM CMP[7:0] 复位值 0 1 0 操作性 读 读/写 读/写 2 MODE- 0 读/写 T4通道1模式选择 0 捕获,1 比较

49

本文来源:https://www.bwwdw.com/article/bxep.html

Top