无线通信技术综合训练报告.doc_第1页
无线通信技术综合训练报告.doc_第2页
无线通信技术综合训练报告.doc_第3页
无线通信技术综合训练报告.doc_第4页
无线通信技术综合训练报告.doc_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. 目 录训练一 新建一个简单的工程项目1训练二 gpio实验3训练三 系统主时钟源的选择实验5训练四 spi通信与lcd显示实验7训练五 adc实验9训练六 uart串行通信实验11训练七 定时器1实验13训练八 外部中断实验15训练九 看门狗实验17训练十 ieee802.15.4基础理论实验19训练十一 多种拓扑结构组网实验21训练十二 基于rfid的基本读写系统实验23训练十三 通用传感器实验25训练十四 无线通信系统实验27心得体会29.训练一 新建一个简单的工程项目一、实验内容 通过本实验的学习,熟悉如何使用cc2530的软件开发环境iar embedded wordbench 8051来新建一个工程项目。本实验要求闪烁开发板上的用户指示灯led1二、实验原理由开发板原理图可知,对于主节点,定义led1为cc2530的p1.0口控制,对于从节点,定义led1为cc2530的p1.1口控制。相应控制口为高电平时,led点亮,为低电平时,led熄灭。iar embedded wordbench主要完成系统的软件开发和调试。它提供一整套的程序编写,维护,编译,调试环境,将汇编语言和c语言程序编译成hex可执行输出文件,并能将程序下载到目标cc2530上运行调试。用户系统的软件部分可以由iar建立的工程文件管理,工程文件一般包含以下几种文件:1.源程序文件:c语言或汇编语言文(*.c或*.asm)2.头文件(*.h) 3.库文件(*.lib,*obj);三、基本实验步骤第一步:连接实验设备,将usb的电缆线接到pc机usb端口上,实验板电源指示灯亮。第二步:启动iar开发环境,打开“开始”菜单-“程序”-iar system-iar embedded wordbench for 8051 7.60-iar embedded wordbench第三步:创建工程1.创建一个工作区 2.建立一个新工程 3.新建或添加程序文件4.设置工程选项 5编译和调试 6.下载7.分析实验结果四、实验结果与分析答:实验现象:按下开关k1时,实验板上led1闪烁。分析:该程序由库函数,主函数和延时函数组成。对于主节点,定义led1为cc2530的p1.0口控制,对于从节点,定义led1为cc2530的p1.1口控制。相应控制口为高电平时,led点亮,为低电平时,led熄灭。五、存在问题和解决方法1.问题:程序运行有错误 答:options没有进行相关配置,保存的地址不对。2:led是怎么实现闪烁 答:通过设置控制口的电平,为高电平时led亮,为低电平时,led熄灭。.训练二 gpio实验一、实验内容1.led指示灯自动闪烁2.按键控制led指示灯亮灭;3.按键控制led指示灯闪烁二、实验原理1.i/o口重要特性 21个i/o口引脚都可以用于外部中断源输入口,因此如果需要,外部设备可以通过这些i/o口产生中断。外部中断功能也可以唤醒睡眠模式。2.未使用的i/o引脚 这些引脚也可以配置为通用输出口。为了避免额外的功耗,无聊引脚配置为输入口还是输出口,都不应该直接与vdd或者gnd连接。3.外部设备i/o 对于usart和定时器i/o,选择数字i/o引脚上的外部设备i/o功能,需要将对应的寄存器位pxsel置1.4.通用i/o(gpio)寄存器 当用作通用i/o口时,引脚可以组成3个8位口,端口02,定义为p0,p1,和p2。每个端口引脚都可以单独设置为通用i/o或外部设备i/o.5实验电路原理 为了驱动led的亮灭,需要将相应的i/o设置为通用i/o口,且为输出模式,并使接口输出“1”或“0”来切换led的亮或灭状态。如果需要按键控制,则需要将按键k对应的i/o设置为通用i/o口,且为输入模式,通过读取相应端口寄存器值判断按键的状态。三、基本实验步骤1.指示灯自动闪烁实验按照实验一的实验步骤,连接实验设备,启动iar开发环境,创建一个新工程,将程序添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译,软硬件仿真,下载,观察实验现象。2.按键控灯亮灭实验按照实验一的实验步骤,连接实验设备,启动iar开发环境,创建一个新工程,将程序添加到工程文件中,仔细分析分析程序功能,画出程序流程图,设置工程选项,然后编译,软硬件仿真,下载,观察实验现象。四、设计性实验程序流程与分析设计一个工程,下载到目标板上,要求按下k1时,led1闪烁,再次按下k1,led1熄灭;按下k2时,led2闪烁,再次按下k2,led2熄灭;如此重复循环。 开始led初始化按键初始化设置控制变量a,b调用按键扫描函数,按键值为按键扫描函数返回值按键值?=1a(取反)a?=0指示灯1灭延时指示灯1闪烁延时按键值?=2b 取反b ?=0指示灯2灭延时指示灯2闪烁延时按键值清零yynnyyn流程图分析:程序开始后先进行初始化,初始化模块主要完成led和按键初始化,然后设置控制变量a,b并调用按键扫描函数,判断按键值是否为1,当按键值为1的时候将变量a取反并判断变量a的值是否为0,等于0时指示灯灭并延时,否则指示灯闪烁并延时。判断按键值是否为2,如果是则将变量b取反并判断变量b的值是否为0,等于0时则指示灯2灭并延时,否则指示灯2闪烁并延时,最后将按键值清零,函数循环执行。五、实验结果与分析基础实验1中实验板上led1,led2自动闪烁,实现指示灯自动闪烁要求。基础实验2中按下k1时,led1亮,再次按下k1,led灭;按下k2时,led2亮,led2灭,实现按键控灯亮灭实验要求。设计性实验中按下k1时,led1闪烁,再次按下k1,led1熄灭;按下k2时,led2闪烁,再次按下k2,led2熄灭;如此重复循环,实现设计性实验要求。综上均符合实验要求,说明程序设计正确。六、实验思考题1.delay(uint)中参数uint的取值范围是什么?如果超范围程序能运行吗?为什么?答:uint的取值范围是065535。 能运行,因为取的数要先减去65535。2.基本实验2中“keyvalue=0”语句的作用是什么?如果删除对实验结果有什么影响答:相应按键值清零,默认为i/o口 删除后对程序没什么影响。3.本实验对cc2530的哪些寄存器进行了操作?都是必要的吗?答:p0和p1端口寄存器。 都是必要的。4.设计性实验中如何使led有多种不同的闪烁方式?答:改变闪烁频率,改变调用延时时间。七、存在问题和解决方法 1.按下k1 led1亮时,有时需要按几次才能使led1灭,通过检查,在按键扫描部分加入了消抖程序解决了问题,2.为什么使用p1_0变量名就能访问外设i/o编址有两种方式:独立编址与统一编址,无论是使用哪种编址,访问外设时都需要指出外设的地址。在头文件iocc2530.h中,对所有的寄存器都进行了定义。.训练三 系统主时钟源的选择实验一、实验内容通过本实验的学习,熟悉cc2530芯片内部系统时钟或主时钟的配置和使用方法。通过配置开发板上cc2530芯片的主时钟频率,从而改变指示灯闪烁的频率二、实验原理1.振荡器 设备中有两个高频振荡器:32mhz晶体振荡器;16mhz rc振荡器。两个低频振荡器:32khz晶体振荡器;32khz rc 振荡器。32khz晶体振荡器被设计为工作在32.768khz,并为要求精确时间的系统提供一个稳定的时钟信号。2.系统时钟 系统时钟由选定的系统时钟源32mhz晶体振荡器或者16mhz rc振荡器而来。clkconcmd.osc位选择系统时钟源。请注意,使用rf收发器,必须选择32mhz晶体振荡器且必须稳定。3.32khz晶振 设备里有2个32khz振荡器作为32khz时钟的时钟源:32khz晶体振荡器;32khz rc振荡器。 默认情况下,复位后,32khz rc振荡器启用且被选为32khz时钟源。可以随时设置寄存器clkconcmd.osc32k,但是在16mhz rc振荡器作为系统时钟源之前都不起作用。4.振荡器和时钟寄存器 在pmo功耗模式下,可配置32mhz晶体振荡器或者16mhz rc振荡器作为系统时钟,设置系统时钟需要操作两个寄存器:sleepcmd和clkconcmd.三、基本实验步骤按照实验一的实验步骤,连接实验设备,启动iar开发环境,创建一个新工程,将程序添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译,软硬件仿真,下载,观察实验现象。四、设计性实验程序流程与分析设计一个工程,下载到目标板上,要求按下k1时,led1闪烁频率加倍,再按下k1时,led1闪烁频率减半;按下k2时,led2闪烁频率加倍,再按下k2时,led2闪烁频率减半;如此重复循环。开始led初始化按键初始化设置控制变量x调用按键扫描函数,按键扫描值为按键扫描函数返回值按键值?=1x(取反)x?=0设置系统时钟为16mhz指示灯1闪烁 延时设置系统时钟为32mhz指示灯1闪烁 延时按键值?=2指示灯2闪烁nnyyn流程图分析:程序开始后先进行初始化,初始化模块包括led和按键初始化。然后设置控制变量x并调用按键扫描函数,按键扫描值为按键扫描返回值。判断按键值是否为1,等于1的时候将变量x取反并判断其值是否为0,等于0的时候设置系统时钟为16mhz,此时指示灯1闪烁并延时,否则设置系统时钟为32mhz,此时指示灯1闪烁延时并返回按键扫描函数。当按键值为2时,此时指示灯2闪烁,否则返回按键扫描函数。五、实验结果与分析基础实验中开发板上指示灯闪烁频率不一样,实现指示灯自动更新闪烁频率要求。设计性实验中按下k1时,led1闪烁频率加倍,再按下k1时,led1闪烁频率减半;按下k2时,led2闪烁频率加倍,再按下k2时,led2闪烁频率减半;如此重复循环。实现设计性实验要求。综上均符合实验要求,说明程序设计正确。六、实验思考题1.为什么指示灯闪烁的频率不一样?答:因为所选的振荡源不一样,使用不同的时钟源,执行指令周期不一样,延时时间不一样,所以指示灯的闪烁频率也不一样。2.不同系统时钟是如何转换的?切换过程中需要注意什么?答:默认情况下,复位后,32khz rc振荡器启用且被选为32khz时钟源。可以随时设置寄存器位clkconcmd.osc32k,但是在16mhz rc 振荡器作为系统时钟源之前都不起作用。当系统时钟从原来的16mhz rc振荡器变为32mhz晶体振荡器,如果选择了32khz rc振荡器,就开始校准32khz rc振荡器。校准期间,使用分频的32mhz晶体振荡器。校准的结果是32khz rc振荡器运行在32.753khz。32khz rc振荡器校准最多可能需要2ms完成。注意:转换到32khz晶体振荡器之后,当从pm3醒来且32khz晶体振荡器使能时,振荡器需要长达500ms来稳定在正确的频率。在32khz晶体振荡器稳定之前,睡眠定时器,看门狗定时器和时钟丢失探测器都不能使用。3.本实验对cc2530的哪些寄存器进行了操作?都是必要的吗?可以设置比32m更高的频率吗?答:功耗模式寄存器 时钟控制命令寄存器 时钟控制状态寄存器。都是必要的。不可以4.设计性实验中如何使led有多种不同的频率闪烁方式?答:选择不同的振荡源七、存在问题和解决方法 1.程序运行后led1闪烁的快一点,led2闪烁的慢一点,因为选择了不同的时钟源,分别是32mhz晶体振荡器和16mhz rc振荡器,所以闪烁的频率不一样。 2.设计性实验中看不出按键时led闪烁的频率是否加倍和减半,可能是延时函数部分出现了问题,延时时间太短肉眼看不出变化。.训练四 spi通信与lcd显示实验一、 实验内容通过本实验的学习,熟悉cc2530芯片spi接口的配置和使用方法。 1.在cc2530从节点开发板上采用gpio口软件模拟spi接口的方式驱动 dm12864m,显示汉字、字母、数字等;2.在cc2530主节点开发板上采用硬件 spi 接口的方式驱动 ocm12864,显示汉字、字母、数字等。二、实验原理1.spi 模式 在spi模式中,usart通过3线接口或者4线接口与外部系统通信。接口包含引脚 mosi、miso、sck和ss_n。2.ssn 从选择引脚 在spi操作模式,usart 配置为spi从,使用4线接口,含有作为对 spi 的输入的从选(ssn)引脚。在ssn的下降沿,spi从有效,输入引脚 mosi 接收数据,输出引脚 miso 输出数据。在 ssn 的上升沿,spi 从无效且不能接收数据。3.波特率发生器 当运行在uart模式时,内部的波特率发生器设置uart波特率,当运行在spi模式时,内部的波特率发生器设置spi主时钟频率。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显示 文件 lcdcontrol.c 提供了硬件spi接口驱动 ocm12864-8 lcd 相应功能的原型函数。主节点开发板与ocm12864-8lcd串口spi 接口电路如下图。7. 图像取模 使用抓图工具抓取一幅图像,在图像处理软件中将其处理成像素为128*64 大小的图像,保存为.bmp文件格式。三、基本实验步骤1. 主节点显示不同的图形文字 按照实验一的实验步骤,连接实验设备,启动 iar 开发环境,创建一个新工程,将下列程序(给 出了 main 函数代码,其它代码参照前面的实验)添加到工程程序文件中,仔细分析程序功能,画出 程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 2. 从节点显示不同的文字界面 按照上述实验步骤,连接实验设备,启动 iar 开发环境,创建一个新工程,将下列程序(给出 了 main 函数代码,其它代码参照前面的实验)添加到工程程序文件中,仔细分析程序功能,画出程 序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 四、设计性实验程序流程与分析设计一个工程,下载到目标板上,lcd 初始界面显示班级、姓名、学号、专业。要求按下 k1 时,lcd 显示数据加 1;按下按键 sw2,lcd 显示数据减 1,规定初始值显示为 999。 开始led初始化按键初始化设置控制变量a,b设置初始变量data=999按键值?=1data+1取data十位显示取data最高位显示(千位)取data百位显示按键值?=2data-1nny初始化界面,显示班级 姓名 学号 专业显示初始值999调用按键扫描函数,按键值为按键扫描返回值取data十位显示取data最高位显示(千位)取data百位显示y取data个位显示取data个位显示na 取反指示灯2灭延时指示灯1闪延时b 取反指示灯1灭延时指示灯2闪延时按键值清零a ?=0b ?=0nyy流程图分析:程序开始运行后先首先执行初始化,初始化模块包括led和按键初始化。然后设置控制变量a,b,设置初始变量data=999,判断按键值是否为1,等于1的时候将data加1,取data最高位显示(千位),接下来依次是百位,十位,个位,将变量a取反并判断a是否等于0,等于0的时候,此时指示灯1灭并延时,否则指示灯1闪烁并延时。判断按键值是否为2,等于2的时候将data减1,取data最高位显示(千位),接下来依次是百位,十位,个位。将变量b取反并判断其值是否为0,等于0的时候,此时指示灯2灭并延时,否则指示灯2闪并延时,程序结束后将按键值清0并返回调用按键函数。五、实验结果与分析基础实验中开发板上显示江苏技术师范学院 09通信2 张兆芳 09811232 通信工程, 实现开发板上显示不同的图形文字要求。 设计性实验中lcd初始界面显示09通信2 张兆芳 09811232 通信工程。初始值显示为 999,按下 k1 时,lcd 显示数据加 1;按下按键 k2,lcd 显示数据减 1,实现设计性实验要求。 综上均符合实验要求,说明程序设计正确。 六、实验思考题1.基本实验程序中“/led1 = off;”语句将双斜杠去掉有何影响?问什么?答:去掉之前,灯一直亮着,再按就闪;去掉之后,按一下闪再按一下灭。2.基本实验中去除“if(glintflag0 = 0)”语句,结果怎样?答:没有去除时,led1闪烁,led2闪烁,led1和led2同时闪烁。去除后,前两者不影响,但led1和led2同时闪烁速度变慢。3.使用 dm12864m 混合显示汉字、英文字母或数字时需要注意哪些问题?答:汉字要是双字节,而且位置要对好。4. 如何在 ocm12864-8 上指定区域显示汉字?答:通过取模。七、存在问题和解决方法1.lcd刚开始的时候不显示,但是通过检测led的亮灭可以知道,程序已经执行,可以看出,lcd的显示程序存在一些问题,通过检查,发现是led显示部分有所缺漏,修改后lcd正常显示。2.在液晶屏上不能同时显示字符和字,并且会出现乱码,因为将其lcd的影子内存拆分开来了,解决的办法是当显示字符的时候,判断显示的是奇数个还是偶数个,如果是奇数个,则影子内存自动后移一位再显示相应的内容。.训练五 adc实验一、实验内容通过本实验的学习,熟悉 cc2530 芯片 adc 模拟数字转换的配置和使用方法。1.在cc2530节点开发板上,使用adc进行片内温度单次采样,将采集的电压值转换为温度值并显示在lcd上;2.在cc2530节点开发板上,使用adc进行电源电压单次采样,将采集的电压值显示在 lcd上。二、实验原理1. adc 概况 adc 的主要特征如下:adc转换位数可选,8 到14位;8个独立的输入通道,单端或差分输入; 参考电压可选为内部、外部单端、外部差分或 avdd5;中断请求产生;转换结束时 dma 触发;温度传感器输入;电池电压检测。 2. adc 输入 p0端口引脚上的信号可以用作adc输入。在后面的描述中这些端口引脚将被称为 ain0ain7 引脚。输入引脚ain0ain7连接到adc。 3. adc 转换序列 adc可以执行序列转换,并且将结果移动到存储器(通过 dma),而不需要任何 cpu 干预。 adccon2.sch寄存器位用于定义来自于adc输入的adc转换序列。4. adc 单次转换 除了上述转换序列,adc可以通过编程从任何通道执行单次转换。通过写寄存器adccon3 来触发一个单次转换。除非一个转换序列正在进行中,否则立即开始转换,在这种情况下,正在进行的序列转换一完成就开始执行单次转换。 5. adc 运行模式 adc具有三个控制寄存器:adccon1、adccon2和adccon3。这些寄存器用于配置 adc 和报告状态。 adccon3寄存器控制单次转换的通道号码,基准电压和抽取率。6. adc 转换结果 数字转换结果以2的补码形式表示。对于单端配置,结果总是为正。这是因为这个结果是 gnd 和输入信号的差值,这个输入信号总是为有符号的正(vconv=vinpvinn,其中 vinn=0v)。当输入信 号等于选择的电压基准vref时,达到最大值。7. adc 基准电压 模数转换的正基准电压是可选的,可以是一个内部产生的电压、avdd5 引脚上的电压、应用 在 ain7 输入引脚的外部电压,或应用在 ain6ain7 输入上的差分电压。 8. adc 转换时间 adc 只能运行在 32mhz 晶体振荡器,用户不能使用划分的系统时钟。4mhz的实际adc采样频率是通过固定的内部分频器产生的。执行一个转换所需的时间取决于选择的抽取率。在一般情况下,转换时间由下式给定: tconv=(抽取率+16)025s。9. adc 中断 当通过写 adccon3 而触发的一个单次转换完成时,adc 将产生一个中断。而当完成一个序 列转换时不会产生中断。 10. adc dma 触发 每完成一个序列转换,adc 都将产生一个 dma 触发。当完成一个单个转换时,不产生 dma 触发。对于 adccon2.sch 中头 8 位可能的设置所定义的 8 个通道 ain0ain7,每一个通道都有一 个 dma 触发。当通道转换里一个新的采样准备好时,dma 触发有效。另外还有一个dma触发adc_chall,当adc转换序列的任何一个通道的新数据准备好时,adc_chall 有效。11. adc 寄存器 三、基本实验步骤1. 主节点采集片内温度 按照实验一的实验步骤,连接实验设备,启动 iar 开发环境,创建一个新工程,将下列程序(给 出了 main 函数代码,其它代码参照实验三)添加到工程程序文件中,仔细分析程序功能,画出程序 流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 2. 从节点采集片内温度 按照实验一的实验步骤,连接实验设备,启动 iar 开发环境,创建一个新工程,将下列程序(给 出了 main 函数代码,其它代码参照实验三)添加到工程程序文件中,仔细分析程序功能,画出程序 流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 四、设计性实验程序流程与分析设计一个工程,下载到目标板上。将 a/d 的源设为 1/3 电源电压,并 lcd 显示 1/3 电源电压、电源电压。开始系统时钟初始化led初始化,数模端口初始化串口初始化配置adc(参考电压1.15v,12位分辨率)启动adc转换i=0i64转换完成?计算平均温度值i+取1/3电压平均值显示取1/3电压平均值*3显示将温度值通过串口送到pcnn 流程图分析:程序开始首先执行初始化,包括系统初始化,led初始化,数模端口初始化和串口初始化。然后定义i=0,,判断i是否小于64,如果是则配置adc(参考电压1.15v,12位分辨率),然后启动adc转换,如果转换完成,则计算平均温度值,i+循环计算,取1/3电压显示,取1/3电压乘以3显示,最后将温度通过串口0传送到pc上。五、实验结果与分析基础实验中开发板上显示内部温度22.5摄氏度,实现开发板采集片内温度要求。设计性实验中开发板上显示:内部温度:22.5摄氏度 1/3 电压:1.150v 电源电压:3.449v 实现设计性实验要求综上均符合实验要求,所以程序设计运行正确。六、实验思考题1.如果采用电压采集识别按键,则如何实现?答:需要构造按键采集电路。2.如何将片内温度传感器 a/d 转换的结果转换成温度?答:cc2530内部基准电压1.15v。25摄氏度时,12bit采集结果为1480,温度系数4.5/摄氏度, 通过计算得到,若有温度a/d值x,则温度t=(x-(1480-4.5*25)/4.5。3.如何实现显示采集数据?答:将数据转化为一位一位ascii码。4.如何选取参考电压?答:有寄存器专门配置,结合外部输入电压的高低。(注意:不能超过参考电压)5.差分输入是什么意思?能否作为比较器使用?答:将两路信号求差作为ad信号的输入。能作为比较器使用。6.如果 cc2530 需要采集一个模拟传感器的数据,实现过程中需要注意哪些问题?答:要注意电压范围不能超过参考电压。七、存在问题和解决方法1.在lcd显示的时候,lcd有时候会突然的黑屏,时好时坏,我估计是数据线的问题,换了新的数据线后就好了。2.当液晶能显示的时候,显示的却是乱码,检查发现是lcd显示模块中数值和单位并不能统一调用vlcdtextwrite()函数显示,将其改成通过影子内存的写法显示,经过几次修改,液晶能够正常显示。.训练六 uart串行通信实验一、实验内容通过本实验的学习,熟悉 cc2530 芯片硬件 usart0 串行总线接口 uart 模式的配置和使用方法1. 在 cc2530 节点开发板上,uart 串口发送数据; 2. 在 cc2530 节点开发板上,uart 串口接收 pc 数据控制 led等设备对象。 3. 在 cc2530 节点开发板上,uart 串口接收 pc 数据并回传。二、实验原理1. uart 模式 uart模式提供异步串行接口.在uart模式中,接口使用2线或者含有 rxd、txd、可选的rts和cts的4线。uart模式提供全双工异步传送,接收器中的位同步不影响发送功能。2. uart 发送 当usart收/发数据缓冲器uxdbuf写入数据时,uart发送启动。该字节发送到输出引脚txdx。寄存器uxdbuf是双缓冲器。当字节传送开始时,uxcsr.active位设置为1,而当字节传送结束时,uxcsr.active位清0.3. uart 接收 当1写入uxcsr.re位时,在uart上数据接收就开始了,然后uart会在输入引脚rxdx中寻找有效起始位,并且设置uxcsr.active位为1。当检测出有效起始位时,收到的字节就传入接收寄存器。uxcsr.rx_byte 位设置为1。该操作完成时,产生接收中断。同时,uxcsr.active位为0。4. uart 硬件流控制 当uxucr.flow设置为1,硬件流控制使能。然后,当接收寄存器空而且接收使能时,rts输出变低。在cts输入变低之前,不会发生字节传送。5. uart 字符格式 如果寄存器uxucr 中的bit9和parity位设置为1,那么奇偶校验产生而且检测使能。6. uart 相关寄存器 对于每个 usart,有5个寄存器(x是usart的编号,为0或者1)uxcsr:usartx 控制和状态; uxucr:usartx uart控制;uxgcr:usartx 通用控制;uxdbuf:usartx收/发数据缓冲器;uxbaud:usartx 波特率控制。设置uart接口需要操作6个寄存器:percfg(外部设备控制寄存器),uxcsr(控制和状态寄存器),uxgcr(通用控制寄存器),uxdbuf(收/发数据缓冲器),uxucr(uart控制寄存器)。7. uart 硬件接口 本实验使用cc2530的usart0串行总线接口异步uart模式。根据外部设备i/o接脚映射表可以得到与cc2530引脚连接如表3-6-2所示.表3-6-2 cc2530 uart0接口 cc2530引脚 urat功能 p0.2 rxd p0.3 txd p0.4 cts p0.5 rts三、基本实验步骤1. 异步串口0发送数据 按照实验一的实验步骤,连接实验设备,启动iar 开发环境创建一个新工程,将下列程序(给出了主节点部分主要函数及 main 函数代码,其它代码及从节点代码参照前述实验)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真,下载,观察实验现象。2.异步串口0接收数据 按照实验一的实验步骤,连接实验设备,启动iar 开发环境创建一个新工程,将下列程序(给出了主节点部分主要函数及 main 函数代码,其它代码及从节点代码参照前述实验)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真,下载,观察实验现象。四、设计性实验程序流程与分析设计一个工程,下载到目标板上。cc2530 芯片接收 pc 机发送的数据,lcd 显示并回传给 pc。开始设置系统时钟频率为32mhzled初始化,i/o初始化串口0初始化接收数据将收到的数据发出清除接收到的数据接收字节数0按键值?=2当前状态是否为“开始”状态进入“运行”状态,开始计时lcd显示时钟数据更新,发送时钟数据给pc当前状态是否为“运行”状态进入“停止”状态,停止计时当前状态是否为“停止”状态进入“开始”状态,时钟数据清0lcd显示时钟数据更新,发送时钟数据给pclcd显示时钟数据更新,发送时钟数据给pc开关中断nnn显示界面00:00:00,初始化定时器1,开关中断n流程图分析:程序先执行初始化部分,包括led,按键,lcd和串口0初始化,设置系统时钟频率为32mhz,显示界面00:00:00,初始化定时器1,开关中断,调用按键扫描函数按键值为按键扫描函数返回值,判断按键值是否大于0,如果是再判断按键值是否为2,如果是则进入“运行“状态并开始计时,此时lcd显示时钟数据更新 ;如果当前状态为“运行”状态,则进入“停止”状态,lcd屏显示时钟数据更新,发送时钟数据给pc,如果当前状态是“停止”状态,则进入“开始”状态,时钟数据清0, lcd屏显示时钟数据更新,发送时钟数据给pc,否则开关中断。五、实验结果与分析基础实验1中每隔一段时间,开发板上的led自动闪烁,实现实验要求。基础实验2中按k2启动秒表,液晶屏上显示00:00:00,然后开始计时,再按一下k2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论