1单片机综合设计恒温控制器专业班级:测控102学生姓名:罗丽娇学号:120103107056指导老师:程万胜2基于单片机的恒温控制器的设计与实现一.设计目的在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题,以单片机为主要核心的应用技术已成为一项新的工程应用技术。单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等优势,在过程控制系统、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到了广泛的应用。温度控制系统是比较常见的和典型的过程系统,温度是工业生产过程中重要的被控参数之一,在冶金、机械、食品、化工等各类工业生产过程中广泛使用的各种加热炉、热处理炉、反应炉,对工件的处理温度等均需要对温度严格控制。利用单片机、温度传感器实现对温度的控制,具有体积小、编程简单、价格低的优点,在发电厂、纺织、食品、医药、仓库等许多领域得到了很快的应用。因此具有很好的发展前景和可靠的使用价值。二.总体设计1.研究内容及创新点:本设计是将温度通过DS18B20(常用的温度传感器,具有体积小,硬件开消低,抗干扰能力强,精度高的特点。)进行采样并转换为0-5V的电压信号进入AT89c51(芯片)单片机,从I/O口输出到液晶屏显示其温度。同时显示电路显示设定的恒温值,恒温值在一定范围内可调。当实际温度高于设定的恒定温度1℃时,单片机发出指令信号,继电器吸合,风扇开始吹风。当温度低于设定的恒温值1℃时,单片机发出指令信号,继电器断开,风扇停止吹风。2.设计要求:①DS18B20数字量温度采集3②LCD液晶显示屏③温度控制并给予工作状态显示3.总体设计:根据技术指标,该系统为一个温度采集控制系统。该系统主要由控制部分和执行部分组成。控制部分包括单片机最小系统模块、DS18B20、显示模块、电源模块等。执行部分主要由加热和冷却装置组成。整个系统实现对数据的采集运算,对温度参数的设置,对采集数据的显示和加热装置的控制。本次设计主要分为硬件设计和软件设计。硬件设计分为电源电路,测温电路,单片机最小系统,LED显示电路,继电器控制电路。软件设计分为温度采集程序,显示子程序,温度控制子程序等。在硬件电路的设计中系统采用220V/50Hz交流电供电,电源电路负责提供5V、+12V和-12V直流电源,主要用到了集成稳压块7805、7812和7912。测温电路负责将现场温度近似线性的转换为0—5V的直流电压信号,信号送至单片机。单片机将测温电路送过来的电压信号进行显示和计算,并通过相应的程序完成相应的动作。单片机最小系统是单片机以及整个系统能够正常工作的前提,包括晶振电路,复位电路等。三.系统硬件设计1.单片机的选择:最小系统外围电路测控对象DS18B20单片机显示模块电源模块继电器模块4AT89S52是一种低功耗/低电压、高性能的8位单片机。片内带有一个8KB的Flash可编程、可擦除只读存储器(EPROM)。它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MSC-51兼容。片内的Flash存储器允许在系统内改编程序或用常规的非易失性存储器编程器来编程。因此AT89S52是一种功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。同时支持ISP在线下载。2.温度传感器的选择:DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20产品的特点:5(1)只要求一个端口即可实现通信。(2)在DS18B20中的每个器件上都有独一无二的序列号。(3)实际应用中不需要外部任何元器件即可实现测温。(4)测量温度范围在-55°C到+125°C之间。(5)数字温度计的分辨率用户可以从9位到12位选择。(6)内部有温度上、下限告警设置。由于本系统要求灵敏度高、线性度好、实际尺寸小、使用方便、热响应快而且价格便宜等优点。所以采用方案四中的DS18B20。3.显示模块的选择:使用传统液晶显示屏。低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。编码显示数字,程序编译容易,资源占用较少。4.温度测量模块6DS18B20是一种单端通信的数字式温度传感器,这就大大减小了温度测量电路的复杂程度,我们将单片机的一条I/O分配给温度传感器,即可完成温度采集的的硬件需求。单片机通过对温度传感器的初始化,发出温度转换命令,写入和读出数据的命令来实现温度值的测量。另外,也考虑过用模拟式的温度传感器,但由于数据采集部分需要A/D转换,还需要设计相应的放大电路,电路设计较为复杂,并且在可靠性和抗干扰能力上都不如数字式温度传感器,所以最终选择了用数字式传感器DS18B20进行温度测量的较简单的温度测量模块。(1)DS18B20的测温原理本系统在温度采集中使用的DS18B20测温原理图如图3-2所示:图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量,计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中。图4-2DS18B20测温原理图7(2)DS18B20的性能特点DS18B20是一种使用方便的温度传感器,其性能特点如下:(1)具有独特的单线接口方式,只要求一个端口即可实现通信(2)内含64位经过激光修正的只读存储器ROM(3)在DS18B20中的每个器件上都有独一无二的序列号(4)实际应用中不需要外部任何元器件即可实现测温(5)测量温度范围在-55℃到+125℃之间,测量分辨率为0.0625℃(6)数字温度计的分辨率用户可以从9位到12位选择(7)内部有温度上、下限告警设置,用户可分别设定各路温度的上、下限(8)支持多接点(9)可用数据线供电,电压范围:3.0~5.5V(10)负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作[7]。(3)DS18B20的引脚功能图4-3底视图系统所选的是3脚的PR-35封装DS18B20数字温度传感器,引脚功能如下表所示:DS18B20的引脚功能描述序号名称引脚功能描述1GND接地信号2DQ数字信号输入/输出引脚。开漏单总线接口引脚。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地,也可以向器件提供电源(5)DS18B20的内部存储器8DS18B20的内部有一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL。高速暂存存储器由9个字节组成,其分配如表3-2所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表中对应的一部分温度值。第3和第4字节是TH和TL的拷贝,是易失性的,每次上电复位时被刷新,第5字节为配置寄存器,它主要用来确定温度值的数字转换分辨率[8]。低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在出厂时该位被设置为0,用户不要去改动。表3-2DS18B20暂存寄存器分布单片机可通过单线接口读到该数据,读时低位在前,高位在后,数据格式如下表:温度数字输出(二进制输出)数字输出(十六进制)+125℃000000001111101000FAH+25℃00000000001100100032H+0.5℃00000000000000010001H0℃00000000000000000000H-0.5℃1111111111111111FFFFH-25℃1111111111001110FFCEH-125℃1111111110010010FF92HR1和R0决定温度转换的精度位数,用来设置分辨率如表3-4所示,默认为12位,分辨率为0.0625℃。6,7,8字节保留未用,为全逻辑1,第9字节是冗余检验字节[9]。表3-4配置存储器与分辨率关系R0R1温度计分辨率/bit最大转换时间/ms00993.750110187.5910113751112750温度算法(分辨率为0.0625℃):(1)当SSSSS=11111b,D=-1;当SSSSS=00000b,D=1(2)当D=1时,温度值T=[(高字节×256+低字节)×0.0625(3)当D=-1时,温度值T=-[(256-高字节)×256-低字节]×0.0625[10]温度采集过程如图3-4所示:图3-4温度采集过程图(6)DS18B20的工作时序DS18B20的工作时序主要包括:初始化时序、写时序、读时序。(1)初始化时序初始化时序见图3-5主机总线在t0时刻发送一个最短为480μs的低电平复位脉冲信号,接着在t1时刻释放总线并进入接收状态,DSl8B20在检测到总线的上升沿之后,等待15μs~60μs,接着在t2时刻发出低脉冲(60μs~240μs),如图中虚线所示,18B20响应之后又恢复为高电平,t2~t4称为18B20的响应时间,最少为480μs。图3-5初始化时序10(2)写时序当主机总线t0时刻从高拉至低电平时,就产生写时序,见图3-6,从t0时刻开始15μs之内应将所需写的位送到总线上,DSl8B20在t0后15μs~60μs间对总线采样。若为低电平,写入的位是0;若为高电平,写入的位是1。连续写2位间的时序应大于1μs。图3-6写时序(3)读时序见图3-7主机总线t0时刻从高拉至低电平时总线只须保持低电平1μs之后在t1时刻将总线拉高,产生读时序,读时序在t1时刻后t2时刻前有效。t2距t0为15μs,也就是说,t2时刻前主机必须完成读位,并在t0后的60μs~120μs内释放总线。图3-7读时序5.单片机最小系统电路单片计算机应该是一个最小的应用系统,但由于应用系统中有一些功能器件无法集成到芯内部,如晶振、复位电路等,需要在片外加接相应的电路。1、单片机的时钟电路MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。MCS-51单片机的时钟产生方式有两种:11图3-3使用片内振荡电路的时钟电路图3-4HMOS型单片机的外部时钟电路(1)内部时钟方式:利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出的时钟信号。最常用的是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器,如图3-8所示。晶体可在1.2~12MHz之间选择。MCS-52单片机在通常应用情况下,使用振荡频率为12MHz的石英晶体。对电容值无严格要求,但它的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有少许影响。C1和C2可在20~100pF之间取值,一般取30pF左右。(2)外部时钟方式在有些系统中,为了各单片机之间时钟信号的同步,应当引入惟一的合用外部振荡脉冲作为各单自片机的时钟。外部时钟方