基于AT89C51单片机最小系统的数字体温计设计.kdh
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《机电技术》2009年第4期 机电研究及设计制造
基于AT89C51单片机最小系统的数字体温计设计
谢延兴
(福州大学机械工程及自动化学院, 福建 福州 350108)
摘 要: 以AT89C51为核心,采用DS18B20为温度采集模块和四位供阴LED 为显示模块的简易数字体温计。 关键词:单片机 DS18B20 体温计
中图分类号:TH77 TM93 文献标识码:A 文章编号:1672-4801(2009)04-060-02
引言
传统的体温计是由水银制成的,存在测温时间长、读数不便等缺点,不方便人们的使用。此外在最近的一些数字体温计的电路制作中,基本上都是用温度传感器采集温度,再经过放大电路的放大,放大后的电压在接入A/D 转换器变成数字信号,最后才输入微控芯片中,经过微控芯片的处理后再输出显示。这样的系统不仅电路比较复杂,而且成本较高。而本文所用的DS18B20则
是一片集成了温度的采集和A/D 转化为一体的芯片,这样不仅使整个系统简单、而且操作灵活,可编程程度大大的提高。
1 系统的硬件部份
本系统采用AT89C51单片机,其各引脚连线如下图1所示。AT89C51通过P1.0与DS18B20进行单总线通信,启动DS18B20温度采集功能并取出转化后的体温数值。最后将体温值显示在外接在P0口与P2口的四位共阴LED
上。
图1 系统引脚连线图
本系统采用的第二个关键芯片是DS18B20。它与单片机的通信采用的是单总线通信协议,由于本系统的采集电路中只用到了一个DS18B20,所以本文主要只介绍单总线通信中的写时序、读时序和DS18B20的相关命令。
写时序:单片机向DS18B20写入逻辑1或0都至少要60us,并且两次独立的“写时隙”之间至少需要1us 的恢复时间。在写逻辑1时:单片机对总线拉低后再15us 之后,单片机再将其拉高至少45us,此时向DS18B20写入逻辑1,在写逻辑0时,单片机对总线拉低至少保持60us,此时向DS18B20写入逻辑0。相应的C 语言程序为:void
wriite_bit(ucharbitbal1) {P1.0=0;if(bitbal1=1)P1.0=1;
delay(6);P1.0=1;}和相应的时序图(如图2)
。
图2 系统写时序图
机电研究及设计制造 《机电技术》2009年第4期
作者简介:谢延兴(1986年-),男,硕士研究生,研究方向:机电系统控制技术。 读时序:在单片机发出读数据指命后,立刻产生读时序,先将总线拉低至少1us ,DS18B20才开始向总线发送逻辑1或0;如果DS18B20发送的是逻辑1则整个时序为高电平,如果发送的是低电平则单片机必须在前15us 内采集总线的电平状态。读时序至少要60us,在时序结束之后DS18B20会释放总线,其相应的时序图如图3。由于本系统在DS18B20的DQ 引脚与单片机相联的引脚之间没有接上拉电阻,所以相应的C 语言程序为:uchar read_bit(){uchar i,j; P1.0=0;P1.0=1; for
(i=0;i<3;i++);j=P1.0return(j);}
图3 系统读时序图
DS18B20的相关命令如表1。
表1 DS18B20的功能命令
命令 描述 代码 温度转换命令
温度转换
启动温度转换
44H
读SRAM
从SRAM 中读取包括CRC 在内的全部字节
BEH
写SRAM
向SRAM 中的字节2、3、4(TH 、TL 和配
置寄存器)写入数据
4EH
复制SRAM 复制SRAM 中的TH 、TL 和配置寄存器的值到E2PROM 中
48H 回读E2
从E2PROM 中将TH 、TL 和配置寄存器的值回读到SRAM 中
B8H 存储器命令
读电源
读取DS18B20的供电方式
B4H
2 系统的软件设计
系统程序一开始就根据单总线通信的ROM 命令向DS18B20发送跳过读ROM 的命令(CCH ),接着向DS18B20发出启动温度转换命令(44H ),然后在开启定时器0和开中断,接着程序就开始判断时间是否经过0.2ms (即DS18B20的温度采集是否成完),同时在这0.2ms 内,四位共阴LED 显示上次DS18B20所采集的体温值(如果是第一次判断0.2ms 则是不显示任何数值),当0.2ms 过去后,向DS18B20发出读
SRAM 命令(BEH )并将新的体温数值显示在LED 中。这就是此系统的程序设计思路,其主程序流程框图如图4所示。
图4 主程序流程框图
3 结论
在本文中采用了数字温度传感器模块和简易的LED 显示模块使得整体电路比较简单,成本较低、但是灵敏度高、反应快而且使用安全,可以作为居家用品,便于日常体温测量。它具有很高的实用性和广大市场。