优秀毕业论文(设计):基于单片机(MCU)的蔬菜大棚温湿度监测系统设计_第1页
优秀毕业论文(设计):基于单片机(MCU)的蔬菜大棚温湿度监测系统设计_第2页
优秀毕业论文(设计):基于单片机(MCU)的蔬菜大棚温湿度监测系统设计_第3页
优秀毕业论文(设计):基于单片机(MCU)的蔬菜大棚温湿度监测系统设计_第4页
优秀毕业论文(设计):基于单片机(MCU)的蔬菜大棚温湿度监测系统设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录中文摘要I英文摘要II绪论11系统总体方案及传感器选型31.1 系统总体设计方案简述31.2系统的工作原理31.3传感器的选型4温度传感器的选型4湿度传感器的选择52传感器及其硬件电路设计62.1温度传感器DS18B20介绍62.2湿度传感器HS1101介绍112.3硬件电路设计16温度测量电路16湿度测量电路163人机接口电路173.1 键盘部分173.2显示部分173.3 报警电路设计183.4 RS-485异步半双工通信总线194 软件设计204.1 主程序流程图204.2 按键扫描子程序流程图214.3 温度程序流程图224.4 湿度程序流程图24结束语25致谢26参考文献27附

2、录128附录237基于单片机的蔬菜大棚温湿度监测系统设计摘 要本设计首先给出了基于单片机的蔬菜大棚温湿度监测系统的总体方案,描述了温度传感器DS18B20和湿度传感器HS1101的工作原理;其次,进行了硬件电路的设计,包括温度测量电路、湿度测量电路、键盘与显示电路以及报警电路;然后在硬件部分的基础上又进行了软件部分的设计,包括主程序流程图、按键扫描子程序流程图和温湿度程序流程图,最后运用C语言对各个部分进行了编程。通过实践证明,该系统具有性能好、操作方便等优点,并且实现了对温湿度的测量、显示、调节和报警功能。关键词 单片机 温度传感器 湿度传感器 THE MONITORING SYSTEM O

3、F THE TEMPERATURE AND HUMIDITY BASED ON SINGLE CHIP MIRCROCOMPUTER ABSTRACTIn this paper, we first present the general scheme of the monitoring system of the temperature and humidity based on single chip microcomputer, and describe the working principle of the temperature sensor DS18B20 and the humi

4、dity sensor HS1101. Secondly, this paper designed the hardware electric circuits which include temperature measurement circuit, humidity measurement circuit, key and display circuit and alarm circuit. Then on this basis, it designed the software,this software part includes main program flow diagrams

5、, the key-press scanning subprogram flow diagrams and temperature and humidity program flow diagrams. Finally, using C language programmed each part of the scheme. Prove through practice the system has the advantage of better performance and convenient operation, and also realized the measurement, d

6、isplay, regulation and alarm function of temperature and humidity.KEY WORDS single chip microcomputerthe temperature sensor the humidity sensor绪 论 温湿度是衡量温室大棚的重要指标,它直接影响到栽培作物的的生长和产量,为了能给作物提供一个合适的生长环境,首要问题是加强温室内的温湿度的检测, 传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费

7、时费力、效率低,且测试的温度及湿度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量仪。本设计即是针对这一问题,设计出了能够实现温湿度自动检测,显示,上下限报警等多功能的温湿度监测控制系统。 在传统的温度测量系统设计中,往往采用模拟技术进行设计。温度传感器一般采用热电阻、热电偶等模拟器件,需要额外加补偿电路,安装复杂,成本较高。而且必须经过A/D转换后才可以被微处理器识别和处理。这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。而DS1820新型单总线数字温度传感器,采用3脚(或8

8、脚)封装,从DS1820读出或写入数据仅需要一根I/O口线,而且测量精度达到12位,最低精确到小数点后4位有效数字。用这种智能化数字式传感器的优胜显而易见。 现代湿度测量方案最主要的有两种:干湿球测湿法,电子式湿度传感器测湿法。下面对这两种方案进行比较: 干湿球湿度计的特点:干湿球湿度计的准确度只有57RH。干湿球测湿法采用间接测量方法,通过测量干球、湿球的温度经过计算得到湿度值,因此对使用温度没有严格限制,在高温环境下测湿不会对传感器造成损坏。干湿球测湿法的维护相当简单,在实际使用中,只需定期给湿球加水及更换湿球纱布即可。与电子式湿度传感器相比,干湿球测湿法不会产生老化,精度下降等问题。所以

