硬件方案
本设计以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