温室温度自动控制系统设计毕业论文Word文件下载.docx

上传人:b****6 文档编号:17506197 上传时间:2022-12-06 格式:DOCX 页数:27 大小:268.45KB
下载 相关 举报
温室温度自动控制系统设计毕业论文Word文件下载.docx_第1页
第1页 / 共27页
温室温度自动控制系统设计毕业论文Word文件下载.docx_第2页
第2页 / 共27页
温室温度自动控制系统设计毕业论文Word文件下载.docx_第3页
第3页 / 共27页
温室温度自动控制系统设计毕业论文Word文件下载.docx_第4页
第4页 / 共27页
温室温度自动控制系统设计毕业论文Word文件下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

温室温度自动控制系统设计毕业论文Word文件下载.docx

《温室温度自动控制系统设计毕业论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《温室温度自动控制系统设计毕业论文Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。

温室温度自动控制系统设计毕业论文Word文件下载.docx

当所设定的温度值比采集的温度大时,通过加热器加热,以达到设定值;

反之,开启降温风扇,以快速达到降温效果。

该系统对温度的控制范围在20℃——30℃,温度控制的误差小于等于0.5℃。

通过使用该系统,对蔬菜大棚内的温度进行有效、可靠地检测与控制,保证大棚内作物在最佳的温度条件下生长,提高质量和产量。

  

图1系统原理框图

第2章温室控制系统硬件设计

该系统分为六个模块,分别是单片机系统模块、温度采集模块、显示模块、键盘扫描模块、加热模块和降温模块。

现分别介绍如下:

2.1基于AT89C51的单片机系统

本系统采用Atmel公司所生产的MCS—51系列中的AT89C51单片机[4]。

主芯片的功能:

AT89C51单片机系统如图2所示:

图2单片机系统

这个系统由两部分组成,现介绍如下:

AT89C51的内容:

2.1.1时钟脉冲

AT89C51内部已具备振荡电路,只要在接地引脚上面的两个引脚(即19、18脚)连接简单的石英晶体即可。

AT89C51的时钟频率为12MHz。

2.1.2复位电路

AT89C51的复位引脚(Reset)[5]为第9脚,当此引脚连接高电平超过2个机器周期(一个机器周期为6个时钟脉冲),即可产生复位的动作。

以12MHz的时钟脉冲为例,每个时钟脉冲1us,两个机器周期为12us,因此,在第9脚上连接一个12us以上的高电平脉冲,即可产生复位的动作。

对于上电复位,复位引脚上串接了一个电容,当复位引脚接+5伏电压时,电容相当于短路,经过一段时间(在这段时间内完成复位)后,电容处于充电状态,相当于断开。

还有一种是手动复位,它的接法是在AT89C51复位引脚所串连的电容上并联接一个按钮开关。

当按钮没按下时,电容处于充电状态;

当按钮按下时,电容对复位引脚放电,从而在这个引脚上产生高电平,达到复位的目的。

2.2温度采集模块

本系统的温度采集和转换电路原理图如图3所示,它的工作过程为:

系统通过AD590[6]采集外界的温度参数,并通过三个放大器的作用将温度转化为电流模拟量;

此模拟量通过ADC0804[7]的转化变成数字量,以便单片机辨认接收。

图3AD590温度传感器工作的系统结构电路图

根据电路图,说明各个器件的功能如下:

温度传感器AD590的功能:

如上图3所示:

OPA1:

以0℃为标准,调节可变电阻R10使其输出电压为2.73伏特。

OPA2:

减2.73伏特,并反相。

OPA3:

放大5倍并反相。

例如:

AD590输出电压为1.5伏特,则其温度为:

