无线通信技术综合训练报告Word下载.docx
《无线通信技术综合训练报告Word下载.docx》由会员分享,可在线阅读,更多相关《无线通信技术综合训练报告Word下载.docx(55页珍藏版)》请在冰点文库上搜索。
![无线通信技术综合训练报告Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/44c3195f-a2cd-400d-b5fb-87c4d6c2c35a/44c3195f-a2cd-400d-b5fb-87c4d6c2c35a1.gif)
可以参考IAR开发环境中的help菜单->
IAREmbeddedWorkbenchUserGuide。
学习各项设置的含义,同时应该熟读老师提供的教材,进一步掌握IAR开发环境。
训练二GPIO实验
1.LED指示灯自动闪烁;
2.按键控制LED指示灯亮灭;
3.按键控制LED指示灯闪烁。
21个I/O引脚都可以用于外部中断源输入口,因此如果需要,外部设备可以通过这些I/O产生中断。
外部中断功能也可以唤醒睡眠模式。
未使用的引脚应当定义电平,而不能浮空。
寄存器PxSEL,用来设置每个端口引脚为通用I/O引脚或者是外部设备I/O信号。
每个通用I/O口的引脚可以设置端口的方向选择以及输入还是输出模式的选择。
当用作输入模式时,方向是选择上、下拉或是三态。
1.创建一个工作区,
四、设计性实验程序流程与分析
设计一个工程,下载到目标板上,要求按下K1时,LED1闪烁(视觉能够分辨出),再次按下K1,LED1熄灭;
按下K2时,LED2闪烁,再次按下K2,LED2熄灭;
如此重复循环。
工作过程:
当所有初始化条件都符合时,查看扫描值当扫描值为1时,查看按键一是否按下,若按下则LED1闪,若没按下则LED1灭;
扫描值不为1为2时,查看按键2是否按下,若按下则LED2闪,若没按下LED2灭;
若扫描值不为1和2则为0,即按键都没按,LED1和LED2按原方式闪或灭。
五、实验结果与分析
基本1:
指示的闪烁;
基本2:
按键1和按键2可以控制灯亮或灭;
设计实验:
按按键1LED1闪烁,在按一下就停止闪烁,按按键2LED2闪烁,在按一下就停止闪烁。
每按一下按键就改变一次状态。
六、实验思考题
1.Delay(uint)中参数uint取值范围是什么?
如果超范围程序能运行吗?
为什么?
答:
取值范围:
0~65535。
超出范围后能运行,超出范围后取余数作为时间。
2.基本实验2中“Keyvalue=0”语句的作用是什么?
如果删除对实验结果有什么影响?
清除上一个状态。
删除后对实验无影响。
3.本实验对CC2530的哪些寄存器进行了操作?
都是必要的吗?
端口寄存器、端口功能寄存器、端口方向寄存器、端口输入模式选择寄存器都为必须的。
4.设计性实验中如何使LED有多种不同的闪烁方式?
调节延时、改变LED赋值。
七、存在问题和解决方法
存在的问题:
当两个灯同时被点亮时,灯闪烁变慢。
解决方法:
俩灯在同时被点亮时,延时是循环两次的,所以闪烁会变慢,可以让延时分开。
训练三系统主时钟源的选择实验
通过配置开发板上CC2530芯片的主时钟频率,从而改变指示灯LED闪烁的频率。
1.振荡器:
2个高频振荡器:
32MHz晶体振荡器;
16MHzRC振荡器。
2个低频振荡器:
32kHz晶体振荡器;
32kHzRC振荡器。
2.系统时钟
3.3.32kHz晶振
4.振荡器和时钟寄存器
设计一个工程,下载到目标板上,要求按下K1时,LED1闪烁频率加倍,再次按下K1,LED1闪烁频率减半;
按下K2时,LED2闪烁频率加倍,再次按下K2,LED2闪烁频率减半;
基本实验:
统时钟源(主时钟源)的选择指示灯自动更新闪烁频率
设计实验:
按下K1时,LED1闪烁频率加倍,再次按下K1,LED1闪烁频率减半;
按下K2时,LED2闪烁频率加倍,再次按下K2,LED2闪烁频率减半。
分析:
CLKCONCMD=((osc32k-bm)|\(0x01<
<
6)|\(0x01<
3)|\(0x01<
0);
0x01<
6:
将00000001向左移六位,系统时钟源选择16MHz高频RC振荡器;
3:
将00000001向左移三位,定时器选择16MHz;
0:
将00000001向左移零位,时钟速度选择16MHz。
1.为什么指示灯闪烁的频率不一样?
使用了不同的时钟源。
2.不同系统时钟是如何转换的?
切换过程中需要注意什么?
用查询状态寄存器转换不同的系统时钟
可以设置比32M更高的频率吗?
功耗模式控制器制器、时钟控制命令寄存器、时钟控制状态寄存器。
默认状态就不必要。
不可以设置比32M更高的频率。
4.设计性实验中如何使LED有多种不同的频率闪烁方式?
控制主时钟的频率。
选择不同的振荡器。
存在问题:
从16MHz时钟源切换到32MHz时钟源(反之亦然),与CLKCONCMD.TICKSPD设置一致。
当CLKCONCMD.OSC改变时,CLKCONCMD.TICKSPD设置得较慢会导致实际源发生改变的时间较长。
当CLKCONCMD.TICKSPD等于000时,转换时间最短。
训练四SPI通信与LCD显示主从板实验
1.在CC2530从节点开发板上采用GPIO口软件模拟SPI接口的方式驱动DM12864M,显示汉字、字母、数字等;
2.在CC2530主节点开发板上采用硬件SPI接口的方式驱动OCM12864,显示汉字、字母、数字等。
1.SPI模式:
在SPI模式中,USART通过3线接口或者4线接口与外部系统通信。
,SPI主模式操作是一个3线接口。
不需要选择输入来使能主。
如果外部从要求一个从选择信号,可以通过软件使用一个通用I/O引脚来实现。
SPI从模式字节传送由外部系统控制。
输入引脚MOSI上的数据传送到接收寄存器,该寄存器由串行时钟SCK控制,SCK为从模式输入。
与此同时,发送寄存器中的字节传送到输出引脚MISO。
2.SSN从选择引脚
3.波特率发生器
4.SPI相关寄存器:
外部设备控制寄存器;
USARTx控制和状态寄存器;
USARTx通用控制寄存器;
USARTx收/发数据缓冲器;
USARTx波特率控制寄存器。
3.新建或添加程序文件,利用字摸提取工具做出想要的图片的代码,放入用Display_Picture(uint8*picX),代码中调用即可显示图片。
实验要求:
设计一个工程,下载到目标板上,LCD初始界面显示班级、姓名、学号、专业。
要求按下K1时,LCD显示数据加1;
按下按键SW2,LCD显示数据减1,规定初始值显示为999。
实验过程:
初始化程序,先显示学校、姓名、学号、专业,再给一个延时,显示999;
初始化时设Z=999,按下按键1,运行Z=Z+1,再将运算的结果显示在频幕中并闪大灯;
当按下按键2时,运行算式Z=Z—1,将算式运算的结果显示在屏幕上并闪大灯;
若按键都没按,则再次循环。
基本实验:
按次显示要求的图片
现显示要求的图片,先显示初始值999,按下K1时,LCD显示数据加1;
按下按键SW2,LCD显示数据减1。
分析:
sprintf(b,"
%d"
z);
将z中的数据以整数形式放入寄存器b中。
1.基本实验程序中“//LED1=OFF;
”语句将双斜杠去掉有何影响?
问什么?
答案:
有//时,按下k1改变状态,但是闪烁过后就会持续亮或持续灭。
2.基本实验中去除“if(GlintFlag[0]==0)”语句,结果怎样?
没有去除时,延时为4000;
去除后LED1LED2同时闪烁周期为8000,闪烁变慢。
3.使用DM12864M混合显示汉字、英文字母或数字时需要注意哪些问题?
DM12864M从节点带汉字库,一个汉字带两个字节。
4.如何在OCM12864-8上指定区域显示汉字?
先用绘画工具画出所需汉字,使用抓图工具抓取一幅图像,在图像处理软件中将其处理成像素为128*64大小的图像,保存为.bmp文件格式。
运行字模软件ZIMO221.EXE,使用基本操作->
打开图标工具打开上述图像文件,点击“取模方式”,选择“C51格式”,出现点阵代码提取界面,将点阵生成区的十六进制代码复制到LcdControl.c某个图像数组中,调用Display_Picture(uint8*picX)函数即可显示该图像。
从板显示图像时产生乱码。
解决:
检查程序代码中显示部分代码,看是否有不和规定的书写方式以及要上下对齐。
运算Z=Z+1,Z=Z-1时运算结果无法输出。
Z中的数据应该放入一个寄存器中,再从寄存器中输出结果。
CC2530基本实验显示班级、学号、姓名、专业
显示数据控制数据加减
从节点连接图
CC2530基本实验(从板)
显示学校、学院
LCD数据显示(从板)
显示班级、姓名、学号、专业(从板)
控制数据加减(从板)
训练五ADC主从板实验
1.在CC2530节点开发板上,使用ADC进行片内温度单次采样,将采集的电压值转换为温度值并显示在LCD上;
2.在CC2530节点开发板上,使用ADC进行电源电压单次采样,将采集的电压值显示在LCD上。
ADC结构框图
ADC具有三个控制寄存器:
ADCCON1、ADCCON2和ADCCON3。
这些寄存器用于配置ADC和报告状态。
内部标准参考电压为1.15V,AIN7可自定,AVDD为3.3V,要注意被采集的电压不得超过参考电压。
ADC转换时间
:
CC2530内部基准参考电压1.15V。
25℃时,12bit采集结果为1480,温度系数4.5/℃。
要求:
将A/D的源设为1/3电源电压,并LCD显示1/3电源电压、电源电压。
LCD显示出1/3电源电压、电源电压、温度的数值,当手指唔在温度感应器上时,温度会会发生明显上升。
电源电压计算voltagevalue=(1.15/8191)*volt;
温度计算temperature=(avgTemp-(1480-4.5*25))/4.5;
1.如果采用电压采集识别按键,则如何实现?
按键的采集电路的电压差值大,进而实现按键的识别。
2.如何将片内温度传感器A/D转换的结果转换成温度?
25℃时,12bit采集结果为1480,温度系数4.5/℃,此为标准运算。
3.如何实现显示采集数据?
主节点通过voidLCDDataShow(uint8number,uint8line1,uint8line2,uint8column1,uint8column2);
此函数显示。
从节点将采集的数据放到数组中,然后通过voidvLcdTextWrite(UINT8u8Row,UINT8u8Column,char*pcStr);
函数显示出来。
4.如何选取参考电压?
外界电压不能超过参考电压。
5.差分输入是什么意思?
能否作为比较器使用?
两路信号求差后作为输入使用,能作为比较器使用。
6.如果CC2530需要采集一个模拟传感器的数据,实现过程中需要注意哪些问题?
模拟传感器的电压的范围值不能超过参考电压。
CC2530ADC实验
(从板)
显示电压和温度
(主板)
显示电压和温度(主板)
训练六UART串行通信实验
1.在CC2530节点开发板上,UART串口发送数据;
2.在CC2530节点开发板上,UART串口接收PC数据控制LED等设备对象。
3.在CC2530节点开发板上,UART串口接收PC数据并回传。
UART模式提供异步串行接口。
在UART模式中,接口使用2线或者含有RXD、TXD、可选的RTS和CTS的4线。
当USART收/发数据缓冲器UxDBUF写入数据时,UART发送启动。
该字节发送到输出引脚TXDx。
寄存器UxDBUF是双缓冲器。
当字节正在发送时,新的数据字节能够装入数据缓冲器。
对于每个USART,有5个寄存器(x是USART的编号,为0或者1):
UxCSR:
USARTx控制和状态;
UxUCR:
USARTxUART控制;
UxGCR:
USARTx通用控制;
UxDBUF:
USARTx收/发数据缓冲器;
UxBAUD:
USARTx波特率控制。
设置UART接口需要操作6个寄存器:
PERCFG(外部设备控制寄存器)、UxCSR(控制和状态寄存器)、UxGCR(通用控制寄存器)UxDBUF(收/发数据缓冲器)、UxBAUD波特率控制寄存器)以及UxUCR(UART控制寄存器)。
5.下载到板子上运行代码,并打开串口助手;
设计一个工程,下载到目标板上。
CC2530芯片接收PC机发送的数据,LCD显示并回传给PC。
程序下载、运行后复位主从节点,在串口助手上显示“江苏技术师范学院电气信息工程学院”且不断的发送“UART0TXtest”。
通过串口助手发送数字在串口助手上显示,并在LCD上也显示同一数字可知实验结果正确,符合设计要求。
1.同步通信与异步通信主要区别是什么?
同步:
收发双方的时钟是同步的,用时钟边沿来判断。
异步:
收发双方时钟源不同,双方约定传送的是波特率。
2.异步通信具体数据格式包括哪些?
字节;
每传一个字节要同步,一个起始位,七、八位数据,一个校验,一个停止位。
3.如何实现串口数据透明回传?
加入校验码或选用0比特插入法。
4.程序查询与中断各自有何特点,如何根据应用场合选取?
查询是在主程序中顺序执行,速度慢,易遗漏;
中断是有触发事件便进入中断。
根据具体要求进行选取。
不能发送汉字,这是因为定义的字节长度不足,只要改变定义的字节长度。
CC2530UART实验
用串口接收数据
输入控制参数
串口接收数据实验(从板)
串口回传数据
训练七定时器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位定时器)5个捕获/比较通道;
上升沿、下降沿或任何边沿输入捕获;
设置、清除或切换输出比较;
自由运行、模或正计数/倒计数操作;
1、8、32或128时钟分频;
在每个捕获/比较和最终计数上产生中断请求;
DMA触发功能。
2.各类模式:
通道模式控制,模模式,自由运行模式,输入捕获模式,输出比较模式。
3.定时器1定时相关寄存器包括:
T1CNTH(定时器1计数高位寄存器)、T1CNTL(定时器1计数低位寄存器)、T1CTL(定时器1控制寄存器)、T1STAT(定时器1状态寄存器)、T1CCTLn(定时器1通道n捕获/比较控制寄存器)、T1CCnH(定时器1通道n捕获/比较值高位寄存器)、T1STAT(定时器1通道n捕获/比较值低位寄存器),TIMIF(定时器1/3/4中断屏蔽/标志寄存器)。
在CC2530节点开发板上实现电子钟功能,LCD显示时、分、秒,时间按键校准或PC串口控制校准,时钟信息LCD显示并能串口发送给PC。
1.间隔一段时间LED闪烁
2.LCD上显示秒表,按K2启动秒表,再按下停止秒表,最后再按下秒表复位。
LCD显示时、分、秒,按下K1键可以进行时间按键校准,时钟信息并能串口发送给PC。
1.对CC2530的哪些定时器相关寄存器进行了操作?
定时中断配置的基本步骤是什么?
a.T1CNTH(定时器1计数高位寄存器)、
T1CNTL(定时器1计数低位寄存器)、
T1CTL(定时器1控制寄存器)、
T1STAT(定时器1状态寄存器)、
T1CCTLn(定时器1通道n捕获/比较控制寄存器)、
T1CCnH(定时器1通道n捕获/比较值高位寄存器)、
T1STAT(定时器1通道n捕获/比较值低位寄存器),
TIMIF(定时器1/3/4中断屏蔽/标志寄存器)。
b.按定时器1/3/4中断屏蔽/标志寄存器功能进行配置。
2.如何实现闹钟、年月日、星期显示功能?
使用定时器,计数器等。
3.输入捕获与输出比较可以应用在哪些场合?
地球温度的变化,可以应用与统计学,营销学等等。
4.如何用定时器产生方波信号输出?
对机器周期进行计数,即每一个机器周期产生一个计数脉冲,计数为一。
如何解决时钟的显示顺序。
Uart0TX_String(Recdata,sizeof(Recdata));
time.h=(Recdata[0]-'
0'
)*10+(Recdata[1]-'
);
time.m=(Recdata[3]-'
)*10+(Recdata[4]-'
time.s=(Recdata[6]-'
)*10+(Recdata[7]-'
time._s=(Recdata[9]-'
CC2530定时器1实验
定时器1自由重装初值
定时器1秒表实验
等待启动
启动中等待停止
已停止待复位
定时器1
输出比较控制
定时器1输入捕获控制
训练八外部中断实验
1.在CC2530节点开发板上,启用通用I/O中断配置,由查询控制LED闪烁;
2.在CC2530节点开发板上,启用通用I/O中断配置,由中断控制LED闪烁。
1.中断屏蔽:
每个中断可以通过中断使能特殊功能寄存器中的中断使能位IEN0、IEN1或IEN2使能或禁止。
2.中断处理:
当中断发生时,CPU就指向表3-8-1所描述的中断向量地址。
一旦中断服务开始,就只能够被更高优先级的中断打断;
中断服务程序由中断指令RETI(从中断指令返回)终止。
当RETI执行时,CPU将返回到中断发生时的下一条指令。
3.中断优先级:
中断组合成为6个中断优先组,每组的优先级通过设置寄存器IP1和IP0实现。
4.通用I/O中断:
通用I/O引脚设置为输入后,可以用于产生中断。
中断可以设置在外部信号的上升或下降沿触发。
在CC2530主节点开发板按键K1(P1.3)、K2(P0.1),从节点开发板按键K1(P0.1)、K2(P0.7)分别控制启动/停止LED1、LED2闪烁。
(提示:
P1口中断入口向量vector=P1INT_VECTOR)。
实验结果:
按下按键1后LED1闪烁,再按下按键二LED1和LED2闪烁,只按按键2后LED1和LED2都不闪烁。
在编写程序时,要注意中断的优