版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGEI基于单片机的温度测量装置摘要随着时代的进步和发展,我们在科研领域中使用的很多仪器在逐步趋于数字化,智能化。我们知道传统的温度检测以热电偶和热电阻为温度敏感元件。然而热电偶和热电阻的成本低,但他们测出的一般都是电压,再转化成对应的温度,需要比较多的外部硬件支持,而且可靠性相对比较差,测温准确度低,检测系统也有一定的误差。所以我们的社会需要产生一种测温更准确,使用更便捷的温度计。本课题用一种基于单片机的数据采集系统方案,该方案根据热敏电阻随温度变化而变化的特性,采用串联分压电路。单片机采集热敏电阻的电压,通过A/D转换将模拟量电压信号转换成数字量电压信号,经过查表转换得到温度值,控制液晶屏实时显示温度值。本系统中所用到的器件是STC89C52单片机、NTC热敏电阻和LCD1602液晶显示屏。关键词:热敏电阻;温度测量;单片机
ABSTRACTWiththeprogressanddevelopmentofTheTimes,weusemanyoftheinstrumentsinthefieldofscientificresearchingraduallytendstodigital,intelligent.Weknowthatthetraditionaltemperaturedetectionwiththermocoupleandthermalresistanceastemperaturesensitivecomponents.However,thermocoupleandthermalresistanceoflowcost,buttheyaregenerallyvoltageismeasured,andthenconvertedtothecorrespondingtemperature,needmoreexternalhardwaresupport,andthereliabilityisrelativelypoor,temperaturemeasurementaccuracyislow,alsotohavecertainerrordetectionsystem.Sooursocietyneedstoproduceamoreaccuratetemperaturemeasurement,usingmoreconvenientthermometer.Thistopicinadataacquisitionsystemschemebasedonsinglechipmicrocomputer,theschemeaccordingtothecharacterofthethermalresistancechangesovertemperature,circuitusingseriespressure.Single-chipmicrocomputertocollectthermistorvoltagebyA/Dtransformationconvertsanalogvoltagesignalintodigitalvoltagesignal,throughthelook-uptabletransformationtemperature,temperaturecontrolLCDreal-timedisplay.DevicesusedinthissystemisSTC89C52singlechip,NTCthermistorandLCD1602LCDscreens.Keywords:thermalresistance;Temperaturemeasurement;Singlechipmicrocomputer
目录摘要 IABSTRACT II第一章绪论 11.1研究背景 11.2研究意义 2第二章热敏电阻的温度检测装置的系统论证 32.1温度传感器的选择 32.2调理模块 32.3温度核心模块 62.4显示模块 7第三章热敏电阻的温度检测装置硬件系统设计 83.1电路总框图设计 83.2电路总原理图 93.3系统各部分硬件电路 103.3.1显示电路 103.3.2DS18B20温度传感器与单片机的接口电路 103.3.3振荡电路 173.3.4复位电路 173.3.5报警电路 183.3.6电源电路 183.3.7工作原理 19第四章软件部分设计 204.1主程序流程图 204.2各子程序流程图 204.2.1初始化程序 204.2.2读取温度子程序 214.2.3写流程图 224.2.4读流程图 23第五章仿真调试 255.1Proteus软件介绍 255.2系统调试 255.3仿真结果 26第六章总结与展望 28参考文献 29致谢 31附件代码 32PAGE32第一章绪论1.1研究背景温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。在工业生产中和实验研究中,像电力、化工、石油、冶金、航空航天、粮食储存、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。在1593年由意大利科学家伽利略发明了世界上最早的温度计。第一只温度计的一根一端敞口的玻璃管,另一端带有核桃般大的玻璃泡。开始使用时先给玻璃泡加热,然后再把玻璃管插入水中。玻璃管中的水面就会随着温度的变化而上下移动,根据移动的多少就可以判定温度的变化或温度的高低。然而这种原始的温度计,非常容易受外界大气压强等环境因素,所以往往这样的温度计测量出来的数据跟实际数据的误差较大。所以荷兰人华伦海特在此基础上进行了改进,在1709年他利用酒精,又在1714年利用水银作为测量物质,制造了稍微精确的温度计。我们用℉代表华氏温度,把0℉定义为一定浓度的盐水凝固时的温度,把32℉定义为纯水凝固时的温度定,把标准大气压下水沸腾的温度定为212℉,这就是华氏温度计。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。然而这种传统的水银或酒精温度计来测量温度,不仅测量时间长、读数不准确、而且功能单一,已经不能满足人们在数字化时代的基本要求。而数字温度计是一种新型的温度计,它具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,是一种精度高、稳定性好、适用性极强的新型现场温度显示仪。数字温度计一般采用温度敏感元件也就是温度传感器,将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即A/D转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值。1.2研究意义温度测量涉及各行各业,而传统的温度测量仪器一般需人工手动测量,准确性不高,测量过程复杂而不简便,例如有水银温度计、酒精温度计、煤油温度计等。在很多棘手的,有毒的,或者一些无人区是无法正常通过手动完成温度的测量,所以传统温度测量仪器的劣势之处就轻而易举的显现出来了。随着单片机技术的不断发展,电子技术的日新月异,使温度计的自动化、数字化、便捷化就变得非常容易实现。如今单片机在日用电子产品中运用越来越广泛,而数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温准确、灵敏度高、抗干扰性强、性能稳定等优点,其输出温度采用数字显示,主要用于对测温准确度要求比较高的场所或科研实验室使用。现代信息技术的不断完善与改进,温度传感器的改进也与时俱进,总线更加标准化、可靠性和安全性让人民更加的放心,它的精度不断增高、功能不断增多,并且开发出了网络传感器和虚拟传感器,为研制更加高科技单片测温系统打下坚实的基础。所以研究基于单片机的数字温度计是非常的有意义。我们相信在不久的将来,会有越来越先进的数字温度计被生产制造出来。第二章热敏电阻的温度检测装置的系统论证2.1温度传感器的选择测量温度的关键是温度传感器,因此需要灵敏度高、测温范围宽、稳定性好,同时还要考虑成本和实际情况。方案一:DS18B20数字式温度传感器,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度,同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,但是这个温度传感器适用于精密温度测量系统中。方案二:热敏电阻的主要特点是:①灵敏度较高,其电阻温度系数要比金属大10~100倍以上,能检测出10-6℃的温度变化;②工作温度范围宽,常温器件适用于-55℃~315℃,高温器件适用温度高于315℃(目前最高可达到2000℃),低温器件适用于-273℃~55℃;③体积小,能够测量其他温度计无法测量的空隙、腔体及生物体内血管的温度;④使用方便,电阻值可在0.1~100kΩ间任意选择;⑤易加工成复杂的形状,可大批量生产;⑥稳定性好、过载能力强.方案三:热电偶传感器的灵敏度,线性和温度范围是和所用的金属有关。多年来,已经有几种热电偶成为标准,在美国,NIST公布了八种热电偶,让字母代码来识别的毫伏~温度表。其中五种J、K、T、G和N是由碱金属合金制成,有不同的温度范围和用途,灵敏度一般是每摄氏度几十毫伏,其中三种R、S和B是用的金属白金制成的,但是这种热电偶价格昂贵,最常用于高温工作,不适合常温的测量,而且灵敏度很低。对比之后,根据实际的应用需求,本设计采用方案二热敏电阻传感器。2.2调理模块方案一:如图3-1所示是由集成运算放大器和铂热电阻构成的自动温度补偿电路。该电路可分为阻抗变换和温度补偿两级,阻抗变换器A1是一个电压跟随器,它的作用是把来自传感器送来的与温度成比例变化的,温度补偿器A2是一个同相电压放大器,电路元件可根据同相电压放大器基本原则进行选取,这一级的作用是将阻抗变换级送来的电压信号进行放大,同时吸取来自铂热Rt送来的与温度成比例变化的电阻信号,这个电阻信号去改变放大器的灵敏度,使放大器的输入电压V0与温度无关。但是此电路比较复杂,元器件较多,可能导致精度不够。图3-1为自动温度补偿电路方案二:温度补偿还可以采用简单的查表法从电压值中查出相应的温度值。预先将一系列温度与电压对应值存贮到STC89C52微控制器程序存储器中的一个表内,当给定任意一个在测量范围中的电压值时,即可通过查表得出所对应的温度值。本设计所采用的NTC热敏电阻所对应温度补偿表如表3-1;如图3-2所示的是电阻温度曲线图,温度随阻值的增加而减小;无论什么补偿都有误差,电阻与温度的误差如表2.1所示。表2.1电阻与温度的误差表R25=10KΩ精度:±5%B25/50=3950K精度:±1%温度(℃)电阻(KΩ)温度(℃)电阻(KΩ)-3.0035.5838.4841.5121.0011.3211.9512.60-2.0033.8036.5239.3522.0010.8311.4312.03-1.0032.1234.6737.3223.0010.3610.9311.490.0030.5432.9235.4024.009.9210.4510.981.0029.0431.2733.5925.009.5010.0010.502.0027.6229.7231.8926.009.089.5710.063.0026.2828.2530.2827.008.699.169.644.0025.0226.8628.7628.008.318.779.235.0023.8225.5527.3329.007.958.408.856.0022.6924.3125.9830.007.618.058.497.0021.6123.1424.7031.007.297.718.148.0020.6022.0323.5032.006.987.397.819.0019.6420.9822.3633.006.697.097.4910.0018.7319.9921.2834.006.416.807.1911.0017.8619.0420.8635.006.146.526.9012.0017.0418.1519.2936.005.896.256.6313.0016.2717.3118.3837.005.646.006.3714.0015.5316.5117.5138.005.415.766.1215.0014.8315.7516.6939.005.195.535.8816.0014.1715.0315.9140.004.985.315.6517.0013.5414.3515.1841.004.785.105.4318.0012.9413.7114.4842.004.594.905.2219.0012.3713.0913.8243.004.414.715.0220.0011.8312.5113.1944.004.234.534.83所以本设计的温度补偿选用方案二,将再软件中体现。图2.1整体电路图2.3温度核心模块方案一:S08AW60拥有62KB片上在线可编程FLASH存储器和2KB片上RAM,具有模块保护与安全选项功能,支持2.7~5.5V电源。片内总线时钟最高可达20MHz,可选择宽范围的时钟频率。其内部集成了高性能模/数转换器(ADC)和串行通信模块,具有很宽的工作温度范围(-40℃~+125℃),可适应各类恶劣环境。该芯片还可以通过BDM在计算机与微控制器进行在线编程及后台调试,避免频繁的插拔单片机,编译软件调试功能强大。方案二:STC89C52是一种低功耗、高性能8位微控制器,具有8K系统可编程FLASH存储器和256字节ROM,可实现0Hz~33Hz的全静态操作,支持4.0V~5.5V电源。使用Atmel公司高密度非易失性存储器技术制造,与MCS-51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。其内部没有A/D转换模块,需要外部扩展模数转换芯片。对比之后,根据实际的应用需求,本设计选用方案二STC89C52,因为具有ISP功能,可直接通过串口下载用户程序,方便调试程序,内部8KB的FLASHE2PROM使用户编制的程序及需要显示的字母、数字、汉字和图形都可以存储在里面,免去了扩展外部存储器的麻烦,因此以STC89C52单片机为核心的控制系统电路更简单,十分适用于液晶显示,在智能仪器、仪表和低功耗电子产品中被广泛选用。2.4显示模块方案一:LED数码管显示器可分为两种显示方式:静态显示和动态显示。LED数码管静态显示,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块,所以排除此方案。方案二:LED数码管显示器动态显示方式下,将所有位的段选线并联在起,由位选线控制哪位接收字段码。采用动态扫描显示,也就是在显示过中,轮流向各位送出字形码和相应的字位选择,同一时刻只有一位显示,其他各位熄灭。但是此显示方案稳定性较差,并且还需要焊接外围电路,所以不采用此方案。方案三:LCD液晶显示,由单片机驱动.它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观,同时液晶显示器的编写程序简单,价格便宜,故采用此种方案。LCD类型繁多,价格不等。根据本设计需要显示的信息量小的特点,选用价格便宜的LCD1602液晶屏。其特点如下:液晶显示屏是以16列×2行=32个5×10或5×7点阵块组成的显示字符群,每个点阵为一个字符,字符间距和行距都为一个点的宽度;具有字符发生器ROM,可以显示192种字符;具有64字节的自定义字符RAM,可自定义8个5×7或4个5×10点阵字符;具有80字节的RAM;结构紧凑、轻巧、装配容易;单+5V电源供电,低功耗,长寿命,高可靠性。第三章热敏电阻的温度检测装置硬件系统设计3.1电路总框图设计用热敏电阻-半导体为传感器的温度计,需要用到A/D转换电路,而A/D转换电路工作速度较低,感温电路比较复杂。它可测量到小范围内的温度,变化率较大,固有电阻大,无需延长导线时的误差补偿,但是热敏电阻阻值的稳定性还不够理想(一般年变化量在0.1%左右),影响准确度的提高。另一个是温度与电阻值之间为非线性关系,变化率非线性,是不适合测量高温区的,而且制作仪器时需要进行线性化处理,工艺比较复杂。热电偶温度计可测量到小范围内的温度,热响应快,耐振动和耐冲击,可以测量高温区,测量精度高,因热电偶直接与被测对象接触,不受中间介质的影响,测量范围广,构造简单,使用方便。但是它变化率小,需修正冷接点温度。在单片机电路设计中,大多都是使用传感器,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。温度计电路设计总体设计方框图如图3.1所示,以单片机AT89S51为控制器,以DS18B20为温度传感器,使用4位LED数码管以串口传送数据的方式来实现测量温度的显示。而系统的整体硬件电路主要有LED显示电路,DB18B20温度传感器与单片机的接口电路,振荡电路,复位电路,电源电路,报警电路等电路组成。单片机单片机AT89S51测温接口电路复位电路振荡电路LED数字显示显示驱动按键报警电路图3.1温度计电路设计总体设计方框图3.2电路总原理图图3.2电路总原理图图3.2中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。图3.2中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。3.3系统各部分硬件电路3.3.1显示电路显示电路采用4位共阳LED数码管,利用动态扫描方式,从P0口输出段码,P2口的P2.1、P2.3、P2.5、P2.7输出位码。图3.3显示电路3.3.2DS18B20温度传感器与单片机的接口电路DS18B20温度传感器与单片机的接口电路可以说是本系统中最重要的电路。此温度传感器DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。图3.4DS18B20与单片机的接口电路DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如表3.1所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如表3.7所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。表3.1DS18B20字节定义由表3.1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。表3.2DS18B20温度转换时间高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表3.8是一部分温度值对应的二进制温度数据。表3.3一部分温度对应值表DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。分别说明如下:(1)初始化单总线的所有处理均从初始化开始。初始化过程是主机通过向作为从机的DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化后,才可进行读写操作。(2)ROM操作命令总线主机检测到DS18B20的存在便可以发出ROM操作命令之一。这些命令见表3.4:表3.4ROM操作命令(3)存储器操作命令如表3.5:表3.5存储器操作命令DSl8B20多路测量简介:初始化初始化跳过ROM变换温度等待1S初始化设置1820个数匹配ROM读存储器存放在缓冲区指针增1初始化b-1=0?否是图3.5DSl8B20原理框图每一片DSl8B20在其ROM中都存有其唯一的48位序列号,出厂前已写入片内ROM中,主机在进入操作程序前必须逐一接入DS18B20用读ROM(33H)命令将该DS18B20的序列号读出并登录。当主机需要对众多在线DS18B20的某一个进行操作时,首先要发出匹配ROM命令(55H),紧接着主机提供64位序列(包括该DS18B20的48位序列号)。之后的操作就是针对该DS18B20的。而所谓跳过ROM命令即:MOVA,#0CCH。图3.5中先有跳过ROM,即是启动所有DS18B20进行温度变换,之后通过匹配ROM再逐一地读回每个DS18B20的温度数据。在DS18B20组成的测温系统中,主机在发出跳过ROM命令之后,再发出统一的温度转换启动码44H,就可以实现所有DS18B20的统一转换,再经过1s后,就可以用很少的时间去逐一读取。这种方式使其T值往往小于传统方式。(由于采取公用的放大电路和A/D转换器只能逐一转换)。显然通道数越多,这种省时效应就越明显了。在DB18B20温度传感器与单片机的接口电路中另一个有重要作用的就是主控制器——单片机AT89C51。单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。如图3.6所示。图3.6单片机AT89C51(1)单片机AT89C51的主要特性:·与MCS-51兼容。·4K字节可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:10年。·全静态工作:0Hz-24Hz。·三级程序存储器锁定。·128*8位内部RAM。·32可编程I/O线。·两个16位定时器/计数器。·5个中断源。·可编程串行通道。·低功耗的闲置和掉电模式。·片内振荡器和时钟电路。(2)单片机AT89C51的管脚说明:VCC:供电电压。GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”3.3.3振荡电路AT89C51单片机内部的振荡电路是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。AT89C51的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。即利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的自激振荡器,如图3.7电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF左右。图3.7振荡电路3.3.4复位电路本设计中AT89C51是采用上电自动复位和按键复位两种方式。最简单的复位电路如图所示。上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R14选择10KΩ的电阻,电容器选择10μF。图3.8复位电路3.3.5报警电路报警是由单片机产生一定频率的脉冲,由P2.7引脚输出,P2.7外接一只PNP的三极管来驱动扬声器发出声音,以便操作员来维护,从而达到报警的目的。图3.9报警电路3.3.6电源电路主要提供整个数字温度计的电源电力,如图3.10电源电路图图3.10电源电路图3.3.7工作原理DS18B20工作时需要接收特定的指令来完成相应功能(指令,可以简单的理解为可以被识别并有相应意义的一系列高低电平信号),它的指令可分为ROM指令和RAM指令;DS18B20本身就是一种数字温度传感器,它会把温度转换成数字量以后存贮在自身内部,和单片机只需要连接一个I/0口,是一种单总线串行接口,然后通过单片机来根据传感器特性计算出温度,并且显示出来。第四章软件部分设计系统程序主要包括主程序、读取温度子程序、数据转换子程序、显示数据子程序等。4.1主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1所示。图4.1主程序流程图4.2各子程序流程图4.2.1初始化程序所有操作都必须由初始化脉冲开始,波形如图,单片机先输出一个480~960us低电平到DQ引脚,再将DQ引脚置高电平,过15~60us后检测DQ引脚状态,若为低电平则DS18B20工作正常,否则初始化失败,不能正常测量温度。如图4.2初始化程序:图4.2初始化程序4.2.2读取温度子程序读取温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。主要包括以下三个命令:(1)写暂存器命令【4EH】这个命令为由TH寄存器开始向DS18B20暂存器写入数据,4EH命令后的3字节数据将被保存到暂存器的地址2、3、4(TH、TL、CONFIG)三个字节。所有数据必须在复位脉冲前写完。即如果只想写一个字节的数据到地址2,可按如下流程:初始化;写0CCH,跳过ROM检测;写4EH;写1字节数据;复位,即向DQ输出480~960us低电平(2)读暂存命令【BEH】这个命令由字节0读取9个暂存器内容,如果不需要读取所有暂存内容,可随时输出复位脉冲终止读取过程(3)转换温度命令【44H】这个命令启动温度转换过程。转换温度时DS18B20保持空闲状态,此时如果单片机发出读命令,DS18B20将输出0直到转换完成,转换完成后将输出1。图4.3读取温度子程序4.2.3写流程图写时隙:写时隙由DQ引脚的下降沿引起。18B20有写1和写0两种写时隙。所有写时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。DS18B20在DQ下降沿后15μs~60μs间采样DQ引脚,若此时DQ为高电平,则写入一位1,若此时DQ为低电平,则写入一位0,如图4.4所示。所以,若想写入1,则单片机应先将DQ置低电平,15us后再将DQ置高电平,持续45μs;若要写入0,则将DQ置低电平,持续60μs。图4.4写流程图4.2.4读流程图读时隙:读时隙由DQ下降沿引起,持续至少1μs的低电平后释放总线(DQ置1)DS18B20的输出数据将在下降沿15μs后输出,此时单片机可读取1位数据。读时隙结束时要将DQ置1。所有读时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。图4.5读流程图第五章仿真调试5.1Proteus软件介绍Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。5.2系统调试仿真电路图如图5.1所示。图5.1仿真电路图双击单片机出现下图所示画面图5.2,在ProgramFile一栏中选取仿真项目的源程序代码,点击OK。图5.2加载源程序示意效果5.3仿真结果单击Play按钮,进入仿真状态,出现下图5.5所示第六章总结与展望时代的进步和快速发展,使我们在科研等领域中,对数据准确性的要求越来越高,而传统的温度计,和早期数字温度计,已经越来越不能满足人们对准确性,便捷性的需求。经过设计方案的论证、系统的硬件和软件的设计、系统的调试等。我查阅了大量的关于传感器DS18B20、单片机基础及其接口电路、以及控制方面的理论知识。通过本文分析表明:本设计是一个性价比比较好的数字温度计的设计。本设计能够很准确,快捷的测量温度,并且能在设定测量值的温度以外数值有一个蜂鸣器报警功能,很好的起到报警提醒的作用。这次设计基本完成了任务书的要求,实现了准确,方便,快速测量温度的功能。然而毕业设计的整个过程使我对自己也有了一个全新的认识,也看到了自己的不足之处。通过这次设计,不仅锻炼了自己发现问题,并且分析问题、处理问题的能力,还提高了自己的动手方面的能力。最重要的是这特殊的锻炼不仅丰富我们的人生经历,更是我们以后生活工作中的宝贵财富。在本次设计中我加深了课本上学到的知识,也学到了课本以外的知识。让我懂得了,不管做什么,都应该脚踏实地,勤勤恳恳,积极进取,乐观执着,敢于面对困难与挑战,一丝不苟,摆正态度,对待学习应保持严谨的,谦虚的态度,努力提升自己分析问题,解决问题的能力,为今后更好的学习添砖加瓦。跟随着信息技术发展的脚步,相信在不久的将来,我们还会有更加准确的测温控制器被人们研发并大量生产出来。参考文献[1]冯荣达,曹柏荣.基于热敏电阻的多点温度测量系统[J].微计算机信息,2008,11:110-111.[2]李波,陈光华,徐行,吴来杰,罗贤虎.基于热敏电阻的多通道高精度温度测量系统[J].仪表技术与传感器,2008,05:87-88+95.[3]刘岩俊.基于DSP的嵌入式温度测量系统设计与实现[J].国外电子测量技术,2014,01:78-81.[4]梅小雨,许昌,魏艳红.基于对数的NTC热敏电阻测温系统的设计[J].自动化与仪表,2011,05:54-57.[5]王彪.多路温度测量仪的设计与实现[J].电子测试,2011,06:90-93.[6]郭宝亿,谭宝成,张峰.基于ARM的热敏电阻测温模块设计[J].西安工业大学学报,2009,04:361-364.[7]万志龙.基于Labview的热敏电阻温度传感系统设计[J].井冈山学院学报,2009,02:28-29+78.[8]焦冰,叶松,陈振涛,王晓蕾,温雅婷.抛弃式海水温度测量系统的设计[J].海洋技术,2012,03:6-8+16.[9]赵军,谢作品,吴珂.NTC热敏电阻线性化新方法[J].电测与仪表,2006,01:12-14.[10]卢冬冬.数字式标准温湿度测量仪的设计[D].河北大学,2009.[11]彭岳仑.基于光纤光栅传感的分布式轴承温度测量技术研究[D].武汉理工大学,2012.[12]汤勇.基于VME总线的高精度温度测量方法的研究[D].华中科技大学,2005.[13]孟显.基于无线传输技术的温度测量仪器的设计与实现[D].华北电力大学,2015.[14]江莺,倪晓宇.基于HT48R54A单片机的太阳能热水器温度测量系统设计[J].现代电子技术,2013,12:143-144.[15]李寅虎.温度湿度压力测量仪[D].河北大学,2010.[16]刘建伟.基于LabVIEW的多功能温度测量虚拟仪器的研究[D].东北大学,2011.致谢大学生活即将进入尾声,我们的大学时代就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,我要把所学的知识应用到实际工作中去。本论文是在导师的谆谆教诲和指导下完成的,从选题、构思到定稿无不渗透着导师的心血和汗水;导师渊博的知识和严谨的学风使我受益终身,在此表示深深的敬意和感谢。这次写论文的经历也会使我终身受益,我感受到,做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程。没有认真学习和钻研,自己就不可能有研究的能力,就不可能有自己的研究,就不会有所收获和突破。希望这个经历,在今后的学习和生活中能够继续激励我前进。另外,还要特别感谢我的家人,他们时刻关心我,给我提供了学习的机会,时时刻刻为我鼓劲、为我加油,进而促使我不断成长和进步。同时,也要感谢寝室的室友以及所有关心我的朋友,感谢他们陪伴我走过了很多美好的时光,在我遇到困难时他们关心我、帮助我。在完成毕业论文的过程中,很多朋友都给了我无私的帮助和支持,在此表示由衷的谢意!最后,因本人水平有限,论文肯定还有不少不足之处,恳请各位老师批评指正,我希望可以有机会继续去完善,我将不断努力继续充实自己。附件代码#include<AT89X52.h>#defineuintunsignedint#defineucharunsignedchar //宏定义#defineSETP3_1 //定义调整键#defineDECP3_2 //定义减少键#defineADDP3_3 //定义增加键#defineBEEPP3_7 //定义蜂鸣器#defineALAMP1_0 //报警#defineDQP3_5 //定义DS18B20总线I/O bitshanshuo_st; //闪烁间隔标志bitbeep_st; //蜂鸣器间隔标志sbitDIAN=P0^5; //小数点ucharx=0; //计数器signedcharm; //温度值全局变量ucharn; //温度值全局变量ucharset_st=0; //状态标志signedcharshangxian=38; //上限报警温度,默认值为38signedcharxiaxian=5; //下限报警温度,默认值为5//ucharcodeLEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};ucharcodeLEDData[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0xCF,0xDA,0x9B,0xDC,0x9B,0x8B};//============================================================================================//====================================DS18B20=================================================//============================================================================================/*****延时子程序*****/voidDelay_DS18B20(intnum){while(num--);}/*****初始化DS18B20*****/voidInit_DS18B20(void){unsignedcharx=0;DQ=1;//DQ复位Delay_DS18B20(8);//稍做延时DQ=0;//单片机将DQ拉低Delay_DS18B20(80);//精确延时,大于480usDQ=1;//拉高总线Delay_DS18B20(14);x=DQ;//稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay_DS18B20(20);}/*****读一个字节*****/unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//给脉冲信号dat>>=1;DQ=1;//给脉冲信号if(DQ)dat|=0x80;Delay_DS18B20(4);}return(dat);}/*****写一个字节*****/voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;Delay_DS18B20(5);DQ=1;dat>>=1;}}/*****读取温度*****/unsignedintReadTemperature(void){unsignedchara=0;unsignedcharb=0;unsignedintt=0;floattt=0;Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器a=ReadOneChar();//读低8位b=ReadOneChar();//读高8位t=b;t<<=8;t=t|a;tt=t*0.0625;t=tt*10+0.5;//放大10倍输出并四舍五入return(t);}//=====================================================================================//=====================================================================================//=====================================================================================/*****延时子程序*****/voidDelay(uintnum){while(--num);}/*****初始化定时器0*****/voidInitTimer(void){TMOD=0x1;TH0=0x3c;TL0=0xb0;//50ms(晶振12M)}/*****读取温度*****/voidcheck_wendu(void){uinta,b,c;c=ReadTemperature()-5; //获取温度值并减去DS18B20的温漂误差a=c/100; //计算得到十位数字b=c/10-a*10; //计算得到个位数字m=c/10; //计算得到整数位n=c-a*100-b*10; //计算得到小数位if(m<0){m=0;n=0;} //设置温度显示上限if(m>99){m=99;n=9;} //设置温度显示上限}/*****显示开机初始化等待画面*****/voidDisp_init(void){P0=0x80;//显示P2=0x7F;Delay(200);P2=0xBF;Delay(200);P2=0xDF;Delay(200);P2=0xEF;Delay(200);P2=0xFF;//关闭显示}/*****显示温度子程序*****/voidDisp_Temperature(void)//显示温度{P0=0x98;//显示CP2=0x7F;Delay(400);P0=LEDData[n];
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 32566.1-2026不锈钢焊接气瓶第1部分:试验压力小于或等于6 MPa的气瓶
- 2026年山东省日照市高职单招综合素质考试题库有答案详细解析
- 2026年酒泉职业技术学院单招职业适应性测试题库带答案详细解析
- 2026年仪征市事业单位公开招聘工作人员74人笔试参考题库及答案解析
- 2026太平洋财产保险阿坝支公司招聘1人笔试备考题库及答案解析
- 2026年安徽省芜湖市高职单招综合素质考试题库有答案详细解析
- 2026西安联邦口腔医院招聘(67人)笔试模拟试题及答案解析
- 2026江苏师范大学招聘专职辅导员22人笔试备考试题及答案解析
- 2026浙江杭州市文三教育集团诚聘小学音乐教师1人(非事业)笔试备考试题及答案解析
- 2026湖南岳阳市岳阳楼区四海揽才教师人才校园招聘20人笔试参考题库及答案解析
- 江苏省宿迁市沭阳县2024-2025学年高一下学期期中英语试题(原卷版+解析版)
- 废旧空桶处置合同协议
- 2025义务教育道德与法治(2022版)课程标准考试测试卷及答案
- 机加工车间管理制度
- 2025年安徽职业技术学院单招职业适应性考试题库含答案
- DBJT45-032-2016 CPS防水密封膏施工技术规程
- 苏州小升初择校英语试卷单选题100道及答案
- 《脑出血》课件完整版
- 主题13人类面临的主要环境问题课件中华地图版高中地理必修二
- 心电监护仪的使用课件
- 项目工程投标书模板
评论
0/150
提交评论