单片机水塔控制系统

发布者:山宝宝最新更新时间:2022-01-26 来源: eefocus关键字:单片机 手机看文章 扫描二维码
随时随地手机看文章

功能:单片机智能控制水塔系统,实时检测水塔水位,并能实时显示,自动控制继电器和电机使水位保持在黑水瓶

仿真图如下所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序参考C语言源代码如下:


#include

//定义一个数组,使数码管显示的数字和数组元素的下标相等

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f};

sbit shuiman=P1^0;//水满

sbit sw5=P1^1;//水位5

sbit sw4=P1^2;//水位4

sbit sw3=P1^3;//水位3

sbit sw2=P1^4;//水位2

sbit sw1=P1^5;//水位1

sbit shougong=P1^6;//手工上水

sbit dianji=P1^7;//电机控制位

sbit state=P3^7;//电机工作指示

/延时程序/

void delay02s(void)

{

unsigned char i,j,k;

for(i=100;i>0;i–)

for(j=100;j>0;j–)

for(k=248;k>0;k–);

}

main()

{

P0=0;

while(1)

{ /传感器是设计的一次只能触发一个传感器单?***

//水满

if(shuiman0&&sw51&&sw41&&sw31&&sw21&&sw11)//当唯一的闭合一个传感器单元:水位6时发生

{

dianji=1;//关电机

state=1;//电机工作指示灯熄灭

P0=table[6];//显示水位深度:6**** 已满

delay02s();//延时一段时间让数码管显示给人以提示:水已满

}

//水位5

if(shuiman1&&sw50&&sw41&&sw31&&sw21&&sw11)//当唯一的闭合一个传感器单元:水位5时发生

{

P0=table[5];//显示水位深度:5

}

//水位4

if(shuiman1&&sw51&&sw40&&sw31&&sw21&&sw11)//当唯一的闭合一个传感器单元:水位4时发生

{

P0=table[4];//显示水位深度:4

}

//水位3

if(shuiman1&&sw51&&sw41&&sw30&&sw21&&sw11)//当唯一的闭合一个传感器单元:水位3时发生

{

P0=table[3];//显示水位深度:5

}

//水位2

if(shuiman1&&sw51&&sw41&&sw31&&sw20&&sw11)//当唯一的闭合一个传感器单元:水位2时发生

{

P0=table[2];//显示水位深度:2

}

//水位低

if(shuiman1&&sw51&&sw41&&sw31&&sw21&&sw10)//当唯一的闭合一个传感器单元:水位1时发生

{

dianji=0;//开电机

state=0;//电机工作指示灯打开

P0=table[1];//显示水位深度:1

}

//手工上水

if(shougong==0)//当按手工上水按钮时发生

{

dianji=0;//开电机

state=0;//电机工作指示灯打开

P0=table[0];//显示0表示手工上水已有反应

delay02s();//延时一段时间让数码管显示给人以提示:已开始手工上水

}


}

1

}


关键字:单片机 引用地址:单片机水塔控制系统

上一篇:8通道自动温度检测系统仿真
下一篇:项目实战:51单片机控制交通信号灯

推荐阅读最新更新时间:2024-11-10 10:52

