1单片机温度采集系统一、设计内容本系统采用主机(PC机)作为控制中心,与从机(AT89C51单片机)进行温度传输。从机完成温度采集,数据显示,键盘设定温度的上限和下限值,在温度设计范围内将启动报警系统,同时将采集到的温度值给传送到PC机。PC机和单片机进行数据通信外还做数据整理、保存、打印等的工作。在PC机和单片机的通讯中,采用国际标准的RS485差分方式接口器件,使通讯的速率和传输距离均大于RS232的标准接口方式,并且用线最少,同时系统扩展性好,稍作改动就可以进行多路数据采集和传输。采用数字温度传感器DS18B20直接将采集到的数字信号交给从机进行数据处理。二、系统要求1、从机完成温度采集、数据显示、键盘设定温度的上限和下限值;2、在温度设计范围内启动报警系统,同时将采集到的温度值传送到PC机;3、PC完成数据整理、保存、打印。三.所需设备1、单片机AT89C51;2、数字温度传感器DS18B20;3、RS485差分方式接口器件;4、蜂鸣器、键盘、PC机、数码管。四、系统组成框图:以AT89C51单片机系统为核心对温度进行实时监测。各检测单元(从机)能独立完成各自功能,并根据主控机的指令对温度进行实时或定时采集。测量结果不仅能在本地储存和显示,而且可通过RS-485总线及通信协议将采集的数据传送到主控机。以便进行进一步的分析、存档、处理。主控机负责控制指令的发送,并控制各个从机进行温度采集,收集测量数据,同时对测量结果(包括历史数据)进行整理、显示和打印。主控机与各从机之间能够相互联系、相互协调,从而达到系统整体统一和谐的控制效果。从机部分实现的功能几乎和主机是对等的,但会接受主机发送过来的命令。五.硬件配置(1)温度传感器从机AT89C51数据保存数据打印主控机PC机键盘LED显示DS18B20声光报警RS485数据整理2图2为DS18B20引脚排列图,在DS18B20中,DQ为数字信号输人/输出端;GND为电源地;VDD为外接供电电源输入端。DS18B20在光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,这样就可以实现一根总线上挂接多个DS18B20的目的。有两种方法可确保DS18B20在有效转换期内得到足够的电源电流。第一种方法是在温度变换时,在I/O口接一个强的上拉。第二种是将其连到VCC外部电源,这样就不用在I/O口接强上拉,也可在温度变换期间使口线保持高电平。以在变换时间内允许其它数据在单总线上传输。也可使用外部电源通过发跳过ROM命令和变换命令T来完成温度变换。需要注意的是:在工作状态,GND不能悬空。DS18B20电路如图3所示,采用3脚TO-126封装,图中低温度系数晶振的振荡频率受温度的影响很小,主要用于产生固定频率的脉冲信号并送给减法计数器1,高温度系数晶振在温度变化时,其振荡频率有明显改变,它所产生的信号可作为减法计数器2的脉冲输入,图中隐含着的计数门开时,DS18B20即对低温度系数振荡器产生的时钟脉冲进行计数,进而完成信号采集。在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,3GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。(2)AT89C51单片机:AT89C51单片机是系统的主控部件,部含有4KEPROM,外部可扩接64KRAM及64KEPROM,部有256个字节RAM,其中高地址128RAM为单片机专用寄存器占用,低128RAM可作为四个工作寄存器组,128个位寻址,堆栈区及通用RAM使用,具有5个中断源,2套定时计数器(TO、T1)四组1/0口(PO,P1,P2,P3)。可以通过P3口的RXD和TXD实现多机通信功能。(3)RS485接口a.A与B口采用差分实现传输;b.RO口为读数据用,RE_N为读使能位(低电平有效),DE口为写数据使能(高电平有效),DI口为写数据用;c.VCC:3~3.6V;d.GND:接地;注:由于RS-485的最大传输距离是RS-22的8倍,约1200M。所以采用RS-485符合本设计要求。MAX3485使用半双工通讯;RS-485接口是20mA电流环路串行通信接口,它也是目前品行通信广泛应用的一种接口电路,其最大的优点是低阻传输对电报导噪声不敏感,而且易于实现光电隔离,非常适于长距离串行通信。常用的RS-485接口芯片有SN75176、75276、MAX1428、MAX1483、MAX485E、MAX3162E等。图4RS485接口4六.硬件电路5七.各部分功能分析:1、AT89C51单片机:AT89C51单片机是系统的主控部件,部含有4KEPROM,外部可扩接64KRAM及64KEPROM,部有256个字节RAM,其中高地址128RAM为单片机专用寄存器占用,低128RAM可作为四个工作寄存器组,128个位寻址,堆栈区及通用RAM使用,具有5个中断源,2套定时计数器(TO、T1)四组1/0口(PO,P1,P2,P3)。可以通过P3口的RXD和TXD实现多机通信功能。2、微机通信:控制室的微机(上位机)通过串行通信口RS-232经MAX202ECPE电平转换芯片与一路AT89C51主单片机(下位机)的RXD,TXD相连,实现双工通信功能,在AT89C51主控板上的液晶显示屏上显示的内容可实时显示在微机的CRT屏幕上,同时通过微机的键盘发布各种控制命令到温室的主单片机控制系统中去。然后由主单片机经三态门控制切换(见附图)向其它温室的从单片机通过多机通信方式向各从单片机进行通信,实现同步监测与控制。3、晶显示接口:系统采用北京金创导科技开发中心的KY智能液晶终端。字库为6x8点阵西文字符448个16X16的汉字显示缓冲区及国标一、二级汉字6768个,通过简单指令6可以完成,绘制点、直线、矩形、园弧、点阵图形字符或汉字旋转、显示等。4、盘接口:放大字间距,行间距调整,上下及左右滚屏采用6位键盘直接与AT89C51P1口的Pl.0-Pl.6相连,实现温、湿度上/下限数据调整及从机地址设置。5、告警:系统主程序循环中对侮次采样的温、湿度值与设定的上、下值进行比较,若越界则调用发声子程序,从P1.7口输出1000H:驱动喇叭告警6、传感器:DS18B20是8位ADD转换芯片,转换速度慢、但成本低。占用后32K地址(15=A有效)采用2M晶振经四分频后,得到500K频率送至0809的CLOCK,0809的INO-IN7分别接至4路温度传感器和4路湿度传感器,进行实时采样监测,转换结果由EOC端输出反相后接至AT89C51的TNh0外中断(边沿触发方式),主机在中断服务程序中进行实时处理。八.程序控制流程图本系统软件主要由主控机程序和从机程序两部分构成。主程序主要实现系统的初始化、数据显示、从机相关信息设定及通信的处理。系统的初始化包括寄存器的初始化(控制寄存器、堆栈、中断寄存器等),通信初始化(串口的初始化,MAX485的初始化,通信缓冲区的初始化),数码管初始化,输出端口的初始化,以及采集、累计数据的初始化。数据显示则包括各类参数、测量数据等的读取和显示屏的刷新。开始超过温度?度?系统初始化向串口发送温度值1min中断采样、启动A/D数据传输按键处理中断子程序NY串口初始化S5键按下吗?喇叭报警YN显示温度及通道记录异常数据本地显示温度值存中值