温室大棚温度控制

烟 台 南 山 学 院

单片机课程设计

题目 温室大棚温度控制

姓 名:

所在学院: 烟台南山学院

所学专业: 自 动 化

班 级: 09自动化02班

学 号:

指导教师:

完成时间: 2012-9-10

摘要

在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度和湿度打着交道。自18世纪工业革命以来,工业发展与是否能掌握温湿度有着密切的联系。在冶金、钢铁、石化、水泥、玻璃、医药等行业,可以说几乎80%的工业部门都不得不考虑着温湿度的因素。温湿度不但对于工业如此重要,在农业生产中温度的监测与控制也有着十分重要的意义。我国人多地少,人均占有耕地面积更少。因此,要改变这种局面,只靠增加耕地面积是不可能实现的,因此我们要另辟蹊径,想办法来提高单位亩产量。温室大棚技术就是其中一个好的方法。温室大棚就是建立一个模拟适合生物生长的气候条件,创造一个人工气象环境,来消除温度对生物生长的约束。而且,温室大棚能克服环境对生物生长的限制,能使不同的农作物在不适合生长的季节产出,使季节对农作物的生长不再产生过度影响,部分或完全摆脱了农作物对自然条件的依赖。由于温室大棚能带来可观的经济效益,所以温室大棚技术越来越普及,并且已成为农民增收的主要手段。

随着大棚技术的普及,温室大棚数量不断增多,温室大棚的温湿度控制便成为一个十分重要的课题。传统的温湿度控制是在温室大棚内部悬挂温度计和湿度计,通过读取温度值和湿度值了解实际温湿度,然后根据现有温湿度与额定温湿度进行比较,看温湿度是否过高或过低,然后进行相应的通风或者洒水。这些操作都是在人工情况下进行的,耗费了大量的人力物力。现在,随着国家经济的快速发展,农业产业规模的不断提高,农产品在大棚中培育的品种越来越多,对于数量较多的大棚,传统的温度控制措施就显现出很大的局限性。温室大棚的建设对温湿度检测与控制技术也提出了越来越高的要求。

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

问题。因此,本课题围绕基于单片机的温室大棚控制系统展开了应用研究工作。

目录

1 绪论 . ........................................................................................................................................................ - 4 -

2 总体方案设计 ................................................................................................................................... - 5 - 3 系统硬件的设计 .............................................................................................................................. - 6 -

3.1 单片机AT89C2051 . ................................................................................................................... - 6 - 3.2 AD590集成温度传感器 .......................................................................................................... - 7 - 3.3 系统报警电路 . ............................................................................................................................. - 7 - 3.4 A/D转换器的设计 ................................................................................................................... - 8 - 3.5 系统的电源电路设计 .............................................................................................................. - 8 - 3.6 相关硬件电路设计 . .................................................................................................................. - 8 -

3.6.1 温度检测电路 . .............................................................................................................. - 9 -

4 系统软件的设计 .............................................................................................................................. - 9 -

4.1 主流程图设计 . ......................................................................................................................... - 10 - 4.2 中断服务流程图设计 .............................................................................................................. - 10 - 4.3 键盘处理流程图 ....................................................................................................................... - 11 - 4.4 键盘扫描及流程图 . .................................................................................................................. - 12 -

5 总结体会 . ........................................................................................................................................... - 14 - 6 参考文献 . ......................................................................................................................................... - 15 -2 附录一:系统硬件电路原理图 . .......................................................................................................13 附录二:恒温控制程序 . .................................................................................................................. - 16 -

1 绪论