9、干湿球测湿方法更适合于在高温及恶劣环境的场合使用。 电子式湿度传感器的特点: 电子式湿度传感器的准确度可以达到23RH。电子式湿度传感器的精度水平要结合其长期稳定性去判断,一般说来,电子式湿度传感器的长期稳定性和使用寿命不如干湿球湿度传感器。湿度传感器是采用半导体技术,因此对使用的环境温度有要求,超过其规定的使用温度将对传感器造成损坏。所以电子式湿度传感器测湿方法更适合于在洁净及常温的场合使用。 系统完成后可以通过温度传感器DB18B20和湿度传感器HS1101对大棚温室内的温湿度进行测量,通过单片机AT89S51对采集到的数据进行处理,用LED显示出当前环境的温湿度状况,其中温度可以有操作人

10、员根据不同作物所需的最适宜温度进行调节,当环境温度和设置的最适宜温度之差大于3时,报警装置即会启动。1 系统总体方案及传感器选型1.1 系统总体设计方案简述 该温湿度测控系统是由数据采集和处理系统和报警系统组成,由温度、湿度传感器,显示器,键盘与报警电路等组成。通过对信号的采集、分析、处理,然后输出信号来使执行部件进行动作,使温室大棚达到所要求指标。1.2 系统的工作原理温湿度测控系统能完成数据采集和处理、显示、串行通信、输出控制信号,实现人机对话等多种功能。由数据采集及处理、单片机、控制和人机接口等4个大的部分组成。该测控系统具有实时采集(检测温室大棚内的温湿度)、实时处理(对监测到的温湿度

11、值进行比较分析,决定下一步控制进程)、实时控制(根据处理的结果发出控制指令,指挥被控对象动作)的功能。主要硬件包括温度传感器,湿度传感器,AT89S51单片机、数据采集电路、LED显示器、发光二极管、蜂鸣器、键盘等。其原理结构图如图1-1所示:复位电路湿度传感器处理电路温度传感器AT89S51单片机键盘显示电路报警电路485半双工收发器图1-1 原理结构图 首先充分考虑气候、环境因素对植物的影响,并根据温室大棚内植物保持正常状态所需的温度和湿度,设计出温湿度参考值预先存储于单片机中。系统的数据采集部分是将温湿度传感器置于温室内部,测出室内的温湿度值之后送入AT89S51单片机中,然后LED显示

12、出温湿度测量值。单片机将预设的参考值与测量值进行比较,根据比较结果做出判断。当温湿度值超过允许的误差范围,系统将发出报警,如果有必要,工作人员还可以根据实际的情况通过键盘来人工修改片内存储的预设值。通过对整个系统的核心单片机部分的设计,达到优化控制温湿度的目标。1.3 传感器的选型 传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量,因此选择正确的温湿度传

