基于单片机温度控制电路的设计与制作毕业论文.docx
- 文档编号:26037761
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:27
- 大小:336.92KB
基于单片机温度控制电路的设计与制作毕业论文.docx
《基于单片机温度控制电路的设计与制作毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机温度控制电路的设计与制作毕业论文.docx(27页珍藏版)》请在冰豆网上搜索。
基于单片机温度控制电路的设计与制作毕业论文
设计(论文)题目
仓储室温度自动控制系统
学院:
电信学院
学生姓名:
专业班级:
应用电子22班(手机)
学号:
指导教师:
2012年2月5日
摘要:
本设计以STC89C52RC单片机为控制核心,由数字温度传感器DS18B20构成了一个高温和低温时,分别对相应的器件进行控制的系统。
详细地介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计,重点阐述了时钟模块、显示模块、温度检测模块及相关控制模块等的模块化设计思路与制作。
系统采用八段四位数码管作为显示器,具有环境温度实时显示,按键设置上下限温度,从而控制仓库排气扇转动。
在本设计中,软件程序均采用C语言编写,便于移植与升级。
关键词:
STC89C52RC;单片机;数码管;温度控制;
Basedonsingle-chipmicrocomputer
temperaturecontrolcircuitdesignandproduction
Abstract:
ThisdesignwithSTC89C52RCmicrocontrollerascontrolcore,byrealtimeclockchipDS1302anddigitaltemperaturesensorDS18B20constituteahightemperatureandlowtemperaturerespectivelyonthecorrespondingdevicetocontrolsystem.Introducedthewholesystemshardwarestructure,workingprincipleandsystemsoftwareprogramdesignindetail,expoundstheclockmodule,displaymodule,temperaturedetectingmoduleandrelatedcontrolmoduleofmodularizationdesignandproduction.Systemadopts数码管monitor,数码管1602aswithreal-timetimedisplay,environmentaltemperaturedisplay,displaythesystemworked24hoursbeforethetemperatureonthehourvalue.Inthisdesign,softwareprogramallusewritteninClanguage,fortransplantationandupgrades.
Keywords:
STC89C52RC;single-chip;Digitaltube;Temperaturecontrol;
基于单片机温度控制电路的设计与制作
1背景与意义
背景
随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。
特别是近年来,温度控制系统已应用到人们生活的各个方面,设计一个温度控制系统,具有广泛的应用前景与实际意义。
温度是科学技术中最基本的物理量之一,物理,化学,生物等学科都离不开温度。
在工业生产和实验研究中,像电力,化工,石油,冶金,航空航天,机械制造,粮食存储,酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。
比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油,柴油,煤油等产品。
没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。
因此,各行各业对温度控制的要求都越来越高。
可见,温度的测量和控制是非常重要的。
单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。
随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的智能温度控制器应运而生。
比较成熟的产品就有水温测控温度控制系统和语音报警的温度监控仪等。
其中水温测控温度控制系统的功能可以实现从常温开始对自来水加温,加热到人工设定的温度的恒温控制。
而语音报警的温度监控仪可以通过控制空调对温度进行自动调节,使被控环境的温度达到要求的范围,并能实现对所控区域内环境温度的自动监控的远程智能调控系统。
意义
基于单片机温度控制的测试控制系统,控制对象是温度。
温度控制在日常生活及工业领域应用相当广泛,比如温室,水池,发酵缸,电源等场所的温度控制。
而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。
针对此问题,本系统设计的目的是实现可以根据外界环境温度控制电机的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。
功能介绍
1.3.1按设定键可切换设置模式,数码管显示相应模式页面。
1.3.2当按下温度设定键,即
1.3.3当进入上下限温度设置时,按动上下键可实现温度调整,并通过设定需要设定的上下限温度值,可实现风扇的自动控制和手动控制工作方式的切换。
1方案比较与论证
设计任务与要求
2.1.1当传感器检测出的环境温度偏低时,控制继电器,实现电暖炉的开与关的状态。
2.1.2当传感器检测出的环境温度偏高时,随着温度的改变,控制电机的转速作出相应的改变。
2.1.3通过时钟芯片DS1302自动控制电机,使其在某个时间段不工作。
2.1.4当环境温度超出了设定值时,蜂鸣器发出声响报警。
方案比较与论证
1.1.1方案比较与论证
方案一:
单片机按照一定的控制算法对采集的温度数据进行处理,得到控制量,以控制电机的功率,从而实现风扇转速的控制。
传感器采用集成的AD599,但是这个方案的电路结构十分复杂,A/D转换器的精度实现既定功能的困难很大,而且由于器件很多,使得单片机89C51的内部资源不能满足需要,调试和安装都十分不方便,同时实现扩展功能困难。
方案组成方框图如图1所示:
图1方案一组成方框图
方案二:
采用数字式温度传感器DS18B20,它能够将温度直接转换成数字信号,可以通过一根数据线与单片机进行通信,而且它不需要外部元件,在-100C~850C范围内可以精确到+0.50C。
完全满足设计要求。
这样设计就可以不使用A/D转换器,从而使系统的精度得以提高,也能够大大节省单片机得系统资源,所以我又加了DS1302时钟模块电路,使时间能够实时显示。
方案组成方框图如图2所示:
图2方案二组成方框图
1.1.2方案的选择
通过以上两种方案的比较,我选择的是方案二作为设计方案,因为方案二与方案一相比,它的硬件系统更简单,但是功能却更强大,它本身的模块化设计又使它的系统通用性远远超过方案一,在现在的条件下我能够完成这个方案,所以最终选择了这个方案。
2系统硬件设计
总体电路框图
本设计以STC89C52RC单片机为主控核心设计的一个温度控制系统,低温
时可控制加热设备,高温时控制风扇,超出设定最高温度值时蜂鸣器发出声响报警。
硬件方框图如图3所示:
图3总体硬件方框图
单元电路设计
2.1.1单片机模块
STC89C52RC单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。
第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。
31引脚接电源端[9-11],如图4所示:
图4单片机电路
2.1.2温度采集模块
DS18B20支持“一线总线”,故可以大大提高系统的抗干扰性,适合于恶劣的环境温度测量。
全部传感元件及转换电路集成在形如一只三极管的集成电路内,体积小。
同时DS18B20的测量温度范围为-550C~+1250C,在-10~+850C范围内,精度为+0.50C。
同样的,DS18B20还可以程序设定9~12位的分辨率,精度为+0.50C。
同时设定的报警温度存储在EEPROM中,掉电后依然保存。
并且支持3V~5V的电压范围。
便于系统设计。
DS18B20的主要特点:
适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电;
独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;
DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;
DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;
温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;
可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;
在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;
测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;
负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作[249-256]。
对DS18B20的设计外部供电方式单点测温。
在这种外部电源供电方式下,DS18B20工作电源由VDD引脚接入,因为由VDD接入电源不存在电源电流不足的问题,可以保证转换精度。
不过要注意。
在这种外部供电的方式下,DS18B20的GND脚不能悬空,否则不能转换温度,读取的温度总是80oC。
DS18B20的硬件电路连接如下图6所示:
图6DS18B20原理图
2.1.3数码管显示模块
数码管显示模块是一种专门用于显示字母、数字、版本号等的段显示模块。
它是由四位数码管位组成的,数码管右下角有一个小数点,这样就起到了小数的显示,确保精确的显示。
本系统采用四位八段数码管,我设置单片机驱动数码管采用三极管的电流控制方式,单片机输出口电流,驱动三极管,达到控制显示的目的。
连接原理图如图7所示:
图7数码管显示数码管1602原理图
2.1.4按键模块
我在本设计中加入了3个按键,
其中S1为模式键,按一次,选择显示当前温度模式,按第二次,选择设置上下限温度模式,按第三次,复位模式。
S2、S3为设置键,用于设置上下限温度值。
如图8所示:
图8按键原理图
3.2.5系统电路结构
3系统软件设计
总体软件框图(如图9)
图9总体软件框图
各模块程序设计
3.1.1温度数据采集:
根据DS18B20的通讯协议,单片机控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作,复位要求单片机将数据线下拉50微秒,然后释放,当DS18B20受到信号后等待16~60微秒左右,然后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
指令
约定代码
功能
读ROM
33H
读DS1820温度传感器ROM中的编码(即64位地址)
符合ROM
55H
发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的BS1820使之作出响应,为下一步对该DS1820的读写作准备。
搜索ROM
OFOH
用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。
为操作各器件作好准备。
跳过ROM
OCCH
忽略64位ROM地址,直接向DS1820发温度变换命令。
适用与单片工作。
告警搜索命令
OECH
执行后只有温度超过设定值上限或下限的片子才做出响应。
指令
约定代码
功能
温度变换
44H
启动DS1820进行温度转换12位转换时最厂为750ms(9位为93.75ms)。
结果存入内部9字节RAM中。
读暂存器
OBEH
读内部RAM中9字节的内容。
写暂存器
4EH
发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。
复制暂存器
48H
将RAM中第3、4字节的内容复制到EEPROM中
重调EEPROM
OB8H
将EEPROM中内容恢复到RAM中的第3、4字节。
读供电方式
OB4H
读DS1820的供电模式。
寄生东佃时DS1820发送“0”,外界电源供电DS1820发送“1”。
下图12是DS18B20的初始化和读写时序:
图12DS18B20读写时序
4系统调试与测试
硬件调试
在本温度控制电路的设计调试中遇到了很多的问题。
回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:
(1)开始调试时发现数码管发热很厉害,后来发现三极管的驱动电流太大了,加上上拉电阻后问题就解决了。
(2)双向可控硅BTA12-600B高压部分电路,加104电容时,发生击穿现象,导致光耦控制部分电路瘫痪,原因是耐压值不够。
解决的方法有两种,第一种是更换耐压值更高的电容;由于该电容的作用是吸收可控硅元件的残余电量,使得可控硅能够正常导通截止,而根据使用的负载(交流电机),去掉该电容后,该电路能够正常的工作,所以第二种是在电路可以运行的状况下去掉该104电容相连的电路。
我采取的是第二种方法。
软件调试
在软件调试时也出现了一些问题,其中主要的问题有以下两个方面:
(1)程序读取温度值时,出现的现象,造成风扇温度在判断时出现错误,使风扇经常性突快突慢变化,蜂鸣器也不断的蜂鸣报警。
解决的方法是在读取温度判断时加延时,并且多次判断,防止跳变。
(2)调节系统参数时,数码管光标太快以致调节的时候观察困难,原因是刷新数码管太快。
解决的方法是在相应数据更该时,才开始刷新数码管内容。
5设计总结
在整个设计过程中,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。
较好的完成了作品,达到了预期的目的,完了最初的设想。
但是在做板时由于之前考虑的不够周全,时钟芯片没有加到上拉电阻,由于是做好了板把元件焊上去才发现的,只能在板的后面把3个上拉电阻焊上去,所以导致了整块板的看起来不是很美观。
通过这一次的经验我意识到了对电路的设计、布局要先有一个好的构思,而且要认真仔细的检查各个功能模块的具体情况,确保不遗留什么元件,才做出美观、大方的电路板。
程序编写中,先研究各个功能模块的程序,包括时钟模块的程序,温度模块的程序,不懂的就通过查资料或者请教老师和同学来解决,然后再整理好这些程序,最终完成了能实现整个设计要求的程序。
在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,也练就了我们的耐心和细心,做什么事都要认真仔细,因为细节决定成败。
总之,这次设计使我的能力得到了全方位的提高。
参考文献
[1]沙占友王彦明孟志永.单片机外围电路设计[M].北京:
电子工业出版社,2003,1
[2]李建忠.单片机原理及应用(第二版)[M].西安:
西安电子科技大学出版社,2008,2
[3]谭浩强.C程序设计(第三版)[M].(清华大学出版社)2006.11
[4]求是科技.单片机典型模块设计实例导航[M].北京:
人民邮电出版社,2004
[5]华成英童诗白.模拟电子技术基础(第四版)[M].(高等教育出版社)2006.1
[6]缪家鼎徐文娟牟同升.光电技术[M].浙江大学出版社,1996.3
[7]吴大正.电路基础(第二版)(西安电子科技大学出版社)2000.7
[8]袁小平.电子技术综合设计教程(第一版)(机械工业出版社)2008.4
[9]康华光,邹寿彬,电子技术基础数字部分(第四版)北京:
高等教育出版社1999
[10]杜肤生,数字集成电路应用精粹,北京:
人民邮电出版社2001
[11]陈大钦,电子技术基础实验(第二版),北京:
高等教育出版社2000
[12]全国大学生电子设计竞赛组委会,第五界全国大学生电子设计竞赛获奖作品选编.2001.北京理工大学出版社,2003
[13]中国计量出版社组编,新编电子电路大全,北京:
中国计量出版社,2001.1
[14]葛汝明,《电子技术实验与课程设计》,山东:
山东大学出版社2004
[15]周永金,《模拟电子技术及应用》,西安:
陕西国防学院电子教研室2005
[16]吴玮玮,PROTEL99简明应用教程,西安:
陕西国防学院电子教研室2006
[17]任元,吴勇,《常用电子元器件简明手册》,北京:
工业出版社2000
[18]程路,郑毅,向先波,PROTEL99SE电路板设计与制作,人民邮电出版社 2007
致谢
这次的设计和论文是在各位老师的悉心指导下完成的。
你们严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。
从课题的选择到项目的最终完成,你们都始终给予我细心的指导和不懈的支持。
在此谨向老师们致以诚挚的谢意和崇高的敬意。
在此,我还要感谢在一起愉快的度过大学三年的09级电子班的同学和老师们,是你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。
最后,衷心感谢在百忙之中抽出宝贵时间对此论文进行评阅与审议的老师们。
感谢学院给我提供了一个展现自己的舞台,给我一次难得煅炼的机会,使得我的动手能力和专业技能都有了很大的提高。
附录
附录A:
程序清单
//********DS18B20tempcontroller*************************************************
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitDQ=P1^3;//温度输入口
sbitIO=P1^5;//继电器输出口
sbitbp=P1^4;
uinth;
uinttemp,set;
uintcount,flag;
ucharset1[3]={0};
sbitk1=P1^0;
sbitk2=P1^1;
sbitk3=P1^2;
//**************温度小数部分用查表法***********//
ucharcodeditab[16]=
{0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
//
ucharcodedis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};
//共阳LED段码表"0""1""2""3""4""5""6""7""8""9""不亮""-"
ucharcodedis_8[12]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,
0xFF,0x3F};
//带小数点共阴LED段码表"0""1""2""3""4""5""6""7""8""9""不亮""-"
uchardatatemp_data[2]={0x00,0x00};//读出温度暂放
uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据和一个运算暂用
/*****************11us延时函数*************************/
voiddelay(uintt)
{
for(;t>0;t--);
}
voiddelay2(ucharx)
{
uchara,b;
for(a=0;a<20;a++)
{for(b=x;b>0;b--);}
}
/****************显示扫描函数***************************/
voidscan()
{
P0=dis_7[display[2]];//数据显示
P2=0Xfb;
delay(250);
P0=dis_8[display[1]];//小数点显示
P2=0Xfd;
delay(250);
P0=dis_7[display[0]];//数据显示
P2=0Xfe;
delay(250);
P0=0XFF;
P2=0XFF;
}
/****************DS18B20复位函数************************/
voidow_reset(void)
{
charpresence=1;
while(presence)
{
while(presence)
{
DQ=1;_nop_();_nop_();//从高拉倒低
DQ=0;
delay(50);//550us
DQ=1;
delay(6);//66us
presence=DQ;//presence=0复位成功,继续下一步
}
delay(45);//延时500us
presence=~DQ;
}
DQ=1;//拉高电平
}
/****************DS18B20写命令函数************************/
//向1-WIRE总线上写1个字节
voidwrite_byte(ucharval)
{
uchari;
for(i=8;i>0;i--)
{
DQ=1;_nop_();_nop_();//从高拉倒低
DQ=0;_nop_();_nop_();_nop_();_nop_();//5us
DQ=val&0x01;//最低位移出
delay(6);//66us
val=val/2;//右移1位
}
DQ=1;
delay
(1);
}
//
/****************DS18B20读1字节函数************************/
//从总线上取1个字节
ucharread_byte(void)
{
uchari;
ucharvalue=0;
for(i=8;i>0;i--)
{
DQ=1;_nop_();_nop_();
value>>=1;
DQ=0;_nop_();_nop_();_nop_();_nop_();//4us
DQ=1;_nop_();_nop_();_nop_();_nop_();//4us
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机温度控制电路的设计与制作 毕业论文 基于 单片机 温度 控制电路 设计 制作
![提示](https://static.bdocx.com/images/bang_tan.gif)