毕业设计论文基于单片机的多点温度检测数据无线传输系统设计

上传人:痛*** 文档编号:46004586 上传时间:2021-12-10 格式:DOC 页数:48 大小:880.50KB
收藏 版权申诉 举报 下载
毕业设计论文基于单片机的多点温度检测数据无线传输系统设计_第1页
第1页 / 共48页
毕业设计论文基于单片机的多点温度检测数据无线传输系统设计_第2页
第2页 / 共48页
毕业设计论文基于单片机的多点温度检测数据无线传输系统设计_第3页
第3页 / 共48页
资源描述:

《毕业设计论文基于单片机的多点温度检测数据无线传输系统设计》由会员分享,可在线阅读,更多相关《毕业设计论文基于单片机的多点温度检测数据无线传输系统设计(48页珍藏版)》请在装配图网上搜索。

1、多点温度检测数据无线传输系统设计摘 要:当代农业生产和工业生产中,温度是很重要的一个因素。生产中对温度的控制直接影响其产品的质量的好坏。本文设计主要是针对恶劣环境下的工业现场以及高科技大范围的农业现场,布线困难,浪费资源,占用空间,可操作性差等问题做出的一个解决方案,利用无线传输实现在上位机显示采集到的温度。本课题设计的是一套无线多温度数据采集系统,主要用于对环境温度的采集与监控。系统采用基于无线网络的设计思想和温度采集技术。无线传输避免了远距离布线所带来的施工困难,成本高的缺点。本设计用AT89C51单片机和无线收发射模块NRF905为主要硬件,设计了包括温度采集,温度显示,系统控制,串口通

2、信等外围电路。单片机AT89C51作为主单片机完成测量和控制以及与通信单片机的数据通信、无线收发控制等功能。温度传感器使用DS18B20,它实现对温度的实时监控并传输数据给单片机,温度上下限通过程序进行设置。这样就可以通过整个系统对温度做出试试的监控。关键词:AT89C51,温度采集,温度传感器DS18B20,无线收发模块NRF905The Design of Multi-point Temperature Measurement and The Data Wieless Transmission System Abstract:Modern agricultural production a

3、nd industrial production, the temperature is a very important factor. Temperature control the production of a direct impact on the quality of their products good or bad.This article is designed for harsh environments and high-tech industries at the scene of large-scale agriculture at the scene,wirin

4、g problems,waste of resources,space,and make operational a poor solution.This design is mainly to use the wireless transmission to revcal the gathered temperature on the position machine. This paper introduces a kind of wireless monitoring system which is used to control temperature conditions。the s

5、ystem adopts wireless network and temperature collect technique.the wireless communication can avoid the shortcoming of remote wire transmission ,such as large wastage,high cost etc.this design uses AT89C51 and NRF905wireless communication,the monlithic integrated circuit is the main hardware,in ord

6、er to realize design goal this design including temperature gathering,the temperature demonstrated that,the systems control,strung together periphery electric circuit and so on mouth correspondence。the main MCU(AT89C51)takes charge of measurement,control and communication with the communication MCU.

7、The communication MCU (AT89C51)is used to control receiving and sending data in the wireless communicationTemperature sensor using DS18B20, which implements real-time monitoring of temperature and transmit data to the MCU(AT89C51), upper and lower limits set by the program. This can make the whole s

8、ystem to try to control the temperatureKey words:AT89C51;Temperature gathering;DS18B20;NFR905 wireless communication. 目 录第一章 绪论11.2 国内外现状11.3 提出疑问1第二章 方案论证22.1 无线通信模块的选择与论证22.1.1 方案一:22.1.2 方案二:22.1.3 方案对比及选择结果:32.2 显示模块的选择与论证32.2.1 方案一:32.2.2 方案二:32.2.3方案对比及选择结果:42.3 温度传感器模块的选择与论证42.3.1 方案一:42.3.2