用于51单片机的智能灌溉系统 自动浇花程序
#include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include intrins.h #define u8 unsigned char #define u16 unsigned int #define uchar unsigned char #define uint unsigned int uchar yushe_Moisture=20; //Moisture预设值下限 uchar yushe_MoistureH=40; //Moisture
[单片机]
PIC单片机的各种中断有没有优先级之分?
PIC单片机的各种中断有没有优先级之分? 中档PIC单片机的中断入口只有一个,硬件不分优先级,但可用软件查询的方式决定其优先级高低:先查先做,优先级为高。高档的17和18系列,包括即将推出的16位dsPIC,中断有硬件优先级。
[单片机]
选择法排序单片机汇编语言编程举例
例:选择法排序(降序) N EQU 10 FIR EQU 40H SORT: MOV A,#N ; DEC A MOV R7,A ;外循环数 MOV A,#FIR MOV R0,A ;数组首址 NEXT0: PUSH ACC ;保存本轮第一个字节地址 MOV A,R7 MOV R6,A ;内循环数 MOV A,@R0 ;取第一个字节 NEXT1: INC R0 MOV B,@R0 CJNE A,B,L1 ;第一个字节与另一字节比较 SJMP L2 L1:JC L2 ;大于或等于,不交换 XCH A,@R0 ;小于,交换 DJNZ R6,NEXT1 ;较小的字节在A中,取下一字节与它比较。
[单片机]
51单片机 用数码管显示动态检测结果
注:本数码管为共阴极,P2为位选口,P0为数据口 本实验是一个60s计数器,当满60s后,此时又从00开始计数 #include reg51.h unsigned char Tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char int_time; unsigned char second; void delay(void) { unsigned char i; for(i=0;i 250;i++) ; } void Display(unsigned char k) { P2=0xfd; P0=Tab ;
[单片机]
最后算是搞定12232单片机驱动了
还是那个89C52和12232的组合。但是这个12232没有Datasheet。最后我还是靠自己的分析能力和对卖家资料那么一点点的信任(现在看来是错误的)搞定(?)了这个的驱动。 现在我一直找不到方法让这个玩意显示下半屏。现在上半屏显示什么,下半屏就跟着显示。我晕 不过至少靠前面两个程序的帮助显示出了可以辨认的字符。 不过说道这个倒让我说一下,我的P0口上的上拉电阻貌似挂掉了,结果导致我显示汉字老是掉笔画,很奇怪,尝试了用NE555/4046产生的时钟信号驱动CLK端均未成功。结果加上上拉电阻就好了。 这个是上次的驱动 http://www.51hei.com/mcu/1560.html 效果好像更好些了 上显示效果图:
[单片机]
最后算是搞定12232<font color='red'>单片机</font>驱动了
基于AT89C51单片机的雨量数码管显示设计
一.系统概述 系统使用的模块有AT89C51单片机+8位共阴极数码管+ADC0808(模拟雨量)+ULN2003电机驱动模块+电机。 系统使用AT89C51单片机作为主控,通过ADC0808和电位器模拟雨量的变化,单片机会将采集到的雨量数据处理并将其显示在数码管上,雨量的上限和下限通过程序进行了设定,分别是130和120,当雨量超过120后电机就会运转,当雨量超过130运转速度加快。 二.仿真概述 1.8位共阴极数码管显示雨量。 2.电位器模拟雨量检测模块检测雨量。 3.当雨量达到120时雨刷器开始工作。 4.当雨量达到130时雨刷器的速度加快。 三.程序设计 使用 Keil 51进行程序设计,打开
[单片机]
基于AT89C51<font color='red'>单片机</font>的雨量数码管显示设计
雅特力AT32A423全新车规级MCU新品发布
5月13日,雅特力推出全新车载型AT32A423系列 MCU ,高度整合各种外设资源,具有高效能、多尺寸 封装 和功能丰富等特点,并已通过AEC-Q100车规级可靠度认证,加强实现车载应用的功能性和可靠性。 AT32A423系列搭载ARM® Cortex®-M4内核,主频高达150MHz,内建单精度浮点运算FPU,带 MPU 和 DSP 指令集 ,提高数据处理效率;高达256KB Flash和48KB SRAM ,提供多容量存储空间,便于添加开发新功能,成为新能源车用 电子产品 中优化设备的理想选择,广泛用于行车记录仪、车用影音、 ADAS 辅助驾驶、360全景、汽车中控、脚踢尾门控制、 充电桩 等各式车用场景。 AT32
[汽车电子]
雅特力AT32A423全新车规级<font color='red'>MCU</font>新品发布
GD32 MCU进入低功耗模式导致无法再进行程序下载怎么办?
很多朋友在调试GD32 MCU的低功耗模式时会遇到一个问题:程序中让MCU进入了Sleep、Deepsleep或者Standby模式,之后MCU就无法再下载程序了。这是因为在低功耗模式下,MCU的SW口和JTAG口是无法访问的。比如下面的程序就会导致该问题发生: 该main函数中第一步是打开PMU时钟,然后马上让MCU进入Deepsleep模式,当你想要再次下载程序时,IDE会有如下错误提示(不同IDE报错不同): 遇到这种情况怎么办呢?难道只能重新换一颗芯片了?不不不,其实有方法解决这个问题的。 方法一: GD32 MCU的启动模式根据芯片上的BOOT0和BOOT1脚是可以选择三种模式: 一般情况下,BOOT0需
[单片机]
GD32 <font color='red'>MCU</font>进入低功耗模式导致无法再进行程序下载怎么办?

