51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】

1、主要功能

该系统由AT89C51单片机+LCD1602+DS18B20温度传感器+DS1302时间模块+ADC0832采集模拟水位、浑浊度信息+继电器控制电机和加热器模块+蜂鸣器模块构成。

可实现功能:
1、LCD1602显示各种信息
2、DS1302获取北京时间,用户通过按键设定1个喂食时间,默认时间12:30:00。到时间后自动喂食,喂食舵机打开5s钟后自动关闭
3、手动喂食,点击喂食按键后,喂食舵机打开5s钟后自动关闭
4、DS18B20获取温度,可显示正负,温度过低声光报警,继电器闭合,加热管工作
5、ADC0832模拟水位和浑浊度,到达指标后,自动加水和抽水
6、按键控制,手动加水和抽水,按一次运行,再按一次关闭


2、仿真

protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】_第1张图片


3、程序代码

只是放上来了部分代码,仅供参考。

51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】_第2张图片

/*******************************************************************************
* 函 数 名         : 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();
		}	
		
	}			
}

4、原理图

51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】_第3张图片


5、报告目录

纯手打,26页,6k字(不包括代码),含电路分析,代码分析

51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】_第4张图片

6、常见问题汇总

里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)

51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】_第5张图片
51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】_第6张图片


7、资源获取

51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】_第7张图片

本项目包含的所有文件都可以在:今天也不想打工,回复“51智能鱼缸”获取!
项目纯手打,不是免费的哦~浅浅一杯咖啡的
希望可以帮到你哈!

你可能感兴趣的:(单片机设计,51单片机,单片机,stm32)