课程设计(论文)基于单片机的数据采集与传输系统设计.doc

上传人:文库蛋蛋多 文档编号:4142295 上传时间:2023-04-07 格式:DOC 页数:31 大小:499.50KB
返回 下载 相关 举报
课程设计(论文)基于单片机的数据采集与传输系统设计.doc_第1页
第1页 / 共31页
课程设计(论文)基于单片机的数据采集与传输系统设计.doc_第2页
第2页 / 共31页
课程设计(论文)基于单片机的数据采集与传输系统设计.doc_第3页
第3页 / 共31页
课程设计(论文)基于单片机的数据采集与传输系统设计.doc_第4页
第4页 / 共31页
课程设计(论文)基于单片机的数据采集与传输系统设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《课程设计(论文)基于单片机的数据采集与传输系统设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于单片机的数据采集与传输系统设计.doc(31页珍藏版)》请在三一办公上搜索。

1、成 绩 评 定 表学生姓名班级学号120306专 业通信工程课程设计题目基于单片机的数据采集与传输系统设计评语组长签字:成绩日期 2015 年 7 月13 日课程设计任务书学 院信息科学与工程学院专 业通信工程学生姓名班级学号120306课程设计题目基于单片机的数据采集与传输系统设计实践教学要求与任务:1 学习51单片机原理、设计方法和实现技巧;2 掌握简单单片机程序的编程实现;3 掌握简单无线数字传输设计和分析方法;4 采用51单片机实现数据采集与传输系统的设计。(1)通过检索、查资料、调查研究、确定方案、画出组成系统结构方框图;(2)采用51单片机实现数据采集与传输系统;(3)系统调试与改

2、进,调整系统参数,分析系统运行结果;(4)写出设计总结报告。 工作计划与进度安排:19周(上):学习51单片机原理、设计方法和实现技巧,掌握简单51单片机编程实现,掌握简单无线数字传输系统设计和分析方法。19周(下):采用51单片机,实现基于单片机数据采集与传输系统的设计,并对系统进行性能分析。指导教师: 2015 年7 月5 日专业负责人:2015 年 7 月5 日学院教学副院长:2015 年7月 5 日目 录1 无线通信技术的发展22 系统方案的选用32.1 系统总体方案32.2接收端方案43 传感器53.1 传感器的选择53.2 单总线技术83.3 传感器模块设计93.4无线收发模块设计

3、114 数据接收端设计144.1单片机最小系统设计144.2 显示模块电路设计144.3 PC机通信接口设计155 系统电路原理图176 系统软件186.1 温度数据采集端软件设计186.2 数据接收端软件设计21参考文献23附录 主要程序清单241 无线通信技术的发展 作为现今大力发展的无线接入技术,大体上可分为移动式接入和无线方式的固定接入两大类。(1)移动无线接入技术:此类技术主要指用户终端在较大范围内移动的通信系统的接入技术。这类通信系统主要包括以下几种:集群移动无线电话系统:它是专用调度指挥无线电通信系统,它在我国得到了较为广泛的应用。集群系统是从一对一的对讲机发展而来的,从单一信道

4、一呼百应的群呼系统,到后来具有选呼功能的系统,现在已是多信道基站多用户自动拨号系统,它们可以与市话网相连,并于该系统外的市话用户通话。如警察、消防、公交、出租、矿山等蜂窝移动电话系统:70年代初由美国贝尔实验室提出的,在给出蜂窝系统的覆盖小区的概念和相关理论之 后,该系统得到迅速的发展。其中第一代蜂窝移动电话系统:指陆上模拟蜂窝移动电话系统,主要特征是用无线信道传输模拟信号。第二代则指数字蜂窝移动电话系 统,它以直接传输和处理数字信息为主要特征,因此具有一切数字系统所具有的优点,代表性的是GSM、CDMA、3G。卫星通信系统:采用低轨道卫星通信系统是实现个人通信的重要途径之一,现在有美国Mot

