智能温度检测控制系统设计

该系统基于51单片机,能显示并设置环境温度的上下限阀值,利用按键K1在主界面和设置界面间切换,K2和K3调整阀值。设置的温度值存储于AT24C02EEPROM中,下次启动时自动读取。当实际温度超出设定范围时,系统会自动控制加热或散热,并触发报警。代码中涉及到DS18B20温度传感器、LCD显示、I2C通信等技术。
摘要由CSDN通过智能技术生成

51单片机首先它能显示环境的温度并能设置上下限阀值,这是最基本的功能,系统上电的时候显示的是当前环境温度和设定的温度阀值,我们可以通过按键来修改温度上下限阀值。我们看,按下这个K1键会进入温度阀值设置界面,每按一下,切换一次阀值设置(上下阀值)界面,按第3次时,会自动回到主界面,如此循环。 在进入温度阀值设计界面时,可以通过K2、K3键对阀值进行加减,这里我们只对温度整数部分进行设置, 小数部分我们就不需要了,将设置好的上下限阀值保存到AT24C02(EEPROM)内,当下一次开启系统时只需 从AT24C02内读取保存的阀值数据,而不需要重复设置上下限阀值。这样的话,我们用3个按键就实现了温度上下 限阀值的设定,这是温度检测控制系统基本的功能。假如我们把温度上限设置为32°C,下限设置为30°C。 另外还有恒定温度的功能。当设定好上下限阀值时,系统即会把当前的温度与设定的上下限阀值对比, 如果高于上限温度,开启散热进行降温,同时报警;如果低于下限温度,开启加热,同时报警; 如果当前温度处于下限和上限温度之间时,关闭散热、加热及报警。从而可将温度控制在阀值的范围内。

部分代码   全部在主页

#include "public.h"
#include "lcd.h"
#include "temp.h"
#include "i2c.h"


sbit k3=P3^2;    //设置温度上下限   
sbit k1=P3^4;    //加               
sbit k2=P3^5;    //减              

sbit led=P2^4; //报警指示灯

sbit beep=P1^5;      //蜂鸣器报警
sbit relay=P1^4;  //加热设备
sbit moto=P1^0;   //电机散热


char set_templ=22,set_temph=40;  //设定温度上下限默认值
u16 temp_val;  //检测的实际温度
u8 mode;  //温度模式

void Temp_DataPros()
{
    short temp;
    u8 temp_buf[5];
    temp=Ds18b20ReadTemp();
    temp_val=temp;    
    if(temp<0)
    {
        temp=-temp;
        LCD_Dispstring(2+5,0,"-");
    }
    else
    {
        LCD_Dispstring(2+5,0," ");
    }

    temp_buf[0]=temp/100+0x30;
    temp_buf[1]=temp%100/10+0x30;
    temp_buf[2]='.';
    temp_buf[3]=temp%100%10+0x30;
    temp_buf[4]='\0';
    LCD_Dispstring(2+6,0,temp_buf);         //显示检测的温度xx.x

    temp_buf[0]=set_temph/10+0x30;
       temp_buf[1]=set_temph%10+0x30;
    temp_buf[2]='\0';
    LCD_Dispstring(5,1,temp_buf);      //显示设定的温度上限值xx

    temp_buf[0]=set_templ/10+0x30;
       temp_buf[1]=set_templ%10+0x30;
    temp_buf[2]='\0';
    LCD_Dispstring(14,1,temp_buf);     //显示设定的温度下限值xx
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科创工作室li

你的鼓励将是大学生的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值