温室大棚温度控制..doc

上传人:豆**** 文档编号:28463918 上传时间:2022-07-28 格式:DOC 页数:29 大小:695KB
返回 下载 相关 举报
温室大棚温度控制..doc_第1页
第1页 / 共29页
温室大棚温度控制..doc_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《温室大棚温度控制..doc》由会员分享,可在线阅读,更多相关《温室大棚温度控制..doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date温室大棚温度控制.安徽冶金科技职业学院 烟 台 南 山 学 院单片机课程设计题目 温室大棚温度控制 姓 名: 所在学院: 烟台南山学院 所学专业: 自 动 化 班 级: 09自动化02班 学 号: 指导教师: 完成时间: 2012-9-10 -摘要 在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度和湿度打着交道。自18世

2、纪工业革命以来,工业发展与是否能掌握温湿度有着密切的联系。在冶金、钢铁、石化、水泥、玻璃、医药等行业,可以说几乎80%的工业部门都不得不考虑着温湿度的因素。温湿度不但对于工业如此重要,在农业生产中温度的监测与控制也有着十分重要的意义。我国人多地少,人均占有耕地面积更少。因此,要改变这种局面,只靠增加耕地面积是不可能实现的,因此我们要另辟蹊径,想办法来提高单位亩产量。温室大棚技术就是其中一个好的方法。温室大棚就是建立一个模拟适合生物生长的气候条件,创造一个人工气象环境,来消除温度对生物生长的约束。而且,温室大棚能克服环境对生物生长的限制,能使不同的农作物在不适合生长的季节产出,使季节对农作物的生

3、长不再产生过度影响,部分或完全摆脱了农作物对自然条件的依赖。由于温室大棚能带来可观的经济效益,所以温室大棚技术越来越普及,并且已成为农民增收的主要手段。随着大棚技术的普及,温室大棚数量不断增多,温室大棚的温湿度控制便成为一个十分重要的课题。传统的温湿度控制是在温室大棚内部悬挂温度计和湿度计,通过读取温度值和湿度值了解实际温湿度,然后根据现有温湿度与额定温湿度进行比较,看温湿度是否过高或过低,然后进行相应的通风或者洒水。这些操作都是在人工情况下进行的,耗费了大量的人力物力。现在,随着国家经济的快速发展,农业产业规模的不断提高,农产品在大棚中培育的品种越来越多,对于数量较多的大棚,传统的温度控制措

4、施就显现出很大的局限性。温室大棚的建设对温湿度检测与控制技术也提出了越来越高的要求。今天,我们的生活环境和工作环境有越来越多称之为单片机的小电脑在为我们服务。单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等各测控领域的应用中独占鳌头。时下,家用电器和办公设备的智能化、遥控化、模糊控制化已成为世界潮流,而这些高性能无一不是靠单片机来实现的。采用单片机来对温湿度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温湿度的技术指标,从而能够大大提高产品的质量和数量。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛

5、应用的器件,尤其在日常生活中也发挥越来越大的作用。因此,单片机对温湿度的控制问题是一个工农业生产中经常会遇到的问题。因此,本课题围绕基于单片机的温室大棚控制系统展开了应用研究工作。 目录1 绪论 12 总体方案设计 2 3 系统硬件的设计 3 3.1 单片机AT89C2051 3 3.2 AD590集成温度传感器 4 3.3 系统报警电路 4 3.4 A/D转换器的设计5 3.5 系统的电源电路设计5 3.6 相关硬件电路设计 6 3.6.1 温度检测电路 64 系统软件的设计7 4.1 主流程图设计 7 4.2 中断服务流程图设计 8 4.3 键盘处理流程图 8 4.4 键盘扫描及流程图9

6、5 总结体会 11 6 参考文献 12附录一:系统硬件电路原理图13附录二:恒温控制程序13 1 绪论 随着生活条件的不断改善,人们更关注自身的健康,绿色蔬菜尤其受到重视。大棚种植充分满足了人们的需求,但对于和农作物生长密切相关的大棚温度的控制。对于大棚种植而言,良好的物种、本地适合种植的物种及土地酸碱度都是可以通过农民长期的种植经验获得的。但是温度是农民不能轻易解决的问题,而且温度的变化幅度大,不易人工控制,对于农民来说时刻关注作物的生长温度是个庞大的工作量。“白天太阳很好,阳光充足,外面的温度零下5度如果大棚的薄膜没有破,里面照样产生有25度以上的温度,从而地温也可以得到提升至15度左右。

7、漆黑大风的夜晚棚内的温度会大幅度降低,能降低到零下5度以下,停止刮风可以恢复到较地温少低点为止。”这些专业知识对于常年种植的农民也未必了解。 应用于大棚种植的温度控制系统解决了长期以来困扰农民的问题,它的制作成本低廉,应用广泛,对农民自身的素质要求不高,便于农民操作。更重要的是,它不仅帮助农民节约了大量,还在无形之中提高了作物的产量,增加了农民的收入,满足了人们对大棚蔬菜的需求。基于单片机的大棚温度控制系统是个小型的软硬件结合的产品,它针对个体农民的需要设计,适于中小面积的大棚种植。 大棚蔬菜满足了人民能一年四季吃到新鲜蔬菜的愿望,为提供更多量、更有营养价值的蔬菜,智能的大棚温度控制系统已成为

8、农民的迫切需要。以AT89C2051单片机为主的温度控制系统可对大棚内部的温度进行模拟和蔬菜所需的正常温度进行比较,以人性化的方式向大棚管理人员提供温度调节的信息,帮助农民提高农作物的产量,减少农民的工作量。 温度控制系统采用AT89C2051单片机为核心。大棚温度采用AD590集成温度传感器检测。该系统成本低,操作方便,设计人性化,具有良好的推广价值。2 总体方案设计在温室大棚的方案设计中,我们采用温度传感器,A/D转换器等措施,并加入报警电路,大大提高了温度控制的准确性。 数码管显示 单 片机温度传感器报警器键盘输入 键盘控制图1 系统组成结构图3 系统硬件的设计3.1 单片机AT89C2

9、051 图2 AT89C2051引脚图 AT89C2051(以下简称2051)是一种低功耗、高性能的8位CMOS微控制器芯片,片内带2KB的快闪可编程及可擦除只读存储器(FPEROM)。它于MCS-51指令系统兼容,片内FPEROM允许对程序存储器在线重新编程,也可以用常规的EPROM编程器编程。ATMEL的2051将具有多种功能的8位CPU与FPEROM结合在同一芯片上,为很多嵌入式控制应用提供了高度灵活且价格适宜的方案。2051还增加了在零频下工作的静态逻辑方式及两种软件可选的省电模式。在其中,在闲置模式下,CPU停止工作,但RAM、定时器、计数器、串行口和终端系统仍在工作。在掉电模式下,

10、只保存RAM的内容,振荡器停振,关闭芯片的所有其它功能,直到下一次硬件复位为止。89C2051主要性能如下:1.与MCS-51产品兼容。2.2KB的在线可重复编程快闪存储器,寿命可达1000次写/擦除周期。3.宽工作电压范围为2.7V6V 。4.全静态工作方式:0Hz24Hz。5.两级程序存储加密。6.128*8位SRAM。7.15条可编程I/O线。8.2个16位定时器/计数器。9.5个中断电源。10.可编程串行通道。11.可直接驱动LED。12.有片内精密模拟比较器。13.低功耗的闲置与掉电模式。14.软件设置睡眠和唤醒功能。15.可编程UARL通道。16.两个16位可编程定时/计数器。P3

11、口还用于实现AT89C2051的各种第二功能,如下表所列:P3口管脚备选功能P3.0RXD串行输入端口P3.1TXD串行输出端口P3.2INT0外中断0P3.3INT1外中断1P3.4T0定时器0外部输入P3.5T1定时器1外部输入表1 P3口管脚备选功能3.2 AD590集成温度传感器图3 AD590集成温度传感器引脚图 AD590是美国ANALOG DEVICES公司的单片集成两端感温电流源,其输出电流与绝对温度成比例。在4 V至30 V电源电压范围内,该器件可充当一个高阻抗、恒流调节器,调节系数为1 A/K。片内薄膜电阻经过激光调整,可用于校准器件,使该器件在298.2K (25C)时输

12、出298.2 A电流;AD590适用于150C以下、目前采用传统电气温度传感器的任何温度检测应用。低成本的单芯片集成电路及无需支持电路的特点,使它成为许多温度测量应用的一种很有吸引力的备选方案。应用AD590时,无需线性化电路、精密电压放大器、电阻测量电路和冷结补偿;除温度测量外,还可用于分立器件的温度补偿或校正、与绝对温度成比例的偏置、流速测量、液位检测以及风速测定等。AD590可以裸片形式提供,适合受保护环境下的混合电路和快速温度测量;AD590特别适合远程检测应用。它提供高阻抗;电流输出,对长线路上的压降不敏感。任何绝缘良好的双绞线都适用,与接收电路的距离可达到数百英尺。这种输出特性还便