1.5/5(OPA3)+2.732(OPA2=3.032伏特;

3.032/10K=303.2微安培;

303.2-273.2=30微安培→30℃。

注意:

ADC0804的VREF=2.56V。

表1各温度与3个OPA及ADC0804的输入与输出关系

温度值

OPA1

OPA2

OPA3

ADCVIN

ADC输出值

0℃

2.732V

0V

00H

10℃

2.832V

-0.1V

0.5V

19H

20℃

2.932V

-0.2V

1V

32H

30℃

3.032V

-0.3V

1.5V

4BH

40℃

3.132V

-0.4V

2V

64H

50℃

3.232V

-0.5V

2.5V

7DH

60℃

3.332V

-0.6V

3V

96H

70℃

3.432V

-0.7V

3.5V

AFH

80℃

3.532V

-0.8V

4V

C8H

90℃

3.632V

-0.9V

4.5V

E1H

100℃

3.732V

-1V

5V

FAH

2.2.1AD转换器ADC0804的功能

图4ADC0804

(1)如图4所示,所谓A/D转换器就是模拟/数字转换器,是将输入的模拟信号转换成数字信号。

信号输入端的信号可以是传感器或是转换器的输出,而ADC输出的数字信号可以提供给微处理器,以便更广泛地应用。

(2)ADC0804电压输入与数字输出关系如下表2所示:

表2ADC0804电压输入与数字输出关系

十六进制

二进制码二

与满刻度的比率

相对电压值VREF=2.56伏

高四位字节

低四位字节

高四位字节电压

低四位字节电压

F

1111

15/16

15/256

4.800

0.300

E

1110

14/16

14/256

4.480

0.280

D

1101

13/16

13/256

4.060

0.260

C

1100

12/16

12/256

3.840

0.240

B

1011

11/16

11/256

3.520

0.220

A

1010

10/16

10/256

3.200

0.200

9

1001

9/16

9/256

2.880

0.180

8

1000

8/16

8/256

2.560

0.160

7

0111

7/16

7/256

2.240

0.140

6

0110

6/16

6/256

1.920

0.120

5

0101

5/16

5/256

1.600

0.100

4

0100

4/16

4/256

1.280

0.080

3

0011

3/16

3/256

0.960

0.060

2

0010

2/16

2/256

0.640

0.040

1

0001

1/16

1/256

0.320

0.020

0000

VIN=3V,由上表可知2.880+0.120=3V,为10010110B=96H。

(3)AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V——30V,检测的温度范围为-55℃——+150℃,它有非常好的线性输出性能,温度每增加1℃,其电流增加1微安培。

当摄氏温度为0℃时,AD590的电流为273.2微安培,经10千欧姆电阻后其电压为2.732伏特。

余者依上述方法类推。

(4)利用AD590以及接口电路把温度转换成模拟电压,经由ADC0804转换成数字信号后传送给AT89C51处理。

(5)温度采集和AD590温度传感器工作的系统结构电路图为图3.2。

2.3显示模块

译码IC及温度显示的电路图如图5所示。

显示部分的工作原理是,它将温度转换的数字量,即温度值,经由AT89C51的P1口由两个译码IC输出并分别送入两个七段数码管显示[8],这两个LED都是共阳极的。

图5译码IC及温度显示

2.3.1译码IC7447

BCD码转换成7段LED数码管的译码驱动IC,如图6所示,首推7447系列,包括7446、7449、74LS49[9]。

其中的7446及7447输出低电平驱动的显示码,用以推动共阳极7段LED数码管;

而7448及74LS49输出高电平驱动显示码,用以推动共阴极7段LED数码管,7446、7447与7448的引脚相同(双并排16pins)。

7447引脚说明:

1、D、C、B、A:

BCD码输入引脚。

2、a、b、c、……g:

7段数码管输出引脚。

3、/LT:

本引脚为测试引脚,当接高电平时,所连接的7段LED数码管全亮。

正常显示下应接低电平。

4、/RBI:

本引脚为涟波淹没输入引脚,正常显示下应接低电平。

5、/BI和/RBO:

本引脚为淹没输入或涟波淹没输出引脚,正常显示下应接低电平。

图6译码IC7447

2.3.2七段LED数码管

7段LED数码管是利用7个LED组合而成的显示设备,可以显示0到9共10个数字。

当要显示多个数码管,可分别驱动每个数码管;

当要利用人类的视觉暂留现象,则可以采用快速扫描的方式,只要一组驱动电路即可达到显示多个数码管的目的。

一般来说,7段LED数码管可分为共阳极和共阴极两种,共阳极就是把所有LED的阳极连接到共同的接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);

同样的,共阴极就是把所有LED的阴极连接到共同的接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点)。

