水资源是人类宝贵的财富,水是生命之源,随着经济的飞速发展,环境问题逐渐出现,水资源受到污染和过度的开发,水的需求量更是大大的增加,为了保护珍贵水源,有必要对水质进行监测。
功能描述
1、采用51单片机作为主控芯片;
2、采用LCD1602同时显示温度/PH/浊度;
3、采用TLC2543作为ADC模数转换处理;
4、温度/浊度/PH值任一超标时蜂鸣器报警;
5、采用串口通信将数据发送至电脑端;
上传信息:T26-Z60-P7.5
信息表示:温度26°-浊度60%-PH值为7.5
整体方案
仿真设计
采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
主程序设计
void main(void)
{
LcdInit();
ShtConnectReset();
UART_Init();
while(1)
{
ReadShtData();
DisplayListChar(4,0,"temp:");
DisplayOneChar(10,0,(char)(temp/10+'0'));
DisplayOneChar(11,0,(char)(temp%10+'0'));
DisplayOneChar(12,0,(char)(' '));
DisplayOneChar(13,0,(char)('C'));
Uart1Send( 'T' );
Uart1Send( (char)(temp/10+'0') );
Uart1Send( (char)(temp%10+'0') );
Uart1Send( '-' );
read2543(0);//调用2543驱动程序测量地址为
LUX_now=volt*2;
DisplayListChar(0,1,"ZD:");
DisplayOneChar(3,1,(char)(volt*2/1000000+'0'));
DisplayOneChar(4,1,(char)((volt*2/100000)%10+'0'));
DisplayOneChar(6,1,(char)('%'));
Uart1Send( 'Z' );
Uart1Send( (char)(volt*2/1000000+'0') );
Uart1Send( (char)((volt*2/100000)%10+'0') );
Uart1Send( '-' );
read2543(1);//调用2543驱动程序测量地址为
C2_now=volt*2;
DisplayListChar(10,1,"PH:");
DisplayOneChar(13,1,(char)(volt*2/1000000+'0'));
DisplayOneChar(14,1,(char)('.'));
DisplayOneChar(15,1,(char)((volt*2/100000)%10+'0'));
Uart1Send( 'P' );
Uart1Send( (char)(volt*2/1000000+'0') );
Uart1Send( '.' );
Uart1Send( (char)((volt*2/100000)%10+'0') );
Uart1Send( '-' );
if(LUX_now>LUX_max || C2_now>C2_max || temp>temp_max)
{
BEEP=0;
}else
{
BEEP=1;
}
}
}
源文件获取
关注公众号【电子开发圈】,首页发送“水质”获取;