Zigbee实验2 CC2530外部按键实验
无线点灯实验报告
一、实验目的本次实验旨在通过Zigbee无线通信技术,实现无线点灯功能。
通过实验,加深对Zigbee无线通信协议的理解,掌握无线点灯系统的搭建与调试方法,并了解其应用前景。
二、实验原理Zigbee是一种低功耗、低成本、低速率的无线通信技术,广泛应用于智能家居、工业控制等领域。
本实验采用CC2530芯片作为Zigbee模块,通过编程实现无线点灯功能。
实验原理如下:1. Zigbee节点盒:包括LED1、LED2、SW1、CC2530芯片等。
节点盒的功能是控制LED1、LED2的亮灭,并接收Zigbee模块发送的信息。
2. Zigbee模块:包括D4、D3、D6、D5、CC2530芯片等。
模块的功能是接收节点盒发送的信息,并控制LED1、LED2的亮灭。
3. 无线通信:Zigbee节点盒与Zigbee模块之间通过无线信号进行通信。
4. 程序控制:通过编程实现LED1、LED2的亮灭状态,以及流水灯状态。
三、实验器材1. CC2530无线节点盒模块1套2. CC2530无线模块1套3. LED灯2个4. 按键开关2个5. 电阻、电容等电子元器件6. 仿真软件(如Proteus)7. 连接线若干四、实验步骤1. 搭建实验电路:将CC2530无线节点盒模块、CC2530无线模块、LED灯、按键开关等元器件按照电路图连接好。
2. 编写程序:在仿真软件中编写Zigbee节点盒和Zigbee模块的程序。
程序主要实现以下功能:(1)节点盒程序:控制LED1、LED2的亮灭,并接收Zigbee模块发送的信息。
(2)模块程序:接收节点盒发送的信息,并控制LED1、LED2的亮灭。
3. 调试程序:将编写好的程序烧录到CC2530芯片中,进行调试。
4. 实验测试:观察LED1、LED2的亮灭状态,以及流水灯状态,验证实验结果。
五、实验结果与分析1. 当程序开始运行时,Zigbee节点盒上的LED1、LED2灯亮,Zigbee模块上的D4、D3、D6、D5灯亮。
CC2530基础技能综合实训案例(附源码)
【通信规约的设计】
本案例的通信规约比较简单,主要规定数据帧的结构和功能。系统的命令数 据帧的长度固定,为 8 个字节,由帧头、地址域、命令域、数据域、和校验与帧 尾这六个部分组成,具体格式如下: 帧头 地址域 命令域 数据域 和校验 帧尾 0xAF ID cmd data1 data2 data3 chk 0xFA <1> 帧头和帧尾为固定的两个数值:0xAF 0xFA。 <2> 地址域为终端的 ID 号,其中 0xFF 的为广播地址,所有终端响应该命令帧。 <3> 和校验为前面 6 个字节相加 256 取模。 <4> 数据域中和命令域的命令字解析,详见具体命令操作。
收到到上位机的数据采集命令后, 便开始以每 0.2 秒一帧的频率向上位机传送现 场的光照度数值和两个照明设备的开关状态。如果测控终端的现场报警被触发, 终端将停止所有的工作, 并向上位机发送报警命令帧, 同时四个指示等同时闪烁。 直到收到上位机的解除报警命令帧后,测控终端恢复初始状态,并重新向上位机 发送一个终端上线命令帧,然后进入正常工作状态。 在上位机应用软件中, 首先设置好串口参数并建立串口数据通道,然后根据 案例的功能需求开始采集终端数据,然后将各种信息可视化,并实现照明设备远 程控制和现场报警解除等功能。
OHY 研修笔记之“物联网应用技术”02
CC2530 单片机开发技术
基础技能综合实训案例(附源码 8 月 3 日
【引言】
不管是简单的单片机应用, 还是复杂的嵌入式系统,在我看来它们的本质结 构是差不多的,都离不开“内核+外设”的典型架构,它们之间的区别更多是在 内核性能高低和外设丰富程度上。 如果不上操作系统, 性能强大的 ARM 处理器也 不过是一个外设丰富的高端单片机。CC2530 也是一款以增强型 8051 为内核,结 合了 RF 收发模块的一个片上系统 SOC。当然,要想更好更灵活的应用 CC2530 这 款芯片,就必须先扎实把握好 CC2530 基本模块的开发技能。 对于 CC2530 来说,其基本的通用外设和其他的嵌入式系统没什么两样,而 我们在实际开发过程中,最基础最常用的也就下面几个模块: 1、I/O 端口,包括端口功能选择和数据传输方向的设置,端口数据读写。 2、外部中断,包括中断使能和优先级设置,中断处理函数编写。 3、定时/计数器,包括定时器的参数设置,中断处理函数编写。 4、串行通信,包括波特率等参数设置,收发函数和中断处理函数编写。 5、A/D 转换,包括参数设置和通道选择,中断函数的编写。 上面关于 CC2530 基础模块的内容和实训案例,我已经将其整理成由 6 个课 程组成的《CC2530 入门CC2530 的教材书籍对各个单一功能模块的 简述有很多,但将各个模块融合成为一个综合性的实训案例分析的却很不多见。 因此,在本综合实训案例中,会将前面讲述的五大基础技能模块融合在一起,结 合实际的应用场景, 进行一个系统性的整体设计,既可以锻炼各个外设模块的开 发能力,又能培养物联网整体项目设计的基本思维。 虽然这个综合实训案例的功能不算复杂, 而且在程序设计上有些地方也进行 了简化,但是五脏俱全,一个实际应用项目中该涉及的关键部分都涉及到了。就 单一功能来看, 每一个都没有难点。难是难在怎么把这个单一的功能串联起来形 成一个完成特定业务逻辑的系统,而且还有应对外部事件相应和远程信息交互。 需要有熟练的基础技能和一定的系统思维才能够完全独立完成该综合实训案例, 这是对你个人的开发能力是一个有力的提高。 不管是 CC2530 还是其他的微处理器,它们都是解决问题的工具而已。掌握 微处理器中每个功能模块固然重要, 而然灵活应用微控制器中的功能外设解决实 际的项目需求才是最终目的。 而要达到这个水平, 没有其他办法, 只有亲力亲为, 不断开发实践,不断积累经验。作为一个合格的嵌入式系统设计师,除了精通嵌 入式开发之外,掌握常见的上位机应用开发也是非常有必要的。
ZigBee无线传感器网络设计实战第二章
实训 2-1 通用数字接口控制
4个GND引脚(GND为接地引脚)。 2个射频天线输入输出引脚(RF_N和RF_P)。 2个32 MHz外部晶振引脚(XOSC_Q1和XOSC_Q2)。 1个数字输入复位引脚(RESET_N)。 1个模拟I/O参考电流的外部精密偏置电阻引脚(RBIAS1)。
实训 2-1 通用数字接口控制
CC2530实物及引脚图
实训 2-1 通用数字接口控制 其中包括: 21个I/O引脚(P0_0~P0_7、P1_0~P1_7、P2_0~P2_4)。 6个2 V~3.6 V模拟电源引脚(AVDD1~AVDD6)。 2个2 V~3.6 V数字电源引脚(DVDD1~DVDD2)。 1个1.8 V内部数字电源引脚(DCOUPL)。
实训 2-1 通用数字接口控制
在任何时候,要改变一个端口引脚的方 向,使用寄存器PxDIR来设置每个端口 引脚为输入或输出即可。只要设置 PxDIR中的指定位为1,其对应的引脚口 就被设置为输出了。
实训 2-1 通用数字接口控制
当读取端口寄存器P0、P1和P2的值时,不管引脚配置 如何,输入引脚上的逻辑值都被返回。这在执行读—修 改—写指令期间不适用。读—修改—写指令为:ANL, ORL,XRL,JBC,CPL,INC,DEC,DJNZ,MOV, CLR和SETB。在一个端口寄存器上操作,以下是正确 的:当目标是端口寄存器P0、P1或P2中一个独立的位 时,寄存器的值(不是引脚上的值)被读取、修改并写 回端口寄存器。
实训 2-1 通用数字接口控制 I/O端口的寄存器如下:
实训 2-1 通用数字接口控制
用作输入时,通用I/O端口引脚可以设置为上拉、 下拉或三态操作模式。作为缺省的情况,复位之 后,所有的端口均设置为带上拉的输入。要取消 输入的上拉或下拉功能,就要将PxINP中的对应 位设置为1。I/O端口引脚P1.0和P1.1没有上拉/下 拉功能。
CC2530学习路线-基础实验-GPIO按键控制LED灯亮灭(2)
CC2530学习路线-基础实验-GPIO按键控制LED灯亮灭(2)⽬录1.前期预备知识1.1 新⼤陆Zigbee模块按键电路图由上图可知,Zigbee模块的SW1按钮连接在P1.2端⼝上,当SW1导通,P1.2电平从3.3V被拉低接地。
所以P1.2输⼊模式为下拉输⼊.1.2 CC2530相关寄存器寄存器名称寄存器作⽤寄存器描述P1 (0x90)*控制端⼝1的⾼低电平端⼝1.通⽤I/O。
可以通过SFR位寻址P1SEL(0xF4)端⼝1 8个⼦端⼝的功能选择P1SEL的8个bit分别代表 => P1.7~P1.0的功能选择.值为 0:代表通⽤I/0(GPIO)功能.值为 1 : 代表外设功能P1DIR(0xFE)端⼝1 输⼊输出选择P1DIR的bit定义同P1SEL;值为 0:代表从外部输⼊信号⾄CC2530;值为 1:代表从CC2530输出信号⾄外部P1INP (0xF6)端⼝1 输⼊模式选择P1INP定义为P1.7~P1.2的I/O输⼊模式。
其中P1.0和P1.1是没有上拉/下拉功能。
值为 0:上拉/下拉。
值为 1:三态(⾼电平、低电平、⾼阻态)P2INP (0xINP)端⼝2 输⼊模式及其它端⼝选择P2INP⽐较特殊,因为P2端⼝引出的引脚只有3个,所以P2INP还有其它功能。
bit 0 ~ 4 : P2.4~P2.0的输⼊模式。
0 : 上拉/下拉; 1:三态bit 5 : 设置端⼝0上拉/下拉选择。
对端⼝P0上⾯的所有引脚设置为上拉/下拉输⼊ 0 : 上拉; 1: 下拉bit 6 : 同bit 5功能,但是是设置端⼝1上所有引脚bit 7 : 同bit5功能,但是是设置端⼝2上的所有引脚P1IEN(0x8D)端⼝1 中断屏蔽端⼝P1.7~P1.0的中断使能(也就是说中断是否Enable*(打开))0 : 中断禁⽤1 : 中断使能PICTL(0x8C)端⼝中断控制 P0ICON(bit0)端⼝0、1、2输⼊模式下的中断配置。
ZIGBEECC2530初步测试报告
ZIGBEECC2530初步测试报告ZIGBEE CC2530 初步测试报告一、当前常用无线通信方式及协议二、ZIGBEE 网络组成ZIGBEE 网络由协调器(Coordlnator)(网络中只能有唯一一个协调器),若干路由器(Router),若干终端设备(End Device)组成。
协调器、路由器可以有多个子节点(路由器和终端设备),路由器也可以有多个父节点(终端设备和路由器),而终端设备只能一个父节点(协调器或路由器)。
协调器首先选择一个信道和网络标识(PAN ID),然后开始这个网络.因为协调器是整个网络的开始,他具有网络的最高权限,是整个网络的维护者,还可以保持间接寻址用的表格绑定,同时还可以设计安全中心和执行其他动作,保持网络其他设备的通信。
路由器是一种支持关联的设备,能够实现其他节点的消息转发功能。
Zigbee的树形网络可以有多个zigbee路由器设备,zigbee的星型网络不支持zigbee的路由器设备。
终端设备是具体执行的数据采集传输的设备,他不能转发其他节点的消息。
ZIGBEE 网络拓扑结构主要分为星型结构、树型结构、网状结构。
如下图所示:星型结构树型结构网状结构网状网络拓扑结构的网络具有强大的功能,网络可以通过“多级跳”的方式来通信;该拓扑结构还可以组成极为复杂的网络;网络还具备自组织、自愈功能;星型和族树型网络适合点多多点、距离相对较近的应用。
网络拓扑结构需要在组网是确定。
三、ZIGBEE 功耗ZIGBEE模块CC2530 不含PA功能。
四、功耗计算假设采用两节AA电池为终端设备供电,电池有效容量为2000mAh。
通信过程中不丢失数据。
设备一天睡眠功耗:SLEEP_P=0.001mA*1000ms*60*60*24=86400mAms例1:设备每天动作10次,每一秒联网一次,设备一天联网次数:60*60*24/1-10=86390 次设备一天耗电:TOTAL_P=SLEEP_P + SWITCH_P * 86390 + TX_P*10 + RX_P*10= 86400 + 100.5775*86390 + 120.4175*10 + 245.669*10=8778951mAms=2.439mAh电池可用:2000/2.439=820 天=2.24年例2:设备每10秒动作联网一次,设备一天动作联网次数:60*60*24/10=8640 次设备一天耗电:TOTAL_P=SLEEP_P + TX_P*10 + RX_P*10= 86400 + 120.4175*8640 + 245.669*8640=3249387mAms=0.903mAh电池可用:2000/0.903=2214.8 天=6.06年。
CC2530基础实验指导
无线传感网络基础实验-CC2530指导书一、开发环境介绍硬件设备:CC2530扩展板一块,Zigbee模块一块,编程器一个,USB线一条CC2530引脚图软件环境:IAR Embedded Workbench for MCS-51二、IAR的使用1、打开IAR:开始->IAR Systems->IAR Embedded Workbench for MCS-51 7.51A Evaluation 下点击IAR Embedded Workbench图标打开IAR软件,如图 1图12、工程建立:在菜单栏选择File->New->Workspace,完成工作区的建立。
在菜单栏选择Project->Creat New Project,建立一个新的工程,如图2所示:图2弹出图3建立新工程对话框,确认Tool chain 栏已经选择8051,在Projecttemplates栏选择Empty project 单击下方OK 按钮。
图3根据需要选择工程保存的位置,更改工程名,如ledtest 单击Save来保存,如图4所示。
这样便建立了一个空的工程。
图4这样工程就出现在工作区窗口中了,如图5所示图5系统产生两个创建配置:调试和发布。
在这里我们只使用Debug即调试。
项目名称后的星号(*)指示修改还没有保存。
选择菜单:File\Save\Workspace ,保存工作区文件,并指明存放路径,这里把它放到新建的工程目录下。
3、添加文件或新建程序文件选择菜单Project\Add File 或在工作区窗口中,在工程名上点右键,在弹出的快捷菜单,选择CC2530基础实验中对应实验中需要的文件,点击打开,如图6。
图6打开后工程文件显示如图7:图7如没有建好的程序文件也可单击工具栏上的或选择菜单File\New\File 新建一个空文本文件,向文件里添加程序代码。
4、工程的编译与下载编译方式有以下几种:A.菜单栏中快捷方式编译:生成可执行代码:B.选择菜单栏中的Project->Compile,然后选择菜单栏中Project->Make;C.选择菜单栏中的Project->Rebuild AllCode下载:A.选择菜单栏中Project->DebugB.单击菜单栏图标三、驱动安装在第一次插上下载器时,一般会提示驱动安装失败。
cc2530的接口实验的实验原理
cc2530的接口实验的实验原理下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
本文下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Downloaded tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The documents can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!CC2530是一款常用于物联网设备的芯片,其接口实验是物联网领域中的重要实践之一。
实验2:CC2530-定时器实验
计算机科学与技术学院实验报告课程名称:无线传感器网络原理与应用¥"(实验二:CC2530定时器实验一、实验目的了解并学会使用 CC2530 芯片的定时器。
二、实验内容用定时器 1 和定时器 3 采用中断方式实现定时,分别控制红绿灯的状态翻转。
¥定时器 1 自由运行模式,8 分频;定时器 3 自由运行,128 分频。
定时器 1 为16 位定时器,在自由运行模式下,从 0x0000 到 0xFFFF 反复计数;定时器 3 为 8位定时器,在自由运行模式下,从 0x00 到 0xFF 反复计数。
当到达计时值时,定时器会产生中断,中断函数就是处理相应定时器产生的中断。
三、实验环境硬件:鼎轩 WSN 实验箱(汇聚网关、烧录线),PC 机;软件:IAR 软件。
四、实验步骤CC2530 芯片包含四个定时器(Timer1、Timer2、Timer3、Timer4)和一个休眠定时器(Sleep Timer)。
Timer1 是 16 位的定时器,支持典型的定时/计数功能以及 PWM 功能,该定时器共有三个捕捉/比较通道,每个通道使用一个单独的 I/O 引脚。
Timer1 的时钟频率是由系统时钟分频得到,首先由寄存器中的分频,系统时钟是32MHz的情况下,可以将该时钟频率分频到32MHz (TICKSPD为 000)、16MHz(TICKSPD 为 001)、 8MHz (TICKSPD 为 010)、 4MHz(TICKSPD为 011)、 2MHz (TICKSPD 为 100)、 1MHz (TICKSPD 为 101)、(TICKSPD为 110)、(TICKSPD 为 111);分频后的时钟频率可以被分频,分频数为 1、8、32、128。
因此,在 32MHz 的系统频率下,Timer1 的最小时钟频率为,最大时钟频率为 32MHz。
|Timer2 主要用于为标准中的 CSMA/CA 算法提供定时。
cc2530外部中断课程设计
cc2530外部中断课程设计一、教学目标本课程的教学目标是让学生掌握CC2530外部中断的基本原理和应用方法。
具体来说,知识目标包括了解CC2530外部中断的硬件结构和中断处理流程,掌握中断触发条件和中断服务程序的编写方法。
技能目标则要求学生能够运用CC2530外部中断实现简单的输入输出控制,并能够分析中断异常情况。
情感态度价值观目标则是培养学生对嵌入式系统开发的兴趣,提高他们解决实际问题的能力。
二、教学内容本课程的教学内容主要包括CC2530外部中断的硬件原理、中断触发条件、中断服务程序的编写以及中断的应用实例。
具体安排如下:1.第1课时:介绍CC2530外部中断的硬件原理,包括中断控制器的工作原理和中断触发源。
2.第2课时:讲解中断触发条件,包括中断优先级和中断屏蔽。
3.第3课时:教授中断服务程序的编写方法,以及如何利用中断实现输入输出控制。
4.第4课时:通过实例分析,让学生了解中断在实际应用中的优势和注意事项。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法。
主要包括:1.讲授法:用于讲解CC2530外部中断的硬件原理、中断触发条件和中断服务程序的编写方法。
2.讨论法:在讲解实例时,引导学生进行小组讨论,共同分析中断在实际应用中的优势和注意事项。
3.实验法:安排课后实验,让学生动手实践,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《CC2530嵌入式系统教程》2.参考书:《CC2530中断系统应用手册》3.多媒体资料:PPT课件、教学视频4.实验设备:CC2530开发板、编程器、实验器材五、教学评估本课程的教学评估将采用多元化的评价方式,以全面客观地评价学生的学习成果。
评估方式包括:1.平时表现:通过课堂参与、提问、小组讨论等环节,评价学生的学习态度和课堂表现。
2.作业:布置相关的编程练习和实验报告,评估学生对CC2530外部中断知识的掌握程度。
CC2530基础例程实验手册
-6-
3 实验相关函数 void Delay(uint n);参见CC2530 基础实验1。 void Initial(void);参见CC2530 基础实验1。 void InitKey(void);函数原型:
6 睡眠定时器实验............................................................................................................................................- 55 6.1 CC2530 基础实验 17:系统睡眠工作状态..................................................................................... - 55 6.2 CC2530 基础实验 18:系统唤醒..................................................................................................... - 57 6.3 CC2530 基础实验 19:睡眠定时器使用......................................................................................... - 59 6.4 CC2530 基础实验 20:定时唤醒..................................................................................................... - 63 -
(完整word版)CC2530实验指导书
CC2530实验指导书合肥市博焱科技有限公司目录一、CC2530基础实验部分 (3)1。
1 输入输出I/O 控制实验 (3)1.1.1 CC2530 基础实验1 :LED自动闪烁 (3)1.1。
2 CC2530 基础实验2 :按键控制LED开关 (5)1.2 中断实验 (6)1.2.1CC2530 基础实验3 :外部中断 (6)1。
3 定时/ 计数器实验 (8)1.3.1CC2530 基础实验4:T1使用 (8)1。
3.2CC2530 基础实验5 :T2使用 (9)1.3.3CC2530 基础实验6:T3使用 (12)1。
3.4 CC2530 基础实验8 :T4使用 (15)1.4 串口UART (17)1.4.1CC2530 基础实验9:单片机串口发数 (17)1.4.2CC2530 基础实验10:在PC用串口控制LED (19)1。
4.3CC2530 基础实验11:PC串口收数并发数 (20)1。
4.4CC2530 基础实验12:串口时钟PC显示 (22)1.5 睡眠定时器实验 (23)1。
5。
1 CC2530 基础实验13:系统睡眠工作状态 (23)1。
5。
2 CC2530 基础实验14 :睡眠定时器使用 (24)1。
6 ADC实验 (26)1.16.1 CC2530 基础实验15 :ADC实验 (26)1。
7 看门狗 (28)1。
7.1CC2530 基础实验16:看门狗模式 (28)一、CC2530基础实验部分1。
1 输入输出I/O 控制实验1.1.1 CC2530 基础实验1 :LED自动闪烁一、实验目的:本实验的目的是让用户了解CC2530的I/O接口的编程方法,学会使用I/O操作外部设备。
实验以LED为外设,通过I/O控制LED的亮灭.二、实验仪器设备仿真器1 台,传感器节点底板1 块,ZigBee 模块 1 块,USB 连接线1 根。
三、实验内容:(一)实验原理说明:硬件说明:图1 LED连接原理图如图1所示,发光二极管的D2的阴极与CC2530的P1_1连接,发光二极管的D3的阴极与CC2530的P1_0连接。
CC2530外部中断实现按键控制LED闪烁
CC2530外部中断实现按键控制LED闪烁中断任务:1.系统初始化D1(P1.0)、D2(P1.1)闪⼀次灭掉。
2.按⼀次KEY1(P0.1),D1、D2同时闪烁;再按⼀次KEY1,D1、D2灭掉。
3.按⼀次KEY2(P0.1),D1、D2交替闪烁;再按⼀次KEY2,D1、D2灭掉。
#include <ioCC2530.h>#define D1 P1_0 //定义P1.0⼝为D1控制端#define D2 P1_1 //定义P1.1⼝为D2控制端#define KEY1 P0_1 //定义P0.1⼝为S1控制端#define KEY2 P1_2#define ON 1 //⾼电平点亮#define OFF 0//低电平熄灭typedef unsigned char uchar;typedef unsigned int uint;uchar KeyValue0=0;uchar KeyValue1=0;void Delay(uint time)//延时函数{uint i,j;for (i=0; i<time; i++)for (j=0; j<530; j++);}void InitLed(void)//初始化LED{P1SEL &= ~0x03;P1DIR |= 0x03;Delay(1000);//默认点亮LED,因此直接利⽤延时函数即可,⽆需重复操作D1=D2=OFF;}void InitKey()//初始化外部中断{P0IEN |= 0x2; // P0.1 设置为中断⽅式 1:中断使能P1IEN |= 0x4;PICTL |= 0x3; //下降沿触发IEN1 |= 0x20; //允许P0⼝中断;IEN2 |= 0x10; //允许P1⼝中断;EA = 1; //打开中断}void Key_5(){if(KeyValue0 == 1){D2 = D1 = ON;}else if(KeyValue0 == 2){D2 = D1 = OFF;KeyValue0 = 0; //产⽣中断保存中断状态}}void Key_4(){while(KeyValue1 == 1){D1 = ON;Delay(100);D2 = ON;D1 = OFF;Delay(100);D2 = OFF;}while(KeyValue1 == 2){D1 = D2 = OFF;KeyValue1 = OFF; //产⽣中断保存中断状态}}#pragma vector = P0INT_VECTOR__interrupt void P0_ISR(void){if(P0IFG &= 0x02) //按键中断{Delay(10); //延时去抖if(KeyValue0==0) //按键中断{KeyValue0 = 1; //产⽣中断保存中断状态}else if(KeyValue0==1){KeyValue0 = 2; //产⽣中断保存中断状态}}P0IFG = 0; //清中断标志P0IF = 0; //清端⼝0中断标志}#pragma vector = P1INT_VECTOR__interrupt void P1_ISR(void){if(P1IFG &= 0x04) //按键中断{Delay(10);if(KeyValue1==0) //按键中断{KeyValue1 = 1; //产⽣中断保存中断状态1}else if(KeyValue1==1){KeyValue1 = 2; //产⽣中断保存中断状态2}}P1IFG = 0; //清中断标志P1IF = 0; //清端⼝1中断标志}/**************************************************************************** * 程序⼊⼝函数****************************************************************************/ void main(void){InitLed(); //设置LED灯相应的IO⼝InitKey(); //设置KEY相应的IO⼝外部中断while(1){Key_4();Key_5();}}。
无线传感器试验二
无线传感网络技术实验(二)学院: 物理与机电工程学院专业: 电子科学与技术班级: 2013级2班学号:姓名: 原著指导老师:实验目的:1.通过本实验了解CC2530 的时钟配置,了解CC2530的时钟功能的运用。
2.通过本实验了解CC2530 的外部中断的配置和中断的运用。
3.通过本实验了解CC2530 的T1定时器的相关寄存器配置和定时器的运用。
实验内容:1.配置指示灯的IO口;实现不同时钟配置来使LED闪烁速度2.配置指示灯的IO口;实现按键中断控制LED的状态。
3.配置指示灯的IO口;实现LED指示灯的闪烁。
实验设备:1.硬件部分ZIGBEE调试底板一个;ZIGBEE仿真器一个;ZIGBEE模块一个;2.软件部分IAR751安装包;仿真器驱动;实验步骤:1.启动IAR Embedded Workbench,新建一个项目工程EXINT_TEST,添加常用组及文件,并添加相应函数;2.编写相关的程序代码及文件;3.将仿真器接到ZIGBEE底板的DEBUG接口;1.时钟配置实验结论:原始程序下载到ZIGBEE中后灯的情况,蓝灯闪烁,红灯不亮。
闪烁频率比较缓慢。
改过后的程序如下: while(1)SET_MAIN_CLOCK_SOURCE(RC);for(i=0;i<10;i++){ UINT16 timeOut = 0x0F00;//改变灯的闪烁频率while(timeOut--);LED1 = !LED1;//蓝灯闪烁LED0=!LED0;//红灯闪烁 }2.外部中断配置实验结论:原始程序下载到ZIGBEE中后灯的情况,开启P0口控制按键开关2,同时开关2控制红、蓝两灯的亮灭情况。
改过后的程序如下:while(1){if(KeyFlag == 1)//改变数字“0”为“1”,让两灯从一直亮变为一直灭{KeyFlag = !KeyFlag;LED1 = !LED1;LED0 = !LED0;}}或者改变中断控制的按键开关2,改为开关1,改变其中1个LED灯状态,让其不受中断开关1的控制一直保持着亮。
CC2530基础例程实验手册
CC2530 基础实验
1 输入输出 I/O 控制实验
1.1 CC2530 基础实验 1:自动闪烁
实验介绍 本次实验的目的是让用户学会使用CC2530 的I/0 来控制外设,本例以LED 灯为外设,用CC2530 控
制简单外设时,应将I/O 设置为输出。实验现象LED 闪烁。 实验设备:仿真器 1 台,电池板(或液晶板)1 块,ZigBee 模块1 块,USB 连接线1 根。 实验相关寄存器 实验中操作了的寄存器有 P1,P1DIR,没有设置而是取默认值的寄存器有: P1SEL,P1INP。-3--4-PSEL (P1 功能选择寄存器)
实验相关函数 void Delay(uint n);函数原型是 void Delay(uint n)
{ uint tt; for(tt = 0;tt<n;tt++); for(tt = 0;tt<n;tt++); for(tt = 0;tt<n;tt++); for(tt = 0;tt<n;tt++); for(tt = 0;tt<n;tt++); }
4 AD 实验......................................................................................................................................................... - 30 4.1 CC2530 基础实验 10:片内温度..................................................................................................... - 30 4.2 CC2530 基础实验 11:1/3AVDD.....................................................................................................- 39 4.3 CC2530 基础实验 12:AVDD..........................................................................................................- 40 -
CC2530按键实现无线点灯
易思开发工作室 ES Technology
if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL)>0) { // receive data if(pRxData[0] == 0) { // S1 is detected Blue_LED=!Blue_LED; } if(pRxData[0] == 1) { // S2 is detected Yellow_LED1=!Yellow_LED1; } if(pRxData[0] == 2) { // S3 is detected Yellow_LED2=!Yellow_LED2; } } } } 解析 :接收的数据储存在 pRxData[i] 数据里
易思开发工作室 ES Technology halMcuWaitMs(300); // Key delay Blue_LED=0; } if(KEY2==0){ // if S2 is detected pTxData[0] = 1; // Load data basicRfSendPacket(LIGHT_ADDR, pTxData, APP_PAYLOAD_LENGTH); // sent data halIntOff(); // Put MCU to sleep. halMcuSetLowPowerMode(HAL_MCU_LPM_3); // Will turn on global halIntOn(); // interrupt enable Yellow_LED1=1; halMcuWaitMs(300); // Key delay Yellow_LED1=0; } if(KEY3==0){ // if S3 is detected pTxData[0] = 2; // Load data basicRfSendPacket(LIGHT_ADDR, pTxData, APP_PAYLOAD_LENGTH); // sent data halIntOff(); // Put MCU to sleep. halMcuSetLowPowerMode(HAL_MCU_LPM_3); // Will turn on global halIntOn(); // interrupt enable Yellow_LED2=1; halMcuWaitMs(300); Yellow_LED2=0; } } } void main(void) { // Config basicRF basicRfConfig.panId = PAN_ID; basicRfConfig.channel = RF_CHANNEL; basicRfConfig.ackRequest = TRUE; halBoardInit(); IO_initial(); // Key delay
2Zigbee实验报告《按键》
2019——2020学年第二学期专业班级学号姓名日期第一页实验题目CC2530之按键与LED实验目的通过板载按键来控制LED的亮灭实验内容与步骤首先,先来查看与LED及按键相关的电路图。
由图可知,当CC2530端口1的0号引脚输出低电平时,LED1将被点亮。
当按键S1按下时,端口0的1号引脚将为低电平,抬起时为高电平。
接下来,先查看与LED(P1_0)配置相关的寄存器。
1. 端口1功能选择寄存器。
这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为普通的I/O口,若设置为1,则将相关引脚设为外设I/O,默认值都为0。
第二页实验内容与步骤2.端口1方向选择寄存器。
这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为输入引脚,若设置为1,则将相关引脚设为输出引脚,默认值都为0。
3.端口1输入模式寄存器。
这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为上拉/下拉模式,若设置为1,则将相关引脚设为三态模式,其中P1_0和P1_1没有上拉/下拉功能,可以不用配置,默认值都为0。
再来看看与按键S1(P0_1)配置相关的寄存器。
1. 端口1功能选择寄存器。
这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为普通的I/O口,若设置为1,则将相关引脚设为外设I/O,默认值都为0。
2.端口1方向选择寄存器。
这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为输入引脚,若设置为1,则将相关引脚设为输出引脚,默认值都为0。
第三页。
CC2530按键控制流水灯
1、适用平台 佳杰科技 Q2530SB 硬件平台
2、实验设备
1.RF2530N 或者 RF2530仿真器 1块 1块 1条 1个
2
3、实验目的
让用户学会按键应用是这一常用的人机交互方式。本实验用 D1, D2, D3 灯及按键 S1 为 外设。采用 P10、P11、P14 口为输出口,驱动 D1/D2/D3,P01 口为输入口,接受按键信号 输入(高电平为按键信号) 。
#include <ioCC2530.h> #define uint unsi gned int #define ucha r unsigned cha r //定义控制灯的端口 #define RLED #define GLED #define YLED #define KEY1 //函数声明 voi d Delay(uint); voi d Ini tIO(void); voi d Ini tKey(void); ucha r KeyScan(void); // 延时函数声明 //初始化函数声明 // 初始化按键函数声明 // 按键扫描函数声明 3 P1_0 P1_1 P1_4 P0_1 //定义 LED1 为 P10 口控制 //定义 LED2 为 P11 口控制 // 定义 LED3 为 P14 口控制 // 定义按键为 P01 口控制
4、实验相关寄存器
相关寄存器:P1,P1DIR,P0SEL,P0INP, P0,P0DIR(前面以介绍过的这里不再重复介绍,寄存器 功能说明请参阅 CC2530Datasheet.pdf ) P0SEL(0XF3) P0INP( 0X8F) P0( 0X80) P0DIR(0XFD) P0 [7:0 ]功能设置寄存器,默认设置为普通 I/ O 口 P0[7: 0]作输入口时的电路模式寄存器 P0[7: 0]位寻址 I/ O 寄存器 P0 口输入输出设置寄存器,0:输入,1:输出
cc2530基本实验1
LED1 = 1;
//LED1灯熄灭
}
/**************************** KEY初始化程序--外部中断方式 *****************************/ void InitKey() { P1IEN |= 0X04; //P1.2 设置为中断方式 PICTL |= 0X02; // 下降沿触发 IEN2 |= 0X10; // 允许P1口中断; P1IFG &= ~0x04; // 初始化中断标志位 EA = 1; }
选择Linker—Config—Linker command file选项。单 击Linker–Config配置所示按钮,导出配置文件,先 向上返回上一级目录,然后打开Texas Instruments文 件夹,选择lnk51ew_cc2530F256.xcl。
第五步:然后在Debugger选项旳Driver里选择Texas Instruments(使用编程器仿真),下面选择io8051.ddf 文件,如图所示。至此,基本配置已经完毕。
#define uchar unsigned char
//定义控制LED灯旳端口
#define LED1 P1_0
//LED1为P1.0口控制
#define KEY3 P1_2 //KEY1为P1.2口控制
//函数申明
void Delayms(uint);
//延时函数
void InitLed(void);
所以IO口初始化我们能够简化初始化指令: P1DIR |= 0x01; //P1_0定义为输出
/**************************************
程序描述:点亮LED1
**************************************/
CC2530基础技能综合实训案例(附源码)
【案例背景与功能要求】
本综合实训案例模拟一个仓库的照明设备远程测控系统, 由一个现场的测控 终端和一个上位机应用软件组成,两者通过串口建立数据通道。测控终端有光照 度数据采集、灯光自动控制、灯光手动控制、灯光远程控制和现场报警触发的五 大功能,并且接收上位机的远程命令控制。 测控终端上电后, 首先对照明设备进行检测,也就是检查每一个照明设备是 否开关正常。 然后向上位机发送一个终端上线命令帧,告诉上位机终端已正常上 线。 接着通过定时器实现每 0.2 秒采样一次现场数据, 并对现场光照度进行判断, 如果光照低于设置阈值,则自动打开应急灯,否则自动关闭应急灯。当测控终端
收到到上位机的数据采集命令后, 便开始以每 0.2 秒一帧的频率向上位机传送现 场的光照度数值和两个照明设备的开关状态。如果测控终端的现场报警被触发, 终端将停止所有的工作, 并向上位机发送报警命令帧, 同时四个指示等同时闪烁。 直到收到上位机的解除报警命令帧后,测控终端恢复初始状态,并重新向上位机 发送一个终端上线命令帧,然后进入正常工作状态。 在上位机应用软件中, 首先设置好串口参数并建立串口数据通道,然后根据 案例的功能需求开始采集终端数据,然后将各种信息可视化,并实现照明设备远 程控制和现场报警解除等功能。
【测控终端的设计】
测控终端是一个以 CC2530 微控制器为核心的光照度数据采集和现场照明设 备状态的测控的设备,有 4 个指示灯和 2 个按钮,具体安排如下: LED5:手动照明灯 LED6:自动应急灯 LED3:数据采集指示灯 LED4:秒闪指示灯 SW1:照明灯开关按钮 SW2:现场报警按钮 按照案例应用的功能需求,测控终端应该实现如下功能: <1> 上电后,通过一个跑马灯程序实现各个照明设备的检测。 <2> 初始化和设备检测完成后, 按照通信规约向上位机发送一个终端上线命 令帧,表示测控终端已经进入正常工作状态。 <3> 利用定时器 1 实现 0.2 秒的定时和 1 秒的定时,在 0.2 秒的时候,采集 光照数据,并进行应急灯的控制判断;当到达 1 秒的时候,实现秒闪功能。 <4> 通过外部按键检测程序,实现手动控制照明灯。 <5> 设计外部中断程序, 在中断服务函数中实现现场报警功能。现场报警触 发后,停止定时器功能、光照数据采集和按键响应功能,四个灯同时闪烁,但保 持串口通信连接,随时准备接收上位机的报警解除命令帧。 <6> 当收到上位机启动数据采集命令帧后,点亮数据采集指示灯,以每 0.2 秒一帧的频率向上位机发送系统数据帧;当收到关闭上数据采集命令帧后,关闭 设局采集指示灯,停止向上位机,主要规定数据帧的结构和功能。系统的命令数 据帧的长度固定,为 8 个字节,由帧头、地址域、命令域、数据域、和校验与帧 尾这六个部分组成,具体格式如下: 帧头 地址域 命令域 数据域 和校验 帧尾 0xAF ID cmd data1 data2 data3 chk 0xFA <1> 帧头和帧尾为固定的两个数值:0xAF 0xFA。 <2> 地址域为终端的 ID 号,其中 0xFF 的为广播地址,所有终端响应该命令帧。 <3> 和校验为前面 6 个字节相加 256 取模。 <4> 数据域中和命令域的命令字解析,详见具体命令操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图 1.2.1 按键驱动电路图
1.2.5 实验步骤
1)按照1.1所学步骤创建工程,编辑代码如下:
#include <iocc2530.h> #define LED0 P1_0 #define LED1 P1_1 #define K1 P0_0 #define K2 P0_1 void GPIO_init() {
P1SEL = P1SEL & ~0x03;//设置P1_0,P1_1为普通IO口 P1DIR = P1DIR | 0x03;//设置P1_0,P1_1为输出模式 P0SEL = P0SEL & ~0x03;//设置P1_0,P1_1为普通IO口 P0DIR = P0DIR & ~0x03;//设置P1_0,P1_1为输入模式
LED0 = 0; LED1 = 0; } void DelayMs(unsigned int msec)//大约1ms延时 { for(unsigned int x = msec;x > 0;x --) {
for(unsigned int y = 620;y > 0;y --) {
asm("NOP"); } } } void main(void) { GPIO_init(); while(1) { if(K1 == 0) LED0 = 1; else LED0 = 0;
1.2.3 实验内容 通过 CC2530 的 I/O 引脚,编程实现通过按键控制发光二级管的亮灭。
1.2.4 实验原理 参照 1.1 中的 CC2530 I/O 的工作原理,通过图 1.2.1 可知,K1 与 CC2530
的 P0_0 引脚相连,K2 与 P0_1 引脚相连。 需要实现通过按键的高低电平可控制 LED 灯的熄灭,按键在不按的时候是
if(K2 == 0) {
DelayMs(100);//延时消斗 if(K2 == 0) {
LED1 ; } } }
2)做好调试,并根据1.1.5实验步骤完成工程配置; 3)编译工程,编译成功后进行调试下载; 4)下载完后将CC2530重新上电或者按下复位按钮,观察两个按键分别控制两个 LED灯的开关情况。
Zigbee 实验二 CC2530 外部按键实验
1.2.1 实验目的 理解按键与 CC2530 的连接电路原理; 在 CC2530 节点底板上编程实现通过按键控制发光二级管的亮灭。
1.2.2 实验设备 硬件: CC2530 节点底板一块,CC2530 仿真器,PC 机; 软件:Windows 7/Windows XP,IAR 集成开发环境。