51单片机DS18B20低温测量详解及程序

需积分: 10 3 下载量 26 浏览量 更新于2024-09-15 收藏 50KB DOC 举报
51单片机DS18B20温度测量是一种基于DALLAS公司生产的数字温度传感器在嵌入式系统中的应用。DS18B20是一款一线式温度传感器,它具有3个引脚的TO-92封装,适用于紧凑的空间设计。这款传感器的工作温度范围广泛,可以从-55℃到+125℃,并且可以通过编程调整A/D转换精度,最低可达0.0625℃的测温分辨率。 在硬件方面,该系统的核心是51单片机,比如AT89S51型号,配合一个11.0592MHz的晶振,确保了精确的时间控制。温度传感器与单片机通过一根数据线(DQ)连接,这个引脚用于双向通信,即既能发送命令给DS18B20,也能接收其测量结果。 在软件实现上,程序主要分为几个部分。首先,包含了必要的头文件,如<reg51.h>,这使得程序可以访问单片机的特定寄存器和功能。接下来,定义了一个共阳LED段码表,用于显示温度读数。然后,定义了端口DQ作为数据线,并声明了全局变量tempL、tempH用于存储温度值的低、高位,以及一个浮点型变量temperature来存储最终的温度测量结果。 核心部分是延时子程序,其作用是为通信提供适当的时间间隔,确保测量过程的稳定性和准确性。在函数`void delay(unsigned int k)`中,输入参数k代表一个定时周期,程序会执行一个计数循环,以此来实现指定的延时。 DS18B20的测量流程通常包括以下几个步骤: 1. 初始化:设置单片机的I/O引脚为输出模式,准备好发送起始信号。 2. 发送命令:通过数据线发送寻址命令和特殊功能寄存器地址,指示DS18B20进入测量模式并获取温度数据。 3. 数据采集:等待DS18B20完成测量,然后读取其返回的16位温度值,将其分时存入tempL和tempH。 4. 数据处理:将高低位值组合,根据DS18B20的温度补偿特性进行修正,计算出实际温度值。 5. 显示或记录:将温度值转换为用户可读的格式,并通过LED段码或其他方式显示出来。 在编写实际的51单片机DS18B20温度测量程序时,开发者需要结合上述硬件和软件细节,遵循单片机的I/O操作规范,同时确保程序的错误处理和异常情况处理,以实现准确、稳定的温度测量功能。