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

一、系统方案
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.mzph.cn/news/154224.shtml

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

相关文章

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

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

MyBatis框架——Mybatis操作数据库之简单的insert操作的实现

入门_MyBatis中文网https://mybatis.net.cn/getting-started.html一些配置文件的模板可以从mybatis的官网中找到。 一、MyBatis操作数据库步骤 1、读取MyBatis配置文件mybatis-config.xml。 mybatis-config.xml作为mybatis的全局配置文件,配置MyBatis的运行环境等…

【Java 进阶篇】JQuery 遍历 —— 无尽可能性的 `each` 之旅

在前端的征途中,操作元素是开发者不可避免的任务之一。而在 JQuery 中,each 方法则是处理这个任务的得力助手。本文将深入探讨 each 方法的奇妙之处,以及它与原生的 for...of 循环的关系,带你领略无尽可能性的遍历之旅。 起步&am…

2023APMCM亚太杯/小美赛数学建模竞赛优秀论文模板分享

一、模板介绍 二、注意事项 将论文划分小节时,应避免在小节中出现大段的文字叙述,这样的叙述会妨碍评委在浏览论文时掌握论文的要点。重要的句子,包括首次定义的概念,用黑体书写。 重要的数学公式应另起新行单独列出。建模所用的…

微信小程序会议OA-登录获取手机号流程登录-小程序导入微信小程序SDK(从微信小程序和会议OA登录获取手机号到登录小程序导入微信小程序SDK)

目录 获取用户昵称头像和昵称 wx.getUserProfile bindgetuserinfo 登录过程 登录-小程序 wx.checkSession wx.login wx.request 后台 准备数据表 反向生成工具生成 准备封装前端传过来的数据 小程序服器配置 导入微信小程序SDK application.yml WxProperties …

HarmonyOS从基础到实战-高性能华为在线答题元服务

最近看到美团、新浪、去哪儿多家互联网企业启动鸿蒙原生应用开发,这个HarmonyOS NEXT越来越引人关注。奈何当前不面向个人开发者开放,但是我们可以尝试下鸿蒙新的应用形态——元服务的开发。 元服务是基于HarmonyOS提供的一种面向未来的服务提供方式&…

如何在外部数据库中存储空间化表时使用Mapinfo_mapcatalog

开始创建地图目录表之前 您将使用EasyLoader在要使用的数据库中创建地图目录表。EasyLoader与MapInfo Pro一起安装。 (工具“DBMS_Catalog”不再随MapInfo Professional 64位一起提供,因为它的功能可以在EasyLoader工具中找到。) ​ 注&…

湖科大计网:传输层

一、传输层概述 一、基本概念 传输层是端到端的协议。 因特网的两种不同的传输层协议: TCP:面向连接 UDP:无连接 我们在学习的过程中,只需要关注传输层之间的通信,不需要关注传输层协议数据是经过路由器转发至目的网络…

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

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

Redis篇---第十二篇

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

你真的了解 Cookie 和 Session 吗?

文章目录 Cookie 和 Session总结 Cookie 和 Session cookie HTTP cookie(web cookie、browser cookie)是服务器发送给用户 web 浏览器的一小段数据。浏览器可能会存储 cookie,并在以后的请求中将其发送回同一台服务器。通常,HTTP …

【OpenGauss源码学习 —— 列存储(ColumnTableSample)】

执行算子(ColumnTableSample) 概述ColumnTableSample 类ColumnTableSample::ColumnTableSample 构造函数ColumnTableSample::~ColumnTableSample 析构函数ExecCStoreScan 函数ColumnTableSample::scanVecSample 函数ColumnTableSample::getMaxOffset 函数…

pikachu靶场-暴力破解攻略

pikachu暴力破解 基于表单的暴力破解 抓包发送到intruder 添加两个变量 下图攻击模式需要选择cluster bomb 用户名处添加几个常见的用户名 密码处则添加密码字典 如图可见有一条密码已经爆出 登录成功 验证码绕过(on server) 输入验证码后提交 抓包 然后发送到repeater先…

vue中data属性为什么是一个函数?

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-data属性 目录 为什么data属性是一个函数而不是一个对象? 一、实例和组件定义dat…

解锁数据库运维秘籍:掌握AntDB-T动态共享内存,提升进程间通信效率

动态共享内存是AntDB数据库通信的重要手段,本文主要阐述AntDB-T数据库动态共享内存的实现原理、实现方式与使用方法。 AntDB-T数据库是一款企业级通用分布式关系型数据库,其数据库内核是基于进程模型实现的,因此进程间通信(IPC&am…

Appium移动自动化测试—如何安装Appium

前言 Appium 自动化测试是很早之前就想学习和研究的技术了,可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。 反观各种互联网的招聘移动测试成了主流,如果再不去学习移动自动化测试技术将会被淘汰。 web自动化测试的路线是这样的&#xff1…

基于单片机的公共场所马桶设计(论文+源码)

1.系统设计 本课题为公共场所的马桶设计,其整个系统架构如图2.1所示,其采用STC89C52单片机为核心控制器,结合HC-SR04人体检测模块,压力传感器,LCD1602液晶,蜂鸣器,L298驱动电路等构成整个系统&…

1445 雉兔同笼

Tint(input()) for i in range(T):s input().split()head int(s[0])foot int(s[1])rabbitfoot/2-headchicken2*head-foot/2if rabbit>0 and chicken>0 and rabbit.is_integer():print(int(chicken),int(rabbit))else:print(-1)

多协议数据库管理软件 Navicat Premium 16 mac中文版功能

Navicat Premium 16 mac是一款跨平台数据库管理工具,支持多种数据库类型,如MySQL、MariaDB、Oracle、SQLite、PostgreSQL等等。它提供了丰富的数据库管理功能和工具,可以帮助开发人员和数据库管理员快速地创建、管理和维护数据库。 Navicat P…

比赛倒计时4天,快来做做2023年小学生古诗文大会复赛在线模拟题

2023年第八届上海小学生古诗文大会复选(复赛)定于11月25日上午举办(即本周六),具体安排和操作手册、注意事项请看我之前发布的文章:2023年11月25日小学生古诗文大会复选(复赛)答题操…