基于51单片机水位监测控制报警仿真设计( proteus仿真+程序+设计报告+讲解视频)

这里写目录标题

  • [💥1. 主要功能:](#💥1. 主要功能:)
  • [💥2. 讲解视频:](#💥2. 讲解视频:)
  • [💥3. 仿真](#💥3. 仿真)
  • [💥4. 程序代码](#💥4. 程序代码)
  • [💥5. 设计报告](#💥5. 设计报告)
  • [💥6. 设计资料内容清单&&下载链接](#💥6. 设计资料内容清单&&下载链接)

51单片机水位监测控制报警仿真设计 ( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0064

💥1. 主要功能:

基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、STC89C51/52等51内核单片机通用)

基于51单片机水位监测控制报警仿真设计

1、监测并通过数码管显示当前水位;

2、利用电机模拟水泵,具有蜂鸣器,显示灯等装置;

3、带有水位上下限设置功能,低于水位下限加水,高于上限停止加水;

4、当前水位高于水位上限蜂鸣器报警,并抽水,水泵抽水时显示灯亮,抽到水位上限时则停止抽水;

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

💥2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

💥3. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后,数码管显示水位,如果水位偏高,偏高指示灯亮红色

当前水位高于水位上限蜂鸣器报警,并抽水,水泵抽水时显示灯亮,抽到水位上限时则停止抽水;

💥4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

main.c

c 复制代码
#include "reg51.h"
#include <PCF8591.h>
#define uchar unsigned char
#define uint unsigned int
sbit out=P3^3;//抽水机
sbit led1=P3^6;//指示灯
sbit led2=P3^7;
sbit smg1=P2^0;//数码管
sbit smg2=P2^1;	 
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit k1=P1^0;//按钮
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit beep=P1^7;//蜂鸣器
uchar time=0,mode=0;//系统变量	 
uchar water=0;//水位
uchar lim1=40,lim2=60;//阀值
uchar key=0;
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点
//延时
部分函数,工程文件压缩包解压后即可获取
void delay(uint i)
{
	while(i--);
}
 //按键检测
uchar key_scan()
{
	uchar i=0;
	if(!k1 &&(key!=1))
	{
		key=1;
		i=1;
	}
	if(!k2 &&(key!=2))
	{
		key=2;
		i=2;
	}
	if(!k3 &&(key!=3))
	{
		key=3;
		i=3;
	}
	if(!k4 &&(key!=4))
	{
		key=4;
		i=4;
	}
	if(!k5 &&(key!=5))
	{
		key=5;
		i=5;
	}
	if(k1 && k2 && k3 && k4 && k5 )
		key=0;
	return i;
}
//主函数
void main()
{
	uchar i=0,k=0;

	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		i=key_scan();//按键检测
		//设置按钮
		if(i==2)
		{
			mode=1;
		}
		if(i==1)
		{
			mode=2;
		}
		if(mode==1)//设置下限
		{
		if(i==4)
		{
			if(lim1<lim2)
				lim1++;
		}
		if(i==5)
		{
			if(lim1>0)
				lim1--;
		}
		}
		if(mode==2)//设置上限
		{
		if(i==4)
		{
			if(lim2<100)
				lim2++;
		}
		if(i==5)
		{
			if(lim2>lim1)
				lim2--;
		}
		}
		if(i==3)//OK
		{
			mode=0;
		}
		//点亮LED
		if(water<lim1)//水位低
		{
			led1=0;led2=1;
		}
		else if(water>lim2)//水位高
		{
			led1=1;led2=0;
		}
		else
		{
			led1=1;led2=1;
		}
		//显示水位
		if(mode==0)
		{
			P0=smgduan[water/100];		smg2=0;delay(100);smg2=1;
			P0=smgduan[water%100/10];	smg3=0;delay(100);smg3=1;
			P0=smgduan[water%10];		smg4=0;delay(100);smg4=1;
		}
		//显示下限
		if(mode==1)
		{
			P0=0x38;		smg1=0;delay(100);smg1=1;
			P0=smgduan[lim1/100];		smg2=0;delay(100);smg2=1;
			P0=smgduan[lim1%100/10];	smg3=0;delay(100);smg3=1;
			P0=smgduan[lim1%10];		smg4=0;delay(100);smg4=1;
		}
		//显示上限
		if(mode==2)
		{
			P0=0x76;		smg1=0;delay(100);smg1=1;
			P0=smgduan[lim2/100];		smg2=0;delay(100);smg2=1;
			P0=smgduan[lim2%100/10];	smg3=0;delay(100);smg3=1;
			P0=smgduan[lim2%10];		smg4=0;delay(100);smg4=1;
		}
	}
}
//定时器中断
void Timer0() interrupt 1
{
	if(time<10)//0.5s
		time++;
	else
	{
		time=0;
		water=PCF8591_read(0);//测量水位
//		water=water*5.0/255; 
	
		//抽水控制
		if(mode==0)//自动模式
		{
			if(water<lim1)//抽水
			{
				out=0;
				beep=0;
			}
			else
				beep=1;
			if(water>lim2)//停止抽水
				out=1;
		}
	}
	TH0=0X3C;
	TL0=0XB0;
}

💥5. 设计报告

4909字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

💥6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法--必读!!!!

0、常见使用问题及解决方法--必读!!!!

1、仿真图

2、程序源码

3、功能要求

4、开题报告

5、软硬件流程框图

6、讲解视频

7、设计报告

Altium Designer 安装破解

filename.bat

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

💥资料下载链接:

相关推荐
BreezeJuvenile8 小时前
外设模块学习(5)——DS18B20温度传感器(STM32)
stm32·嵌入式硬件·学习·温度传感器·ds18b20
hollq11 小时前
STM32F103RCT6+STM32CubeMX+keil5(MDK-ARM)+Flymcu实现串口重定向
arm开发·stm32·嵌入式硬件
小鱼儿电子12 小时前
17-基于STM32的宠物饲养系统设计与实现
stm32·嵌入式硬件·物联网·宠物·宠物饲养系统
小莞尔14 小时前
【51单片机】【protues仿真】基于51单片机四层电梯系统
单片机·嵌入式硬件
F1331689295714 小时前
WD5030A,24V降5V,15A 大电流,应用于手机、平板、笔记本充电器
stm32·单片机·嵌入式硬件·51单片机·硬件工程·pcb工艺
易享电子16 小时前
基于单片机电器断路器保护器系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
爱倒腾的老唐18 小时前
01、如何学习单片机
单片机·嵌入式硬件·学习
点灯小铭18 小时前
基于单片机的夹具压力控制系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计
雾削木1 天前
stm32解锁芯片
javascript·stm32·单片机·嵌入式硬件·gitee
璞致电子1 天前
fpga开发板ZYNQ 璞致 PZ7010/7020 邮票孔核心板简介-ZYNQ7000系列小系统学习板
linux·嵌入式硬件·学习·fpga开发·fpga·fpga开发板·xilinx开发板