9、方案二:42.3.3 方案对比及选择结果:4第三章 硬件电路设计53.1 单片机原理及应用的简单介绍53.2 单片机的选择及其特点53.3 整体硬件电路概述63.3.1 单片机最小系统73.3.1 温度检测电路的介绍及选择73.3.2 显示电路的介绍及选择83.3.3 无线接收发射芯片NRF905103.3.4 无线数据传输模块NRF905103.3.5 数据锁存电路133.3.6 电源电路143.3.7 报警灯显电路15第四章 软件系统的设计174.1 C语言介绍174.2 主程序的设计174.3 读取温度传感器数值的程序194.4 显示程序的设计204.5 定时器子函数的设计224.6 无

10、线数据发送函数25第五章 软硬件调试275.1 硬件调试275.2 软件调试275.3 仿真调试275.4 软硬件结合调试28结 论29致 谢30参考文献31附录 I 发射端原理图32附录 II 接收端原理图33附录 III 部分源程序34 第一章 绪论1.1 题目分析 在工农业生产中,对于采集数据大多采用有线方式,比如森林防火、野外油田、远距离的高速公路、成熟的公园景区等环境,有线网络搭建很难完成,或者用户成本投入过高,网络建设周期过长。 在工业现场,由于生产环境恶劣,工作人员不能长时间停留在现场观察设备是否运行正常,就需要采集数据并传输数据到一个环境相对好的操控室内,工作人员可以在这里将控

11、制指令传输给现场执行模块进行各种操作。这样就会产生数据传输问题,由于厂房大、需要传输数据多,使用传统的有线数据传输方式就需要铺设很多很长的通讯线,浪费资源,占用空间,可操作性差,出现错误换线困难。而且,当数据采集点处于运动状态、所处的环境不允许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进行数据采集。在农业生产上,不论是温室大棚的温度监测,还是粮仓的管理,传统上都是采取分区取样的人工方法,工作量大,可靠性差。而且大棚和粮仓占地面积大,检测目标分散,测点较多,传统的方法已经不能满足当前农业发展的需要。当前的科技水平下,无线通信技术的发展使得温度采集测量精确,简便易行。基于此,

12、本课题设计了一种无线传输采集的系统。无线的优点很是明显,高度的灵活性、便捷性、移动性、低成本等等。无线系统现在已经在现代化小区、交通、港口、油田、电力、矿山、公交、环保、森林防火、水利、航运安全、平安城市、消防、景区、建筑工地等领域的视频监控发挥着重要的作用。本设计主要就是说明单片机和无线数据收发模块NRF905的组合,形成单片机的无线数据传输系统,如何根据选择的器件设计外围电路和单片机的接口电路,如何编写控制无线数据传输器件进行数据传输的单片机程序,并且简要的介绍数字温度传感器DS18B20的应用。 1.2 国内外现状在国内外,此方面都有着重要的研究,但是考虑到其芯片与传感器已有有很多已不是

13、主流,已被淘汰,甚至有些器件都已经停产。温度检测器件的性能直接影响系统测量的准确性。传统方法多以热电阻和热电偶等为温度敏感元件,但都存在可靠性差,准确度和精度低的缺点。由这些温度传感器构成的温度测控系统大多存在两大缺点:其一,需要大量的连线才能把现场传感器的信号送到采集卡上,布线施工麻烦,成本也高;其二,线路上传送的是模拟信号,易受干扰和损耗。在大多数温度测量系统中,设计者都提出用美国Dallas公司生产的DS18B20数字温度传感器和89C51单片机构成的多路测温系统,采用单总线的方式(一根数据线和一根地址线) , 其上可以非常方便的挂接多个从总线获得电能而不需单独供电的数字温度传感器DS1

14、8B20, 在单片机的控制下巡回检测多点温度,可设置高、低温度超限报警等功能。系统安装简便、可靠性高,特别适合在工业现场的温度参数监测。1.3 提出疑问I在其他设计中,大多数只用无线传送一路信号,但是在本设计中需要连续,巡回传输多路传感器的测量结果,如何解决好无线传输的协议将是一个难点。II温度传感器对时序要求较高。由于单片机时钟源的限制,使得程序运行时并不能保持DS18B20所要求的时序精度。所以在温度测量的过程中会出现测量结果波动的现象。如何解决测量温度波动的问题也将是一个难点。第二章 方案论证2.1 无线通信模块的选择与论证本系统最大的特点就是信息的无线传输。省去了传统有线传输的束缚,简