5、orola公司的“铱星”计划,日本NTT计划,欧洲RACE计划,整个系统由三个部分构成:系统的主要部分是卫星及地面控制设备,关口站,终端。无线寻呼系统,如BB机无绳移动通信系统(小灵通)(2)固定接入无线技术:其英文各为Fixed Wireless Access ,简称FWA ,它是指能把从有线方式传来的信息(语音、数据、图象)用无线方式传送到固定用户终端或是实现相反传输的一种通信系统,按上述定义,它应该包括了所有来自公共电话网的业务并用无线作传输方式送到固定用户终端的系统,与移动通信相比,固定无线接入系统的用户终端是固定的,或者是在极小范围内。从某种意义上讲,BlueTooth、IrDA、W

6、i-Fi、Zigbee、WiMax等。2 系统方案的选用2.1 系统总体方案基于单片机的温度检测与无线传输系统由多个传感器节点和数据接收端两个部份成,之间通过无线信道通信。传感器节点负责温度数据的采集和发送;数据接收端负责数据的接收和处理。系统整体结构框图如图2-1所示。传感器节点1RS232接口外部网络CAN接口传感器节点2传感器节点3传感器节点4传感器节点N数据接收端PC机 图1 系统总体结构框图传感器节点主要由传感器、微处理器和无线收发模块构成。传感器将转换后的数字信号送往无线模块打包发出,数据接收端主要由无线收发模块、微处理器构成。数据接收端接收到采集节点发送的数据后,将数据按照通信协

7、议拆包,取出里面的有效数据并通过数码管显示温度值,再通过串口发送给计算机存储,并通过接口电路发送给外部网络。系统硬件实现简单,传感器节点和接收端均采用无线收发一体芯片,微处理器可以采用射频芯片内部集成的51系列单片机。数据接收端与计算机通过串口通信。由于CAN总线的稳定性及其在工业数据传输网络中的广泛应用,系统采用CAN接口作为基站与外部网络的通信接口。在低功耗要求方面,本系统通过选用大容量电池、低功耗电子元器件及制定合理的无线通信协议来解决。 2.2接收端方案4位数码管显示无线收发模块CAN接口外部网络SRAM微 处 理 器时钟蜂鸣器报警RS-232接口PC机外 部 电 源 图2 接收端结构

8、框图从图2中可以看出,数据接收端由微处理器、时钟、4位数码管显示模块、SRAM、无线收发模块、外部电源、蜂鸣器报警电路、RS-232通信接口以及CAN接口组成,主要完成的功能是: 利用无线收发模块接收各个传感器节点发送的实时数据。 微处理器对数据处理后通过数码管显示,超过设定温度值自动报警。 将数据通过RS-232通信接口发送给上位机存储显示,对系统进行温度控制。并通过CAN接口发送给外部网络。3 传感器3.1 传感器的选择本系统选用美国Atmel公司AT89S52单片机,AT89S52单片机是AT89S系列单片机中的一种,它是在现己广泛应用于工业控制等各领域的AT89C52系列单片机的换代产

9、品。它具有89C52的全部功能,是80C51的增强型并且指令完全兼容,AT89S52新增加的功能由特殊功能寄存器完成,相信日后它将更广泛地应用于工业控制、汽车控制、智能仪器仪表及电机控制等应用领域。AT89S52单片机有如下特点: 兼容MCS51单片机 8K字节FLASH存贮器支持在系统编程ISP1000次擦写周期 256字节片内RAM 工作电压4.0V6.0V 全静态时钟0Hz33MHz 三级加密程序存储器 32个可编程I/O口线 3个16位定时器/计数器 八个中断源 掉电标识符 全双工UART串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 双数据指针此外,与AT89C52相比,AT89S

