无线通信技术报告.docx

上传人:b****6 文档编号:8590574 上传时间:2023-02-01 格式:DOCX 页数:59 大小:1.19MB
下载 相关 举报
无线通信技术报告.docx_第1页
第1页 / 共59页
无线通信技术报告.docx_第2页
第2页 / 共59页
无线通信技术报告.docx_第3页
第3页 / 共59页
无线通信技术报告.docx_第4页
第4页 / 共59页
无线通信技术报告.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

无线通信技术报告.docx

《无线通信技术报告.docx》由会员分享,可在线阅读,更多相关《无线通信技术报告.docx(59页珍藏版)》请在冰豆网上搜索。

无线通信技术报告.docx

无线通信技术报告

JIANGSUTEACHERSUNIVERSITYOFTECHNOLOGY

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

学院名称:

专业:

通信工程

班级:

09东通信2

姓名:

学号:

指导老师:

陶为戈吴全玉

 

2012年11月

 

训练一新建一个简单的工程项目

一、实验内容

1.通过本实验的学习,熟悉如何使用CC2530的软件开发环境IAREmbeddedWorkbenchfor8051来新建一个工程项目。

2.闪烁开发板上的用户指示灯LED1。

二、实验原理

1.对于主节点,定义LED1为CC2530的P1.0口控制,对于从节点,定义LED1为CC2530的P1.1口控制。

相应控制口为高电平时,LED点亮,为低电平时,LED熄灭。

开发CC2530应用系统一般需要以下几个调试工具来完成:

①软件集成开发环境(IAREmbeddedWorkbench):

完成系统的软件开发,进行软件和硬件仿真调试,它也是硬件调试的辅助手段;

②带有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开发环境,打开“开始”菜单->“程序”->IAREmbeddedWorkbenchfor80517.60->IAREmbeddedWorkbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。

观察现象。

(二)基本实验二:

按键控制灯亮灭

操作步骤:

①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。

②启动IAR开发环境,打开“开始”菜单->“程序”->IAREmbeddedWorkbenchfor80517.60->IAREmbeddedWorkbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。

观察现象。

四、设计性实验程序流程与分析(从节点)

实验要求:

设计一个工程,下载到目标板上,要求按下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熄灭。

否则返回扫描值为0,则说明按键没被激活。

从而实现设计性试验的要求。

六、实验思考题

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晶体振荡器。

三、基本实验步骤(从节点)

基本实验:

系统时钟源(主时钟源)的选择指示灯自动更新闪烁频率。

操作步骤:

①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。

②启动IAR开发环境,打开“开始”菜单->“程序”->IAREmbeddedWorkbenchfor80517.60->IAREmbeddedWorkbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。

观察现象。

四、设计性实验程序流程与分析(从节点)

实验要求:

设计一个工程,下载到目标板上,要求按下K1时,LED1、LED2闪烁频率变慢或变快,按下K2时,LED1、LED2闪烁频率变快或变慢。

1.初始化流程图如下所示:

 

图3.1初始化流程图

2.主函数流程图如下所示:

 

 

图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端口方向选择寄存器”的操作,默认为输入方向,所以对于端口设置为输入时是不必要的,而对于端口设置为输出时是必要的。

然后是对“P0、P1和P2端口输入模式选择寄存器”的操作,它规定了端口输入模式是“三态”还是“上拉/下拉”,根据具体设置而定。

此外还增加了对“功耗模式控制寄存器”和“时钟控制状态寄存器”的操作。

次操作需要根据不同要求而定。

②系统内部时钟最高频率为32M,所以不可以设置比32M更高的频率。

4.设计性实验中如何使LED有多种不同的频率闪烁方式?

答:

①可以通过延时时间长短不一样来实现LED闪烁快慢的不同。

②可以通过按键控制不同LED指示灯,闪烁不同频率来实现。

③通过控制主时钟频率(32MHz、16MHz、8MHz……)的不同来切换LED闪烁方式。

七、存在问题和解决方法

