一、设计方案
基于51单片机实现水源数据采集,将温度传感器DS18B20和水浊度传感器放入水中。水浊度传感器通过ADC0832模数转换器将模拟信号转换为数字信号,传送给单片机。单片机通过LCD1602显示测得的温度值和水浊度值。系统包含三个按键:K1用于启动设计模式,K2用于增加温度上限值,K3用于减少温度上限值。当温度超过设定的上限值时,蜂鸣器会发出报警信号。
二、具体设计
1、STC89C52RC最小系统板
STC89C52RC最小系统:最小系统是指一个真正可用的单片机的最小配置系统。STC89C52RC是低功耗,高性能的51内核CMOS8位单片机,具有在线编程功能。8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),最高运作频率35MHz。
最小系统设计包括复位电路与晶振电路。本系统设计采用按键复位电路,方便并且可以对单片机工作状态进行直接重启;采用内部时钟方式晶振电路,频率为11.0592MHz。
2、LCD1602
LCD1602液晶显示器:是一种专门用来显示字母、数字、符号等的点阵型液晶模块。显示内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。液晶显示器具有功耗低、抗干扰能力强等优点,广泛用在仪器仪表和控制系统中。
3、DS18B20
DS18B20温度传感器:DS18B20是一种数字温度传感器,应用非常广泛。它输出的是数字信号,同时具有体积小,硬件资源耗费少,抗干扰能力强,精度高等特点。采用单线接口方式,仅需要一条线即可实现与微处理器的双向通信。测温范围可达-55℃~+125℃,在-10℃到+85℃范围内误差为±0.4°,测量温度的结果以9~12位数字量方式串行传送。工作电源为3.0~5.5V/DC ,DS18B20温度传感器可以采用外部独立电源供电,也可以用数据线寄生电源供电。
本次使用的是防水型数字温度传感器:
4、ADC0832
ADC0832模数转换:ADC0832 是国外半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片;其输入输出电平与 TTL/CMOS 相兼容;5V 电供电时输入电压在 0~5V 之间;由于它体积小,功耗低,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。将其与水浊度传感器连接。
单片机对ADC0832的控制原理:正常情况下单片机与ADC0832的接口应该为4条数据线,分别是DI、CS、DO、CLK。因为DI端和DO端在通信时未同时有效地并与单片机的接口是双向的,固电路设计时可以将DI和DO并联在一根数据线上使用。
unsigned char get_0832_AD_data(bit channel)
{
unsigned char i;
unsigned char dat=0;
ADC0832_CS=1; //一个转换周期开始
ADC0832_CLK=0; //为第一个脉冲作准备
//ADC0832_CS=0; //CS置0,片选有效
ADC0832_DIO=1; //DIO置1,规定的起始信号
ADC0832_CLK=1; //第一个脉冲
ADC0832_CLK=0; //第一个脉冲的下降沿,此前DIO必须是高电平
ADC0832_DIO=1; //DIO置1, 通道选择信号
ADC0832_CLK=1; //第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道
ADC0832_CLK=0; //第二个脉冲下降沿
ADC0832_DIO=channel; //DI置0,选择通道0
ADC0832_CLK=1; //第三个脉冲
ADC0832_CLK=0; //第三个脉冲下降沿
ADC0832_DIO=1; //第三个脉冲下沉之后,输入端DIO失去作用,应置1
ADC0832_CLK=1; //第四个脉冲
//ADC0832_CLK=0;
for(i=0;i<8;i++) //高位在前
{
ADC0832_CLK=1; //第四个脉冲
ADC0832_CLK=0;
dat<<=1; //将下面储存的低位数据向右移
dat|=(unsigned char)ADC0832_DIO; //将输出数据DIO通过或运算储存在dat最低位
}
ADC0832_CS=1; //片选无效
return dat; //将读书的数据返回
}
5、浊度传感器
浊度传感器:当被测物质浊度变化时,使光源的强度随之变化,光源的强度可对应到被测物质的浊度。当液体浊度增加时,由于液体阻碍增强,光的通过率低,光敏电阻器接受光线弱。当液体浊度下降时,光敏电阻器接受光线强。让传感器接收到的光信号强度一定,当被测物质浊度发生变化时,使光源的强度随之变化,光源强度可对应到被测物的浊度。数据端输出模拟信号,接ADC0832 CH0端。
6、报警电路
报警电路:由5V有源蜂鸣器与PNP型三极管外加2k电阻构成。有源蜂鸣器内部带振荡源,三极管Q2起开关管的作用,控制蜂鸣器。节点Beep接单片机。当节点Beep为高电平时,三极管Q2截止,蜂鸣器无电流,不响;当节点Beep为低电平时,三极管Q2导通,蜂鸣器有电流,会响。电阻R5为三极管Q2的基极电阻,限制基极电流。
7、原理图与仿真
绘制好原理图后,使用Proteus进行电路仿真,之后进行实物的焊接与连接。
三、最终实物
当温度传感器接触到水温变化、浊度传感器检测水浊度,可观察到LCD显示数值。当温度或浊度超过设置的上限值时,蜂鸣器发出警报。