基于单片机的密集型烤烟房温度自动控制系统概要.docx
- 文档编号:25420903
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:30
- 大小:760.48KB
基于单片机的密集型烤烟房温度自动控制系统概要.docx
《基于单片机的密集型烤烟房温度自动控制系统概要.docx》由会员分享,可在线阅读,更多相关《基于单片机的密集型烤烟房温度自动控制系统概要.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的密集型烤烟房温度自动控制系统概要
届别2010届
学号200614240153
毕业设计
基于单片机的密集型烤烟房温度自动控制系统设计
姓名成政华
系别物理与电子信息工程系
专业电气工程及其自动化
导师姓名、职称李杨副教授
完成时间2010-4-10
摘要
由于县级密集型烤烟房的室温普遍采用人工控制,使得烘烤后的烟叶质量不稳定。
针对此现状,设计了基于STC89C52RC型号单片机为核心的密集型烤烟房温度自动控制系统,并且利用继电器对风门进行了改造,同时用C语言编写了一个温控程序,经调试、运行,达到了自动控制烤烟房温度的目的。
关键词:
密集型烤烟房;单片机;自动控制;继电器;C语言
ABSTRACT
Generally,thecountyintensivetobaccoroastroom’stemperatureismanualcontrol,thatcausethequalityoftobaccowhichafterroastedisunstable.Pointatthisproblem,wedesignthisautomaticcontrolsystemofintensivetobaccoroastroomtemperaturebasedonSTC89C52RCsinglechipmicrocomputer,andmakeuseofrelaysredevelopthethrottle,atthesametime,programacodeoftemperaturecontrolbasedonClanguage,throughthedebuggingandrunningmydesigncanachievethegoalwhichcontrolsthetobaccotemperatureautomatically.
Keywords:
IntensiveTobaccoRoastRoom;SingleChipMicrocomputer;automaticcontrol;Relays;Clanguage
1绪论
1.1研究背景
目前烟草行业在世界各国的国民经济中占用非常重要的地位,其税收是各国政府财政收入的重要来源之一[1]。
烟叶三段式烘烤技术是国外先进的烤烟生产技术。
该项技术自20世纪80年代中期传入我国,经过多年的试验示范,消化吸收,改进提高,现已成为烟叶生产中大面积推广应用的一项技术。
在推广烟叶三段式烘烤工艺工程中,由于几十个小时的烘烤过程完全由人工监控,所以烟农劳动强度很大,且烤房的温湿度控制不精确,使成烟中的优质率不够高。
烟农迫切希望能改变烤烟房,一方面减轻烤烟的劳动强度,另一方面提高烟叶质量,从而提高收入。
1.2国内烤烟系统研究现状
目前国内对烟叶烘烤大部分还是人工操作控制温度,智能化的设备和先进的技术在烟农中得不到广泛的推广和应用。
烟农大部分是出生于五、六十年代的人,他们的文化素质整体不高,对应用新设备,采纳新技术的愿望不强烈;目前市场上的智能设备与实际相脱离,表现在以下三个方面:
一是烟农难以接受如此昂贵的智能设备;二是设备的维护和保管是一个头痛的问题;三是农村电力常常不稳定,频繁的停电而使智能设备瘫痪,导致烟农损失惨重。
权衡利弊,烟农宁愿选择原始的人工控温,也不愿使用智能设备。
桂阳县作为全国第二大产烟区,全县约有十多万户烟农从事烟叶种植。
烟叶质量是影响烟农收入的主要原因之一,烟种的优良化和烘烤的科学化导致烟叶分成不同等级,相互之间价格相差很大。
传统的烘烤方法是在烤烟房悬挂一个温度计和一个湿度计。
烟农凭借经验,频繁调节鼓风机的开关、风门和天窗的开度的方式,来控制烤烟房的温湿度。
这种烘烤方式不仅加大了烟农的劳动强度,而且使得烤烟房的温湿度难以调控。
烟农迫切希望改善烤烟房,既可以减轻劳动强度,又可以提高烟叶质量,从而增加收入。
1.3烟叶三段式烘烤工艺简介[2]
三段式烟叶烘烤工艺分为三个工序,工序1为变黄期,工序2为定色期,工序3为烘干期,各工序对烤房的温度要求如图1。
工序1为变黄期:
烤房从室温开始,以每小时1℃的速率升温,当温度升至36℃~38℃时转为恒温,直至80%左右数量的烟叶达到变黄的要求。
工序2为定色期:
缓慢升温定色,前半段温度每小时上升0.5℃,升至42℃时为恒温,后半阶段温度每小时上升0.5℃,升至47℃~48℃时为恒温;
工序3为烘干期:
继续升温烘干,前半段温度每小时上升1℃,升至54℃时为恒温,后半段温度每小时上升1℃,升至65℃时为恒温,直至烟叶烘烤全部符合要求。
图1烟叶三段式烘烤工艺温度曲线
上述三个工序中的恒温时间视烟叶的烘烤质量和烘烤阶段烟叶变化程度由人工设定。
整个烘烤时间,下部烟四、五天,中部烟五、六天,上部烟六、七天。
1.4本系统设计目的及意义
目前,烟叶生产方式已由传统的土坑向大型烤房方向发展。
桂阳烟区已广泛推广烟叶烘烤的“三段式烘烤工艺”,并且大多数坑房已加装热风循环装置。
但是,干湿度、温度测量仍是传统的玻璃管温度计(火表),风门或火门的控制仍采用人工被动控制。
这种测量方法和控制方式已经成为制约烟叶烘烤质量提高的瓶颈问题。
本设计基于温度工艺要求,设计了以单片机为核心的温度控制装置,能实现对烤烟房的温度检测和实时控制,而且该设计不需要大规模改造原来的密集型烤烟房,结构简单,性能可靠。
如遇停电,烟农可轻松开启烟道闸板和风门,人工控温,不会因停电而影响烟叶烘烤质量。
针对烟农不愿采用智能设备的现象,本人阅读了大量的有关烟叶烘烤方面的文献,
结合自己所学知识和多年从事烟叶种植经验,本人设计出一种基于单片机控制烤烟房温度的系统装置。
该系统装置能达到减轻烟农的劳动强度,实现自动实时检测与控制烤烟房温度的目的,且费用低廉,可产生良好的经济效益和社会效益。
1.5设计完成的主要工作
针对上述现状,本设计希望对烤烟房温控系统作较为深入的研究,尤其在单片机温控程序设计和烤烟房风门改造方面作一定的探索。
结合农村自然经济的特点,设计基于单片机的烤烟房温控系统,为烟叶烘烤方面提供有益的参考价值。
2基于单片机的密集型烤烟房温控系统硬件设计
2.1密集型烤烟房的结构及器件的作用
2.1.1密集型烤烟房的结构
密集型烤烟房的空间结构如图2所示。
图2密集型烤烟房空间结构及器件分布图
2.1.2密集型烤烟房器件的作用
图2的密集型烤烟房,前门和天窗用于调节烤房内的温湿度。
烤炉在地下有个坑,呈锅形状,利于煤在里面燃烧,外面有个烤炉门,用于人工控制火力的大小,关的严实火力就小,反之火力就大。
该门能间接调节烤烟房的温度,三相风机转动,迫使烤炉与挡热墙之间的加热气流,经烤烟房顶部,不断地被吹到主室悬挂烟叶的空间,使房内均匀升温。
外面的空气从天窗和前门进入,从风门排出,形成循环对流,烟叶就不断处在加热和排出水分的烘烤流程中。
后门面积大,如果温度超高,就人工打开,使室内温度急剧下降,同时也是生烟和干烟的通道。
风门有四个,每边两个,其材料是叶片似的铝制薄片。
烤炉加热,使烤烟房的温度升高;风机转动产生的风引起烤烟房内的空气对流,使房内各个部分受热均匀。
同时产生的风有相当一部分从风门流失,使得房内的空气处于循环流动,从而实现了温度的有效控制。
2.2密集型烤烟房风门改造
借助于房内的空气对流作用让风门无序的开合达到控制烤烟房的温度是目前烟区普遍采用的烘烤工艺。
而目前风机的转速只有两挡,故风门依靠空气的对流实现关合是满足不了测控的需要,烤烟房的温度控制达不到预期的值,一方面需要关风门的时候却打开了,大量的热量就浪费掉了,另一方面需要开风门的时候却关闭,使房内的温度急剧上升,影响烟叶烘烤的质量,不符合资源节约型的发展模式。
在桂阳烟区,烟农凭借经验来控制火候,但各人的经验又有很大的差异,如不少人经常由于夜间没有把烤炉的煤封好,关好炉门,使得一夜之间就把烟烤青了或者火力长时间没有提升,烤房内的温度太低,使得烟叶被腐严重,均是现在烟农最头痛的问题。
将原来的密集型烤烟房的四个风门适当改造,使能满足继电器控制的电路环境。
设计中采用外接一段功能电路,结合继电器的接口特点和开合物理特性,达到单片机间接控制风门开合的功能。
该功能电路如图3所示。
图3继电器控制风门的构件
该构件是本人在多年的从事烟叶种植实践中构想出来的,适合目前密集型烤烟房的风门改造。
在构件里,螺线管通过电源供电产生磁场,磁场吸引下面的磁性铁体向上运动,同时带动风门的连杆一起运动,由于皮革柔软就折叠,自然风门就打开了;当螺线管断电时,磁性铁体因失去螺线管给它的向上力,失去平衡,就往下运动,此时风门就处于关闭状态。
回路中串联继电器,通过继电器的开关状态就能实现螺线管的通电状态。
继电器开关闭合,螺线管就导电,反之螺线管没有电流。
从而达到了单片机借助于继电器实时控制风门的开合状态。
利用单片机的实时监控烤烟房的温度,通过继电器来实现风门的开合,就维持了房内的温度按照预期的范围波动,解决了烟农的难题。
2.3密集型烤烟房温控系统
2.3.1密集型烤烟房温控系统硬件组成
本设计的温控系统由数据采集、数据调理、单片机、人工控制四个部分组成,系统大致的组成框图如图4。
温控系统具有实时采集(检测烤房内的温度)、实时处理(对检测到的温度进行对比分析,决定下一步控制进程)、实时控制(根据处理发出的指令,产生相应的动作)的功能。
图4密集型烤烟房温控系统的硬件原理图
2.3.2液晶、蜂鸣器和继电器外设
本设计是用1602液晶显示测得的温度和设定的温度,该液晶接口如图5[3]所示。
图51602液晶接口电路
该液晶是由长沙太阳人电子有限公司生产的,模块最佳工作电压为5伏,显示容量为16*2个字符。
RS为数据/命令选择端,LCDEN为使能信号端,8个引脚传送数据[3]。
报警系统采用开发板上的蜂鸣器,其接口电路如图6所示。
图6蜂鸣器接口电路图
继电器也是用开发板上JRC4100-5VDC(单片机硬件资源图右边黄色那个),继电器能实现一路控制外设,满足设计的需要。
该部分电路如图7所示。
图7继电器外围接口电路
该继电器接口有三个,一个接外电路正极,另外一个接负极。
并且可知继电器只有一个IO口通过RL接到J16的1号线路上,由于本设计开发板的P0口都用于液晶的指令了,故在模型中是将RL接口用外接线接到单片机P22引脚口,经测试对系统的其它功能无任何影响。
2.3.3STC89C52RC型号单片机简介
设计中使用了STC89C52RC型号的单片机,其开发板的电路结构和组成部件如图8所示[3]。
图8单片机硬件资源
设计是利用1602液晶显示检测到的温度和人工设定的温度,使用S9、S13、S17三个矩阵键盘作为人工设定温度的按钮;执行机构是继电器,蜂鸣器作为报警器。
STC89C52RC的开发板由于厂家是把继电器的接口优先接到P06引脚口上的,但由于本设计的P0口用于液晶的指令了,就把继电器的接口RL用引针线接到P22口,经本人调式、检验,无运行错误。
温度的传感器是开发板上的DS18B20,此温度传感器能显示小数点后一位,最高温度可达120多度,满足测控的精度和量程要求。
3基于单片机的密集型烤烟房温控系统软件设计
3.1系统软件总体结构
主程序结构采用循环方式,采用定时器T0中断处理程序控制继电器开关的关断。
主程序进行系统初始化,包括定时器、I/O口和中断系统初始化。
循环中进行以下操作:
拨盘设定值检测、温度检测、标度转换、数字滤波、温度显示和控制,这些动作分别由相应的子程序模块完成[4]。
主程序流程图如图9所示。
图9主程序流程图
3.2单片机相关功能模块
3.2.1液晶功能模块
1602液晶的第一行显示设定的温度和测得的温度,第二行显示chengzhenghua,居中。
液晶开始要初始化设置,其相关程序见附录。
3.2.2温度显示模块
温度传感器选择DALLAS公司生产的一线制数字温度传感器DS18B20,它具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出[5]。
由于DS18B20只有一个串行通信接口,与单片机的连接电路非常简单,只需和单片机的一个I/O端口连接即可,本系统选择了P26端口,其连接电路图如图10所示。
DS18B20的I/O口属于漏极开路输出,外接上拉电阻后常态下呈高电平。
该器件内含寄生电源,其供电方式可以选择寄生电源方式,也可以选用外部电源[6]。
本设计的温度传感器是采用外部电源供电。
图10温度测量电路
3.2.3继电器控制外设模块
继电器控制模块主要是单片机通过设定程序来使继电器的开关状态有规律的变化,这涉及到烟叶温度设定子程序和判断控制子程序及继电器的工作原理。
设计的拨盘是矩阵键盘,有三个,分别是S9.S13.S17,功能分别实现定位、加数和减数。
操作简便,可以随意改变设定的温度,符合烟叶三段式的烘烤工艺要求。
判断的程序采用了分区比较法,假设测得的温度为t1,设定的温度为t2。
其关系如下所示:
t1∈[t2-0.5℃,t2+0.5℃]风门不执行动作
t1∈[t2-3℃,t2-0.5℃]关闭风门
t1∈[-∞,t2-3℃]关闭风门,报警
t1∈[t2+0.5℃,t2+3℃]打开风门
t1∈[t2+3℃,+∞]打开风门,报警
而风门的开合又由继电器控制,故本设计的核心是单片机温控程序对继电器的精确控制,这一模块涉及到研究、调试、应用程序的诸多设计。
3.3单片机温度自动控制系统程序
本设计的源程序是用C语言编写的,在电脑上经过KeiluVision2调试仿真,得到汇编语言,再经过USB串口下载,在单片机上运行。
源程序如下:
#include
#include"intrins.h"
#defineucharunsignedchar
#defineuintunsignedint
sbitDS=P2^6;//////温度传送数据IO口
sbitrl=P2^2;////继电器传送数据IO口
sbitwela=P2^7;
sbitrs=P3^5;
sbitlcden=P3^4;
sbitrd=P3^7;
sbits1=P3^0;
sbits2=P3^1;
sbits3=P3^2;
sbitbeep=P2^3;////蜂鸣器输出
uinttemp,shi,ge,xiao,wendu,wendu1,wendu2,wendu3,wendu4;
ucharflag1,s1num;
ucharcodetable1[]="00.000.0";
ucharcodetable2[]="chengzhenghua";
///////////////////////////////////////////////////
/***********1602液晶显示部分子程序****************/
///////////////////////////////////////////////////
voiddelay1(uintz)//延时z毫秒
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//液晶地址操作函数
voidwrite_com(ucharcom)
{
rs=0;
lcden=0;
P0=com;
delay1(5);
lcden=1;
delay1(5);
lcden=0;
}
//液晶数据操作函数
voidwrite_date(uchardate)
{
rs=1;
lcden=0;
P0=date;
delay1(5);
lcden=1;
delay1(5);
lcden=0;
}
voidinit()
{
ucharnum;
wela=0;//关掉数码管的使能信号。
阻止数码管受到P0口信号的影响。
lcden=0;
write_com(0x0c);//显示开及光标设置
write_com(0x06);//显示光标移动设置
write_com(0x01);//清零
write_com(0x80);//第一行数据写入
for(num=0;num<14;num++)
{
write_date(table1[num]);
delay1(5);
}
write_com(0x80+0x40);//第二行数据写入
for(num=0;num<15;num++)
{
write_date(table2[num]);
delay1(5);
}
}
///////////设定的温度在液晶的显示
voidwrite_wendu(ucharadd,uchardate)
{
ucharshi,ge;
shi=date/10;
ge=date%10;
write_com(0x80+add);//命令:
第一行输入,add为首地址
write_date(0x30+shi);
write_date(0x30+ge);
}
//延时
voiddelay(ucharcount)
{
uinti;
while(count)
{
i=200;
while(i>0)
i--;
count--;
}
}
//中断初始化模式
voidInit_Com(void)
{
TMOD=0x01;//定时器0的1方式
TH0=(65536-50000)/256;//装入初值
TL0=(65536-50000)%256;
TR0=1;
EA=1;//打开中断
ET0=1;
TR0=1;//定时器启动
}
//////////////////////////////////////////////////////////
/********************ds18b20子程序***********************/
//////////////////////////////////////////////////////////
/***********ds18b20延迟子函数(晶振12MHz)*******/
/**********ds18b20初始化函数**********************/
voiddsreset(void)
{
uinti;
DS=0;
i=103;
while(i>0)i--;
i=4;
while(i>0)i--;
}
//读取一个字
bittmpreadbit(void)
{
uinti;
DS=0;i++;//i++为了延时
DS=1;i++;i++;
dat=DS;
i=8;while(i>0)i--;
return(dat);
}
/***********ds18b20读一个字节**************/
uchartmpread(void)
{
uchari,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tmpreadbit();
dat=(j<<7)|(dat>>1);//读出的数据最低位在最前面,这样刚好一个字节在DAT里
}
return(dat);
}
/*************ds18b20写一个字节****************/
voidtmpwritebyte(uchardat)
{
uinti;
ucharj;
bittestb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb)//写1
{
DS=0;
i++;i++;
DS=1;
i=8;while(i>0)i--;
}
else
{
DS=0;//写0
i=8;while(i>0)i--;
DS=1;
i++;i++;
}
}
}
//DS18B20开始改变
voidtmpchange(void)
{
dsreset();
delay
(1);
tmpwritebyte(0xcc);//写入地址
tmpwritebyte(0x44);//将模拟的温度信息转化数字信号
}
/**************读取ds18b20当前温度************/
uinttmp()
{
floattt;
uchara,b;
dsreset();
delay
(1);
a=tmpread();
b=tmpread();
temp<<=8;//两个字节合并为一个整型数据
temp=temp|a;
tt=temp*0.0625;
temp=tt*10+0.5;
returntemp;
}
voidreadrom()//读取序列中的数据
{
ucharsn1,sn2;
delay
(1);
sn1=tmpread();
sn2=tmpread();
}
voiddelay10ms()//延时10毫秒
{
uchara,b;
for(a=10;a>0;a--)
for(b=60;b>0;b--);
}
//温度数据转换成液晶字符显示
display(uinttemp)
{
ucharA1,A2,A2t,A3;
A1=temp/100;//读取百位
A2t=temp%100;
A2=A2t/10;//读取十位
A3=A2t%10;//读取个位
write_com(0x80+10);//地址指令,表示在液晶的第一行的第十个位
write_date(0x30+A1);//在第九位上输写百位数字
write_date(0x30+A2);//在第十一位上输写十位数字
write_com(0x80+13);//地址指令,表示在液晶的第一行的第十三个位
write_date(0x30+A3);//在第十三位上输写个位数字
delay
(1);
}
/////////启动蜂鸣报警程序////////
voidvoice()
{
beep=0;
delay1(5);
beep=1;
}
///////////////ds18b20的延时///////
voiddelay2(void)
{
intk;
for(k=0;k<5000;k++
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 密集型 烤烟 温度 自动控制系统 概要