您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 实验1:CC2530-LED-灯闪烁实验
计算机科学与技术学院实验报告课程名称:无线传感器网络原理与应用实验一CC2530LED灯闪烁实验一、实验目的熟悉鼎轩WSN实验平台使用的基本步骤,熟悉IAR开发环境,掌握CC2530芯片LED对应的GPIO引脚,并且熟练掌握LED的使用。二、实验内容1)安装IAR开发环境;2)控制红灯、绿灯、蓝灯(蓝灯、黄灯、绿灯)交替闪烁。三、实验环境硬件:鼎轩WSN实验箱(汇聚网关、烧录线),PC机;软件:IAR软件。四、实验步骤目前网关上有红、绿、蓝3个LED灯,还另有一个红色的LED工作指示灯,节点上有红、蓝、黄、绿4个LED灯,其中,红灯是工作指示灯,蓝灯和黄灯主要用于程序调试。现在对LED灯的操作主要是点亮和关闭,下面是CC2530中LED部分的原理图。LED颜色,MCU管脚,信号控制关系如下:对于网关板:对于节点板:要想通过编程P1,P2引脚控制LED的亮灭,必须设置对应的引脚方向为输出,对应的暂存器为P1DIR,P2DIR。P2DIR:D0~D4设置P2_0到到P2_4的方向D7、D6位作为端口0外设优先级的控制1)打开鼎轩WSN实验箱,检查实验箱设备,确保实验箱设备完整、连接无误后,连接电源线,打开电源开关;2)安装好IAR开发环境以及驱动程序,详细方法见说明资料;3)用烧录线连接汇聚网关上的烧录接口与PC机USB接口,连接方法可参考相应的说明资料;4)双击打开目录(/cc2530-simple-demo/LED_BLINK)下的工程图标AUTO.eww打开工程;5)点击IAR中的图标按钮编译程序;6)完成编译后若没有错误信息,将实验箱节点编程开关上汇聚网关开关拨上去,点击调试并下载按钮将程序下载到汇聚网关上;7)运行程序,可以观察到红灯和绿灯交替闪烁。8)修改程序代码,实现红、蓝、绿三个灯一起闪烁。程序代码:程序代码源文件为/cc2530-simple-demo/LED_BLINK/main.c,#includeioCC2530.h#defineuintunsignedint#defineucharunsignedchar//定义控制灯的端口#defineRLEDP1_2//定义红灯为P1_2口控制#defineGLEDP1_3//定义绿灯为P1_3口控制//LocalFunctionsvoidDelay(uint);//延时函数voidInitial(void);//初始化P1口/****************************//延时*****************************/voidDelay(uintn){uinttt;for(tt=0;ttn;tt++);for(tt=0;ttn;tt++);for(tt=0;ttn;tt++);for(tt=0;ttn;tt++);for(tt=0;ttn;tt++);}/****************************//初始化程序*****************************/voidInitial(void){P1DIR|=0x0C;//P1_2、P1_3定义为输出RLED=0;GLED=1;}/***************************//主函数***************************/voidmain(void){Initial();//调用初始化函数while(1){GLED=!GLED;RLED=!RLED;Delay(50000);}}P1DIR|=0x0C;该语句定义P1口的P1.2和P1.3方向为输出;RLED=0;红灯初始化低电平,程序开始运行时熄灭;GLED=1;绿灯初始化高电平,程序开始运行时点亮;GLED=!GLED;RLED=!RLED;这两个语句让LED状态翻转,即若当前LED点亮,则将它熄灭,若当前LED熄灭,则将它点亮。实验总结该实验完成了对CC2530芯片的LED进行控制,实际上是对CC2530芯片的GPIO的控制。掌握芯片LED控制之后,在复杂的程序中可以用LED作为一种很好的调试手段。实验二:CC2530定时器实验一、实验目的了解并学会使用CC2530芯片的定时器。二、实验内容用定时器1和定时器3采用中断方式实现定时,分别控制红绿灯的状态翻转。定时器1自由运行模式,8分频;定时器3自由运行,128分频。定时器1为16位定时器,在自由运行模式下,从0x0000到0xFFFF反复计数;定时器3为8位定时器,在自由运行模式下,从0x00到0xFF反复计数。当到达计时值时,定时器会产生中断,中断函数就是处理相应定时器产生的中断。三、实验环境硬件:鼎轩WSN实验箱(汇聚网关、烧录线),PC机;软件:IAR软件。四、实验步骤CC2530芯片包含四个定时器(Timer1、Timer2、Timer3、Timer4)和一个休眠定时器(SleepTimer)。Timer1是16位的定时器,支持典型的定时/计数功能以及PWM功能,该定时器共有三个捕捉/比较通道,每个通道使用一个单独的I/O引脚。Timer1的时钟频率是由系统时钟分频得到,首先由寄存器中的CLKON.TICKSPD分频,系统时钟是32MHz的情况下,CLKON.TICKSPD可以将该时钟频率分频到32MHz(TICKSPD为000)、16MHz(TICKSPD为001)、8MHz(TICKSPD为010)、4MHz(TICKSPD为011)、2MHz(TICKSPD为100)、1MHz(TICKSPD为101)、0.5MHz(TICKSPD为110)、0.25MHz(TICKSPD为111);分频后的时钟频率可以被T1CTL.DIV分频,分频数为1、8、32、128。因此,在32MHz的系统频率下,Timer1的最小时钟频率为1953.125Hz,最大时钟频率为32MHz。Timer2主要用于为802.15.4标准中的CSMA/CA算法提供定时。该定时器即使在节点处于低功耗状态下仍然运行。Timer3和Timer4是两个8位的定时器,主要用于提供定时/计数功能。SleepTimer主要将节点从超低功耗工作状态唤醒。本实验用到定时器1和定时器3,当定时器到达计数值时,产生一处中断,在中断处理函数里面进行相应处理。与定时器1相关的控制寄存器有:T1CTL(0xE4)–定时器1的控制和状态T1STAT(0xAF)–定时器1状态1)打开鼎轩WSN实验箱,检查实验箱设备,确保实验箱设备完整、连接无误后,连接电源线,打开电源开关;2)用烧录线连接汇聚网关上的烧录接口与PC机USB接口;3)双击打开目录(/cc2530-simple-demo/T1T3_interrupt)下的工程图标T1T3_interrupt.eww打开工程;4)点击IAR中的图标按钮编译程序;5)完成编译后若没有错误信息,将实验箱节点编程开关上汇聚网关开关拨上去,点击调试并下载按钮将程序下载到汇聚网关上;6)实验现象为红绿灯的状态定时翻转。7)修改实验代码,用定时器4实现红灯的状态定时翻转。程序代码程序员文件为/cc2530-simple-demo/T1T3_interrupt/T1T3_interrupt.c./********************************初始化LED灯*********************************/voidInit_Led(void){P1DIR|=0X0C;//P1_2,P1_3定义为输出RLED=1;GLED=1;//点亮红灯和绿灯}/********************************初始化定时器1*********************************/voidInitT1(){T1CTL=0x05;//8分频,自由运行,从0x0000到0xFFFF反复//计数IEN1|=0X02;//开定时器1中断}/********************************初始化定时器3*********************************/voidInitT3(){T3CTL=0xF8;//128分频,开溢出中断,启动定时器IEN1|=0X08;//开定时器3中断}/***********************************************************主函数************************************************************/voidmain(void){Init_Led();//初始化LED灯InitT1();//初始化定时器1InitT3();//初始化定时器3EA=1;//使能全局中断}/******************************定时器1中断处理函数*******************************/#pragmavector=T1_VECTOR__interruptvoidT1_IRQ(void){EA=0;if(T1STAT&0x20)//判断是否是定时器1产生的中断{if(++count=50){count=0;RLED=!RLED;//RLED闪烁}IRCON&=~0x02;//清中断标志}EA=1;}/******************************定时器3中断处理函数*******************************/#pragmavector=T3_VECTOR__interruptvoidT3_IRQ(void){EA=0;if(TIMIF&0x01)//判断是否是定时器3产生的中断{if(++count2=1000){count2=0;GLED=!GLED;//RLED闪烁}T3IF=0;//清中断标志}EA=1;}实验总结该实验完成了对CC2530芯片的定时器的使用,通过LED来表现定时器的工作过程。在这个实验中用的定时器的精度为毫秒。在这个实验中只使用了定时器1和定时器3,我们可以在课后自己动手尝试使用其它的定时器。实验三CC2530继电器实验一、实验目的掌握CC2530芯片GPIO引脚的控制方式,并且掌握继电器的工作方式。二、实验内容利用timer1定时产生中断,在中断处理中翻转P2.0口的状态,实验继电器状态的翻转。三、实验环境硬件:鼎轩WSN实验箱(汇聚网关、继电器模块、烧录线),PC机;软件:IAR软件。四、实验步骤继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。继电器分很多类型,本实验使用的是信号继电器,针对我们的试验箱,继电器与P2.0GPIO口相接,P2.0口的电平变化会是继电器“开关”发生变化。实验步骤1)打开鼎轩WSN实验箱,检查实验箱设备,确保实验箱设备完整、连接无误后,连接电源线,打开电源开关;2)用烧录线连接汇聚网关上的烧录接口与电脑USB接口;3)打开(\CC2530_simple_demo\cc2530-simple-demo\Relay)下的工程图标Relay.eww打开工程;4)点击IAR中的图标按钮编译程序;5)完成编译后若没有错误信息,将实验箱节点编程开关上汇聚网关开关拨上去,点击调试并下载按钮将程序下载到汇聚网关上;6)点击运行程序,可以看到继电器及上面的灯每隔5秒变换一次。程序代码程序源文件路径为/cc2530-simple-demo/Relay/Relay.c实验总结该实验使同学们熟悉了继电器的工作方式与使用方法,为以后的综合实验打下了基础。实验四:CC2530串口收发数据实验一、实验目的熟悉并掌握CC2530芯片串口发送和接收数据
本文标题:实验1:CC2530-LED-灯闪烁实验
链接地址:https://www.777doc.com/doc-7425474 .html