Advertisement

基于C51单片机的LCD1602与DS18B20温度传感器驱动源码及KEIL工程文件.zip

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本资源提供了一个基于C51单片机控制LCD1602显示及通过DS18B20温度传感器测温的完整项目,包含源代码和KEIL开发环境配置文件。 LCD1602显示屏与DS18B20测温C51单片机驱动源码KEIL工程文件可以作为学习设计的参考。 ```c void main(){ LCD1602_Init(); //初始化LCD1602 DS1302_Init(); //初始化DS1302 LCD1602_write_com(0x80); LCD1602_write_word(Welcome to use!); Temp_Buffer = Get_temp(); //读取DS18B20的值 Delay_ms(1000); LCD1602_write_com(0x01); //清屏 while(1) { DS1302_GetTime(&DS1302Buffer); //获取当前RTCC值 if(Flag_Time_Refresh == 1 && Flag_KEY_Set == 0){ //数据更新时才刷新LCD Flag_Time_Refresh = 0; Display_RTCC(); //显示实时时钟 Display_Temp(); //获取并显示温度值 } Scan_Key(); //按键扫描 switch(KEY_NUM) { case 1: KEY_NUM = 0; //清空按键标志 Flag_KEY_Set = ~Flag_KEY_Set; //设置按键标志位翻转 if(Flag_KEY_Set){ LCD1602_write_com(0x0d); //LCD1602指针闪烁开 LCD1602_write_com(0x80+ 3); //指针设置到第一行第4列 KEY2_Count = 0; //按键S2计数清零 } else { LCD1602_write_com(0x0c); //LCD1602指针闪烁关 } break; case 2: KEY_NUM = 0; //清空按键标志 if(Flag_KEY_Set){ //在设置状态时运行 KEY2_Count++; if(KEY2_Count == 7) KEY2_Count = 0; switch(KEY2_Count){ case 0: LCD1602_write_com(0x80+ 3); //指针指向年,闪烁 break; case 1: LCD1602_write_com(0x80+ 6); //指针指向月,闪烁 break; case 2: LCD1602_write_com(0x80+ 9); //指针指向日,闪烁 break; case 3: LCD1602_write_com(0x80+ 15); //指针指向星期,闪烁 break; case 4: LCD1602_write_com(0x80+ 0x40 + 1); //指针指向小时,闪烁 break; case 5: LCD1602_write_com(0x80+ 0x40 + 4); //指针指向分钟,闪烁 break; case 6: LCD1602_write_com(0x80+ 0x40 + 7); //指针指向秒钟,闪烁 break; default : break; } } break; case 3: KEY_NUM = 0; //清空按键标志 if(Flag_KEY_Set){ //在设置状态时运行 switch(KEY2_Count){ case 0: DS1302Buffer.Year++; if(DS1302Buffer.Year > 99) DS1302Buffer.Year = 70; break; } } break; } } ``` 以上代码展示了LCD驱动初始化、时间获取显示和温度读取,以及按键设置功能的实现。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • C51LCD1602DS18B20KEIL.zip
    优质
    本资源提供了一个基于C51单片机控制LCD1602显示及通过DS18B20温度传感器测温的完整项目,包含源代码和KEIL开发环境配置文件。 LCD1602显示屏与DS18B20测温C51单片机驱动源码KEIL工程文件可以作为学习设计的参考。 ```c void main(){ LCD1602_Init(); //初始化LCD1602 DS1302_Init(); //初始化DS1302 LCD1602_write_com(0x80); LCD1602_write_word(Welcome to use!); Temp_Buffer = Get_temp(); //读取DS18B20的值 Delay_ms(1000); LCD1602_write_com(0x01); //清屏 while(1) { DS1302_GetTime(&DS1302Buffer); //获取当前RTCC值 if(Flag_Time_Refresh == 1 && Flag_KEY_Set == 0){ //数据更新时才刷新LCD Flag_Time_Refresh = 0; Display_RTCC(); //显示实时时钟 Display_Temp(); //获取并显示温度值 } Scan_Key(); //按键扫描 switch(KEY_NUM) { case 1: KEY_NUM = 0; //清空按键标志 Flag_KEY_Set = ~Flag_KEY_Set; //设置按键标志位翻转 if(Flag_KEY_Set){ LCD1602_write_com(0x0d); //LCD1602指针闪烁开 LCD1602_write_com(0x80+ 3); //指针设置到第一行第4列 KEY2_Count = 0; //按键S2计数清零 } else { LCD1602_write_com(0x0c); //LCD1602指针闪烁关 } break; case 2: KEY_NUM = 0; //清空按键标志 if(Flag_KEY_Set){ //在设置状态时运行 KEY2_Count++; if(KEY2_Count == 7) KEY2_Count = 0; switch(KEY2_Count){ case 0: LCD1602_write_com(0x80+ 3); //指针指向年,闪烁 break; case 1: LCD1602_write_com(0x80+ 6); //指针指向月,闪烁 break; case 2: LCD1602_write_com(0x80+ 9); //指针指向日,闪烁 break; case 3: LCD1602_write_com(0x80+ 15); //指针指向星期,闪烁 break; case 4: LCD1602_write_com(0x80+ 0x40 + 1); //指针指向小时,闪烁 break; case 5: LCD1602_write_com(0x80+ 0x40 + 4); //指针指向分钟,闪烁 break; case 6: LCD1602_write_com(0x80+ 0x40 + 7); //指针指向秒钟,闪烁 break; default : break; } } break; case 3: KEY_NUM = 0; //清空按键标志 if(Flag_KEY_Set){ //在设置状态时运行 switch(KEY2_Count){ case 0: DS1302Buffer.Year++; if(DS1302Buffer.Year > 99) DS1302Buffer.Year = 70; break; } } break; } } ``` 以上代码展示了LCD驱动初始化、时间获取显示和温度读取,以及按键设置功能的实现。
  • C51DHT11湿.zip
    优质
    这是一个包含使用C51单片机控制DHT11温湿度传感器所需的源代码的压缩文件。适用于学习和开发相关项目。 基于C51单片机的DHT11温湿度传感器驱动程序源代码如下: ```c void main() { TMOD = 0x20; // 定时器T1使用工作方式2 TH1 = 253; // 设置初值 TL1 = 253; TR1 = 1; // 开始计时 SCON = 0x50; // 工作方式1,波特率9600bps,允许接收 ES = 1; EA = 1; // 打开所有中断 TI = 0; RI = 0; SendData(str); // 发送到串口 Delay(1); // 延时100US(假设使用的是12M晶振) while (1) { RH(); // 调用温湿度读取子程序 str[0] = RH_data_H; str[1] = RH_data_L; str[2] = T_data_H; str[3] = T_data_L; str[4] = checkdata; SendData(str); } } ```
  • 51DS18B20
    优质
    本段落介绍了一种针对51单片机与DS18B20温度传感器进行连接和数据读取的驱动程序。该驱动程序简化了硬件接口操作,提供了方便可靠的温控解决方案,适用于各种温度监测应用场合。 51单片机DS18B20单总线温度传感器的例程基于51单片机编写,使用了12MHz晶振来实现温度测量的时序程序。
  • DS18B2051LCD1602显示连接
    优质
    本项目介绍如何使用DS18B20温度传感器通过51单片机读取环境温度,并将数据实时显示在LCD1602液晶屏上,适用于基础物联网温控系统开发。 标题中的“DS18B20温度传感 51的单片机 lcd1602”指的是一个基于51系列单片机的项目,该项目使用了DS18B20数字温度传感器来获取环境温度,并通过LCD1602液晶显示屏进行数据显示。下面将详细解释这三个关键组件及其在项目中的应用。 **DS18B20温度传感器**:这是由达拉斯半导体(现被Maxim Integrated收购)生产的数字温度传感器,能够提供9位到12位的温度分辨率,并且可以直接通过单线接口与微控制器通信。这意味着只需要一根数据线就可以完成数据传输,大大简化了硬件连接。DS18B20的测量范围通常为-55°C到+125°C,适用于各种环境监测应用。 **51单片机**:这是Intel公司开发的一系列8位微处理器,由于其结构简单、易于学习和广泛应用的特点,成为了许多初学者和嵌入式系统开发者的首选。它包括多个型号如AT89C51等,并通常内置RAM、ROM、定时器计数器以及IO端口,可以方便地进行各种控制任务。在这个项目中,51单片机作为主控制器负责接收DS18B20发送的温度数据并处理这些信息。 **LCD1602液晶显示屏**:这是一种常见的字符型液晶显示器,拥有16个字符宽度和两行显示高度,总计可显示32个字符。它通常用于展示简单的文本信息如温度读数。通过并行接口与单片机连接时需要4条数据线及若干控制线(例如RS、RW、E)。在项目中LCD1602的作用是实时显示DS18B20测量的温度值,为用户提供直观的读数。 实现该项目的关键步骤可能包括: **硬件连接**:将DS18B20单线接口与51单片机的一个IO口相连,并确保电源和地线正确。同时,将LCD1602的数据线及控制线连接到单片机相应引脚上。 **固件编程**: 编写用于初始化DS18B20和LCD1602、设置温度传感器分辨率以及周期性读取并显示温度信息的程序代码。 **调试与测试**: 运行编写好的程序,检查LCD1602上的数据显示是否正常,并根据需要调整温度传感器的位置以验证其准确性和响应速度。 通过完成这个项目,参与者不仅可以掌握基本硬件接口技术的应用知识,还能更深入理解嵌入式系统的工作原理。
  • STC51DS18B20LCD1602液晶显示
    优质
    本项目介绍了如何使用STC51单片机通过DS18B20温度传感器采集环境温度数据,并将数据显示在LCD1602液晶屏上,实现简易的温度监测系统。 STC51单片机与DS18B20温度传感器结合使用,并通过LCD1602液晶屏显示温度读数。这一项目展示了如何利用STC51单片机读取DS18B20的温度数据并通过LCD进行直观地展示,为用户提供了实时监控环境温度的功能。
  • DS18B2051.zip
    优质
    本资源包含使用DS18B20温度传感器与51单片机进行温度测量的完整代码及说明文档。适用于初学者学习和实践。 DS18B20温度传感器.zip 和 51单片机代码这两个文件包含了一套用于读取DS18B20温度传感器数据的程序代码,适用于基于51单片机的硬件平台。这些资源可以帮助用户实现对环境温度的有效监测和数据分析。
  • STM32DS18B20读写.zip
    优质
    本资源包含STM32单片机配合DS18B20温度传感器进行温度读写的完整程序源代码,适用于需要实现精准测温功能的项目开发。 STM32单片机读写DS18B20温度传感器的例程软件源码可以作为学习设计参考。该程序的功能如下: 1. 程序先打印出例程LOGO。 2. 打印 DS18B20 的 ROM ID。 3. 显示温度寄存器数值与摄氏度之间的对应关系,以验证数值转换函数的正确性。 4. 循环输出 DS18B20 测得的温度数据(包括寄存器原始数据和换算成十进制有符号数后的摄氏度值)。 在主程序中: ```c int main(void) { // 因为ST固件库启动文件已经完成了CPU系统时钟初始化,因此无需再次配置。启动文件设置了CPU的主频率、内部Flash访问速度及可选外部SRAM FSMC初始化。 bsp_Init(); // 初始化硬件平台相关的设置 PrintfLogo(); // 打印例程LOGO到串口1 bsp_InitDS18B20(); // 配置GPIO以用于与DS18B20通信 } ```
  • DS18B2051
    优质
    本项目旨在介绍如何使用DS18B20温度传感器与51单片机进行温度数据采集。通过详细讲解硬件连接和编程实现,帮助初学者掌握基础的温感技术应用。 温度传感器是各种类型的传感器中最常用的一种。早期使用的模拟温度传感器包括热敏电阻,随着环境温度的变化,它的阻值会发生线性变化。处理器可以采集到该电阻两端的电压,并通过特定公式计算出当前的环境温度。