用单片机实现温度远程显示.doc
《用单片机实现温度远程显示.doc》由会员分享,可在线阅读,更多相关《用单片机实现温度远程显示.doc(28页珍藏版)》请在沃文网上搜索。
1、 用单片机实现温度远程显示摘 要:文章介绍了用AT89S8252单片机的串行接口与智能温度巡回检测仪(XJ-08S)通过RS485总线相互通讯实现热水温度远程显示的一种低成本解决方案,内容涉及RS485总线通讯、单片机驱动数码管显示、数据转换以及键盘处理软硬件设计等内容。关键词:单片机 RS485总线 数码管显示 数据转换 键盘处理Key words:chip microcomputer RS485 bus LED display Data ConversionTo deal with keyboard一、前 言目前检测温度一般采用热电偶或热敏电阻作为传感器,这种传感器至仪表之间一般都要用专用
2、的温度补偿导线,而温度补偿导线价格很贵,并且线路太长也会影响测量精度。在实际应用中往往需要对较远处(1KM左右)的温度信号进行监视。现有的解决方案有很多,例如:1、 在现场用智能仪表对温度信号进行测量,用计算机作上位机与智能仪表进行通讯来实现远程温度监测(采用这种方案要增加计算机设备及相关计算机软件)。2、 NCU+DDC实现远程温度监测。用两个DDC,一个安装在现场测量温度,另一个安装在监视地,两个DDC通过NCU进行通讯从而实现远程温度监测。但以上方案都存在成本高的问题,有没有低成本的解决方案呢?其实,在单片机应用日益广泛的今天,完全可以用单片机以极低的成本来实现远程温度监测。二、控制要求
3、及解决方案选择 1、 两个热交换站分高低区共安装有8个热交换器,正常水温在45oC至65oC之间;两个热交换站与锅炉房的距离分别为500米和600米左右。2、 要求在锅炉房能以巡回及定点两种方式显示8个热交换器的热水温度,巡回方式以3秒为周期轮流更新及显示各热交换器热水温度。定点方式时每按上键或下键一次则显示上或下一个热交换器热水温度,每3秒自动更新数据一次。3、 根据控制要求选择单片机+智能仪表的解决方案:用带通讯接口的智能仪表安装在现场测量温度,设计制作一个单片机装置完成与智能仪表的通讯及数据显示。三、通讯协议、智能仪表选择及其参数介绍因热水温度信号变化较慢,因而对通信的速度要求不高,对于
4、这种低速率远距离的通讯选用RS-485总线适宜。RS-485是EIA(美国电子工业联合会)在1983年公布的新的平衡传输标准,是工业界使用最为广泛的双向、平衡传输线标准接口,它以半双工方式通信,支持多点连接,传统驱动器允许创建多达32个节点的网络,且其具有传输距离远(最大传输距离为1200M),传输速度快(1200M时为100KBPS)等优点。其连接方法如下图所示。发送器接收器接收发送器120120为了满足现场温度检测及与单片机装置通讯的要求,必须选择至少有5个温度检测点及具有RS485通讯端口的智能仪表。经过对市场上常用的温度检测仪进行分析,选择由重庆川仪十八厂生产的XJ-08S型巡回检测仪
5、作现场测量仪表。(一)该仪表主要特点如下:1、 多量程方式,热电偶、热电阻,1-5V标准信号混合输入,可通过键盘进行设置;2、 最多8个测量通道(能测量8个温度信号);3、 采用RS-485通讯标准,可将各通道最新数据向上位机传送。(二)XJ-08S巡回检测仪通讯协议1、通讯口设置l 通讯方式:RS-485标准电平l 同步方式:起停同步方式l 波特率:9600BPSl 通讯距离:不大于1200Ml 通讯线:二线l 数据代码:ASCII码l 数据格式:每字符10位,1个起始位,8个数据位,1个停止位2、 数据传输格式l 地址:2字节(高字节在前,低字节在后);l 数据:按地址顺序,仪表数据传输格
6、式为十六进制2字节定点数;2字节定点数=低字节高4位(ASCII码)+低字节低4位(ASCII码)高字节高4位(ASCII码)+高字节低4位(ASCII码)若数据为负数,则采用补码方式传输;l 在传输实时测量值时,传输完2字节定点数后,紧接着又传输2字节定点数,其中高字节低4位为小数点位数。例:(50.0)10 表示为 46 34 30 31 30 30 30 31 低字节 高字节 小数位数3、 仪表通讯格式:DE帧类型帧数据CRCCRl :通讯起始符l DE:仪表设备号(地址)l 帧类型:操作命令l 帧数据:各种操作命令所对应的命令及数据l CRC:校验字节(除外CRC之前的其他几个字节的异
7、或值)l CR:结束符(回车符)4、应用中用到的命令及数据格式:l 读仪表全部动态数据命令帧 DE RD CRC CRl 命令回送帧正确DE RD 帧数据 CRC CR错误DE * * CRC CR例:读28号仪表的全部动态数据命令:1CRD64,0D(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 XXXX XXXX XXXX XXXX XXXX XXXX XXXX第3通道第
8、4通道第5通道第6通道XXXX XXXX XX,0D第7通道校验四、单片机选择及硬件电路设计1、 选用ATMEL公司生产的AT89S8252-24PC单片机,其主要参数及特点如下:l 与MCS-51产品兼容(其引脚图见原理图)l 具有8K字节可擦写的FLASH内部程序存储器,可擦写1000次;2K字节EEPROM,可擦写100,000次,SPI口(用PC机的并口连接条线即可通过SPI口下载程序,下载软件可从网上下载,这样可节省购买编程器的费用;)。l 256字节RAM,32根可编程I/O线,可编程串行口,内置看门狗。与看门狗有关的特殊功能寄存器WMCON 地址= 96H,与看门狗有关的控制位为
9、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, #2 2、按键设计:为方便使用,设计了三个按键,分别为巡回/定点切换键、上键、下键。切换键用于巡检与定点模式的切换,上键向上切换通道,下键向下切换通道;其中巡检/定点切换键通过外部中断1以中断方式工作,中断程序将巡回
10、/定点标志取反后直接跳到主程序中巡回/定点标志判断程序前运行,由判断程序完成巡回/定点的切换。按键信号由单片机P3.3,P3.4,P3.5引脚输入。3、显示电路设计为方便观察,选用三个二位共阳级8段数码显示管(TOD5201AE)动态显示,一位显示仪表地址(从A至F),一位显示通道号(从0至7通道),其余四位用来显示实时温度值;用单片机P1口驱动一片74HC244以吸收电流的方式控制段码,用单片机P0.0至P0.5引脚驱动六个三极管(9012)控制位选。4、电源选用5V/1A市售成品开关电源。5、 根据智能仪表通讯协议的要求,串行口定义为方式1工作,一帧10位:1个起始位、8个数据位、一个停止
11、位;用一片75176完成数据的发送与接收,由于RS-485为半双工,故用单片机P3.2引脚控制发送与接收的切换;两个智能仪表处于RS-485总线的两个端点,为提高可靠性,在RS-485总线的两个端点上分别并联一个120、1/4W终端电阻。l 系统方框图如右示:l 单片机装置电原理图见下页:巡回/定点下仪表地址通道号实时温度巡回/定点下仪表地址通道号实时温度ABGnd上热水温度远程显示器A B Gnd120XJ-08S 巡回检测仪AA B Gnd120XJ-08S 巡回检测仪B765定时值00016ms00132ms01064ms011128ms100256ms101512ms1101024ms
12、1112048ms看门狗溢出时间表五、单片机软件设计说明及程序流程图为方便调试,采用模块化编程,共分1个主模块及5个子模块,各模块功能说明及流程图如下(源程序见附录):1、 主模块(rand_main.a51)上电后程序显示初始化标志并等待3秒,然后进入巡回模式,自动检测地址为A(10)至F(15)的智能仪表,对在线的仪表及已使用通道以3秒为周期自动巡回读取实时温度并送数码管显示,仪表未在线或未用通道则自动跳过;定点模式时根据上、下按键情况自动向前或向后移动一个通道后等待下一次按键(向上至最高通道号时跳到上一个仪表的最低在用通道,向下至最低通道号时跳到下一个仪表的最高在用通道);等待期间以3秒
13、为周期读取当前仪表当前通道实时温度并送数码管显示,另外,为了区分巡回、定点工作模式,定点工作模式时最低位数码管以约0.5Hz的频率闪烁显示。当检测到巡回/定点切换键按下时自动在巡回及定点模式间转换,当检测到温度值低于199.9度时显示-199.9度。YD_N100=仪表地址TD_N=通道号YN开始上电初始化置SP巡回/定点标志=1? #0ah=yd_n100,#0=td_n清闪烁、调用命令发送模块接收正确吗?调用数据转换程序 正常吗?YN送显示并延时3秒Td_n+1=td_nTd_n=8?YN0=Td_nNYYd_n100+1=yd_n100Yd_n100=10h?0ah=yd_n100sta
14、rtTd_n=0?开外部中断1并置最低位闪烁清软硬看门狗2秒定时到?下键?上键?NNNYYY调用命令发送程序调用数据转换程序正确吗?正确吗?送显示YNNY7=td_nYd_n100-1=yd_100Yd_n100=9?0fh=yd_100NNYYTd_n-1=td_n调用命令发送程序正确吗?正确吗?调用数据转换程序NYYN送显示、置2S定时初值上键处理流程与下键相似,此处从略。NY主模块流程图见下页:2、数据转换子模块(rand_data.a51)功能:本模块先将ASCII码转换成BIN码,然后将BIN码转换成BCD码并将数据转换成可直接显示的格式入口:a=通道号出口:r1=个位,r2=十位,
15、r3=百位,r4=千位(显示数据)a=非0表示该通道未用注:本子模块中直接将小数点信息加到相应位数据上,如需在某位显示小数点,则将该位数据加10H,显示子模块根据此信息显示小数点。各子程序功能介绍:l bcd2_bcd1:将r3,r4中的4位bcd码由低至高分别存入r1,r2,r3,r4中;l ascii4_bcd3:将(r0)为首地址的字节ascii码转换成bcd码并将bcd码由低至高依次存放在r3,r4,r5中,r3,r4中各存放2位bcd码,r5中存放一位bcd码;l bin_bcd:将r1,r2中的bin码转换成bcd码并将bcd码由低至高依次存放在r3,r4,r5中,r3,r4中各存
16、放2位bcd码,r5中存放一位bcd码;l ascii4_bin2:将(r0)为首地址的字节ascii码转换成2位bin码存放在r1(低字节),r2(高字节)中;注:(r0)指r0中内容l ascii_bin:将(r0)为地址的一位ascii码转换成bin码存中。(高级子程序调用低级子程序以实现更强的功能,源程序中对各子程序有较详细的注释,故此处仅画出主流程图)3、显示、软件看门狗、20ms定时器子程序(rand_disp.a51)功能:通过定时器0以1MS为周期动态显示缓冲区中的内容;同时完成20ms定时器及软件看门狗计数;当软件看门狗定时器溢出时自动复位。入口:以disp_buf为首地址依
17、次存放从个位至十万位待显示数据,以disp_wc为首地址(位地址)依次存放个位至千位闪烁控制位信息,为0常亮,为1闪烁.开始计算通道数据首地址调用数据转换程序还原小数位数存R6BCD码超过5位吗? 该通道数据为0X0ffff吗?返回该通道未用信息YYNN退出转换成可显示数据存R1-R4有效位前的零消除处理返回数据正确信息负数处理,当数据小于-199.9时显示-199.9出口:wdt中存放软件看门狗计数值,time_20ms中存放20ms的计数值。Wdt溢出时跳至程序存储器0000单元T0中断入口保护现场显示码表地址=dptrDisp_s_c取反Disp_c+1=disp_cDisp_c=R0D
18、isp_s-1=disp_s,Disp_s=0?YN个位数据及闪烁信息=A,Ca闪闪烁 NR0=1?Y十位数据及闪烁信息=A,Ca闪闪烁 百位数据及闪烁信息=A,Ca闪闪烁 千位数据及闪烁信息=A,Ca闪闪烁 万位数据=A a闪闪烁 十万位数据=A a闪闪烁 百万位数据=A (未用)a闪闪烁 千万位数据=A (未用)a闪闪烁 NR0=2?YNR0=3?YNR0=4?YNR0=5?YNR0=6?YNR0=7?YNR0=8?Yl 将定时器0设定为模式1定时工作,每ms产生一次中断,即显示一位,每10ms 6位数据轮流显示1ms;为进一步提高可靠性,在该模块中设计了软件看门狗,实现方法见源程序。模块
19、流程图如本页所示:输出处理a闪闪烁 Disp_c=10?NY0=disp_c20ms计数处理软看门狗计数溢出YN跳至0000Ha闪闪烁 恢复现场闪闪烁 T0中断返回、命令发送及接收控制子模块(rand_send.a51)功能:发送命令缓冲区中命令并等待接收完毕,然后检查接收到的数据,接收错误则重发命令,达到设定的次数仍错则存入错误码后退出.入口:A=仪表地址开始清除命令及接收缓冲区设置允许错误次数计算仪表命令偏移地址,取出命令及送入命令缓冲区校验通过?YN发送命令在80ms内检测到正在接收标志?YN在200ms内检测到接收结束标志?YN接收到命令错信息? YN返回命令错信息允许错误次数-1允许
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实现 温度 远程 显示