随着生活条件的不断改善,人们更关注自身的健康,绿色蔬菜尤其受到重视。大棚种植充分满足了人们的需求,但对于和农作物生长密切相关的大棚温度的控制。对于大棚种植而言,良好的物种、本地适合种植的物种及土地酸碱度都是可以通过农民长期的种植经验获得的。但是温度是农民不能轻易解决的问题,而且温度的变化幅度大,不易人工控制,对于农民来说时刻关注作物的生长温度是个庞大的工作量。“白天太阳很好,阳光充足,外面的温度零下5度如果大棚的薄膜没有破,里面照样产生有25度以上的温度,从而地温也可以得到提升至15度左右。漆黑大风的夜晚棚内的温度会大幅度降低,能降低到零下5度以下,停止刮风可以恢复到较地温少低点为止。”这些专业知识对于常年种植的农民也未必了解。 应用于大棚种植的温度控制系统解决了长期以来困扰农民的问题,它的制作成本低廉,应用广泛,对农民自身的素质要求不高,便于农民操作。更重要的是,它不仅帮助农民节约了大量,还在无形之中提高了作物的产量,增加了农民的收入,满足了人们对大棚蔬菜的需求。基于单片机的大棚温度控制系统是个小型的软硬件结合的产品,它针对个体农民的需要设计,适于中小面积的大棚种植。

大棚蔬菜满足了人民能一年四季吃到新鲜蔬菜的愿望,为提供更多量、更有营养价值的蔬菜,智能的大棚温度控制系统已成为农民的迫切需要。以AT89C2051单片机为主的温度控制系统可对大棚内部的温度进行模拟和蔬菜所需的正常温度进行比较,以人性化的方式向大棚管理人员提供温度调节的信息,帮助农民提高农作物的产量,减少农民的工作量。 温度控制系统采用AT89C2051单片机为核心。大棚温度采用AD590集成温度传感器检测。该系统成本低,操作方便,设计人性化,具有良好的推广价值。

2 总体方案设计

在温室大棚的方案设计中,我们采用温度传感器,A/D转换器等措施,并加入报警电路,大大提高了温度控制的准确性。

图1 系统组成结构图

3 系统硬件的设计

3.1 单片机AT89C2051

图2 AT89C2051引脚图

AT89C2051(以下简称2051)是一种低功耗、高性能的8位CMOS 微控制器芯片,片内

带2KB 的快闪可编程及可擦除只读存储器(FPE ROM)。它于MCS-51指令系统兼容,片内FPEROM 允许对程序存储器在线重新编程,也可以用常规的EPROM 编程器编程。ATMEL 的2051将具有多种功能的8位CPU 与FPEROM 结合在同一芯片上,为很多嵌入式控制应用提供了高度灵活且价格适宜的方案。2051还增加了在零频下工作的静态逻辑方式及两种软件可选的省电模式。在其中,在闲置模式下,CPU 停止工作,但RAM 、定时器、计数器、串行口和终端系统仍在工作。在掉电模式下,只保存RAM 的内容,振荡器停振,关闭芯片的所有其它功能,直到下一次硬件复位为止。 89C2051主要性能如下: 1. 与MCS-51产品兼容。

2. 2KB 的在线可重复编程快闪存储器,寿命可达1000次写/擦除周期。 3. 宽工作电压范围为2.7V~6V 。 4. 全静态工作方式:0Hz~24Hz。 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口还用于实现AT89C2051的各种第二功能,如下表所列:

表1 P3口管脚备选功能

3.2 AD590集成温度传感器

图3 AD590集成温度传感器引脚图

AD590是美国ANALOG DEVICES公司的单片集成两端感温电流源,其输出电流与绝对温

度成比例。在4 V至30 V电源电压范围内,该器件可充当一个高阻抗、恒流调节器,调节系数为1 µA/K。片内薄膜电阻经过激光调整,可用于校准器件,使该器件在298.2K (25°C) 时输出298.2 µA电流;AD590适用于150°C 以下、目前采用传统电气温度传感器的任何温度检测应用。低成本的单芯片集成电路及无需支持电路的特点,使它成为许多温度测量应用的一种很有吸引力的备选方案。应用AD590时,无需线性化电路、精密电压放大器、电阻测量电路和冷结补偿;除温度测量外,还可用于分立器件的温度补偿或校正、与绝对温度成比例的偏置、流速测量、液位检测以及风速测定等。AD590可以裸片形式提供,适合受保护环境下的混合电路和快速温度测量;AD590特别适合远程检测应用。它提供高阻抗;电流输出,对长线路上的压降不敏感。任何绝缘良好的双绞线都适用,与接收电路的距离可达到数百英尺。这种输出特性还便于AD590实现多路复用:输出电流可以通过一个CMOS 多路复用器切换,或者电源电压可以通过一个逻辑门输出切换。

