tag 标签: 18b20

相关博文
  • 热度 34
    2013-2-18 11:28
    1729 次阅读|
    1 个评论
    C51 18b20 温度测试(源程序)
  • 热度 25
    2012-6-14 16:11
    3480 次阅读|
    4 个评论
    一、目的与要求 利用 DS18B20 温度传感器实现温度测量,可以对多点温度进行实时测量。对实际测量精度进行测试与分析。 二、实验内容    1 、方案确定    用 atmega16 单片机和三个 18B20 实现多点测温,并将测温结果在 1602 液晶上显示,将温度的限值存放在单片机的 EEPROM 中,可避免系统数据的掉电不丢失,每次上电都要从 EEPROM 中读取相应的温度限值,当温度超过上下限值时用 1602 液晶显示相关字符进行报警。三个 18B20 连接在一个端口上,通过主机发送相应的命令来实现对每个温度传感器的控制。       2 、系统框图 其中 EEPROM 为单片机内置的 512 字节的掉电不丢失存储器。   3 、 1602 液晶的使用说明   1602 液晶的命令端口连接的是单片机上的 PA5 , PA6 , PA7 ,数据端口为 PD 口,通过控制单片机给 1602 液晶相应的命令来实现显示相应的字符。部分代码对应的指令见附录一; 4 、 18B20 温度传感器使用介绍 DS18B20 是美国 DALLAS 公司推出的一款单线数字温度传感器。它具有:体积小,功耗低,精度高,可靠性好,易于单片机接口等优点,每片 DS18B20 都有唯一的一个可读出的序列号,同时 DS18B20 还采用了寄生电源技术,可以不用外接电源。综合以上特点, DS18B20 特别适合于多点测温系统。 封装图如下: 18B20 具有如下特点: Ø   适应电压范围更宽,电压范围: 3.0 ~ 5.5V ,在寄生电源方式下可由数据线供电 Ø   独特的单线接口方式, DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯 Ø   支持多点组网功能,实现组网多点测温 Ø   在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 Ø   温范围- 55℃ ~+ 125℃ ,在 -10 ~ +85℃ 时精度为± 0.5 ℃ Ø   可编程的分辨率为 9 ~ 12 位,对应的可分辨温度分别为 0.5℃ 、 0.25℃ 、 0.125℃ 和 0.0625℃ ,可实现高精度测温 Ø   在 9 位分辨率时最多在 93.75ms 内把温度转换为数字, 12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快 Ø   测量结果直接输出数字温度信号,以 " 一线总线 " 串行传送给 CPU ,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力 Ø   负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 相关指令代码见附录二 5 、程序流程图 主程序流程图 : 18B20 温度转换流程图: 6 、系统主程序 /* 使用 1602 液晶显示三点测温,时钟为 16MHz ,三个 18B20 共用一个端口,将温度限值存放到 EEPROM 中,当温度超过或低于限值时, 1602 显示 Warning 报警 见附件
  • 热度 26
    2012-1-6 10:47
    2568 次阅读|
    1 个评论
    在网上搜索了很久,18B20的CRC校验只有C51的,没有发现A51汇编子程序,只好自己动手。入口:8字节数据在40H——47H,出口:CRC校验结果在B中。子程序如下:(有更精简的朋友请留言) calibration:   MOV  B,#0   MOV  R0,#40H   calib_0:   MOV  R6,#8   MOV  A,@R0   calib_1:   RRC  A   PUSH ACC   MOV  A,B   RR  A   MOV  B.7,C   XRL  B,A   MOV  C,B.7   MOV  ACC.7,C   MOV  B.3,C   MOV  B.2,C   XRL  B,A   MOV  C,B.3   MOV  ACC.3,C   MOV  C,B.2   MOV  ACC.2,C   MOV  B,A     POP  ACC   DJNZ R6,calib_1   INC  R0   CJNE R0,#48H,calib_0   RET  
相关资源