《基于单片机的温室大棚温度控制系统设计_本科毕业论文(23页).doc》由会员分享,可在线阅读,更多相关《基于单片机的温室大棚温度控制系统设计_本科毕业论文(23页).doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于单片机的温室大棚温度控制系统设计_本科毕业论文-第 23 页基于单片机温室大棚温度控制设计摘要:本系统以AT89C51单片机为控制核心,利用温度传感器AD590对蔬菜大棚内的温度进行实时采集与控制,实现温室温度的自动控制。本系统由单片机小系统模块、温度采集模块、加热模块、降温模块、按键以及显示模块六个部分组成。可以通过按键设定温室的温度值,采集的温度和设定的温度通过LED数码管显示。当所设定的温度值比采集的温度大时,通过加热器加热,以达到设定值;反之,开启降温风扇,以快速达到降温效果。通过该系统,对蔬菜大棚内的温度进行有效、可靠地检测与控制。从而保证大棚内作物在最佳的温度条件下生长,提高
2、质量和产量。关键词:单片机、温室大棚、温度控制一、 硬件设计(一)设计目标 本系统要控制的对象为这样一个规模的温室。温室结构的参数为:屋脊高5.2m,檐高3m,单跨度6.5m,长为20m,地面面积为130平方米。要实现的目标是,使薄膜温室的温度保持在2030之间,在这个区域内温度值是可设定的。(二)设计思路系统原理框图如图1所示。本系统由单片机小系统模块、温度采集模块、WP型温室加热器、降温模块、按键以及显示模块六个部分组成。通过按键设定温度值,设定的温度值和采集的温度值都可以通过LED数码管显示。当所设定的温度值比采集的温度大时,通过加热器加热,以达到设定值;反之,开启降温风扇,以快速达到降
3、温效果。该系统对温度的控制范围在2030,温度控制的误差小于等于0.5。通过使用该系统,对蔬菜大棚内的温度进行有效、可靠地检测与控制,保证大棚内作物在最佳的温度条件下生长,提高质量和产量。AT89C51控制系统温度采集键盘扫描WP型温室加热器显示降温模块图1系统原理框图 该系统分为六个模块,分别是单片机小系统模块、温度采集模块、显示模块、键盘扫描模块、加热模块和降温模块。(三)基于AT89C51的单片机小系统本系统采用Atmel公司所生产的AT89C51单片机。AT89C51单片机小系统如图2所示:图2 单片机小系统这个小系统由时钟脉冲和复位电路组成, AT89C51内部已具备振荡电路,只要在
4、接地引脚上面的两个引脚(即19、18脚)连接简单的石英晶体即可。AT89C51的时钟频率为12MHz。AT89C51的复位引脚为第9脚,当此引脚连接高电平超过2个机器周期(一个机器周期为6个时钟脉冲),即可产生复位的动作。以12MHz的时钟脉冲为例,每个时钟脉冲1s,两个机器周期为12s,因此,在第9脚上连接一个12s以上的高电平脉冲,即可产生复位的动作。对于上电复位,复位引脚上串接了一个电容,当复位引脚接 +5V电压时,电容相当于短路,经过一段时间(在这段时间内完成复位)后,电容处于充电状态,相当于断开。还有一种是手动复位,它的接法是在AT89C51复位引脚所串连的电容上并联接一个按钮开关。
5、当按钮没按下时,电容处于充电状态;当按钮按下时,电容对复位引脚放电,从而在这个引脚上产生高电平,达到复位的目的。(四)温度采集模块 本系统的温度采集和转换电路原理图如图3所示,它的工作过程为:系统通过AD590采集外界的温度参数,并通过三个放大器的作用将温度转化为电流模拟量;此模拟量通过ADC0804的转化变成数字量,以便单片机辨认接收。图3 AD590温度传感器工作的系统结构电路图根据电路图,说明各个器件的功能如下:OPA1:以0为标准,调节可变电阻R10使其输出电压为2.73伏特。OPA2:减2.73伏特,并反相。OPA3:放大5倍并反相。例如:AD590输出电压为1.5伏特,则其温度为:
6、1.5/5(OPA3)+2.732(OPA2)=3.302伏特;3.302/10K=303.2微安培;303.2-273.2=30微安培30。温度值OPA1OPA2OPA3ADC VINADC输出值02.732V0V0V0V00H102.832V-0.1V0.5V0.5V19H202.932V-0.2V1V1V32H303.032V-0.3V1.5V1.5V4BH403.132V-0.4V2V2V64H503.232V-0.5V2.5V2.5V7DH603.332V-0.6V3V3V96H703.432V-0.7V3.5V3.5VAFH803.532V-0.8V4V4VC8H903.632V-
7、0.9V4.5V4.5VE1H1003.732V-1V5V5VFAH表1 各温度与3个OPA及ADC0804的输入与输出关系图4 ADC0804 如图4,A/D转换器就是模拟/数字转换器,是将输入的模拟信号转换成数字信号。信号输入端的信号可以是传感器或是转换器的输出,而ADC输出的数字信号可以提供给微处理器,以便更广泛地应用。 ADC0804电压输入与数字输出关系如下表2所示:十六进制二进制码 二与满刻度的比率相对电压值VREF=2.56伏高四位字节低四位字节高四位字节电压低四位字节电压F111115/1615/2564.8000.300E111014/1614/2564.4800.280D1
8、10113/1613/2564.0600.260C110012/1612/2563.8400.240B101111/1611/2563.5200.220A101010/1610/2563.2000.200910019/169/2562.8800.180810008/168/2562.5600.160701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011
9、/161/2560.3200.0200000000表2 ADC0804电压输入与数字输出关系例如:VIN=3V,由上表可知2.880+0.120=3V,为10010110B=96H。 AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V30V,检测的温度范围为-55+150,它有非常好的线性输出性能,温度每增加1,其电流增加1微安培。当摄氏温度为0时,AD590的电流为273.2微安培,经10千欧姆电阻后其电压为2.732伏特。余者依上述方法类推。 利用AD590以及接口电路把温度转换成模拟电压,经由ADC0804转换成数字信号后传送给AT89C51处理。 温度采集和AD590温度传
10、感器工作的系统结构电路图为图3。(五)显示模块译码IC及温度显示的电路图如图5所示。显示部分的工作原理是,它将温度转换的数字量,即温度值,经由AT89C51的P1口由两个译码IC输出并分别送入两个七段数码管显示,这两个LED都是共阳极的。图5 译码IC及温度显示BCD码转换成7段LED数码管的译码驱动IC,如图6所示,首推7447系列,包括7446、7449、74LS49。其中的7446及7447输出低电平驱动的显示码,用以推动共阳极7段LED数码管;而7448及74LS49输出高电平驱动显示码,用以推动共阴极7段LED数码管,7446、7447与7448的引脚相同(双并排16pins)。图6
11、 译码IC 7447D、C、B、A:BCD码输入引脚。a、b、c、g:7段数码管输出引脚。LT:本引脚为测试引脚,当接高电平时,所连接的7段LED数码管全亮。正常显示下应接低电平。RBI:本引脚为涟波淹没输入引脚,正常显示下应接低电平。BI和RBO:本引脚为淹没输入或涟波淹没输出引脚,正常显示下应接低电平。7段LED数码管是利用7个LED组合而成的显示设备,可以显示0到9共10个数字。当要显示多个数码管,可分别驱动每个数码管;当要利用人类的视觉暂留现象,则可以采用快速扫描的方式,只要一组驱动电路即可达到显示多个数码管的目的。一般来说,7段LED数码管可分为共阳极和共阴极两种,共阳极就是把所有L
12、ED的阳极连接到共同的接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);同样的,共阴极就是把所有LED的阴极连接到共同的接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点)。(六) 键盘扫描图7 键盘扫描电路图7是键盘扫描的电路图,其中74922是键盘扫描IC。键盘扫描电路的原理是,将键盘接在一个键盘扫描IC 74922上,当在键盘上按下键时,相关的键码将通过74922的A、B、C、D口线传递给AT89C51单片机。键盘采用电话式键盘,结构如图8所示。键盘是接在键盘扫描IC 74922(上图6所示)上面的,键盘的输入通过74922的X1X
13、3和Y1Y4输入。 X1 X2 X3123456789*0#Y1Y2 Y3 Y4 图8 电话式键盘 鉴于键盘扫描IC为4*4形式,以下键盘编码每行后面都有0FFH,以配合硬件使用。按键123456对应编码01H02H03H04H05H06H按键789*0#对应编码07H08H09H0AH00HOBH表3 键盘编码 键盘扫描IC74922的工作过程:X1X3接键盘的行,Y1Y4接键盘的列,按键信息由这几个口输入,由A、B、C、D四个口输出到P3口的低四位,再通过P1口经过译码IC显示在LED上。键盘扫描芯片不断查询是否有按键输入,当查询到有按键时,DA置1,同时执行相应的程序,比较温度是否超出上
14、、下限,进而决定是加热还是降温。(七) WP型温室加热器 如图7所示,在AT89C51的P2.1口上接一个继电器,将加热器接在此继电器上。需要提高温度时,单片机控制P2.1口,使之置1,进而控制加热器加热。(八) 降温模块 如图7所示,在AT89C51的P2.2口上接一个继电器,将降温风扇接在此继电器上。需要降温时,单片机控制P2.2口,使之置1,进而控制降温风扇降温。二、 软件设计本系统的工作流程是,操作人员可以从键盘上输入要设定的温度值。当此温度值与当前温度不同时,单片机控制系统采取调节的动作。当设定温度大于测定温度时,则使加热器工作;当设定温度小于测定温度时,则开启降温风扇。此程序流程包
15、括4个部分。第一部分是主程序,它描述的是程序的总体结构;第二部分是定时器T0的描述,它的功能是将实际温度和设定的温度比较,再作出相应的动作;第三部分是键盘扫描部分;第四部分是显示部分,用于显示温度值。(一) 主程序YN按键程序显示A/D转换完成否?判断有无按键?A/D转换系统初始化开始NY图9 主程序本温度控制系统的总体设计思路见图9的主程序流程图,系统采用温度传感器AD590采集温度数据,再由ADC0804模数转换器将温度转化为单片机可以处理的数据。本系统将温度总体控制在20到30之间,并且可以通过键盘输入要设定的温度值,并通过7段数码管显示出来。在整个系统的运行期间,有一个定时器T0中断每
16、隔20ms扫描一次,用于当前温度与设定温度的比较,然后发出加温或降温的命令。程序代码如下:ORG 00H JMP START ORG 0BH JMP TIM0START: MOV TMOD,#01H MOV TH0,#60 MOV TL0,#76 SETB TR0 MOV IE,#82H MOV R4,#09H MOV R0,#30HCLEAR: MOV R0,#00H DJNZ R4,CLEAR MOV A,#00H MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV 34H,A MOV A,#01H MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV 3
17、5H,A MOV 36H,#0FFHSTART0: MOVX R0,AWAIT: JB P3.4,KEYIN JB P2.0,ADC JMP WAITADC: MOVX A,R0 MOV 37H,A CLR C SUBB A,36H JC TDOWNTUP: MOV A,37H CLR C SUBB A,34H JNC POFF JMP LOOPPON: CLR P2.1 JMP START0POFF: SETB P2.1 JMP LOOPTDOWN: MOV A,37H CLR C SUBB A,35H JC PON JMP LOOPLOOP: MOV 36H,37H CLR A MOV R
18、4,#0FFH DJNZ R4,$ CALL L1 MOV 21H,#10H NOV R1,#30HDISP1: CALL DISP DJNZ 21H,DISP1 JMP START0(二) 定时器T0中断定位装入初值比较的十位相同?比较的个位相同?开启降温风扇返回加热器工作设定温度测定温度?加热器停止工作YNYNNY图10 定时器T0中断子程序 定时器T0中断的工作流程如图10所示。当定时器T0发生中断时,就将按键输入的设定的温度值与当前的温度值比较。当输入的温度值大于当前测定的温度值,单片机就控制加热器加热;当设定的温度值小于当前测定的温度值,就开启降温风扇。程序代码如下:TIM0: PU
19、SH ACC PUSH PSW MOV TH0,#60 MOV TL0,#76 MOV A,33H CJNE A,31H,T MOV A,32H CJNE A,30H,T JMP OFF T: JC OFF CLR P2.1RETURN: POP PSW POP ACC RETIOFF: SETB P2.1 JMP RETURNDELAY: MOV R7,#06D1: MOV R6,#248 DJNZ R6,$ DJNZ R7,D1 RET(三) 显示模块显示子程序流程图如图11所示:(说明:30H用于暂时存放要显示温度的高四位,31H用于暂时存放要显示温度的低四位,38H用于存放最终要显示在
20、7段数码管上的温度值;D1、D2分别表示两个7段数码管的存储地址。)取(30H)高四位为D1取(31H)低四位为D2返回将(38H)的值送P1将(30H)、(31H)合成为(38H)延时DISP图11 显示子程序系统提供温度的显示功能,将温度用两个7段数码管显示出来。程序如下:DISP: MOV A,R1 ANL A,#0F0H SWAP A MOV 38H,A INC R1 MOV A,R1 ANL A,#0FH SWAP AORL A,38H MOV P1,A CALL DELAY RET(四) 按键扫描将键盘接在一个键盘扫描IC 74922上,所按键将被此芯片处理后传送给单片机处理。工作
21、流程如图9所示。如果要设定新的温度值,操作流程为:按“*”要设定的温度值按“*”,这样就完成了温度的设定。程序代码如下:KEYIN: JB P3.4,$ MOV A,P3 ANL A,#0FH MOV DPTR,#TABLE MOVC A,A+DPTR XRL A,#0AH JNZ START0 JB P3.4,KEYIN1 MOV R1,#32H CALL DISP MOV R5,4FHD4: MOV R7,#0FFH D3: MOV R6,#0FFHD2: JB P3.4,KEYIN1 DJNZ R6,D2 DJNZ R7,D3 DJNZ R5,D4 JMP START0KEYIN1: J
22、B P3.4,$ MOV A,P3 ANL A,#0FH MOV DPTR,#TABLE MOVC A,A+DPTR MOV 20H,A XRL A,#0AH JZ X1 MOV A,20H XRL A,#0BH JZ WAIT1 MOV A,20H XCH A,32H XCH A,33H(五) 源程序 程序要完成的功能是将总体温度控制在2030之间,在这个范围内,可以设定任一温度值,并使之达到恒温效果;如果超出这个范围,则程序自动控制继电器工作使温度稳定在这个范围之间。程序中各寄存器说明如下:30H、31H:所测得的实际温度32H、33H:键盘设定的温度34H:系统的上限温度值(30)35H
23、:系统的下限温度值(20)36H:旧温度值的存放地址源程序如下:ORG 00H JMP START ORG 0BH JMP TIM0START: MOV TMOD,#01H MOV TH0,#60 MOV TL0,#76 SETB TR0 MOV IE,#82H MOV R4,#09H MOV R0,#30HCLEAR: MOV R0,#00H DJNZ R4,CLEAR MOV A,#00H MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV 34H,A MOV A,#01H MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV 35H,A MOV 36H,
24、#0FFHSTART0: MOVX R0,AWAIT: JB P3.4,KEYIN JB P2.0,ADC JMP WAITADC: MOVX A,R0 MOV 37H,A CLR C SUBB A,36H JC TDOWNTUP: MOV A,37H CLR C SUBB A,34H JNC POFF JMP LOOPPON: CLR P2.1 JMP START0POFF: SETB P2.1 JMP LOOPTDOWN: MOV A,37H CLR C SUBB A,35H JC PON JMP LOOPLOOP: MOV 36H,37H CLR A MOV R4,#0FFH DJNZ
25、R4,$ CALL L1 MOV 21H,#10H NOV R1,#30HDISP1: CALL DISP DJNZ 21H,DISP1 JMP START0L1: CLR C MOV 30H,#00H MOV 31H,#00H MOV R3,#08H NEXT: RLC A MOV R2,A MOV A,30H ADDC A,30H DA A MOV 30H,A MOV A,31H ADDC A,31H DA A MOV 31H,A MOV A,R2 DJNZ R3,NEXTL2: MOV A,30H ADD A,30H DA A MOV 30H,A MOV A,31H ADDC A,31H
26、 DA A MOV 31H,A RETKEYIN: JB P3.4,$ MOV A,P3 ANL A,#0FH MOV DPTR,#TABLE MOVC A,A+DPTR XRL A,#0AH JNZ START0 JB P3.4,KEYIN1 MOV R1,#32H CALL DISP MOV R5,4FHD4: MOV R7,#0FFHD3: MOV R6,#0FFHD2: JB P3.4,KEYIN1 DJNZ R6,D2 DJNZ R7,D3 DJNZ R5,D4 JMP START0KEYIN1: JB P3.4,$ MOV A,P3 ANL A,#0FH MOV DPTR,#TAB
27、LE MOVC A,A+DPTR MOV 20H,A XRL A,#0AH JZ X1 MOV A,20H XRL A,#0BH JZ WAIT1 MOV A,20H XCH A,32H XCH A,33HWAIT1: MOV R1,#32H CALL DISP JB P3.4,KEYIN1 JMP WAIT1X1: JMP START0DISP: MOV A,R1 ANL A,#0F0H SWAP A MOV 38H,A INC R1 MOV A,R1 ANL A,#0FH SWAP A ORL A,38H MOV P1,A CALL DELAY RETTIM0: PUSH ACC PUSH
28、 PSW MOV TH0,#60 MOV TL0,#76 MOV A,33H CJNE A,31H,T MOV A,32H CJNE A,30H,T JMP OFFT: JC OFF CLR P2.1 RETURN: POP PSW POP ACC RETIOFF: SETB P2.1 JMP RETURNDELAY: MOV R7,#06D1: MOV R6,#248 DJNZ R6,$ DJNZ R7,D1 RETTABLE: DB 01H,02H,03H,0FFH DB 04H,05H,06H,0FFH DB 07H,08H,09H,0FFH DB 0AH,00H,0BH,0FFHTAB
29、LE1 : DB 4BH DB 32H END (六) 系统电路图 图12 系统电路图参考文献2 吴金戍,沈庆阳,郭庭吉. 8051单片机实践与应用 北京:清华大学出版社,2006,6882.3 陈明荧. 8051单片机课程设计实训教材 北京:清华大学出版社,2005,112135.4 张友德,赵志英,涂时亮. 单片微型机原理、应用与实验 上海:复旦大学出版社,2003,7891.5 沈庆阳. 单片机实践与应用. 北京:清华大学出版社,2002,4582.6 林申茂. 8051单片机彻底研究. 北京:人民邮电出版社,2004,145178.7 沙占友 孟志永 王彦朋. 单片机外围电路设计 北京
30、:电子工业出版社,2006,156214.10 戴佳,苗龙,陈斌. 51单片机应用系统开发典型实例 北京:中国电力出版社,2005,187204. 致谢 本文是在XXX老师的悉心指导下完成的。“悉心”二字,绝非可有可无。因为,从选题到今天成文,X老师给予了我很大帮助,付出了大量的心血。可以说,没有X老师的指导,就没有今天的顺利成文。在师从X老师做毕业设计的这段时间里,我感到学到很多东西。X老师治学严谨、做事认真,大到结构,小至标点,一一从严要求,决不允许敷衍;X老师为人真诚、待人热情,从选题至成文,说来惭愧,应该说是在X老师的推动下,才得以如期完成。很多时候,都是X老师给我主动打电话,帮助我规
31、划好时间,及时传道授业、答疑解惑。从选定题目、到现在定稿完成,X老师的关怀帮助始终如一,这让我在感动的同时,又深感惭愧!X老师很忙,教学、科研任务繁重。但我每次交稿,他都认真修改,及时回复。每每看到论文上细密的红色批语,深感暖意阵阵!也突然明白鲁迅对藤野先生认真修改他的笔记的那种感动。是的,在很多人将敷衍奉为圭臬的情形下,依然能够认真谨严做事,依然能够热情诚恳帮助别人的人,令人感激和钦佩!“学高为师,行为世范。”我再次明白了“老师”二字的厚重内涵!人生的各个阶段,要面临很多选择。大学三年,也概莫能外。我曾做出过不少选择,但事后令自己深感得意的,并不是很多。可是,师从周老师做毕业设计却不能不说是其中一个!在此,向X老师致以最诚挚的谢意!我还要感谢在大学三年来所有曾经教过及帮助过我的老师,是他们的谆谆教诲、无私奉献,使我增加了知识、提高了能力!没有他们,也就没有我三年学业的顺利完成!另外,我还要感谢三年来朝夕相处的同学,和他们切磋知识、交流思想,也使我感到受益匪浅!最后,向所有关心和帮助过我的老师和同学们致以最诚挚的谢意!