DS18B20温度传感器与单片机的接口电路.docVIP

DS18B20温度传感器与单片机的接口电路.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DS18B20温度传感器与单片机的接口电路.doc

最佳答案 第2章 硬件电路详细设计 DS18B20的性能特点:1、采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),2、测温范围为-55-+125℃,测量分辨率为0.0625,3、内含64位经过激光修正的只读存储器ROM,4、适配各种单片机或系统机,5、用户可分别设定各路温度的上、下限,6、内含寄生电源。温度传感器DS18B20连接方式:在寄生电源供电方式下,DS18B20从单线信号线上汲取能量,在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。如图2.3所示。 2.4 复位电路的设计 本设计采用人工复位,将一个按扭开关并联于上电自动复位电路按一下开关就在RST端出现一段时间的高电平,即器件复位。 2.5 晶振电路的设计 2.6 DS18B20温度传感器与单片机的接口电路 DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。 当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。 2.7 温度测量系统整体硬件电路 Wei1 BIT P3.0 ;;数码管第1位 Wei2 BIT P3.1 ;;数码管第2位 Wei3 BIT P3.2 ;;数码管第3位 Wei4 BIT P3.3 ;;数码管第4位 Dian EQU 20H ;;小数点状态状态保存字节 DisData1 EQU 30H ;;第1位显示数据 DisData2 EQU 31H ;;第2位显示数据 DisData3 EQU 32H ;;第3位显示数据 DisData4 EQU 33H ;;第4位显示数据 DisTime EQU 34H ;;设置显示几次后读取温度值 ;;温度数据存储单元标号定义 TempL EQU 35H ;;温度高位 TempH EQU 36H ;;温度低位 ;;与DS18B20通迅部分存储单元及标号定义 DS18B20 BIT P1.0 ;;与DS18B20通迅的位地址 RFail BIT 21H.0 ;;复位失败标记 Var EQU 22H ;;变量字节,温度数据处理时用到 Var2 EQU 3FH ;;变量字节 主程序部分: ORG 00H LJMP START ORG 100H START: ;;-----初始化 MOV SP,#60H ;;初始化堆栈指针 Set18B20:;;-----DS18B20初始化 ;;DS18B20复位 ACALL Reset JB RFail,LOOP ;;复位失败则直接跳至显示部分 ;;对DS18B20发出Skip ROM命令 MOV A,#0CCH ACALL Write ;;对DS18B20发出温度转换命令 MOV A,#44H ACALL Write SetDisT:MOV DisTime,#3 ;;设置下一个循环体的循环8次 LOOP: ACALL Display ;;显示 JB RFail,Set18B20 ;;DS18B20复位失败时,在显示完一次后重新复位 DJNZ DisTime,LOOP JNB DS18B20,$ ;;判断DS18B20是否已完成温度转换 ACALL GetTemp ;;从DS18B20读出温度值 ACALL DealTemp ;;温度值处理 ACALL SendDisDT ;;根据当前系统状态设置显示内容 SJMP SetDisT ;;;;;;; ;;根据当前状态给显示模块设置显示参数 SendDisDT: MOV Dian,#7FH ;;最高位为0代表显示小数点 ;;传送温度值 MOV A,TempH ;;送高位数据 MOV VAR,TempL ;;送低位数据 ACALL TransData RET ;;A中保存高位值,Var中保存低位值 TransData: ;;取个位值 MOV B,#10 DIV AB MOV DisData2,B ;;取十位值 JZ HavNot1 ;;判断商是否为0 MOV B,#10 DIV AB MOV DisData3,B JZ HavNot2 ;;判断商是否为0

文档评论(0)

phljianjian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档