《用单片机实现温度远程显示》由会员分享,可在线阅读,更多相关《用单片机实现温度远程显示(32页珍藏版)》请在金锄头文库上搜索。
1、用单片机实现温度远程显示(作者:刘楚浩*发表于单片机与嵌入式系统应用002年第9期摘 要:文章介绍了用AT89S8252单片机的串行接口与智能温度巡回检测仪(XJ-08S)通过 RS485总线相互通讯实现热水温度远程显示的一种低成本解决方案,内容涉及RS485总线通 讯、单片机驱动数码管显示、数据转换以及键盘处理软硬件设计等内容。关键词:单片机RS-485总线数码管显示数据转换键盘处理一、前言目前检测温度一般采用热电偶或热敏电阻作为传感器,这种传感器至仪表之间一般都要 用专用的温度补偿导线,而温度补偿导线价格很贵,并且线路太长也会影响测量精度。在实 际应用中往往需要对较远处(1KM左右)的温度
2、信号进行监视。现有的解决方案有很多,例 如:1、在现场用智能仪表对温度信号进行测量,用计算机作上位机与智能仪表进行通讯来实现 远程温度监测(采用这种方案要增加计算机设备及相关计算机软件)。2、NCU+DDC实现远程温度监测。用两个DDC, 个安装在现场测量温度,另一个安装在 监视地,两个DDC通过NCU进行通讯从而实现远程温度监测。但以上方案都存在成本高的问题,有没有低成本的解决方案呢?其实,在单片机应用日益广泛的今天,完全可以用单片机以极低的成本来实现远程温度监测。二、问题的提出我单位管理的锅炉房同时给两栋建筑物内的两家酒店供应蒸汽,由安装在两栋建筑物地下室 的热交换器进行热交换后产生热水送
3、给客房。从锅炉房至两个热交换站的距离分别约600米,值 班人员要不停地奔波于两个热交换站与锅炉房之间进行设备巡视,检查热水温度是否控制在规定 的范围,这样不仅增加了值班人员的劳动强度,同时也使锅炉房经常无人(因每班1人值班)。如 果能在锅炉房显示两个热交换站内各热交换器的热水温度,则值班人员仅在热水温度异常时才需 到各热交换站检查设备,这样便可解决上述问题。我公司曾就此问题找专业公司作过方案,其报 价在人民币10万元左右,后因种种原因该项目未实施。经过分析,本人发现可以用单片机+智 能仪表以低成本实现温度远程显示,并且经过实验取得了成功,现将设计方案简述如下:三、控制要求及解决方案选择1、两个
4、热交换站分高低区共安装有8个热交换器,正常水温在45oC至65oC之间;两个热 交换站与锅炉房的距离分别为500米和600米左右。2、要求在锅炉房能以巡回及定点两种方式显示8个热交换器的热水温度,巡回方式以3秒 为周期轮流更新及显示各热交换器热水温度。定点方式时每按上键或下键一次则显示上 或下一个热交换器热水温度,每3秒自动更新数据一次。3、根据控制要求选择单片机+智能仪表的解决方案:用带通讯接口的智能仪表安装在现场测 量温度,设计制作一个单片机装置完成与智能仪表的通讯及数据显示。四、通讯协议、智能仪表选择及其参数介绍因热水温度信号变化较慢,因而对通信的速度要求不高,对于这种低速率远距离的通讯
5、选用 RS-485总线适宜。RS-485是EIA (美国电子工业联合会)在1983年公布的新的平衡传输标准, 是工业界使用最为广泛的双向、平衡传输线标准接口,它以半双工方式通信,支持多点连接,传 统驱动器允许创建多达32个节点的网络,且其具有传输距离远(最大传输距离为1200M),传输 速度快(1200M时为100KBPS)等优点。其连接方法如下图所示。RS485通讯端口的智能仪表。经过对市场上常用的温度检测仪进行分析,选择由重庆川仪十八 厂生产的XJ-08S型巡回检测仪作现场测量仪表。(一)该仪表主要特点如下:1、多量程方式,热电偶、热电阻,1-5V标准信号混合输入,可通过键盘进行设置;2、
6、最多8个测量通道(能测量8个温度信号);3、采用RS-485通讯标准,可将各通道最新数据向上位机传送。重要的是,该仪表的说明书详细介绍了与该仪表进行数据交换的命令及格式,其通讯协议也 相对较简单,这给我们用单片机实现温度远程显示降减低了难度(虽然有RS-485端口的仪表很多, 但大多没有通讯命令的详细说明,给我们用单片机编程增加了难度)。(二) XJ-08S巡回检测仪通讯协议1、通讯口设置 通讯方式:RS-485标准电平 同步方式:起停同步方式 波特率:9600BPS 通讯距离:不大于1200M 通讯线:二线 数据代码:ASCII码 数据格式:每字符10位,1个起始位,8个数据位,1个停止位2
7、、数据传输格式 地址:2字节(高字节在前,低字节在后); 数据:按地址顺序,仪表数据传输格式为十六进制2字节定点数;2字节定点数=低字节高4位(ASCII码)+低字节低4位(ASCII码) 高字节高4位(ASCII码)+高字节低4位(ASCII码)若数据为负数,则采用补码方式传输; 在传输实时测量值时,传输完2字节定点数后,紧接着又传输2字节定点数, 其中高字节低4位为小数点位数。例:(50.0)10 表示为 46 34 30 31 30 30 30 31低字节高字节小数位数3、仪表通讯格式:DE帧类型帧数据CRCCR:通讯起始符DE:仪表设备号(地址)帧类型:操作命令帧数据:各种操作命令所对
8、应的命令及数据CRC:校验字节(除外。只。之前的其他几个字节的异或值)CR:结束符(回车符)4、应用中用到的命令及数据格式: 读仪表全部动态数据命令帧 DE RD CRC CR 命令回送帧正确 DE RD帧数据 CRC CR错误 DE * * CRC CR例:读28号仪表的全部动态数据命令:1CRD64,OD(ASCII 码 40 31 43 52 44 36 34 0d) 错误返回码 1C*72,0D(ASCII 码 40 31 43 2A 2A 37 32 0D) 正确返回数据 1C RD XXXX XXXX XXXX XXXX XXXX XXXX第0通道第1通道 第2通道XXXX XXX
9、X XXXX XXXX XXXX XXXX XXXX XXXX第3通道第4通道第5通道第6通道XXXX XXXX XX.OD第7通道 校验五、单片机选择及硬件电路设计1、选用ATMEL公司生产的AT89S8252-24PC单片机,其主要参数及特点如下: 与MCS-51产品兼容(其引脚图见原理图) 具有8K字节可擦写的FLASH内部程序存储器,可擦写1000次;2K字节EEPROM, 可擦写100, 000次,SPI 口(用PC机的并口连接5条线即可通过SPI 口下载程序, 下载软件可从网上下载,这样可节省购买编程器的费用;)。注:笔者现已制作成了 ISP2000三合一烧写器,详情见http:/
10、 256字节RAM,32根可编程I/O线,可编程串行口,内置看门狗。与看门狗有关的特殊功能寄存器WMCON地址=96H,与看门狗有关的控制位为96h 第0、1、5、6、7位,第5、6、7位用于设置看门狗定时时间(具体见第5页表格), 本应用中第5、6、7位均置1,设置看门狗溢出时间为2048ms,第0位为看门狗使 能控制位,该位置1将使能看门狗,其第1位为复用位,向第1位写1将复位看门狗 定时器,具体操作如下:a, 使能看门狗,并将其溢出时间设定为2048ms: ORL 96H, #0E1H;b, 看门狗定时器清0: ORL 96H, #22、按键设计:为方便使用,设计了三个按键,分别为巡回/
11、定点切换键、上键、下键。切换键用于巡检 与定点模式的切换,上键向上切换通道,下键向下切换通道:其中巡检/定点切换键通过 外部中断1以中断方式工作,中断程序将巡回/定点标志取反后直接跳到主程序中巡回/ 定点标志判断程序前运行,由判断程序完成巡回/定点的切换。按键信号由单片机P3.3, P3.4, P3.5引脚输入。3、显示电路设计为方便观察,选用三个二位共阳级8段数码显示管(TOD5201AE)动态显示,一位显示仪表地址(从A至F), 位显示通道号(从0至7通道),其余四位用来显示实时温度值;用单片机P1 口驱动一片74HC244以吸收电流的方式控制段码,用单片机P0.0至P0.5 引脚驱动六个
12、PNP三极管(9012)控制位选。4、电源选用5V/1A市售成品开关电源。5、 根据智能仪表通讯协议的要求,串行口定义为方式1工作,一帧10位:1个起始位、8 个数据位、一个停止位;用一片75176完成数据的发送与接收,由于RS-485为半双工, 故用单片机P3.2引脚控制发送与接收的切换;两个智能仪表处于RS-485总线的两个端 点,为提高可靠性,在RS-485总线的两个端点上分别并联一个120Q、1/4W终端电阻。 系统方框图如右示: 单片机装置电原理图见下页:热水温度远程显示器看门狗溢出时间表765定时值00r016ms00011032ms64ms011128ms100256ms1101
13、10512ms1024ms1112048ms0实时温度O 巡回/定点上下巡回/定点A B 13ndAHB Gnd120QAHB Gnd120QXJ-08S巡回检测仪AXJ-08S巡回检测仪BE S 3rH E 3H 0 C EH S S GeE S 5 SrH E 3H a C EH S S GeP3 upj-njj 阳 i i:n-nj j 阳ifViTij. j Ft 打Er:i fi 4Tti)Ft 571:1 Ft irfiRj-vccf:E3DE占DIcH-iD六、单片机软件设计说明及程序流程图为方便调试,采用模块化编程,共分1个主模块及5个子模块,各模块功能说明 及流程图如下(源程
14、序见附录):1、主模块(rand_main.a51)上电后程序显示初始化标志并等待3秒,然后进入巡回模式,自动检测地址为A (10)至F (15)的智能仪表,对在线的仪表及已使用通道以3秒为周期自动巡 回读取实时温度并送数码管显示,仪表未在线或未用通道则自动跳过;定点模式 时根据上、下按键情况自动向前或向后移动一个通道后等待下一次按键(向上至 最高通道号时跳到上一个仪表的最低在用通道,向下至最低通道号时跳到下一个 仪表的最高在用通道);等待期间以3秒为周期读取当前仪表当前通道实时温度并 送数码管显示,另外,为了区分巡回、定点工作模式,定点工作模式时最低位数 码管以约0.5Hz的频率闪烁显示。当检测到巡回/定点切换键按下时自动在巡回及 定点模式间转换,当检测到温度值低于一199.9度时显示-199.9度。主模块流程图见下页:N巡回/定点标志=1?YN接收正确吗?YYN正常吗?YN正确吗?NYYN