10、52新增加了许多功能,这将使单片机在工作过程中具备更高的稳定性和电磁抗干扰性。AT89S52内部增加了片内看门狗定时器,这将有利于坚固用户应用系统,提高系统可靠性;AT89S52独有的双数据指针使数据操作更加快捷方便;再次,AT89S52运行速度更高,最高晶振可达到33MHz;最后,AT89S52支持ISP(In-System Programming)在线下载功能。AT89S52中ISP引脚共有4个:RST、MOSI、MISO和SCK。用户可以直接替换应用系统中的AT89C51/52,而软件硬件均不需作任何修改,这给正使用AT89C51/52单片机的用户更新换代带来许多方便。 正因为AT89S

11、52单片机增加了高可靠性、安全性的功能,所以能避免因外部环境恶劣而引起的信号失真、电磁干扰等现象的发生。因此,用它作为系统的控制器可以满足检测与控制的要求。而且,从经济性的角度来看,AT89S52不但硬件结构简单,而且价格低、功能强、性价比高,符合本设计的要求。图 3 AT89S52引脚图AT89S52单片机引脚如图3所示。P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写1时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在Flash编程时,P0口也用来接收指令字节,在程序

12、校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入和定时器/计数器2的触发输入,具体如表1所示。在Flash编程和校验时,P1口接收低8位地址字节。 表 1 P1口的第二功能引脚号 第二功能 P1.0T2 (定时器/计数器T2的外部计数输出),时钟输出 P1.1T2EX (定时器/计数器T2的捕捉/重载触发信号和方向控

13、制) P1.5MOSI (在系统编程用) P1.6MISO (在系统编程用) P1.7SCK (在系统编程用)P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口是一个具有内

14、部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口也可作为AT89S52特殊功能(第二功能)使用,如表3.1.3所示。在Flash编程和校验时,P3口也接收一些控制信号。 表 2 P3口第二功能 引脚号 第二功能 P3.0 RXD(串行输入) P3.1 TXD(串行输出) P3.2 INT0(外部中断0) P3.3 INT1(外部中断1) P3.4 T0(定时器0外部输入) P3.5 T1(定时器1外部输入) P3.6 WR(外部数据存储器

15、写选通) P3.7 RD(外部数据存储器写选通)RST复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/:地址所存控制信号ALE是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置1,

16、ALE操作将无效。这一位置1,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。/VPP是访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放

17、大器的输出端。3.2 单总线技术目前常用的微机与外设之间进行数据传输的串行总线主要有总线、SPI总线和SCI总线。这些总线至少需要两条或两条以上的信号线。近年来,美国DALLAS半导体公司开发了一种新技术单总线技术。它采用单根信号线完成数据的双向传输,并且可以通过该信号线为单总线器件提供电源。它具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点,适用于远距离、多点测试、集中控制、现场缺电等场合。单总线系统是由挂在一对双绞线(一根信号线,一根地线)上的单总线器件芯片,专门的通信协议组成,该系统中只有一个总线命令者,从者可以有多个。总线命令者可以是PC机或者普通的单片机,从者

18、是DALLAS公司提供的单总线器件芯片。下面从硬件配置、总线协议和总线信号三方面介绍单总线技术。3.3 传感器模块设计(1)DS18B20的内部结构 DS18B20主要由四部分组成:64位激光ROM数据存储器、温度传感器、非易失性电可擦写温度报警触发器TH、TL以及非易失性电可擦写设置寄存器。如图3-3。64位ROM和单线端口电源探测DQVDD内部VDD存储器和控制逻辑寄存器温度传感器上限触发TH下限触发TL8位CRC产生器 图4 DS18B20内部结构框图实物如图4所示,器件只有3根外部引脚,其中VDD和GND为电源引脚,另一根DQ线则用作I/O总线,因此称为一线式数据总线。DSI8B20的