存在的问题1:

基本实验中,LED指示灯闪烁频率太快,视觉无法分辨。

解决方法:

不同于前几个实验是通过改变延时时间的长短来实现LED指示灯闪烁的快慢,而本实验则是通过选择不同的系统时钟频率来改变LED指示灯闪烁的快慢,指示灯闪烁太快说明系统时钟频率选择太大,可以适当地降低系统时钟频率。

存在的问题2:

设计性实验中,按键无法控制LED指示灯的亮灭。

解决方法:

查看程序,看按键端口、指示灯端口初始化设置是否正确,主从端口是否区分清楚,按键对应相应的LED指示灯是否正确。

训练四SPI通信与LCD显示实验

一、实验内容

1.在CC2530从节点开发板上采用GPIO口软件模拟SPI接口的方式驱动DM12864M,显示汉字、字母、数字等。

2.在CC2530主节点开发板上采用硬件SPI接口的方式驱动OCM12864,显示汉字、字母、数字等。

二、实验原理

USART0和USART1是串行通信接口,它们能够分别运行于异步UART模式或者同步SPI模式。

两个USART具有同样的功能,可以设置在单独的I/O引脚。

本实验学习同步通信的SPI模式,采用SPI通信方式控制LCD显示。

三、基本实验步骤(从节点)

基本实验:

从节点显示不同的文字界面。

操作步骤:

①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。

②启动IAR开发环境,打开“开始”菜单->“程序”->IAREmbeddedWorkbenchfor80517.60->IAREmbeddedWorkbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。

观察现象。

四、设计性实验程序流程与分析(从节点)

实验要求:

设计一个工程,下载到目标板上,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”字样;当扫描值为2时,指示灯LED1、LED2显示为“00”时液晶显示“CC2530基本实验四、LCD实验”字样,若指示灯显示为“10”则液晶显示“TICC2530F256LCD12864Test”字样,若指示灯显示为“01”或“11”液晶显示“江苏技术师范学院电信学院”字样。

从而实现了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”的调用函数。

七、存在问题和解决方法

存在的问题1:

液晶显示界面出现乱码。

解决方法:

查看程序中显示函数中,显示汉字、英文或数字是否超出了取值范围。

存在的问题2:

按键无法实现数据的加减。

解决方法:

检查程序中,按键端口设置与相应的LCD显示是否一一对应,对应的端口值对否有误。

训练五ADC实验

一、实验内容

1.在CC2530节点开发板上,使用AD进行片内温度单次采集,将采集的电压值转换为温度值并显示在LCD上;

2.在CC2530节点开发板上,使用ADC进行电源电压单次采集,将采集的电压值显示在LCD上。

二、实验原理

ADC支持多达14位模数转换,有效位数(ENOB)多达12位。

ADC包含一个具有多达8个独

立配置通道的模拟多路转换器,一个参考电压发生器,并且通过DMA将转换结果写入存储器。

具有多种运行模式。

本实验学习ADC的一般设置和运行,由CPU存取的ADC控制和状态寄存器的使用方法。

三、基本实验步骤(从节点)

基本实验:

从节点采集片内温度。

操作步骤:

①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。

②启动IAR开发环境,打开“开始”菜单->“程序”->IAREmbeddedWorkbenchfor80517.60->IAREmbeddedWorkbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。

观察现象。

四、设计性实验程序流程与分析(从节点)

实验要求:

设计一个工程,下载到目标板上。

将A/D的源设为1/3电源电压,并LCD显示1/3电源电压、电源电压。

设计性实验流程图如下所示:

 

 

图5.1设计性实验流程图

五、实验结果与分析

(一)基本实验结果:

LCD液晶显示界面显示出片内温度。

结果分析:

首先连接温度传感器,使能温度传感器,四次循环取出分辨率为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式temperature=(avgTemp-(1480-4.5*25))/4.5,即可算出片内温度并输出。

(二)设计性实验结果:

将A/D的源设为1/3电源电压,LCD液晶显示界面

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1