该系统由AT89C51单片机+LCD1602+DS18B20温度传感器+DS1302时间模块+ADC0832采集模拟水位、浑浊度信息+继电器控制电机和加热器模块+蜂鸣器模块构成。
可实现功能:
1、LCD1602显示各种信息
2、DS1302获取北京时间,用户通过按键设定1个喂食时间,默认时间12:30:00。到时间后自动喂食,喂食舵机打开5s钟后自动关闭
3、手动喂食,点击喂食按键后,喂食舵机打开5s钟后自动关闭
4、DS18B20获取温度,可显示正负,温度过低声光报警,继电器闭合,加热管工作
5、ADC0832模拟水位和浑浊度,到达指标后,自动加水和抽水
6、按键控制,手动加水和抽水,按一次运行,再按一次关闭
protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)
只是放上来了部分代码,仅供参考。
/*******************************************************************************
* 函 数 名 : Ds1302Init
* 函数功能 : 初始化DS1302.
* 输 入 : 无
* 输 出 : 无
**关注:今天也不想打工
**后台回复“51智能鱼缸”获取资料
*******************************************************************************/
void Ds1302Init()
{
uchar n;
EA=0;
Ds1302Write(0x8E,0X00); //禁止写保护,就是关闭写保护功能
for (n=0; n<7; n++)//写入7个字节的时钟信号:分秒时日月周年
{
Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);
}
Ds1302Write(0x8E,0x80); //打开写保护功能
EA=1;
}
/*******************************************************************************
* 函 数 名 :display_shuiwei
* 函数功能 :显示水位
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void display_shuiwei()
{
uchar adc = 0;
uchar shuiwei =0;
adc = ADC_read_data(0);//读取adc值,范围是1~255,假设鱼缸高25.5cm,所以adc的1对应水位0.1cm
shuiwei = adc/10; //这里进行取整显示
L1602_char(2,1,72);//"H"
L1602_char(2,2,58);//":"
L1602_char(2,3,shuiwei%100/10+48);//取shuiwei十位
L1602_char(2,4,shuiwei%10+48); //取shuiwei个位
L1602_char(2,5,99);//"c"
L1602_char(2,6,109);//"m"
if(add_flag !=1)//当按键按下,不执行自动判断调整水位
{
if(shuiwei <10)//如果水位低于20cm,光电报警,注水
{
BUZZER =0;
ADD_Water =0;
}
else
{
BUZZER =1;
ADD_Water=1;
}
}
}
void main(void)
{
//定时50ms
TMOD = 0x01; //定时器方式1
TH0 = 0x3C; //定时器赋初值
TL0 = 0xB0;
EA = 1; //开启总中断
ET0 = 1; //开启定时器中断
L1602_init();
date_init();
Ds1302ReadTime();
TIME[0]&=0X7F;
Ds1302Init();
while(1)
{
display_shuiwei();
display_hunzhuodu();
Ds1302ReadTime();
display_time();
display_temp();
alarm();
if(key_scan() !=0) //如果按下设置键,则进入设置报警功能
{
KEY_Control();
}
}
}
纯手打,26页,6k字(不包括代码),含电路分析,代码分析
里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)
本项目包含的所有文件都可以在:今天也不想打工,回复“51智能鱼缸”获取!
项目纯手打,不是免费的哦~浅浅一杯咖啡的
希望可以帮到你哈!