19、管脚排列如图5所示。 GND DQ VDDDS18B2012348765I/OGNDNCNCVccNCNCNCDS18B201 2 3 (a)PR-35封装 (b)SOSI封装 图5 DS18B20的封装形式每片DS18B20含有一个唯一的64位ROM编码。头8位是产品系列编码,表示产品的分类编号;接着的48位是一个惟一的产品序列号,序列号是一个15位的十进制编码,每个芯片惟一的编码可以通过寻址将其识别出来,最后8位是前56位的循环冗余(CRC)校验码,是数据通信中校验数据传输是否正确的一种方法。(6)DS18B20的供电方式DS18B20有两种供电方式:如图6 ,一种为数据线供电方式(即寄生

20、电源供电方式);另一种为外部供电方式。寄生电源方式下,GND端和 VDD端都接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,完成温度转换的时间较长。为了保证在有效的时钟周期内,提供足够的电流,这种情况下,用一个MOSFET管和单片机的一个I/O口来完成对DS18B20总线的上拉;外接电源方式下,DS18B20的VDD端外接一个+3+5V电源,GND端接地。可见寄生电源方式可以省掉一根电源线,大大较低了布线的成本,但是当总线上节点较多且同时进行温度转换时,容易造成供电不足且所需的转换时间较长。外接电源方式稳定可靠,测量速度较快。所以本系统采用外接电源供电方式。 (a)寄生电源供电

21、方式 (b)外接电源供电方式 图 6 DS18B20的供电方式3.4无线收发模块设计nRF905是挪威NORDIC公司推出的单片无线收发一体的芯片,工作电压为1.93.6V,可通过编程工作于433/868/915MHz 3个ISM频段,使用SPI接口与微处理器通信,配置非常方便。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表面滤波器,其外部连接元件包括一个基准晶振、RF偏压电阻、外部天线等几个部分,是目前集成度较高的无线数传产品,具有性能优异、功耗低、开发简单等优点。nRF905采用抗干扰能力强的高斯频移键控(GFSK)调制方式,抗干扰能力强,能很好的减

22、少噪声环境对系统性能的影响。与幅移键控(ASK)和开关键控(On-Off Keying)方式相比,GFSK的通信范围更广,特别是在附近有类似设备工作的场合通信更加可靠,更适合工业现场控制场合。nRF905内置了完整的通信协议和CRC校验电路,并且由片内硬件自动完成曼彻斯特编码与解码,只需通过SPI接口即可完成所有的无线收发传输,无线通信如同SPI通信一样方便。nRF905传输数据时采用非实时方式,即发送端发出数据,接收端接收到后先暂存在芯片的存储器中,由微处理器在在需要的时候通过SPI接口读取。nRF905的内部结构如图7所示,各引脚功能描述如表3所示。 图7 nRF905内部结构图 表3 n

23、RF905引脚功能描述管脚名称 管脚功能 说明 1TRX_CE数字输入使能芯片发射或接受 2PWR_UP数字输入芯片上电 3uPCLK时钟输出由晶振分频的输出时钟 4VDD电源电源(+3V) 5Vss电源接地 6CD数字输出载波检测 7AM数字输出地址匹配 8DR数字输出接受或发送数据完成 9Vss电源接地 10MISOSPI接口SPI输出 11MOSISPI接口SPI输入 12SCKSPI时钟SPI时钟 13CSNSPI使能SPI使能 14XC1模拟输入晶振1脚 15XC2模拟输出晶振2脚 16Vss电源接地 17VDD电源电源(+3V) 18Vss电源接地 19VDD_PA电源输出给nRF

24、905功率放大器提供的+1.8V电源 20ANT1射频输出天线接口1 21ANT2射频输出天线接口2 22Vss电源接地 23IREF模拟输入参考电流 24Vss电源接地 25VDD电源电源(+3V) 26 Vss电源接地 27 Vss电源接地 28 Vss电源接地 29 Vss电源接地 30Vss电源接地 31DVDD_1V2电源De耦合的低压正数字电源输出 32TX_EN数字输入TX_EN=“1”为TX模式;“0”为RX模式4 数据接收端设计4.1单片机最小系统设计数据接收端由微处理器、4位数码管显示模块、无线收发模块、外部电源、蜂鸣器报警电路、RS-232通信接口以及CAN接口组成。考虑

