恒温箱自动控制系统设计报告
- 格式:doc
- 大小:209.54 KB
- 文档页数:8
恒温箱自动控制系统设计
组员:
院系:
指导教师:
【摘要】
本组设计的恒温箱自动控制系统主要由中央处理器、温度传感器、半导体制冷器、键盘、显示、声光报警等部分组成。
处理器采用AVR Mega128单片机,温度传感器采用DS18B20,利用半导体制冷片一面制冷一面发热的工作特性进行升降温,用LCD12864作为显示输出。
温度传感器检测到温度数据传送给单片机,单片机再将温度数据与给定值进行比较,从而发出对半导体制冷器的控制信号,使温度维系在给定值附近(偏差小于±2℃),同时单片机将数据送与显示器。
【关键字】
单片机温度传感器半导体制冷器控制
一、设计方案比较
1.1总体设计方案
这里利用DS18B20芯片作为恒温箱的温度检测元件。
DS18B20芯片可以直接把测量的温度值变换成单片机可以读取的标准电压信号。
单片机从外部的两位十进制拨码键盘进行给定值设定,读入的数据与给定值进行比较,根据偏差的大小,采用闭环控制的方法使控制量更加精准。
控制结果通过液晶显示器LCD12864予以显示。
系统整体框图如图一所示:
图一、系统整体框图
1)温度检测元件的选择:
方案一:这里所设计的是测温电路,因此可以采用热敏电阻之类的器件利用其感温效应,检测并采集出随温度变化而产生的电压或电流,进行A/D转换后送给单片机进行数据处理,从而发出控制信号。
此方案需要另外设计A/D转换电路,使得温测电路比较麻烦。
方案二:上网查得温度传感器DS18B20能直接读出被测温度,并可根据实际要求通过简单的编程实现9~12位的数字值读取方式,它内部有一个结构为8字节的高速暂存RAM存储器。
DS18B20芯片可以直接把测量的温度值变换成单片机可以读取的标准电压信号。
与方案一比较更加简单实用,因此我们选择方案二。
2)显示方案选择:
方案一:温度的显示可以用数码管,但数码管只能显示简单的数字,它有电路复杂,占用资源较多,显示信息少等缺点。
方案二:LCD12864汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字,128个字符及64×256点阵显示RAM。
可显示内容:128列×64行,多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。
我们设计的系统需要显示更多的信息,所以考虑显示功能更好的液晶显示,要求能显示更多的数据,增强显示信息的可读性,看起来更方便。
所以选择方案二。
LCD12864接线方法如图二所示:
图二、LCD12864接线图
3)声光报警系统
采用蜂鸣器及三色LED组成声光报警系统。
制冷时LED为红色,温度达到控制要求且上下浮动在1℃以内时为绿色,升温时为黄色。
温度到达给定值的同时,蜂鸣器发出报警提示音。
二、理论分析与计算
实现温度的实时显示是由计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算,并进行温度值正负的判定,从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符显示。
因为 DS18B20 的转换精度为 9-12 位可选的,为了提高精度采用12位。
在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以 0.0625,就是实际的十进制温度值。
计算温度子程序流程图如图三:
图三、温度子程序流程
三、系统硬件电路设计
首先确定系统总体结构,再逐个设计所需电路。
10×10(mm)恒温室,为是室内温度与外界隔绝好,我们采用厚泡沫板做箱体,温度传感器嵌入箱内并固定在箱内中间位置;
单片机主控电路模块;
单片机最小系统接线如图四:
图四、单片机最小系统接线图
电源电路模块,设计有5V,6V,9V,12V等不同输出电压以满足各部分电压需求;
控制制冷片工作的继电器模块;
键盘输入模块,可输入二位十进制数,输入范围为5~35,超出范围时会给出错误提示;
输出显示模块;
声光报警系统,
蜂鸣器接线图如图五:
图五、蜂鸣器接线图
程序下载电路如图六示:
图六、下载电路
四、系统软件程序设计
4.1主程序
系统主程序首先对系统进行初始化,包括设置定时器、端口;开机画面显示系统程序不断循环执行显示效果:
#include<iom128v.h>
#include<macros.h>
#include"12864.h"
#include"delay.h"
#include"18B20.h"
#include"AVR_128.h"
#include"key_scan.h"
#define WATERON PORTE|=0x01;
#define WATEROFF PORTE&=~0x01;
#define WIND_FREEZEON PORTE|=0x02;
#define WIND_FREEZEOFF PORTE&=~0x02;
#define HEETON PORTE|=0x04;
#define HEETOFF PORTE&=~0x04;
void main()
{
uint wendu;
uchar aa,bb,a1=0,a2=0,b1=0,b2=0,b3=0,m1=0,n1=0,a,b,c;
DDRA=0xf0;
PORTA=0xff;
DDRG=0xff;
PORTG=0xff;
DDRE=0xff;
PORTE=0xf0;
PORT_Init(); //端口初始化
Lcd_Init(); //初始化LCD
Clear_All();
TCCR1B=0X05; //1024分频
TCNT1H=0Xc2; //设定初值,定时一分钟
TCNT1L=0Xf6;
TIMSK|=BIT(2);
Write_LCD(0,1,"当前温度:");
Write_LCD_lib(4,1,a); //显示转换的结果在12864上表示出来
Write_LCD_lib(5,1,b);
Write_LCD(6,1,".");
Write_LCD_lib(7,1,c);
WATERON;
}
}
}
五、测试方法与实验数据
5.1硬件和软件的调试
1、硬件调试时,可先检查印制板及焊接的质量是否符合要求,有无虚焊点及线路间有无短路、断路。
然后用万用表检测,检查无误后,可通电检查 LCD 液晶显示器亮度情况,一般情况下取背光电压为 4~5.5V 即可得到满意的效果,再依次检查各部分结构安装是否牢固。
2.软件调试是在ICCAVR编译器下进行,源程序编译及仿真调试应分段或以子程序为单位逐个进行,最后结合硬件实时调试。
子程序调试包括:
1).LCD12864显示程序;
2).延时函数子程序;
3).DS18B20读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序。
5.2实验数据及结果分析
1、实验数据
2、结果分析
升、降温过程中每变化15℃所用时间均未超过3分钟,满足设计要求,但是从数据可以看出,温度在向室温方向变化时的速度要快于背离室温变化时的速度,说明外界温度对恒温箱内温度还是有一定的影响,不可消除。
六、报告总结
本恒温箱的温度可调范围:3~35℃,温度误差小,温度显示稳定。
可显示当前温度、设定温度、温度差值;设定温度通过3×4矩阵键盘输入,当温度达到设定值时启动蜂鸣器,指示灯变为绿色。
【参考文献】
1. 单片机原理与控制技术 (第二版) 张志良主编
2. 单片机机开发技术与实训黄庆华、张永格、主编
3. 高频电路原理与分析 (第二版) 曾兴雯、刘乃安、陈键、编著
4. 电子线路设计·实验·测试(第二版)谢自美、主编
5 全国大学生电子设计竞赛获奖作品汇编 (06/07/08年)
6 电子线路设计应用手册张友汉主编
7 单片机基础. 李广弟主编。