智能温室控制系统设计.docx
- 文档编号:27245446
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:16
- 大小:259.64KB
智能温室控制系统设计.docx
《智能温室控制系统设计.docx》由会员分享,可在线阅读,更多相关《智能温室控制系统设计.docx(16页珍藏版)》请在冰豆网上搜索。
智能温室控制系统设计
单片机开发与设计工程师考试文档
学校:
湖南人文科技学院
题目:
智能温室控制系统设计
姓名:
杨情红孙静
学号:
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; } 主控制器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 温室 控制系统 设计