25、到系统设计方便微处理器仍然选用ATMEL公司的AT89S52,控制器与nRF905无线发射模块接口电路上一章已经介绍,这里不再赘述。微控制器AT89S52无线收发模块CAN接口外部网络RS-232接口PC机 外 部 电 源4位数码管显示 图 8 单片机系统结构图nRF905无线收发模块接收各个传感器节点发送的实时采集数据,微处理器AT89S52对数据处理后通过数码管显示,超过设定温度值蜂鸣器自动报警,并将数据通过RS-232通信接口发送给上位机存储以便对系统进行温度控制。并通过CAN接口发送给外部网络。4.2 显示模块电路设计数码管采用共阳极的4位显示数码管,其中a、b、c、d、e、f、g、d

26、p各段的引脚可以与单片机的I/O口直接连接。AT89S52单片机的I/O口可以输出4 mA的拉电流足以驱动数码管发光。要使某一个数码管亮则对应的C端置高,三极管的基极为低电平时导通,这样数码管就可以显示接收到的温度值。图9为数码管显示模块电路图。 图 9 数码管显示模块电路4.3 PC机通信接口设计随着计算机系统的应用和微机网络的发展,计算机的通信功能显得越来越重要。从广义上讲,计算机通信可以分为并行通信和串行通信。并行通信速度快、实时性好,但占用的口线多、成本高、通信距离短,不适用于小型化产品。串行通信只需一根传输线即可完成通信功能,成本低,在通信中得到了广泛应用。串行通信是计算机与外设进行

27、信息交换的一种方式,是指数据一位一位地按顺序在一根信号线上进行传输的通信方式。串行通信有两种基本工作方式:异步传送和同步传送。在单片机中使用的串行通信都是异步方式,因此本系统采用异步串行通信方式来实现单片机和PC机之间的通信。异步串行通信是以字符为单位组成的帧传送的,即一帧一帧地传送。帧由发送端一帧一帧地发送,通过传输线被接收设备一帧一帧地接收。为了保证发送数据能准确的被接收端接收,接收端必须与发送端同步。也就是说接收端不但要知道一组二进制的开始与结束,还需要知道每位的持续时间,这样才能做到用合适的采样频率采样所接收到的数据。所以没传送一个字符时,不论所采用的字符代码长度为多少位,总是以“起始

28、位”开始,其长度规定为1个码元,极性为“0”,即空号的极性;中间是字符位,字符本身由58位数据位组成,接着字符位后面是一位校验位(也可以没用校验位);以“停止位”结束,其长度为1、1.5或2个码元,极性皆为“1”;停止位后面是补丁长的空闲位。停止位和空闲位都规定为高电平(逻辑值为1),这样就保证起始位开始处一定有一个下跳沿。表4总结了异步通信时每位的信息格式。 表 4 异步通信的信息格式位名称极性 位数 起始位 逻辑0 1位 数据位 逻辑0或逻辑1 5位、6位、7位、8位 校验位逻辑0或逻辑1 1位或无 停止位 逻辑1 1位、1.5位或2位 空闲位 逻辑1 任意数量在串行通信中,数据通常是校验

29、、偶校验和无校验,由用户根据需要选定。在发送端和接收端之间进行传送,根据数据传送的方向,可分成三种基本的传送形式:单工、全双工和半双工。单工形式的数据传送是单向的,只需要一根数据线。半双工形式的数据传送是双向的,但任何时刻只能由其中的一方发送数据,另一方接收数据。半双工形式比单工形式灵活,但它的效率依然较低,从发送方式切换到接收方式所需要的时间大约为数个毫秒,这个时间延迟在对时间较为敏感的系统中是无法容忍的。全双工形式下,采用了信道划分技术,避免了半双工形式的缺点,数据传送是双向的,且可以同时发送和接收数据。本系统采用了效率较高的全双工通信形式。5 系统电路原理图图 10 系统电路原理图6 系

