资源描述:
《课程设计报告- 单片机通过热敏电阻测温》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机通过热敏电阻测温一、前言近年来,随着科学技术和生产的不断发展,越来越多的参数需要通过温度测量来获得。因此,温度一词在生产生活中出现的频率日益增加。与之相对应的,温度测量也成为了生产生活中频繁使用的词语,同时它在各行各业中也发挥着重要的作用。温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要而普遍的参数。温度的测量对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是不断增加丰富来满足生产生活中的需要
2、。而作为一种具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点的器件,单片机成为温度测量系统的首选部件。近年年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,越来越广泛地应用各个领域。单片机温度测量师对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。在日常生活中,也可以广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。三、硬件设计如图所示,本设计包括最小系统、测温电路、数码管显示、下载口、蜂鸣器、键盘等部分
3、。本设计采用按键设置温度报警点通过测温电路采集温度信息,经过STC12C5410AD进行模数转换、处理并将实际温度值和设定温度值分别显示在共阴极数码显示管LED上。3.1温度采样部分如图3.1所示,测温电路利用热敏电阻将温度转化为电量,并将电压值输入STC12C5410AD进行模数转换。STC12C5410AD将转换所得的数值输入数码管显示出来。图3.1温度采样电路3.2温度显示部分LED数码管将STC12C5410AD处理的温度信息显示出来。图3.2为测温系统的显示部分。数码管的8个管脚由STC12C5410AD的P2口控制。4个三极管用来控制数码管显示。其基极分别与
4、P3.2~P3.5口相接。若P3.2输出高电平,则Q1导通,STC12C5410AD的P2口控制第一个数码管的8个管脚。P2口输出高电平,对应的管脚发光;反之,管脚不发光。如此将数值显示出来。4个数码管都显示出数值后,即得到温度值。图3.2温度显示部分3.3温度报警部分温度报警部分包括报警点设置和蜂鸣器。本设计通过键盘进行温度报警点设置。5个按键分别接至P1.6~P1.2口。其中,conf键控制数码管。当该键按下时,数码管显示全部为0,即将数码管切换至温度报警点设置界面。Bai、shi、ge、dian键分别控制百位、十位、个位和小数点后一位。该4键每按一下,数值增1。当
5、数值为9后,再按一下则归0。蜂鸣器一管脚接至P3.7口。若所测温度超限时,则报警。3.3程序下载部分下载口的作用是将编写的程序烧入单片机内。四、软件设计4.1热敏电阻曲线拟合y=-30:5:110;x0=[909.42876.84838.24647.6742.91688.04630.31570.9512453.56...398.73347.87301.65260.28223.81191.89169.24140.17119.73...102.3187.8674.9764.355.2247.6541.18];x=0.005.*x0;cftool(x,y)得结果:Linear
6、modelPoly3:f(x)=p1*x^3+p2*x^2+p3*x+p4Coefficients(with95%confidencebounds):p1=-2.537(-3.205,-1.869)p2=22.01(16.95,27.08)p3=-77.14(-87.64,-66.64)p4=117.9(112.8,123)Goodnessoffit:SSE:357.4R-square:0.993AdjustedR-square:0.9921RMSE:3.781可得温度与电压值间的关系:T=-2.537U^3+22.01U^2-77.14U+117.94.2编程#inc
7、lude#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlongsbitbeep=P3^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-fulongalarmT;voiddelay(uchara)//延时ams{ucharj;while(a--!=0){for(j=