基于单片机电梯液晶显示防超重,防气体报警、防夹报警控制系统及源程序

一、系统方案
1、本设计采用51单片机作为主控器。
2、液晶显示楼层。
3、防超重,防气体报警、防夹报警。
在这里插入图片描述

二、硬件设计
原理图如下:
在这里插入图片描述

三、单片机软件设计
1、首先是系统初始化
/lcd1602初始化设置*/
void init_1602() //lcd1602初始化设置
{
write_com(0x38);
write_com(0x0c);
write_com(0x06);
}
2、液晶显示程序
void delay_uint(uint q)
{
while(q–);
}

/********************************************************************

  • 名称 : write_com(uchar com)
  • 功能 : 1602命令函数
  • 输入 : 输入的命令值
  • 输出 : 无
    ***********************************************************************/
    void write_com(uchar com)
    {
    e=0;
    rs=0;
    //rw=0;
    P0=com;
    delay_uint(3);
    e=1;
    delay_uint(25);
    e=0;
    }

/********************************************************************

  • 名称 : write_data(uchar dat)
  • 功能 : 1602写数据函数
  • 输入 : 需要写入1602的数据
  • 输出 : 无
    **********************************************************************/
    void write_data(uchar dat)
    {
    e=0;
    rs=1;
    //rw=0;
    P0=dat;
    delay_uint(3);
    e=1;
    delay_uint(25);
    e=0;
    }
    /lcd1602上显示这字符函数
    /
    void write_string(uchar hang,uchar add,uchar *p)
    {
    if(hang==1)
    write_com(0x80+add);
    else
    write_com(0x80+0x40+add);
    while(1)
    {
    if(*p == ‘\0’) break;
    write_data(*p);
    p++;
    }
    }
    3、按键电路程序
    void key() //按键程序
    {
    if(key1 == 0) //1楼按键按下
    {
    led1 = 1; //点亮1楼发光二极管
    dt_1 = 1; //1楼电梯按下变量置1
    }
    if(key2 == 0) //2楼按键按下
    {
    led2 = 1; //点亮2楼发光二极管
    dt_2 = 1; //2楼电梯按下变量置1
    }
    if(key3 == 0) //3楼按键按下
    {
    led3 = 1; //点亮3楼发光二极管
    dt_3 = 1; //3楼电梯按下变量置1
    }
    if(key4 == 0) //4楼按键按下
    {
    led4 = 1; //点亮4楼发光二极管
    dt_4 = 1; //4楼电梯按下变量置1
    }
    if(key5 == 0) //5楼按键按下
    {
    led5 = 1; //点亮5楼发光二极管
    dt_5 = 1; //5楼电梯按下变量置1
    }
    if(key6 == 0) //6楼按键按下
    {
    led6 = 1; //点亮6楼发光二极管
    dt_6 = 1; //6楼电梯按下变量置1
    }
    if(key7 == 0) //7楼按键按下
    {
    led7 = 1; //点亮7楼发光二极管
    dt_7 = 1; //7楼电梯按下变量置1
    }
    if(key8 == 0) //8楼按键按下
    {
    led8 = 1; //点亮8楼发光二极管
    dt_8 = 1; //8楼电梯按下变量置1
    }
    }
    4、核心算法程序
    /电梯向上、做最后的判断是否还要继续向上/
    void dt_shang_guan()
    {
    static uchar value;
    if(dt_s_x == 1) //电梯向上 做最后的判断是否还要继续向上
    {
    if(dt_value == 1) //在第1层
    {
    value = dt_2 + dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
    if(value == 0) //说明上面没有人按下
    {
    dt_s_x = 0; //电梯停下不动了
    shang = 1; //关闭上箭头
    zhong = 1;
    }else
    flag_stop = 1; //电梯继续运行
    }
    else if(dt_value == 2) //在第2层
    {
    value = dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
    if(value == 0) //说明上面没有人按下
    {
    dt_s_x = 0; //电梯停下不动了
    shang = 1; //关闭上箭头
    zhong = 1;
    }else
    flag_stop = 1; //电梯继续运行
    }
    else if(dt_value == 3) //在第3层
    {
    value = dt_4 + dt_5 + dt_6 + dt_7 + dt_8;
    if(value == 0) //说明上面没有人按下
    {
    dt_s_x = 0; //电梯停下不动了
    shang = 1; //关闭上箭头
    zhong = 1;
    }else
    flag_stop = 1; //电梯继续运行
    }
    else if(dt_value == 4) //在第4层
    {
    value = dt_5 + dt_6 + dt_7 + dt_8;
    if(value == 0) //说明上面没有人按下
    {
    dt_s_x = 0; //电梯停下不动了
    shang = 1; //关闭上箭头
    zhong = 1;
    }else
    flag_stop = 1;
    }
    else if(dt_value == 5) //在第5层
    {
    value = dt_6 + dt_7 + dt_8;
    if(value == 0) //说明上面没有人按下
    {
    dt_s_x = 0; //电梯停下不动了
    shang = 1; //关闭上箭头
    zhong = 1;
    }else
    flag_stop = 1; //电梯继续运行
    }
    else if(dt_value == 6) //在第6层
    {
    value = dt_7 + dt_8;
    if(value == 0) //说明上面没有人按下
    {
    dt_s_x = 0; //电梯停下不动了
    shang = 1; //关闭上箭头
    zhong = 1;
    }else
    flag_stop = 1; //电梯继续运行
    }
    else if(dt_value == 7) //在第7层
    {
    value = dt_8;
    if(value == 0) //说明上面没有人按下
    {
    dt_s_x = 0; //电梯停下不动了
    shang = 1; //关闭上箭头
    zhong = 1;
    }else
    flag_stop = 1; //电梯继续运行
    }
    else if(dt_value == 8) //在第8层
    {
    dt_s_x = 0; //电梯停下不动了
    shang = 1; //关闭上箭头
    zhong = 1;
    }
    }
    }
    四、 proteus仿真设计
    Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/199778.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每天分享五款工具,让大家工作生活更顺心

