温度检测单片机c语言程序设计,基于STC89C52单片机的温度检测系统设计

摘要:为了检测现场温度,并直观反映其变化趋势,设计了基于STC89C52单片机的温度检测系统。利用数字温度传感器DS18B20采集温度信号,该信号送入STC89C52单片机处理,后由液晶显示器LCD12864(ST7920)显示温度值,并绘制出温度变化曲线。实测结果表明,系统可靠性、测试精度及温度趋势曲线绘制达到设计要求。

关键词:STC89C52单片机;DS18B20;LCD12864(ST7920);温度检测系统

0 引言在某些检测领域将被测温度数字化显示还不足以完全反应其变化过程和变化规律,而绘制出趋势曲线是有效方法之一。其中一种解决方案是将单片机作为下位机采样现场温度,将其上传给PC机绘制曲线。有鉴于点阵型图形液晶显示器成本逐年降低、显示容量越来越大、工耗越来越小、而且可以方便地与单片机接口,本文设计了一种温度检测系统。利用DS18B20采集温度,LCD12864(ST7920)液晶显示器直接与STC8 9C52单片机接口,在LCD12864(ST7920)上显示被测温度和温度曲线。

1 系统组成系统主要由单片机STC89C52,温度传感器DS18B20,点阵型液晶显示器LCD12864(ST7920),键盘电路和报警电路组成(如图1所示)。

895dfa353714874b808d456800b25160.png

STC89C52用于实现算法、是整个系统的主控核心;LCD12864用于显示实测温度、温度曲线、时间和日期等参数;DS18B20用于温度采集;键盘电路用于设定相关参数(上下限温度值、时间);报警电路用于温度超限报警。

2 主要硬件设计

2. 1 STC89C52单片机系统STC89C52单片机系统由单片机,时钟电路,复位电路组成。单片机系统如图2所示。

f3551c6527f8beee5e34f0a3442033fa.png

STC89C52单片机具有抗干扰性能强、速度快、功耗低和指令代码完全兼容8051单片机等特点

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于Arduino单片机温度检测记录系统设计代码,供您参考: ```C++ #include <Wire.h> //I2C通信库 #include <LiquidCrystal_I2C.h> //LCD显示库 #include <OneWire.h> //1-wire通信库 #include <DallasTemperature.h> //温度传感器库 #define ONE_WIRE_BUS 2 //定义1-wire总线连接的Arduino引脚 #define LCD_ADDRESS 0x27 //定义LCD显示器的I2C地址 #define LCD_COLS 16 //定义LCD显示器的列数 #define LCD_ROWS 2 //定义LCD显示器的行数 OneWire oneWire(ONE_WIRE_BUS); //定义1-wire总线 DallasTemperature sensors(&oneWire); //定义温度传感器对象 LiquidCrystal_I2C lcd(LCD_ADDRESS, LCD_COLS, LCD_ROWS); //定义LCD显示器对象 void setup() { Serial.begin(9600); //初始化串口通信 lcd.init(); //初始化LCD显示器 lcd.backlight(); //打开LCD背光 sensors.begin(); //初始化温度传感器 } void loop() { sensors.requestTemperatures(); //请求获取温度 float tempC = sensors.getTempCByIndex(0); //获取摄氏温度 float tempF = sensors.getTempFByIndex(0); //获取华氏温度 lcd.setCursor(0, 0); //设置LCD光标位置 lcd.print("Temp:"); //显示“Temp:”文字 lcd.setCursor(6, 0); //设置LCD光标位置 lcd.print(tempC); //显示摄氏温度 lcd.print((char)223); //显示温度符号 lcd.print("C"); //显示摄氏度单位 lcd.setCursor(0, 1); //设置LCD光标位置 lcd.print("Temp:"); //显示“Temp:”文字 lcd.setCursor(6, 1); //设置LCD光标位置 lcd.print(tempF); //显示华氏温度 lcd.print((char)223); //显示温度符号 lcd.print("F"); //显示华氏度单位 Serial.print("Temp: "); //输出串口信息 Serial.print(tempC); //输出摄氏温度 Serial.print("C "); Serial.print(tempF); //输出华氏温度 Serial.println("F"); delay(5000); //延时5秒 } ``` 这段代码实现了使用Arduino单片机连接温度传感器,并将温度值显示在LCD屏幕和串口终端中。您可以根据自己的需求进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值