2.4键盘扫描

图7是键盘扫描的电路图,其中74922[10]是键盘扫描IC。

键盘扫描电路的原理是,将键盘接在一个键盘扫描IC74922上,当在键盘上按下键时,相关的键码将通过74922的A、B、C、D口线传递给AT89C51单片机。

图7键盘扫描电路

2.4.1键盘

本键盘采用电话式键盘,其结构如图8所示。

键盘是接在键盘扫描IC74922(上图7所示)上面的,键盘的输入通过74922的X1——X4和Y1——Y4输入。

X1X2X3

Y1

*

#

图8电话式键盘

但鉴于键盘扫描IC为4*4形式,以下键盘编码每行后面都有0FFH,以配合硬件使用。

按键及分别对应的键盘编码如表3所示:

表3键盘编码

按键

对应编码

01H

02H

03H

04H

05H

06H

07H

08H

09H

0AH

OBH

2.4.2键盘扫描芯片

键盘扫描芯片74922的图形如图7所示。

键盘扫描IC74922的工作过程是这样的:

X1——X4接键盘的行,Y1——Y4接键盘的列,按键信息由这几个口输入,由A、B、C、D四个口输出到P3口的低四位,再通过P1口经过译码IC显示在LED上。

键盘扫描芯片不断查询是否有按键输入,当查询到有按键时,DA置1,同时执行相应的程序,比较温度是否超出上、下限,进而决定是加热还是降温。

第3章软件设计

本系统的工作流程是,操作人员可以从键盘上输入要设定的温度值。

当此温度值与当前温度不同时,单片机控制系统采取调节的动作。

当设定温度大于测定温度时,则使加热器工作;

当设定温度小于测定温度时,则开启降温风扇。

此程序流程包括4个部分。

第一部分是主程序,它描述的是程序的总体结构;

第二部分是定时器T0的描述,它的功能是将实际温度和设定的温度比较,再作出相应的动作;

第三部分是键盘扫描部分;

第四部分是显示部分,用于显示温度值(系统总程序见附录2)。

3.1主程序

主程序流程图如图9所示:

图9主程序流程图

本温度控制系统的主程序流程图,温度控制系统采用温度传感器AD590采集温度数据,再由ADC0804模数转换器将温度转化为单片机可以处理的数据。

本系统将温度总体控制在20℃到30℃之间,并且可以通过键盘输入要设定的温度值,并通过7段数码管显示出来。

在整个系统的运行期间,有一个定时器T0中断每隔20ms扫描一次,用于当前温度与设定温度的比较,然后发出加温或降温的命令。

程序代码如下:

ORG00H

JMPSTART

ORG0BH

JMPTIM0;

定时器T0中断子程序

START:

MOVTMOD,#01H;

选择TIMER0,MODE1

MOVTH0,#60

MOVTL0,#76

SETBTR0;

启动定时器T0

MOVIE,#82H

MOVR4,#09H;

(30H)--(38H)寄存器

MOVR0,#30H

CLEAR:

MOV@R0,#00H;

清除RAM(30H)--(38H)

DJNZR4,CLEAR

MOVA,#00H

MOVDPTR,#TABLE1

MOVCA,@A+DPTR

MOV34H,A;

(34H)为上限温度--30度

MOVA,#01H

MOV35H,A;

(35H)为下限温度--20度

MOV36H,#0FFH;

(36H)为存储的旧温度值

START0:

MOVX@R0,A;

/WR=0,ADC0804开始转换

WAIT:

JBP3.4,KEYIN;

P3.4=1表示有按键,转往按键子程序

JBP2.0,ADC;

检测ADC0804转换完成否?

P2.0=1,

;

则完成

JMPWAIT

ADC:

MOVXA,@R0;

将转换好的数据送入累加器

MOV37H,A;

温度的比较。

将现温度值存入37H

CLRC

SUBBA,36H;

现温度值减去旧温度寄存器的值

JCTDOWN

TUP:

MOVA,37H;

将现温度值存入A

SUBBA,34H;

与上限温度作比较

JNCPOFF;

C=0表示比上限温度大,必须停止加热

JMPLOOP

PON:

CLRP2.1

