基于51单片机的甲醛浓度检测仪

硬件方案

        本设计以51单片机作为控制核心,甲醛模组传感器作为检测信号源,实现在甲醛浓度超过一定值的时候控制扬声器提示。本课题以C51系列的STC89c52RC为控制核心,甲醛模组传感器模块检测信息,设置系统键盘模块,警报电路,液晶显示,组成甲醛检测仪系统总成综合实现所有功能。电路主要由51单片机甲醛浓度报警器采用51单片机+ZE08-CH2O甲醛浓度传感器+LCD1602液晶显示+LED灯+按键+蜂鸣器设计而成;原理图如图:

 PCB及仿真图:

设计功能

  • 采用ZE08-CH2O检测当前甲醛浓度值并实时显示;
  • 通过按键可设置报警最小浓度。当实际测出的甲醛浓度大于设定的浓度时就会使得蜂鸣器、LED灯报警;
  • LED灯显示正常工作状态和报警状态;
  • LCD1602液晶显示所测的距离已经设置的报警阈值,简单明了;按键说明:增加键,减少键。

软件设计

主程序源码

void main()
{
    uchar h,l;
    LCD1602_cls();      //LCD 1602   调用初始化程序
    TMOD=0x21;    //配置定时
    TH0=0x4c;        //50ms  定时赋值
    TL0=0x00;
    ET0=1;
    TR0=1;
    TH1=0xfd;        //串口波特率定时初始
    TL1=0xfd;
    SCON=0x50;    //只发送
    EA=1;        //打开定时总中断
    ES=1;        //打开串口中断                
    TR1=1;
    h=byte_read(0x2000);
    l=byte_read(0x2001);   //读取保存的数据
    ch2o_H=h*256+l;
    if(ch2o_H>700)
    ch2o_H=80;
    while(1)
    {
        show();         //显示函数
        key();         //按键处理程序
        proc();         //超限处理程序
    }
}


void UART_1() interrupt 1 
{
    TH0=0x4c;
    TL0=0x00;
    ms++;
    if(ms%2==0)   //长按按键计数处理
    {
        if(sec>1)
        {
            if(!key_1)    //设置按键长按处理
            {
                if(ch2o_H<700)ch2o_H++;
            }
            if(!key_2)
            {
                if(ch2o_H>0) ch2o_H--;
            }
        }
    }
    if(ms%10==0)
    {
        if(beep1==1)    //蜂鸣器报警处理
        {
            beep=!beep;
        }else
        {
            beep=1;
        }
    }
    if(ms>19)       //1s 定时
    {
        ms=0;
        sec++;
        
    }
} 

资料链接:https://pan.baidu.com/s/1ZHL3A_d9lP3Mb_dws6qDrw?pwd=i40g 
提取码:i40g

猜你喜欢

转载自blog.csdn.net/m0_60790717/article/details/128058963