单片机与MQ-5传感器
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED=P1^0;
sbit DOUT=P2^0;
void delay()
{
uchar m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main()
{
while(1)
{
LED=1;
if(DOUT==0)
{
delay();
if(DOUT==0)
{
LED=0;
}
}
}
}
把主程序里面的检测去掉,只留led=1,灯亮吗?D是什么电平?
把初始化的LED=1;放在while循环外边,while里面直接是判断,if(DOUT==0) LED=0; else LED=1; 这样试试
void main()
{
LED=1;
while(1)
{
if(DOUT==0)
LED=0;
else
LED=1;
}
}
这样试试,逻辑关系自己改
void main()
{
LED=1;
while(1)
{
if(DOUT==0)
{
delay();
if(DOUT==0)
{
LED=0;
}
else
{
LED = 1;
}
}
}
}