13、于AD590实现多路复用:输出电流可以通过一个CMOS多路复用器切换,或者电源电压可以通过一个逻辑门输出切换。主要指标:1.测温范围:-55+150V。2.输出电流IT与绝对温度T成正比:I= T(uA),其中=1uA/K,+25(298.2k)时IT =298.2MA。 3.线性误差0.3。 4.电源电压:4-30V。5.输出电阻为710 m3.3 系统报警电路报警电路是超过设定的范围,单片机输出信号驱动蜂鸣器发声警报,如图所示,当BDLL端为低电平时,有电流通过蜂鸣器,蜂鸣器报警,反之不报警。 图4 报警电路3.4 A/D转换器的设计利用比较器、定时器测量电容的充电时间。Up=R2 E/(

14、R1+R2)、Cduc/dt=IT、Uc =Tt/C,当Up=Uc时Up=IT /C* tT,tT=Cup/T。3.5 系统的电源电路设计在温室大棚系统中,单片机需要+5V电源供电,所以必须要有一种稳压电路,在此设计由7805组成的5V输出的电源电路。IC采用集成稳压器7805,C1、C2分别为输入端和输出端滤波电容,RL为负载电阻。二极管VD1、VD2起保护作用。图5 +5V稳压电源电路3.6 相关硬件电路设计1、显示:8位字形口,4位位置口。2、键盘:+、-、set(设置键)、esc(取消键)。3、测温电路:3条I/O脚(P1.0、P1.1、P3.6)。4、热丝驱动:1 I/O脚。5、串行

15、I/O扩展:2 I/O脚3.6.1 温度检测电路图6 温度检测电路图图7 温度检测电路图4 系统软件的设计4.1 主流程图设计图8 主程序流程图4.2 中断服务流程图设计图9 中断服务流程图4.3 键盘处理流程图图10 键盘处理流程图4.4 键盘扫描及流程图图11 键盘扫描流程图5 总结体会这次课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会,从事职业工作前一个必不少的过程。”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。说起课程设计,我认为最重要的就是做好设计的预习,选一个自己有兴趣的题目;其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了

16、,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 我在两周内认真的进行本次课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础通过这次恒温控制设计,本人在多方面都有所提高,综合运用本专业所学课程的理论和生产实际知识进行一次实际训练从而培养和提高学生独立工作能力,独立思考的能力也有了提高。在这次设计过程中,体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此感谢我

17、们的鞠晓君老师和一组的同学们,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪。和同学们一起探讨研究合作,也让我学到了很多,感受颇深,受益匪浅。6 参考文献 1. 张毅刚等主编.单片机应用技术.哈尔滨工业大学出版社 2. 王兆安 黄俊主编.电力电子技术.机械工业出版社 3. 孙传友等主编.测控电路及装置.北京航空航天大学出版社 4. 陈治明主编.电力电子器件基础.机械工业出版社 5. 朱一轮主编.智能仪器基础.电子工业出版社 6. 何希才主编.传感器及其应用电路.电子工业出版社 7. 于春勇主编.温室大棚自动控制系统.中国农业出版社 8

18、. 杨彬主编.温室温、湿度智能控制系统的研究.甘肃农业大学附录一:系统硬件电路原理图附录二:恒温控制程序/* 单片机恒温控制程序 (1)单片机型号89C2051,时钟频率12 MHz (2)P3口作为字型口 P3.0P3.7(除P3.6)对应七段LED字段ag,低电平亮; 2051内部模拟比较器输出经P3.6脚输入。 (3)P1口的使用: P1.0P1.1为内部模拟比较器输入脚; P1.2为键盘输入脚; P1.3为加热控制输出脚; P1.4P1.7为显示/键盘扫描输出线,对应#0#3位置,低电平有效; (4)利用T0作为A/D转换定时器(单位1us )。 (5)利用T1作为5ms键盘/显示扫描

19、定时器 。*/#include #include #define uchar unsigned char#define uint unsigned int#define TC1 (-5000) /*T1 5ms时间常数*/#define STFH 100 /*闪烁周期500ms,单位5ms*/#define STC 200 /*采样1s定时常数,单位5ms*/#define KTC1 13 /*重发键延时,单位20ms*/#define KTC2 8 /*重发键周期,单位20ms*/#define KSET 1 /*SET键值*/#define KINC 2 /*+键值*/#define KD