15、化了系统的安装。在加油站等无线信号比较复杂的环境下无线通信模块的选择尤为重要。选择合适的无线模块直接关系到信号传输的有效性及系统的可靠性。2.1.1 方案一: RX3310A是一个可工作在甚高频的无线接收芯片。它的内部集成了高频放大电路(RF AMP)、混频电路 (MIXER)、中放电路(IF AMP)、中频滤波器(IF FILTER)、限幅器(LIMITER)以及由比较器构成的(ASK)解调电路等。图1.1是它的内部结构,利用 RX3310A可以和简单的发射电路和编码电路相配合来实现无线门铃、无线玩具的无线遥控和数据传输等功能。其主要特点:工作频率为250MHz450MHz,具有-106dB

16、m的高灵敏度;低功耗,正常平均工作电流为2.6mA;集成度高,外围元件很少,采用双列18脚宽体贴片封装,体积小。其内部结构如图2-1所示。图2-1 RX3310A的内部结构2.1.2 方案二:无线数据传输模块RF905的具体参数如下:1.工作电压:1.9-3.6V2.调制方式: GFSK3.接收灵敏度:-100dBm4.最大发射功率: 10mW(+10dBm) 5.最大传输数率:50kbps6.瞬间最大工作电流: <30mA7.工作频率:(422.4-473.5MHZ)。接收发送功能合一,收发完成中断标志。433/868/915工作频段,433MHZ开放ISM频段可免许使用。最高发射速率

17、50KBPS,10dbm发射功率条件下,配外置鞭状天线通信距离在300米左右。室内通信良好通信效果,4层之间可实现有效通信,抗干扰性能强,很强的扰障碍穿透性能。单次最多可发送接收32字节,并可软件设置发送/接收缓冲区大小2/4/8/16/32字节,170个频道,可实现多点网络通讯,结合TDMA-CDMA-FDMA原理,实现无线网络通讯。内置硬件8/16位CRC校验,数据传输稳定,降低系统开发难度。1.9-3.6V工作,低功耗,待机模式仅2.5uA。内置SPI接口,最高SPI时钟可大10M,也可通过I/O口模拟SPI实现。2.1.3 方案对比及选择结果:根据上述的分析得出结论,方案一中的RX33

18、10A芯片作为无线接收芯片为本次设计所用基本符合要求,其所需的外围器件少,调试简单,价格低廉,但它的功能较小。案二中的RF905集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率放大器等模块,曼彻斯特编码/解码由片内硬件完成,无需用户对数据进行曼彻斯特编码,因此使用非常方便,所以本设计采用方案二。2.2 显示模块的选择与论证作为人机界面的一部分显示模块主要功能是对测量得到的数据(去皮前及去皮后的质量)进行显示。显示模块的显示能力也影响到称重操作的复杂度。当显示界面显示的数据量大时更便于操作者综合当前数据,以及判断如何进行下一步操作。2.2.1 方案一:使用发光二极管显示器(简称LED),