JMPSTART0

POFF:

SETBP2.1;

继电器不动作,即停止加热

TDOWN:

SUBBA,35H;

与下限温度作比较

JCPON;

C=1表示比下限温度小,须加热

LOOP:

MOV36H,37H;

将现温度值存入36H中

CLRA

MOVR4,#0FFH;

延迟

DJNZR4,$

CALLL1;

二--十进制转换程序

MOV21H,#10H;

显示延迟

NOVR1,#30H

DISP1:

CALLDISP;

温度值的显示

DJNZ21H,DISP1

3.2定时器T0中断

定时器T0中断的工作流程如图10所示。

当定时器T0发生中断时,就将按键输入的设定的温度值与当前的温度值比较。

当输入的温度值大于当前测定的温度值,单片机就控制加热器加热;

当设定的温度值小于当前测定的温度值,就开启降温风扇。

图10定时器T0中断子程序

TIM0:

PUSHACC

PUSHPSW

MOVTH0,#60;

重设中断时间

MOVA,33H

CJNEA,31H,T;

设定温度的十位是否等于所

;

测温度的十位数

MOVA,32H

CJNEA,30H,T;

设定温度的个位是否等于所

测温度的个位数

JMPOFF;

个位相等,则令加热器停止加热

T:

JCOFF;

设定温度小于现在温度,停止加热

CLRP2.1;

否则加热

RETURN:

POPPSW

POPACC

RETI

OFF:

停止加热

JMPRETURN

DELAY:

MOVR7,#06;

显示器扫描时间

D1:

MOVR6,#248

DJNZR6,$

DJNZR7,D1

RET

3.3显示模块

显示子程序流程图如图11所示:

(说明:

30H用于暂时存放要显示温度的高四位,31H用于暂时存放要显示温度的低四位,38H用于存放最终要显示在7段数码管上的温度值;

D1、D2分别表示两个7段数码管的存储地址。

图11显示子程序

系统提供温度的显示功能,将温度用两个7段数码管显示出来。

程序如下:

DISP:

MOVA,@R1

ANLA,#0F0H;

D1值:

取(30H)高4位

SWAPA

MOV38H,A

INCR1

ANLA,#0FH;

D2值:

取(31H)低4位

ORLA,38H;

D1,D2合成为8位

MOVP1,A;

送给7段数码管显示

CALLDELAY;

扫描延迟

3.4按键扫描

按键扫描子程序流程图如图12所示:

图12按键子程序

将键盘接在一个键盘扫描IC74922上,所按键将被此芯片处理后传送给单片机处理。

工作流程如图12所示。

如果要设定新的温度值,操作流程为:

按“*”→要设定的温度值→按“*”,这样就完成了温度的设定。

KEYIN:

JBP3.4,$;

有按键,放开否?

MOVA,P3;

是则读74922的按键值

取有效的低4位

MOVDPTR,#TABLE;

至TABLE取键盘转换码

XRLA,#0AH;

是否按“*”?

JNZSTART0;

不是,回到现在温度模式

JBP3.4,KEYIN1;

有新的按键否?

MOVR1,#32H;

无,设定温度显示地址

显示设定温度地址中的值

MOVR5,4FH;

几秒钟后无按键则自动解除

设定温度模式

D4:

MOVR7,#0FFH

D3:

MOVR6,#0FFH

D2:

JBP3.4,KEYIN1

DJNZR6,D2

DJNZR7,D3

DJNZR5,D4

KEYIN1:

按键放开否?

MOVA,P3;

放开则读74922键盘值

ANLA,#0FH

MOVDPTR,#TABLE

MOV20H,A;

按键值存入(20H)

JZX1;

是,则温度设定完成

MOVA,20H

XRLA,#0BH;

"

#"

未设定键

JZWAIT1

MOVA,20H;

不是"

*"

、"

,则为数字键

XCHA,32H;

按键值存入(32H),(33H)

XCHA

附录

附录1系统电路图

附录2源程序代码

程序要完成的功能是将总体温度控制在20℃——30℃之间,在这个范围内,可以设定任一温度值,并使之达到恒温效果;

如果超出这个范围,则程序自动控制继电

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

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1