版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的数字温度传感器设计摘要社会的日新月异,科技的飞速发展,保温箱的运用是及其广泛的,例如:生活,医疗,运输等等,本文是研究保温箱控制器设计,核心器件是单片机,通过单片机来控制各种功能,这里主要分为:PT100测温模块、H桥驱动加热制冷模块、LCD1602显示模块、单片机最小系统;这里使用的PT100测温模块的误差小、精度高,对所测得温度数据比较稳定;H桥驱动加热和制冷模块会比使用继电器更加的安全,便捷;软件部分的设计是根据各个模块相应的功能进行编写,调试是使用proteus进行操作,最终达到本次设计的要求,完善了保温箱的功能。关键字:PT100测温、H桥驱动制冷加热、单片机第一章引言1.1选题的背景和意义从古至今,温度一直都是生命和生产密不可分的,它仅由个体物体的性质来表示。地球上的环境和温度紧密相连,在许多生产过程中,温度的测量和控制与产品安全、提高生产效率、确保产品质量、节能等关键技术经济指标直接相关。现如今温度控制广泛应用于社会生活的各个领域,温度的多领域的运用已经不再限制与工业,更多的是贴近我们的日常生活,例如保温箱,空调,微波炉等一系列的生活电器。1.2保温箱控制器的设计研究现状和发展有关保温箱的应用:医院中应用保温箱保证药物处于恒温状态,以保持药物的活性,从而达到药物治疗的目标;在家庭中,为使得婴儿奶粉的营养成分不被破坏,使用保温箱保持冲奶粉所用的水在规定的温度范围之内;养鸡场中应用恒温箱保持鸡蛋孵化环境的恒温;更为常见的是平时外卖的保温措施,为使得食物的口感而保持温度等等。保温箱冷藏的应用:海鲜的冷藏,蔬菜水果的保鲜,以及特殊药物的远距离运输等等。因此由于各式各样的需求导致了保温箱控制系统愈发的完善以及精度的要求更加的严格,这样能更好的研究保温箱内的温度控制系统,对于提升控温效率、提高温控精度,都有着非常重要的意义,所以研究保温箱不仅仅能对我们的生活有了很大的便利而且还能提高生活水平。在往后的日子当中我们还可以对保温箱提出更高的要求,例如:在保证食物温度的同时,保证食物当中的水分不流失甚至可以通过某些手段将食物当中的营养物质更好的被人类所吸收。1.3本文主要研究内容整个控制设计的核心是STC89C52,它使用PT100数字温度传感器实时捕获温度。同时,LCD1602数码管显示器用于本次设计来实时显示功能,并且还具有用于设置温度设置。设计蜂鸣器,温度和时间可以提供声音警报。该系统还具有用于温度控制的温度加热电路。如果测得的温度低于设定温度,则控制器驱动加热电路。如果检测到的温度高于设置的温度,则自动换成制冷功能。第二章硬件电路的设计对于硬件电路的内容上,核心器件最小单片机系统,采用了H桥电路作为制冷和加热电路,使用PT100温度采集电路,按键模块,以及LCD显示模块来共同组成保温箱的控制设计电路,这章将介绍各个模块之间的联系以及运用。本次设计要求是:(1)温度的设定范围:0-60摄氏度;(2)温度允许误差:0.5度;(3)设定方式:按键或遥控;(4)实时温度显示;(5)可设定温度;(6)必要的加热驱动及保护电路;2.1关于STC89C52的简介从各个角度来说STC89C52的运用是很广泛的,适用绝大部分的电子器件,标准功能是:8k字节Flash,512字节RAM,32位I/O接口,内置4KBEEPROM,MAX810复位电路,3个16为定时器/计数器,4个外部中断,1个7向量4级中断结构(兼容传统51单片机的5向量2级中断结构),全双工串行口。空闲模式下,CPU停止工作,允许RAM,定时器/计数器,串口,中断继续工作。在掉电保护方式下,RAM内容将会被保存,振荡器被冻结,单片机所有的工作将会停止直到下一个中断或者是硬件复位为止。在我们的让日常生活当中的家用电器以及诸多便携式的小型电器上用的较多的是STC89C51或者是STC89C52这两种单片机,因为单片机高度集成,体积小,控制能力强,低电压,低功耗,这是他们共同的特点,而在这我选用的STC89C52在某些方面更优于STC89C51,STC89C52单片机优于STC89C51单片机的地方:(1)52单片机较51单片机多一个定时器,RAM51单片机是128位,52单片机是256位;(2)最后一个数字表示E2prom的大小,E2prom=最后一个数字*4K,51单片机就是4K,52单片机就是8k。(3)52单片机是51单片机的增强型,52单片机比51单片机,定时器多一个T2,RAM多128B,ROM多4K,中断多2个,多一个看门狗,在掉电、数据指针等方面还有一些改进。(4)52单片机的最高外接晶振电路可以达到33MHz,51单片机大概只有24MHz。单片机是该项目的核心,可以在整个系统的总体设计中发挥作用,并管理电路需要管理的所有内容。单片机价格便宜,许多初学者缺乏电路知识。因此,只要您购买开发板和一些简单的设备,此时的启动容量就很小。对于大多数初学者来说,52基本设计微处理器能够满足设计要求,因此这种类型的芯片迅速成为市场上的主流芯片,并且得到了特别广泛的使用。其引脚图如下:图2.1STC89C52引脚图下列将主要介绍一下各个引脚的工作情况:P1.0~P1.7:8位准双向I/O接口,负载能力为三个LSTTL门;RST:复位端,低电平无效高电平有效,宽度在24个时钟周期宽度以上,就能够是单片机复位;INT0:外部中断0输入端;INT1:外部中断1输入端;XTAL2:接外部晶体震荡器的一端,片内是一个振荡电路的反相放大器的输出端;XTAL1:接外部晶体震荡器的另一端,片内是一个振荡电路的反相放大器的输入端;VSS:接地端口;VCC:接电源电压;ALE/PROG:地址锁存信号端。访问片外存储器时,ALE做低8位地址锁存控制信号,再不访问片外存储器时,该端以六分之一的时钟振荡频率固定输出脉冲。P3.0~P3.7:8位准双向I/O接口。负载能力为三个LSTTL门。为了实现单片机的正常使用,用简单而基本的结构框图来呈现单片机最小系统:图2.2单片机结构框图(1)电源电路设计本次设计选用电源电路使用了LM7812的芯片,该芯片时常见的三端稳集成电路,集成芯片有三个端口分别时:输入端,输出端,接地端。电源模块接的是220V转24V的直流电压,该电源电路的工作原理为:在+24V电压经过7812转换成+12V。该电源电路为H桥电路的制冷电路提供3A电流驱动。为了本次设计所需要的直流电能够成功的驱动H桥电路,是由于脉动的直流需要经过滤波才能更好的输出,所以本次电源电路采用了C6电容器来进行滤波处理,下面是电源电路的设计图:图2.3电源电路图电源电路中使用的是LM7812顾名思义输出的电压是12V,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。LM7812的详细参数如下图所示:表1LM7812参数表(2)晶振电路晶振电路的核心就是让振荡器产生正弦波,电路在工作时产生的时钟频率和频率可能时不相同的,所以要把这正弦波进行分频,处理,形成时钟脉冲,然后分配到需要的地方。接法如下所示:图2.4晶振电路图(3)复位电路复位电路的核心就是把电路恢复到起始状态,复位电路的启动方式有很多,第一个是再给电路通电时马上进行复位操作;第二个复位的手段是通过手动操作的方式;第三个要根据程序或者电路运行的需要自动进行。复位电路上有按键和电容,之所以使用电容,是因为RST引脚一直为高电平就复位,在电容未充电时就相当于短路,当电容饱和就相当于开路。该电路是与RST引脚相接,其接口如图所示:图2.5复位电路图(4)ADC0832的介绍在本次设计当中选用ADC0832对模数转换电路进行构建,它是一种8位A/D转换芯片,最高可达256级分辨率,可以有效地降低芯片数据误差,稳定性能力强。独立的使能输入方式,使挂载多器件和控制处理变得更为便捷。ADC0832单通道模拟信号输入状态下的电压范围需控制在0~5V之间,当其工作在8位分辨率的状态下,输出模拟信号精度可达19.53mV。该设计中ADC0832芯片与单片机STC89C52存在4条数据线相连,分别是CLK和CS、D1和D0。CLK端接在P1.1上,时AD芯片提供了时钟输入;D1和D0同时接在P1.2上,选择数据信号从D1端输入,数据再从D0端口进行输出;CS接在P1.0上,但在实际通信时D1端与DO端未同时有效,并且双向连接到单片机,所以在设计电路时可将D1和DO接在一个单片机管脚上进行使用。传感器模拟电压输出到CH0端,模数转换电路图为:图2.6ADC0832引脚图下表是使用ADC0832各个引脚的作用:表2ADC0832引脚功能表引脚功能介绍CS片选使能,低电平芯片使能CHO模拟输入通道0,或作为IN+/-使用GND芯片参考0电位(接地)D1数据信号输入,选择通道控制DO数据信号输出,转换数据输出VCC电源输入及参考电压输入(复用)CLK芯片时钟输入2.2按键控制电路本次设计我选用的是独立按键,每一个按键都有着各自的作用,一共三个按键,分别是“功能按键”,“按键+”,“按键-”;“功能按键”的作用是:定时和设置温度;“按键+”的作用是:设定温度的增加;“按键-”的作用是:设定温度的减小;他们分别接在单片机上的不同接口上,分别是:P2.4,P2.5,P2.6。总的来说按键控制更加容易使用和操作,按键的导通与否直接是该电路的通断,所以没有其他复杂的操作。本次的设计更加贴近生活,即使是对于老人来说也不会出现操作失误。其电路原理图如下所示:图2.7按键控制电路图2.3数码管显示屏1602的介绍本次设计必然要使用一些较为单一的界面,将测量到的数值反馈出来,这就要用到显示屏来直观的展现本次设计的可行性,这里选用1602液晶显示屏是十分适宜的,在我们的日常中显示屏的价格一直都不低,对于高价格的显示屏我们并不需要他的辨识度和是色彩的分辨率,而LCD1602数码管显示屏能清晰的将数值显示出来,在价格方面也能够接受,所以为降低显示模块的成本,提高电子设计的性价比,选用LCD1602显示屏来显示字符和数字更加方便,控制也更加简单。其原理图如下所示:图2.8LCD1602显示电路图LCD1602共有16个引脚,本次设计使用了其12个引脚,下面将介绍一下各个引脚对本次设计的作用:其中D0-D7引脚与单片机的P0.0-P0.7相接作为数据传输;后面1234个接口分别是4个LED数码管显示分别连接这P2.0-P2.3。表3LCD1602指令表上表是1602数码管的显示模块中控制器的11条指令;依据收到“0”和“1”的信号,将执行不同的指令可对照上图查看各个引脚的输出的结果。2.4报警电路的介绍本次设计的报警电路中采用的是一个PNP三极管,一个蜂鸣器,以及限制电流的电阻一个;蜂鸣器装在三极管的集电极上。如果三极管的基极电压较低,则三极管就导通,并且可以使得蜂鸣器导通以使用警报功能。相反,如若条件相反或者条件不足则不发生报警。下面是报警电路图:图2.9报警电路图2.5加热和制冷电路的设计在本次的设计当中,将常规的加热电路和制冷电路都使用H桥电路来代替,实现在一个电路中完成加热和制冷的功能,相较于以往的加热制冷电路(一般是使用继电器并且是将加热和制冷电路分开成两个互不影响的电路),使用H桥电路对半导体制冷片进行控制,以达到对保温箱保持自己设定的温度,使用H桥电路会比使用继电器更加的安全,便捷;在相对于传统继电器进行控制的加热制冷电路降低了噪音以及电子器件使用寿命的问题,能更加广泛的运用于医疗,生活等不同领域当中以达到更为精细的水平。本次设计采用直流的半导体制冷片作为核心加热制冷元件。半导体制冷片是利用物理现象中的帕尔贴效应,由于部分电子空穴在运动中直接传递能量来实现的。在两种不同半导体材料串联成的电偶当中通过直流电流时,在电偶的两端即可分别吸收热量和放出热量,所以将半导体制冷片的一面贴合在要加热或制冷的液体一侧,通过控制半导体制冷片的电压方向就可以达到加热或制冷的目的。半导体制冷技术的优点是结构简单,体积小无制冷工质,无振动,噪声小,寿命长,维修方便;启动快,控制灵活H桥驱动电路常用于直流电机的方向控制,本此电路设计将H桥驱动电路引入对半导体制冷片进行控制,当控制信号P3.2为高电平,P3,3为低电平时,左侧臂两个三极管Q3和Q6导通,由于上、下两个三极管将电压信号给到加热制冷半导体片,所以任何时刻只能有1个导通,而此时上面的P管,即Q6导通;而另外一臂上,两个三极管Q5和Q4都没有导通,此时下面的N沟道Q8导通,于是在半导体制冷片两端形成12V电压差,制冷片开始加热(或制冷)同理,当P3.2为低电平,P3.3为高电平时,此时半导体制冷片电压翻转,原来加热(或制冷)的一面开始制冷(或加热)。原理和上述一样,电压信号由右上侧,经过Q4和Q5到达半导体片,下图为H桥驱动电路的图:图2.10H桥加热制冷电路图2.6温度测量电路设计本次设计的温度测量模块是在各式各样的温度采集模块中选用了PT100温度传感器,PT100温度传感器的测量范围是-50℃~200℃,随着温度的升高,电阻的阻值变小,所以是负的温度系数的热敏电阻。此外,它的线性度非常优越,温度的每一次变化会使得电阻的阻值变化幅度较小,几乎可以认为是升高幅度基本相同,由此可以极大程度上的简化程序。下图时PT100测温电路:图2.11PT100测温电路图为保证保温箱控制器的稳定性和可靠性,一般PT100温度传感器检测系统包括信号的采集和信号的处理两个部分。为了提高PT100温度传感器的精度,对Pt100温度采集系统信号调理电路及A/D转换电路进行了高精度设计,这是因为当电流经过PT100传感器时会产生一定的热能,导致其测温出现误差,一般恒流源电流应小于mA级,所以本次设计采用PT100电压信号采集系统的放大电路以及A/D转换电路等进行总体设计。在PT100电压采集放大电路中前半部分是4.096V恒压电源,然后是一个桥式电压采样电路,后面是一个电压放大电路。对于4.096V的恒源电路,因为Verf=2.5V所以4.096=(1+R10/RV1)*2.5,得出R10/RV1=1.6384,可以通过改变滑动变压器的阻值来实现。在桥式采样电路中这是一个桥式电压采样电路,其原理是检测RT1和R6二者的电压,这样就能得到PT100的电阻数值,从而得到当前温度数值。其中相对数值是通过R6去调节,可以是任意,其R7的主要作用还是在校准温度使用。现在使用的R6的阻值是138.5002Ω,也就是PT100在100摄氏度是的温度数值,但是当温度超过100℃时,会直接输出777。在电压放大电路中,根据“虚断”的原则,流过R7和R9的电流相同(V2-V3)/R7=V3/R9;根据“虚断”原则,流过R8和R10电流相等(V1-Vout)/(R8+R10)=(V1-V4)/R8;根据"虚短"原则,V2=V3;根据这3个公式得出:11V2-10V1=Vout理想要的数值是10倍的放大倍数,但是现在在输出端多了减了V2,根据模拟的数值可知,V2的取值范围是0.215-0.36835241646对应温度范围是44.032-75.43所以对得到的电压数值要电压补偿,其补偿后的PT100输出与其近似直线。图2.12PT100模拟补偿图总结:关于此次的保温箱控制器的硬件部分,最先想到的是器件的选取,而在选则器件的过程当中就要考虑本次设计的要求,根据特定的要求选择性价比最优的器件来完成本次的设计,为了比较不同类型的单片机、A\D转换芯片、传感器,在查阅诸多资料后,最终将所有需要的器件整理。然后,为实现保温箱的功能设计相应的电路模块,并且按照一定的逻辑关系,将不同模块连接构成基本的电路图。硬件电路的设计过程不是像想象中那样的轻松,中间也遇到了各种各样的棘手的问题,比如说:温度传感器的选择、电源电路的设计、按键功能的设置、引脚的功能以及相互模块之间的连接。第三章软件程序的总体设计3.1软件的总体设计本次软件部分的总体设计是对程序的编写以满足对保温箱的控制器的要求,所编写的程序主要分为六个部分:median、account_res、temperature、adj_t、timer0_int、Get_AD_Result;median是中值滤波函数,采用的是冒泡函数对温度进行采集;account_res是电阻值计算函数,由于电阻是实际测量的电阻,并且使用可调电阻来调节,为保证误差最小,利用中值法取中间值;temperature是计算温度的函数,主要计算PT100的温度;Hm是调整显示数据的函数,在不超过测量范围内输出,超过范围只输出7770;timer0_int是四个数码管显示的程序;HAVEResult是A/D通过指定的通道转换的结果,每个函数所编写出来的程序都是为保温箱功能的实现。对于本次设计的总图流程图来说,最开始就是对保温箱温度的设定以及保温时间的设定,在设定完成之后,测温电路开始工作,先是选择通道将读取A/D数据,在计算电阻阻值,进行温度计算,然后就是判断是否到达保温时间,如果保温时间到则结束;如果保温时间没有到,则开始判断实际温度和设定温度的大小,若实际温度大于设定温度的上限,则进行制冷;若实际温度小于设定温度的下限,则开始加热;然后重新判断是否到大保温箱设定时间,若到达,便结束进程,保温箱开始发出信号;若没有到达,则回到选择通道的环节,重新读取数据,再依次重复上述操作,这样一个完整的保温设计流程就呈现出来了。下图是总体设计流程图:总体流程图图3.13.2A/D转换结果的软件部分介绍第一个模块就是介绍ADC0832在软件部分的工作,该图是ADC0832串行A-D转换工作时序,在图中可以看出来,它的工作时序是拆分成两个阶段:首个阶段是起始和通道相互配置,从CPU处发送出去,然后在ADC0832芯片的DI端进行输入;接下来的阶段为A-D转换数据输出,在ADC0832芯片的DO端口出输出,再由CPU来接收处理;A/D转换工作时序图图3.2下列表格是ADC0832的通道选择:表4ADC0832通道选择表编码通道选择CH0CH100+-01-+10+11+这里是结合两个图来介绍一下ADC0832读写时序,首先所表示的是启始信号,必须是在第一个时钟脉冲下沉之前DI端是高电平;在图中可以知道,第二个脉冲和第三个脉冲在下沉之前DI端应该输入2位数据来用于实现选择通道的功能;接着在第三个脉冲的下沉之后DI端的输入电平就失去输入作用;在这之后DO/DI端使用数据输出DO端进行转换数据的读取,并且在第四个脉冲下沉开始之后数据的最高位DATA7被D0端口转换,接下来的每一个脉冲下沉DO端输出下一位数据,直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。并且从这个位开始输出相反字节的数据,即输出DATD0。随后输出8位数据,看见第19个脉冲数据输出完成之后,预示着这一次A/D转换的结束。图3.3A/D转换读时序图本次设计的A/D转换是由测温电路PT100中根据电阻的阻值大小所对应的温度信号再传到ADC0832当中,信号通过选择的通道控制字符,并且读取8位数据再进行信号的转换,然后将转换好的信号经过校验,再将该信号转换传到最小单片机系统当中去,并且与设定的温度进行比较,之后控制加热制冷电路运行。下图是ADC0832的程序流程图,简要的描述了数据转换的过程:图3.4A/D转换流程图3.3中值滤波函数的介绍该程序的主要目的是为了温度测量所准备的,中值滤波对所测量的诸多温度数据有良好的滤除作用,尤其是出现极端数据的时候,能够保护信号的边缘,使之不被模糊。这些独特的功能是线性滤波方法所不具备的。滤波函数采用的是冒泡排序的方法,使用冒泡法对所采集的温度数据进行排列,对所采集的有效数据是从大到小排序的,下图是中值滤波函数的程序流程图:图3.5中值滤波流程图3.4LCD1602显示函数的介绍在生活当中LCD1602液晶显示经常是作为单片机的大多数选择,LCD1602可以用于显示字母、数字、符号等,其中1602是指LCD显示的内容为16X2,LCD1602液晶显示的控制程序也相对简单,主要是初始化,写数据,写指令三个控制函数就可以对该模块进行控制,为了实现写数据和写指令的函数,可以用写操作时序来编程去实现保温箱要求的有效控制;在这里,通过直接定义RS引脚和写时序,为了更好的区别写指令和写数据,这里引入了对RS引脚高低电平的定义;RS为高电平时,写数据;RS为低电平时,写指令;图3.6LCD1602写操作时序图地址是00H,再加上DB7的1,即80H(0010000000),第二行第一位是40H,再加上DB7的在指定的位置中写内容时,首先要先指定地址,如在第一行第一位写入,1,即C0H(0011000000),依次类推,写指令格式,由于地址为7位,在写入地址是,第8位恒为1,下表可知:表5命令编码表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定DDRAM地址011CGRAM的地址(7位)40本次设计选择的显示方式是中断显示函数,在程序当中,用到的是定时器T0溢出中断,在定时器初始化时,将0x01赋值给TMOD寄存器。在中断函数中,并且将定时器的初值进行声明,本系统中晶体振荡器的频率为12MHz,此时为16位定时器,由此可以计算出周期为1ms,所以是每1ms中断一次,并且经过运放电路每10ms做一次A/D转换,并取一个数值放在缓冲区当中;同时当计数到达11时,计数器将会清0,在取值的时候会调用Hm函数,此时将会计算出电阻的值将与温度相对应;在计算阻值的同时,会使用到中值滤波函数将对10个数据进行取中值,这是为了能得到更加平稳的数据,因为所得到的是数字量,所以根据中间值可以计算出电压,从而经过计算算出阻值;这样就完成了显示温度的功能,下面展示的中断显示程序的流程图:图3.7中断显示流程图3.4按键函数的设计本次设计共有三个按键分别来控制保温箱系统,按键设计说的通俗一点就是:内部存在两个引脚,在按键按下时,两端接通,松开状态两端就是断开的,由此来控制电路通断。第一个按键是控制开关的按键,开关按键分为两种状态,一种是控制设置状态,另一种是控制系统关闭。本次设计当中使用flag来记录到底处于哪一种状态,flag是指在按键的次数,在flag为1的时候,表示设置按键按下,此时是在设置状态的,在flag为2的时候也就是再次按下时,程序的flag为3,直接输出为0,就结束运行了。第二个按键是对温度进行增加设定的按键,第三个按键是对温度进行减小设定的按键,两个按键都可以控制温度的上限和下限,当所测量得到的温度高于温度的上限时,H桥电路进行制冷功能;当所测的温度低于设定的温度下限时则开始加热功能,在本次设计当中温度上下限的范围是:所设定温度加减1℃。只有在进入设置状态的时候第二个按键和第三个按键才能工作,在温度增加设定键按下的时候,所设定的温度随这按下的次数逐渐增加,但是并不能无限的增加,这里的温度上限是60℃,因为本次设计所要求保温箱控制器的温度是0-60℃,所以这里的最大设定值不能超过60℃;相反若是对第三个按键也就是温度减小设定按键进行操作,就是随着按键次数的增加设定的温度逐渐减小,但却不能减小到0℃以下,在保温箱中确定设定温度之后,按键函数就直接退出程序,下面是按键函数设计的流程图:图3.8按键函数流程图软件部分总结:软件设计是本次设计的核心内容,软件设计的正确与否直接关系到系统能否正常运行并满足设计要求,实现相应的功能。本次软件设计将整个系统分成各个板块,分别进行介绍。本次在‘keil4’软件上实现了软件程序的编写,提供本次软件程序代码运行所要用到的编译环境。软件程序编写完后可以生成仿真中插入元件中的hex.文件,便于在proteus上实现电路图的仿真。
本次在‘Visio’软件上实现了程序流程图的绘制,这个应用软件对于不同的画图模块都有不同的绘制模板。第四章系统调试4.1关于PT100各个温度阶段与电阻的对应关系本次保温箱设计所采用的测温系统中的PT100,PT100所能测量的温度范围是-200℃~800℃,而在此次设计当中它的测温范围是-20℃~120℃。实际上的工作原理是其阻值会随着温度上升而成匀速增长,可是影响热电阻的因素有很多,比如说:有原件上的误差、信号传输的时候可能出现信号损坏的情况,甚至是在设计电路时存在误差,焊接方式,封装工艺、外壳尺寸、填充材料引线的长度,在现场试验时是否存在干扰因素?还有二次仪表的精度等等这些都是影响的因素。下列四段电阻与温度的对应关系图,温度分别是:0℃~30℃、30℃~60℃、60℃~90℃、90℃~120℃;从图中可以看出电阻值和温度几乎是成正比的关系。温度在0℃~20℃时与阻值拟合处理的线性关系,它的相应公式为:温度=2.5703*阻值-257.0501图4.1(0℃~30℃)PT100温度阻值对应坐标图图4.2(30℃~60℃)PT100温度阻值对应坐标图图4.2是温度30℃~60℃时与阻值拟合处理的线性关系,它的相应公式为:温度=2.5935*阻值-259.6416图4.3(60℃~90℃)PT100温度阻值对应坐标图图4.3是温度60℃~90℃时与阻值拟合处理的线性关系,它的相应公式为:温度=2.6171*阻值-262.5538图4.4(90℃~120℃)PT100温度阻值对应坐标图图4.4是温度90℃~120℃时与阻值拟合处理的线性关系,它的相应公式为:温度=2.6412*阻值-265.7953根据上述4个图形可知PT100阻值与温度的关系,本次设计选择温度范围在0℃~120℃,R0=100Ω为0℃时的阻值,不同的阻值对应着不同的温度。温度与阻值的关系不是绝对的线性关系,为提高所测得的温度精度,应该要进行合理的分段线性化处理,在一定的温度范围内用式温度=A*阻值-B,其中A和B分别代表不一样的常数,然后再进行近似表示温度与阻值的关系,用最小二乘法进行线性拟合,所得到的数值与实际测量得出的数据误差将会减小,下面将用实际的温度数据与标准的温度数据作比较;表6实际温度与标准温度表(同一阻值)标准温度(℃)显示温度(℃)电阻阻值(Ω)0-0.1100.0065.1102.341010.0103.901212.0104.681616.0106.241919.0107.402121.0108.182524.9109.732827.9110.903029.9111.673231.9112.453636.0114.004040.0115.544444.0117.084848.1118.635050.0119.40本次设计的调试主要是通过改变PT100的阻值,然后观察数码管的温度显示来与标准温度进行对比,找出误差范围;根据上表对比显示的数据可以知道:标准温度与显示温度几乎一致。只有个别几个与标准温度的误差是±0.1,本次设计的精度是0.1,在考虑外在因素的影响下,可能对温度的测量造成一定偏差,采用分段式拟合的方法极大程度上减小了外在因素的影响,所以本次设计所存在的误差并不影响温度的读取和判定。4.2电源电路和H桥驱动加热制冷电路调试对于电源电路而言,最主要的调试操作是:判断该电路是否能够输出3A的电流来驱动H桥电路进行制冷和加热;在电路上我们可以使用万用表,首先将万用表调节到电压档,将万用表的两个表笔与输出端相连接,查看示数是否是12V,如果是,则说明输出端口可以保证输出3A的电流;如果不是,则开始检查电源电路是否出现故障,逐个检查各个电路点的电压。对于H桥驱动制冷加热电路的调试则是:通过控制“按键+”和“按键-”调节温度,在超出设定值的上限时,驱动电路将会启动制冷功能,这时就是P3.3接口需要输入高电平,若低于设定值的下限时,就会启动加热功能,这是P3.2就要输入高电平,而高电平和低电平也可以用万用表来测量,在H桥电路工作时分别去测量两个点的电压,对电压高的作为高电平,记为1;低电压作为低电平,记为0;H桥电路驱动制冷加热模块在本次设计中调试的过程当中没有出现问题,所以调试可以通过。4.3调试结果展示首先本次设计先设定温度,先按下功能键,再通过“按键-”将温度设定到15℃,设定完温度之后再按下功能按键,然后开始调节PT100的阻值,通过改变阻值来控制加热制冷,这里将阻值转化为对应的温度,本次调试所对应的温度是19℃,在数码管中显示出来的是19.5℃;因为本次设计存在温度的上下限,所设定的温度上限是16℃,而实际温度高于所设定的温度上限,系统开始制冷功能,这时可以看到P3.2的红点亮起,则表示输入的高电平可以驱动H桥电路进行制冷功能。经过这次调试,所得到设计仿真结果图如下所示:图4.5总体调试仿真图总结本文是以保温箱控制器为研究对象,保温箱控制器设计中有硬件部分的设计与软件部分的设计以及设计完成之后的调试。首先硬件部分主要是由5个部分组成,第一个是单片机最小系统,其中包含了复位电路和晶振电路。为了实现单片机系统的重启并且避免系统的死机,可以使用复位电路来解决;晶振电路会使得单片机工作更加稳定。单片机的最小系统是控制整个系统的核心,整个系统都是围绕它进行设计的;第二个电路是显示电路。显示电路所采用的是1602来显示温度数值,可以直观的看到所测的温度和设定的温度,能够方便我们更好的去使用保温箱功能;第三个电路是按键电路,按键电路是可以通过手动操作,来实现控制设定温度的高低,从而达到加热和制冷的目的;第四个电路是H桥驱动加热制冷电路。该电路主要是根据所设定的温度来判断是实现加热还是制冷功能。第五电路是测温电路,也是本次设计核心内容。这个模块是选择了ADC0832SH实现数据转换,该电路是通过计算PT100的阻值来找出相应的温度,对于所测到的温度数据,经过AD的转换然后输入到单片机当中;第六个电路是报警电路。在达到保温时间之后,声光报警电路将会做出提示。本文用理论与实践相结合的方式建立了保温箱控制器的函数。在protues8.10当中进行了仿真。从以上的描述中,可以看出本次设计保温箱控制器设计系统已经达到了目标。参考文献[1]周鸿雁,沙力妮.基于51单片机的高精度测温系统的设计[J].大庆师范学院学报,2020,40(03):111-115.[2]张辉,梁兆波,高振闯,徐健,杜生林.影响压缩机制冷效果的因素[J].云南化工,2018,45(03):228.[3]张邦成,步倩影,尹晓静,李淼,高智,隋元昆.基于贝叶斯数据融合的轨道车辆Pt100温度检测系统设计[J].传感技术学报,2017,30(08):1287-1292.[4]宋今朝.机床数控部分硬件设计[J].中国新通信,2016,18(06):98.[5]邹兵.基于ZigBee无线网络的大坝安全信息传输系统研发[D].广东工业大学,2015.[6]游继安.基于STM32的乳腺X线机控制系统的研究[D].南昌航空大学,2014.[7]王世勇.基于CAN总线生物质锅炉温度控制系统设计[D].内蒙古工业大学,2014.[8]卢磊.便携式室内甲醛气体检测仪研制[D].成都理工大学,2014.[9]李德望.热风干燥生产线干燥模块控制器设计与实现[D].内蒙古大学,2013.[10]余丽霞,马社,崔云俊.小型高精度恒温箱设计与应用[J].环境技术,2012,30(03):58-61.[11]余丽霞,马社,崔云俊.小型高精度恒温箱设计[J].电子世界,2012(08):102-103.[12]花升生.上肢康复训练机器人系统研制及控制策略研究[D].江苏科技大学,2012.[13]张雪娟,吴弋旻.ADS7841芯片在温度数据采集转换电路中的应用[J].科技通报,2011,27(01):109-113.[14]李俊涛.基于H桥驱动电路的半导体制冷片恒温控制系统[J].北华大学学报(自然科学版),2010,11(05):464-466.
附录1:*/#include<reg51.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar/***********端口定义******************/#defineDportP0//数码管段码驱动口sbitLED1=P2^0;//数码管位选驱动口sbitLED2=P2^1;sbitLED3=P2^2;sbitLED4=P2^3;sbitCS=P1^0;//ADC0832片选sbitCLK=P1^1;//ADC0832时钟sbitDIO=P1^2;//输入输出sbitwenk1=P3^2;sbitwenk2=P3^3;sbitSET=P2^4;sbitUP=P2^5;sbitDOWN=P2^6;uintwenset=50;ucharrongcha=1;/*******************************************/ucharidatadis_buf[4];//显示缓冲uchardis_cnt=0;ucharidataAD_dat[11];ucharAD_cnt=0;bitFH; //负号标志bitflagset=0;ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0x00,0x40,0x76,0x38};//共阴数码码表01000000/*0123456789C无-HL*/ucharDisplay_Wendu[4];//待显示的各温度数位uinttime_dat;voiddelay(unsignedinta)//时间延时函数{ unsignedintb,c; for(b=a;b>0;b--) for(c=110;c>0;c--);}/********************************************//*******************中值滤波函数*********************/ucharmedian(uchar*dat,ucharnum_d)//需要排序的数组{ ucharm,n; ucharwen; for(m=0;m<num_d;m++)//采用冒泡法对采样温度进行排序 { for(n=0;n<m;n++) { if(*(dat+m)>*(dat+n)) { temp=*(dat+m); //交换两值从大到小排 *(dat+m)=*(dat+n); *(dat+n)=wen; } } } returndat[(num_d-1)/2];}/*******************电阻值计算函数*********************///电桥压差计算公式Vc=4.096*(R0/(R1+R0)-RV1*R2/(R1+RV1*R2))//R0为Pt100阻值,RV1为另一臂可调电阻,R1,R2分别为双臂的上电阻//R0(PT100阻值)=(RV1*R1+R1*R2+RV1*R1)*Vc/Vq)/(R2-(R2*Vc+RV1*Vc)/Vq)//Vq为电桥电压4.096//电桥压差,由AD转换得到,根据上述公式推导出PT100电值计算公式floataccount_res(void){ ucharwen; floatRV1=96.086;//该电阻值为实测电阻,一定要实测,不然误差增大-10度是电阻值96.086欧,可用可调电阻调节 floatc1,2; floatk; floatR0; wen=median(AD_dat,11);//利用中值法求取中间值 k=(wen*5.0/256)/10-0.008;//采集到电桥压差-0.008为运放误差补偿(微调可补偿一些实物误差) c1=RV1*1000+((1000*(1000+RV1)*k)/4.096);//根据压差计算公式推导 c2=1000-((1000+RV)*d/4.096); R0=c1/c2; return(R0); }/*****************计算温度函数*************************/floattemperature(void){floatwen1,Wout;uintwen2; wen1=account_res();//计算Pt100阻值 wen2=(uint)wen1;//取Pt100阻值高位 if(wen2<100){FH=1;}else{FH=0;}//负温度 if(wen2<96)T_out=777; //小于-10℃ elseif(wen2<100)Wout=255.1239-2.5511*wen1;//若阻值在小于0℃到负20℃之间 elseif(wen2<112)Wout=2.5703*wen1-257.0501;//若阻值在0℃~30℃之间 elseif(wen2<123)Wout=2.5935*wen1-259.6416;//若阻值在30℃~60℃之间 elseif(wen2<135)Wout=2.6171*wen1-262.5538;//若阻值在60℃~90℃之间 elseif(wen2<139)Wout=2.6412*wen1-265.7953;//若阻值在90℃~120℃(146.06)之间100℃(138.5) elseif(wen2>=139)Wout=777;//若阻值在大于100℃之间 */return(Wout);}/*******************调整显示数据函数*******************/voidadj_t(void){ floatwen_v; uintvalue; wen_v=10*temperature();//利用计算温度值 value=(uint)wen_v; if(value>wenset+rongcha) //温度控制调整 {wenk1=1;wenk2=0;} elseif(value<wenset-rongcha) { wenk1=0;wenk2=1;} elsewenk1=wenk2=0; if(value==7770)//超出测量范围 { Display_Wendu[0]=12;//显示'-' Display_Wendu[1]=12;//显示'-' Display_Wendu[2]=12;//显示'-' Display_Wendu[3]=12;//显示'-' } else {Display_Wendu[0]=value/1000;//待显示百位 Display_Wendu[1]=(value%1000)/100;//待显示十位 Display_Wendu[2]=((value%1000)%100)/10;//待显示个位 Display_Wendu[3]=(value%1000)%100%10;//待显示小数 } dis_buf[0]=tab[Display_Wendu[0]];//更新温度显示缓冲 dis_buf[1]=tab[Display_Wendu[1]];//更新温度显示缓冲 dis_buf[2]=tab[Display_Wendu[2]];//更新温度显示缓冲 dis_buf[3]=tab[Display_Wendu[3]];//更新温度显示缓冲}/************数管码显示程序*********************/voidtimer0_int(void)interrupt1{ TH0=0xFC; //1ms定时初值 TL0=0x18; dis_cnt++;//显示计数 switch(dis_cnt) { case1:LED2=LED3=LED4=1; Dport=0x00; if(FH==1){Dport=0x40;}else{Dport=dis_buf[0];}//实时温度百位或负号位 LED1=0; break; case2:LED1=LED3=LED4=1; Dport=0x00; Dport=dis_buf[1]; LED2=0; break; case3:LED1=LED2=LED4=1; Dport=0x00; Dport=dis_buf[2]|0x80;//十位加小数点 LED3=0; break; case4:LED1=LED2=LED3=1; Dport=0x00; Dport=dis_buf[3];//个位 LED4=0; dis_cnt=0; break; } time_dat++;} /*********************************//获取指定通道的A/D转换结果/*******************AD转换*************************/ucharGet_AD_Result(void){ uchari,dat1=0,dat2=0; CS=0;_nop_();_nop_(); //片选使能,低电平有效 CLK=0;_nop_();_nop_(); //芯片时钟输入 DIO=1;_nop_();_nop_(); CLK=1;_nop_();_nop_(); //第1个下降沿之前,设DI=1/0 //选择单端/差分(SGL/DIF)模式中的单端输入模式 CLK=0;DIO=1;_nop_();_nop_(); CLK=1;_nop_();_nop_(); //第2个下降沿之前,设置DI=0/1,选择CHO/CH1 CLK=0;DIO=0;_nop_();_nop_();//通道0内部电压测试 CLK=1; _nop_();_nop_(); //第3个下降沿之前,设置DI=1 CLK=0;DIO=1;_nop_();_nop_();//第4-11个下降沿读数据(MSB->LSB) for(i=0;i<8;i++) { CLK=1;_nop_();_nop_(); CLK=0;_nop_();_nop_(); dat1=dat1<<1|DIO; } //第11-18个下降沿读数据(LSB->MSB) for(i=0;i<8;i++) { CLK=1;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河北省遵化市高考物理真题汇编考试卷及参考答案详解(轻巧夺冠)
- 宠物诊疗托管服务合同
- 签订房屋租赁托管合同
- 2026年福建省长乐市高考物理自主招生测试卷附答案详解(模拟题)
- 2026年湖北省广水市高考物理二模试卷【新题速递】附答案详解
- 2026年辽宁省大石桥市高考物理自主招生模拟卷含答案详解(精练)
- 2025年施工员之设备安装施工专业管理实务题库(附带答案)
- 建筑工地防护地震制度
- 2026年城市绿化工程养护与管理合同二篇
- 2025年二级建造师建筑工程实务真题及答案(案例题)
- 2025年北京市初二地生会考真题试卷(+答案)
- 护理不良事件预防与风险管理
- 社保待遇追缴工作方案
- 雨课堂学堂在线学堂云《兽医外科学与手术学(扬州)》单元测试考核答案
- GB/T 47157-2026芹菜等级规格
- 2026黑龙江省机场管理集团招聘笔试参考题库及答案解析
- 2026年党委(党组)理论学习中心组试题及答案
- 物理 第九章 浮力课件2025-2026学年沪科版八年级物理全册
- 2025至2030中国洗碗机行业市场调研及增长潜力预测与投资可行性研究报告
- 军用关键软硬件自主可控产品名录(2025年v1版)
- 山东省济南市实验中学2026届高一生物第二学期期末达标检测试题含解析
评论
0/150
提交评论