20、EC 3 /*-键值*/#define KESC 4 /*ESC键值*/#define FSPC 0xff /*空字型*/#define FNGS 0xbf /*负号字型*/#define TUP 1300 /*设定温上限,单位0.1*/#define TLOW -300 /*设定温下限,单位0.1*/#define TDA 3 /*温度控制死区,单位0.1*/const float CVp=2e+6; /*计算常数*/sbit AI0=P10; /*比较器+输入脚*/sbit AI1=P11; /*比较器-输入脚*/sbit KI=P12; /*键盘输入脚*/sbit HT=P13; /*加

21、热输出脚*/sbit CMP=P36; /*比较器输出脚*/uchar dbuf4; /*显示缓冲区*/uchar key; /*键值*/bit DTC,STF; /*当前温度显示、采样时间到标志*/void fresh(int,uchar,uchar*); /*显示刷新函数*/void thermost(int,int); /*恒温控制函数*/int kbfun(uchar,int *); /*键盘处理函数*/*主函数*/main()uint tp; /*电容C2充电时间*/ int tem,stem; /*当前温度、设定温度*/ TMOD=0x11; /*定时器1工作在定时方式、16位计数

22、 、内启动 */ TH1=TC18; /*装入定时器1时常*/ TL1=TC1; AI1=0; /*关闭C2充电*/ key=0; /*清键值*/ DTC=1; /*置当前温度显示态*/ STF=1; /*置采样时间到标志*/ stem=250; /*设定温初值25(单位0.1)*/ fresh(0,4,dbuf); /*显示0.0*/ IE=0x88; /*开中断,允许定时器1请求中断*/ TR1=1; /*启动定时器1*/ while(1) /*工作循环*/ if(_testbit_(STF) /*若采样时间到*/ TH0=0; /*清T0计数器*/ TL0=0; AI1=1; /*开始C

23、2充电*/ TR0=1; /*开始T0计时*/ while(CMP); /*等待AI1AI0*/ TR0=0; /*停止T0计时*/ AI1=0; /*关闭C2充电*/ tp=TH0*256+TL0; /*读取T0计数值*/ /*计算当前温度值*/ tem=(CVp/tp-273.2)*10; if(DTC) /*显示当前温度*/ fresh(tem,4,dbuf); thermost(stem,tem); /* 恒温控制*/ if(key) /*若按键有效*/ if(kbfun(key,&stem) /*键盘处理*/ fresh(tem,4,dbuf); key=0; /while /mai

24、n/*恒温控制函数*/void thermost(int x,int y) if(x-yTDA) HT=0 ; /*开加热*/ if(x-y=0?x:-x); i=0; do /*将ux转换成十进制数字字型送到y中*/ yi=fontux%10; ux=ux/10; i+; while(inum&ux); if(inum&x0) yi+=FNGS; /*负数写入-字型*/ while(i8; /*重装定时器1时常*/ TL1=TC1; /*显示扫描*/ P1=(P1|0xf5)&potsi; /*当前位置送P1口*/ if(!DTC&fltrSTFH/2) /*若显示设定温且在消隐期*/ P3

25、=FSPC; /*空字型送P3口*/ else P3=dbufsi; /*当前字型送P3口*/ /*计时*/ if(+fltr=STFH) fltr=0;/*闪烁计时*/ if(!(-samtr) /*采样定时*/ samtr=STC; STF=1; /*键盘扫描*/ kc=!KI; /*输入键值*/ if(kst=1) /*检测态*/ if(kc) sit=si; /* 有按键暂存扫描位置*/ kst=2; else if(si=sit) /*若完成一周扫描(延迟20ms)*/ switch(kst) case 2: /*按键确认态*/ if(kc) key=sit+1; /*按键有效,生成

26、键值*/ kstr=KTC1; /*开始持续键延时*/ kst=3; else kst=1; /*按键无效,回到检测态*/ break; case 3: /*持续键延时态*/ if(kc) if(!(-kstr) key=sit+1; /*开始发第一个持续键值*/ kstr=KTC2; /*开始持续键重发定时*/ kst=4; else kst=5; /*按键无效,回到键释放态*/ break; case 4: /*持续键重发态*/ if(kc) if(!(-kstr) key=sit+1; /*重发持续键值*/ kstr=KTC2; else kst=5; /*按键无效,回到键释放态*/ break; case 5: /*键释放态*/ if(kc) kst=2; else kst=1; /*键释放,回到检测态*/ /swicth if(+si=4) si=0; /*调整扫描位置*/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