​ 快乐不是在于拥有什么,而在于我们和别人分享什么。每天分享五款工具,让大家工作办公更顺心就是我最大的快乐。 1.沙盒软件——Sandboxie ​ Sandboxie是一款可以在沙盒中运行程序的软件,它可以保护用户的系统和数据免受恶意软件、病毒和其他威胁的影…

如何利用 AI 写一本书并实现被动收入

如何每个月写一本能赚 5000 美元的书?不少人不知道如何在一周内写作和出版一本书 这里有个教程教你如何利用 AI 写一本书并实现被动收入 [收藏起来以备后用] 推出书友智能写作工具:Bookwiz 不用花几年时间独自写作一本小说,人工智能可以作…

PaddleClas学习2——使用PPLCNet模型对车辆朝向进行识别(python)

使用PPLCNet模型对车辆朝向进行识别 1. 配置PaddlePaddle,PaddleClas环境2. 准备数据2.1 标注数据格式2.2 标注数据3. 模型训练3.1 修改配置文件3.2 训练、评估4 模型预测1. 配置PaddlePaddle,PaddleClas环境 安装:请先参考文档 环境准备 配置 PaddleClas 运行环境。 2. 准…

【docker】Docker网络与iptables

Docker能为我们提供很强大和灵活的网络能力,很大程度上要归功于与iptables的结合。在使用时,你可能没有太关注到 iptables在其中产生的作用,这是因为Docker已经帮我们自动的完成了相关的配置。 iptables在Docker中的应用主要是用于网络流量控…

【STM32】CRC(循环冗余校验)

一、CRC的背景知识 1、什么是CRC (1)CRC(Cyclic Redundancy Check),循环冗余校验 (2)什么是校验,为什么需要校验:数据传输,数据存储过程中需要使用到的 (3)什么是冗余:表示比实际上要传输的数据…

【MySQL】聚合函数、group by、update、delete

聚合函数、group by、update、delete 前言正式开始update将孙悟空同学的数学成绩变更为 80 分将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分将总成绩倒数前三的 3 位同学的数学成绩加上 30 分将所有同学的语文成绩更新为原来的 2 倍 delete删除孙悟空同…

51单片机/STM32F103/STM32F407学习1_点亮LED灯

目录: 基础知识单片机从0实现单片机GPIO介绍 参考连接: 野火霸天虎教程 https://doc.embedfire.com/products/link/zh/latest/mcu/stm32/ebf_stm32f407_batianhu_v1_v2/download/stm32f407_batianhu_v1_v2.html x.1 基础知识 x.1.1 指针中的取地址&a…

Wireshark的数据包它来啦!

