欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于单总线的温度实时监控系统(YST).doc

    • 资源ID:31722227       资源大小:49.54KB        全文页数:8页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单总线的温度实时监控系统(YST).doc

    课 程 设 计 报 告 书 专 用 纸基于单总线的实时温度监控系统1 引言基于数字温度传感器构成的实时监控系统确实具有精度高、抗干扰能力强、电路简单等诸多优点,温度传感器得到电缆长度达到几十米都可以正常读取温度数据,并且已经在站长开发的机房安全监控系统中得到了实际考验,那可是要365天从不间断地对机房及相关设备提供实时温度监控。1.1 流程图本系统软件部分采用Delphi来实现初始化、数据采集处理、温度报表管理,其主程序的流程图见图1.图1主程序流程图本系统软件部分共分为3个部分,分别是:1)初始化程序。a设置串行通信波特率;b串行通讯方式的初始化;c对TO,T1两个计数器的初始化;d中断控制程序的初始化。此外,还负责从E2PROM 中调出以前的采样参数,使器件能够以它采样温度数据。2)当监控到ONTIME1和NTIME2标记时作相应温度的存储、转换、发送处理。ONTIME1和NTIME2的标记主要有定时电路决定,当到达采样间隔时,做出相应的处理。3)采用动态显示方式即时显示温度,以节省电路规模,使得整个系统的体积变小。2 硬件电路设计在硬件电路设计时,应着重考虑电子器件的供电方式,以及对器件的限压和限流保护。因为本次设计要求利用单总线技术,所以可以考虑使用寄生供电方式。设计的电路图如下。图2 基于单总线的温度实时监控系统硬件电路总图2。1软件设计2.1.1设计窗体本次设计要求软件的可视化窗体中包含实时温度显示、数据记录、存储管理和ROM数据,并且能将测得的数据保存到指定的数据库中。窗体界面如下.(a)温度计 (b)存储管理(c) 数据记录(d)存储管理(e)ROM数据图3 窗体界面实时温度显示中可以看到当前室温,并且可以显示摄氏温度和华氏温度。数据记录包含温度曲线和温度日志,可以显示一天内的温度变化曲线。存储管理和ROM数据用来对数据库中已经保存的温度数据进行管理,如删除、转移等操作。3 元器件的选择3。1主要元器件知识3.1.1DS18B20DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0。0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。 1) DS18B20的内部结构DS18B20内部结构如图5所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图7所示,DQ为数字信号输入输出端;GND为电源地;VDD为外接供电电源输入端,在寄生电源接线方式时接地,见图5.图4 DS18B20的内部结构图5 DS18B20的管脚排列ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8X5X41).ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。例如125的数字输出为07D0H,25.0625的数字输出为0191H,25.0625的数字输出为FF6FH,55的数字输出为FC90H。 高低温报警触发器TH和TL、配置寄存器均由一个字节的EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存器写入。其中配置寄存器的格式如下:0R1R011111MSBLSBR1、R0决定温度转换的精度位数:R1R0=“00",9位精度,最大转换时间为93.75ms;R1R0=“01”,10位精度,最大转换时间为187.5ms;R1R0=“10”,11位精度,最大转换时间为375ms;R1R0=“11”,12位精度,最大转换时间为750ms;未编程时默认为12位精度。高速暂存器是一个9字节的存储器。开始两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。 2)DS18B20的工作时序DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序,如图6(a)(b)(c)所示。(a)初始化时序(b)写时序(c)读时序图6 DS18B20的工作时序图3)DS18B20与微处理器的连接DS18B20与微处理器的连接如下图7所示.(a)寄生电源工作方式(b)外接电源工作方式图7 DS18B20与微处理器的典型连接图3.1。2DS2480B1) DS2480B主要特性串口UART/RS232至单总线通信协议的转接桥,可直接连到UART和5V RS232系统中, 支持Dallas全系列单总线器件,如数字温度传感器DS18B20、A/D转换器DS2450等;将主机从单总线时序控制中解脱出来,提供规范的、灵活的和强驱动的单总线定时;支持标准UART通信,支持9。6(默认)、19。2、57。6和115.2 kbps速率;具有较强的总线驱动能力,通信距离可达300 m;可编程下拉摆率控制和有源上拉,工作范围 5 V,40 +85 ,8引脚SOIC封装。12348765RXDTXDPOLVPPGND1-WNCVDD2)管脚图及引脚说明图8 DS2480B的封装和引脚DS2480B为8脚贴片式封装,如图8所示。引脚功能如表1所列引脚号引脚名称引脚功能1GND地线21-W单总线输入输出端3NC悬空4VDD4。55。5V电压5VPPEPROM编程电压6POLRXD/TXD选择端7TXD发送端8RXD接收端表1 引脚功能说明DS2480B工作原理框图如图9所示。图9 DS2480B工作原理框图3) DS2480B与RS232的接口技术:DS2480B与RS232的接口如图10所示。图10 DS2480B与RS232的接口图 3。2元件清单序号元件个数1PC机串行口UART/RS2321 个2转接桥DS2480B1 个3数字温度传感器DS18B201 个4电容U07HF1 个5稳压管2 个6二极管M72 个7电路板XF071 个表2 元件清单4 学习心得实训结束了,说长也不长,说短也不短,但是的确难熬。因为每天对着一台电脑,机械着制作、调试。测试成功激动万分,可万一出现一些小问题,那这是像热锅上的蚂蚁,到处乱窜,找老师找同学来帮忙解决,虽然实训过程有些苦,中午都是在机房度过,也没好好吃过一顿好午餐,但是收获还是颇丰.每一门专业的学习都需要理论结合实践,只是有时候学校的教学条件受到限制。但是没关系,对于每一次的实训我们都很珍惜,因为每一次我们都有很多的感受,因为这不仅仅是一次实训,也是对于我们各方面能力的培养,也能证明我们自己的实力。这次实训给我的最大的启发就是学习需要灵活应变,学以致用,更要动脑子去思考问题。因为,对于我个人而言,有些程序的代码我还是看得懂的,但是我没有联系到实际.如果我在实训当中能认真的去思考一些问题,并把操作好好调试几遍,我想问题也就会减少很多.也就是说,知识需活学活用,勤学善思,当然,在以后的生活中、学习中也是如此。5 参考文献1 DS18B20Programmable Resolution1-Wire Digital Thermometer2 DS2480BSerial 1Wire LineDriver with Load Sensor3 左冬红,谢瑞和。实现单总线搜索ROM命令的一种算法4 求是科技。单片机典型模块设计实例导航附:源程序清单-procedure TForm1。ReadTemperature2(session_handle : longint);var tsht, i, tmp1 : smallint; cr,cpc, tmpf,tmp : Extended; rbuf : array0.9 of smallint ; st : longint; CRCByte ,xiaxianbyte: Byte;begin tmp := 0.00; access the device if (TMAccess(session_handle,StateBuf)= 1) then begin Send the recall E2 command (by setting B8 to outbyte in TMTouchByte) make sure Scratch is correct TMTouchByte(session_handle, B8); Send the start T command if (TMAccess(session_handle,StateBuf) = 1) then begin Prepare the strong pullup after next TMTouchByte TMOneWireLevel(session_handle,LEVEL_SET,LEVEL_STRONG_PULL_UP, PRIMED_BYTE); Send the conversion command (by setting 44 to outbyte in TMTouchByte) TMTouchByte(session_handle, 44); Sleep for a second st := GetTickCount + 1000; While (GetTickCount st) do TMValidSession(Session_handle); Disable the strong pullup TMOneWireLevel(session_handle, LEVEL_SET,LEVEL_NORMAL,PRIMED_NONE); verify conversion is complete by setting $01 to outbit in TMTouchBit and check the return value with 1 if (TMTouchBit(session_handle,01) = 01) then begin Access device If (TMAccess(session_handle,StateBuf) = 1 ) then begin Send read scratch command by setting $BE to outbyte in TMTouchByte TMTouchByte(session_handle,BE); CRC8 := 0; Read scratch (setting $FF to outbyte in TMTouchByte) and check crc for each byte for i := 0 to 7 do begin rbufi:= TMTouchByte(session_handle, $FF); CRCByte := Byte(rbufi); the byte to run through CRC8 routine CRC8 := TMCRC(1, CRCByte, CRC8, 0); end; Check crc CRCByte := Byte(TMTouchByte(session_handle, FF); the byte to run through CRC8 routine CRC8 := TMCRC(1, CRCByte, CRC8, 0); if ( CRC8 = 0 ) then begin Calculate the temperarure tsht := rbuf0; if (rbuf1 and 01)= 1) then tsht := tsht or (256); tmp1 := Round((tsht)/2); tmp := tmp1; cr := rbuf6; cpc := rbuf 7; if (rbuf7 <> 0) then tmp := tmp - (0。25) + (cpc-cr)/cpc; if (rbuf1 and F8)= $F8) then BEGIN/温度为负值 END ELSE BEGIN/温度为正值 case (rbuf4 and $60) of $00: begin tmp:=(rbuf1 and $07)*16+(rbuf0 and $f8)/16;/9位分辨率 fenbianlv2 :=9; diwei2 :=(rbuf0 and $f8)/16; end; $20: begin fenbianlv2 :=10; tmp:=(rbuf1 and $07)16+(rbuf0 and fc)/16;/10位分辨率 diwei2 :=(rbuf0 and $fc)/16; end; $40: begin fenbianlv2 :=11; tmp:=(rbuf1 and $07)*16+(rbuf0 and fe)/16;/11位分辨率 diwei2 :=(rbuf0 and fe)/16; end; 60: begin fenbianlv2 :=12; tmp:=(rbuf1 and 07)*16+rbuf0/16;/12位分辨率 diwei2 :=rbuf0/16; end; end; END; tmpf := (tmp * 9 )/5 + 32; label11.caption := '当前实时温度2 : ' + FormatFloat('0.0000,tmp) + ' C or + FormatFloat('0.0000', tmpf) + F; keke2 :=FormatFloat('0.0000,tmp); yuanshi2 := rbuf4; shangxian2 :=rbuf2 and $7f; xiaxianbyte :=rbuf3 and 80; if xiaxianbyte = 1 then xiaxian2 := (rbuf3 and 7f) (-1) else xiaxian2 := rbuf3 and 7f; MessageBeep(0); TMEndSession(session_handle); Done := True; end; end; end; end; end;end;第 8 页 共 8 页

    注意事项

    本文(基于单总线的温度实时监控系统(YST).doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开