智能温室控制系统设计.docx

上传人:b****4 文档编号:27245446 上传时间:2023-06-28 格式:DOCX 页数:16 大小:259.64KB
下载 相关 举报
智能温室控制系统设计.docx_第1页
第1页 / 共16页
智能温室控制系统设计.docx_第2页
第2页 / 共16页
智能温室控制系统设计.docx_第3页
第3页 / 共16页
智能温室控制系统设计.docx_第4页
第4页 / 共16页
智能温室控制系统设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

智能温室控制系统设计.docx

《智能温室控制系统设计.docx》由会员分享,可在线阅读,更多相关《智能温室控制系统设计.docx(16页珍藏版)》请在冰豆网上搜索。

智能温室控制系统设计.docx

智能温室控制系统设计

单片机开发与设计工程师考试文档

 

学校:

湖南人文科技学院

题目:

智能温室控制系统设计

姓名:

杨情红孙静

学号:

0740920207409224

日期:

2010年6月27日

 

摘要

智能温室控制技术是现代农业技术研究的重要内容,通过对温室内外监测数据的分析,结合作物生长发育的规律,控制有关设备,实现对温室要素的调控,达到作物优质、高产、高效的栽培目的。

本文通过对温室控制技术的研究,设计一种温室智能控制系统.该应用系统采用分布式的系统结构方式,以PC机为上位机,完成数据处理、参数设置等辅助功能;采用MCS-51单片机为下位机,完成全部控制功能,下位机可脱离上位机独立工作;可以设置温度值或湿度值的范围,可以自动、制冷、加热、光照、加湿。

关键词:

单片机;温室控制;LED数码管;8255A芯片;STC89C52;矩阵键盘;复位电路

 

 

智能温室控制系统设计

设计要求

利用单片机作为控制核心,完成一个智能空调控制系统。

具体要求如下:

(1)设置自动、制冷、加热、光照、加湿五种模式,通过一个模式按键进行模式切换

(2)设置2个按键,分别用来增加或减少温度值的设置

(3)能实现温度设定,最高温度限制为40℃,最低温度限制为16℃,温度调整范围为1℃

(4)可通过电脑进行远程设置

(5)可通过电脑对空调进行远程控制开关机

1设计方案

STC89C52单片机系统为核心来对温度、湿度进行实时控制和巡检。

各检测单元能独立完成各自功能,并根据主控机的指令对温度进行实时设置.测量结果不仅能在本地储存和显示,而且可通过RS-485总线及通信协议将采集的数据传送到主控机。

以便进行进一步的分析、存档、处理。

主控机负责控制指令的发送,主控机与各从机之间能够相互联系、相互协调,从而达到系统整体统一和谐的控制效果。

采用STC89C52控制8255A芯片,通过单片机键盘和PC机设置的温度值或湿度值,通过数码管来显示出来.四种模式用一个模式按键来切换;用3位LED数码管以串口传送数据实现温度或湿度和模式显示。

原理框图如图1所示:

 

图1系统方框图

2总体方案设计原理

本次课题采用STC89C52控制8255A芯片,通过单片机矩阵键盘和PC机设置的温度值或湿度值,通过数码管来显示出来。

四种模式用一个模式按键来切换。

用3位LED数码管以串口传送数据实现温度和模式显示。

系统软件工作流程图如下:

图2系统软件工作流程图

键盘扫描函数的流程图如下:

图3键盘扫描函数工作流程图

3模块设计

本课题所用的模块有STC89C52、8255A芯片、矩阵键盘、LED数码管电路、复位电路.

3.1STC89C52

STC89C52作为主控芯片,通过可编程并行口8255A芯片和单片机上的矩阵键盘的输入来设置温度或湿度的值并通过LED数码管来显示出来。

如图4所示:

图4STC89C52图

3。

28255A芯片

8255A芯片通过其引脚PA0~PA3,PB0~PB3,PC0~PC3来锁定键盘的按键和数码管的选择和显示.原理图如图5所示:

图58255A芯片图

3.3矩阵键盘

通过键盘来设置,再另外设置2个按键,分别用来增加或减少温度或湿度值的设置.在这里S1键是调节模式键,S5和S9键分别是增加和减少温度值或湿度值的.电路如图6示:

图6矩阵键盘电路图

3.4LED数码管电路

LED数码管来显示温度或湿度的设置值和所在的模式。

电路如图7示:

图7LED数码管电路图

3.5复位电路

系统复位。

电路如图8示:

图8复位电路图

4编程调试下载

本次课题采用C语言编程,使用keil编译器,调试程序分以下几个步骤进行:

1、先进行人工检查,即静态检查。

在写好程序以后,对纸面上的程序进行人工检查.为了更有效地进行人工检查,所编的程序应注意力求做到以下几点:

应当采用结构化程序方法编程,以增加可读性;2尽可能多加注释,以帮助理解每段程序的作用;3在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。

这样既易于阅读也便于调试,各函数之间除用参数传递数据这一渠道以外,数据间尽量少出现耦合关系,便于分别检查和处理。

2、在人工检查无误后,进行上机调试。

在编译时给出语法错误的信息,可以根据提示的信息具体找出程序中出错之处并改正之。

应当注意的是有时提示的出错并不是真正出错的行,如果在提示出错的行上找不到错误的话应当到上一行再找.有时提示出错的类型并非绝对准确,由于出错的情况繁多各种错误互有关联,因此要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。