主要指标:

1. 测温范围:-55~+150V。

2. 输出电流I T 与绝对温度T 成正比:I= αT (uA ),其中α=1uA/K,+25℃(298.2k )时IT =298.2MA。

3. 线性误差±0.3℃。 4. 电源电压:4-30V 。 5. 输出电阻为710 mΩ

3.3 系统报警电路

报警电路是超过设定的范围,单片机输出信号驱动蜂鸣器发声警报,如图所示,当BDLL 端为低电平时,有电流通过蜂鸣器,蜂鸣器报警,反之不报警。

图4 报警电路

3.4 A/D转换器的设计

利用比较器、定时器测量电容的充电时间。

Up=R2 E/(R1+R2)、Cduc/dt=IT 、Uc =Tt/C, 当Up=Uc时Up=IT /C* tT , t T =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脚(P 1.0、P 1.1、P 3.6)。 4、热丝驱动:1 I/O脚。 5、串行I/O扩展:2 I/O脚

3.6.1 温度检测电路

图6 温度检测电路图

4.1 主流程图设计

图8 主程序流程图

4.2 中断服务流程图设计

图9 中断服务流程图

4.3 键盘处理流程图

图10 键盘处理流程图

4.4 键盘扫描及流程图

图11 键盘扫描流程图

5 总结体会

这次课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会,从事职业工作前一个必不少的过程。”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。说起课程设计,我认为最重要的就是做好设计的预习,选一个自己有兴趣的题目;其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

我在两周内认真的进行本次课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.通过这次恒温控制设计,本人在多方面都有所提高,综合运用本专业所学课程的理论和生产实际知识进行一次实际训练从而培养和提高学生独立工作能力,独立思考的能力也有了提高。

在这次设计过程中,体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

在此感谢我们的鞠晓君老师和一组的同学们,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪。和同学们一起探讨研究合作,也让我学到了很多,感受颇深,受益匪浅。

6 参考文献

1. 张毅刚等主编. 单片机应用技术. 哈尔滨工业大学出版社 2. 王兆安 黄俊主编. 电力电子技术. 机械工业出版社

3. 孙传友等主编. 测控电路及装置. 北京航空航天大学出版社 4. 陈治明主编. 电力电子器件基础. 机械工业出版社 5. 朱一轮主编. 智能仪器基础. 电子工业出版社

6. 何希才主编. 传感器及其应用电路. 电子工业出版社 7. 于春勇主编. 温室大棚自动控制系统. 中国农业出版社

8. 杨彬主编. 温室温、湿度智能控制系统的研究. 甘肃农业大学

附录一:系统硬件电路原理图

附录二:恒温控制程序

/* 单片机恒温控制程序

(1)单片机型号89C2051,时钟频率12 MHz (2)P3口作为字型口

P3.0~P3.7(除P3.6) 对应七段LED 字段a~g,低电平亮; 2051内部模拟比较器输出经P3.6脚输入。 (3)P1口的使用:

P1.0~P1.1为内部模拟比较器输入脚; P1.2为键盘输入脚; P1.3为加热控制输出脚;

P1.4~P1.7为显示/键盘扫描输出线, 对应#0~#3位置,低电平有效; (4)利用T0作为A/D转换定时器(单位1us )。 (5)利用T1作为5ms 键盘/显示扫描定时器 。 */

#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 KDEC 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=P1^0; /*比较器+输入脚*/ sbit AI1=P1^1; /*比较器-输入脚*/ sbit KI=P1^2; /*键盘输入脚*/ sbit HT=P1^3; /*加热输出脚*/ sbit CMP=P3^6; /*比较器输出脚*/ uchar dbuf[4]; /*显示缓冲区*/ 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位计数 、内启动 */ TH1=TC1>>8; /*装入定时器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; /*开始C2充电*/ TR0=1; /*开始T0计时*/ while(CMP); /*等待AI1≥AI0*/ 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 } //main

/*恒温控制函数*/

