基于单片机的种苗催芽室环境参数监控系统设计与实现应用电子技术.docx
- 文档编号:4967310
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:42
- 大小:3.70MB
基于单片机的种苗催芽室环境参数监控系统设计与实现应用电子技术.docx
《基于单片机的种苗催芽室环境参数监控系统设计与实现应用电子技术.docx》由会员分享,可在线阅读,更多相关《基于单片机的种苗催芽室环境参数监控系统设计与实现应用电子技术.docx(42页珍藏版)》请在冰点文库上搜索。
基于单片机的种苗催芽室环境参数监控系统设计与实现应用电子技术
毕业设计(论文)
题目:
基于单片机的种苗催芽室环境参数监控
系统设计与实现
姓名:
学号:
二级院系部:
机电工程系
班级:
高专电子09
专业:
应用电子技术
指导教师:
、职称:
讲师、副教授
二〇一二年六月
xx畜牧兽医职业技术学院学生毕业设计(论文)诚信承诺书
论文题目
养殖场用单片机温度控制器的设计与实现
学生姓名
xx
学号
xxx
所属专业
应用电子技术
班级
高专电子09
指导教师姓名
xx、xx
职称
讲师、副教授
学生承诺
我承诺在毕业设计(论文)活动中,遵守学校有关规定,恪守学术规范,本人毕业设计(论文)内容除特别注明和引用外,均为本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的情况,如果有违规行为,我愿意承担一切责任,接受学校的处理。
学生(签名):
年月日
指导教师承诺
我承诺在毕业设计(论文)活动中,遵守学校有关规定,恪守学术规范,经过本人核查,该生毕业设计(论文)内容除特别注明和引用外,均为本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的现象。
指导教师(签名):
年月日
xx畜牧兽医职业技术学院学生毕业设计(论文)材料目录
序号
名称
备注
1
全文
2
任务书
3
开题报告或实施方案
4
指导记录
5
6
7
8
答辩记录
9
成绩评定表
养殖场用单片机温度控制器的设计与实现
【摘要】
养殖过程中,养殖大棚的环境控制对于动植物的健康生长、最大程度地发挥其生长性能有着及其重要的意义。
养殖大棚的环境控制主要是针对温度、湿度等环境因子进行监视和控制。
本次设计是根据养殖场的环境温度控制要求,研究并建立基于单片机的温度控制系统。
本系统是以AT89C52单片机为核心,并与数字温度传感器DS18B20、四位一体的数码管、继电器、按键、小型电风扇、LED灯等器件结合起来,共同构成温度控制器。
以养殖场的温度为设定参数,根据参数偏离设定值(理想的养殖温度)的程度由单片机自动启动相应的加热和降温设备,来升温或降温,实现对设定参数的闭环调节。
该系统能够及时采集养殖场温度,并能自动升温和降温,从而将养殖场温度保持在恒温,该系统具有较高的测量精度和控制精度。
本文首先对养殖场温度控制过程进行分析,提出了多种控制方案,对各方案比较后确定了本设计的总体方案。
然后进行原理图的设计,采用分步焊接、软件设计与调试,最后进行联调。
通过对控制器进行实验和分析,表明系统运行情况正常,各功能模块功能的实现可行,采集的温度数据精确性较高,能满足控制的要求。
除此之外,该系统电路简单、成本低,稍做修改还可以应用于其他温度控制的过程中,这大大地扩大了该系统的应用范围,在养殖中具有一定的实际意义。
【关键词】
AT89C52;DS18B20;温度控制;继电器控制
Abstract
Keywords
AT89C52;DS18B20;temperaturecontrol;relaycontrol
绪论
动植物的生长都是在一定的环境中进行的,在生长过程中受到环境中各种因素的影响,其中对其影响最大的就是温度。
若昼夜的温度变化很大,其对动植物生长极为不利,因此必须对温度进行监测和控制,使其适合动植物的生长,以提高其产量和质量。
本设计就是对养殖场内温度控制要求进行分析,综合考虑系统的精度、效率以及经济性要求多方面因素之后,设计一种基于单片机的养殖温度自动控制系统。
该系统能够实现自动监控,使其温度控制在设定值的某个范围内,同时可以通过按键输入设定温度等控制指令,完成监控系统的工作。
基于此,本课题的主要研究内容有以下几个部分:
[1]温度控制系统的总体方案设计部分
该部分主要研究养殖场温度控制的实现原理,确定温度控制系统的具体实现过程,进行系统的总体设计,给出硬件系统结构框图,完成硬件各部分元器件的选择等。
[2]系统硬件设计部分
该部分主要完成单片机基本电路(时钟、复位电路等)、数据采集电路、显示输出接口、按键输入接口、继电器控制等模块电路的设计,最后给出总原理图的设计。
[3]系统程序设计部分
此部分主要完成主服务程序、温度采集与处理、按键输入温度设定、温度显示、继电器控制等程序模块的设计。
[4]系统实现
该部分主要是从硬件与软件两个方面探讨系统的实现过程,采用分步焊接与调试,并对系统进行了相应的试验分析,以验证系统所具有的功能。
本系统实现的温度控制目标功能如下:
(1)系统能对环境温度进行采集和显示(现场观温,软件记录)。
(2)能通过按键设定动植物生长期适宜温度并显示。
(3)当环境温度参数超过设定的上下限值时控制相应的设备启动。
(4)可实时显示当前温度信息,并加以控制。
(5)能分辨出的最小温度<0.5℃。
1.系统方案选择和论证
1.1题目要求
设计并制作一个温度自动控制系统,控制对象为养殖大棚。
温度可以在一定范围内由人工设定,并能对环境温度实现自动控制,以保持设定的温度基本不变。
1.1.1基本要求
(1)温度设定范围为00℃~90℃,最小区分度为1℃,标定温度≤1℃;
(2)环境温度若需降低时(用电风扇降温),温度控制的静态误差≤1℃;
(3)环境温度若需升高时(用加热器升温),温度控制的静态误差≤1℃;
(4)用十进制数码管显示实际温度。
(5)测量温度时可在大棚内任意设置一个测量点。
1.1.2发挥部分
(1)采用适当的控制方法,当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量;
(2)温度控制的静态误差≤0.2℃;
1.1.3功能说明
(1)加热器用一千瓦电炉;
(2)如果采用单片机控制,允许使用已有的单片机最小系统板;
(3)数码显示部分可以使用数码显示模块;
1.2系统基本方案
根据题目要求系统模块可以划分为:
温度测量模块,显示电路模块,设定温度模块,加热模块,控制模块和降温模块,系统的框图如图1-1所示。
图1-1系统方框图
1.2.1各模块电路的方案选择及论证
为实现各模块的功能,分别做了几种不同的设计方案并进行论证。
(1)控制器模块
根据题目要求,控制器主要用于对温度测量信号的接受和处理、控制加热丝和风扇使控制对象满足设计要求、控制显示电路对温度值实时显示以及控制键盘实现对温度值的设定等。
对控制器的选择有以下三种方案:
方案一:
采用FPGA作为系统控制器。
FPGA功能强大,可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性,并且可应用EDA软件仿真、调试,易于进行功能扩展。
FPGA采用并行的I/O口方式,提高了系统的处理速度,适合作为大规模实时系统控制核心。
由温度传感器送来的温度信号,经FPGA程序对其进行处理,控制加热或降温装置动作。
但由于本设计对数据处理的速度要求不高,FPGA的高速处理的优势得不到充分体现,并且其成本偏高,引脚较多,硬件电路布线复杂。
方案二:
采用模拟运算放大器组成PID控制系统。
对于温度控制是足够的,但要附加显示、温度设定等功能,要附加许多电路,硬件电路稍显麻烦。
方案三:
采用ATMEL公司的AT89C52作为系统控制器。
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且其功耗低、体积小、技术成熟和成本低等优点。
基于以上分析拟订方案三,由AT89C52作为控制核心,对温度采集和实时显示以及加热装置进行控制。
(2)加热和降温装置控制模块
根据题目要求,当温度过低时,可以使用电热炉进行加热,当温度过高时,关掉电热炉开启风扇进行降温处理。
对加热和降温装置控制模块有以下两种方案:
方案一:
采用可控硅来控制。
可控硅是一种半控器件,应用于交流电的功率控制有两种形式:
控制导通的交流周期数达到控制功率的目的;控制导通角的方式控制交流功率。
该方案电路稍复杂,需使用光耦合驱动芯片以及变压器等器件。
但该方案可以实现功率的连续调节,因此响应速度快,控制精度也高。
方案二:
采用继电器控制。
使用继电器可以很容易实现通过较高的电压和电流,在正常条件下,工作十分可靠。
继电器无需外加光耦,自身即可实现电气隔离。
这种电路
无法精确实现功率控制,只能工作在最大功率或零功率,对控制精度将造成影响。
基于以上分析以及现有器件限制选择方案二,采用继电器控制省去光耦和交流过零检测电路,只需在软件上选用适当的控制算法,同样可以达到较好的效果。
(3)温度采集模块
题目要求温度静态误差小于等于0.2℃,温度信号为模拟信号,本设计要对温度进行控制和显示,所以要把模拟量转换为数字量。
该温度采集模块有以下三种方案:
方案一:
利用热电阻传感器作为感温元件,热电阻随温度变化而变化,用仪表测量出热电阻的阻值变化,从而得到与电阻值相应的温度值。
最常用的是铂电阻传感器,铂电阻在氧化介质中,甚至在高温的条件下其物理,化学性质不变。
由铂电阻阻值的变化经小信号变送器XTR101将铂电阻随温度的变化转换为4~20mA线性变化电流,再将电流信号转化为电压信号,送到A/D转换器ADC0809,即将模拟信号转换为数字信号。
该方案线性度优于0.01%。
方案二:
采用温度传感器AD590K。
AD590K具有较高精度和重复性,良好的非线性,保证±0.1℃的测量精度,加上软件非线性补偿即可以实现高精度测量。
AD590将温度转化为电流信号,因此要加相应的调理电路,将电流信号转化为电压信号。
送入8位A/D转换器,基本满足题目要求。
方案三:
采用数字温度传感器DS18B20。
DS18B20无需其他外加电路,直接输出数字量,可直接与单片机通信,读取测温数据,电路简单。
DS18B20与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简单,可靠性更高。
它在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果。
基于以上分析和现有器件所限,温度采集模块选用方案三。
(4)键盘与显示模块
根据题目要求,温度要由人工设定,并能实时显示温度值。
对键盘和显示模块有下面两种方案:
方案一:
采用液晶显示屏和通用矩阵键盘。
液晶显示屏(LCD)具有功耗小、轻薄短小无辐射危险,平面直角显示以及影像稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特点。
但由于只需显示四位温度值,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器资源占用较多,其成本也偏高。
方案二:
采用四位一体的LED八段数码管分别显示温度的十位、个位和小数点后两位。
按键采用单列3按键进行温度设定。
数码管具有低能耗、低压、寿命长,对外界环境要求较低。
同时数码管采用BCD编码显示数字,程序编译容易,资源占用较少。
根据以上论述,采用方案二。
本系统中,采用了数码管的动态显示,节省单片机的内部资源。
1.2.2 系统各模块的最终方案
根据以上分析,结合器件和设备等因素,确定如下方案:
(1)采用AT89C52单片机作为控制器,分别对温度采集、LED显示、温度设定、加热装置和降温装置控制。
(2)温度测量模块采用数字温度传感器DS18B20。
此器件经软件设置可以实现高分辨率测量。
(3)电热丝和风扇采用继电器控制,实现电路简单实用,加上温度变化缓慢可以满足设计要求。
(4)显示用LED数码管显示实时温度值,用ENTER(确定)、UP(上调)、DOWN(下调)三个单键实现温度值的设定。
CPU(AT89C52)首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过89S52来处理数据。
数据处理后的结果就显示到数码管上。
另外由键盘设定温度值送到单片机,单片机通过数据处理发出温度控制信息到继电器。
DS18B20可以被编程,所以箭头是双向的。
系统的实现框图如图1-2所示。
图1-2系统实现框图
1.3本章小结
本章通过对养殖场温度控制器的功能要求进行分析,并对实现该系统的各部分功能进行方案论证与比较,最后给出总体方案设计思路。
为第二章系统硬件电路原理图的设计做了有力的铺垫。
2.硬件设计与实现
本系统的执行方法是循环查询执行的,键盘扫描也是用循环查询的办法,由于本系统对实时性要求不是很高,所以没有用到中断方式来处理。
各模块关系图如图2-1所示。
图2-1系
2.2 主要单元电路的设计
2.2.1温度采集部分设计
本系统采用单总线可编程温度传感器DS18B20来实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。
DS18B20应用广泛,性能可以满足题目的设计要求。
DS18B20的测温电路如图2-2所示。
图2-2DS18B20测温电路
(1)DS18B20的测温功能的实现
DS18B20测温功能的实现主要是依靠编程。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的0,1字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。
温度值格式如表2-1所示,其中“S”为标志位,对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。
DS18B20完成温度转换后,就把测得的温度值与TH做比较,若T>TH或T 表2-1DS18B20温度值格式表 LSByte MSByte S S S S S (2) 单总线上的所有处理均从初始化开始。 由于本系统要控制电热丝加热,功率较大,因此要借助功率电路。 在器件选择上留足余量,增加安全性。 加热部分采用继电器控制,电路简单可靠。 电路如图2-3所示。 当实测温度低于设定值时,由单片机输出高电平信号,三极管9014导通,继电器开始工作对加热。 为了防止继电器频繁动作,在软件中对水温测量精确到0.1℃,而在温度设定时只取整数,可以有1℃的余量。 二极管起到保护三极管的作用,防止三极管击穿。 说明: 这个电路可以根据实际加热器的要求跟换继电器及电源的大小,这里只是假设一个小型功率的加热器,实际达不到很快升温的目的。 当设定温度低于实测温度时为了加快系统动态响应速度,设置一个小功率电扇,加速温度的降低。 使系统整体性能得以提高。 原理图如图2-4所示。 2.2.3键盘、显示、控制器部分 本设计中采用动态显示方式驱动4个八段数码管,分别显示温度的十位、个位和小数点后两位。 动态显示组合式数码管只需要较少的引脚个数,以4位组合式数码管为例,需要8+4=12个引脚。 而如果每个数码管都要单独引脚,至少需要4*9=36个引脚。 引脚数减少使得印刷线路板布置变得更为简单,因此,在需要使用多位数码管时,一般都用组合式的。 数码管采用共阳极,单片机P0口作为段控制,P2.7~P2.4通过4个PNP型三极管接第1~4位数码管的COM端。 键盘采用按键开关经上拉电阻分别接P1.1、P1.2、P1.3口上,起到控制、上调和下调作用。 每按上调和下调键,设定温度值增1减1。 单片机XTAL2、XTAL1接12MHZ晶振,提供系统时钟基值。 另RESET接复位电路。 原理图如图2-5所示。 图2-5键盘、显示、控制器部分原理图 2.3系统总原理图 在分模块设计的基础上,进行综合电路原理图的设计,系统的总原理图见附录3。 2.4本章小结 首先对温度控制器硬件的关系进行描述,然后分模块对温度采集、键盘、显示及控制器部分进行硬件电路的设计,最后给出总原理图的设计,为第三章软件的设计做好准备。 3.系统软件设计 系统的软件设计采用汇编语言,对单片机进行编程实现各功能。 主程序对模块进行初始化,而后调用读温度、处理温度、显示、键盘和继电器控制各模块。 采用的是循环查询方式,来显示和控制温度。 工作过程中的协议进行。 初始化->ROM操作命令->存储器操作命令->处理数据,3.2 数据处理子程序 由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。 温度高字节(MSByte)高5位是用来保存温度的正负(标志为S的bit11~bit15),高字节(MSByte)低3位和低字节来保存温度值(bit0~bit10)。 其中低字节(LSByte)的低4位来保存温度的小数位(bit0~bit3)。 由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留两位小数即可,即本系统的温度精确到了0.01度。 算法核心: 首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LSByte)取反加一变成原码。 处理过后把DS18B20的温度Copy到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD码,分别把小数位,个位,十位的BCD码存入RAM中。 数据处理子程序流程图如图3-2所示。 图3-2 数据处理子程序流程图 按键功能: 1. Enter → P1.1(S1) 控制键 2. Up → P1.2(S2) 加1键 3. Down → P1.3(S3) 减1键 键盘子程序流程图如图3-3所示。 总模块流程图如图3-4所示。 本软件设计采用循环查询来处理各个模块,温度是缓慢变化量所以可以满足性能要求。 图3-3键盘子程序流程图 图3-4 主程序流程图 源程序的设计采用的是汇编语言,由于源程序代码较长,故将其放在附录中,具体参见附录4。 系统软件的设计同样也采用分模块的设计思路,然后利用主程序去调用各模块,主要设计了数据处理子程序、显示子程序、键盘扫描子程序、继电器控制子程序。 4.系统制作与调试 在具体的产品制作过程中,我们采用的是分模块焊接与调试,目的是为了防止全部焊接调试困难,若一次不成功,查找错误麻烦。 首先用万用表对数码管进行共阴还是共阳的识别以及各引脚功能的识别,然后把单片机工作最小系统电路焊接好,采用合适的方法连接数码管与单片机。 最后编写数码管驱动程序,用烧写器将程序编入到AT89S52单片机中。 具体调试体会如下: 在这里最关键的就是数码管动态显示原理的理解与编程,刚开始编了一个简单的程序显示1234,但第一次显示的数不对,乱码,结果发现a和e段接线不小心搭在一起了,线分开后,显示就正常了。 然后又修改程序让其显示小数,如24.94,如图4-1所示。 为了进一步理解动态显示程序的原理,将显示程序中的延时变长发现显示的数有闪烁现象,变得更长4个都不能同时显示。 由此可见,动态显示的关键是要选择一个合适的延时时间,在这里采用的延时约为2ms。 图4-1数码管显示效果图 数码管调试正常后,按原理图将按键与单片机连接,焊接很简单,关键是程序的编写。 刚开始编好程序后发现按下上调或下调键,温度上升或下降的速度非常快,人眼无法分辨出温度的值,因此没办法设定温度。 解决办法: 发现是按键处理子程序中延时时间太短了。 修改延时时间后,按下上调或下调键温度上升或下降速度明显没刚开始快了,但是还是比较快。 又进行二次延时时间的修改,这次温度每变化一度人眼都可分辨出。 在此基础上,我们对按键的功能进行修改,每按一次上调或下降按钮,温度变1度,这样可以避免长时间按着上调或下降按钮温度在不停的变。 我们对按键处理子程序进行了修改,加了几条判断按键是否按了一次这么一个过程。 最终按键实现的功能如下: 如果想设定温度,首先要按控制键(ENTER),然后再按上调或下调温度按钮才可调整温度(每按一次调整1度),调好以后再按控制键(ENTER),单片机才能感受到,并启动相应的加热或降温装置。 每按一次上调按键效果如图4-2所示,每按一次下调按键效果图如图4-3所示。 图4-2上调按键效果图 图4-3下调按键效果图 按键与显示部分调试好后,进行DS18B20温度传感器与单片机的连接,它采用独特的单线接口方式,仅需一个端口引脚,但必须先建立ROM操作协议,才能进行存储器和控制操作。 DS18B20的数据读写是通过时间隙处理位和命令字来完成信息交换的,需要严格的时序协议以确保数据的完整性。 第一次编好DS18B20温度程序后,显示的温度不正常,然后就仔细阅读程序,发现是时序出了问题,修改时序后温度就正常了。 由此可见,DS18B20传感器的工作关键靠程序,程序中的时序又是最重要的。 继电器控制电风扇和加热器,由于元器件的限制,没有加热器,故在此用LED灯来模拟加热器,灯亮代表加热器加热。 故在此先做继电器控制电风扇这部分电路,其与继电器控制加热器原理一样。 先将继电器控制风扇这部分电路与单片机连接好,然后编写程序。 温度传感器测得当前温度值并正常显示后,按键设定温度,若设定温度比当前温度低时,电风扇应自动启动降温,但是刚开始电风扇却不动,查找程序怎么也找不到原因。 程序没问题就寻找电路的原因,查阅了大量的资料,然后问了有经验的老师,修改了好几次电路但是由于元器件型号等问题,前面几次都没成功,有时要这个地方大约耗了一个月的时间。 在此期间电风扇转到的效果: 电风扇需要启动时有时转有时不转,需要停下来时却停不下来,与想要的效果完全不一样。 最后在指导老师任玲的帮助下,发现三极管导体了但是继电器就是不闭合,风扇不转。 原来没有考虑好三极管的导通电流问题,最后在三极管的b极接了一个15KΩ上拉电阻,然后接到5V电源上,问题终于得到了解决。 总结: 继电器控制电风扇主要是电路设计上的缺陷,经过电路的改进,目前问题已解决。 电风扇与单片机连接效果如图4-4所示。 图4-4电风扇与单片机的连接实物图 分步调试后,最后进行联调,由于条件限制,在本设计中采用室内温度进行测试,若设定温度高于当前温度值,加热器模拟灯会亮,但是室内温度不会变化那么快,我们采用体温来实现温度的快速升高,达到设定值,加热器灯灭。 具体调试过程如下: (1)DS18B20温度传感器测得当前温度值为28.38℃,显示如图4-5所示。 图4-5温度传感器实测温度实物图 (2)设定温度值为32.50℃,比当前实际温度高4℃。 设定温度效果图如图4-6所示。 图4-6温度设定效果图 (3)按下确认键后,因设定温度比当前实际温度高,因此加热器模拟灯亮,代表加热器开始加热。 效果如图4-7所示,只要不超过32.50℃,加热器都应该在加热。 图4-7模拟加热器灯亮 (4)在此采用体温加热,当温度超过了32.50℃,加热器就应该停止工作,效果如图4-8,电风扇启动,效果如图4-9所示,直到32.50℃左右加热和风扇停止工作。 图4-8加热器停止加热 图4-9电风扇转动 (5)实物总体效果图如图4-10所示。 图4-10系统总体效果图 本章对温度控制器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 种苗 催芽 环境参数 监控 系统 设计 实现 应用 电子技术