基于AT89C51单片机为核心的多路温度采集系统电路设计
图2 AT89C51 PDIP封装引脚图
VCC:供电电压+5V。 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口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
9
基于AT89C51单片机为核心的多路温度采集系统电路设计
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.2 温度传感器的选择
温度是表征物体冷热程度的状态量,是现代科学技术中最基本、最重要的物理量。
与温度变化有关的物质属性很多,因而温度测量的仪器也是多种多样的。常用的温度测量仪有热电阻、热电偶、PN结温度传感器、集成温度传感器等。热电阻它的优点是灵敏度高,工作温度范围宽,稳定性好,过载能力强,体积小。但它的不足之处在于非线性和互换性差。热电偶测量精度高,热电动势与温度在小范围内基本呈单值、线性关系,稳定性和复现性较好,响应时间较快;测温范围宽,高温热电偶测温上限可达2800℃。PN结温度传感器利用晶体二极管、三极管的PN结电压随着温度变化而变化的原理制成。线性度好,热惯性小,灵敏度高。集成温度传感器是将测温元件、放大电路、偏置电路及线性化电路集成在同一芯片上的温度传感器。相对其它传感器有较好的线性度和一致性,且体积小,使用方便。温室是一个有较大惯性的被控对象,温度的变化速度较慢,因而不需要传感器的反应速度太高;但要求传感器有优良的物理及化学稳定性。用的较多的是以铂电阻为代表的模拟传感器和以DS18B20为代表的数字传感器。考虑到铂电阻需要信号调理电路,将电阻信号转换为电压信号,经过A/D转换后才能被单片机接受,信号调理电路的相对复杂,抗干扰性比较差,而且价格较高,而DS18B20不仅价格便宜而且使用方便、测温准确、精度较高。为了节省成本,提高效率,方便采集系统以后的进一步扩展和完善,本设计系统的采集模型采用DS18B20单总线数字式温度传感器。 3.2.1 DS18B20的简介
数字温度传感器DS18B20是DALLAS公司生产的基于串行接口的一线式数字温度传感器,它是将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上,传感器直接输出的就是温度信号数字值的全新传感器。有3引脚TO-92小体积封装形式。具有一线总线、体积更小、适用电压更宽、而且经济等特点。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。DS18B20支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。现场温
10
基于AT89C51单片机为核心的多路温度采集系统电路设计
度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 DSl8B20具有如下特征:
① 采用单总线技能,与单片机通信只须要一根I/O线,在一根线上可挂接多个DSl8B20。 ② 低压供电,电源范围3~5V,可以本地供电,也可以直接从数据线上窃取电源(寄生式供电方式)。
③ 每只DSl8B20具有一个独立的、不可修改的64位序列号,根据序列号可以访问对应的器件。
④ 测温范围为一55℃~+125℃,在一10℃~85℃范围内误差为±0.5℃。 ⑤ 可编程数据为9~12位,其转换12位的温度时间为750 ms(最大)。
⑥ DSl8B20可将检测到的温度值直接转化成数字量,并通过串行通信的方式与主控制器执行数据通信。
3.2.2 DS18B20工作原理
DS18B20测温原理:由于低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在一个对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线形,其输出用于累加器1的预置值。其原理图如3:
11
基于AT89C51单片机为核心的多路温度采集系统电路设计
图3 DS18B20工作原理图
3.2.3 DS18B20内部结构
(1) DS18B20的引脚说明
DS18B20采用3脚TO-92封装或8脚SOIC封装。3脚TO-92封装形式和器件图如图4所示:
GND——接地;
DQ——数据输入输出。漏极开路单线接口,也在寄生电源模式时给设备提供电源; VDD——可选的电源电压脚。VDD在寄生电源模式时必须接地。
图3.3 DS18B20引脚
图4 DS18B20的DIP 40封装图
(2)DS18B20的内部结构图5:
12