30、统软件本系统的软件部分采用C51编程,在Keil环境下运行。Keil软件是基于80C51内核的微处理器软件开发平台。既可以实现软件编译,(asrn编译为hex),也可以配合仿真模块实现硬件仿真。设计时我们首先要确定完善的思路,充分考虑传感器和无线收发器之间的时序问题,既要让程序简单又要降低无线数据传输的误码率,提高系统的抗干扰能力,保证系统稳定工作。6.1 温度数据采集端软件设计温度数据采集端由AT89S52 作为核心处理器件, 把经过DS18B20 现场实时采集到的温度数据,存入AT89S52 的内部数据存储器,同时通过无线收发器nRF905发送数据接收端。此部分数据处理流程如图11所示。温

31、度采集AT89S52微控制器数据发送图11 温度数据采集端数据处理流程图DS18B20首先接收到AT89S52发送的复位脉冲完成复位,接着发送ROM操作命令,使DS18B20被激活进入接收内存访问命令状态。内存访问命令状态完成温度转换、读取等工作。系统以ROM命令和存储器命令的形式对DS18B20操作。DS18B20对时序及电气特性参数要求较高,必须严格按照DS18B20的时序要求去操作。DS18B20数据的读写由微控制器AT89S52读写时间来完成,包括初始化、读数据和写数据。控制器对DS18B20操作之前必须先初始化,即控制器发送复位脉冲(最短为480us的低电平),接着释放总线进入接收状

32、态。DS18B20在检测到P3.5引脚的上升沿之后,等待一段时间后发出存在脉冲。将数据线从高电平拉至低电平产生写起始信号。而控制器将数据线从高电平拉至低电平1us以上,再使数据线升高为高电平从而产生读起始信号。温度数据采集程序流程图如图12所示。向DS18B20发送初始化脉冲初始化成功?向DS18B20发送44H启动温度转化向DS18B20发送初始化脉冲向DS18B20发送BEH准备取温度取出温度值及CRC校验位CRC校验转化结束?初始化成功?YYYYNNNN向DS18B20发送CCH向DS18B20发送CCH保留该温度,并作提高精度运算,返回舍弃该温度,返回等待下一次采集报错返回报错返回 图

33、12 温度数据采集程序流程图微控制器控制对DS18B20完成温度转换必须进过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。为保证DS18B20的严格I/O时序,需要作较精确的延时。在DS18B20的操作中,延时分两种:短时间延时和较长时间延时。短时间延时指10us以下的延时,在汇编语言下采用若干个NOP指令即可。因C51提供了若干内部函数,_nop_()函数为其中之一,其编译结果就是在对应位置嵌入一个nop汇编指令,因此,短时间延时可利用_nop_()函数实现。较长时间延时指10us以上的延时。在

34、DS18B20操作中,用到的较长时间延时有15us,90us,270us,540us等。因这些延时均为15us的整数倍,因此,可编写一个Delay1(n)函数,用该函数进行大约1usn的延时。当传感器采集到有效数据时将准备通过nRF905无线收发模块发送给接收端。与射频数据包有关的高速度数据处理都在nRF905片内自动进行,由于nRF905采用ShockBurst模式,因此即使使用低速的微处理器也能获得很高的射频数据发射速率。nRF905发送数据的具体过程如下: MCU通过置低nRF905的TRX_CE引脚将nRF905置于待机模式,开始与nRF905进行SPI通信; MCU通过SPI接口把发

35、送目的地址写入nRF905发送地址寄存器TX_Address; MCU通过SPI接口将发送有效数据写入nRF905发送有效数据寄存器RX_Payfoad; MCU通过置高nRF905的PWR_UP、TRX_CE、TX_EN引脚将nRF905置于ShockBurst发送模式; nRF905 ShockBurst发送数据:无线收发模块自动上电自动给数据包添加前导码和CRC校验字节发送数据包(速率100kbps,GFSK调制,曼彻斯特编码)数据发送完成时,置高数据准备就绪(DR)引脚 数据发送完成后,MCU置低nRF905的TRX_CE引脚,nRF905重新进入待机模式。nRF905在发射数据时,只