19、它配置灵活,使用方便,而且价格低廉,但显示内容有限,线路连接复杂,而且要有驱动电路。不但显示内容单一,而且使用功耗高。2.2.2 方案二:使用液晶显示器(LCD),它的功耗低、体积小、美观、方便、使用寿命长,且能显示图形、字母等,接口简单,可以直接与单片机进行连接,但成本较高,占用系统资源较大。1602型液晶原理图如图2-2所示。图2-2 1602液晶显示模块1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(

20、41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A。2.2.3方案对比及选择结果:方案二显示时序复杂,控制繁琐,且本设计的显示信息不多。方案一的显示简单,控制简单。所以本设计采用方案一。2.3 温度传感器模块的选择与论证作为测量数据的直接来源,温度传感器的测量精度和工作稳定性直接影响到后续电路工作的精确性。可以说温度传感器是本设计的重中之重。整个系统的测量算法,无线数据传输协议都与温度传感器息息相关。选择合理的温度传感器将是本设计成功与否

21、的关键。2.3.1 方案一:本方案采用的温度测量电路由AD590来实现测量,其中利用AD590代替温度传感器作为温度输入,又由于AD590输出的是很小的电流信号,可通过一个电阻将其转化成一电压信号并放大,通过一个电压跟随器将前面的输出电路与后面的电路分隔开,以使输出的电压不受影响,经过一个反向放大器后,输出一新的电压值。输出的电压为模拟电压,需要通过A/D将其转换后,输入到单片机。2.3.2 方案二:本方案采用的温度测量电路中温度测量采用1-wire总线的DS18B20,其中DS18B20独特的单线接口只需1个接口引脚即可通信,温度检测应用得以简化,不需要外部元件,可用数据线供电,不需要备份电

22、源,测量范围从-55-+125,以9位数字值方式读取温度,用户可定义的,非易失性的温度报警设置等特性。单片机可以直接从DS18B20中读取温度数据,同时可以向其写入温度上下限报警值。2.3.3 方案对比及选择结果:方案一的设计成本底,但是其测量精度不够,而且电路设计复杂,而方案二只需要一根传输线,大大简化了设计复杂度。所以本设计的温度传感器设计方案采用方案二。第三章 硬件电路设计3.1 单片机原理及应用的简单介绍单片微型计算机(Single-Chip Microcomputer),简称单片微型机或单片机。由于它面向控制,特别适合于控制型应用领域,因而又名为微控制器(Microcontrolle

23、r)。它是在一块芯片上集成了中央处理器(CPU)、只读存储器(ROM)、随机存取存储器(RAM)、输入输出接口、可编程定时器/计数器等,有的甚至包含有A/D转换器。总之,一块单片机芯片,就相当于一台微型计算机。它具有集成度高、体积小、质量轻、功能强、使用灵活、价格低廉、稳定可靠等独特的优点,因而已广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。如应用最广泛的51系列单片机如图3-1所示。图3-1 AT89C51原理图3.2 单片机的选择及其特点本设计选用ATMEL公司的AT89C51单片机进行此次设计,它不仅与MCS-51单片机产品兼容 、8K字节在系统

24、可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。而且它还具有很强的运算、控制能力,而且与其他单片机相比具有很强的稳定性,价格低,性价比高。AT89C51是一种低功耗、CMOS、高性能8位微控制器具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥

25、有灵巧的8位CPU 和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C51具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C51可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字

26、节在系统可编程 Flash AT89C51。P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由

27、于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。 引脚号第二功能: P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作

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

29、,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。 P3口亦作为AT89C51特殊功能(第二功能)使用。 端口引脚第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG当访问外部程序存储

30、器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C

31、52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。3.3 整体硬件电路概述本电路以AT89C51单片机作为整个电路控制的核心,实现对温度的自动检测

32、与控制,由温度检测电路,控制电路,报警电路及显示电路组成。3.3.1 单片机最小系统时钟电路由一个频率为11.0592MHz的晶振并联而成的,输入到单片机的X1和X2脚,为系统提供外部时钟。复位电路由一个10uf的电解电容和一个按键构成,输出端接到单片机RESET引脚。正常情况下单片机的RESET脚位低电平。当需要复位时,按下按键,单片机RESET引脚接收到一定时间的高电平后系统就自动复位。单片机最小系统电路原理图如图3-2所示。 图3-2 单片机最小系统电路3.3.1 温度检测电路的介绍及选择温度的计量和测试在工农业生产和国民经济各部门具有重要意义和十分广泛的应用。而在温度的计量和测试中,要

33、将温度信号转换为电信号则离不开温敏元器件和温度传感器。在测量过程中,由于温度的计量范围很宽,从极低温到极高温,每一种温度传感器又具有各自的特点,适用范围和使用条件。因此,应根据实际使用时的不同需求适当的选择相应的温度传感器。温度传感器电路如图3-3所示。 图3-3 温度传感器电路本方案采用的温度测量电路中温度测量采用DSl8820是由美国DALLAS半导体公司生产的最新单线数字式温度传感器,主要特性如下:实现对-55到+125范围内的温度测量,并测量温度的误差在士05,实际系统的分辨率单独设定,并且保存在EEPROM中,即使断电能够保存;现场温度的测量值通过串行通信的式传输,即“单线总线”的数

34、字方式传输;系统供电压容许范围大,可在3V到5.5V的范围波动。DSl8820引脚功能:DSl8820总共三个引脚,一个引脚为电源地,另一个为外接电源端VDD,剩下一个DQ数字信号输人输出端其引脚表如表3-1所示。表3-1 DS18B20引脚功能表1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源3VDD可选择的VDD引脚,当工作于计生电源时,该引脚必须接地DSl8820的内部结构主要包括:寄生电源电路、64位只读存储器(ROM)和单线接口、存储器和控制逻辑、存放中间数据的高速暂存器,温度传感器,报警上线寄存器TH,报警下线寄存器TL。配置寄存器和8位

35、CRC(循环冗余效验码)发生器。同时单片机可以直接从DS18B20中读取温度数据,同时可以向其写入温度上下限报警值。综上所述,DS18B20不仅能满足电路系统的实际需求,而且具有极高的性价比。数据的读取依靠单总线协议。单总线及相应芯片是美国Dallas半导体公司推出的新技术。它将地址线、数据线和控制为一条信号线,允许在一条总线上挂接多个线芯片,其通信协议由处理次序和时序信号两部分组成:(1)初始化。基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机的应答脉冲组成。应答脉冲使主机知道总线上有从机设备,且准备就绪。(2)ROM操作命令。在主机检测到应答信号后,主机可

36、以发出ROM操作命令之一。所有的ROM命令都是8位,而且这些命令与各个从机设备的唯一64位ROM代码相关,允许主机在单总线上连接多个从机设备时,指定操作某个从机设备。可发送的ROM命令有:读ROM,匹配OM,搜索ROM,跳过ROM,超速ROM,超速跳过ROM,条件查找ROM。3.3.2 显示电路的介绍及选择 在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。八段LED显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个圆点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文

37、字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。如下图3-4所示。图3-4 LED数码管原理图共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段h g f e d c b a对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制代码就可以表示欲显示字符的字形代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极h g f e d c b a

38、各段为0111011时,显示器显示"P"字符,即对于共阴极LED显示器,“P”字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。这里必须注意的是:很多产品为方便接线,常不按规则的方法去对应字段与位的关系,这时字形码就必须根据接线来自行设计了。本设计的LED显示电路如图3-5所示。 图3-5 LED数码管显示电路原理图数码管的显示方式可分为静态和动态两种:静态显示与动态显示。静态显示与驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进

39、制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示与驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。当单片机输出字形码时,所有数码管都接收到相同的字形码,

40、但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。3.3.3 无线接收发射芯片NRF905nRF905是挪威Nordic VLSI

41、公司推出的单片射频收发器,工作电压为1.93.6V, 32引脚QFN封装(5×5mm),工作于433/868/915MHz三个ISM(工业、科学和医学)频道,频道之间的转换时间小于650us。 nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外部声表滤波器, ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。此外,其功耗非常低,以- 10dBm的输出功率发射时电流只有11mA,工作于接收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。nRF905适用于无线数据通信、无线

42、报警及安全系统、无线开锁、无线监测、家庭自动化和玩具等诸多领域。其内部结构图如图3-6所示。图3-6 NRF905内部结构图nRF905基本特性如下:l 工作电压:1.9-3.6Vl 调制方式: GFSK l 接收灵敏度:-100dBm l 最大发射功率: 10mW (+10dBm) l 最大传输数率:50kbpsl 瞬间最大工作电流: <30mAl 工作频率:(422.4-473.5MHZ)3.3.4 无线数据传输模块NRF905为了方便应用,市场上总是将NRF905芯片与其外围电路集成在一起,只留下编程接口供开发人员使用。这样的模块就是RF905模块。这样不仅节省了开发时间,也省下了

43、开发成本。下面将简单介绍一下RF905模块的主要电气指标。(1) 433MHz 开放ISM频段免许可证使用 (2) 最高工作速率50kbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合 (3) 125 频道,满足多点通信和跳频通信需要 (4) 内置硬件CRC 检错和点对多点机模式下状态仅为2.5uA (5) 低功耗1.9 - 3.6V 工作,待模块性能及特点: (6) 收发模式切换时间 < 650us (7) 模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便 (8) TX Mode: 在+10dBm情况下,电流为30mA

44、; RX Mode: 12.2mA (9) 标准DIP间距接口,便于嵌入式应用 NRF905各管脚如表3-2所示。表3-2 NRF905各管脚功能表管脚名称管脚功能说明1VCC电源电源+1.9-3.6V DC2TX_EN数字输入TX_EN=1,TX模式;TX_EN=0,RX模式3TRX_CE数字输入使能芯片发射或接收4PWR_UP数字输入芯片上电5uCLK时钟输出本模块该引脚废弃不用6CD数字输出载波检测7AM数字输出地址匹配8DR数字输出接收或发射数据完成9MISOSPI接口SPI输出10MOSISPI接口SPI输入11SCKSPI时钟SPI时钟12CSNSPI使能SPI使能13GND地接地

45、14GND地接地VCC脚接电压范围为3V-3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块,因此需要用AMS1117稳压芯片稳压在3.3V左右,除电源VCC和接低端,其余脚都可以直接和普通的5V单片机IO口直接相连,无需电平转换。RF905发送时序ShockBurst TX 发送流程 典型的RF905发送流程分以下几步: A. 当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给RF905, SPI接口的速率在通信协议和器件配置时确定; B. 微 控 制 器 置 高 TRX_CE 和 TX_EN,激发 RF905 的ShockBurstTM发送模式; C

46、. RF905的ShockBurstTM发送: (1) 射频寄存器自动开启; (2) 数据打包(加字头和CRC校验码); (3) 发送数据包; (4) 当数据发送完成,数据准备好引脚被置高; D. AUTO_RETRAN被置高,RF905不断重发,直到TRX_CE被置低; E. 当TRX_CE被置低,RF905发送过程完成,自动进入空闲模式。 注意:ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和 TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,RF905 才能接受下一个发送数据包。图3-7 NRF905模块发送时序图RF905接收时

47、序接收流程: A. 当TRX_CE为高、TX_EN为低时,RF905进入ShockBurstTM接收模式; B. 650us后,RF905不断监测,等待接收数据; C. 当RF905检测到同一频段的载波时,载波检测引脚被置高; D. 当接收到一个相匹配的地址,AM引脚被置高; E. 当一个正确的数据包接收完毕, RF905自动移去字头、地址和CRC校验位,然后把DR 引脚置高 F. 微控制器把TRX_CE置低,nRF905进入空闲模式; G. 微控制器通过SPI口,以一定的速率把数据移到微控制器内; H. 当所有的数据接收完毕,nRF905把DR引脚和AM引脚置低; I. nRF905此时可以

48、进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。 当正在接收一个数据包时,TRX_CE 或 TX_EN 引脚的状态发生改变,RF905立即把其工作模式改变,数据包则丢失。当微处理器接到AM引脚的信号之后, 其就知道RF905正在接收数据包,其可以决定是让 RF905 继续接收该数据包还是进入另一个工作模式。图3-8 NRF905模块接收时序图3.3.5 数据锁存电路由于本设计的接收端电路设计中所运用到的资源太多使得IO资源全部耗尽。所以在数据接收端得电路设计中用到了数据锁存器74ls374。74LS374的八个触发器是边沿触发 D型触发器。其原理图如图3-9所

49、示在时钟的正跳动,Q输出将处于 D输入端已建立的逻辑状态。 时钟线上的施密特触发缓冲输入将简化系统设计, 因为输入滞后作用使交流和直流抗扰度一般提高 400mV。缓冲输出的控制输入将使八个输出处于正常状态(高电平或低电平)或处于高阻状态。在高阻态下,输出既不能有效地给总线加负载,也不能有效地驱动总线。 图3-9 74LS374原理图输出控制不影响触发器的内部工作, 既老数据可以保持, 甚至当输出被关闭,新的数据也可以置入。其真值表如表所示。表3-3 74LS374真值表输入输出OE时钟DHXX高阻态L下降沿X不变化L上升沿LLL上升沿HH在本设计中,接收端外围资源太多,只有再用锁存方式复用IO

50、口。数据锁存电路如图所示。NRF905模块的控制端口与LED显示模块的位选端通过74ls374锁存器共同接在单片机的P2口上。通过控制锁存器的工作状态来实现IO的分时复用。锁存电路原理图如图3-10所示。图3-10 数据锁存电路原理图3.3.6 电源电路电源设计是单片机应用设计中一项极其重要的工作,它对整个单片机系统是否正常运行起着至关重要的作用。电源设计时应该同时考虑功率,电平及抗干扰等问题,电源功率必须能满足全系统的需要。单片机系统的绝大多数器件以脉冲方式工作,对较小的系统,功率消耗的脉冲特性更为突出,较大的系统由于器件功耗的分散性,使得系统整体的功率消耗比较平稳。因此,单片机系统的电源必

51、须有足够的耐冲击性,这就要求电源设计时留有充分的余量,一般大系统按实际功率消耗的1.5倍-2倍设计,小系统按实际功率消耗的2倍-3倍设计。各种形式的干扰一般都是以脉冲的形式进入单片机的,干扰窜入单片机系统的渠道主要有3条:空间干扰(场干扰),通过电磁波辐射窜入系统;过程通道干扰,通过与主机相连的前向通道,后向通道及其它与主机相互连接的通道进入;供电系统干扰,通过供电线路窜入。对于上述问题必须采用行之有效的措施和具体电路加以消除,确保单片机系统正常运行和工作。系统所需的+5V和的直流稳压电源,由稳压电源模块所提供。电路的工作过程是先输入220V的交流电压,通过电源变压器将交流电压转换成脉动的直流

52、电压,在通过桥式电路进行整流滤波。滤除较大的纹波成分,输出纹波较小的直流电压。这样就可以得到稳定的+5V直流电源。电源模块框图如图3-11所示。 图3-11 稳压电源设计框图关于三端稳压器的选用,应当说明的是,尽管有很多型号的7805三端稳压集成芯片,其标称最大输出电流均为1.5A,但是在实际应用中,该最大输出电流值往往取决于两个方面:(1)足够的散热面积;(2)不同的生产厂家。按照许多开发者的经验,ST公司的7805三端稳压块能接近标准称值。在设计中,必须保证7805的输入电压和输出电压的压差大于2.5V。否则会失去稳压能力。同时考虑到功耗,增加芯片的温升,不利于安全。因此,选用12V。当交

53、流电源失电或撤消失效时,电压为6V的直流电源通过二极管投入作用,硅二极管的导通电压降约为0.2V,因此满足系统电源要求。本次电源电路的设计本着简单实用,稳定的原则进行的。如图图3-12所示为本次设计所需的电源。 图3-12 +5V电源电路3.3.7 报警灯显电路本设计的温度超限报警电路由LED阵列组成。每个传感器的超上下线报警都有一个相应的LED灯与其对应。报警电路的原理图如图3-13所示。二极管的正向导通电压为1.2V电源电压5V限流电阻阻值为1000,译码器灌电流最大值为50MA。 带入数据计算 电流大小38MA正好合适。图3-13 温度超限报警电路原理图第四章 软件系统的设计4.1 C语

54、言介绍C语言具有语法简洁的特点,运算符丰富,数据结构类型丰富,结构化,就是一小块一小块的程序,这样写起来容易,C语言被程序员广泛使用的另一个原因是可以用它代替汇编语言。汇编语言使用的汇编指令,是能够在计算机上直接执行的二进制机器码的符号表示。汇编语言的每个操作都对应为计算机执行的单一指令。虽然汇编语言给予程序员达到最大灵活性和最高效率的潜力,但开发和调试汇编语言程序的困难是难以忍受的,若只有较简单的逻辑操作、逻辑算法、简单运算,使用汇编会得到较为精准的代码,但用C语言也同样可以做到。再者单片机种类繁多,各自的汇编语法大都不一样,若仅使用汇编,可扩充性、可移植性都很差,还有若掺有复杂运算、浮点运

55、算、非线性方程等,汇编恐怕无能为力了而且非结构性使得汇编语言程序难于阅读、改进和维护。也许更重要的是,汇编语言程序不能在使用不同C P U的机器间移植。因此,为了能够更加方便的读懂程序以及对程序进行改进,本设计选择了V语言进行编程。而编译环境则采用了最为常见的Keil C51。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理

56、解。在开发大型软件时更能体现高级语言的优势。4.2 主程序的设计主程序是一个程序的心脏,他将程序的各个部分连接起来,包括源函数,子函数等,它们共同构建了一个完整的程序。主程序代码如下:void main()TMOD=0x01; /设置定时器工作模式TH0=(65536-50000)/256; /定时器赋初值TL0=(65536-50000)%256; /定时器赋初值 EA=1; /开总中断ET0=1; /定时器0使能TR0=1; /定时器0中断开启speak=0; /喇叭不响while(1)if(num_ds=1) /当前正在测量的传感器号ttp1_now=ReadTemperature_of

57、_ds1();if(ttp1_now-ttp1>10) ttp1=ttp1_now;display_led(num_ds,ttp1,5);/显示当前温度if(num_ds=2) /当前正在测量的传感器号ttp2_now=ReadTemperature_of_ds2();if(ttp2_now-ttp2>10)ttp2=ttp2_now;ttp2=ReadTemperature_of_ds2();display_led(num_ds,ttp2,5); /显示当前温度if(num_ds=3) /当前正在测量的传感器号ttp3_now=ReadTemperature_of_ds3();i

58、f(ttp3_now-ttp3>10)ttp3=ttp3_now;ttp3=ReadTemperature_of_ds3();display_led(num_ds,ttp3,5); /显示当前温度if(num_ds=4)/当前正在测量的传感器号ttp4_now=ReadTemperature_of_ds4();if(ttp4_now-ttp4>10)ttp4=ttp4_now;ttp4=ReadTemperature_of_ds4();display_led(num_ds,ttp4,5); /显示当前温度按以上代码所编写的流程图如图4-1所示,首先,本设计将单片机进行初始化,其中包

59、括各种数据的定义,传感器初始化,调用键盘函数设定温度湿度上下限。然后对各路数据进行采集,并通过液晶显示,并判断是否超过设定的温度湿度上下限值。如果超出设定范围则点亮相应的报警灯。开始设置定时器读取温度传感器数值调用显示子程序显示当前数据与设定的温度门限值比较温度超限报警超过门限值正常本次循环结束进入下次循环初始化变量图4-1 主程序流程图4.3 读取温度传感器数值的程序由于温度传感器产生的数据并不能直接被LED显示程序直接调用显示,所以还需要有中间数据处理的过程。读取温度变量程序代码:unsigned int ReadTemperature_of_ds1(void)/读温度传感器1温度函数un

60、signed char a=0;unsigned char b=0;unsigned int t=0;Init_DS18B20_of_ds1();WriteOneChar_of_ds1(0xCC); / 跳过读序号列号的操作WriteOneChar_of_ds1(0x44); / 启动温度转换delay(200);Init_DS18B20_of_ds1();WriteOneChar_of_ds1(0xCC); /跳过读序号列号的操作 WriteOneChar_of_ds1(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar_of_ds1();delay(10000);b=ReadOneChar_of_ds1();/b<<=4;/b+=(a&0xf0)>>4;/t=b;t=(b*256)+a)*6.25;return(t);首先是DS18B20温度传感器的数据处理。从温度传感器读出的数据装在uchar型变量b中,即数据值为0255。其中从0127为负温度值,128255为正温度值。通过公式换算t=(b*256)+a)*6.25;便可以得到所需的温度显示数据(精度可达0.35)。同时还需要将处理后的温度数据与系统初始化后用户设定的温度上

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!