基于89C52单片机的具有通讯口的智能温控表的设计
扫描二维码
随时随地手机看文章
作者:吕曙东
1 引 言
温控表已广泛应用于工业控制等诸多领域,本文介绍的具有计算机通讯功能的智能温控表是一种新颖的自动化仪表,它以单片机AT89C52为核心,采用电压/频率转换技术和RS-485通信接口芯片MAX487,具有测量精度高、可靠性好、抗干扰性能强、可实现计算机网络控制等优点,可广泛应用于冶金、纺织、化工、医疗等行业。它具有-200~+500°C范围的温度测量和自动控制,是老式温控表的替代产品,市场前景广阔。
2 系统硬件设计
系统硬件框图如图1所示。
系统接通220V交流电源后,通过稳压电路(7805、7905)产生±5V直流工作电源,以满足本系统中集成电路工作需要,系统的遥测电路开始工作:在人员不能进入或不易进入的场合,通过温度传感器铂电阻PT100及运算放大器OP07将被测温度的变化转换成电压信号,由LM331进行V/F变换为脉冲信号输入至89C52的T0口进行频率计数,该计数脉冲频率即反映了所测温度的大小,系统进行PID运算,若所测温度与系统设定温度不相符,根据PID计算结果通过光耦TIL117控制输出电路中的电磁继电器吸合,进行温度调节的控制,同时各分机的通讯口MAX487与主机进行数据通讯与传送,由主机输入参数可进行所有温控表的温度设定。系统所设定的温度数据存储于看门狗芯片X25045中,同时当检测温度超过设定温度一定值时系统进行报警。本系统采用一片8155作为8位LED数码管及4位键盘的接口,同时显示系统设定温度及检测温度值,4位键盘为:位选、增量、减量、功能。
2.1 温度检测与信号放大电路
本系统采用铂电阻PT100为测温元件,PT100具有性能稳定、抗氧化能力强和测量精度高等优点。由PT100和电阻元件组成的桥式电路将由于温度变化引起的铂电阻的阻值变化转换为电压信号输入放大器。因需通过连接导线将安装在测量现场的铂电阻接入控制台,为了减小引线电阻的影响,采用三线式接线法。
信号放大电路由集成运放OP07组成,OP07的噪声峰-峰值为0.6μV,共模扼制比CMRR>106dB,OP07的管脚功能:IN+和IN-为信号差动输入端,1、8脚为调零端,6脚为输出端。
2.2 电压/频率转换电路(LM331)
在控制和测量系统中,一般由AD转换器件将电量或非电量通过传感器和前置电路接入后续电路处理。本系统采用V/F转换器LM331将温度信号的变化转换为频率信号的处理。
LM331是美国NS公司生产的性能价格比高、外围电路简单、可单电源供电、低功耗的集成电路。LM331动态范围宽达100dB,工作频率低到0.1Hz时尚有较好的线性度,数字分辨率达12位。LM331的输出驱动器采用集电极开路形式,因此可通过选择逻辑电流和外接电阻来灵活改变输出脉冲的逻辑电平,以适配TTL、DTL和CMOS等不同逻辑电路。LM331可工作在4.0V~40V之间,输出可高达40V,而且可以防止VCC短路。
本系统中,LM331将输出的频率信号变成TTL电平送给单片机的P3.4口作为T0的计数脉冲。该转换电路线性良好,抗干扰能力强,输出范围在10Hz~10kHz以上,有利于提高系统的测量范围。
LM331主要管脚功能:
RC:参考电流输入端;CO:电流输出端;FO:频率输出端;CI:电压输入端。
2.3 CPU及外围电路
AT89C52是ATMEL公司生产的MCS-51系列单片机,内置8K字节电擦除可编程EEPROM片内程序存储器和256字节RAM,片内程序存储器空间能满足本系统程序存储之需要,可省去片外EPROM程序存储器和地址锁存器,使电路结构简捷。
TXD、RXD、P1.5、P1.6分别与MAX487的DI、RO、、DE相联进行数据通讯控制,P1.0~P1.4口、RESET接至X25045ALE、P0口、P2.0、P2.1接至8155。P3.4口计数器T0输入端接至LM331的频率输出端进行脉冲计数。P1.7口为光耦TIL117控制端。
系统数据存储及故障保护部分由X25045组成,X25045是一种串行通讯的512字节EEPROM,同时兼有看门狗和电源监控功能。X25045有三种可编程看门狗周期,上电和VCC低于检测门限时,输出复位信号,X25045输出复位高电平有效,其复位输出端直接与89C52的复位端连接。
X25045管脚功能:
:片选输入;SO:串行输出;SI:串行输入;SCK:串行时钟输入;WP:写保护输入;RESET::复位输出。
2.4 通讯口(MAX487)
本系统采用RS-485接口芯片MAX487作为通讯口。MAX487是MAXIM公司生产的用于RS-485和RS—422通信的差分总线小功率收发器,它含有一个驱动器和一个接收器,具有驱动器/接收器使能功能,输入阻抗为1/4负载(≥48kW),节点数为128,即每个MAX487的驱动器可驱动128个标