无线通信技术综合训练报告.doc

上传人:wux****ua 文档编号:8848212 上传时间:2020-04-01 格式:DOC 页数:72 大小:2.80MB
返回 下载 相关 举报
无线通信技术综合训练报告.doc_第1页
第1页 / 共72页
无线通信技术综合训练报告.doc_第2页
第2页 / 共72页
无线通信技术综合训练报告.doc_第3页
第3页 / 共72页
点击查看更多>>
资源描述
无线通信技术综合训练报告学院名称: 专 业: 班 级: 姓 名: 学 号: 指导老师: 2013年11月目 录训练一 新建一个简单的工程项目1训练二 GPIO实验3训练三 系统主时钟源的选择实验8训练四 SPI通信与LCD显示实验12训练五 ADC实验17训练六 UART串行通信实验22训练七 定时器1实验27训练八 外部中断实验34训练九 看门狗实验38训练十 IEEE802.15.4基础理论实验43训练十一 多种拓扑结构组网实验46训练十二 基于RFID的无线读写系统实验53训练十三 通用传感器实验57训练十四 无线通信系统实验61心得体会64附录65训练一 新建一个简单的工程项目1、 实验内容闪烁开发板上的用户指示灯 LED1。二、实验原理 由开发板原理图可知,对于主节点,定义LED1 为CC2530 的P1.0 口控制,对于从节点,定义LED1 为CC2530 的P1.1 口控制。相应控制口为高电平时,LED 点亮,为低电平时,LED 熄灭。开发 CC2530 应用系统一般需要以下几个调试工具来完成:1. 软件集成开发环境(IAR Embedded Wordbench):完成系统的软件开发,进行软件和硬件仿真调试,它也是硬件调试的辅助手段;2. 带有 CC2530 模块开发板:实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据;3. CC Debugger 多功能调试器:下载和调试程序。IAR Embedded Wordbench 主要完成系统的软件开发和调试。它提供了一整套的程序编写、维护、编译、调试环境,能将汇编语言和C 语言程序编译成HEX 可执行输出文件,并能将程序下载到目标CC2530 上运行调试。用户系统的软件部分可以由IAR 建立的工程文件管理,工程文件一般包含以下几种文件:1. 源程序文件:语言或汇编语言文(*.C 或*.ASM);2. 头文件(*.H);3. 库文件(*.LIB,*OBJ);三、基本实验步骤 第一步:连接实验设备,将 USB 电缆线插到PC 机的USB 端口上,实验板电源指示灯亮。 第二步:启动IAR 开发环境。 第三步:创建工程。 1. 创建一个工作区。 2. 建立一个新工程。 3. 新建或添加程序文件。 4. 设置工程选项。 5. 编译和调试。 6. 下载。 7. 实验结果。 第四步:通过以上几个步骤,最终下载目标程序到 CC2530 后,观察实验现象,记录实验结果。 LED灯闪烁实验: 实验流程图:图1-1 LED灯闪烁实验 四、实验结果与分析答:实验现象:按下开关K1时,实验板上LED1闪烁。分析:该程序由库函数,主函数和延时函数组成。对于主节点,定义LED1为CC2530的P1.0口控制,对于从节点,定义LED1为CC2530的P1.1口控制。相应控制口为高电平时,LED点亮,为低电平时,LED熄灭。五、存在问题和解决方法存在的问题1:程序运行有错误解决方法:Options没有进行相关配置,保存的地址不对。存在的问题2:对于新建工程项目操作步骤不熟悉,并在操作过程中总是忘记添加新的工程文件。解决方法:多操作几遍,熟能生巧,通过反复地操作练习,就能很熟练的掌握操作步骤。存在的问题3:LED是怎么实现闪烁解决方法:通过设置控制口的电平,为高电平时LED亮,为低电平时,LED熄灭。训练二 GPIO实验一、实验内容1. LED 指示灯自动闪烁;2. 按键控制 LED 指示灯亮灭;3. 按键控制 LED 指示灯闪烁。二、实验原理 本实验中,为了驱动LED 的亮灭,需要将相应的I/O 设置为通用I/O 口,且为输出模式,并使接口输出“1”或“0”来切换LED 的亮或灭状态。在亮与灭之间,插入一定的延时,才能保证肉眼看出闪烁的效果。如果需要按键控制,则需要将按键K 对应的I/O 设置为通用I/O 口,且为输入模式,通过读取相应端口寄存器值判断按键的状态。3、 基本实验步骤 第一步:连接实验设备,将 USB 电缆线插到PC 机的USB 端口上,实验板电源指示灯亮。 第二步:启动IAR 开发环境。 第三步:创建工程。 1. 创建一个工作区。 2. 建立一个新工程。 3. 新建或添加程序文件。 4. 设置工程选项。 5. 编译和调试。 6. 下载。 7. 实验结果。 第四步:通过以上几个步骤,最终下载目标程序到 CC2530 后,观察实验现象,记录实验结果。4、 设计性实验程序流程与分析基础实验1:实现LED灯自动闪烁。基础实验1流程图:图2-2 LED灯自动闪烁实验 分析:先进行LED灯的初始化,初始化LED的引脚和初始状态,调用一个while(1)的死循环,将LED灯的状态取反,再调用一个延时函数来实现亮灭不停的交替变换。基础实验2(从板):通过按键K1,K2控制LED1,LED2闪烁。 基础实验2流程图: 图2-3 按键控制LED灯闪烁实验 分析:先对K1,K2按键以及LED1,LED2进行初始化,定义从节点,再通过一个按键扫描程序检测是否有按键按下,如果有按键按下,再判断是K1按下还是K2按下,如果K1按下,LED1现在的状态取反,如果是K2按下,那么LED2现在的状态取反,然后返回按键扫描再进行判断,如此循环。 设计性实验(从板): 按下 K1 时,LED1 闪烁(视觉能够分辨出),再次按下K1,LED1 熄灭;按下K2 时,LED2 闪烁,再次按下K2,LED2 熄灭;如此重复循环。 设计性实验流程图:图2-4 按键控制LED灯闪烁熄灭实验分析:本实验先进行按键以及LED灯的初始化,定义从节点,然后进行按键扫描,检测有没有按键按下,如果有,则判断是K1键按下还是K2键按下,如果是K1按下,则将K1下标取反,再通过一个循环(基础实验1)来控制LED1的闪烁,否则将K2按下,通过一个循环来控制LED2的闪烁。 五、实验结果与分析基础实验1:指示灯自动闪烁实验实验结果:指示灯自动闪烁。分析:程序中让两个LED灯的状态在while(1)这个死循环中通过不同的延时,反复的调用 ,取反,使LED灯可以不停的闪烁。 基础实验2:按键控灯亮灭实验 实验结果:K1按下,LED1闪烁;K2按下,LED2闪烁。 分析:程序初始化完毕进入while(1)死循环,然后在循环中进行按键扫描,看是否有按键按下,如果K1按下,则将LED1的状态取反并延时;如果是K2按下,也是将LED2的状态取反并延时。注意设计二者的延时时间不同,这样可以识别出二者的闪烁频率不同。设计性实验:实验结果:K1按下,LED1闪烁,再次按下K1,LED1熄灭;K2按下,LED2闪烁,再次按下K2,LED2熄灭。循环往复。分析:在该设计性实验就是比基础实验2多了一个功能,判断第二次按下,熄灭该灯,只需在基础实验2的基础上加上一个按键扫描并判断是哪个键按下就好了。六、实验思考题1. Delay(uint)中参数uint 取值范围是什么?如果超范围程序能运行吗?为什么?答:Delay(uint)中参数uint 取值范围是16位,如果范围超过也可以运行,不过系统会默认选择低16位有效。2.基本实验2 中“Keyvalue = 0”语句的作用是什么?如果删除对实验结果有什么影响?答:“Keyvalue = 0”的作用是把按键标志清零,避免系统误读上次按键的值。如果删除程序将运行不稳定。3.本实验对CC2530 的哪些寄存器进行了操作?都是必要的吗?答:本实验对CC2530的从节点设置了5个寄存器(POSEL,PODIR,POINP,PISEL,PIDIR),主节点设置了6个寄存器(POSEL,PODIR,POINP,PISEL,PIDIR,PIINP),不都是必要的,只有自己的节点对应的寄存器定义有效。4.设计性实验中如何使LED 有多种不同的闪烁方式?答:设置不同的延时。七、存在问题和解决方法存在的问题1:基本实验1中,LED指示灯闪烁频率太快,视觉无法分辨。解决方法:通过改变延时时间的长短来实现LED指示灯闪烁的快慢。存在的问题2:基本实验2中,按键无法控制LED指示灯的亮灭。解决方法:查看程序,看按键端口、指示灯端口初始化设置是否正确,主从端口是否区分清楚,按键对应相应的LED指示灯是否正确。训练三 系统主时钟源的选择实验一、实验内容 通过配置开发板上 CC2530 芯片的主时钟频率,从而改变指示灯LED 闪烁的频率。二、实验原理 1. 振荡器: 设备中有 2 个高频振荡器:32KHz 晶体振荡器;16MHz RC 振荡器。 设备中有 2 个低频振荡器:32KHz 晶体振荡器;32KHz RC 振荡器。2.系统时钟: 系 统时钟由选定的系统时钟源32MHz 晶体振荡器或者16MHz RC 振荡器而来。CLKCONCMD.OSC 位选择系统时钟源。使用RF 收发器,必须选择32MHz 晶体振荡器且它必须稳定。3. 32kHz 晶振: 设备里有 2 个32kHz 振荡器作为32kHz 时钟的时钟源:32kHz 晶体振荡器;32kHz RC 振荡器。默认情况下,复位后,32kHz RC 振荡器启用且被选为32kHz 时钟源。RC 振荡器的功耗更低,但是不如32kHz 晶体振荡器精确。4. 振荡器和时钟寄存器:在 PM0 功耗模式下,可配置32MHz 晶体振荡器或者16MHz RC 振荡器作为系统时钟,设置系统时钟需要操作两个寄存器:SLEEPCMD(睡眠模式控制寄存器)和CLKCONCMD(时钟控制寄存器)。三、基本实验步骤 第一步:连接实验设备,将 USB 电缆线插到PC 机的USB 端口上,实验板电源指示灯亮。 第二步:启动IAR 开发环境。 第三步:创建工程。 1. 创建一个工作区。 2. 建立一个新工程。 3. 新建或添加程序文件。 4. 设置工程选项。 5. 编译和调试。 6. 下载。 7. 实验结果。 第四步:通过以上几个步骤,最终下载目标程序到 CC2530 后,观察实验现象,记录实验结果。四、设计性实验程序流程与分析基础实验(从板):分别选择32MHz晶体振荡器和16MHz RC振荡器作为CC253x系列片上系统的系统时钟源(主时钟源),看相同的LED闪烁代码在这两种时钟源下的闪烁速度的区别。基础实验流程图:图3-1 时钟控制LED灯闪烁频率实验分析:实验先进行LED灯的初始化,定义时钟源,接着首先设置系统时钟为RC 16MHZ,看LED2灯的闪烁的情况,再设置系统时钟为晶振32MHZ,再看LED1灯的闪烁情况,再返回到上面设置系统时钟为RC 16MHZ,如此循环切换,观察在两种不同的系统时钟下的LED灯闪烁的情况。可以观察到系统时钟为晶振32MHZ时闪烁频率比RC16MHZ时快的多。设计性实验(从板):当按下K1 时,LED1 闪烁频率加倍,再次按下K1,LED1闪烁频率减半;按下K2 时,LED2 闪烁频率加倍,再次按下K2,LED2 闪烁频率减半;如此重复循环。设计性实验流程图:图3-2 按键选择时钟控制LED闪烁实验分析:实验先对按键以及LED灯进行初始化,然后通过按键扫描,检测是否有按键按下,如果有按键按下,判断是K1按下还是K2按下,如果是K1按下,设置系统时钟为32MHZ使LED1闪烁,否则设置时钟为32MHZ,使LED2闪烁。接着再进行按键扫描,看第二次是哪个键按下,如果是K1按下 则将系统时钟改为16MHZ,同样K2按下也是这样。然后使LED闪烁,接着返回继续扫描按键。五、实验结果与分析基础实验:实验结果:LED1和LED2闪烁频率不同,LED1闪烁频率比LED2快。分析:当系统时钟为16MHZ时,LED2闪烁;系统时钟切换为32MHZ时,LED1闪烁。两者所选的时钟信号不同,所以闪烁频率不同,32MHZ的系统时钟比16MHZ的时钟频率高,故LED1闪烁更快。设计性实验:实验结果:两只LED灯闪烁,K1按下,LED1闪烁频率变快,再次按下K1,LED1闪烁频率变慢;K2按下,LED2闪烁频率变快,再次按下K2,LED2闪烁频率变慢。分析:设计实验只需在基础实验的基础上加两个按键扫描判断即可,由于两次按键需要实现的功能不同,故需要进行两次判断,所以在一次循环中进行两次检测,这样就可以实现两种不同的状态了。它的核心还是在于修改系统时钟。六、实验思考题1. 为什么指示灯闪烁的频率不一样?答:选择的系统时钟不同,频率就不一样。2. 不同系统时钟是如何转换的?切换过程中需要注意什么?答:改变CLKCONCMD的配置,在切换过程中检测系统时钟是否切换到对应的值。通过对比CLKCONCMD和CLKCONSTA的值实现。3. 本实验对CC2530 的哪些寄存器进行了操作?都是必要的吗?可以设置比32M 更高的频率吗?答:本实验对P1SEL,P1DIR,CLKCONCMD寄存器进行了操作。不都是必要的,如P1SEL默认为0,通用I/O。 不能设置比32M更高的频率。4. 设计性实验中如何使LED 有多种不同的频率闪烁方式?答:可以通过改变系统的时钟来让LED有多种不同的频率闪烁方式。七、存在问题和解决方法存在的问题:第二次按键如果不是同一个按键,则不能响应的改变对应的LED灯的闪烁状态。解决方法:将一个按键的两次判断放入同一个循环体中,两边分别判断,这样就不会互相影响了。训练四 SPI通信与LCD显示实验一、实验内容1. 在CC2530从节点开发板上采用GPIO 口软件模拟SPI 接口的方式驱动DM12864M,显示汉字、字母、数字等;2. 在CC2530主节点开发板上采用硬件SPI 接口的方式驱动OCM12864,显示汉字、字母、数字等。二、实验原理1. SPI 模式:硬件 SPI 接口模式下,当UxCSR.MODE 设置为0 时,选中SPI 模式。在CC2530 芯片SPI 模式中,USART 可以通过写UxCSR.SLAVE 位来配置SPI 为主模式或者从模式。2. SSN 从选择引脚:在 SPI 主模式,不使用SSN 引脚。当USART 作为SPI 主操作,外部SPI 从设备需要一个从选择信号,然后在软件中需要使用通用I/O 引脚来执行从选择信号功能。3. 波特率发生器:波特率计算公式:式中:f 是系统时钟频率,等于16MHz 校准的RC 振荡器或者32MHz 晶体振荡器。4. SPI 相关寄存器对于每个 USART,有5 个寄存器(x 是USART 的编号,为0 或者1): UxCSR:USARTx 控制和状态;UxUCR:USARTx UART 控制;UxGCR:USARTx 通用控制;UxDBUF:USARTx 收/发数据缓冲器;UxBAUD:USARTx 波特率控制。5. 软件模拟SPI 接口LCD 显示LCD驱动库文件提供了液晶的驱动方法,文件 LCD_12864_Driver.c 提供了软件模拟 SPI 接口相 应功能的原型函数。LCD驱动程序使用影子内存,可以将一个屏幕的信息存储在影子内存中,使用vLcdReFresh命令函数可以将影子内存中的信息复制到LCD并显示。6.硬件SPI接口LCD显示 三、基本实验步骤 第一步:连接实验设备,对于从板,用一个PCB板(用于给LCD供电)将LCD与实验开发板相连,将 USB 电缆线插到PC 机的USB 端口上,实验板电源指示灯亮。 第二步:启动IAR 开发环境。 第三步:创建工程。 1. 创建一个工作区。 2. 建立一个新工程。 3. 新建或添加程序文件。 4. 设置工程选项。 5. 编译和调试。 6. 下载。 7. 实验结果。 第四步:通过以上几个步骤,最终下载目标程序到 CC2530 后,观察实验现象,记录实验结果。四、设计性实验程序流程与分析基础实验(从板):通过按键控制LCD上的显示内容,首先显示CC2530基本实验 四、LCD实验 ,如果是K1按下,则显示 江苏理工学院 电信学院,如果是K2按下,则显示英文版 TI CC2530F256 LCD12864 Test。基础实验流程图(从板):图4-2 LCD显示实验分析:实验先初始化按键,LED灯,LCD。LCD初始界面显示CC2530基本实验 四、LCD实验 ,然后进行按键扫描,看是否有按键按下,如果有,再判断是K1还是K2按下,如果是K1按下,则对应显示 江苏理工学院 电信学院, 如果是K2按下,对应的显示TI CC2530F256 LCD12864 Test。设计性实验(从板):通过按键控制LCD上的显示内容。LCD 初始界面显示班级、姓名、学号、专业。按下K1时,LCD 显示数据加1;按下按键SW2,LCD 显示数据减1,规定初始值显示为999。设计性实验流程图(从板):图4-3 按键控制数据加减实验分析:实验先初始化按键,LED灯,LCD。LCD初始界面显示班级、姓名、学号、专业,然后进行按键扫描,看是否有按键按下,如果有,再判断是K1还是K2按下,如果是K1按下,则对应显示LCD 显示数据加1, 如果是K2按下,对应的显示数据减1,LCD初始显示值为999。五、实验结果与分析基础实验:实验结果:实验现象如图4-4所示。 图4-4 基础实验结果图 图4-5 设计实验结果图 分析:DM12864M是在字库的LCD显示器,可以混合显示汉字、英文字母或数字。所以只要在相应的显示程序中打印出来即可。通过按键扫描,根据按下的按键对应返回的键值来调用响应的显示函数从而控制显示的内容。设计性实验:实验结果:实验结果如图4-5所示。按下K1,姓名最右边的数字加1,按下K2,数字减1,数字的初始值是999。 分析:设计实验跟基础实验的原理差不多,显示都是差不多的,唯一的差别就是后面的按键控制数字的加减,数字是不能直接被修改的,所以我们要找到该数字各位对应的ASCII码值,通过地址调用来实现数字的变化。六、实验思考题1. 基本实验程序中“/LED1 = OFF;”语句将双斜杠去掉有何影响?问什么?答:如果将双斜杠去掉,这行程序就会被编译,LED将会被强制关闭,不能再显示出GlintFlag 0的数值状态。2. 基本实验中去除“if(GlintFlag0 = 0)”语句,结果怎样?答:如果去掉这个判断,那么在后面执行GlintFlag0=0,GlintFlag1=1时,如果立即按下按键可能无效,有延时。3. 使用 DM12864M 混合显示汉字、英文字母或数字时需要注意哪些问题?答:要注意汉字是占2个字节,如果要空格对齐,必须在汉字前有2个或2个的倍数个空格才行,如果空的格数为单数格,那样就会显示乱码。4. 如何在 OCM12864-8 上指定区域显示汉字?答:把汉字转换成编码,然后再指定区域刷新屏幕。七、存在问题和解决方法存在的问题1:在做基础实验的时候直接下载的程序汉字显示的是乱码。解决方法1:由于汉字占两个字节,所以在显示的时候必须占偶数位,如果前面占的字节数是奇数的话,那么它所在的位子就会混
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!