DS18B20度传感器电路设计(参考).docVIP

  • 19
  • 0
  • 约 11页
  • 2016-10-09 发布于广东
  • 举报
DS18B20度传感器电路设计(参考)

关键词:单片机AT89C51;温度传感器DS18B20;数码显示 实现功能:可以测得的温度范围0~125度 并显示一位小数 有报警功能 当15度T30度时 两个都灯不亮 (默认上限温度为30 下限温度为15) 当T30度时 红灯亮 T15度时 绿灯亮 有调整上下限温度功能 按下相应按钮可以调整报警温度范围 元件清单 AT89C51单片机芯片 1块 DS18B20温度传感器 1个 4位共阳极数码管 1块 红色发光二极管 1个 绿色发光二极管 1个 八分之一W 1K电阻 10个 1W 4.7K电阻 1个 弹性开关 3个 本方案设计的系统由单片机系统、数字温度传感器、LED显示模块、按键控制模块、温度报警模块组成,其总体架构如下图1. 图1 系统总体方框图 DS18B20性能 1独特的单线接口仅需一个端口引脚进行通信 2简单的多点分布应用 3无需外部器件 4可通过数据线供电 5零待机功耗 6测温范围-55~+125℃,以0.5℃递增 7可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃ 8温度数字量转换时间200ms,12位分辨率时最多在750ms内把温度转换为数字 9应用包括温度控制、工业系统、消费品、温度计和任何热感测系统 10负压特性:电源极性接反时,传感器不会因发热而烧毁,但不能正常工作。 DS18B20外形及引脚说明 图3 DS18B20外形及引脚 GND:地 DQ:单线运用的数据输入/输出引脚 VD:可选的电源引脚 存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际 温度。 例如+125的数字输出为07D0H 实际温度=07D0H*0.0625=2000*0.0625=125℃。 例如-55℃的数字输出为FC90H 实际温度=370H*0.0625=880*0.0625=55℃。 可见其中低四位为小数位。 DS18B20温度数据表 AT89C51 AT89C51单片机 Atmel公司的生产的AT89C51单片机是一种低功耗/低电压、高性能的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,片内集成4K字节可改变程序Flash存储器,具有低功耗,速度快,程序擦写方便等优点,完全满足本系统设计需要。单片机P2^2口作为ADC0809转换数据的输入端。P0的输出信号作为数码管的显示,P2.4~P2.7则作为4个数码管的位选信号控制,P2^0,P2^1,作为报警装置的输出。 仿真图 源程序 #include reg51.h #define uint unsigned int #define uchar unsigned char //宏定义 sbit p2_4=P2^4; sbit p2_5=P2^5; sbit p2_6=P2^6; sbit dp=P0^7; sbit p2_7=P2^7; sbit DQ=P2^2; //定义DS18B20总线I/O sbit SET=P3^1; //定义选择调整报警温度上限和下限(1为上限,0为上限) /****P3.2和P3.3为调整温度报警增加键和减少键******/ sbit HONGDENG=P2^0; sbit LVDENG=P2^1; //定义亮灯 signed char m; //温度值全局变量 bit sign=0; //外部中断状态标志 signed char shangxian=30; //上限报警温度,默认值为30 signed char xiaxian=15; //下限报警温度,默认值为15 uchar code

文档评论(0)

1亿VIP精品文档

相关文档