先给个实物图(只一次发不知道怎么把图放在帖子中所以就放在附件中了)
这是网上找的一个程序,按道理说应该可以控制:
但是我用电压表测出来的输出信号只有几十毫安,并且在磁铁周期运动时变化之久几毫安?请问谁能解决这个问题?
/********************************************************************
说明:1、 当测量浓度大于设定浓度时,单片机IO口输出低电平
*********************************************************************/
#include<reg52.h> //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
/********************************************************************
I/O定义
*********************************************************************/
sbit LED=P1^0; //定义单片机P1口的第1位 (即P1.0)为指示端
sbit DOUT=P2^0; //定义单片机P2口的第1位 (即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; //熄灭P1.0口灯
if(DOUT==0)//当浓度高于设定值时 ,执行条件函数
{
delay();//延时抗干扰
if(DOUT==0)//确定 浓度高于设定值时 ,执行条件函数
{
LED=0; //点亮P1.0口灯
}
}
}
}
此帖出自
小平头技术问答
一周热门 更多>