无线通信技术报告Word文档格式.docx
- 文档编号:21726792
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:59
- 大小:1.19MB
无线通信技术报告Word文档格式.docx
《无线通信技术报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《无线通信技术报告Word文档格式.docx(59页珍藏版)》请在冰豆网上搜索。
②带有C2530模块开发板:
实现硬件仿真调试与硬件系统的通信,控制和读取硬件系统的状态和数据;
③CCDebugger多功能调试:
下载和调试程序。
2.IAREmbeddedWorkbench主要完成系统的软件开发和调试。
它提供了一整套的程序编写、维护、编译、调试环境,能将汇编语言和C语言程序编译成HEX可执行输出文件,并能将程序下载到目标CC2530上运行调试。
三、基本实验步骤
1.连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。
2.启动IAR开发环境,打开“开始”菜单->
“程序”->
IAREmbeddedWorkbenchfor80517.60->
IAREmbeddedWorkbench。
3.创建工程:
①创建一个工作区:
打开IAREmbeddedWorkbench,选择File菜单->
New->
Wordspace,创建一个新工作区,在创建的新工作区中创建工程。
②建立一个新工程:
点击Project菜单,选择GreateNewwProject…,在Toolchain下拉栏中选择8051,Projecttemplates栏中选择“Emptyproject”,在“文件名”文本框输入文件名,点击保存,选择工程保存的位置,一个空的工程就建好了。
③新建或添加程序文件:
单击工具栏或选择菜单File\New\File新建一个空文本文件,向文本文件里添加实验程序代码。
并将代码保存到新建的工程目录中。
在工作区右键点击工程名,点击“AddFile”将新建的文件添加到工程中。
④设置工程选项,选中工程名,选择Project菜单下的Option…配置与CC2530相关的选项,设置完毕后点击“OK”命令按钮,这样工程选项的设置就完成了。
4.编译和调试:
选择菜单Project\RebuildAll对工程进行编译,选择菜单Project\Debug或按快捷键CTRL+D进入调试状态,也可以按工具栏上的调试按钮进入调试。
①窗口管理;
②进行单步调试;
③通过观察窗口观察变量;
④断点调试;
⑤反汇编调试;
⑥监控寄存器;
⑦监控存储器;
⑧退出调试:
选择菜单Debug\StopDebugging或点击调试工具栏上的退出按钮退出调试模式。
5.下载:
如果选择编译时产生.hex文件,可以选择使用FlashProgrammer下载工具将该文件下载到目标板上运行。
四、实验结果与分析
实验结果:
开发板上的指示灯LED1不断地闪烁
结果分析:
程序中对P0.1口进行了端口设置,设置成普通I/O口,并作为输出端口,在调用while程序时,当控制口为高电平时,LED1点亮,为低电平时,LED1熄灭,这样不停的使LED1闪灭,从而实现了LED灯的测试。
通过实验现象我们可以更加生动地熟悉和了解CC2530的软件开发环境,并掌握了创建工程和管理工程的方法,了解了基本的编译和调试功能。
五、存在问题和解决方法
存在的问题1:
对于新建工程项目操作步骤不熟悉,并在操作过程中总是忘记添加新的工程文件。
解决方法:
多操作几遍,熟能生巧,通过反复地操作练习,就能很熟练的掌握操作步骤。
存在的问题2:
一切都编译好后发现LED1不闪烁。
查看程序编写,发现对LED1端口的设置有问题,从节点中,LED1对应的端口是P1.0,而主节点中,LED1对应的端口是P1.1,应当注意分清是从节点还是主节点。
存在的问题3:
对于书上所讲的编译和调试步骤不能够较为清楚地了解。
通过询问同学和老师,对具体步骤进行操作、分析并掌握和了解。
训练二GPIO实验
1.LED指示灯自动闪烁;
2.按键控制LED指示灯亮灭;
3.按键控制LED指示灯闪烁。
CC2530有21个数字输入/输出引脚,可以配置为通用数字I/O接口,也可以作为外部I/O接口连接到ADC、定时器或者USART等外部设备。
这些I/O口的用途,可以通过一系列寄存器配置,由用户软件加以实现。
三、基本实验步骤(从节点)
(一)基本实验一:
指示灯自动闪烁
操作步骤:
①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。
②启动IAR开发环境,打开“开始”菜单->
③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。
观察现象。
(二)基本实验二:
按键控制灯亮灭
四、设计性实验程序流程与分析(从节点)
实验要求:
设计一个工程,下载到目标板上,要求按下K1时,LED1闪烁(视觉能够分辨出),再次按下K1,LED1熄灭;
按下K2时,LED2闪烁,再次按下K2,LED2熄灭;
如此重复循环。
1.初始化流程图如下所示:
Yes
图2.1初始化流程图
2.主函数流程图如下所示:
图2.2主函数流程图
五、实验结果与分析
(一)基本实验一实验结果:
开发板上的指示灯自动地闪烁。
程序中对LED进行初始化设置,从节点LED1、LED2对应的端口分别为P1.1和P1.0,将其设置为普通I/O口,并将端口定义为输出方向,“ON”为点亮,“OFF”为熄灭,调用while函数,使LED1、LED2不停地闪烁。
(二)基本实验二实验结果:
按下按键K1,指示灯LED1闪烁,按下按键K2,指示灯LED2闪烁。
程序中较之实验1添加了对按键的初始化,通过它来分别控制LED1和LED2,在定义按键时,要对按键进行按键扫描,扫描过程中要通过调用延时程序来进行消抖,防止按键激活失败,调用while函数,当扫描值为1,说明按键1激活,按下K1,就可以使LED1闪烁,当扫描值为2,则说明按键2激活,按下K2,则可以使LED2闪烁。
否则返回扫描值为0,则说明按键没被激活。
(三)设计性实验实验结果:
按下K1时,LED1闪烁,再次按下K1,LED1熄灭;
按下K2时,LED2闪烁,再次按下K2,LED2熄灭,如此重复循环。
设计性实验同基本实验相似,只要在基本实验2的基础上稍作改动即可,通过对按键初始化使按键分别控制LED1和LED2,在定义按键时,对按键进行按键扫描,扫描过程中要通过调用延时程序来进行消抖,防止按键激活失败,如果K1=0,返回扫描值为1;
如果K2=0,则返回扫描值为2,否则返回扫描值为0;
调用while函数,当扫描值为1,说明按键1激活,按下K1,就可以使LED1点亮,再按下K1,可以使LED1熄灭;
当扫描值为2,则说明按键2激活,按下K2,则可以使LED2点亮,再按下K2,则使LED2熄灭。
从而实现设计性试验的要求。
六、实验思考题
1.Delay(uint)中参数uint取值范围是什么?
如果超范围程序能运行吗?
为什么?
答:
取值范围是(0~65535),如果超范围程序仍然能够运行。
2.基本实验2中“Keyvalue=0”语句的作用是什么?
如果删除对实验结果有什么影响?
“Keyvalue=0”语句的作用是把相应按键清零。
删除对实验结果没有影响。
3.本实验对CC2530的哪些寄存器进行了操作?
都是必要的吗?
首先是对“P0、P1和P2端口功能寄存器”的操作,由于它们默认都是普通I/O口所以不是必要的;
接下来是对“P0、P1和P2端口方向选择寄存器”的操作,默认为输入方向,所以对于端口设置为输入时是不必要的,而对于端口设置为输出时是必要的。
最后是对“P0、P1和P2端口输入模式选择寄存器”的操作,它规定了端口输入模式是“三态”还是“上拉/下拉”,根据具体设置而定。
4.设计性实验中如何使LED有多种不同的闪烁方式?
①可以通过延时时间长短不一样来实现LED闪烁快慢的不同。
②可以通过按键控制不同LED指示灯,闪烁不同频率来实现。
七、存在问题和解决方法
存在的问题1:
基本实验1中,LED指示灯闪烁频率太快,视觉无法分辨。
解决方法:
通过改变延时时间的长短来实现LED指示灯闪烁的快慢。
存在的问题2:
基本实验2中,按键无法控制LED指示灯的亮灭。
查看程序,看按键端口、指示灯端口初始化设置是否正确,主从端口是否区分清楚,按键对应相应的LED指示灯是否正确。
训练三系统主时钟源的选择实验
通过配置开发板上CC2530芯片的时钟频率,从而改变指示灯LED闪烁的频率,熟悉CC2530芯片内部系统时钟或主时钟的配置和使用方法。
掌握高速晶体振荡器或RC振荡器的配置和使用。
CC2530有一个内部系统时钟或主时钟。
该时钟的振荡源既可以用16MHzRC振荡器,也可以采用32MHz晶体振荡器。
时钟的控制可以由特殊功能寄存器CLKCONCMD来实现。
此外,还有一个32kHz时钟源也可以用RC振荡器或者晶体振荡器,也由CLKCONCMD寄存器控制。
寄存器CLKCONSTA是一个只读寄存器,用来获得当前时钟状态。
振荡器可以选择高精度的晶体振荡器,也可以选择低功耗的RC振荡器。
注意,运行RF收发器,必须使用32MHz晶体振荡器。
基本实验:
系统时钟源(主时钟源)的选择指示灯自动更新闪烁频率。
实验要求:
设计一个工程,下载到目标板上,要求按下K1时,LED1、LED2闪烁频率变慢或变快,按下K2时,LED1、LED2闪烁频率变快或变慢。
1.初始化流程图如下所示:
图3.1初始化流程图
图3.2主函数流程图
(一)基本实验结果:
分别选择32MHz晶体振荡器和16MHzRC振荡器作为CC253x系列片上系统的系统时钟源(主时钟源),发现相同的LED闪烁代码在这两种时钟源下的闪烁频率不同。
32MHz频率时LED指示灯闪烁比16MHz频率时指示灯闪烁的更快。
结果分析:
由于程序中枚举了不同频率的系统时钟源,如16MHz的RC振荡器和32MHz的晶体振荡器,并定义选择不同的系统时钟源时控制不同的LED指示灯闪烁。
调用while函数,当系统时钟源选择26MHzRC振荡器时,LED2闪烁,循环一段时间后,系统时钟源选择32MHz晶体振荡器,则LED1闪烁,如此反复。
使我们掌握了CC2530芯片内部系统时钟的选择,掌握了高速晶体振荡器和RC振荡器的配置与使用。
(二)设计性实验结果:
按下K1时,LED1、LED2闪烁频率变慢或变快,按下K2时,LED1、LED2闪烁频率变快或变慢,如此反复。
结果分析:
设计性实验只需在基础实验的基础上进行修改即可。
由基本实验已经实现了选择不同系统时钟源时来控制不同的LED指示灯闪烁,设计性实验中需要加上按键控制,结合上一个实验的按键控制LED指示灯闪烁来改进,当扫描值为1,即按键1激活,按下K1来同时控制LED1、LED2,此时选择一种系统时钟源,当扫描值为2时,说明按键2激活,按下K2同时控制LED1、LED2,此时选择另一种系统时钟源,通过系统时钟频率的快慢来改变LED指示灯闪烁的快慢。
1.为什么指示灯闪烁的频率不一样?
因为选择了不同的系统时钟源,CC2530设备中有2个高频振荡器和2个低频振荡器,分别是32MHz晶体振荡器、16MHzRC振荡器和32k晶体振荡器、32kRC振荡器。
选择不同时钟频率时相应的指示灯闪烁频率也会不一样。
2.不同系统时钟是如何转换的?
切换过程中需要注意什么?
通过配置时钟源命令寄存器切换来实现的。
应当注意需要等到时钟稳定后再切换查询状态寄存器。
3.本实验对CC2530的哪些寄存器进行了操作?
可以设置比32M更高的频率吗?
①首先是对“P0、P1和P2端口功能寄存器”的操作,由于它们默认都是普通I/O口所以不是必要的;
然后是对“P0、P1和P2端口输入模式选择寄存器”的操作,它规定了端口输入模式是“三态”还是“上拉/下拉”,根据具体设置而定。
此外还增加了对“功耗模式控制寄存器”和“时钟控制状态寄存器”的操作。
次操作需要根据不同要求而定。
②系统内部时钟最高频率为32M,所以不可以设置比32M更高的频率。
4.设计性实验中如何使LED有多种不同的频率闪烁方式?
②可以通过按键控制不同LED指示灯,闪烁不同频率来实现。
③通过控制主时钟频率(32MHz、16MHz、8MHz……)的不同来切换LED闪烁方式。
基本实验中,LED指示灯闪烁频率太快,视觉无法分辨。
解决方法:
不同于前几个实验是通过改变延时时间的长短来实现LED指示灯闪烁的快慢,而本实验则是通过选择不同的系统时钟频率来改变LED指示灯闪烁的快慢,指示灯闪烁太快说明系统时钟频率选择太大,可以适当地降低系统时钟频率。
存在的问题2:
设计性实验中,按键无法控制LED指示灯的亮灭。
训练四SPI通信与LCD显示实验
1.在CC2530从节点开发板上采用GPIO口软件模拟SPI接口的方式驱动DM12864M,显示汉字、字母、数字等。
2.在CC2530主节点开发板上采用硬件SPI接口的方式驱动OCM12864,显示汉字、字母、数字等。
USART0和USART1是串行通信接口,它们能够分别运行于异步UART模式或者同步SPI模式。
两个USART具有同样的功能,可以设置在单独的I/O引脚。
本实验学习同步通信的SPI模式,采用SPI通信方式控制LCD显示。
从节点显示不同的文字界面。
实验要求:
设计一个工程,下载到目标板上,LCD初始界面显示班级、姓名、学号、专业。
要求按下K1时,LCD显示数据加1;
按下按键SW2,LCD显示数据减1,规定初始值显示为999。
设计性实验流程图如下所示:
图4.1设计性实验流程图
(一)基本实验结果:
液晶初始界面显示:
“CC2530基本实验四、LCD实验”等字样,当扫描值为1时,指示灯LED1、LED2显示为“00”时液晶显示“CC2530基本实验四、LCD实验”字样,若指示灯显示为“01”则液晶显示“江苏技术师范学院电信学院”字样,若指示灯显示为“10”或“11”液晶显示“TICC2530F256LCD12864Test”字样;
当扫描值为2时,指示灯LED1、LED2显示为“00”时液晶显示“CC2530基本实验四、LCD实验”字样,若指示灯显示为“10”则液晶显示“TICC2530F256LCD12864Test”字样,若指示灯显示为“01”或“11”液晶显示“江苏技术师范学院电信学院”字样。
由于DM12864M可以混合显示汉字、英文字母或数字,所以只要在相应的显示程序中打印出来即可,调用while函数,函数中定义闪烁标志[0]为1说明LED1点亮,为0则LED1熄灭,闪烁标志[1]为1说明LED2闪烁,为0则LED2熄灭,并通过LED1、LED2的亮灭来显示不同的界面,当扫描值为1时,指示灯LED1、LED2显示为“00”时液晶显示“CC2530基本实验四、LCD实验”字样,若指示灯显示为“01”则液晶显示“江苏技术师范学院电信学院”字样,若指示灯显示为“10”或“11”液晶显示“TICC2530F256LCD12864Test”字样;
从而实现了SPI通信与LCD显示之间的完美结合。
使我们熟悉并掌握了DM12864MLCD驱动程序的编写以及应用函数调用方法。
LCD初始界面显示“09东通信2陈芳芳09811202通信工程”的界面,延时一段时间后,界面显示“初始值显示999”的字样。
要求按下K1时,LCD界面显示“显示数据加一并显示加一后的数据”;
按下按键SW2,LCD界面显示“显示数据减一并显示减一后的数据”。
设计性实验与基本实验相同,根据具体要求改变液晶显示,通过按键来控制LCD显示,类似于前面几个实验中通过按键来控制LED,只不过,此实验需加上数据计算语句,从而实现数据的增加或减少,此设计性实验实现了计数器的功能。
1.基本实验程序中“//LED1=OFF;
”语句将双斜杠去掉有何影响?
问什么?
不去掉时,现象是“按下K1,LED1改变一下状态”,而去掉双斜杠,现象是“不闪烁时LED1灭”,因为双斜杠在这里起到注释的作用,加上双斜杠则此语句就被屏蔽掉。
2.基本实验中去除“if(GlintFlag[0]==0)”语句,结果怎样?
不去掉此语句,现象是“LED1或LED2或两个都闪,延时4000”,而去掉此语句,现象是“仅LED1闪或仅LED2闪,若同时闪烁,延时周期则为两者相加(4000+4000),闪烁变慢”。
3.使用DM12864M混合显示汉字、英文字母或数字时需要注意哪些问题?
①汉字显示为双字节显示,应根据程序要求,不得超过取值范围。
②注意每个汉字对应的位置,不得多于取值范围。
4.如何在OCM12864-8上指定区域显示汉字?
①使用抓图工具抓取一幅图像,在图像处理软件中将其处理成像素为128*64大小的图像,保存为.bmp文件格式。
运行字模软件ZIMO221.EXE,使用基本操作->
打开图标工具打开上述图像文件,点击“取模方式”,选择“C51格式”,出现如图3-4-6所示点阵代码提取界面,将点阵生成区的十六进制代码复制到LcdControl.c某个图像数组中,调用Display_Picture(uint8*picX)函数即可显示该图像。
②可以在程序中加入“0~9、A~F”的调用函数。
液晶显示界面出现乱码。
查看程序中显示函数中,显示汉字、英文或数字是否超出了取值范围。
按键无法实现数据的加减。
检查程序中,按键端口设置与相应的LCD显示是否一一对应,对应的端口值对否有误。
训练五ADC实验
1.在CC2530节点开发板上,使用AD进行片内温度单次采集,将采集的电压值转换为温度值并显示在LCD上;
2.在CC2530节点开发板上,使用ADC进行电源电压单次采集,将采集的电压值显示在LCD上。
ADC支持多达14位模数转换,有效位数(ENOB)多达12位。
ADC包含一个具有多达8个独
立配置通道的模拟多路转换器,一个参考电压发生器,并且通过DMA将转换结果写入存储器。
具有多种运行模式。
本实验学习ADC的一般设置和运行,由CPU存取的ADC控制和状态寄存器的使用方法。
从节点采集片内温度。
设计一个工程,下载到目标板上。
将A/D的源设为1/3电源电压,并LCD显示1/3电源电压、电源电压。
图5.1设计性实验流程图
(一)基本实验结果:
LCD液晶显示界面显示出片内温度。
首先连接温度传感器,使能温度传感器,四次循环取出分辨率为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式temperature=(avgTemp-(1480-4.5*25))/4.5,即可算出片内温度并输出。
将A/D的源设为1/3电源电压,LCD液晶显示界面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线通信 技术 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)