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

一、系统方案
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.hqwc.cn/news/206635.html

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

相关文章

关于ElectronVue3中集成讯飞星火AI

前言:我的最终目的是为了在QQ上集成一个AI机器人,因此在这里先实现一个简单的集成 先上效果图 总体还是很简单的,我在调用websock获取回复内容的基础上另外集成了一个事件总线,让我们在调用获取消息的时候能够更加方便快捷 工具代…

表格制作软件排行榜,热门做表格的软件推荐

在数字化时代,表格不仅仅是企业管理和数据整理的重要工具,更是学术研究、项目规划以及日常生活中必不可少的一部分。为了更高效地进行表格制作,选择一款优秀的表格制作软件是至关重要的。在众多的软件中,我们特别推荐一款备受好评…

“KeyarchOS:国产Linux新星的崛起与创新之路“

简介 KeyarchOS是一款由浪潮信息自主研发的服务器操作系统。它因为几个特点而受到我的青睐和一些用户的关注。 首先,KeyarchOS注重安全性和稳定性。它有一些防护和隔离功能,来帮助系统稳定运行,而且是中文语言更接地气。 其次,Ke…

银行数字化转型导师坚鹏:BLM银行数字化转型战略培训圆满结束

在数字化转型背景下,中国金融出版社金融文化研训院为了落实监管政策《关于银行业保险业数字化转型的指导意见》,充分认识到学习银行银行数字化转型战略的价值和重要性,特别举办《2023年金融机构数字化转型及数字化风控与运营管理研讨班》。为…

STM32F103C8T6第5天:独立看门狗、窗口看门狗、dma实验

1. 独立看门狗IWDG介绍(341.45) 什么是看门狗? 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断&#…

python实现鼠标实时坐标监测

python实现鼠标实时坐标监测 一、说明 使用了以下技术和库: tkinter:用于创建GUI界面。pyperclip:用于复制文本到剪贴板。pynput.mouse:用于监听鼠标事件,包括移动和点击。threading:用于创建多线程&…

除夕不放假HR如何做

国务院办公厅发布了 关于2024年部分节假日安排的通知 全文如下 各省、自治区、直辖市人民政府,国务院各部委、各直属机构: 经国务院批准,现将2024年元旦、春节、清明节、劳动节、端午节、中秋节和国庆节放假调休日期的具体安排通知如下。 …

微软Copilot即将对大陆开放,一起来看看都有什么好用的功能

微软发布了Copilot,12月1日起对大陆用户开放,以下是Copilot的11个新功能,你一定不想错过:1. PowerPoint: 将Word文档转换为演示文稿。从文件中快速创建演示文稿。通过关键幻灯片总结冗长的演示文稿。使用提示添加新的…

动态规划:2304. 网格中的最小路径代价

2304. 网格中的最小路径代价 给你一个下标从 0 开始的整数矩阵 grid ,矩阵大小为 m x n ,由从 0 到 m * n - 1 的不同整数组成。你可以在此矩阵中,从一个单元格移动到 下一行 的任何其他单元格。如果你位于单元格 (x, y) ,且满足…

优质猫罐头有哪些品牌?分享5款宠物店自用值得推荐的猫罐头!

不知不觉已经开宠物店7年啦,店里的猫猫大大小小也算是尝试过很多品牌的猫罐头了。优质猫罐头有哪些品牌?在猫罐头的选购上一开始我也是踩了很多坑,各种踩雷。我深知猫罐头的各种门道,新手一不小心就会着道了。 优质猫罐头有哪些品…

海外IP代理:数据中心代理IP是什么?好用吗?

数据中心代理是代理IP中最常见的类型,也被称为机房IP。这些代理服务器为用户分配不属于 ISP(互联网服务提供商)而来自第三方云服务提供商的 IP 地址。数据中心代理的最大优势——它们允许在访问网络时完全匿名。 如果你正在寻找海外代理IP&am…