资料编号:133 下面是相关功能视频演示:
133-基于51单片机的室内温度可燃气体检测报警系统Proteus仿真(源码+仿真+全套资料)
功能介绍:
采用51单片机作为主控,LCD1602显示当前温度和可燃气体浓度,采用温敏电阻采集当前温度,采用电位器模拟当前的可燃气体浓度,当温度超过25℃自动打开风扇散热,当可燃气体浓度超过1,蜂鸣器进行报警,全套资料齐全:
下面是该程序部分展示:
void main(void)
{
uint i;
double ADCdata,NTCr,t;
int t_temp;
bit channel;
LcdInit();
for(i=0;i<16;i++)
{
LcdWriteData(line1[i]);
}
LcdWriteCom(0x80|0x40); //设置数据指针起点为第二行
for(i=0;i<16;i++)
{
LcdWriteData(line2[i]);
}
MOTOR_CS=1;
BUZZER_CS=0;
while(1)
{
channel = 0;
ADCdata = Get_AD_Result(channel)*5.0/256;
NTCr= 10*ADCdata/(5-ADCdata);
t=1/(log(NTCr/10)/3900+1/(25+273.15))-273.15; //B=3435
if(t>=25)
{
MOTOR_CS=0; //开风扇
}
else
{
MOTOR_CS=1; //关风扇
}
if(t<0)
{
line1[8]='-';
t=-t;
}
else
{
line1[8]=' ';
}
t_temp=t*10;
line1[9]=t_temp/100+'0';
line1[10]=t_temp/10%10+'0';
line1[12]=t_temp%10+'0';
LcdWriteCom(0x80);
for(i=0;i<16;i++)
{
LcdWriteData(line1[i]);
}
channel = 1;
ADCdata = Get_AD_Result(channel)*5.0/256;
if(ADCdata<=0.5)
line2[11]='0';
else if(ADCdata>0.5&&ADCdata<=1)
line2[11]='1';
else if(ADCdata>1&&ADCdata<=2)
line2[11]='2';
else if(ADCdata>2&&ADCdata<=3)
line2[11]='3';
else if(ADCdata>3&&ADCdata<=4)
line2[11]='4';
else
line2[11]='5';
if(ADCdata>1)
BUZZER_CS=1;
else
BUZZER_CS=0;
LcdWriteCom(0x80|0x40);
for(i=0;i<16;i++)
{
LcdWriteData(line2[i]);
}
}
下面是该资料的分享下载链接:
https://pan.baidu.com/s/1RaIrWYKGMNYkvrCYow9GVg?pwd=5nx4