13、感器在设计中起着至关重要的作用。温度传感器的选型 方案一:采用热电阻温度传感器 热电阻是利用导体的电阻随温度变化的特性制成的测温元件。现应用较多的有铂、铜、镍等热电阻。其主要的特点为精度高、测量范围大、便于远距离测量。 铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和温度标准。缺点是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。按IEC标准其测温范围为-200650,百度电阻比W(100)=1.3850时,R0为100和10,其允许的测量误差A级为±(0.15+0.002t),B级为±(0

14、.3+0.005t)。 铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加工,但其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于-50180测温。 方案二:采用DS18B20作为温度传感器DS18B20是由Dallas半导体公司生产的“一线总线”接口的温度传感器。一线总线结构具有简洁且经济的特点,可使用户轻松地组建传感器网络,从而为测量系统的构建引入全新概念,DS18B20的测温范围为-55+125,在-10+85范围内,精度为±0.0625,现场温度可直接通过“一线总线”以数字方式传输,大大提高了系统的抗干扰性。DS18B20适合于恶劣环境的现场温度测量,如环境控制、设备或过程

15、控制、测温类消费电子产品等。它工作在3V5.5V的电压范围,采用多种封装形式,从而使系统设计更灵活、方便,设定分辨率及用户设定的报警温度存储在EEPROM中,掉电后依然保存。综合比较方案一与方案二,方案二更为适合于本设计系统对于温度传感器的选择。湿度传感器的选择 测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。 方案一:采用HOS-201湿敏传感器HOS-201湿敏传感器为高湿度开关传感器,它的

16、工作电压为交流1V以下,频率为50HZ1KHZ,测量湿度范围为0100%RH,工作温度范围为050,阻抗在75%RH(25)时为1M。这种传感器原是用于开关的传感器,不能在宽频带范围内检测湿度,因此,主要用于判断规定值以上或以下的湿度电平。然而,这种传感器只限于一定范围内使用时具有良好的线性,可有效地利用其线性特性。方案二:采用HS1100/HS1101湿度传感器HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面接触(HS1101)两种

17、封装产品,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。相对湿度在1%-100%RH范围内;电容量由16pF变到200pF,其误差不大于±2%RH;响应时间小于5S;温度系数为0.04 pF/。可见精度是较高的。综合比较方案一与方案二,方案一虽然满足精度及测量湿度范围的要求,但其只限于一定范围内使用时具有良好的线性,可有效地利用其线性特性。而且还不具备在本设计系统中对温度-3050的要求,因此,我们选择方案二来作为本设计的湿度传感器。2 传感器及其硬件电路设计2.1 温度传感器DS18B20介绍测温元件采用新型的温度传感器DS18B20。DS18

18、B20是由Dallas半导体公司生产的“一线总线”接口的温度传感器。一线总线结构具有简洁且经济的特点,可使用户轻松地组建传感器网络,从而为测量系统的构建引入全新概念,DS18B20的测温范围为-55+125,在-10+85范围内,精度为±0.0625,现场温度可直接通过“一线总线”以数字方式传输,大大提高了系统的抗干扰性。DS18B20适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。它工作在3V5.5V的电压范围,采用多种封装形式,从而使系统设计更灵活、方便,设定分辨率及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的内部结构如

