温室大棚温度控制系统1.1 系统的概述应用自动控制和电子计算机实现农业生产和管理的自动化,是农业现代化的重要标志之一。
近年来电子技术和信息技术的飞速发展,带来了温室控制与管理技术方面的一场革命,随着“设施农业”、“虚拟农业”等新名称的出现。
温度,湿度,co2浓度等计算机控制与管理系统正在不断吸收自动控制和信息管理领域的理论和方法,结合温室作物种植的特点,不断创新,逐步完善,从而使温室种植业实现真正意义上的现代化,产业化。
本系统以AT89C52单片机为控制核心的测控仪,主要是为了对蔬菜大棚内的温度参数的检测与控制而设计的。
该测控仪具有检测精度高、使用简单、成本较低和工作稳定可靠等特点,所以具有一定的应用前景。
1.2 系统的要求测量值较小指示灯亮,蜂鸣器不响,测量值偏大,指示灯不亮,蜂鸣器响。
温度高打开天窗或排风扇,温度低打开增温炉;1.3 系统的主要模块1.3.1 本系统的主要组成部分本系统为一个全自动温度检测与控制系统,由以下几个部分组成:AT89C52单片机,检测,显示电路,及报警装置等组成。
组成图如图1-1。
由图1-1所示,本系统的核心部分是AT89C52,此芯片是该电路的枢纽。
由它先控制着温度湿度等参数的检测,用检测到的参数实现继电器通断,以及显示。
若检测到的参数高于设定的值,则发出报警信号。
1.3.2 各部分的功能AT89C52单片机:它是系统的中央处理器,担负着系统的控制和运算。
温度检测装置:DS18B20数字温度模块对大棚内温度进行采集,将温度转换成数字。
显示设备:主要是用于显示检测到的大棚温度。
继电器主要用于做开关驱动设备。
报警装置:产生报警信号。
整个控制系统由软件程序设计。
根据系统具体要求,可以对具体部分进行分析设计。
但要实现对各部分的设计,需要充分了解各部分的理论基础。
本设计系统的基本组成单元包括:单片机控制单元,DS18B20温度检测电路,LCD1602显示屏,交流继电器,蜂鸣器报警装置,矩阵键盘。
2.我的任务:LCD1602液晶显示2.1 LCD1602简介字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如表2-1所示:表 2-1引脚接口说明表第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS 为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
2.2 LCD1602的指令说明及时序LCD1602液晶模块内部的控制器共有11条控制指令,如表2-2所示:表2-2 控制命令表LCD1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
1为高电平、0为低电平。
指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:显示开关控制。
D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。
指令11:读数据。
LCD1602读写时序如表2-3所示:表2-3 基本操作时序表读状态输入RS=L,R/W=H,E=H 输出 D0—D7=状态字写指令输入 RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H 输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无2.3 LCD1602显示模块用AT89C52的P0口作为数据线,用P2.4、P2.5、P2.6分别作为LCD 的E、R/W、RS。
其中E是下降沿触发的片选信号,连接P2.6,R/W是读写信号,连接P2.5,RS是寄存器选择信号,连接P2.4。
图3-3为LCD1602的硬件连接。
图 3-3 LCD1602的硬件连接VEE用连接阻值为10K的电阻,主要用于调节对比度的调整。
接正电源时对比度最低,接地电源时,对比度最高。
对比度过高时,会产生“鬼影”。
因此连接一10K的电阻用以调整。
3 系统软件的设计一个应用系统要完成各项功能,首先必须有较完善的硬件做保证。
同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。
甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编和有时会变得很简单。
因此充分利用其内部丰富的硬件资源和软件资源。
程序设计语言有三种:机器语言、汇编语言、高级语言。
本系统运用的是汇编语言所编写。
3.1主程序设计从软件的功能不同可分为四大类:一是检测软件,它是用来检测温湿度。
二是显示部分,用来显示所检测到的温度。
三是调控部分,用来控制继电器的开合。
四是当温度大于35℃,蜂鸣器发出报警信号。
每一个执行软件也就是一个小的功能执行模块。
这里将各执行模块一一列出,并为每一个执行模块进行功能定义。
图4-1为软件设计流程图。
图 4-1 软件设计流程图液晶显示子程序模块如下:RS BIT P1.0RW BIT P1.1E BIT P1.2CS1 BIT P1.3CS2 BIT P1.4CHARC EQU 40HPAGE1 EQU 41HCOL EQU 42HLINE EQU 43HTEMP EQU 44HTEMP1 EQU 45HON EQU 46HORG 0000HLJMP MAINORG 0100HMAIN: MOV SP, #60HLCALL CLRPLCALL INTLCALL DISPLAYLCALL DEL1500SJMP $INT: MOV CHARC, #0MOV ON, #3FHMOV A, ONLCALL WCOM1LCALL WCOM2MOV PAGE1, #00HMOV A, PAGE1ORL A, #0B8HLCALL WCOM1LCALL WCOM2MOV COL, #0MOV A, COLORL A, #40HLCALL WCOM1LCALL WCOM2MOV LINE, #00MOV A,LINEORL A, #0C0HLCALL WCOM1LCALL WCOM2RETWCOM1: LCALL BUSYLSETB CS1CLR CS2CLR RWCLR RSMOV P0, ASETB ECLR ERETWCOM2: LCALL BUSYR SETB CS2CLR CS1CLR RWCLR RSMOV P0, ASETB ECLR ERETWLEFT: LCALL BUSYLSETB CS1CLR CS2CLR RWSETB RSMOV P0, ASETB ECLR ERETWRIGHT: LCALL BUSYRSETB CS2CLR CS1CLR RWSETB RSMOV P0,ASETB ECLR ERETBUSYL: PUSH ACCSETB CS1CLR CS2SETB RWCLR RSBACKL: MOV P0, #0FFH SETB EMOV A, P0JB ACC.7, BACKLCLR EPOP ACCRETBUSYR: PUSH ACCSETB CS2CLR CS1SETB RWCLR RSBACKR: MOV P0, #0FFH SETB EMOV A, P0JB ACC.7, BACKRCLR EPOP ACCRETREADD1: LCALL BUSYLSETB CS1CLR CS2SETB RWCLR RSSETB EMOV A, P0CLR ERETREADD2: LCALL BUSYRSETB CS2CLR CS1SETB RWSETB RSSETB EMOV A, P0CLR ERETCLRP: MOV R0, #64MOV R2, #8MOV TEMP1, #0B8HAJMP NBZ1NBZ2: INC TEMP1NBZ1: MOV A, TEMP1 LCALL WCOM1LCALL WCOM2MOV A, #40HLCALL WCOM1LCALL WCOM2NBZ3: CLR ALCALL WLEFTLCALL WRIGHTDJNZ R0, NBZ3DJNZ R2, NBZ2RETDISPLAY: MOV DPTR, #TABMOV LINE, #00MOV A, LINEORL A, #0C0HLCALL WCOM1LCALL WCOM2MOV R1, #0B8HMOV R2, #8 NEXTROW: MOV R3, #128MOV A, R1LCALL WCOM1LCALL WCOM2MOV A, #40HLCALL WCOM1LCALL WCOM2 LCDL: CLR AMOVC A, @A+DPTR LCALL WLEFTDEC R3INC DPTRCJNE R3, #64, LCDL LCDR: CLR AMOVC A, @A+DPTRLCALL WRIGHTINC DPTRDJNZ R3, LCDRINC R1DJNZ R2, NEXTROWRETDEL20: MOV R0, #20D2: MOV R1, #200D1: NOPNOPNOPDJNZ R1, D1DJNZ R0, D2RETDEL100: LCALL DEL20LCALL DEL20LCALL DEL20LCALL DEL20LCALL DEL20RETDEL500: LCALL DEL100LCALL DEL100LCALL DEL100LCALL DEL100LCALL DEL100RETDEL1500: LCALL DEL500LCALL DEL500LCALL DEL500RETTAB1:DB00H,00H,30H,18H,0CH,8EH,5AH,48H,0D8H,0D0H,48H,58H,50H,48H,0D8H,90H DB 08H,00H,00H,00H,0F3H,00H,00H,00H,80H,80H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,6FH,00H,00H,00H,00H,80H,0C0H DB0E0H,70H,38H,0FCH,0FCH,38H,70H,0E0H,0C0H,80H,00H,00H,00H,00H,00H,57H DB00H,00H,00H,10H,38H,18H,18H,98H,0D8H,0F8H,0F8H,0F8H,0F8H,0D8H,98H,18H DB18H,38H,10H,00H,0D3H,00H,00H,0C0H,0E2H,2CH,78H,0B8H,20H,0E0H,0E0H,20H DB0B8H,78H,2CH,0E2H,0C0H,00H,00H,00H,00H,76H,00H,00H,40H,50H,50H,58H DB0FEH,58H,50H,50H,40H,00H,20H,20H,20H,20H,20H,0E0H,0C0H,00H,00H,00H DB 00H,00H,00H,04H,02H,3FH,66H,66H,66H,67H,6FH,7EH,76H,66H,0FFH,66H DB 22H,04H,00H,00H,0FDH,00H,00H,00H,03H,07H,07H,06H,06H,06H,06H,06H DB 06H,06H,06H,0EH,1EH,1CH,00H,00H,00H,0DFH,00H,00H,00H,01H,03H,01H DB 00H,00H,00H,0FFH,0FFH,00H,00H,00H,01H,03H,03H,00H,00H,00H,00H,4BH DB 00H,00H,00H,00H,1CH,0EH,07H,03H,01H,00H,0FFH,0FFH,80H,01H,03H,07H DB0EH,1CH,08H,00H,0D6H,00H,00H,01H,03H,06H,0E4H,0F5H,97H,97H,97H,97H DB0F5H,0E4H,06H,03H,01H,00H,00H,00H,00H,0DDH,80H,0E0H,38H,1CH,60H,0F8H DB 0FFH,0C2H,82H,02H,00H,00H,1EH,33H,21H,21H,21H,21H,30H,18H,00H,00H DB 10H,10H,10H,90H,0D0H,10H,90H,90H,90H,90H,93H,87H,86H,82H,91H,00H DB 10H,10H,10H,10H,5DH,20H,10H,10H,00H,10H,10H,00H,90H,10H,00H,10H DB 00H,10H,90H,90H,00H,10H,00H,00H,10H,0D3H,10H,10H,10H,00H,10H,10H DB 10H,00H,00H,13H,17H,10H,00H,08H,10H,00H,00H,10H,00H,10H,00H,0DBH DB 00H,10H,00H,10H,30H,10H,00H,10H,10H,00H,27H,13H,11H,10H,00H,10H DB 10H,00H,10H,00H,0D2H,10H,00H,10H,00H,10H,13H,0C7H,14H,14H,84H,44H DB 17H,13H,10H,10H,00H,10H,10H,10H,08H,0BEH,11H,00H,10H,10H,10H,10H DB 11H,13H,13H,13H,93H,93H,93H,13H,13H,13H,13H,13H,11H,10H,10H,10HDB00H,02H,43H,41H,0C8H,0DDH,49H,49H,5DH,49H,49H,5DH,49H,0C9H,5DH,49H DB49H,60H,00H,00H,0D5H,00H,00H,00H,0F0H,3CH,16H,13H,11H,30H,0E0H,0CH DB06H,47H,0E5H,0C4H,84H,0CH,0F8H,00H,00H,55H,00H,00H,00H,00H,00H,0FCH DB0C6H,82H,82H,82H,82H,82H,0C6H,0FCH,00H,00H,00H,00H,00H,00H,00H,0BDH DB 00H,00H,00H,00H,00H,00H,61H,41H,41H,41H,51H,0F9H,4DH,47H,0C2H,40H DB 00H,00H,00H,00H,55H,00H,00H,40H,28H,0D9H,2DH,2FH,2BH,0C9H,09H,00H DB 02H,0F9H,01H,01H,3DH,0C3H,81H,00H,00H,66H,00H,00H,00H,00H,00H,00H DB 00H,40H,40H,4FH,52H,0D2H,52H,4FH,40H,40H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,0C3H,6DH,3CH,19H,0FH,00H,00H,06H,0DH,09H,0FFH,09H,09H DB 08H,00H,00H,00H,0F5H,00H,00H,00H,1FH,32H,22H,22H,22H,32H,1FH,00H DB 00H,00H,18H,31H,33H,30H,1FH,00H,00H,0FFH,00H,00H,00H,00H,00H,1FH DB 31H,20H,20H,20H,20H,20H,31H,1FH,00H,00H,00H,00H,00H,00H,00H,0AAH DB 00H,00H,00H,00H,00H,00H,08H,10H,20H,60H,30H,1FH,00H,00H,00H,00H DB 00H,00H,00H,00H,0D2H,00H,00H,00H,00H,0FH,19H,19H,19H,0FH,00H,00H DB 00H,1FH,00H,02H,06H,0CH,07H,00H,00H,0AAH,00H,00H,00H,00H,00H,10H DB 0CH,06H,0BH,08H,18H,3FH,32H,22H,20H,20H,20H,20H,00H,00H,00H,00H DB 02H,02H,03H,42H,42H,44H,42H,46H,82H,02H,80H,82H,80H,86H,0F0H,82H DB82H,00H,00H,02H,0F7H,00H,02H,00H,02H,00H,00H,02H,0C0H,02H,00H,0F0H DB 02H,00H,00H,02H,00H,02H,00H,02H,00H,0DBH,02H,00H,02H,02H,80H,0C0H DB 62H,30H,1AH,1EH,1AH,30H,62H,0C0H,82H,00H,02H,02H,02H,00H,04H,0B3H DB00H,02H,00H,02H,80H,0E0H,0B2H,82H,00H,02H,00H,82H,0C2H,0F0H,92H,80H DB 00H,02H,02H,00H,0D6H,00H,02H,00H,02H,00H,02H,10H,12H,0D2H,50H,7EH DB 52H,0D0H,12H,12H,02H,02H,00H,02H,02H,55H,00H,06H,02H,02H,02H,02H DB02H,02H,0A2H,90H,0DAH,0B4H,92H,02H,02H,00H,02H,02H,00H,02H,02H,00H DB 00H,00H,40H,22H,14H,0CH,1AH,31H,40H,00H,02H,4CH,88H,10H,0FFH,00H DB 00H,00H,00H,00H,0DAH,00H,00H,00H,00H,00H,88H,87H,81H,91H,91H,0FFHDB 91H,91H,81H,80H,80H,00H,00H,00H,00H,0F6H,00H,00H,02H,03H,00H,79H DB 85H,85H,79H,00H,0FEH,01H,09H,0FH,00H,01H,02H,00H,00H,00H,00H,55H DB00H,00H,00H,7FH,0C9H,88H,88H,0C9H,7FH,00H,00H,00H,44H,4CH,98H,0C1H DB7FH,00H,00H,00H,96H,00H,00H,00H,00H,00H,20H,20H,0A4H,0ADH,0B5H,0E7H DB0B5H,0ADH,0A4H,20H,20H,00H,00H,00H,00H,0A9H,00H,00H,00H,00H,00H,00H DB 00H,7FH,80H,60H,3EH,40H,80H,7FH,00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,01H,01H,00H DB 00H,00H,00H,00H,6BH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,0F6H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,73H DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,02H,56H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,03H DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,66H,00H,00H,00H,00H,00H,00H DB 00H,02H,01H,00H,00H,00H,01H,02H,04H,00H,00H,00H,00H,00H,00H,00H END参考文献[1] 谢自美,尹仕,肖看,赵云娣,罗杰.电子线路综合设计[M].武汉:华中科技大学出版社, 2007.[2] 杨旭方.单片机控制与应用实训教程[M].北京: 电子工业出版社, 2010.5.。