智能水位检测系统proteus_单片机水塔水箱水位系统Proteus仿真程序
#include //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
//数码管段选定义 0 1 2 3 4 5 6 7 8 9
uchar code smg_du[]={0xde,0x91,0xcd,0xd5,0x93,0x2b,0x5f,0xd4,0xdf,0xd1,
// A B C D E F 不显示
0xd7,0x1f,0x4e,0x9d,0x4f,0x47 }; //断码
sbit led_y = P2^2; //黄灯 //高水位
sbit led_g = P2^1; //绿灯
sbit led_r = P2^0; //红灯 //低水位
sbit shuiwei1 = P3^4;
sbit shuiwei2 = P3^5;
sbit shuiwei3 = P3^6;
sbit shuiwei4 = P3^7;
sbit relay = P1^0; //继电器
sbit beep = P2^7; //蜂鸣器
uchar shuiwei; //水位
sbit dianji = P2^3;
/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i
for(j=0;j<120;j++);
}
/********************独立按键程序*****************/
uchar key_can; //按键值
void key() //独立按键程序
{
static uchar key_new;
P1 |= 0x06;
if((P1 & 0x06) != 0x06) //按键按下
{
delay_1ms(1); //按键消抖动
if(((P1 & 0x06) != 0x06) && (key_new == 1))
{ //确认是按键按下
key_new = 0;
switch(P1 & 0x06)
{
case 0x02: relay = 0; //手动进水
break; //得到按键值
case 0x04: relay = 1; //手动停止进水
break; //得到按键值
}
}
}
else //按键松开
key_new = 1;
}
/******************主程序**********************/
void main()
{
P0 = P1 = P2 = P3 = 0xff; //初始化单片机IO口为高电平
P0 = ~smg_du[0] ;
delay_1ms(1500);
while(1)
{
key(); //独立按键程序
if(shuiwei4 == 1) //高水位 4档
{
shuiwei = 4;
led_r = 1;led_g = 1;led_y = 0; //高水位绿灯亮
}
else if(shuiwei3 == 1) // 3档
{
shuiwei = 3;
led_r = 1;led_g = 0;led_y = 1; //正常水位绿灯亮
}
else if(shuiwei2 == 1) // 2档
{
shuiwei = 2;
led_r = 1;led_g = 0;led_y = 1; //正常水位绿灯亮
}
else if(shuiwei1 == 1) // 1档
{
shuiwei = 1;
led_r = 1;led_g = 0;led_y = 1; //正常水位绿灯亮
}else //低水位 0
{
shuiwei = 0;
led_r = 0;led_g = 1;led_y = 1; //低水位红灯亮
}
P0 = ~smg_du[shuiwei]; //
if(shuiwei < 1) //进水
{
beep = ~beep; //蜂鸣器报警
relay = 0; //打开继电器 进水
}
else
{
beep = 1; //关闭蜂鸣器
}
if(shuiwei >= 4) //停止进水
{
relay = 1; //关闭继电器
dianji = 0; //打开抽水电机
}else
{
dianji = 1; //关闭电机
}
key(); //独立按键程序
delay_1ms(100);
}
}
智能水位检测系统proteus_单片机水塔水箱水位系统Proteus仿真程序相关推荐
- 水塔水位测量c语言程序,基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)...
基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)(任务书,开题报告,外文翻译,论文18000字) 摘 要 为了能实现水位监测与控制,以STC89C52作为核心控制芯片,进行了水位检测系统控 ...
- 毕业设计 基于STM32单片机的水箱水位控制系统
基于STM32单片机的水箱水位控制系统 用32单片机完成对MPX10DP压差传感器的数据采集,然后将采集的信号在OLED12864显示屏上,然后可以用按键设定上下限值,当超过上下值得时候分别控制继电器 ...
- 51单片机自动浇水系统/51单片机自动浇花系统/智能浇水系统
51单片机自动浇水系统/51单片机自动浇花系统 整个设计由51单片机模块.湿度传感器模块(土壤湿度传感器或者温度传感器或者温湿度传感器,都可以).lcd1602液晶显示模块等组成,实现智能浇花和智能浇 ...
- 基于单片机双路温度检测报警系统设计-基于单片机声光控智能开关控制灯设计-基于单片机热电偶智能体温检测设计-基于单片机小型家用燃气锅炉控制系统设计-基于单片机一氧化碳有毒气体采集报警系统设计
1628基于单片机双路温度检测报警系统设计(串口上位机控制) 基于pcf8591 tlc2543的双路温度检测报警系统 带串口上位机控制带仿真 源程序 温度传感器是 LM35 两路测温通道所用的ad芯 ...
- 基于单片机热电偶智能体温检测系统设计-基于单片机一氧化碳CO有毒气体采集报警系统设计-基于单片机热电偶智能体温检测系统设计(仿真,原理图,报告)【资料转发分享】
1626基于单片机小型家用燃气锅炉控制系统设计(仿真,程序,论文) 1. 设计任务 结合实际情况,基于AT89C51单片机设计一个小型家用燃气锅炉单片机控制系统. 该系统应满足的功能要求为: (1) ...
- 基于51单片机的水箱水位监测控制系统proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.通过传感器监测水位,当水位低于水位下限时,接通加水水泵,直到水位达到水位上限,停止加水 2.水位低于水位下限时,声光报警 3.可按键手动加水, ...
- 单片机实现水位控制C语言,单片机课程设计 水位自动控制.doc
单片机课程设计 水位自动控制 河南机电高等专科学校电气工程系 电子课程设计报告 设计题目:水位自动控制 专业: 电机与电器 班级: 101 班 学号: 姓名: 指导教师: 设计时间: 2012-6-2 ...
- 基于51单片机水塔水箱液水位WIFI监控报警设计proteus仿真原理图PCB
功能: 0.本项目采用STC89C52作为单片机系统的控制MCU 1.WIFI实时上传当前水位状态 2.通过液位传感器检测液位,检测到最低液位和最高液位时,超过设定阈值将声光报警 3.通过状态指示灯显 ...
- 基于51单片机的多音阶电子琴proteus仿真程序原理设计
硬件设计 仿真图1: 总共二十几个按键,高中低音阶,同时可以播放歌曲,开机可设置显示学号 仿真图2: 7个音符按键,切换高中低音阶,同时可以播放歌曲 程序设计 #include<reg52.h& ...
最新文章
- Py之pycurl:Python 库之pycurl的简介、安装、使用方法之详细攻略
- 解决样本类别不平衡以及困难样本问题的方法总结
- oracle中dbms_并发和由于DBMS中的并发导致的问题
- 总算知道怎样从ImageMagick生成的数据转换成HICON: MagickGetImageBlob LookupIconIdFromDirectoryEx...
- linux yum源码安装mysql_linux下通过源码包安装mysql,以及yum安装
- 24. Swap Nodes in Pairs 1
- android webview 魅族,魅族 Flyme 系统出现大面积应用闪退问题,提供临时解决方法...
- 个性化制作nodemcu-firmware(esp8266/esp8285 固件制作)----包含lua程序bin的制作
- 华为2019年4月10日实习生笔试题
- 金融行业数据容灾架构中的数据复制技术
- 猴子问题----约瑟夫环算法
- 计算机位数怎么看win10,怎么查看Win10是32位还是64位操作系统?
- 常变量和符号常量的区别?常变量和文字常量的区别?
- 2021-08-11好奇心
- 最小费用流算法不完全指南-2017华为软件精英挑战赛
- 软件开发工程师 学习路线
- 软件开发中会使用到的图
- Python中 range 和xrange的详细区别
- 如何在win7下装win8以及我的win8之旅
- mw320r虚拟服务器,水星MW320R路由器桥接设置教程 | 192路由网
热门文章
- 操作系统:第二章 进程管理2 - 处理机调度
- 递归算法题解析:设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目
- 【Java入门】package包
- java学习笔记十三
- 多线程基础-实现多线程的两种方式(二)
- 13.multi-term-vector请求
- 互联网大鳄的成长模式
- 计算机秋招必备!上海互联网大厂企业整理清单!
- 使用组合索引你得注意了
- 老的消息中间件投递失败的类型值_RabbitMQ消息中间件技术精讲11 高级篇四 confirm 确认消息...