void thermost(int x,int y) {

if(x-y>TDA) HT=0 ; /*开加热*/ if(x-y

/*显示刷新函数*/

void fresh(int x,uchar num,uchar *y) {/*0~9字型表*/

static uchar font[10]={0xc0,0xf9,0x64,0x70,0x59, 0x52,0x42,0xf8,0x40,0x50}; uint ux; uchar i;

ux=(x>=0?x:-x); i=0;

do /*将ux 转换成十进制数字字型送到y[]中*/ {y[i]=font[ux%10]; ux=ux/10; i++;}

while(i

if(i

/*键盘处理函数*/

int kbfun(uchar k,int *pt)

{static int tmp;

if(DTC) /*在当前温度显示态下*/ if(k==KSET) /*SET键处理*/

{tmp=*pt; /*读取设定温度到tmp*/ DTC=0;} /*切换到设定温度显示态*/ else return(0); /*其他键处理*/

else /*设定温度显示态下*/ switch(k)

{case KSET: /*按SET 键处理*/ *pt=tmp; /*修改设定温度*/ case KESC: /*按ESC 键处理*/

DTC=1; /*切换到当前温度显示态*/ return(1);

case KINC: /*按+键处理*/ if(tmp==TUP) tmp=TLOW;

else tmp+=5; /*+0.5℃*/ break;

case KDEC: /*按-键处理*/ if(tmp==TLOW) tmp=TUP;

else tmp-=5; /*-0.5℃*/ }

fresh(tmp,4,dbuf); /*刷新设定温显示*/ return(0); }

/*键盘、显示扫描和定时中断服务,一次/5ms*/ time1() interrupt 3 {/*扫描位置表*/

static uchar pot[4]={0xef,0xdf,0xbf,0x7f}; static uchar si=0; /*扫描位置*/ static uchar kst=1; /*键盘扫描状态*/ static uchar kstr; /*键盘扫描定时器*/ static uchar sit; /*扫描位置暂存*/ static uchar fltr=0; /*闪烁计时器*/ static uchar samtr=STC; /*采样定时器*/ bit kc; /*键入值暂存*/

TH1=TC1>>8; /*重装定时器1时常*/ TL1=TC1;

/*显示扫描*/

P1=(P1|0xf5)&pot[si]; /*当前位置送P1口*/

if(!DTC&&fltr>STFH/2) /*若显示设定温且在消隐期*/ P3=FSPC; /*空字型送P3口*/ else

P3=dbuf[si]; /*当前字型送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; /*按键有效,生成键值*/ 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; /*调整扫描位置*/ }

烟 台 南 山 学 院

单片机课程设计

题目 温室大棚温度控制

姓 名:

所在学院: 烟台南山学院

所学专业: 自 动 化

班 级: 09自动化02班

学 号:

指导教师:

完成时间: 2012-9-10

摘要

在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度和湿度打着交道。自18世纪工业革命以来,工业发展与是否能掌握温湿度有着密切的联系。在冶金、钢铁、石化、水泥、玻璃、医药等行业,可以说几乎80%的工业部门都不得不考虑着温湿度的因素。温湿度不但对于工业如此重要,在农业生产中温度的监测与控制也有着十分重要的意义。我国人多地少,人均占有耕地面积更少。因此,要改变这种局面,只靠增加耕地面积是不可能实现的,因此我们要另辟蹊径,想办法来提高单位亩产量。温室大棚技术就是其中一个好的方法。温室大棚就是建立一个模拟适合生物生长的气候条件,创造一个人工气象环境,来消除温度对生物生长的约束。而且,温室大棚能克服环境对生物生长的限制,能使不同的农作物在不适合生长的季节产出,使季节对农作物的生长不再产生过度影响,部分或完全摆脱了农作物对自然条件的依赖。由于温室大棚能带来可观的经济效益,所以温室大棚技术越来越普及,并且已成为农民增收的主要手段。

随着大棚技术的普及,温室大棚数量不断增多,温室大棚的温湿度控制便成为一个十分重要的课题。传统的温湿度控制是在温室大棚内部悬挂温度计和湿度计,通过读取温度值和湿度值了解实际温湿度,然后根据现有温湿度与额定温湿度进行比较,看温湿度是否过高或过低,然后进行相应的通风或者洒水。这些操作都是在人工情况下进行的,耗费了大量的人力物力。现在,随着国家经济的快速发展,农业产业规模的不断提高,农产品在大棚中培育的品种越来越多,对于数量较多的大棚,传统的温度控制措施就显现出很大的局限性。温室大棚的建设对温湿度检测与控制技术也提出了越来越高的要求。

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

问题。因此,本课题围绕基于单片机的温室大棚控制系统展开了应用研究工作。

目录

1 绪论 . ........................................................................................................................................................ - 4 -

2 总体方案设计 ................................................................................................................................... - 5 - 3 系统硬件的设计 .............................................................................................................................. - 6 -

3.1 单片机AT89C2051 . ................................................................................................................... - 6 - 3.2 AD590集成温度传感器 .......................................................................................................... - 7 - 3.3 系统报警电路 . ............................................................................................................................. - 7 - 3.4 A/D转换器的设计 ................................................................................................................... - 8 - 3.5 系统的电源电路设计 .............................................................................................................. - 8 - 3.6 相关硬件电路设计 . .................................................................................................................. - 8 -

3.6.1 温度检测电路 . .............................................................................................................. - 9 -

4 系统软件的设计 .............................................................................................................................. - 9 -

4.1 主流程图设计 . ......................................................................................................................... - 10 - 4.2 中断服务流程图设计 .............................................................................................................. - 10 - 4.3 键盘处理流程图 ....................................................................................................................... - 11 - 4.4 键盘扫描及流程图 . .................................................................................................................. - 12 -

5 总结体会 . ........................................................................................................................................... - 14 - 6 参考文献 . ......................................................................................................................................... - 15 -2 附录一:系统硬件电路原理图 . .......................................................................................................13 附录二:恒温控制程序 . .................................................................................................................. - 16 -

1 绪论

随着生活条件的不断改善,人们更关注自身的健康,绿色蔬菜尤其受到重视。大棚种植充分满足了人们的需求,但对于和农作物生长密切相关的大棚温度的控制。对于大棚种植而言,良好的物种、本地适合种植的物种及土地酸碱度都是可以通过农民长期的种植经验获得的。但是温度是农民不能轻易解决的问题,而且温度的变化幅度大,不易人工控制,对于农民来说时刻关注作物的生长温度是个庞大的工作量。“白天太阳很好,阳光充足,外面的温度零下5度如果大棚的薄膜没有破,里面照样产生有25度以上的温度,从而地温也可以得到提升至15度左右。漆黑大风的夜晚棚内的温度会大幅度降低,能降低到零下5度以下,停止刮风可以恢复到较地温少低点为止。”这些专业知识对于常年种植的农民也未必了解。 应用于大棚种植的温度控制系统解决了长期以来困扰农民的问题,它的制作成本低廉,应用广泛,对农民自身的素质要求不高,便于农民操作。更重要的是,它不仅帮助农民节约了大量,还在无形之中提高了作物的产量,增加了农民的收入,满足了人们对大棚蔬菜的需求。基于单片机的大棚温度控制系统是个小型的软硬件结合的产品,它针对个体农民的需要设计,适于中小面积的大棚种植。

大棚蔬菜满足了人民能一年四季吃到新鲜蔬菜的愿望,为提供更多量、更有营养价值的蔬菜,智能的大棚温度控制系统已成为农民的迫切需要。以AT89C2051单片机为主的温度控制系统可对大棚内部的温度进行模拟和蔬菜所需的正常温度进行比较,以人性化的方式向大棚管理人员提供温度调节的信息,帮助农民提高农作物的产量,减少农民的工作量。 温度控制系统采用AT89C2051单片机为核心。大棚温度采用AD590集成温度传感器检测。该系统成本低,操作方便,设计人性化,具有良好的推广价值。

2 总体方案设计

在温室大棚的方案设计中,我们采用温度传感器,A/D转换器等措施,并加入报警电路,大大提高了温度控制的准确性。

图1 系统组成结构图

3 系统硬件的设计

3.1 单片机AT89C2051

图2 AT89C2051引脚图

AT89C2051(以下简称2051)是一种低功耗、高性能的8位CMOS 微控制器芯片,片内

带2KB 的快闪可编程及可擦除只读存储器(FPE ROM)。它于MCS-51指令系统兼容,片内FPEROM 允许对程序存储器在线重新编程,也可以用常规的EPROM 编程器编程。ATMEL 的2051将具有多种功能的8位CPU 与FPEROM 结合在同一芯片上,为很多嵌入式控制应用提供了高度灵活且价格适宜的方案。2051还增加了在零频下工作的静态逻辑方式及两种软件可选的省电模式。在其中,在闲置模式下,CPU 停止工作,但RAM 、定时器、计数器、串行口和终端系统仍在工作。在掉电模式下,只保存RAM 的内容,振荡器停振,关闭芯片的所有其它功能,直到下一次硬件复位为止。 89C2051主要性能如下: 1. 与MCS-51产品兼容。

2. 2KB 的在线可重复编程快闪存储器,寿命可达1000次写/擦除周期。 3. 宽工作电压范围为2.7V~6V 。 4. 全静态工作方式:0Hz~24Hz。 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口还用于实现AT89C2051的各种第二功能,如下表所列:

表1 P3口管脚备选功能

3.2 AD590集成温度传感器

图3 AD590集成温度传感器引脚图

AD590是美国ANALOG DEVICES公司的单片集成两端感温电流源,其输出电流与绝对温

度成比例。在4 V至30 V电源电压范围内,该器件可充当一个高阻抗、恒流调节器,调节系数为1 µA/K。片内薄膜电阻经过激光调整,可用于校准器件,使该器件在298.2K (25°C) 时输出298.2 µA电流;AD590适用于150°C 以下、目前采用传统电气温度传感器的任何温度检测应用。低成本的单芯片集成电路及无需支持电路的特点,使它成为许多温度测量应用的一种很有吸引力的备选方案。应用AD590时,无需线性化电路、精密电压放大器、电阻测量电路和冷结补偿;除温度测量外,还可用于分立器件的温度补偿或校正、与绝对温度成比例的偏置、流速测量、液位检测以及风速测定等。AD590可以裸片形式提供,适合受保护环境下的混合电路和快速温度测量;AD590特别适合远程检测应用。它提供高阻抗;电流输出,对长线路上的压降不敏感。任何绝缘良好的双绞线都适用,与接收电路的距离可达到数百英尺。这种输出特性还便于AD590实现多路复用:输出电流可以通过一个CMOS 多路复用器切换,或者电源电压可以通过一个逻辑门输出切换。

主要指标:

1. 测温范围:-55~+150V。

2. 输出电流I T 与绝对温度T 成正比:I= αT (uA ),其中α=1uA/K,+25℃(298.2k )时IT =298.2MA。

3. 线性误差±0.3℃。 4. 电源电压:4-30V 。 5. 输出电阻为710 mΩ

3.3 系统报警电路

报警电路是超过设定的范围,单片机输出信号驱动蜂鸣器发声警报,如图所示,当BDLL 端为低电平时,有电流通过蜂鸣器,蜂鸣器报警,反之不报警。

图4 报警电路

3.4 A/D转换器的设计

利用比较器、定时器测量电容的充电时间。

Up=R2 E/(R1+R2)、Cduc/dt=IT 、Uc =Tt/C, 当Up=Uc时Up=IT /C* tT , t T =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脚(P 1.0、P 1.1、P 3.6)。 4、热丝驱动:1 I/O脚。 5、串行I/O扩展:2 I/O脚

3.6.1 温度检测电路

图6 温度检测电路图

4.1 主流程图设计

图8 主程序流程图

4.2 中断服务流程图设计

图9 中断服务流程图

4.3 键盘处理流程图

图10 键盘处理流程图

4.4 键盘扫描及流程图

图11 键盘扫描流程图

5 总结体会

这次课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会,从事职业工作前一个必不少的过程。”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。说起课程设计,我认为最重要的就是做好设计的预习,选一个自己有兴趣的题目;其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

我在两周内认真的进行本次课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.通过这次恒温控制设计,本人在多方面都有所提高,综合运用本专业所学课程的理论和生产实际知识进行一次实际训练从而培养和提高学生独立工作能力,独立思考的能力也有了提高。

在这次设计过程中,体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

在此感谢我们的鞠晓君老师和一组的同学们,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪。和同学们一起探讨研究合作,也让我学到了很多,感受颇深,受益匪浅。

6 参考文献

1. 张毅刚等主编. 单片机应用技术. 哈尔滨工业大学出版社 2. 王兆安 黄俊主编. 电力电子技术. 机械工业出版社

3. 孙传友等主编. 测控电路及装置. 北京航空航天大学出版社 4. 陈治明主编. 电力电子器件基础. 机械工业出版社 5. 朱一轮主编. 智能仪器基础. 电子工业出版社

6. 何希才主编. 传感器及其应用电路. 电子工业出版社 7. 于春勇主编. 温室大棚自动控制系统. 中国农业出版社

8. 杨彬主编. 温室温、湿度智能控制系统的研究. 甘肃农业大学

附录一:系统硬件电路原理图

附录二:恒温控制程序

/* 单片机恒温控制程序

(1)单片机型号89C2051,时钟频率12 MHz (2)P3口作为字型口

P3.0~P3.7(除P3.6) 对应七段LED 字段a~g,低电平亮; 2051内部模拟比较器输出经P3.6脚输入。 (3)P1口的使用:

P1.0~P1.1为内部模拟比较器输入脚; P1.2为键盘输入脚; P1.3为加热控制输出脚;

P1.4~P1.7为显示/键盘扫描输出线, 对应#0~#3位置,低电平有效; (4)利用T0作为A/D转换定时器(单位1us )。 (5)利用T1作为5ms 键盘/显示扫描定时器 。 */

#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 KDEC 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=P1^0; /*比较器+输入脚*/ sbit AI1=P1^1; /*比较器-输入脚*/ sbit KI=P1^2; /*键盘输入脚*/ sbit HT=P1^3; /*加热输出脚*/ sbit CMP=P3^6; /*比较器输出脚*/ uchar dbuf[4]; /*显示缓冲区*/ 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位计数 、内启动 */ TH1=TC1>>8; /*装入定时器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; /*开始C2充电*/ TR0=1; /*开始T0计时*/ while(CMP); /*等待AI1≥AI0*/ 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 } //main

/*恒温控制函数*/

void thermost(int x,int y) {

if(x-y>TDA) HT=0 ; /*开加热*/ if(x-y

/*显示刷新函数*/

void fresh(int x,uchar num,uchar *y) {/*0~9字型表*/

static uchar font[10]={0xc0,0xf9,0x64,0x70,0x59, 0x52,0x42,0xf8,0x40,0x50}; uint ux; uchar i;

ux=(x>=0?x:-x); i=0;

do /*将ux 转换成十进制数字字型送到y[]中*/ {y[i]=font[ux%10]; ux=ux/10; i++;}

while(i

if(i

/*键盘处理函数*/

int kbfun(uchar k,int *pt)

{static int tmp;

if(DTC) /*在当前温度显示态下*/ if(k==KSET) /*SET键处理*/

{tmp=*pt; /*读取设定温度到tmp*/ DTC=0;} /*切换到设定温度显示态*/ else return(0); /*其他键处理*/

else /*设定温度显示态下*/ switch(k)

{case KSET: /*按SET 键处理*/ *pt=tmp; /*修改设定温度*/ case KESC: /*按ESC 键处理*/

DTC=1; /*切换到当前温度显示态*/ return(1);

case KINC: /*按+键处理*/ if(tmp==TUP) tmp=TLOW;

else tmp+=5; /*+0.5℃*/ break;

case KDEC: /*按-键处理*/ if(tmp==TLOW) tmp=TUP;

else tmp-=5; /*-0.5℃*/ }

fresh(tmp,4,dbuf); /*刷新设定温显示*/ return(0); }

/*键盘、显示扫描和定时中断服务,一次/5ms*/ time1() interrupt 3 {/*扫描位置表*/

static uchar pot[4]={0xef,0xdf,0xbf,0x7f}; static uchar si=0; /*扫描位置*/ static uchar kst=1; /*键盘扫描状态*/ static uchar kstr; /*键盘扫描定时器*/ static uchar sit; /*扫描位置暂存*/ static uchar fltr=0; /*闪烁计时器*/ static uchar samtr=STC; /*采样定时器*/ bit kc; /*键入值暂存*/

TH1=TC1>>8; /*重装定时器1时常*/ TL1=TC1;

/*显示扫描*/

P1=(P1|0xf5)&pot[si]; /*当前位置送P1口*/

if(!DTC&&fltr>STFH/2) /*若显示设定温且在消隐期*/ P3=FSPC; /*空字型送P3口*/ else

P3=dbuf[si]; /*当前字型送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; /*按键有效,生成键值*/ 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; /*调整扫描位置*/ }


相关文章

  • 智能连栋温室方案
  • 智能连栋温室方案 连栋温室优点:20世纪90年代以来,轻钢结构应用于现代化连栋温室建设,已成为现代化连栋温室设计的新潮流.目前,在我国现代化连栋温室设计中,通常应用矩形管.方管等型材焊接温室梁.柱.檩条.桁架等.顶部和四周通常采用PC板(碳 ...查看


  • 智能育苗大棚建设温室方案与预算
  • 智能育苗温室建设工程 方 案 书 目 录 .设计依据及主要技术指标 .温室基础及排水沟.道路.门.基础 .温室主体钢结构 .温室开窗系统 .温室覆盖材料 .温室强制通风降温系统 .温室电动内遮阳系统 .温室加湿系统 .温室加温系统 .二氧化 ...查看


  • 温室大棚温度湿度自动控制系统设计
  • 温室大棚温度湿度自动控制系统设计 摘要:该文介绍了了一个温室大棚温度以及湿度的自动控制系统设计:大棚温度湿度自动控制系统由主控制器AT89S51单片机.H104陶瓷湿度传感器.AD590温度传感器等构成,实现对温室大棚温湿度的检测与控制,从 ...查看


  • 温室大棚方案设计
  • 温室大棚方案设计 一.方案概述 根据自贡的气候温度(年平均气温17.5℃至18.0℃).湿度.日照(年日照1150至1200小时)等自然因素.建造成本并兼顾作物的生长需要,采用连栋96型文洛式(Venlo)玻璃温室方案. Venlo型温室来 ...查看


  • 大棚西红柿种植技术
  • 大棚西红柿种植技术 一.春季塑料大棚早熟栽培技术 1.品种选择 应选择耐低温,耐弱光.抗病性强的早熟高产品种. 2.培育适龄壮苗 品种的熟性和育苗方式不同,适宜的苗龄也不一样.早熟品种,温室无土育苗需55-60天:温室电热线加温育苗和加温温 ...查看


  • 无土栽培J4
  • 第4章 无土栽培基地规划与环境调控 无土栽培是未来农业的重要栽培方式.从当地自然条件.社会和区域经济发展水平出发,统筹考虑,量力而行,适时适地全面做好无土栽培基地规划设计,满足无土栽培所需的人力.物力.财力条件和技术要求,并在栽培管理中实施 ...查看


  • 温室大棚技术
  • 温室大棚技术 一 .节能日光温室的建设 1.设计建设节能日光温室时应该注意哪些问题? 一个好的节能日光温室,要具有以下特点:一是透光性能良好,光照利用率高:二是增温快,保温性能良好:三是易于操作和通风排湿,便于管理:四是结构牢固,防风性能良 ...查看


  • 温室设计方案(阳光板)
  • 连栋阳光板温室 设 计 方 案 河南创美农实业有限公司 2011年07月09日 PC板温室设计方案 (一)概述 1.项目名称 12米跨阳光板温室 2.项目地点 山西晋中市 3. 温室面积 11232.2平方米 4.基础设计资料  年平均温 ...查看


  • 智能温室设计方案
  • 智能温室设计方案 农业节水灌溉知识 2009-12-01 14:06:05 阅读144 评论0字号:大中小 一:温室结构概况: 温室选用流行的弧形室顶,美观大方,视觉流畅.弧形结构卸风载荷能力强,适宜于风力较大的地区.温室东西长64米,南北 ...查看


热门内容