19、图2-1所示:图2-1 DS18B20的内部结构温度测量原理电路如图2-2所示:低温度系数振荡器斜率累加器计数比较器预置减法计数器减至0温度寄存器预置高温度系数振荡器减法计数器减至0图2-2 温度测量原理电路DS18B20主要有4部分组成:64为ROM、温度传感器、非易失性温度报警触发器TH和TL、配置寄存器。DS18B20有三个引脚,GND接地;DQ数字信号的输出/输入;Vdd为外接电源输入端。DS18B20的封装形式及引脚排列如图2-3所示:图2-3DS18B20的引脚排列图DS18B20有4个主要的数据部件:(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20

20、的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。其中DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(采用寄生电源供电方式时接地)。DS18B20温度数据如表2-1所示:

21、表2-1DS18B20温度数据表TEMPERATUREDIGITAL OUTPUT(Binary)DIGITAL OUTPUT(Hex)+125+85+25.0265+10.125+0.50-0.5-10.125-25.0625-550000 0111 1101 00000000 0101 0101 00000000 0001 1001 00010000 0000 1010 00100000 0000 0000 10000000 0000 0000 00001111 1111 1111 10001111 1111 0101 11101111 1110 0110 11111111 1100 10

22、01 000007D0h0550h0191h00A2h0008h0000hFFF8hFF5EhFF6EhFC90H(3)DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 (4)配置寄存器 该字节各位的意义如表2-2所示:表2-2 配置寄存器结构TM R1 R0 1 1 1 1 1 低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示(DS1

23、8B20出厂时被设置为12位):表2-3 分辨率设置R1R0分辨率温度最大转换时间009位93075ms0110位187.5ms1011位375ms1112位750msDSl8B20工作过程中的协议如下: 初始化:ROM操作命令;存储器操作命令;处理数据。 初始化 单总线上的所有处理均从初始化开始。 ROM操作命令 总线主机检测到DSl820的存在,便可以发出ROM操作命令之一,这些命令如 :指令代码 Read ROM(读ROM) 33H Match ROM(匹配ROM) 55H Skip ROM(跳过ROM CCH Search ROM(搜索ROM) F0H Alarm search(告警搜

24、索) ECH存储器操作命令 指令代码Write Scratchpad(写暂存存储器) 4EH Read Scratchpad(读暂存存储器) BEH Copy Scratchpad(复制暂存存储器) 48H Convert Temperature(温度变换) 44H Recall EPROM(重新调出) B8H Read Power supply(读电源) B4H 时序 主机使用时间隙(time slots)来读写DSl820的数据位和写命令字的位 (1)初始化 时序见图2-4。主机总线T0时刻发送一复位脉冲(最短为480us的低电平信号),接着在tl时刻释放总线并进入接收状态,DSl8B20

25、在检测到总线的上升沿之后,等待15-60us,接着DSl8B20在t2时刻发出存在脉冲(低电平持续60-240us),如图中虚线所示:图2-4 主机读时序(2)写时间隙当主机总线t0时刻从高拉至低电平时,就产生写时间隙,见图2.5、图2.6,从t0时刻开始15us之内应将所需写的位送到总线上,DSl8B20在t0后15-60us间对总线采样。若低电平,写入的位是0,见图2-5;若高电平,写入的位是1,见图2-6。连续写2位间的间隙应大于1us。图2-5 DS18B20写0图2-6 DS18B20写1(3)读时间隙 见图2-7,主机总线t0时刻从高拉至低电平时,总线只须保持低电平t0一t1。之后

26、在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t2时刻前有效。t2距t0为15us,也就是说t2时刻前主机必须完成读位,并在t0后的60us一120 us内释放总线。 图2-7主机读时序2.2 湿度传感器HS1101介绍测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。下面介绍HS1101湿度传感器及其应用。 HS1101的特点是不需校准的完全互换性,高可靠性和长期稳定性,具有快速响应时

27、间,可以自动化焊接,包括波峰焊或水浸,专利设计的固态聚合物结构,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。图2-8为湿敏电容工作的温、湿度范围。图2-9为湿度-电容响应曲线。 图2-8 湿敏电阻工作的温、湿度范围 图2-9 湿度-电容响应曲线相对湿度在1%-100%RH范围内;电容量由16pF变到200pF,其误差不大于±2%RH;响应时间小于5S;温度系数为0.04 pF/。可见精度是较高的。HUMIREL 湿度传感器 HS1101基于独特工艺设计的电容元件,这些相对湿度传感器可以大批量生产。可以应用于办公自动化,车厢内空气质量控制,家电,

28、工业控制系统等。在需要湿度补偿的场合他也可以得到很大的应用。HS1101的外部结构及符号如图2-10所示: 图2-10 HS1101的符号及外部结构HS1101电容式湿度传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。如何将电容的变化量准确地转变为计算机易于接受的信号,常有两种方法:一是将该湿敏电容置于运放与阻容组成的桥式振荡电路中,所产生的正弦波电压信号经整流、直流放大、再A/D转换为数字信号;另一种是将该湿敏电容置于555振荡电路中,将电容值的变化转为与之成反比的电压频率信号,可直接被计算机所采集。 空气湿度与电压频率的典型值如表2-4所示:表2-4 空气湿度

29、与电压频率的典型值湿度频率湿度频率%RHHZ%RHHZ073516066001072247064682071008063303069769061684068531006033506728本系统采用的是将HS1101接入555定时器组成的震荡电路中,输出一定频率的方波信号,这种方法结构简单,使用方便,因此被广泛采用,具体结构图如2-11下: 图2-11HS1101和NE556构成的湿度采集电路集成定时器NE555一方面可以形成单稳态电路,另一方面可以形成多谐振荡电路,本系统选用的是NE556,它内部含有两个NE555定时器,其中R1,R2,C1,C2和NE556构成多谐振荡器,外接电阻R1,R2

30、和湿敏电容C1构成了对湿敏电容C1的充电回路,7端通过芯片内部的晶体管对地短路又构成了对C1的放电回路,并将2,6端相连引入到片内比较器。该振荡电路的两个暂稳态过程交替如下:首先是电源Ucc通过R1,R2向C2充电,经T1充电时后,Uc2充至内比较器的高触发电平,约2/3Ucc,此时输入引脚3端由高电平突降为低电平,然后通过R2放电,经T2放电时间后,Uc2下降到比较器的低触发电平,约1/3Ucc,此时输入引脚3端又由低电平跃升为高电平,如此反复,形成方波输出,其中充放电时间为:T1=C1(R1+R2)ln2(2-1)T2=C1R2ln2(2-2)因而输出的方波频率为:f=1/(T1+T2)=

31、1/C1(R1+2R2)ln2=50HZ (2-3)只要改变定时元件R1和R2就可以改变脉冲的频率,从多谐振荡器出来的信号又接入到单稳态触发器,单稳态触发器它有两个触发状态,一个稳定状态,一个暂稳定状态,在外来触发脉冲作用下,能够由稳定状态翻转到暂稳定状态,而暂稳定状态维持一段时间后,再自动的返回到稳定状态,且暂稳定状态持续时间长短取决与电路本身参数,图中,R3,C3和传感器HS1101是外接地定时元件,触发脉冲Ui由5端输出,由8端输入,下降沿有效,从9端输出一个幅度,宽度都一定的矩形波信号,输出的脉冲宽度Tp为:Tp=R3(C2+Cx)ln3(2-4)虽然从NE556输出的是标准的脉冲信号

32、,为了减少外界对信号的干扰,设计中采用低通滤波器,过滤掉高频信号的干扰,然后直接用单片机的定时计数器T1来测量脉宽Tp,通过脉宽值,我们可以得到湿度传感器的电容值,知道了传感器的电容值,我们就可以分析电容与湿度的关系,下图为HS1101的典型输出曲线,相对湿度在1%-99%RH之间,电容量由163pf变化到202pf,其误差不大于±2%RH,响应时间小于5S,温度系数为0.04pf/。湿度传感器HS1101的典型输出曲线如图2-12所示:图2-12 HS1101的典型输出曲线根据HS1101的典型输出曲线,以及传感器的相关资料,我们可以得到电容值与湿度值的近似关系为:RH(Cx-16

33、3)/0.39 (2-5)我们可以根据前面测量出的NE556输出的脉宽值,求出相应的电容值,再根据上式,我们就可以由相应的电容值求出湿度值。2.3 硬件电路设计温度测量电路温度测量采用DS18B20,它是单线传输器件,不需校正温宿,接口接的是P3.6,具体的温度测量电路如图3-1所示:图3-1温度测量电路湿度测量电路湿度测量用的是HS1101电容式湿度传感器,他与NE556组成一方波发生电路,湿度改变对应频率的变化,用单片机采集频率值进行转化得出湿度值,具体的湿度测量电路如图3-2所示:图3-2 湿度测量电路3人机接口电路3.1 键盘部分根据该系统的实际情况,我选用了独立式键盘。独立式键盘是各

34、个按键相互独立地连通两条输入数据线。这种键盘结构的优点是电路简单,缺点是当键的数量较多时占用的I/O线的数量较多。其电路结构如图3-3所示:图3-3 键盘连接3.2 显示部分八位数码管采用动态显示方式,动态显示可节省端口,方便连接,由于每个数码管处于轮流导通状态,因此,每次只有一个数码管点亮,比静态数码管可省电。数码管显示电路如图3-4所示:图3-4 显示电路3.3报警电路设计在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下

35、限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。本设计采用两个发光二级管和蜂鸣器作为报警电路。发光二级管与单片机的两个I/O口连接,当测定的温度或者湿度超过上下限时,二极管发光报警。蜂鸣器报警电路的设计只需购买市售的压电式蜂鸣器,然后通过AT89S51的1根口线经驱动器驱动蜂鸣器发声。压电式蜂鸣器需要约10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图中,当输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当输出低电平“0”时,三极管截止,蜂鸣器停止发声。图3-5、

36、3-6为电路原理图:图3-5发光二级管报警电路图3-6三极管驱动的蜂鸣器报警电路3.4 RS-485异步半双工通信总线RS-485异步半双工通信总线是被广泛使用的数据通信总线,往往应用在集中控制枢纽与分散控制单元之间。在本系统中,使用RS-485异步半双工通信总线,能够多点测量大棚温湿度,并与上位机连接,实现远程控制。485总线应用电路图如图3-7所示:图3-7RS-485总线的应用电路图在应用系统中,主机与分机一般相隔较远,而分级系统上电或复位又常常不在同一个时刻完成,如果在此时DE端电位为“1”,那么485总线的输出将会处于发送状态,也就是占用了通信总线,这样其他的分机就无法与主机进行通信

37、。这种情况尤其表现在某个分机出现异常情况下(死机),会使整个系统通信崩溃。因此在电路设计时,应保证系统上电复位时DE端电位为“0”。485总线输出电路的设计要考虑到线路上的各种干扰及线路特性阻抗的匹配。由于工程环境的原因,现场常有各种形式的干扰,所以485总线的传输端一定要加有保护措施,在电路设计中采用稳压管D1、D2组成的吸收回路,有效地抵抗干扰。考虑到线路的特殊情况(如一条分机的485芯片被击穿短路),为防止总线中其他分机的通信受到影响,在输出端串联了两个20的电阻R34、R36,这样本机的硬件故障就不会使整个总线的通信受到影响。在应用系统工程的现场施工中,由于通信载体是双绞线,它的特性阻

38、抗为120左右,所以电路设计时,在RS-485网络传输线的始端和末端应加一个120的电阻(如图中R35),以减少线路上传输信号的反射。由于RS-485芯片的特性,接收器的检测灵敏度为±200mV,即差分输入端VA-VB200mV,输出逻辑1;VA-VB-200mV,输出逻辑0;而A、B端电位差的绝对值小于200mV时,输出为不确定。如果在总线上所有发送器被禁止时,接收器输出逻辑0,这会误认为通信帧的起始引起工作不正常。解决这个问题的办法是人为的使A端电位高于B端电位,这样RXD的电平在485总线不发送期间呈现唯一的高电平,8951单片机就不会被误中断而收到乱字符,通过在485电路的A

39、、B端加接上拉电阻R33、R37,即可很好的解决这个问题。485芯片的软件编程对产品的可靠性也有很大影响。由于485总线是异步半双工的通信总线,在某一个时刻,总线只可能呈现一种状态,所以这种方式一般适用于主机对分机的查询方式通信,总线上必然有一种始终处于主机地位的设备在巡检其他分机,所以需要制定一套合理的通信协议来协调总线的分时共用。这里采用的是数据包通信方式,通信数据是成帧成包发送的,每包数据都有引导码、长度码、地址码、地址码、命令码、内容、校验码等部分组成。其中引导码是用于同步每一包数据的引导头;长度码是这一包数据的总长度;命令码是主机对分机的控制命令;地址码是分机的本机地址号;内容是这一

40、包数据里的各种信息;校验码是这一包数据的校验标志,可以采用奇偶校验、和校验等不同方式。在485 通信的芯片中,尤其要注意对485控制端DE的软件编程。为了可靠地工作,在485总线状态切换时需要做适当延时,再进行数据的收发,具体做法是在数据发送状态下,先将控制端置“1”,延时1ms左右的时间,再发送有效的数据,一包数据发送结束后再延时1ms左右的时间后,将控制端置“0”。这样的处理会使总线在状态切换时,有一个稳定的工作过程。4 软件设计4.1 主程序流程图主程序流程图如图4-1所示:开始初始化单片机初始化DS18B20初始化HS1101初始化LED读取温度数据显示读取湿度数据返回图4-1系统主程

41、序流程图4.2 按键扫描子程序流程图按键扫描子程序如图4-2所示:KEY0键按下KEY1键按下设定温度值加1设定温度值减1正常工作指示灯工作YYYNNN异常指示灯工作蜂鸣器报警检测到温度在正常范围图4-2 按键扫描子程序流程图4.3 温度程序流程图温度报警程序流程图如图4-3所示:开始总线复位跳过ROM设置匹配ROM发送ROM编号报警开始温度转换延时1秒显示温度DS18B20开始温度转换是否超限制温度NY图4-3温度报警流程图4.4 湿度程序流程图湿度测量部分程序流程图如图4-4所示:湿度处理函数重新设置定时器,计数从头来过,等待3s后下一次结果定时器0、1初始化读取定时器计数值函数返回定时器

42、设置50ms定时,启动定时中断对计数值求算法得湿度值,保存,以便显示调用是否中断60次,即3sYN图4-4湿度测量部分程序流程图结束语本设计以满足工况需要最大限度的提高工作效率和节省人力物力为出发点,使用AT89S51单片机对温室大棚内的温湿度进行数据的采集、接收,处理、发送和控制。单片机采用C语言程序,建立模块化结构,各模块互相独立,有较高的可靠性和扩展性。可与上位机连机通讯,实行远程监控,大大提高了储存质量也节省了大量的人力物力。本设计的有优点在于操作人员可根据不同农作物的需求来设定最佳适宜温度值,在当前温度偏离所设定的适宜温度±3时,报警装置发光二极管和蜂鸣器即会启动,该系统基

43、本实现了对温湿度的测量与显示,操作人员可以根据显示指示,来判断当前温湿度是否对作物生长有利。 该系统的不足之处在于没能够实现温湿度的自动调节,可以进一步加入温湿度自动调节电路,在当前温湿度超出作物所需的最适宜条件时,启动温湿度调节装置,就可以真正的实现温湿度的自动控制。 致 谢参考文献1梁中明. 基于DS18B20与虚拟I(2)C总线的数字温度测量装置设计J.湖北电子报,2006.2刘迎春.传感器原理设计与应用M.北京:国防科技大学出版社,2005. 205-207. 3余成波.胡新宇,赵勇. 传感器与自动检测技术M.北京:高等教育出版社,2006.4金杰. DS18B20实现高精度温度测量J

44、. 郑州电子报,2005,(2005-02-27).5吴兴慧,王彩君.传感器与信号处理M.北京:电子工业出版社,1998.6张世英,刘万莹,李仁兵. 基于AT89S51单片机的温湿度监控系统设计A.中南六省(区)自动化学会第24届学术年会会议论文集C,2006.7新型单片机AT89S51及其应用举例J.1996.8苏家健,曹柏荣,汪志峰. 单片机原理及应用技术M .北京:高等教育出版社,2006.9赵娜,赵刚.基于51单片机的温度测量系统J.微计算机信息,2007,23(1):146148.10刘攀,俞杰.基于单片机的温度测控系统J.兰州交通大学学报,2005,6(12):103106.11黄

45、明,梁旭,岳洋.基于CAN总线设计实现的数据采集监控系统J.化工自动化及仪表,2010,37(6):79-81.12张培仁,孙力.基于C语言C8501F系列微控制器原理与应用M.北京:清华大学出版社,2007.13Oregano Systems. MC8051 IPCore UserGuide z.Oregano Systems.2002.6.14冯显英,葛荣雨.基于数字温湿度传感器SHT11的温湿度测控系统J.自动化仪表,2006,27(1):5961.15李俊,张晓东.基于单片机的温湿度检测与控制系统研究J.微计算机信息,2008,24(17):116118.16陶然,王树文.智能化温室环

46、境控制系统的研究J.农机化研究,2003,33(2):5355.17Sensirion Company.SHT1 x/SHT7x humidity temperaturesensor datasheetZ. 2005.附录1:程序清单/*/ #include "reg52.h" #include "intrins.h" /_nop_();延时函数用#include "string.h" #define Disdata P1 /段码输出口 #define uchar unsigned char #define uint unsigned

47、 int /* 485通信命令 */#define _ACTIVE_ 0x01 / 主机询问从机是否存在#define _GETDATA_ 0x02 / 主机发送读设备请求#define _OK_ 0x03 / 从机应答#define _STATUS_ 0x04/ 从机发送设备状态信息#define _MAXSIZE 0x08 / 缓冲区长度#define _ERRLEN 12 / 任何通信帧长度超过12则表示出错uchar dbuf_MAXSIZE; / 该缓冲区用于保存设备状态信息uchar dev=1; / 该字节用于保存本机设备号unsigned int S,G,TH,RS; unsi

48、gned char B1,B2,B3;/定义数的各位数,分别为百,十,个位 uint number; unsigned char num=0; sbit DQ=P36; /温度输入口sbit HS=P35; /湿度输入口 sbit DIN=P17; /LED小数点控制 sbit LED1=P22; sbit LED2=P23; sbit BEEP=P27; /蜂鸣器输出口 sbit key1=P20; sbit key2=P21; sbit S1=P00; /位选端sbit S2=P01; sbit S3=P02; sbit S4=P03; sbit S5=P04; sbit S6=P05;

49、sbit S7=P06; sbit S8=P07; sbit M_RE=P26; /接收器使能,0有效sbit M_DE=P25; /驱动器使能,1有效uint h,T; uint temp; uchar coad ASCii=48,49,50,51,52,53,54,55,56,57;/* 温度小数部分用查表法*/ uchar code ditab16= 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09; / uchar code dis_7=0x3f,0x06,0x5b,0x4f,

50、0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共阴LED 段码表 "0" " 1" "2" "3" "4" "5" "6" "7" "8" "9" uchar data temp_da ta2=0x00,0x00; /读出温度暂放 uchar data display4 =0x00,0x00,0x00,0x00; /显示单元数据,共 3 个数据和一个运算暂用 /*11us 延时函数

51、* * */ void del10ms() uint a,b; for(a=40;a!=0;a-) for(b=248;b!=0;b-); void delay(uint t) for (;t>0;t-); /*/ void timer0()interrupt 1 TH0=0x3C; TL0=0xB0;/定时 50ms num+;/记到 20 就直接停止 /*/ void scankey() if ( key1=0) del10ms(); if(key1=0) TH+; if (key2=0) del10ms(); if(key2=0) TH-; T=display2*10+display1; if

温馨提示

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

评论

0/150

提交评论