ZigBee线通信--按键与液晶屏显示825修改_第1页
ZigBee线通信--按键与液晶屏显示825修改_第2页
ZigBee线通信--按键与液晶屏显示825修改_第3页
ZigBee线通信--按键与液晶屏显示825修改_第4页
全文预览已结束

下载本文档

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

文档简介

1、实验项目:ZigBee线通信 实验目的:探究基于ZigBee试验板与Z-Stack的按键试验实验仪器设备:一块ZigBee实验板、桌面电脑实验原理:基于IEEE 802. 15无线通信协议的无线试验设计内容:探究基于ZigBee试验板与Z-Stack的按键与液晶屏显示试验设计思路:说明:首先观察实验板,总共有5个可见的按键(keys),其中一个是所谓的摇 杆,即程序里注释的joystick,它乂可以代表5个键,总共加起来就有9个实际按键,除去两个复位键,我们可以支配可用的就有7个,但去分 析程序(SampleApp. C)时,只有两(HAL_KEY_SW_1、HAL_KEY_SW_2)个按键被

2、应用上了,其余都没用上,去看hal_key.H时,有七个按键 可用,与以上分析吻合,那么可不可以利用上它们呢?以下是我设计的 验证这些按键的实验。思路:照着模版程序里对按键事件的处理程序添加自己想探究的按键的处理程 序。实验步骤与方法:一.查看hal.key, H,确定可用的按键,即观察定义了那些按键消息在本Z-Stack模版程序里,其定义如下:/* Switches (keys) */ttdefine HAL_KEY_SW_1 0 x01 / Joystick upttdefine HAL_KEY_SW_2 0 x02 / Joystick right/* Joystick */itdefi

3、ne HAL_KEY_UP 0 x01define HAL_KEY_RIGHT 0 x02itdefine HAL_KEY_CENTER 0 x04define HAL_KEY_LEFT 0 x08#def ine HAL_KEY_D0WN Ox10我们可以看到,一共有七个按键被定义了,Joystick其实被包含于Switches(keys)o二、LCD显示函数位于hal_lcd. h中,有以下:void HalLcdWriteString ( char *str, uint8 option);void HalLcdWriteValue ( uint32 value, const uint8

4、radix, uintS option);void HalLcdWriteScreen( char *linel, char *line2 );void HalLcdWriteStringValue( char *title, uintl6 value, uintS format, uint8line );void HalLcdWriteStringValueValue( char *title, uintl6 valuel, uint8 format1,uintl6 value2, uint8 format2, uint8 line );void HalLcdDisplayPercentBa

5、r( char *title, uint8 value );五个函数,这里我们使用HalLcdWriteString()函数,*str是要显示的字符串,option查看宏定义可知是要显示位置(第儿行)。三、添加按键处理消息,在SampleApp. c里找到按键消息处理函数,即void SampleApp.HandleKeys ( uintS shift, uint8 keys ),再照着其中已有的 按键处理程序段,添加自己想验证的按键,在这里,我添加了HAL_KEY_SW_3#define HAL_KEY_sw_50 x04#define HAL_KEY_sw_.40 x08#define H

6、AL_KEY_SW.30 x10#define HAL_KEY_sw_60 x20#define HAL KEY SW7 0 x40/ Joystick center/ Joystick left/ Joystick down/ Button SI if available/ Button S2 if available/ Joystick up/ Joystick right/ Joystick center/ Joystick left/ Joystick downHAL_KEY_SW_4HAL KEY SW 5也即是HAL_KEY_CENTERHAL_KEY_LEFTHAL_KEY_DO

7、WN的处理代码,其代码为辻(keys & HAL_KEY_SW_3 )/按键3按下/调用LCD输出函数在LCD上显示SW_3 is pressedHalLcdWriteString( SW_3 is, HAL_LCD_LINE_1 );HalLcdWriteString( pressed, HAL_LCD_LINE_2 );if ( keys & HAL_KEY_SW_4 )/按键4按下/调用LCD输出函数在LCD上显示SW_4 is pressedHalLcdWriteString( SW_4 is, HAL_LCD_LINE_1 );HalLcdWriteString( p

8、ressed, HAL_LCD_LINE_2 );if ( keys & HAL_KEY_SW_5 )按键5按下调用LCD输出函数在LCD上显示SW_5 is pressedHalLcdWriteString( SW_5 is, HAL_LCD_LINE_1 );HalLcdWriteString( pressed, HAL_LCD_LINE_2 );代码解释:在次试验,按键功能被定义为:当按键被按下,相应在LCD上显示提 示,比较直观的演示了按键事件的响应处理, 要实现其它功能, 只需在相应的消 息处填写代码即可。四.连接好试验板,在IAR下正确设置DEBUG编译等选项,选择Project-Debug进行编译仿真,若不需要仿真,退出Debug,实验板复位,进行接下来的实验。实验记录:当实验板复位后,SoC开始执行指令,SoC先是进行初始化,等初始化完成 之后,我们就可以做以上修改的代码实验了。试验时,joystick往下掰, 即key3, LCD Jt分两行显示SW_3 is pressedo joystick往左掰,即key4, LCD Jt分两行显示SW_4 is pressedo按joystick中键,即keyo, LCD上分两行显示SW_5 is pressedo实验结论:实验结果与试验预

温馨提示

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

评论

0/150

提交评论