36、有在前一个数据包己经发送完成时,才接收下一个发送数据包,并且一旦某个数据包发送已经开始,不管TRX_CE、TRX_EN如何变化,这个数据包都会被处理完。nRF905无线发射模块发送数据流程图如图13所示。MCU写发送地址MCU写发送有效数据置nRF905为发送模式置nRF905为待机模式启动发送器nRF905 ShockBurst无线发送(生成前导码,CRC校验字节,将数据打包发送)发送完成?nRF905进入待机模式YN 图13 无线发射模块发送数据流程图 6.2 数据接收端软件设计温度数据采集端仍由AT89S52 作为核心处理器件, 将nRF905接收到的温度数据存入AT89S52 的内部数

37、据存储器,同时通过4位数码管显示。并上传至PC机和外部网络。此部分数据处理流程如图14所示。接收数据微控制器数码管显示上传PC机发送给外部网络 图14 接收端数据处理流程图nRF905接收数据的具体过程如下: MCU通过置高TRX_CE,置低TRX_EN来设置nRF905进入ShockBurst接收模式; nRF905监测空气中的信息; 若nRF905发现和接收频率相同的载波,接收数据,并置高载波检测引脚CD; 若接收到的数据包的地址是本机地址,置高地址匹配引脚AM; 若地址匹配并且CRC校验正确,nRF905去掉前导码、地址及CRC校验字节,数据准备就绪引脚DR置高。图15为无线发射模块接收

38、数据流程图。置nRF905为接收模式有同频率载波?地址正确?置高AM准备接收数据CRC正确?DR置高,触发接收中断置低AMYYYNNN关中断读取nRF905有效数据nRF905进入接收模式开中断进入中断服务程序进入中断服务程序 图15 无线接收模块接收数据及接收中断流程图参考文献1 黄智伟编著单片无线收发集成电路原理与应用M北京:人民邮电出版社,2005年2 余永权编著. ATMEL89系列单片机应用技术M. 北京:北京航空航天大学出版社,20023 尹勇、李宇编著. Vision2单片机应用程序开发指南M. 北京:科学出版社,20054 周振安、范良龙等编著. 数据采集系统的设计与实践M.

39、北京:地震出版社,20055 周航慈编著. 单片机程序设计基础M. 北京:北京航空航天大学出版社,20036 刘光斌、刘冬、姚志成编著. 单片机系统实用抗干扰技术M. 北京:人民邮电出版社,20037 沈红卫编著. 基于单片机的智能系统设计与实现M. 北京:电子工业出版社,2005附录 主要程序清单#include / 包含相关的头文件#define uchar unsigned char/ 使用uchar代替unsigned char#define uint unsigned int/ 使用uint 代替unsigned intsbit LcdRs_P = P20; / 1602液晶的RS管

40、脚 sbit LcdRw_P = P21; / 1602液晶的RW管脚 sbit LcdEn_P = P22; / 1602液晶的EN管脚sbit DQ_P = P23;/ 传感器的管脚/*/ 毫秒级的延时函数,time是要延时的毫秒数/*/void DelayMs(uint time)uint i,j;for(i=time;i0;i-)for(j=112;j0;j-);/*/ 1602液晶写命令函数,cmd就是要写入的命令/*/void LcdWriteCmd(uchar cmd) P0=cmd; LcdRs_P = 0; LcdRw_P = 0; LcdEn_P = 0; DelayMs(1); LcdEn_P = 1; DelayMs(1); LcdEn_P = 0;/*/ 1602液晶写数据函数,dat就是要写入的命令/*/void LcdWriteData(uchar dat) P0=dat; LcdRs_P = 1; LcdRw_P = 0; LcdEn_P = 0; DelayMs(1); LcdEn_P = 1; DelayMs(1); LcdEn_P = 0;/*/ 1602液晶初始化函数/*/void LcdInit()

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号