资料编号:168 下面是相关功能视频演示:
168-基于51单片机水位检测自动抽水系统Proteus仿真(源码+仿真+全套资料)
功能讲解:
采用51单片机作为控制CPU,采用ADC0832采集水位高度,并且把水位高度数值显示到LCD1602显示屏上,可以通过独立按键设置水位高度的阈值,并且也显示到LCD1602的屏幕上,当判断实际测量的水位高度低于阈值,抽水电机启动(类似水塔自动加水),并且蜂鸣器报警提醒,当检测到水位高度高于设置阈值,抽水电机关闭,全套仿真资料齐全:
下面是程序展示:
void main()
{
uchar B;
uint d,v;
int buf=100;
Initialize_LCD();
InitTimer();
Delayms(10);
v = 0x0100;
StartTimer(0);
B = 0;
beep=motor=0;
while(1)
{
d = Get_AD_Result(vout);//读取传感器的AD值
d &=0x00FF;
d = d*1000.0/255;
#ifdef vmode
if(d/1000)
Display_Buffer[1]=d/1000+'0'; //显示测量值
else
Display_Buffer[1]=' ';
Display_Buffer[2]=d/100%10+'0';
Display_Buffer[3]=d/10%10+'0';
Display_Buffer[4]=d%10+'0';
if(KEY1==0) //按键报警值加
{
buf++;
if(buf>995) buf=995;
}
if(KEY2==0) //按键报警值减
{
buf--;
if(buf<5) buf=5;
}
Display_Buffer[12]=buf/100%10+'0'; //显示报警值
Display_Buffer[13]=buf/10%10+'0';
Display_Buffer[14]=buf%10+'0';
ShowString(0,0,Line1);
ShowString(0,1,Display_Buffer);
if(d<buf)
{
beep=0;motor=0;
Delayms(20);
beep=1;
Delayms(20);
}
else
{
beep=1;
motor=1;
}
Delayms(50);
}
}
下面是该资料的分享下载链接: