单片机DS18B20数字温度计C程序实现

需积分: 9 1 下载量 162 浏览量 更新于2024-09-14 收藏 7KB TXT 举报
"这篇资源是关于使用C语言编写单片机控制的数字温度计程序,主要涉及了DS18B20温度传感器的数据读取、1602液晶显示屏的控制以及按键操作。" 在该程序中,首先包含了必要的头文件`<reg52.h>`和`<intrins.h>`,并定义了一些通用无符号字符(uchar)和无符号整型(uint)的别名。接着,使用`sbit`关键字定义了单片机P2和P3口上的引脚,这些引脚将用于控制1602液晶显示屏的RS、LCDEN端以及几个功能键,如增加键、减少键和闹钟查看键。此外,`#define`语句定义了一个简短的延时函数`delayNOP()`,用于微秒级别的延时。 程序中还定义了与温度显示相关的变量,如`ucharTemp_Disp_Title`用于存储"CurrentTemp:"字符串,`ucharCurrent_Temp_Display_Buffer`用于显示"TEMP:",`uchartemp_data`和`uchartemp_alarm`分别存储当前温度和报警温度的数值,以及`uchardisplay`和`uchardisplay1`用于在1602液晶显示屏上显示这些数据。`ucharcodedf_Table`是一个查表数组,用于将二进制数据转换为对应的BCD码以便于显示。 `ucharCurrentT`变量用于存储当前获取的温度值,`ucharTemp_Value`数组则存储DS18B20温度传感器返回的温度数据。`ucharDisplay_Digit`数组用于存储显示的每一位数字,便于在1602液晶屏上动态更新。`bitDS18B20_IS_OK`标志位用于检查DS18B20传感器是否正常工作。 程序中的`delay1()`函数是一个简单的延时函数,通过循环来实现一定时间的等待。这种延时函数在单片机编程中常用来控制程序的执行速度,确保各个操作之间有足够的间隔。 此外,程序还应包含读取DS18B20温度传感器数据的函数、液晶显示屏初始化和数据显示的函数,以及处理按键输入的函数等。这些部分虽然在提供的代码中没有给出,但它们是实现数字温度计功能的关键部分。DS18B20传感器的通信通常基于1-Wire协议,它允许单片机通过一根线与传感器交互,读取温度值。液晶显示屏的控制则涉及到写指令和数据到LCD的特定地址,以显示预设的文本或数值。 这个C程序的目标是构建一个能够实时显示环境温度,并且具备设定报警温度和查看闹钟状态功能的单片机数字温度计。通过结合DS18B20传感器、1602液晶显示屏和几个按键,用户可以方便地监控和管理温度信息。