怎么去设计一种基于51单片机的便携式恒温箱

发布时间:2023-08-30  

一、功能简介

本项目使用Proteus8.12仿真51单片机控制器,使用报警模块、LCD1602显示模块、DS18B20温度模块、加热制冷模块、按键模块、HC05蓝牙模块等。


主要功能:


系统运行后,LCD1602显示传感器检测的温度值;


可通过按键K3设置恒定温度,K1和K2进行加减调节,恒定温度范围是0-10,设定好后可再次按下K3保存。系统会根据当前温度与目标温度比对,通过PID算法控制加热或制冷工作。若温度高于报警上限或低于报警下限值则蜂鸣器报警。检测温度会实时将数据通过串口传输到手机终端显示。


主要功能如下:


(1)温度实时检测;


(2)LCD1602液晶显示;


(3)手机终端显示;


(4)加热制冷PID调节;


(5)故障报警;


(6)范围0-10°C;


(7)按键设置恒定温度。


二、软件设计


//系统数据获取

void sys_data_get(void)

{

  static u8 i=0;

  while(1)

  {

    //温度获取

    i++;

    if(i%10==0)

    {

      TR0=0;

      sys_ctrl.temp=ds18b20_read_temperture()*10;

      TR0=1;

    }    



    break;

  }  

}



//系统数据显示

void sys_data_show(void)

{

  u8 buf[6];

  u16 temp=sys_ctrl.temp;

  static u8 i=0;



  while(1)

  {

    //温度显示

    if(sys_ctrl.temp >=0)

    {

      buf[0]=' ';  

    }

    else 

    {

      temp=-sys_ctrl.temp;

      buf[0]='-';  

    }

    buf[1]=temp/100+0x30;

    buf[2]=temp%100/10+0x30;

    buf[3]='.';

    buf[4]=temp%100%10+0x30;

    buf[5]='�';

    lcd1602_show_string(5,0,buf);



    //温度阈值显示

    lcd1602_show_nums(8,1,sys_ctrl.temph,2,0);



    //阈值闪烁指示

    if(sys_ctrl.mode!=0)

    {

      lcd1602_show_string(8,1,"  ");

      delay_ms(50);

      lcd1602_show_nums(8,1,sys_ctrl.temph,2,0);

    }



    //串口终端输出

    i++;

    if(i%20==0)

    {

      UART_SendString("rn当前温度:");

      UART_SendString(buf);

      UART_SendString("°Crn");

    }



    break;      

  }

}



//系统数据设置

void sys_data_set(void)

{

  u8 key=0;

  key=key_scan(0);

  //阈值模式设置

  if(key==KEY3_PRESS)

  {

    sys_ctrl.mode=!sys_ctrl.mode;

  }

  //阈值设置模式下,K1和K2加减

  if(sys_ctrl.mode!=0)

  {

    //加

    if(key==KEY1_PRESS)

    {

      sys_ctrl.temph++;

      if(sys_ctrl.temph >10)sys_ctrl.temph=0;

      pid.target_val=sys_ctrl.temph;

    }

    //减

    else if(key==KEY2_PRESS)

    {

      sys_ctrl.temph--;

      if(sys_ctrl.temph< 0)sys_ctrl.temph=10;

      pid.target_val=sys_ctrl.temph;

    }  

  }

}





//应用控制系统

void appdemo_show(void)

{

  u8 i=10;

  sys_parm_init();//系统参数初始化

  lcd1602_init();

  ds18b20_init();

  //读取温度数据,等待稳定

  while(i--)

  {

    sys_ctrl.temp=ds18b20_read_temperture()*10;

    delay_ms(100);  

  }

  UART_Init();//串口初始化9600

  pwm_init(0XFF,0XD1,100,0);//初始时,PWM占空比为0

  sys_open_show();//系统开机界面显示



  while(1)

  {  

    sys_data_get();//系统数据获取

    sys_data_show();//系统数据显示

    sys_data_set();//系统数据设置

    sys_fun_ctrl();//系统功能控制

  }

}

三、实验现象

图片

图片

图片

图片


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    STM单片机中的按键消抖和FPGA消抖;写在前面: 按键去抖:理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为 5~10ms......
    key单片机按键抖动; 1 //write by:cyt  2 //Time:2017-2-10  3 //Porject Name:key shake_destory  4 #include  5......
    ;buz1=1;}//不鸣叫时置高,减小电流 if(key_dly)//按键去抖动延时 key_dly--; if(flash_num《6) if(flash_time)//闪烁计时 flash_time......
    Linux驱动之定时器在按键去抖中的应用;机械按键在按下的过程中会出现抖动的情况,如下图,这样就会导致本来按下一次按键的过程会出现多次中断,导致判断出错。在按键驱动程序中我们可以这么做: 在按键驱动程序中我们可以这么做来取消按键抖动......
    这些单片机按键设计方案,请拿好,不谢!;在单片机系统里,按键是常见的输入设备,在本文中介绍几种按键硬件、软件设计方面的技巧。一般的在按键的设计上,一般有四种方案。 一是GPIO口直接检测单个按键......
    STM32单片机的按键检测程序设计;STM32的按键检测相对比较简单,首先按部就班的初始化连接的到的i/o,然后写一个按键扫描函数,这个和51单片机的差不多。 以下是一个比较典型的例子: 利用按键......
    引脚被按钮开关下拉为“0”,这种方法比较直观,而且比较简单,在按键数量不多的场合下使用很广泛。      因为机械开关开关时有抖动,所以需要在程序中加一个软件去抖动程序,它的工作原理如下:当单片机检测到有按键......
    可能会造成误动作而影响操作正确性。常用的去抖动的方法为延时去抖动法,即检测出键闭合后执行一个延时程序,产生5~10 ms 的延时;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确......
    AT89C51单片机实现全自动洗衣机功能的设计方案;51单片机洗衣机控制板及C语言程序,该控制板单片机采用AT89C51单片机,所设计全自动洗衣机功能有:标准洗衣、经济洗衣、单独......
    ,非常实用。下面,我们将详细介绍如何在STM32单片机上实现一个按键切换两个程序。一、 STM32单片机按键切换原理为了实现按键切换两个程序,我们首先需要了解STM32单片机按键的工作原理。STM32......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>