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

一、系统方案
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仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++上层应用】6. 信号 / 中断

文章目录 【 1. signal 函数 】【 2. raise函数 】 信号是由操作系统传给进程的 中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 CtrlC 产生中断。有些信号不能被程序捕获,但是下表所列信号可以在程序中捕…

手机 IOS 软件 IPA 签名下载安装详情图文教程

由于某些应用由于某些原因无法上架到 appStore 或者经过修改过的软件游戏等无法通过 appStore 安装,我们就可以使用签名的方式对相应软件的IPA文件进行签名然后安装到你的手机上 这里我们使用爱思助手进行签名安装,爱思助手支持两种方式,一种…

spring boot加mybatis puls实现,在新增/修改时,对某些字段进行处理,使用的@TableField()或者AOP @Before

1.先说场景,在对mysql数据库表数据插入或者更新时都得记录时间和用户id 传统实现有点繁琐,这里还可以封装一下公共方法。 2.解决方法: 2.1:使用aop切面编程(记录一下,有时间再攻克)。 2.1.1&am…

[⑤ADRV902x]: TES (Transceiver Evaluation Software) 使用

前言 在ADI官网的ADRV902x系列的参考设计软件包(地址:https://www.analog.com/cn/products/adrv9029.html#product-requirement )中包含了GUI软件TES (Transceiver Evaluation Software)。软件实用的功能非常多,比如可以用界面的…

无服务器开发实例|微服务向无服务器架构演进的探索

在当今的技术环境中,许多组织已经从构建单一的应用程序转变为采用微服务架构。微服务架构是将服务分解成多个较小的应用程序,这些应用程序可以独立开发、设计和运行。这些被拆分的小的应用程序相互协作和通信,为用户提供全面的服务。在设计和…

排名全球前列!Flat Ads再入选AppsFlyer广告榜单

近期,移动归因与营销分析公司AppsFlyer《广告平台综合表现报告》第16版重磅发布!盘点全球买量渠道表现,洞察移动营销行业最新格局。其中Flat Ads凭借实力和体量,入选AppsFlyer广告平台综合表现非游戏类Top级流量媒体4个全球榜单排…

电视家最新消息

11 月 20 日消息,电视家 App 出现了无法收看电视直播的情况。与此同时,“电视家 跑路”已经登上微博热搜榜单的第二位。 11月20日,知名电视直播类APP“电视家”一系列动作引起网友关注。 ​ 网友反映,平时用来看直播或者点播影…

广西柳州机械异形零部件三维扫描3D抄数全尺寸测绘建模-CASAIM中科广电

一、背景介绍 复杂机械异形零部件具有不规则的形状和复杂的结构,给生产制造带来了很大的检测难度。为了确保零部件的制造质量和精度,需要对零部件进行全面的尺寸检测和分析。 CASAIM三维扫描仪在机械异形零部件全尺寸检测应用可以实现对机械异形零部件…

Kamailio default-routing-logic-flowchart

不是我画的,是一个斯洛伐克的人画的 https://nil.uniza.sk/wp-content/uploads/files/image/SIP/kamailio/kamailio.png

电脑显示找不到mfc140.dll怎么办?哪个修复方法值得推荐

在电脑使用过程中,我们经常会遇到一些错误提示,例如"mfc140.dll文件缺失"这个问题可能会导致某些应用程序无法正常运行,可能给您带来困扰。本篇文章为您提供了六种有效解决此类问题的策略,使您能够迅速修复并恢复应用程…

使用Mate 40 Harmony OS 4.0版本运行 codelabs ArkUI demo运行非常卡顿,换Mate 60没事

服务类型 DevEco Studio 概述 使用Mate 40 Harmony OS 4.0版本运行 codelabs ArkUI demo运行非常卡顿,换Mate 60没事 官方回复添加链接描述 客户支持工程师 2023-11-21 14:37:19 GMT08:00 尊敬的开发者,您好, 该机型卡顿黑屏为内部已知问题…

数据库简介

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,博主会及时修改) 数据库介绍 什么是数据库 定义 数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据…

Prolog 中的逻辑探险:学习9组逻辑蕴涵公式

引言 上次写了16组等价公式定律,今天继续用Prolog写9组逻辑蕴涵公式。 感觉这些公式的名称与公式挺难一一对应来记忆的,只能多练习了. 1. 附加律 (Addition) A ⇒ A∨B 当你拿到一个苹果(A),突然你知道,即使有了梨(…

Adobe 2022,2023,2024永久安装包全家桶下载网盘下载和最全的安装教程!

收集整理:Adobe合集 最新:已更新到2024 资源包含:AE Adobe AE2022是一个非常强大的视频制作和后期制作软件,它可以让您制作出非常出色的电影特效、动画和其他非常优秀的视频作品。为了更好地使用这款软件,我们需要一些比较全面…

visionOS空间计算实战开发教程Day 2 使用RealityKit显示3D素材

我们在​​Day1​​中学习了如何创建一个visionOS应用,但在第一个Demo应用中我们的界面内容还是2D的,看起来和其它应用并没有什么区别。接下来我们先学习如何展示3D素材,苹果为方便开发人员,推出了RealityKit,接下来看…

【软件测试】一位优秀测试工程师具备哪些知识和经验?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 根据观察&#xf…

杨氏矩阵解法

每日一言 「 人生如逆旅,我亦是行人。 」--临江仙送钱穆父-苏轼题目 杨氏矩阵 有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。 解法思路 法一:…

手把手教你通过CODESYS V3进行PLC编程(一)

教程背景 宏集MC系列模块化控制器是基于Raspberry Pi的高性能4核控制器,运动控制循环时间最快可达500微秒,实现了计算能力和成本之间的最佳平衡,适用于多轴运动控制和CNC控制。 教程目的 本系列教程将使用宏集MC系列控制器,详细…

【接口自动化测试】HTTP协议详解

协议 简单理解,计算机与计算机之间的通讯语言就叫做协议,不同的计算机之间只有使用相同的协议才能通信。所以网络协议就是为计算机网络中进行数据交换而建立的规则,标准或约定的集合。 OSI模型 1978年国际化标准组织提出了“开放系统互联网…

seleninum 基础及简单实践

网页自动化 1 Selenium自动化基础 1.1 Selenium简介 Selenium自动化流程如下: 自动化程序调用Selenium客户端库函数客户端库会发送Selenium命令,给浏览器的驱动程序浏览器驱动程序接收到命令后,驱动浏览器去执行命令浏览器执行命令浏览器驱…