DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1711|回复: 0
打印 上一主题 下一主题

[待整理] DS18B20和AT89C2051的家用温度测量器设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-11 16:12:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、设计概况
  本制作采用USB口作为供电端口,用DS18B20温度传感器进行温度信息采集,用AT89C2051单片机进行控制,采用四位共阳数码管显示,从而实现对温度的测量显示(系统框图如图1所示)。本设计可培养学生对单片机学习的兴趣,提高其制作与编程能力。

图1 系统框图
  二、电路原理
  采用PROteUS仿真软件进行原理图设计与程序仿真。电路如图2所示。

图2 电路图
  1、电源
  采用USB口供电,可将USB适配器接人电路板的USB口或直接接计算机USB口。这样,既节省了资源,又能够获得较为理想的工作电压。USB口的外形及电源口定义如图3所示。

图3 USB口的外形及电源口定义
  2、温度信号采集
  采用DS18B20(外形见图4)智能型数字温度传感器作为温度信号采集装置。

图4 DS18B20外形
  (1)DS18B20工作原理
  DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数不同,且温度转换的延时时间由2s减为750ms。DS18B20测温原理如图5所示。其中,低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振的振荡频率随温度变化改变明显,所产生的信号作为计数器2的脉冲输人。计数器1和温度寄存器被预置在-55℃所对应的—个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0日寸,温度寄存器的值将加1,计数器1将重新被装人预置,并重新开始对低温度系数晶振产生的脉冲信号进行计数。如此循环,直到计数器2计数到OH寸停止温度寄存器值的累加。此时,温度寄存器中的数值即为所测温度。图5中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

图5 DS18B20测温原理图
  (2)DS18B20的主要特性
  1)适应电压范围3.0V~5.5V,在寄生电源方式下可由数据线供电。
  2)DS18B20与微处理器之间仅需要—条口线即可双向通讯。
  3)支持多点组网功能,多个DS18B20可以并联在唯—的三线上,实现组网多点测温。
  4)不需要任何外围元件,全部传感元件及转换电路集成在外形如一只三极管的电路内。
  5)测温范围-55℃~+125℃,在-lO℃~+85℃时精度为±0.5℃。
  6)可编程的分辨率为9位~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
  7)在9位分辨率时,最多93.75ms便可把温度转换为数字,12位分辨率时最多750ms便可把温度值转换为数字。
  8)直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
  9)电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
  DS18B20遵循单总线协议,每次测温时必须有初始化、传送ROM命令、传送RAM命令、数据交换等4个过程。
  3、AT89C2051单片机
  采用AT89C2051单片机作为主控元件(参见图2)。
  4、数码管显示
  采用四位共阳数码管进行动态显示,温度显示保留到小数点后一位。编程时,利用P3.2~P3.5作为数码管动态显示的位选端,Pl.0~Pl.7作为数码管动态显示的段选位。当P3.2输出高电平时选中“1”号数码管,P3.3输出高电平时选中“2”号数码管,以此类推。在电路中,P3.2~P3.5外接4只NPN三极管作为驱动。Pl.0~Pl.7外接8只电阻限流。
  三、参考程序
  本设计采用单片机C语言进行编程,限于篇幅,其参考程序此处不一一列出。
  四、制作与调试
  本设计调试较为简单,只要安装、焊接正确,程序编写准确完整,一般较为容易实现功能。
  调试好的实物如图6所示。

图6 实物图
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-2-8 17:17 , 耗时 0.085936 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表