基于单片机的温室大棚的温度测控系统设计.doc

上传人:土8路 文档编号:10130838 上传时间:2021-04-22 格式:DOC 页数:31 大小:516KB
返回 下载 相关 举报
基于单片机的温室大棚的温度测控系统设计.doc_第1页
第1页 / 共31页
基于单片机的温室大棚的温度测控系统设计.doc_第2页
第2页 / 共31页
基于单片机的温室大棚的温度测控系统设计.doc_第3页
第3页 / 共31页
基于单片机的温室大棚的温度测控系统设计.doc_第4页
第4页 / 共31页
基于单片机的温室大棚的温度测控系统设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《基于单片机的温室大棚的温度测控系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的温室大棚的温度测控系统设计.doc(31页珍藏版)》请在三一文库上搜索。

1、毕毕 业业 论论 文文 题题 目:目: 基于单片机的温室大棚的温度测控系统设计 作作 者:者: 学学 号号 : 系系 : 电子信息系 专专 业业 : 电子信息工程技术 班班 级级 : 指导者:指导者: 副教授 评阅者:评阅者: 讲 师 2013 年 04 月 毕业设计(论文)中文摘要 基于单片机的温室大棚温度测控系统 摘要 本文从硬件和软件两方面来讲述温室大棚温度系统的设计过程。系统以单 片机 AT89C52 为核心控制部件,通过 10K NTC 温度传感器采集环境温度,并通过 数码显示管显示实时温度。硬件上从温度检测电路、信号放大电路、A/D 转换电 路、输出控制电路、键盘及 LED 显示电

2、路的设计等几个方面出发,详细研究和设 计了基于单片机的温室大棚温度测控系统的各个部分内容,采用了 LTC1860、LM358、74HC245、LED 显示器等器件。软件方面采用汇编语言来进行 单片机及其外围电路的程序设计,使指令的执行速度快,节省存储空间。系统模 拟实现了蔬菜大棚温度控制的功能,并达到 0.2 度的温控精度要求,使大棚温度 可控范围达到 0-50。 关键词 单片机系统,温度传感器,数据采集 目 次 1 绪论.1 1.1 课题的来源.3 1.2 课题的意义.3 1.3 课题研究的主要内容.3 2 设备方案设计与理论基础 .4 2.1 温室大棚温度测控系统的方案设计.4 2.2 设

3、计理论基础.4 2.2.1AT89C52 单片机介绍 .5 2.2.2 LTC1860A/D 模数转换器 .7 2.2.3 运算放大器 LM358 .7 2.2.4 总线收发器 74HC245 .8 2.2.5 数码显示管 LED .8 2.2.6 NTC 温度传感器 .9 3 硬件电路设计 .7 3.1 单片机控制单元 .8 3.2 温度采样部分 .8 3.3 LED 显示部分.8 3.4 按键输入部分 .9 4 软件设计 .9 4.1 软件设计介绍.9 4.2 主程序流程图.10 4.3 子程序模块.11 4.3.1 A/D 转换子程序 .11 4.3.2 LED 显示子程序 .11 4.

4、3.3 按键输入子程序.12 4.3.4 主程序.12 结论.16 致谢.17 参考文献.18 附录.19 附录图 1 系统结构图.19 附录图 2 PCB 版图 .19 附录 3 源程序.20 1 1 绪论绪论 1.11.1 课题的来源课题的来源 温室又称暖房,能透光、保温,用来栽培植物的设施。在不适宜植物生长的季节, 能增加产量和提供生育期。因此,温室技术在世界范围内应用十分广泛。温室结构 应密封保温,但又应便于通风降温。现代化温室中具有控制温湿度、光照等条件的 设备,用电脑自动控制创造植物所需的最佳环境条件1。 温室是设施农业重要的组成部分,国外温室种植业的实践经验表明,提高温室的 自动

5、控制和管理水平可以充分发挥温室农业的高效性。大棚种植的温度控制系统解 决了长期以来困扰农民的问题,它的应用广泛,制作成本低廉。随着传感技术,计算 机技术及通讯技术的迅猛发展,现代化温室信息自动采集及智能控制系统的开发已成 为目前设施农业的一个研究热点。 1.21.2 课题的意义课题的意义 本文从国内目前温控技术的薄弱环节进行分析,找出问题的存因及改善困难, 结合相关新技术及改良设想,在 51 单片机的基础上,有效解决温室大棚的温度自动 控制,运用多个方案进行有效分析,提高温室大棚的种植培育能力。在可行性的基 础上,经过准确计算及比对,降低程序开发保证项目的有效运作。 1.31.3 课题研究的主

