基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx

上传人:b****5 文档编号:20275925 上传时间:2023-01-21 格式:DOCX 页数:22 大小:192.26KB
下载 相关 举报
基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx_第1页
第1页 / 共22页
基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx_第2页
第2页 / 共22页
基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx_第3页
第3页 / 共22页
基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx_第4页
第4页 / 共22页
基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx

《基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

基于单片机的温室大棚温度控制系统设计本科毕业论文文档格式.docx

OPA1:

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

OPA2:

减2.73伏特,并反相。

OPA3:

放大5倍并反相。

例如:

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

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

謀荞抟箧飆鐸怼类蒋薔。

3.302/10K=303.2微安培;

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

温度值

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

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

图4ADC0804

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

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

厦礴恳蹒骈時盡继價骚。

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

十六进制

二进制码二

与满刻度的比率

相对电压值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

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

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

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

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

余者依上述方法类推。

茕桢广鳓鯡选块网羈泪。

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

鹅娅尽損鹌惨歷茏鴛賴。

温度采集和AD590温度传感器工作的系统结构电路图为图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译码IC7447

D、C、B、A:

BCD码输入引脚。

a、b、c、……g:

7段数码管输出引脚。

LT:

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

正常显示下应接低电平。

RBI:

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

BI和RBO:

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

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(小数点)。

铙誅卧泻噦圣骋贶頂廡。

(六)键盘扫描

图7键盘扫描电路

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

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

擁締凤袜备訊顎轮烂蔷。

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

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

贓熱俣阃歲匱阊邺镓騷。

X1X2X3

*

#

Y1

Y2

Y3

Y4

图8电话式键盘

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

按键

对应编码

01H

02H

03H

04H

05H

06H

07H

08H

09H

0AH

OBH

表3键盘编码

键盘扫描IC74922的工作过程:

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

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

坛摶乡囂忏蒌鍥铃氈淚。

(七)WP型温室加热器

如图7所示,在AT89C51的P2.1口上接一个继电器,将加热器接在此继电器上。

需要提高温度时,单片机控制P2.1口,使之置1,进而控制加热器加热。

蜡變黲癟報伥铉锚鈰赘。

(八)降温模块

如图7所示,在AT89C51的P2.2口上接一个继电器,将降温风扇接在此继电器上。

需要降温时,单片机控制P2.2口,使之置1,进而控制降温风扇降温。

買鲷鴯譖昙膚遙闫撷凄。

二、软件设计

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

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

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

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

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

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

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

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

第四部分是显示部分,用于显示温度值。

綾镝鯛駕櫬鹕踪韦辚糴。

(一)主程序

Y

N

按键程序

A/D转换完成否?

判断有无按键?

A/D转换

系统初始化

开始

图9主程序

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

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

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

驅踬髏彦浃绥譎饴憂锦。

程序代码如下:

ORG00H

JMPSTART

ORG0BH

JMPTIM0

START:

MOVTMOD,#01H

MOVTH0,#60

MOVTL0,#76

SETBTR0

MOVIE,#82H

MOVR4,#09H

MOVR0,#30H

CLEAR:

MOV@R0,#00H

DJNZR4,CLEAR

MOVA,#00H

MOVDPTR,#TABLE1

MOVCA,@A+DPTR

MOV34H,A

MOVA,#01H

MOV35H,A

MOV36H,#0FFH

START0:

MOVX@R0,A

WAIT:

JBP3.4,KEYIN

JBP2.0,ADC

JMPWAIT

ADC:

MOVXA,@R0

MOV37H,A

CLRC

SUBBA,36H

JCTDOWN

TUP:

MOVA,37H

SUBBA,34H

JNCPOFF

JMPLOOP

PON:

CLRP2.1

JMPSTART0

POFF:

SETBP2.1

TDOWN:

SUBBA,35H

JCPON

LOOP:

MOV36H,37H

CLRA

MOVR4,#0FFH

DJNZR4,$

CALLL1

MOV21H,#10H

NOVR1,#30H

DISP1:

CALLDISP

DJNZ21H,DISP1

(二)定时器T0中断

加热器停止工作

猫虿驢绘燈鮒诛髅貺庑。

图10定时器T0中断子程序

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

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

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

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

锹籁饗迳琐筆襖鸥娅薔。

TIM0:

PUSHACC

PUSHPSW

MOVA,33H

CJNEA,31H,T

MOVA,32H

CJNEA,30H,T

JMPOFF

T:

JCOFF

RETURN:

POPPSW

POPACC

RETI

OFF:

JMPRETURN

DELAY:

MOVR7,#06

D1:

MOVR6,#248

DJNZR6,$

DJNZR7,D1

RET

(三)显示模块

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

(说明:

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

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

)構氽頑黉碩饨荠龈话骛。

DISP

輒峄陽檉簖疖網儂號泶。

图11显示子程序

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

程序如下:

DISP:

MOVA,@R1

ANLA,#0F0H

SWAPA

MOV38H,A

INCR1

ANLA,#0FH

ORLA,38H

MOVP1,A

CALLDELAY

(四)按键扫描

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

工作流程如图9所示。

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

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

尧侧閆繭絳闕绚勵蜆贅。

KEYIN:

JBP3.4,$

MOVA,P3

MOVDPTR,#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:

JBP3.4,$

MOVA,P3

MOV20H,A

JZX1

MOVA,20H

XRLA,#0BH

JZWAIT1

XCHA,32H

XCHA,33H

(五)源程序

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

如果超出这个范围,则程序自动控制继电器工作使温度稳定在这个范围之间。

识饒鎂錕缢灩筧嚌俨淒。

程序中各寄存器说明如下:

30H、31H:

所测得的实际温度

32H、33H:

键盘设定的温度

34H:

系统的上限温度值(30℃)

35H:

系统的下限温度值(20℃)

36H:

旧温度值的存放地址

源程序如下:

JMPSTART

ORG0BH

MOV@R0,#00H

MOV34H,A

JBP3.4,KEYIN

SUBBA,34H

JNCPOFF

SUBBA,35H

JCPON

MOVR4,#0FFH

CALLL1

L1:

MOV30H,#00H

MOV31H,#00H

MOVR3,#08H

NEXT:

RLCA

MOVR2,A

MOVA,30H

ADDCA,30H

DAA

MOV30H,A

MOVA,31H

ADDCA,31H

DAA

MOV31H,A

MOVA,R2

DJNZR3,NEXT

L2:

MOVA,30H

ADDA,30H

MOV30H,A

MOVA,31H

MOVA,P3

ANLA,#0FH

MOVDPTR,#TABLE

MOVR1,#32H

CALLDISP

MOVR7,#0FFH

JZX1

XRLA,#0BH

MOVA,20H

XCHA,32H

WAIT1:

JMPWAIT1

X1:

ANLA,#0F0H

ORLA,38H

PUSHPSW

T:

CLRP2.1

SETBP2.1

TABLE:

DB01H,02H,03H,0FFH

DB04H,05H,06H,0FFH

DB07H,08H,09H,0FFH

DB0AH,00H,0BH,0FFH

TABLE1:

DB4BH

DB

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

当前位置:首页 > 高中教育 > 小学教育

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

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