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

上传人:feng****ing 文档编号:88441724 上传时间:2022-05-10 格式:DOC 页数:50 大小:1.25MB
返回 下载 相关 举报
无线通信技术综合训练报告_第1页
第1页 / 共50页
无线通信技术综合训练报告_第2页
第2页 / 共50页
无线通信技术综合训练报告_第3页
第3页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
JIANGSU UNIVERSITY OF TECHNOLOGY无线通信技术综合训练报告学院名称:专业:班级:姓名:学号:指导老师:2013 年 11 月目录训练一新建一个简单的工程项目 0训练二GPIO 实验 2训练三系统主时钟源的选择实验 7训练四SPI通信与LCD显示实验 11训练五ADC 实验 16训练六UART串行通信实验 21训练七定时器 1 实验 26训练八外部中断实验 33训练九看门狗实验 37训练十 IEEE802.15.4基础理论实验. 42训练十一多种拓扑结构组网实验 45训练十二基于RFID的无线读写系统实验 52训练十三通用传感器实验 56训练十四无线通信系统实验 60心得体会 63附录 64训练一 新建一个简单的工程项目、实验容闪烁开发板上的用户指示灯LED1。二、实验原理由开发板原理图可知,对于主节点,定义LED1为CC2530的P1.0 口控制,对于从节点,定义LED1为CC2530的P1.1 口控制。相应控制口为高电平时,LED点亮,为低电平时,LED熄灭。开发 CC2530 应用系统一般需要以下几个调试工具来完成:1. 软件集成开发环境(IAR EmbeddedWordbench):完成系统的软件开发,进行软件和硬件 仿真调试,它也是硬件调试的辅助手段;2. 带有 CC2530 模块开发板:实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系 统的状态和数据;3. CC Debugger 多功能调试器:下载和调试程序。IAR Embedded Wordbench 主要完成系统的软件开发和调试。它提供了一整套的程序编写、 维护、编译、 调试环境, 能将汇编语言和 C 语言程序编译成 HEX 可执行输出文件, 并能将程序下载 到目标 CC2530 上运行调试。用户系统的软件部分可以由 IAR 建立的工程文件管理,工程文 件一般包含以下几种文件:1. 源程序文件:C语言或汇编语言文(*.C或*.ASM);2. 头文件( *.H );3. 库文件( *.LIB , *OBJ);三、基本实验步骤第一步:连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 第二步:启动 IAR 开发环境。第三步:创建工程。1. 创建一个工作区。2. 建立一个新工程。3. 新建或添加程序文件。4. 设置工程选项。5. 编译和调试。6. 下载。7. 实验结果。第四步:通过以上几个步骤,最终下载目标程序到 CC2530 后,观察实验现象,记录实 验结果。LED灯闪烁实验:实验流程图:开始初始化引脚图1-1 LED灯闪烁实验四、实验结果与分析答:实验现象:按下开关 K1时,实验板上LED闪烁。分析:该程序由库函数,主函数和延时函数组成。 对于主节点,定义LED1为CC253啲P1.0 口控制,对于从节点,定义 LED伪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 口,且为输入模式,通过读取相应端口寄存器值判断按键的状态。三、基本实验步骤第一步:连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 第二步:启动 IAR 开发环境。第三步:创建工程。1. 创建一个工作区。2. 建立一个新工程。3. 新建或添加程序文件。4. 设置工程选项。5. 编译和调试。6. 下载。7. 实验结果。第四步:通过以上几个步骤,最终下载目标程序到 CC2530 后,观察实验现象,记录实 验结果。四、设计性实验程序流程与分析基础实验 1:实现LED丁自动闪烁。基础实验 1流程图:图2-2 LED灯自动闪烁实验while (1)分析:先进行LED灯的初始化,初始化LED的引脚和初始状态,调用一个的死循环,将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熄灭;如此重复循环。设计性实验流程图:开始初始化按键扫描是否有键按下?-否LED1=!LED11r延时0.5秒LED2= LED2延时1秒否K1按下?否K2按下?一是LED1=0LED2=0图2-4按键控制LED丁闪烁熄灭实验分析:本实验先进行按键以及LED丁的初始化,定义从节点,然后进行按键扫描,K1键按下还是K2键按下,如果是K1按下,则将1)来控制LED1的闪烁,否则将K2按下,通过检测有没有按键按下,如果有,则判断是 K1下标取反,再通过一个循环(基础实验 一个循环来控制LED2的闪烁。五、实验结果与分析基础实验1:指示灯自动闪烁实验 实验结果:指示灯自动闪烁。分析:程序中让两个LED丁的状态在while (1)这个死循环过不同的延时,反复的调 用,取反,使LED丁可以不停的闪烁。基础实验 2:按键控丁亮灭实验实验结果:K1按下丄ED1闪烁;K2按下,LED2闪烁。分析: 程序初始化完毕进入 while (1)死循环,然后在循环中进行按键扫描,看是否 有按键按下,如果K1按下,则将LED1的状态取反并延时;如果是 K2按下,也是将LED2的状态 取反并延时。注意设计二者的延时时间不同,这样可以识别出二者的闪烁频率不同。设计性实验:实验结果:K1按下丄ED1闪烁,再次按下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.OS位选择系统时钟源。使用 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 后,观察实验现象,记录实 验结果。四、设计性实验程序流程与分析基础实验(从板):分别选择32MH晶体振荡器和16MHz R(振荡器作为CC253X系列片上系统的系统时钟 源(主时钟源),看相同的LED闪烁代码在这两种时钟源下的闪烁速度的区别。基础实验流程图:开始f分析:实验先进行LED丁的初始化,定义时钟源,接着首先设置系统时钟为 RC16MHZ 看LED2丁的闪烁的情况,再设置系统时钟为晶振32MHZ再看LED1丁的闪烁情况,再返回到上面设置系统时钟为 RC16MHZ如此循环切换,观察在两种不同的系统时钟下的LED灯闪烁的情况。可以观察到系统时钟为晶振32MHZ寸闪烁频率比RC16MH时快的多。设计性实验(从板):当按下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快。分析:当系统时钟为16MH时,LED2闪烁;系统时钟切换为 32MH时,LED闪烁。两者 所选的时钟信号不同,所以闪烁频率不同,32MHZ勺系统时钟比16MHZ勺时钟频率高,故LED1闪烁更快。设计性实验:实验结果:两只LED灯闪烁,K1按下,LED闪烁频率变快,再次按下 K1, LED闪烁频率 变慢;K2按下,LED2闪烁频率变快,再次按下 K2, LED2闪烁频率变慢。分析: 设计实验只需在基础实验的基础上加两个按键扫描判断即可,由于两次按键需要实现的功能不同, 故需要进行两次判断, 所以在一次循环中进行两次检测, 这样就可以实现 两种不同的状态了。它的核心还是在于修改系统时钟。六、实验思考题1. 为什么指示灯闪烁的频率不一样?答:选择的系统时钟不同,频率就不一样。2. 不同系统时钟是如何转换的?切换过程中需要注意什么?答:改变CLKCONCMDI己置,在切换过程中检测系统时钟是否切换到对应的值。通 过对比 CLKCONCMDCLKCONST的值实现。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.MOD般置为0时,选中SPI模式。在CC2530芯片SPI 模式中,USART可以通过写UxCSR.SLAVE位来配置SPI为主模式或者从模式。2. SSN从选择引脚:在SPI主模式,不使用SSN引脚。当USART作为SPI主操作,外部SPI从设备需要一 个从选择信号,然后在软件中需要使用通用I/O引脚来执行从选择信号功能。3. 波特率发生器:波特率计算公式:波特率=2,6十血1冬朴 円心乂式中: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后,观察实验现象,记录实验结果。四、设计性实验程序流程与分析基础实验(从板):通过按键控制LCDt的显示容,首先显示CC2530基本实验 四、LC实验,如果是K1按下, 则显示 理工学院 电信学院,如果是 K2按下,则显示英文版 TI CC2530F256LCD12864Test。基础实验流程图(从板):开始图4-2 LCD显示实验分析:实验先初始化按键, LED丁,LCD LCD初始界面显示CC253(基本实验 四、LCD实 验,然后进行按键扫描,看是否有按键按下,如果有,再判断是K1还是K2按下,如果是K1按下,则对应显示 理工学院 电信学院,如果是K2按下,对应的显示TI CC2530F256LCD12864 Test。设计性实验(从板):通过按键控制LCDh的显示容。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设计实验结果图分析:DM12864是在字库的LCD显示器,可以混合显示汉字、英文字母或数字。所以 只要在相应的显示程序中打印出来即可。通过按键扫描,根据按下的按键对应返回的键值来调用响应的显示函数从而控制显示的容。设计性实验:实验结果:实验结果如图4-5所示。按下K1,最右边的数字加1,按下K2,数字减1,数 字的初始值是999。分析:设计实验跟基础实验的原理差不多,显示都是差不多的,唯一的差别就是后面 的按键控制数字的加减,数字是不能直接被修改的,所以我们要找到该数字各位对应的ASCII码值,通过地址调用来实现数字的变化。六、实验思考题1. 基本实验程序中“ /LED1 = OFF; ”语句将双斜杠去掉有何影响?问什么 ?答:如果将双斜杠去掉,这行程序就会被编译,LED将会被强制关闭,不能再显示出Gli ntFlag 0 的数值状态。2. 基本实验中去除“ if(GlintFlag0 = 0) ”语句,结果怎样?答:如果去掉这个判断,那么在后面执行GlintFlag0=0 ,GlintFlag1=1时,如果立即按下按键可能无效,有延时。3. 使用DM12864M混合显示汉字、英文字母或数字时需要注意哪些问题?答:要注意汉字是占2个字节,如果要空格对齐,必须在汉字前有2个或2个的倍数个空格才行,如果空的格数为单数格,那样就会显示乱码。4. 如何在 OCM12864-8上指定区域显示汉字?答:把汉字转换成编码,然后再指定区域刷新屏幕。七、存在问题和解决方法 存在的问题 1: 在做基础实验的时候直接下载的程序汉字显示的是乱码。解决方法 1: 由于汉字占两个字节,所以在显示的时候必须占偶数位,如果前面占的字节数是奇数的话, 那么它所在的位子就会混乱, 就好像一个人需要穿一双鞋, 但是你给他两只不配对的鞋, 然也给了他两只鞋, 但是肯定穿不了, 这跟汉字是一样的道理。 所以汉字前面的字符所占的 位数一定要是偶数,不足的话可以用空格补齐。这样就不会显示乱码了。存在的问题 2: 在设计实验中,如果数字是三位数,前面会多显示一个零,不能完全达到要求。解决方法 2: 每次显示前进行一次最高位判断,如果最高位为0,则显示的时候不显示它。训练五 ADC 实验一、实验容1. 在 CC2530 节点开发板上, 使用 ADC 进行片温度单次采样, 将采集的电压值转换为 温度值并显示在 LCD 上;2. 在 CC2530 节点开发板上, 使用 ADC 进行电源电压单次采样, 将采集的电压值显示 在LCD上。二、实验原理1. ADC 概况ADC 的主要特征如下: ADC 转换位数可选, 8 到14 位;8 个独立的输入通道,单 端或差分输入;参考电压可选为部、外部单端、外部差分或 AVDD5;中断请求产生;转 换结束时 DMA 触发;温度传感器输入;电池电压检测。2. ADC 输入P0 端口引脚上的信号可以用作 ADC 输入。3. ADC 转换序列ADC可以执行序列转换,并且将结果移动到存储器 (通过DMA,而不需要任何CPU干 预。APCFG寄存器可以影响转换序列。ADCC0N2.SC寄存器位用于定义来自 ADC输入的ADC转换序列。4. ADC 单次转换ADC 可以通过编程从任何通道执行单次转换。5. ADC 中断当通过写ADCC0N3而触发的一个单次转换完成时, ADC将产生一个中断。而当完 成一个序列转换时不会产生中断。6. ADC DMA触发每完成一个序列转换, ADC都将产生一个DMA触发。当完成一个单个转换时,不 产生DM触发。三、基本实验步骤第一步:连接实验设备,对于从板,用一个PCB板 (用于给LCD供电)将LCD与实验开发板相连,将 USB 电缆线插到 PC 机的 USB 端口上,实验板电源指示灯亮。第二步:启动 IAR 开发环境。第三步:创建工程。1. 创建一个工作区。2. 建立一个新工程。3. 新建或添加程序文件。4. 设置工程选项。5. 编译和调试。6. 下载。7. 实验结果。第四步:通过以上几个步骤,最终下载目标程序到CC2530后,观察实验现象,记录实验结果。四、设计性实验程序流程与分析基础实验(从板):设计一个工程,下载到目标板上。显示传感器部温度。基础实验流程图(从板):开始图5-1显示传感器部温度实验分析:实验先初始化LCD,接着连接温度传感器,使能温度传感器,通过四次循环取出 分辨率为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式 temperature=(avgTemp-(1480-4.5*25)/4.5,可得到片温度并输出显示。设计性实验(从板):设计一个工程,下载到目标板上。将A/D的源设为1/3电源电压,并LCD显示1/3电 源电压、电源电压。设计性实验流程图(从板):开始图5-2显示1/3电源电压、电源电压实验分析:实验先初始化LCD,接着连接温度传感器,使能温度传感器,四次循环取出分辨 率为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式 temperature=(avgTemp-(1480-4.5*25)/4.5,可得到片温度并输出显示。再连接温度传感器,使能温度传感器,8次循环取端口电压,断开温度传感器,使能温度传感器无效,去端口电压平均值,根据公式voltagevalue=(1.15/8191)*volt,电源电压为voltagevalue =voltagevalue*3,可得到两个电压平均值并输出显示。五、实验结果与分析基础实验:实验结果:实验结果如图5-3所示,显示CC253啲部温度为28.3 C。分析:片温度通过连接温度传感器,使能温度传感器,通过四次循环取出分辨率为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式temperature=(avgTemp-(1480-4.5*25)/4.5,得到片温度并输出显示而来。图5-3 显示部温度结果图图5-4显示1/3电源电压、电源电压结果图设计性实验:实验结果:实验结果如图5-4所示,CC253啲部温度为28.8 C, 1/3电压为1.8982V ,电 源电压为3.2948V。分析:这三个值的获得途径:连接温度传感器,使能温度传感器,四次循环取出分辨率 为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式temperature=(avgTemp-(1480-4.5*25)/4.5,得到片温度并输出显示。再连接温度传感器,使能温度传感器,8次循环取端口电压,断开温度传感器,使能温度传感器无效,去端口电压平均值,根据公式voltagevalue=(1.15/8191)*volt ,电源电压为voltagevalue =voltagevalue*3,得到两个电压平均值并输出显示。六、实验思考题1. 如果采用电压采集识别按键,则如何实现?答:通过输出电压AD转换作为按键识别依据。2. 如何将片温度传感器 A/D转换的结果转换成温度 ?答:通过查表法转换。3. 如何实现显示采集数据?答:通过将数据转换成字符,再在LCDh显示。4. 如何选取参考电压?答:通过CCON的高两位设置不同的参考电压。5. 差分输入是什么意思?能否作为比较器使用?答:差分输入是将两个输入端的差值作为信号。可以作为比较器使用。6. 如果 CC2530 需要采集一个模拟传感器的数据,实现过程中需要注意哪些问题? 要注意输入的值不能大于参考电压。七、存在问题和解决方法存在的问题 1:基础实验LCD显示的最上面一排 CC2530中的CC总是不能正确显示, 总是重复第三位 和第四位的容,显示成 252530。解决方法 1: 这是由于上一屏没有够用显示,占了这一屏的字节,造成了对这一屏幕数据的挤压,在显示时才会发生错误,只需将初始界面的C符号去掉,在后面单独写这行的时候加上即 可,这样就不会造成挤压而使最前面的CC2530前两个字符重复了。存在的问题 2: 设计实验中,电压显示负数。解决方法 2:还是显示的问题,数据挤压了,方法是把前面屏幕上的电压V符号去掉,同时设置后面函数里浮点型数占的字节为 5。、实验容1. 在CC2530节点开发板上,2. 在CC2530节点开发板上,3. 在CC2530节点开发板上,训练六UART串行通信实验UART串口发送数据;UART串口接收PC数据控制LED等设备对象。UART串口接收PC数据并回传。、实验原理1. UART模式UART模式提供异步串行接口。在 UART模式中,接口使用2线或者含有RXD TXD 可选的RTS和CTS的4线。当UxCSR.MODE设置为1时,就选择了 UART模式。2. UART发送当USART收/发数据缓冲器UxDBUF写入数据时,UART发送启动。该字节发送到输 出引脚TXDx,寄存器UxDBUF是双缓冲器。3. UART接收当1写入UxCSR.RE位时,在UART上数据接收就开始了。4. UART相关寄存器设置UART接口需要操作6个寄存器:PERCFG外部设备控制寄存器)、UxCS(控 制和状态寄存器)、UxGCR(通用控制寄存器) UxDBUF(收/发数据缓冲器)、UxBAUD波 特率控制寄存器)以及 UxUCR(UAR控制寄存器)。5. UART硬件接口表 6.1 CC2530 UART0 接口CC2530引脚URAT功能P0.2RXDP0.3TXDP0.4CTSP0.5RTS三、基本实验步骤第一步:连接实验设备,对于从板,用一个PCB板 (用于给LCD供电)将LCD与实验开发板相连,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。第二步:启动IAR开发环境。第三步:创建工程。1. 创建一个工作区。2. 建立一个新工程。3. 新建或添加程序文件。4. 设置工程选项。5. 编译和调试。6. 下载。第四步:在断电的情况下连接串口,同时打开串口调试助手,设置好串口号及波特率, 开电,打开串口,观察现象。第五步:通过以上几个步骤,观察实验现象,记录实验结果。四、设计性实验程序流程与分析基础实验(从板):异步串口接收实验,实现串口发送字符串函数,接收字符,并缓存接收数据。 基础实验流程图(从板):开始图6-2串口发送接收字符串实验分析:实验先进行LCD,串口的初始化,串口与 PC机连上以后,打开串口调试助手,并 设置好相关参数(串口号,波特率),打开串口。程序接收标志Rtflag在检测是否为1,如果为1,那么再判断接收字符是否小于 4,如果小于4,那么就把数据放到temp缓存区里,如 果接收字符大于等于 4则讲temp清零。如果程序接收标志不为1,那就再检测是否为2,如果为2,那么再判断是哪两个字符,如果是10,则表示LED1灭,11则表示LED1亮,20表示LED2灭,21表示LED2亮,30表示风扇停止,31表示风扇转动,40表示LED灭,41表示LED亮,50 表示蜂鸣器停,51表示蜂鸣器响。如果接收标志也不为2,那就将其置1,并将接收容清零,返回重新检测接收标志的地方。设计性实验(从板):设计一个工程,下载到目标板上。CC2530芯片接收PC机发送的数据,LCD显示并回传给PG设计性实验流程图(从板)图6-3 串口接收数据显示回传实验分析:实验先进行LCD,串口的初始化,程序开始执行,首先显示初始界面,串口都接 好后,打开串口调试助手,设置好参数,并打开串口,接着在串口调试助手里面发送数据, CC2530接收到数据后在LCDh显示同时回送到PC机上,可以在串口调试助手里看到回送的数 据。五、实验结果与分析基础实验:实验结果:串口调试助手上显示“理工学院电气信息工程学院”,且在串口输入“10”LED1熄灭,输入“ 11” LED点亮,输入“ 20” LED2熄灭,输入“ 21 ” LED2点亮。分析:在程序中,while循环里,接收数据小于两个时,先将接收数据寄放到数据缓冲 区,RT标志位为2,表明数据接收完毕。将 RT标志位置1,准备接收新的指令,并将接收容清 零。USART是串行通信接口,当USAR收/发数据缓冲器UxDBU写入数据时,UAR发送启动。设计性实验:实验结果:实验结果图如图6-4,6-5所示,通过串口调试助手发送消息到LCDk显示,LCD接收显示并通过串口回传给 PC机o分析:设计实验事实上就是将发送数据和回传数据结合到了一起,原理和基础实验是一样的,以“判断是否收到 #”来结束一段字符的发送。图6-4 PC机发送接收回传界面图6-5 LCD接收界面六、实验思考题1. 同步通信与异步通信主要区别是什么?答:同步通信要求通信双方以相同的时钟频率进行;异步通信不要求双方同步,收发双方可采用各自的时钟源2. 异步通信具体数据格式包括哪些?答:起始位、8位数据位、奇偶校验位和几个停止位。3. 如何实现串口数据透明回传?答:不带任何数据格式,收到什么数据回传什么数据。4. 程序查询与中断各自有何特点,如何根据应用场合选取?答:一般情况下都可用查询方式,对于一些对时间要求高的场合使用中断方式。七、存在问题和解决方法 存在的问题 1: 发送汉字时第二次接收会显示乱码。解决方法 1:因为汉字占两个字节,而 #占一个字节,发送汉字时只需在结尾加一个空格即可。存在的问题 2:有的时候 PC 不能接收到回传的数据。解决方法 2:这是由于串口不稳定的原因,可以关闭串口重新打开,或者换一个USB接口即可。训练七 定时器 1 实验一、实验容1. 在 CC2530 节点开发板上,定时器 1 自由重装模式、溢出查询控制 LED 闪烁;2. 在 CC2530 节点开发板上,定时器 1 工作于正计数 / 倒计数模式,产生 0.1s 定时, 按键控制秒表启动、停止、复位, LCD 显示秒表信息;3. 在 CC2530 节点开发板上,启用定时器 1,产生 1s 定时,按键控制或 PC 串口校准 时间,时钟信息 LCD 显示并能串口发送给 PC;4. 在 CC2530 节点开发板上,定时器 1 输入捕获模式 /输出比较模式控制 LED 闪烁。、实验原理1. 定时器 1( 16 位定时器)定时器 1 具有下列特点: 5个捕获 / 比较通道;上升沿、下降沿或任何边沿输入捕 获;设置、 清除或切换输出比较; 自由运行、 模或正计数 /倒计数操作; 1、8、32 或128 时钟分频;在每个捕获/比较和最终计数上产生中断请求;DMA触发功能。2. 16 位计数器定时器 1 包含一个 16 位计数器,该计数器在每个有效时钟边沿递增或递减。计数器可以运行为自由运行计数器、模计数器或者在中心对齐PWM里使用的正计数器/倒计数器。3. 定时器 1 操作控制寄存器 T1CTL 通常用来控制定时器 1 操作。状态寄存器 T1STAT 保持中断标 志。下面将描述不同的定时操作模式。4. 自由运行模式自由运行模式用于产生独立的时间间隔和输出信号频率。 计数器从 0x0000 开始, 并且在每一个有效时钟边沿增加 1。5. 模模式当定时器运行于模模式, 16 位计数器从 0x0000 开始,并且在每一个有效时钟边 沿增加 1。在模模式下,若要周期地产生中断,需要 T1CCTL0 使能通道 0 比较模式及中断使能。6. 正计数 / 倒计数模式0x0000 开始相加直到达到保存在0x0000。T1CCTLn 设置。设置包括输入捕获在正计数 / 倒计数定时器模式,计数器反复从 T1CC0H:T1CC0L里的值,然后计数器倒计数直到7. 通道模式控制通道模式在每个通道对应的控制和状态寄存器和输出比较模式。8. 输入捕获模式当一个通道被配置为输入捕获通道, 和该通道相连的 I/O 引脚配置为输入。 定时 器启动后, 输入引脚上的上升沿、 下降沿或任何边沿都将触发一个捕获, 即16 位计数 器的容捕获到相关的捕获寄存器中。 因此, 该定时器能捕获一个外部事件发生的时间。在使用 I/O 作为定时器引脚前,要求 I/O 引脚必须配置为定时器的外部设备引脚。9. 输出比较模式在输出比较模式, 和该通道相连的 I/O 引脚配置为输出。 定时器启动后, 对计数 器里的容和通道比较寄存器 T1CC nH:T1CC nL的容进行比较。10. 定时器 1 中断为定时器 1 分配了一个中断向量。 当下面任何一个定时器事件发生时, 将产生一 个中断请求:计数器达到最终计数值(溢出或者在 0 附近);输入捕获事件;输出比 较事件。11. 定时器 1 定时相关寄存器定时器1定时相关寄存器包括:T1CNTH定时器1计数高位寄存器)、T1CNT(定 时器1计数低位寄存器)、T1CTL(定时器1控制寄存器)、T1STAT(定时器1状态寄存 器)、T1CCTLn (定时器1通道n捕获/比较控制寄存器)、T1CCnH(定时器1通道n捕 获/比较值高位寄存器)、T1STAT(定时器1通道n捕获/比较值低位寄存器),TIMIF (定时器 1/3/4 中断屏蔽 / 标志寄存器) 。三、基本实验步骤第一步:连接实验设备,对于从板,用一个PCB板 (用于给LCD供电)将LCD与实验开发板相连,将 USB 电缆线插到 PC 机的 USB 端口上,实验板电源指示灯亮。第二步:启动 IAR 开发环境。第三步:创建工程。1. 创建一个工作区。2. 建立一个新工程。3. 新建或添加程序文件。4. 设置工程选项。5. 编译和调试。6. 下载。 第四步:在断电的情况下连接串口,同时打开串口调试助手,设置好串口号及波特率,开电,打开串口,观察现象。第五步:通过以上几个步骤,观察实验现象,记录实验结果。四、设计性实验程序流程与分析基础实验 1 :间隔一段时间 LED 闪烁。基础实验 1 流程图:初始化1rT1 从 0C 计数,显 图片,且 和LED)00ffff2示 PTC3. LED1)2闪烁T1定时器 溢出?中断标志取反图7-1 LED闪烁实验分析:实验先进行LCD,串口等的初始化,接着显示初始图片界面,然后T1定时器开始计数。LED1, LED实现闪烁功能,此时 T1定时器在不断检测又没有溢出,如果没有溢出,那 么继续检测,如果有溢出了,那么就将中断标志取反,再返回检测。基础实验2:秒表基础实验2流程图:开始图7-2秒表实验分析:实验先对LCD按键初始化。然后按下 K2启动秒表,液晶显示开始进行秒表计时, 再按下K2停止秒表,再按K2,复位秒表,如此循环。设计性实验:设计一个工程,下载到目标板上。在CC2530节点开发板上实现电子钟功能,LCD显 示时、分、秒,时间按键校准或PC串口控制校准,时钟信息LCD显示并能串口发送给 PG设计性实验流程图:开始图7-3电子钟实验分析:实验先初始化按键与LCD,并开中断,然后开始检测是否有数据传入,如果有则接收数据,没有则返回继续接收,接着进行按键扫描,如果有键按下,则检测是K1按下还是K2按下,如果是K2按下,则判断是计数在哪个状态, 如果刚开始计数,那就启动计数器, 显示时间并返回传输数据,如果已经在计数中,按下K2则表示停止计数器,显示时间并返回传输数据,如果 K2按下时,计数器已经计完数并停止工作了,则将计数器清零,显示时 间并返回传输数据。如果是 K1按下,就将分的个位加1并返回传输数据。五、实验结果与分析基础实验:秒表实验结果:按下K2,秒表开始计时,再次按下 K2,秒表停止计时并显示计时时间,再 次按下K2,秒表计数清零。分析: 当按键按下时, 程序调用定时器 1中断服务程序, 并响应定时器 1中断服务函数, 清定时器 1,时钟以 1毫秒为最小值开始计数, 通过中断里面不断对毫秒进行加一操作, 当毫 秒到 9再向上计数时向秒位进 1,显示 1秒的计时; 秒不断累加, 到59了再向上计数向分位进; 分位计数跟秒位相同,满 59再计数想时位进 1 ;时位到 23再向上计数就同时将时、分、秒以 及毫秒位清零。当按键再次按下时,如果计时器在运行,就使它停止,显示计时时间。再次 按下按键,就将所有位全部清零复位。设计性实验:实验结果:如果PC机没有通过串口发送数据时,按下 K2,计数器从“ 00:00:00.0 ”开 始计数。按下K1,分位加1,当分到59时,按下K1,将分位清零,同时将时位增 1。如果PC 机通过串口调试助手向实验板发送一个指定的时间,液晶屏上显示该时间, 按下K2,计时器可以从该时间开始计时。分析:设计实验与秒表的基础实验相比多了一个按键K1校时和PC机定时功能,K1校时就是在循环进行按键扫描看 K1是否按下,如果K1按下,对分位数据进行加 1操作,其他与秒 表相同;PC定时就是通过Uart0TX_String() 函数将串口调试助手发送的时间数据调用显示到 LCD上。六、实验思考题1. 本实验对 CC2530 的哪些定时器相关寄存器进行了操作?定时中断配置的基本步 骤是什么?答:本实验对T1CCx T1CTL TIMIF和PERCF等寄存器进行了操作。 定时中断配置的基 本步骤为设置初值,初始化寄存器,使能定时器状态,满足状态后开中断。2. 如何实现闹钟、年月日、星期显示功能 ? 答:闹钟功能:在基础实验的基础上加入定时中断,只要定时时间一到自动进入中断请求, 中断容为蜂鸣器响。年月日、星期的显示:与基础实验的秒表显示差不多,只是进制有所不同,进位方法略 有区别。3. 输入捕获与输出比较可以应用在哪些场合? 答:可应用在计数,输出脉冲等场合。4. 如何用定时器产生方波信号输出? 答:通过定时中断实现,定时对电平取反即可得到方波信号输出。七、存在问题和解决方法存在的问题:设计实验PC机发送到LCD显示后不能从现在的时间进行计时,还是还原成从原始时间 计时。解决方法:没有将发送到LCD显示的时间实时更新到计时函数里,需要在计时器中调用新的时间 才能从新时间开始计时。训练八 外部中断实验、实验容1. 在 CC2530 节点开发板上,启用通用 I/O 中断配置,由查询控制 LED 闪烁;2. 在 CC2530 节点开发板上,启用通用 I/O 中断配置,由中断控制 LED 闪烁。、实验原理1. 中断屏蔽 每个中断可以通过中断使能特殊功能寄存器中的中断使能位 IEN0 、IEN1 或 IEN2 使能或禁止。为了使能中断功能,应当执行下列步骤:1.清除中断标志。 2. 如果有,设置外部设备特殊功能寄存器中对应的各中断使能位。3.设置寄存器IENO、IEN1或IEN2中对应的各中断使能位为1。4.设置IEN0中的EA位为1来使能全局中断。5.在该中断对应的 向量地址上,运行该中断的服务程。2. 中断处理当中断发生时, 不管该中断使能或禁止, CPU 都会在中断标志寄存器中设置中断标志位。当中断使能时,首先设置中断标志,然后在下一个指令周期,由硬件强行产生一 个 LCALL 到对应的向量地址,运行中断服务程序。3. 中断优先级中断组合成为6个中断优先组,每组的优先级通过设置寄存器IP1和IP0实现。4. 通用 I/O 中断通用 I/O 引脚设置为输入后,可以用于产生中断。中断可以设置在外部信号的上升或下降沿触发。 每个PO、P1和P2 口的各位都可以中断使能, 整个口中所有的位也可 以中断使能。PO、P1、P2口对应的寄存器为IEN1和IEN2 : IEN1.POIE : P0中断使能。 IEN2.P1IE : P1 中断使能。 IEN2.P2IE : P2 中断使能。三、基本实验步骤第一步: 连接实验设备, 将 USB 电缆线插到 PC 机的 USB 端口上, 实验板电源指示灯亮。 第二步:启动 IAR 开发环境。第三步:创建工程。1. 创建一个工作区。2. 建立一个新工程。3. 新建或添加程序文件。4. 设置工程选项。5. 编译和调试。6. 下载。7. 实验结果。第四步:通过以上几个步骤,最终下载目标程序到 CC253O 后,观察实验现象,记录实 验结果。四、设计性实验程序流程与分析基础实验(从板): 外部中断基本实验。 基础实验流程图:图8-1外部中断基本实验分析:实验先初始化LED,再设置中断寄存器,开总中断,接着检测是否有中断请求, 如果有就先处理中断,如果没有则继续执行原来的程序并检测是否有中断请求。本实验的中断容是,如果K1按下,则LED2亮,LED1按照32MH时钟频率闪烁,再次按下 心则中断关闭。设计性实验(从板):设计一个工程,下载到目标板上。在CC2530主节点开发板按键 K1(P1.3 )、K2(P0.1), 从节点开发板按键 K1 ( P0.1 )、K2( P0.7)分别控制启动/停止LED1 LED2闪烁。(提示: P1 口中断入口向量 vector=P1INT_VECTOR)。设计性实验流程图:开始图8-2按键控制LED闪烁停止实验分析:实验先进行LED初始化,接着设置中断寄存器,再开总中断,接着开始检测是否有中断产生,如果有,判断是外部定时器中断还是定时器中断,如果是定时器中断,则讲LED1的状态取反并返回继续检测是否有中断产生,如果是定时器中断,则判断其运行在什么状态,如果是停止状态,则把它设置为运行状态,并点亮LED2,返回继续检测是否有中断,如果是运行状态,则把它设置为停止状态,并熄灭LED2返回继续检测是否有中断。五、实验结果与分析基础实验:实验结果:按下K1, LED併始闪烁,再次按下K1, LED1停止闪烁。分析:程序先进行按键扫描,看是否有按键按下,如果有,再判断是否是K1按下,如果K1按下,进入P1中断,然后检测定时器的状态,如果定时器关闭,就打开定时器,跳入定 时器中断,LED状态取反,直到定时器溢出,跳出中断;如果定时器为打开状态,就关闭定 时器,熄灭LEDb设计性实验:实验结果:按下K1,LED1闪烁,再次按下K1,LED熄灭;按下K2, LED2闪烁,再次按 下K2,LED2熄灭。分析:设计实验只需在基础实验的基础上上加上对K2的设置即可,因为基础实验已经实现了 K1控制LED1闪烁熄灭。原理方法跟基础实验相同。六、实验思考题1. 本实验对CC2530的哪些定时器相关寄存器进行了操作?这些寄存器的功能分别 是什么?答:本实验对 CLKCONCMDT1CCOL T1CC0H T1CTTL T1CNTL IRCOF等寄存器进行了操 作。CLKCONCMD设置系统时间。T1CCOL T1CC0H定时器1通道0捕获/比较。T1CTTL控制 定时器1分频值和运行模式。T1CNTL定时器地位值寄存器。IRCON显示是否有中断产生。2. 如何理解中断的概念 ?答:中断就是指暂时停止正在执行的程序,去执行其它程序。3. 外部中断配置的基本步骤是什么?答:配置中断源,设置中断服务程序,使能相应的特殊功能寄存器,开总中断。4. 除了本实验通用I/O 外部中断源,其它中断源还有哪些?答:还有定时器中断源,USB断源,射频中断源,串口中断源,看门狗中断源等。5. 如何配置中断优先级?答:中断组合成为6个中断优先组,每组的优先级通过设置寄存器IP1和IP0实现。IP1,IP0的对应位所对应优先级如下表所示。IP1_XIP0_x优先级
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


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

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


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