推荐帖子

如何降低噪声与电磁干扰
fighting 移动便携
万众瞩目“中国芯”今天上市,芯片股还香吗?
今天,中芯国际在上海证券交易所鸣锣上市。中芯国际A股发行价格27.46元,今日以95元开盘,涨幅超过245%,市值突破6000亿元。中芯国际的上市,不仅刷新了A股IPO最快纪录,而且成为近十年来最大规模IPO,募资超500亿元。作为国产芯片龙头,此前市场对中芯国际的未来充满想象,不过随着预期落地,以及市场抽血效应显现,芯片半导体板块短期面临的风险依然值得关注。从6月1日公司科创板上市申请获受理,到今日正式鸣锣上市,中芯国际仅仅用了45天,跑出科创板IPO新
eric_wang 国产芯片交流
关于大功率高频传输电线的问题
本人菜鸟希望大神们帮忙分析一下比如我现在有一个类似于天线的闭合线圈上面走的电流比较大,电流幅值比较大,将近50A但是频率有比较高,比如无许可的6.78MHz如果用普通铜线趋肤效应比较大,内阻就大的不得了为了能有闭合电流不能用同轴电缆用利兹线(多股线)的话我查了很多相关的资料,都没有说利兹线工作于这个频率段的资料不知道各位大哥在工作中有没有遇到类似的问题呢?有没有什么好的解决方法呢?小弟感恩不尽!关于大功率高频传输电线的问题可用空心铜管请问能说一下原因么?空心铜管不是一样有
朴仁永 RF/无线
CCeCommandBar的工具条的问题
CCeCommandBar的工具条怎么设置才能够使得按钮可以有下压的状态,以表示当前正在进行某项操作。谢谢CCeCommandBar的工具条的问题
lololo 嵌入式系统
一个MSP430F149 定时器程序
本程序利用定时器A的模式2实现定时功能,采用C语言编写。(1)利用定时器A的模式2(连续)实现的定时资料利用定时器A的模式2(连续)实现的定时资料在程序中对TACTL的控制,当TACTL为如下的赋值时TACTL=TASSEL_2+MC_2+TAIE;//SMCLK,contmode,interrupt可以改变TASSEL_X来实现不同的定时,当为TASSEL_1时选ACLK为定时时钟,可以实现最短2S的定时,其次为2S的倍数的定时。当为TASSE
Jacktang 微控制器 MCU
51单片机检测市电是否掉电,上电自动唤醒的相关问题
刚刚接触单片机,现在需要完成以下功能。1.IO口检测市电是否掉电。2.市电掉电后,单片机进入待机状态。3.市电再上电的时候,单片机被中断激活。问题:1.不知道按图连接,单片机的IO口能否经得起高压电的冲击2.图中的C1-R1-Q1-D4电路,能否正确的唤醒单片机.3.图中R2的泄放电阻有没有必要加上 51单片机检测市电是否掉电,上电自动唤醒的相关问题楼主电路不合适。综合楼主的需求,采用交流过零检测的办法最简单,用个光耦,其LED侧反向并联一个整流二极
qslm523 51单片机
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved