1、Abstract摘 要当今社会,科技是第一生产力,而无线传输作为现代一种重要的通信方式,为人们的生产生活提供了很多便利。粮仓由于空间大,温度变化敏感,人无法实时地进入采集数据,需要将温度等数据进行无线传输。粮仓温度采集系统分为温度采集装置和接收机两个部分,其中接收机由无线射频NRF24E1芯片,74LS139 2-4译码器和数码管所组成,本文将重点描述接收机对温度信号的无线接收,数据处理和数据显示的原理和应用。关键字:无线射频; NRF24E1; 25AA320; 74LS139; LED数码管显示。ABSTRACTNowadays, science and technology are th
2、e primary productive forces, and the wireless transmission, as an important means of communication, provides people much convenience both in the working fields and in their daily life.people can not have real-time access to the data collection in the Granary, which has a large space and is very sens
3、itive to the changes in temperature, so we need to use wireless transmission to transmit the data of temperature. The Granary temperature collection system is composed of a temperature acquisition device and a radio frequency receiver, which is made of the radio frequency NRF24E1 chip, 74LS139 2-4 d
4、ecoder and LED digital control. This paper will focus on the radio frequency receiver of the receiving, processing and displaying the data of temperature.Key Words: Radio Frequency, NRF24E1, 25AA320, 74ls139, Digital display.47目 录目 录第1章引言11.1 选题背景11.2 研究目标和意义11.3 研究思路1第2章无线通信基本原理22.1 无线通信概述22.2 无线通信
5、系统定义22.3 电磁波传输机制3第3章系统硬件设计43.1 系统工作原理和流程43.2 NRF24E1的特性43.2.1 NRF24E1的总体介绍43.2.2 NRF24E1各模块特性53.2.3 NRF24E1的引脚及功能73.3 74LS139的特性83.3.1 译码器功能及原理83.3.2 双2-4译码器74LS139功能介绍93.4 EEPROM 25320的功能及特性113.5 七段数码管扫描原理12第4章系统软件设计144.1 系统软件流程144.2 NRF24E1收发系统工作方式及配置144.3 NRF24E1芯片时序164.4 各模块程序设计218第5章系统调试和结果分析22
6、5.1 系统调试步骤225.2 调试中出现的问题255.3 最终测试结果与实物照片27结束语30参考文献31致谢32附录33附录一:NRF24E1特殊功能寄存器分布图33附录二:NRF24E1配置字表示34附录三:系统硬件设计35附录四:系统软件设计37外文资料原文42翻译文稿46 第1章 引言第1章 引言1.1 选题背景在现今我们的科技生产和学习生活中,无线传输正开始发挥着越来越重要的作用,市场上也出现了许多以短距离无线传输为卖点的的电子产品,例如蓝牙芯片以及各类射频芯片。本课题主要研究在粮仓中的无限温度采集、传输、数据处理和显示。该系统可以对粮仓的温度进行实时监控,以确保粮食的质量。1.2
7、 研究目标和意义粮仓内的温度变化十分敏感,但由于它空间很大,人无法经常地出入,这使得温度采集变得困难,也就无法实时地监控粮食的质量。本课题所研究的目标就是精确的无线温度采集和传输,并将所采集的温度在粮仓外的LED数码管上显示出来。1.3 研究思路NRF24E1芯片能够进行无线射频信号接收与发送,具有许多优点,它集成了增强型8051,指令周期从标准的1248个时钟周期缩短到420个时钟周期,XRAM数据存取采用双指针,从而提高了CPU 的处理和运算速度。芯片工作频率为2.4GHZ,发射的波长较短,因此天线尺寸很小,可以实现天线内置,成本低。该芯片体积小,外围器件少,非常易于设计,且有着非常合理的
8、通信协议,有利于软件的编写和控制。本系统采用通用的2.4GHz ISM频段,由于系统的输出功率仅为1mW,并且对外辐射较小,因此无需申请频率许可证。本课题的研究思路是:在节点机进行温度采集后,通过NRF24E1芯片将信号无线传输到主机,主机接收温度信号后进行数据处理,并最终将温度数据在LED数码管上显示出来。第2章 无线通信基本原理第2章 无线通信基本原理2.1 无线通信概述当今世界正处于电信革命时期,人们都在热切地盼望使用新的无线通信方法和途径。在过去的十年里,无线移动通信在数字和射频电路制造技术方面取得了很大的进步,而新的大规模集成电路也令各种无线通信设备变得更小、更便宜、更可靠。另外,数
9、字交换技术也推动了无线通信网络的大规模发展。2.2 无线通信系统定义(1)数据源数据源可能是各种各样的东西,可能是一个温度传感器的A/D数据值,计算机硬盘里的一个文件,用户输入键盘里的一个按键等。数据在这里发生错误的可能性较小,而且可以轻易通过硬件或软件的方式实现。(2)无线通信信道3无线通信信道是数据从发射到接收的一个通道,它包括产生出数据流、编码、发射、接收、解码、理解。信道有广义和狭义之分。无线信道包括地波传播,短波电离层反射,超短波或微波视距中继,人造卫星中继,散射及移动无线电信道等。无线通信效果的好坏在很大程度上将取决于无线信道的特性。(3)传播路径 传播路径是无线电波从发射到接收的
10、路径。数据错误有可能在这个阶段发生,因为频带内的干扰或传播路径中RF源降低了灵敏度,而且多径和衰减也有可能引起接收机接收错误的数据。(4)数据编码与解码由于信道的不稳定性,在发射机采用数据源编码可以提高信噪比,使得传输信号的误码率更低,并提高传输速率。相应的,在接收机接收数据时应对数据包进行解码,在数据编码与解码的过程中基本不会发生错误。(5)数据传输的协议 所谓的协议就是指一些规则。通信时,数据可能在发射端和接收端之间受到外界的干扰而发生错误,因此需要协议来保证接收端能正确接收到从发射端传来的数据,并确定所接收的数据是否为实际数据。2.3 电磁波传输机制电磁波传播的机制是多种多样的,但总体上
11、可归结为三种:发射,绕射和散射。(1)反射当电磁波遇到比自身波长大的多的物体时会发生反射,反射发生于地球表面,建筑物和墙壁表面等。电磁波在不同性质的介质交界处,会有一部分发生反射,一部分通过。如果平面波入射到理想电介质的表面,则一部分能量进入第二个介质中,一部分能量反射回第一介质,没有能量损耗。如果第二介质为理想反射体,则所有的入射能量被反射回第一介质,无能量损耗。反射波和传输波的电场强度取决于费涅尔(Fresnel)反射系数。反射系数为材料的函数,并于极性、入射角和频率有关。(2)绕射当接收机和发射机之间的无线路径被尖利的边缘阻挡时发生绕射。由阻挡表面产生的二次波散布于空间,甚至于阻挡体的背
12、面。当发射机和接收机之间不存在视距路径,围绕阻挡体也产生波的弯曲。在高频波段,绕射与反射一样,依赖于物体的形状,以及绕射点入射波的振幅、相位和极化情况。(3)散射当波穿行的介质中存在小于波长的物体并且单位体积内阻挡体的个数非常巨大时,发生散射。散射波产生于粗糙表面,小物体或其他不规则物体。在实际的通信系统中,树叶、街道标志和灯柱等会引发散射。第3章系统硬件设计第3章 系统硬件设计3.1 系统工作原理和流程本系统主要由无线模块nRF24E1、具有SPI接口的存储器EEPROM、LED数码管和74ls139译码器组成。在数据采集系统中,nRF24E1无线模块上电后读取SPI存储器中的程序,通过nR
13、F24E1芯片中的无线收发模块实现对节点机所发射温度信号的无线接收,然后对接收数据进行处理,将处理结果在数码管上显示,以适应动态变化要求。本系统接收机的模式图如下:NRF24E174LS139四位数码管25320位段图3-1 无线温度采集系统模式3.2 NRF24E1的特性3.2.1 NRF24E1的总体介绍NRF24E1主要由一个2.4 GHz无线电收发器NRF2401,一个嵌入式8051兼容的微控制器和一个9路100Kslps/s的10bit模数转换器组成。芯片的内部还集成了UART异步串口、SPI接口、PWM输出、RC振荡器、看门狗和唤醒定时器。芯片电路可以在范围为1.9V到3.6 V的
14、电压下工作 。它可工作于2.4GHz的国际通用ISM频段而无需申请无线应用许可证,从而大大方便了开发者和用户。由于此芯片体积小、功耗低,所以非常适用于对体积和功耗要求较高的应用场合。NRF24E1可广泛应用于计算机外设、无线耳机、玩具、游戏手柄、汽车电子、医疗器械、遥控和工业传感器等方面。NRF24E1的模块及外围设备框图如下图所示:图3-2 NRF24E1模块及外围设备原理图NRF24E1芯片的最高工作速率为1Mbps,由于它采用高效GFSK调制,抗干扰能力强,满足多点通信和跳频通信的需要,所以特别适合应用在工业控制场合。 内置硬件CRC 检错和点对多点通信地址控制。芯片内置有2.4GHZ天
15、线,体积约为34mm X 17mm。可以在1.9 - 3.6V的电压下工作,功耗低。NRF24E1芯片模块支持软件设置地址,只有收到本机地址时才会提供中断提示,软件编程方便,课兼容各种单片机。芯片内置稳压电路,使用各种电源包括DC/DC开关电源均有很好的通信效果。3.2.2 NRF24E1各模块特性(1)微控制器NRF24E1微控制器指令系统与工业标准的8051微控制器是兼容的。但它的指令周期和工业标准8051的指令周期梢有不同。标准8051的指令周期是12-48个时钟周期,而NRF24E1一般的指令周期是4-20个时钟周期。芯片中断控制器扩展了5个中断源,分别是ADC、SPI、RF接收器1、
16、 R接收器2和唤醒定时器,也有和8052兼容的3个定时/计数中断,在51核内增加了一些扩展,可以由定时器1或定时器2产生波特率的异步通信UART,而且是和8051兼容的。它的CPU对8051进行了扩展,具有两个数据指针,可以使XRAM数据域进行更加快捷的数据搬移。由晶体震荡器提供微控制器的时钟源。(2)存储配置微控制器具有一个256字节的数据存储器RAM(8052兼容,上半部分可以寄存器间接寻址)和一个512字节的程序存储器ROM。在ROM中具有一个上电复位或由用户在运行后软件复位后会自动加载的系统引导程序,它可以将存储在外部串行EEPROM中的用户程序加载到4K字节的RAM中。该4K字节的R
17、AM也可能(部分地)用于存储数据。(3)引导程序存储器EEPROM/FLASH如果程序存储器ROM未被选用,设备的程序代码必须由外部的非易失性存储器加载进来。默认的引导设备推荐使用具有SPI接口的“25320”EEPROM,在很多厂家都可以买到,而且它的电压供应可低至1.8V。它的SPI接口和8051P1.2/DIN0(E2PROM SDO),P1.0/DIO0 (EEPROM SCK),P1.1/DIO1 (EEPROM SDI),P0.0/DIO2 (EEPROM CSN)相连。当引导程序将存储器中的程序代码加载入MCU后,管脚P1.2/DIN0(E2PROM SDO),P1.0/DIO0
18、(EEP ROM SCK)和P1.1/DIO1 (EEPROM SDI)将作为SPI接口或通用I/O口来使用。(4)SPI接口SPI缓冲器起着一个重要的作用。它的三根总线(SDI,SCK,SDO)是多元复用的,可以作为通用的I/O口(P1.2/DIN0,P1.0/DIO0,P1.1/DIO1)和射频无线收发机。SPI硬件不产生任何片选信号,程序员通常使用通用I/O口的P0口作为一个或多个外部SPI设备片选信号。当SPI连接射频无线收发机时,内部通用I/O会产生片选信号。(5)管脚逻辑NRF24E1具有一个通用输入引脚和十个输入输出双向引脚,为P0(DIO2DIO9)和P1(DIO0、DIO1、
19、DIN0),默认配置为GPIO(通用输入输出端口)。大部分的GPIO引脚可用于程序复用。这些复用功能包括两个外部中断、UART RXD和TXD脚发送、SPI端口、三个定时器和PWM输出。(6)电源管理在程序的控制下,NRF24E1可以被设置为低耗能的掉电模式,也可以控制模数转换ADC和射频无线收发子系统的开或关,此时,CPU停止工作,但所有的RAM和寄存器仍在工作。低耗能的晶体震荡器,看门狗和RTC唤醒定时器(如果已经被软件使能)也在工作。在这种模式下工作时,电流消耗只有2uA。此时,可通过外部中断0,外部中断1或唤醒定时中断恢复正常运行模式。(7)RTC唤醒定时器,看门狗和RC震荡器NRF2
20、4E1有一个不能关闭的低耗能RC震荡器,它将一直运行直到VDD1.8V。RTC唤醒定时器和看门狗都是16位的可编程定时器。由RC震荡器提供它们时钟。RTC唤醒定时器和看门狗可由软件定时,大约30080ms,默认值是10ms。RTC唤醒定时器可由软件来控制开启或关闭。看门狗在系统复位后才能被关闭,一旦被开启就无法关闭,除非再一次复位。(8)无线收发机NRF24E1的无线收发电路部分和NRF2401的该部分具有一样的功能,它通过内部的并行端口或内部的SPI接口工作。对于每一个双向收发机,通过软件设计它的数据准备信号,并将之作为中断去通知微控制器的CPU或通过一个通用I/O端口。3.2.3 NRF2
21、4E1的引脚及功能NRF24E1芯片共有36个引脚,其中有11个数字I/O口、9个模拟输入引脚、2个天线接口引脚ANT1和ANT2以及两个晶振引脚XC1与XC2,另外还有其它引脚12个。它的引脚如下图所示:图3-3 NRF24E1引脚图P0口各个引脚的复用功能如表3-1所示。表3-1 NRF24E1芯片P0口引脚功能引脚P0.7(DI09)P0.6P0.5P0.4复用功能PWMT1T0INT1引脚P0.3P0.2P0.1P0.0(DI02)复用功能INT0TXDRXDGPI0P1口有3个引脚,可设为SPI接口或GPIO,当NRF24E1使用SPI时,只能作为SPI主机。3.3 74LS139的
22、特性3.3.1 译码器功能及原理译码器是多输入,多输出的电路,它将输入编码转换为输出编码,而输入编码和输出编码是不同的。输入编码比输出编码的位数少,从输入码字到输出码字之间有一对一的映射关系。在一对一映射(one-to-one mapping)中,每个输入码字产生一个不同的输出码字。译码器电路的一般结构如图所示:输入编码子译码器输入编码字使能输入图3-4 译码器电路结构译码器的使能输入(如果有的话)必须有效,才能允许译码器实现正常的映射功能;否则,译码器将所有的输入码字都映射为单一的“被禁止”的输出码字。最常用的输入编码是n位二进制编码,一个n位码字代表个不同的编码值之一,通常位0到-1的整数
23、。有时n位二进制编码被截去某些组合,这样它表示的值就少于。最常用的输出编码是m中取1码(包含m位),任意时刻只能有1位有效。所以在高电平有效的4中取1输出编码中,码字分别为0001,0010,0100,1000;若输出位低电平有效,则码字分别为1110,1101,1011,0111。2-4二进制译码器的真值表如下所示:表3-2 二进制译码器真值表输入输出ENl1l0Y3Y2Y1Y00XX000010000011010010110010011110003.3.2 双2-4译码器74LS139功能介绍在单个MSI部件74LS139中集成了2个一样但彼此独立的2-4译码器。它的输出和使能输入是低电平
24、有效。因为TTL反相门通常比非反相门快,所以多数MSI译码器最初设计成低电平有效的输出。74LS139的逻辑符号如图3-5所示,注意在符号框内所有信号名都是高电平有效(没有“_L”),反相圈表示低电平有效的输入和输出。就139的一半(即一个译码器)而言,在原理图中常常用类属符号,如图3-6所示,此情况下,类属功能是赋予139的这一半还是另一半,可以推迟到原理图完成后再进行。74LS1391G1Y01A1B1Y11Y22Y02Y11Y32Y22Y32G2A2B图3-5 传统逻辑符号1/2 74LS139 Y0G Y1 Y2 A Y3 B 图3-6 单个译码器的逻辑符号表3-3 1/2 74LS1
25、39双译码器的真值表输入输出G_LBAY3Y2Y1Y01XX11110001110001110101010110110111表3-3为74LS139类型译码器的真值表。真值表用L和H表示输入和输出信号的电压级,因此就不会混淆器件的电气功能。真值表根据器件的外部引脚给出逻辑功能。符号框内部实现的功能的真值表类似表3-2,只是输入信号名改为G,B,A。3.4 EEPROM 25320的功能及特性由于NRF24E1内部的ROM空间较小,程序代码必须由外部非易失性存储器加载到设备。在缺省情况下,系统Bootloader期望使用带有SPI接口的通用“25320” E2PROM。多家厂商都生产这种存储器,
26、它的下限电压可低至1.8V。它的SPI接口和8051的P1.2/DIN0(E2PROM SDO),P1.0/DIO0 (EEPROM SCK), P1.1/DIO1(EEPROMSDI) 和 P0.0/DIO2 (EEPROM CSN)相连。当引导程序把存储器中的程序代码加载入MCU后,管脚P1.2/DIN0(E2PROM SDO),P1.0/DIO0 (EEPROM SCK), P1.1/DIO1 (EEPROM SDI)将作为SPI接口或通用I/O口来使用。25320是具有SPI总线接口的EEPROM,容量大小为4K,其管脚图如图所示,其中CS为片选信号,SO为串行数据输出,SI为串行数据
27、输入,WP为写保护,VSS为接地,VCC为电源,HOLD为保持信号,SCK为时钟信号。图3-7 EEPROM 25320管脚图EEPROM 25320的输入输出时序图如下图所示:图3-8 串口输入时序图图3-9 串口输入时序图3.5 七段数码管扫描原理在本射频无线通信接收系统中,用七段发光二极管(LED)数码管来做为显示器。数码管实际上有八个发光二极管:除了显示数码的七段之外还有一个小数点(DP),连接方式有共阳极和共阴极两种。共阳极的有效输入应该为低电平,共阴极的有效输入电平应该为高电平。通常一组显示器总是包括若干个数码管,这些数码管的各相应电极都互相并联在一起,然后接到并行接口芯片的引脚上
28、。为了防止各个数码管同时显示同一个数字,还要加另一组信号。以共阴极显示器为例,可以让数码管的共阴极不固定接地,而是接到并行接口的某一位上,当这一行输出为高电平时,共阴极数码管不显示,只有当这一位输出为低电平时,数码管才能显示数码。这样,对于一组LED显示器需要两组信号:一组用来选择第几位数码管来工作,为位码。对于共阳极结构应该为高电平有效,共阴极结构时低电平有效。另一组信号用来控制显示的字形,此为段码。在这两组信号的控制下,各个LED数码管可以轮流点燃显示各自的数码。在多数的应用场合中,我们并不希望使用多I/O端口的单片机,原则上是使用尽量少引脚的器件。而在本系统的NRF24E1芯片中,只有1
29、1个I/O口可以用,所以若要想实现4位的位码与八个段码,可以选择使用一个2-4译码器,本系统中选择74LS139,于是最终需要的端口为10个,达到了节省端口实现数码管显示的目的。这样在任一时刻,只有一位LED是点亮的,但只要扫描的频率足够高(一般大于25Hz),由于人眼的视觉暂留特性,直观上感觉却是连续点亮的,这就是我们常说的动态扫描电路。若要固定地显示一组数码,则可以利用循环扫描又称为动态扫描即让一组数码显示过后,过一段时间再使之显示一遍,这样在任一时刻,只有一位LED是点亮的,扫描的频率足够高(一般大于25Hz),两次显示的时间间隔非常的短,如此不断地重复。由于人的视觉的视觉暂留性,尽管实
30、际上各位数码不是连续显示的,但给人的视觉印象却是连续地在显示。LED数码管以及74LS139的连接电路如下图所示:图3-10 LED数码管及74LS139的连接电路图第4章 系统软件设计第4章 系统软件设计4.1 系统软件流程系统初始化显示初始化数据处理系统主循环体数据显示接收数据信号等待图4-1接收系统软件流程图4.2 NRF24E1收发系统工作方式及配置NRF24E1的收发系统工作方式有四种,分别为收发模式,配置模式,空闲模式和关机模式,由PWR_UP 、CE、TX_EN和CS三个引脚决定,它们的关系如下表所示:表4-1:NRF24E1芯片工作模式工作模式PWR _UPCECS收发模式11
31、0配置模式101空闲模式100关机模式0XX模式功能及配置:(1)收发模式收发模式分为ShockBurstTM收发模式和直接收发模式两种。芯片的配置工作是通过CS、CLK1和DATA三个引脚完成的,其中,配置为ShockBurstTM收发模式需要15字节的配置字,而如把其配置为直接收发模式只需要2字节的配置字。当芯片工作于ShockBurstTM收发模式时,易于进行系统的程序编制,且芯片工作的稳定性也会更高。当ShockBurstTM收发模式配置完成后,在芯片的工作过程中,只需改变其最低一个字节中的内容,便可以实现接收模式和发送模式之间切换。ShockBurstTM收发模式的配置字可分为数据宽
32、度、地址宽度、地址和CRC四个部分。其中,数据宽度负责声明射频数据包中数据所占用的位数,从而令芯片能够区分接收数据包中的数据和CRC校验码;地址宽度负责声明射频数据包中地址所占用的位数,从而令NRF24E1能够区分地址和数据;地址即为接收数据的地址,分为通道1和通道2的地址;CRC可以使NRF24E1能够生成CRC校验码和解码,当使用NRF24E1片内的CRC时,应确保在配置字中的CRC校验被使能,并且使用相同的协议进行发送和接收。(2)配置模式配置字的长度为18个字节,但由于最高3个字节留作保留测试用,所以通常只需配置15个字节就可以了。其中,位0为收发模式设置,设置为0时发送,设置为1时接
33、收;位1-7为RF_CH#发送/接收频率设置,频道1的频率可以设置在2400MHZ到2524MHZ之间,频道2的频率可以设置在2408MHZ到2524MHZ之间;位8-9为射频输出功率设置;位10-12为晶振频率设置;位13为射频数据传输速率设置,配置为0时传输速率为250Kbps,此时将会提高10dB的接收灵敏度,配置为1是传输速率为1Mbps,此时需要使用16MHZ的晶振;位14为通信模式设置,设置为0时为直接收发模式,设置为1时为shockburst模式;位15为使能第二接收频道设置,设置为0时为一个接收频道,设置为1时为两个接收频道,当是偶那个两个接收频道时,芯片连续地接收来自两个不同
34、频率的数据信号,接收频道1的频率在配置字的bit7:1中设定,而接收频道2的频率总是比频道1的频率高出8MHZ;位16为CRC使能设置,发送模式下产生CRC码,接收模式下校验CRC码。当配置为0时disable,当配置为 1时enable,8位长度的CRC校验码可以节省数据包长度来传送更长的有效数据,但同时也会降低发射系统的准确率;位17为CRC码长度配置,在CRC使能的情况下,设置为0时CRC码长为8位,设置为1时CRC码长为16位;位18-23为接收地址长度配置,接收地址长度超过40将被认为无效;位24-63为接收频道1的地址;位64-103为接收频道2的地址,接收地址的最大长度为40位即
35、5个字节,此处设定的地址不能超过地址长度中所设置的长度,否则将被认无效;位104-111和位112-119分别为第一接收频道和第二接收频道的数据宽度设置,因为一个shockburst RF数据包最多不能超过256位数据,所以最大的有效数据宽度可由下式计算得出:有效数据长度=256-地址长度-CRC码长度。当芯片处于配置模式时,通过CS、CLK1和DATA三个引脚,15字节的配置字被送到NRF24E1。(3)空闲模式 为了减小平均工作电流而而达到节能的目的,NRF24E1设计了空闲模式,在这个模式下,部分片内晶振仍在工作,此时的工作电流跟外部晶振的频率有关,这样的设计不但达到了节能的目的,还缩短
36、了芯片的启动时间。在空闲模式下,配置字的内容总保持在NRF24E1片内。(4)关机模式在关机模式时能够得到小于1uA的工作电流。与断电状态最大的区别是,在此模式下,配置字的内容也会被保持在NRF24E1片内。4.3 NRF24E1芯片时序配置字写时序和ShockBurst TX/RX时序图4-2 写配置字时需图图4-3 ShockBurst TX时序图图4-4 ShockBurst RX时序图4.4 各模块程序设计2(1)SPI读写函数unsigned char SpiReadWrite(unsigned char b) EXIF &= 0x20; / 清除SPI中断 SPI_DATA = b
37、; / 向SPI数据寄存器写一字节数据 while(EXIF & 0x20) = 0x00) / 等待数据传送完毕 ; return SPI_DATA;(2)接收配置字struct RFConfig unsigned char n; unsigned char buf15;typedef struct RFConfig RFConfig;const RFConfig rconf = 15, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xbb, 0x12, 0x34, 0x83, 0x6f, 0x05;(3)接收函数unsigne
38、d char ReceivePacket() unsigned char a; CE = 1; while(DR1 = 0) ; a = SpiReadWrite(0); CE = 0; return a;uchar Receiver(void) unsigned char b; CS = 1; Delay100us(0); for(b=0;b127) /负值处理(零下温度)tempdata1=(256-tempdata1);tempdata0=(256-tempdata0);flag=1;display4=tempdata0&0x0f; /小数部分处理display0=xiaoshutabd
39、isplay4;display4=(tempdata0&0xf0)4|(tempdata1&0x0f)4);/暂存整数部分数据display3=display4/100; /百位处理display2=display4%100/10; /十位处理display1=display4%100%10; /个位处理if(!display3)/以下为高位显示处理display3=0x0a;if(!display2)display2=0x0a;if(flag=1)display3=0x0b; /如果为负值百位显示负号(5)译码及数码管扫描/*扫描显示*/scan()uchar i=0; duan=dista
40、bdisplayi+;a=0; /2-4译码控制位驱b=1;delay(100);duan=distabdisplayi+;a=1;b=0;dian=0;delay(100);/*duan=distabdisplayi+;a=1;b=0;delay(100);duan=distabdisplayi+;a=1;b=1;delay(100);*/第5章 系统调试和结果分析第5章 系统调试和结果分析5.1 系统调试步骤(1)检查电路图及硬件电路连接情况首先应仔细观察电路图,看是否电路连接的错误。然后查看已制好的电路板,观察是否有导线连接和漏焊、虚焊、短路的错误,可用数字万用表对电路个元件和引脚进行测
41、量,测量时应保持耐心和谨慎。(2)对程序进行编译和链接利用Keil C软件建立工程,编辑源代码文件,并对其进行编译和链接,最后生成目标文件。步骤如下图所示。图5-1 编辑程序源代码图5-2 对源代码进行编译链接图5-3 设置闪存输出,并生成Hex文件(3)转换目标文件格式利用Nordic公司提供的专用格式转换工具EEPREP对所生成的Hex文件进行格式转换。由于EEPREP运行在DOS操作系统下,所以使用前要先设置环境变量。EEPREP的命令格式为:EEPREP IN.HEX OUT.HEX其中IN.HEX为Keil C生成的目标文件,OUT.HEX为格式转换后生成的目标文件,也就是最终要烧录
42、到25320里的文件。图5-4对用Keil 产生的HEX文件进行格式转换(4)程序烧录使用威龙编程器将程序下载到25320上,程序下载的照片如下图所示。图5-5 将转换格式后的HEX文件下载到25AA320里面。5.2 调试中出现的问题图5-6 设计实物图(1)无法打通信道现象:在第一次调试过程中,出现了主机接收不到信号的问题,无法打通无线信道。分析原因:检查硬件电路后发现电路连接正常,检查程序后发现是由于在CS和CE置高后未经足够的延时所致。解决办法:由芯片时序图可知,此延时要大于5us,该芯片的机器周期为微秒级。具体的时序图如图5-7和图5-8所示:图5-7 CS延时图5-8 CE延时如图所示:Tcs2data和Tce2data为CS和CE的延时。若延时不足便会导致系统无法进入配置模式和收发模式,进而
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922