如果系统提示的出错信息多,应当从上到下一一改正。

有时显示出一大片出错信息往往使人感到问题严重,无从下手.其实可能只有一二个错误.在改正语法错误后,程序经过连接就得到可执行的目标程序.

3、下载:

本次设计所使用的是STC-ISPV35单片机在线下载软件,设置完该软件的想关参数后,将keil成功编译后得到的。

hex文件通过该软件烧写入单片机中,下载时,应注意先关掉单片机电源,在STC—ISPV35提示“正在尝试与MCU/单片机握手连接.。

"时打开电源,则可将.hex文件成功烧入单片机中,继而看到实验的初始值。

4、按下S1键,可以进行模式的切换,模式1—5分别对应自动、制冷、加热、光照、加湿五种模式,按下S5和S9分别可以增加和减少温度值或湿度值,其范围是16到40。

5、通过PC机远程设置和开、关机。

打开串口调试程序,初始化设置端口号为COM3,波特率为2400,数据位为8位,停止位为1位,检验位为None;打开串口,输入要设置的数值,采用按十六进制显示或发送,按下发送,就可以看到LED数码管上的变化了。

5系统功能测试与整体指标

表格1系统测试结果

测量序号

理论值

测量值

mode=1,tem=20

mode=1,tem=20

mode=1,tem=20

mode=2,tem=20

mode=2,tem=20

mode=2,tem=20

mode=3,tem=20

mode=3,tem=20

mode=3,tem=20

mode=4,tem=20

mode=4,tem=20

mode=4,tem=20

mode=5,tem=20

mode=5,tem=20

mode=5,tem=20

Temp=1

mode=1

mode=1

Temp=2

mode=2

mode=2

Temp=1

mode=3

mode=3

Temp=23

Tem=23

Tem=23

Temp=24

Tem=24

Tem=24

Temp=0

关机

关机

6元器件及仪器设备明细表

表格2仪器清单

仪器名称

数量

STC89C52

1

可编程并行口8255A芯片

1

矩阵键盘

1

LED数码管

3

 

参考文献

[1]朱定华,戴汝平。

单片微机原理与应用.(M)北京:

清华大学出版社,2003

[2]张小梅,陆俊,彭冰沁,刘宏.嵌入式智能家居控制系统的设计与实现[J]。

微计算机信息,2007,1-2:

pp。

55—56。

[3]李朝青。

单片机原理及接口技术(简明修订版)。

杭州:

北京航空航天大学出版社,1998

[4] 李广弟。

单片机基础[M].北京:

北京航空航天大学出版社,1994

[5] 阎石。

数字电子技术基础(第三版).北京:

高等教育出版社,1989

附录一:

系统电路图

附录二:

程序

#include

#include

h〉

#defineuintunsignedint

#defineucharunsignedchar

#definePAXBYTE[0xD1FF]/*PA口地址*/

#definePBXBYTE[0xD2FF]/*PB口地址*/

#definePCXBYTE[0xD5FF]/*PC口地址*/

#defineCONXBYTE[0xD7FF]/*控制字地址*/

voiddisplay(ucharm,ucharn);

uchartem,mode,flag,temp;

ucharconstcodetable[10]={

0xA0,/*0*/

0xBB,/*1*/

0x62,/*2*/

0x2A,/*3*/

0x39,/*4*/

0x2C,/*5*/

0x24,/*6*/

0xBA,/*7*/

0x20,/*8*/

0x28,/*9*/

};

 

voiddelay(ucharz)//延时约Zms

ucharx,y;

for(x=z;x>0;x—-)

for(y=110;y〉0;y—-);

voidscan_keyboard()

ucharkdata;

PA=0x01;

kdata=PC;

if(kdata==0x01)

delay(5);

kdata=PC;

if(kdata==0x01)

{

while(PC)

display(tem,mode);

mode++;

if(mode>5)

mode=1;

}

if(kdata==0x02)

delay(5);

kdata=PC;

if(kdata==0x02)

{

while(PC)

display(tem,mode);

if(tem〈41)

tem++;

}

if(kdata==0x04)

{

delay(5);

kdata=PC;

if(kdata==0x04)

while(PC)

display(tem,mode);

if(tem〉15)

tem——;

}

voiddisplay(ucharm,ucharn)

{

CON=0x89;

PA=0xFF;

PB=0xFF;

PA=0xFE;

PB=table[m/10];

delay(5);

PB=0xFF;

PA=0xFD;

PB=table[m%10];

delay(5);

PB=0xFF;

PA=0xEF;

PB=table[n];

delay(5);

PB=0xFF;

voidinit()

{

TMOD=0x20;

TR1=1;

//ET1=1;

TH1=0xF3;

TL1=0xF3;

REN=1;

SM0=0;

SM1=1;

ES=1;

EA=1;

RI=0;

TI=0;

 

voidmain(void)

{

mode=1;

tem=20;

init();

while

(1)

if(flag==1)

{

flag=0;

if((temp<=40)&&(temp〉=16))//调整温度

tem=temp;

if((temp>=1)&&(temp〈=5))//调整模式

mode=temp;

if(temp==0)//关机

break;

display(tem,mode);

scan_keyboard();

voidISR_uart()interrupt4

{

if(RI==1)

RI=0;

temp=SBUF;

flag=1;

SBUF=temp;//回发给上位机

while(!

TI);

TI=0;

}

主控制器

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

当前位置:首页 > 总结汇报 > 学习总结

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

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