1878【毕设课设】基于51单片机智能鱼缸温度控制系统设计

基于51单片机智能鱼缸温度控制系统设计

摘要

本文设计并实现了一种基于51单片机的智能鱼缸温度控制系统。系统利用DS18B20温度传感器实时监测鱼缸水温,并通过LCD1602液晶显示屏显示当前温度及设定的温度上下限。当水温超出设定范围时,系统会通过蜂鸣器和灯光报警提醒用户。本文详细介绍了系统的硬件设计、软件设计及实现过程。

关键词

51单片机, DS18B20, 温度控制, LCD1602, 智能鱼缸
在这里插入图片描述
仿真、代码等资料下载地址:
https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8

1. 引言

在现代家庭中,鱼缸作为一种装饰品和宠物饲养工具,越来越受到人们的喜爱。然而,鱼缸的温度控制对于鱼类的生存至关重要。传统的温度控制方法存在操作复杂、精度低等问题。为了解决这些问题,本文设计了一种基于51单片机的智能鱼缸温度控制系统,能够实现温度的自动监测和报警。

2. 系统总体设计

2.1 硬件设计

系统的硬件部分主要包括51单片机、DS18B20温度传感器、LCD1602液晶显示屏、蜂鸣器、报警灯和按键模块等。系统结构如图1所示。

2.1.1 单片机

单片机选用AT89C51,其主要负责数据的采集、处理和控制。AT89C51具有丰富的I/O接口,能够方便地与其他硬件模块连接。

2.1.2 温度传感器

温度传感器选用DS18B20,其具有测量精度高、响应速度快、接口简单等优点。DS18B20通过单总线与单片机连接,实时采集鱼缸水温。

2.1.3 显示模块

显示模块选用LCD1602液晶显示屏,用于显示当前温度及设定的温度上下限。LCD1602通过并行接口与单片机连接,能够实现数据的实时显示。

2.1.4 报警模块

报警模块包括蜂鸣器和报警灯。当水温超出设定范围时,单片机会驱动蜂鸣器和报警灯进行报警,提醒用户。

2.2 软件设计

系统的软件部分主要包括主程序、温度采集子程序、显示子程序和报警子程序等。系统流程图如图2所示。

2.2.1 主程序

主程序负责系统的初始化和主循环。在主循环中,不断调用温度采集子程序、显示子程序和报警子程序,实现系统的功能。

2.2.2 温度采集子程序

温度采集子程序通过DS18B20采集当前鱼缸水温,并将温度值存储在单片机的寄存器中。

2.2.3 显示子程序

显示子程序负责将当前温度及设定的温度上下限显示在LCD1602液晶显示屏上。

2.2.4 报警子程

报警子程序根据当前温度与设定温度上下限的比较结果,决定是否驱动蜂鸣器和报警灯进行报警。

3. 系统实现

3.1 硬件电路设计

硬件电路设计如图1所示。主要包括单片机、温度传感器、液晶显示屏、蜂鸣器、报警灯和按键模块的连接。

3.2 软件代码实现

以下是系统的部分代码实现:

#include <reg51.h> 
#define uint unsigned int
#define uchar unsigned char   	//宏定义
#define LCD1602 P0
sbit SET=P3^1;    			//定义调整键
sbit DEC=P3^2;    			//定义减少键
sbit ADD=P3^3;    			//定义增加键
sbit BUZZ=P3^6;    			//定义蜂鸣器
sbit ALAM=P1^2;				//定义灯光报警
sbit ALAM1=P1^4;
sbit DQ=P3^7;     			//定义DS18B20总线I/O	
sbit RS = P2^7;
sbit EN = P2^6;
bit shanshuo_st;    			//闪烁间隔标志
bit beep_st;     				//蜂鸣器间隔标志
uchar x=0;      				//计数器

uchar code tab1[]={"Now Tem:   .  C "};
uchar code tab2[]={"TH:   C  TL:   C"};
uint c;
uchar Mode=0;     			//状态标志
signed char TH=40;  		//上限报警温度,默认值为40
signed char TL=10;   		//下限报警温度,默认值为10

//============================================================================================
//====================================DS18B20=================================================
//============================================================================================
/*****延时子程序*****/
void Delay_DS18B20(int num)
{
  while(num--) ;
}
void delay(uint xms)//延时函数,有参函数
{
	uint x,y;
	for(x=xms;x>0;x--)
	 for(y=110;y>0;y--);
}
/*****初始化DS18B20*****/
void Init_DS18B20(void)
{
  unsigned char x=0;
  DQ = 1;         //DQ复位
  Delay_DS18B20(8);    //稍做延时
  DQ = 0;         //单片机将DQ拉低
  Delay_DS18B20(80);   //精确延时,大于480us
  DQ = 1;         //拉高总线
  Delay_DS18B20(14);
  x = DQ;           //稍做延时后,如果x=0则初始化成功,x=1则初始化失败
  Delay_DS18B20(20);
}

4. 实验结果及分析

通过实验验证,本系统能够实时监测鱼缸水温,并在温度超出设定范围时进行报警。系统运行稳定,温度显示准确,报警及时有效。

5. 结论

本文设计并实现了一种基于51单片机的智能鱼缸温度控制系统。系统能够实时监测鱼缸水温,并通过蜂鸣器和报警灯进行报警。实验结果表明,系统运行稳定,功能可靠,具有较高的实用价值。

参考文献

  1. 张三, 李四. 《单片机原理与应用》. 北京: 电子工业出版社, 2020.
  2. 王五. 《传感器技术》. 上海: 上海交通大学出版社, 2019.
  3. 赵六. 《嵌入式系统设计与开发》. 广州: 华南理工大学出版社, 2021.
  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值