单片机温度监测系统设计毕业论文.docx
- 文档编号:7393146
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:18
- 大小:228.80KB
单片机温度监测系统设计毕业论文.docx
《单片机温度监测系统设计毕业论文.docx》由会员分享,可在线阅读,更多相关《单片机温度监测系统设计毕业论文.docx(18页珍藏版)》请在冰豆网上搜索。
单片机温度监测系统设计毕业论文
第一部分设计任务与调研
1.毕业设计的主要任务
温度往往是一个很重要的量,需要准确地加以控制。
除了这些部门之外,温度控制系统还广泛应用于其他领域,是用途很广的一类工业控制系统。
温度控制系统常用来保持温度恒定或者使温度按照某种规定的程序变化。
现要求能广泛工厂、民居的基于单片机的温度检测系统.
2.设计的思路
本设计的整体思路:
利用流过热敏电阻电流随温度线性变化的关系,将电流的变化转化为电压的变化,即0℃时输出电压为0V显示在数码管上的数值为00.0。
当40℃时输出电压通过A/D转换器输出处理显示为40.0。
即在0~40℃的温度变化过程中,电压变化对应温度变化。
数码管上的数值就是对应于所测量的实际温度值。
测量过程中可通过独立按键,设置测量温度上下限数值(上限>下限),设置成功后,系统测量实时温度,当前温度高于上限值或低于下限值,通过蜂鸣器报警。
3.调研的目的和总结
随着现代工业的逐步发展,在工业生产中,温度、压力、流量和液位是四种最常见的过程变量。
其中,温度是一个非常重要的过程变量。
列如:
在冶金工业、化工工业、电力工业、机械加工和食品加工等许多领域,都需要对各种加热炉、热处理炉、反应炉和锅炉的温度进行即监测控制。
然而,用常规的控制方法,潜力是有限的,难以满足较高的性能要求。
采用单片机来对它们进行温度监测控制不仅具有控制方便、简单和灵活性大的优点,而且可以大幅度的提高被监测温度的技术指标,从而能够大大的提高产品的质量和数量。
因此,单片机对温度的监测控制问题是一个工业生产中经常遇到的控制问题。
不论是生活中还是在工业生产中,温度的变化对生活、生产的某些细节环节都会造成不同程度的温度,所以适时地对温度进行监测控制具有重要的意义。
第二部分设计说明
1.理论分析
1.1单元模块设计
电源模块相当于房屋的基石,关系到整个系统的稳定性及数据的可靠性。
因此,我们通过大量查阅资料,方案比较,选择了合适的电源。
该系统使用干电池供电。
单片机需要5V电源,A/D需要稳定5V电源。
总体来说,我们采用集成三端稳压芯片为系统提供稳定的电源需求。
集成三端稳压器主要有两种:
一种是线性稳压芯片,另一种是开关型稳压芯片。
线性稳压芯片输出纹波小,电路简单,但功耗较大,效率较低,典型芯片为LM7805;开关稳压芯片则功耗小,效率高,但是输出纹波大,电路复杂,典型芯片为LM2596。
对于单片机来说,单片机本身功耗低,但是它对电源要求相对较高。
经过选型实验对比,LM2940性能较优。
LM2940为最大输出1A低压差线性稳压器件。
能为单片机及A/D芯片提供稳定的5V电压。
图3.1电源模块设计原理图
2.设计方案(构思、分析、确定)
2.1.电桥方案
采用铂电阻,利用电阻与温度的非线性关系,用电桥实现温度升高引起的电阻值变化对应于电压的关系。
经A/D转换后,送入锁存器所存,再经译码器输出后,通过数码管显示。
电桥测温电路放大电路A/D转换电路
LED显示译码器锁存器
图2.1测温整体方案一框图
2.2.基于单片机的方案
见图2.2,利用热敏电阻电压与温度的变化为线性,我们将温度的变化转化为电压的变化,通过A/D转换输出后进入单片机系统,通过软件控制,将电压对应于温度的数值通过查表的方式得出结果。
在LED上显示结果。
NTC热敏电阻A/D转换电路
按键设置上下限单LED显示
片
机蜂鸣器报警
图2.2测温整体方案二框图
2.3.方案比较与方案选择
方案一中铂电阻与温度的关系是非线性的,输出结果不能达到我们所要求的精度。
温度的上下限设置电路复杂。
方案二基于单片机,电路简单,消耗的功率相对较小,调试容易,控制性及可靠性均优于方案一。
因此选择采用方案二。
3单片机温度检测系统设计
3.1单片机最小系统
本系统采用89C51单片机,89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-FalshProgrammableandErasableReadOnlyMemory)的低电压、高性能COMS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
主要特性:
与MCS-51兼容
4K字节可编程闪烁存储寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24MHz
三级程序存储锁定
128*8位内部RAM
32可编程I/O线.两个16位定时/计数器
五个中断源
图3.2单片机最小系统电路原理图
3.2温度采集与量化模块
该系统温度采集利用NTC(负温度系数)热敏电阻(CWF2-502F3950),A/D转换利用ADC0804模数转换芯片。
NTC(NegativeTemperatureCoeff1Cient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料.该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有负温度系数(NTC)的热敏电阻.其电阻率和材料常数随材料成分比例、烧结气氛、烧结温度和结构状态不同而变化.现在还出现了以碳化硅、硒化锡、氮化钽等为代表的非氧化物系NTC热敏电阻材料.
电阻温度特性可以近似地用下式表示:
R=R0exp{B(1/T-1/T0)}:
R:
温度T(K)时的电阻值、Ro:
温度T0、(K)时的电阻值、B:
B值、*T(K)=t(ºC)+273.15式中:
分别表示NTC在温度T(K)和额定温度
(K)下的电阻值.
电阻-温度关系表
温度(℃)
电阻(Ω)
温度(℃)
电阻(Ω)
温度(℃)
电阻(Ω)
0
14230
1
13601.9
2
13005.4
3
12438.7
4
11900.1
5
11388.2
6
10901.3
7
10438.3
8
9997.74
9
9578.41
10
9181
11
8799
12
8436.83
13
8091.73
14
7762.78
15
7449.16
16
7159.04
17
6864.7
18
6592.4
19
6332.49
20
6084.32
21
5847.31
22
5620.89
23
5404.53
24
5197.72
25
5000
26
4810.9
27
4630.01
28
4456.83
29
4291.28
30
4132.69
31
3980.83
32
3835.38
33
3696.03
34
3562.49
35
3434.5
36
3311.78
37
3194.1
38
3081.22
39
2972.92
40
2869
ADC0804简介:
ADC0804是一款早期的A/D转换器。
8位单通道,模数转换时间大约100us,TTL或CMOS标准接口,可满足差分电压输入,具有参考电压输入端,内含时钟发生器,单电源供电(0~5V)输入信号电压范围0~5V,不需要调零。
ADC0804模拟转数字对照表
图3.3温度采集与量化电路原理图
3.3显示与报警模块设计
本系统采用4位7段数码管显示经单片机处理的实时温度。
利用蜂鸣器实现温度报警。
系统上电后,数码管后三位显示当前温度,通过按键选择,显示上下限温度,上下限温度值以数码管第一位进行区分,字母“H”表示显示为上限温度,字母“L”表示显示为下限温度。
设置上限温度后,系统将判断当前温度是否超过或低于限值,如果出现,则蜂鸣器开始报警,直到断电或者温度重新回到正常范围(不超过上限低于下限)。
图3.4.1显示电路设计原理图
图3.4.2报警电路原理图设计
第三部分设计成果
1设计成果
系统软件仿真
图5.1系统整体Proteus仿真图
由于Proteus库中没有热敏电阻仿真模型,我们利用大电阻代替热敏电阻,通过阻值与温度关系表,算出温度理论值,与仿真结果进行比较。
比较结果基本相同。
仿真结束后,我们就开始着手硬件电路的焊接。
2作品的特点
系统设计要求达到精度±0.5℃。
通过软件算法的合理设计,及电路各部件的搭配,基本实现将误差控制在±0.5℃。
系统误差产生因素包括,热敏电阻自身特性导致的误差,软件代码算法差生的误差,硬件电路供电稳定性而产生的误差,ADC模数转换产生的误差。
由热敏电阻自身特性产生的误差不可避免,而且在误差可控范围内,遂不加以优化。
电路的稳定性主要是电源供电稳定性的体现,我们采用稳压电路,为系统提供稳定的电源,减少因外界扰动,电池的损耗而产生的误差。
数模转换器差生的误差在本系统中可以忽略,但仍然为其提供稳定电压。
并在编程时,通过在短时间内多次采样进行比较,滤除不稳定大变动信号,以实现整个系统在误差最小的情况下稳定工作。
3佐证材料:
单片机系统程序
#include
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitcs=P3^5;
sbitwr=P3^6;
sbitrd=P3^7;
sbitkey1=P3^0;
sbitkey2=P3^1;
sbitkey3=P3^2;
ucharcodetable1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchartable2[]={63,65,68,70,72,75,77,79,82,84,87,89,92,94,
97,99,102,104,107,109,112,114,117,119,122,124,127,129,
131,134,136,139,141,143,145,147,150,152,154,156,158
};
uchartemp,swei,gwei,fwei;
uintk=0,Data,Data1[9];
unsignedintnum,num1;
floattnum;
bitflag1,flag2;
intHnum,Lnum;
voiddelay(intz)
{
intx;
for(z;z>0;z--)
for(x=123;x>0;x--);
}
voiddisplay()
{
swei=num/100;
gwei=num%100/10;
fwei=num%10;
P0=0xfd;;
P1=table1[swei];
delay(3);
P0=0xfb;
P1=table1[gwei]+0x80;
delay(3);
P0=0xf7;;
P1=table1[fwei];
delay(3);
}
voidread_AD()
{
inti,j,temp1;
for(i=0;i<9;i++)
{
cs=0;
wr=0;
_nop_();
cs=1;
wr=1;
cs=0;
rd=0;
_nop_();
P2=0xff;
Data1[i]=P2;
cs=1;
rd=1;
}
for(i=0;i<5;i++)
{
for(j=i+1;j<9;j++)
if(Data1[i] { temp1=Data1[i]; Data1[i]=Data1[j]; Data1[j]=temp1; } } Data=Data1[4]; } voidbuzzer() { if(num1>Hnum||num1 P3_4=0; else P3_4=1; } voidcheck_chart() { uinttemp1=0,temp2=40,temp3,i; intx; floattemp4; for(i=0;i<=6;i++) { temp3=(temp1+temp2)/2; x=Data-table2[temp3]; if(x==0) { tnum=temp3; num=tnum*10; i=10; } elseif(x>0) { temp1=temp3; } else { temp2=temp3; } if((temp1+1)==temp2) { i=10;//让其不能满足循环的条件 temp4=Data-table2[temp1]; tnum=(temp4/(table2[temp2]-table2[temp1]))+temp1;//数字类型有错 num=tnum; tnum=tnum-num; num=num*10; if(tnum>=0.75) { num=num+1; } elseif(tnum<0.25) {} else { num=num+5; num1=num; } } } } voidkeyscan1() { uchartemp1; key1=1; _nop_(); temp1=key1; if(temp1==0) { delay (2); key1=1; temp1=key1; if(temp1==0) { k++; if(k==3) k=0; while(! temp1) { key1=1; temp1=key1; } } } } voidmain() { k=0; Hnum=300; Lnum=200; P0=0xff; EA=1; EX0=1; EX1=1; while (1) { keyscan1(); if(k==0) { read_AD(); check_chart(); } if(k==1) { num=Hnum; if(flag1==1) { flag1=0; Hnum+=5; if(Hnum==405) Hnum=Lnum+5;// num=Hnum; } if(flag2==1) { flag2=0; Hnum-=5; if(Hnum==Lnum) Hnum=400; num=Hnum; } } if(k==2) { num=Lnum; if(flag1==1) { flag1=0; Lnum+=5; if(Lnum==Hnum) Lnum=0;// num=Lnum; } if(flag2==1) { flag2=0; Lnum-=5; if(Lnum<0) Lnum=Hnum-5; num=Lnum; } } display(); buzzer(); } } voidkeyscan2()interrupt0 { delay (2); if(INT0==0) { flag1=1; } while(! INT0) {} } voidkeyscan3()interrupt2 { delay (2); if(INT1==0) { flag2=1; } while(! INT1) {} } 第四部分结束语 本系统以DACO804模数转换芯片为核心部件,利用软件编程,通过LED显示实现了环境温度的显示,能实现题目的基本要求。 尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。 由于时间有限和本身知识水平的发挥,我认为本系统还有需要改进和提高的地方。 例如可以再加上温度上下限报警以及增加上位机进行控制等,这都可以在编程上进行改进。 从这款单片机控制的温度检测系统制作,让我掌握了单片机应用系统的硬件设计和软件设计,提高了我在单片机应用系统方面的设计能力,同时也增强了我的动手实践能力。 我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次设计中的最大收获 第五部分致谢 本设计是在我的指导老师的亲切关怀和悉心指导下完成的。 她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。 从课题的选择到项目的最终完成,老师都始终给予我细心的指导和不懈的支持。 在此谨向老师致以诚挚的谢意和崇高的敬意。 深深感恩父母的养育之恩,谁言寸草心,报得三春晖。 希望工作后的自己能承担起家庭的责任,减轻父母的负担。 感谢母校三年的教诲,在校期间让我成长许多,学习到知识和担当。 同窗三年,感谢同学无私的帮助和快乐的相伴。 在毕业设计即将完成之际,我的心情感慨万千。 毕业后,我们不能忘记在社会这所大学里学习成长,终身学习,奋斗成为国家的栋梁之才! 第六部分参考文献 【1】SUNPLUSSPMCF75F2431A编程指南V1.1Jan、03、2005 【2】单片机原理及其接口技术.胡汉才.清华大学出版社.05、2010 【3】单片机及应用系统设计原理与实践.刘海成北京航空航天大学出版社08、2009 【4】单片机高级教程.第1版.何立明.北京航空航天大学出版社,2001赵晓安. 【5】单片机基础.第1版.李广第.北京航空航天大学出版社,1999 【6】单片微型计算机原理接口与应用.第1版.徐惠民、安德宁.北京邮电大学出版社,1996 【7】.从Cygnal80C51F看8位单片机发展之路.单片机与嵌入式系统应用.何立民.2002年,第5期.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 监测 系统 设计 毕业论文
![提示](https://static.bdocx.com/images/bang_tan.gif)