单片机DS18B20数字温度计C程序实现
需积分: 9 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液晶显示屏和几个按键,用户可以方便地监控和管理温度信息。
2010-07-12 上传
2023-05-31 上传
2023-05-14 上传
2023-06-10 上传
2023-06-10 上传
2023-05-11 上传
2023-05-28 上传
tongxinjishu0
- 粉丝: 0
- 资源: 3
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全