6、要内容课题研究的主要内容 本课题主要采用 51 单片机系统,对蔬菜大棚中温度、进行采集、检测和控制。 本文从软件和硬件两方面来讲述温室大棚温度控制系统的设计过程。软件方面采用 汇编语言来进行单片机及其外围电路的程序设计,节省存储空间,使指令的执行速 度快。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系 更加简洁明了,使硬件在软件的控制下协调运作。硬件上从 A/D 转换电路、温度检 测电路、信号放大电路、输出控制电路等几个方面出发,详细研究和设计了基于单 片机的温室大棚温度测控系统的各个部分内容。在控制过程中主要应用 AT89C52、LM358、74HC245、LTC1860

7、、LED 显示器,而主要通过 10K NTC 温度传感器 采集环境温度,以单片机为核心控制部件,并通过数码显示管显示实时温度。 系统的过程主要是:首先,通过键盘输入,设定所需要达到的温度值,并且用 数码管显示这个温度值。然后,在运行过程中将温度传感器采样的温度模拟量经过 信号放大后送入 A/D 转换器中进行模拟-数字转换,再将转换后的数字量用数码管显 示,最后由单片机来判定,与设定的温度不符合则发出警报。 2 2 设备方案设计与理论基础设备方案设计与理论基础 2.12.1 温室大棚温度测控系统的方案设计温室大棚温度测控系统的方案设计 单 片 机 温度传 感器 信号放 大电路 A/D 转 换 L

8、ED 显示 报警系统键盘输入 图 2-1 温室大棚温度测控系统结构图 首先,通过键盘输入,设定所需要达到的温度值,并且用数码管显示这个温度 值。然后,在运行过程中将温度传感器采样的温度模拟量经过信号放大后送入 A/D 转换器中进行模拟-数字转换,再将转换后的数字量用数码管显示,最后由单片机来 判定,与设定的温度不符合则发出警报。 2.22.2 设计理论基础设计理论基础 2.2.1 AT89C52 单片机介绍 AT89C52 是 51 系列单片机的一个型号,它是 ATMEL 公司生产的。 AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8K BYTES 的可反 复擦写的 F

9、LASH 只读程序存储器和 256 BYTES 的随机存取数据存储器(RAM) , 器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令 系统,片内置通用 8 位中央处理器和 FLASH 存储单元,AT89C52 单片机在电子行 业中有着广泛的应用。 其主要功能特点包括:1、兼容 MCS51 的指令系统;2、8K 可反复擦写 FLASH ROM;3、32 个双向 I/O 口;4、256X8BIT 内部 RAM;5、3 个 16 位可编程定时/计 数器中断;6、时钟频率 0-24MHZ;7、2 个串行中断,可编程 UART 串行通道; 8、2 个外部中断源,共

10、8 个中断源;9、2 个读写中断口线,3 级加密位;10、低功 耗空闲和掉电模式,软件设置睡眠和唤醒功能;11、有 PDIP、PQFP、TQFP 及 PLCC 等几种封装形式,以适应不同产品的需求。 图 2-2 AT89C52 引脚图 AT89C52P 为 40 脚双列直插封装的 8 位通用微处理器,采用工业标准的 C51 内核,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功 能控制。功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部接口等功能部件的初 始化,会聚调整控制,会聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。主要管脚有:XT

11、AL1(19 脚)和 XTAL2(18 脚)为振荡器输入输出端口, 外接 12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电 路。VCC(40 脚)和 VSS(20 脚)为供电端口,分别接+5V 电源的正负端。P0P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚) 被定义为 N1 功能控制端口,分别与 N1 的相应功能管脚相连接,13 脚定义为 IR 输 入端,10 脚和 11 脚定义为 I2C 总线控制端口,分别连接 N1 的 SDAS(18 脚)和 SCLS(19 脚)端口,12 脚、27 脚及 28 脚定义为握手信