通过Wireshark工具,可以轻松的看到网卡的数据信息。通过Wireshark显示的数据包内容信息,通常分七栏,介绍一下: 1No.: 数据包编号。 2.Time Time显示时间,以1号数据包发生开始计时。 3.Source Source显示内容…

Redis篇---第十二篇

系列文章目录 文章目录 系列文章目录前言一、Memcache与Redis的区别都有哪些?二、单线程的redis为什么这么快三、redis的数据类型,以及每种数据类型的使用场景前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇…

【变换器Transformers · 巴伦 - - 平衡与非平衡Baluns and ununs】

目录 1. 介绍2. 常见巴伦应用3. 巴伦理论与平衡系统和非平衡系统简介4. 常见的双端系统:4.1. 射频馈线4.2. 负载4.3. 信号源 5. 巴伦模式与技术6. 铁芯线平衡-不平衡转换器(隔离和自耦变压器平衡-不平衡转换器)7. 传输线的平衡巴伦和变阻抗巴…

筒仓料位监测|敢不敢对“精度”下狠手!您家筒仓料位测得准吗?

您家是不是还在人工敲仓估算? 您能精确知道料位和库存吗? 您能实时看到库存盈亏吗? 筒仓里装了什么?用了多少? 什么时候进料最划算? 您家的筒仓管理方式可靠吗? 上海思伟筒仓料位监测方案 看…

1.rk3588的yolov5运行:pt_onnx_rknn转换及rknn在rk3588系统python运行

自己有点笨,查资料查了一周才完美的实现了yolov5在rk3588环境下的运行,在这里写具体步骤希望大家少走弯路。具体步骤如下: 一、yolov5的原代码下载及pt文件转换为onnx文件 1.yolov5的原代码下载及环境搭建 在这里一定要下载正确版本的源代码…

1. 基础语法

文章目录 一些基本的概念JDK 和JREJava语言的编译原理编译器和jdk的安装 编译器的基础介绍新建项目的规范src文件介绍src规范强调包 ModuleIJ的一些特殊的操作分屏写代码去掉代码提示的大小写限制注释设置文件编码设置 设置回车快捷键 Java语法基本概念关键字修饰符 与 非修饰符…

一篇文章让你彻底了解Java算法「十大经典排序算法」

✍️作者简介:码农小北(专注于Android、Web、TCP/IP等技术方向) 🐳博客主页: 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN 🔔如果文章对您有一定的帮助请👉关注✨、点赞&…

5款免费BI数据可视化工具,2023年最新精选推荐!

BI可视化工具顾名思义是进行数据分析和可视化的软件,旨在将数据以表格、图表、仪表盘等形式展示出来,让用户能够更加直观了解其业务状况、发现问题,并在必要时进行决策。   市面上BI数据可视化工具很多,目前比较火的像国外的Tabl…

文本转语音

免费工具 音视频转译 通义听悟 | https://tingwu.aliyun.com/u/wg57n33kml5nkr3p 音色迁移 speechify | https://speechify.com/voice-cloning/ 视频生成 lalamu | http://lalamu.studio/demo/ 画质增强 topazlabs video AI | https://www.topazlabs.com 付费工具 rask | htt…

亚马逊出口电热毯日本PSE认证需要什么资料解析

电热毯出口日本需要办理PSE认证,电热毯,又名电褥,是一种接触式电暖器具。 PSE认证介绍是日本强制性认证,包含安全及EMI,用以证明电子电气等产品符合日期电气用品安全法或国际IEC标准的要求。日本电气用品安全法规定&am…

做外贸要学会分析客户情况

最近在某产品的专业群里询问一款产品,看谁可以做,然后很快就有一个自称是工厂的人加上了我。因为自己本身并不懂这个产品,很多他们发的问题自己都答不上来。我就如实告诉他自己是个新手,可以把你们现在能做的,或者已经…

openfeign整合sentinel出现异常

版本兼容的解决办法:在为userClient注入feign的接口类型时,添加Lazy注解。 Lazy注解是Spring Framework中的一个注解,它通常用于标记Bean的延迟初始化。当一个Bean被标记为Lazy时,Spring容器在启动时不会立即初始化这个Bean&…

什么是多域名证书?

多域名证书是指同一个证书中包含多个域名,能够在多个站点之间共享一份证书,实现一个站点对应多个域名的情况。多域名证书非常适合需要跨多个站点部署的应用,例如企业的子站点、博客等。 特点 多域名证书的优点包括以下几个方面:…