12、号功能端口,连接主板 CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 2.2.2 LTC1860A/D 模数转换器 LTC1860 是采用 MSOP 和 SO-8 封装的 12 位 A/D 转换器,采用单 5V 工作电源。 在 250ksps 采样速率条件下,电源电流仅为 850A。在较低的速度下,电源电流将减 小,原因是 LTC1860 在转换操作之间将自动断电至一个 1nA 的典型电源电流。这 些 12 位开关电容器逐次逼近型 ADC 包括采样及保持电路。LTC1860 具有一个差分 模拟输入和一个可调基准引脚。 LTC1860 ADC 可在比例式应用中使用,或与外

13、部基准一起使用。高阻抗模拟输 入以及可在缩减的电压范围内 (低至 1V 全标度) 运作的能力使得它们在许多应用 中可与信号源直接相连,从而免除了增设外部增益级的需要13。 2.2.3 运算放大器 LM358 LM358 是有两个高增益、独立的、内部频率补偿的双运算放大器,一般作为电 源电压范围很宽的单电源使用,也适用于双电源工作模式,在适当的工作条件下, 电源电流与电源电压无关。它的可用于包括传感放大器、直流增益模块和其他所有 可用单电源供电的使用运算放大器的场合。 图 2-3 LM358 引脚图 2.2.4 总线收发器 74HC245 74HC245 为总线驱动器,典型的 TTL 型三态缓冲

14、门电路。由于单片机的数据 地址控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱 动器。而 74HC245 正好起到了这个作用。本课题中 74HC245 被用于驱动 LED 显示 器的作用15。 图 2-4 74HC245B1R 引脚图 2.2.5 NTC 温度传感器 NTC 是 Negative Temperature Coefficient 的缩写,是指随温度上升电阻呈指数关 系减小、具有负温度系数的热敏电阻现象和材料。它的主要材料是锰、镍和铜等金 属氧化物, 采用陶瓷工艺制造而成的。这些金属氧化物材料都具有半导体性质,在 导电方式上完全类似锗、硅等半导体材料。随着温度的升

15、高,载流子数目增加,所 以电阻值降低;当温度低时,这些氧化物材料的载流子(电子和孔穴)数目少,所 以其电阻值较高。 NTC 热敏电阻器在室温下的电阻变化范围一般在 1001000000 欧姆,温度系数 为-2%-6.5%。NTC 热敏电阻器广泛应用于温度补偿、温度测量、抑制浪涌电流、 温度补偿等方面12。 3 3 硬件电路设计硬件电路设计 3.13.1 单片机控制单元单片机控制单元 图 3-1 单片机控制单元图 单片机控制包括主体 AT89C52 芯片,一个上电复位电路,一个晶振电路, 10K 上拉电阻。此为整个设计的核心部分。它不仅要计算通过键盘输入的高低电平,控 制数码管显示相应的温度值,

16、还要实时将经过 LTC1860 数模转换后的电压值显示为 相应的温度值。并且通过判定温度值来确定是否发出警报。 3.23.2 温度采样部分温度采样部分 图 3-2 温度采集单元图 1 1 TL431TL431 的简介的简介 德州仪器公司(TI)生产的 TL431 是一是一个有良好的热稳定性能的三端可调分流 基准源。它的输出电压用两个电阻就可以任意地设置 s 到从 Vref (2.5V)到 36V 范 围内的任何值(如图 2)。该器件的典型动态阻抗为 0.2,在很多应用中可以用它 代替齐纳二极管,例如,数字电压表,运放电路、可调压电源,开关电源等等。 左图是该器件的符号。3 个引脚分别为:阴极(

17、CATHODE)、阳极(ANODE)和参 考端(REF)。TL431 的具体功能可以用如图 1 的功能模块示意。 由图可以看到,VI 是一个内部的 2.5V 基准源,接在运放的反相输入端。由运放 的特性可知,只有当 REF 端(同相端)的电压非常接近 VI(2.5V)时,三极管中才 会有一个稳定的非饱和电流通过,而且随着 REF 端电压的微小变化,通过三极管 图 1 的电流将从 1 到 100mA 变化。当然,该图绝不是 TL431 的实际内部结构,所以不 能简单地用这种组合来代替它。但如果在设计、分析应用 TL431 的电路时,这个模 块图对开启思路,理解电路都是很有帮助的,本文的一些分析也

18、将基于此模块而展 开。 5V 电源输入。 NTC 温度传感器,温度越高,它的阻值就会越小,常温下即 25 度时,它的阻值大概为 10K 欧,然后通过 10mA 恒流源电路,它可以达到 0.1V , 经过放大电路放大 10 倍后,电压为 1V。通过 AD 芯片 LTC1860 测得电压值,因为 电压随温度的变化而线性变化。 3.3 LED 显示部分 图 3-3 LED 显示器图 通过 74HC245 芯片将 51 单片机处理的温度信息显示在 LED 数码管上,图为温 度测控系统的的单片机显示部分。显示部分在整个设计中起到非常大的作用,它不 仅显示了我们输入的标准温度同时也实时显示了温室大棚的环境

19、温度。 3.43.4 输入输出部分输入输出部分 图 3-4 按键输入及报警输出 按键用来设置报警温度,通过 INC、DEC、OK 这三个按键来实现人机对话,人 为的设定需要达到的温度。INC 为设置上限温度,DEC 为设置下限温度,OK 为确 认设定键。报警采用蜂鸣器,当温度未达到设定温度内时,蜂鸣器鸣叫。 4 4 软件设计软件设计 4.14.1 软件设计介绍 软件的编程设计是单片机系统设计的核心部分,也是能否实现预定功能的关键。 单片机编程常用的语言是 C 语言和汇编语言,最终都要转为 Intel HEX 格式或二进制 格式(Binary)文件拷入单片机芯片内。这里我们使用的是 C 语言进行

20、编程设计。 编程前,必须将地址、数据以及控制信号设置好。 原理图设计及 PCB 设计采用了 protel99 SE 。它提供了对高密度封装(如 BGA)的交互布线 , 精确移动器件,总线布线等功能。 系统设计中所用到的 AD 芯片 LTC1860 为 s0-8 封装,贴片; 74HC245 为 DIP20 封装;单片机 89C52 为 DIP40 封装;蜂鸣器: 5V;轻触开关: 6*6;三极管 9013 为直插式;稳压器 TL431 为三脚直插;无源晶振: 12M;运放 LM358 为 8 脚直插。 4.24.2 主程序流程图主程序流程图 图 4-1 系统流程图 4.34.3 子程序模块子程

21、序模块 4.3.1 A/D 转换子程序 AD 转换程序,需要根据 LTC1860 的读时序图,对照时序来看。其结果为串行输出的,所以 需要一根数据线,一根时钟线,还有一根是转换控制线。 以下是 A/D 转换的部分子程序: uint ult1860() /AD 转换子程序 uchar i; uint output=0; CONV=1; CONV=0; for(i=12;i0;i-) SCK=0; SCK=1; output|=DATA; output0;i-) P0=dig_numVi-1; if(i=2) P0|=0 x80; P1=(0 x4(i-1); delay(1); P1=0 xff

22、; 4.3.3 按键输入子程序 此程序是本毕业设计中最为重要的一个部分,它对输入部分进行一个判断来区 分各个按键起到的作用。 以下是路灯开关控制部分程序: uchar presskey1(void) if(K1=0) return 1; else return 0; uchar presskey2(void) if(K2=0) return 1; else return 0; uchar presskey3(void) if(K3=0) return 1; else return 0; 4.3.4 主程序 #INCLUDE #INCLUDE #DEFINE UINT UNSIGNED INT

23、#DEFINE UCHAR UNSIGNED CHAR sbit DATA=P25; sbit SCK=P24; sbit CONV=P26; sbit K1 =P20; sbit K2 =P21; sbit K3 =P22; sbit SOUND =P23; void delay(unsigned int); uchar code dig_num10= 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /*共阴级数码管的段选码*/ uchar V3; bit soundbit=0; uint uplimit=200; u

24、int downlimit=100; uchar setflag=0; /延时函数 void delay(uint dt) uchar bt; for(;dt;dt-) for(bt=0;bt0;i-) Vi-1=temp/1638; temp=temp%1638*10; WD=V2*100+V1*10+V0; if(setflag=2) Display(uplimit); else if(setflag=1) Display(downlimit); Else Display(WD); if(WDuplimit|WDdownlimit) soundbit=1; Else soundbit=0;

25、 结论 4 个月的毕业设计即将结束,这也意味着我们的大学生活也要结束了,但是我们 对于学习却永远不会结束。在本次设计中,我不仅学到了新的知识,也对四年来大 学所学的理论知识加以实践。这不但增强了我的动手能力,也提高了我对于知识的 综合运用水平,为以后的学习和工作打下了扎实的基础。 本文以 AT89C51 系列单片机为核心,用 AT89C52 单片机作为控制器件,温度 信号通过温度传感器和稳压器转变成电压信号,接着通过放大器放大,再由 LTC1860 转换成数字信号。温度测定采用恒流源电路,温度设定通过按键来完成, 输出为警报器鸣铃。软件算法采用设定值和测量值想比较的算法。在单片机应用基 础上,

26、实现了一种用带 EPROM 的 AT89C52 单片机控制传感器的自动化温度测控系 统。 致谢致谢 本课题是在导师张老师的悉心指导下完成的,从论文的选题、系统设计、到修 改定稿都没有离开张老师的帮助,通过本次设计,本人在张老师的指引下学到了许 多有用的知识,这些是在平时的学习中得不到的知识,他严谨的治学态度和悉心的 指导使我受益非浅。在此,向张老师表以崇高的敬意和由衷的感谢!还要感谢各位 评阅老师,经过你们的认真评阅和指正,将会使我的设计的系统更加的完整。在此, 我向你们致以最诚挚的谢意! 在平时严谨的治学和勤恳的教育,让我在平时打下坚实的基础,才能顺利完成 本次设计,可以说没有你们的教诲和指

27、导,我们也不会取得今天的成绩。我想对他 们说一声:感谢你们的教导和关心,您们辛苦了! 本次课程设计的完成还离不开我身边同学和一些老师的帮忙,在系统软件设计 方面同学给了我很大的帮助,因为期间我一直在外实习工作,许多事都要麻烦在校 的老师和同学帮忙,在此,向他们表示感谢!另外由于本人学识所限在,再加上第 一次做,难免有所错漏望导师批评指正。 参考文献参考文献 1马祥兴 电子技术及应用,2010(8). 2缪晓中 电子 CAD,2010(3) 3朱永金 成友才 单片机应用技术,2011(11) 4刘刚 王立香 任鲁涌 Multisim sbit SCK=P24; sbit CONV=P26; sb

28、it K1 =P20; sbit K2 =P21; sbit K3 =P22; sbit SOUND =P23; void delay(unsigned int); /延时函数 uchar code dig_num10= 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /*共阴级数码管的段选码*/ uchar V3; /显示缓存 bit soundbit=0; /报警标志位 uint uplimit=200; /温度上限 uint downlimit=100; /温度下限 uchar setflag=0; /切换显示标志

29、 /温度值 /延时函数 void delay(uint dt) uchar bt; for(;dt;dt-) for(bt=0;bt0;i-) SCK=0; SCK=1; output|=DATA; output0;i-) /数码管输出 P0=dig_numVi-1; if(i=2) P0|=0 x80; /显示小数点 P1=(0 x4(i-1); /数码管选择移位 delay(1); P1=0 xff; uchar presskey1(void) /按键 1 按下判断 if(K1=0) return 1; else return 0; uchar presskey2(void) /按键 2

30、按下判断 if(K2=0) return 1; else return 0; uchar presskey3(void) /按键 3 按下判断 if(K3=0) return 1; else return 0; void main( ) TMOD = 0 x01; /定时器 T0 工作方式 1:16 位方式 TH0 = 0 xF8; /设定显示屏刷新率 62.5 帧/S TL0 = 0 x30; ET0=1; /开定时器 0 中断 EA=1; /开总中断 TR0 = 1; /开定时器 0 while (1) if(presskey1() /按键 1 被按下处理,设置上限 setflag=2;

31、while(K1=0); uplimit+=2; if(uplimit=400) uplimit=0; if(presskey2() /按键 2 被按下处理,设置下限 setflag=1; while(K2=0); downlimit-=2; if(downlimit=0) downlimit=400; if(presskey3() /按键 3 被按下处理,确认键 while(K3=0); setflag=0; if(soundbit) SOUND=1; Else SOUND=0; /显示屏扫描(定时器 T0 中断)函数 void leddisplay(void) interrupt 1 ui

32、nt temp,i; TH0 = 0 xF8; /设定显示屏刷新率 62.5 帧/S TL0 = 0 x30; temp=ult1860(); for(i=3;i0;i-) /把 AD 结果转换为三位十进制 Vi-1=temp/1638; temp=temp%1638*10; WD=V2*100+V1*10+V0; if(setflag=2) /当按键 1 显示 Display(uplimit); else if(setflag=1) /当按键 2 显示 Display(downlimit); Else /平常显示 Display(WD); if(WDuplimit|WDdownlimit) /报警处理 soundbit=1; Else soundbit=0;

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1