历史上的今天
返回首页

历史上的今天

今天是:2024年11月20日(星期三)

正在发生

2019年11月20日 | 单片机八层电梯控制系统 仿真图+源程序+电路原理图

2019-11-20 来源:51hei

 
单片机八层电梯控制仿真图

 

单片机八层电梯控制电路原理图

单片机八层电梯控制系统源程序代码:

#include                 //调用单片机头文件

#define uchar unsigned char  //无符号字符型 宏定义        变量范围0~255

#define uint  unsigned int         //无符号整型 宏定义        变量范围0~65535


//数码管段选定义       0    1    2    3   4           5        6         7          8           9        

uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xdf,0xdb

//                                           A        B         C          D           E   F        不显示

                                         };         //断码        


uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};


bit flag_100ms,flag_1s;        

bit flag_stop = 1;   //用做到了相应的楼停下


sbit beep  = P2^6;

sbit xia   = P2^0;

sbit zhong = P2^1;

sbit shang = P2^2;


uchar value2;


sbit led1 = P1^7;          //8个发光二极管定义

sbit led2 = P1^6;

sbit led3 = P1^5;

sbit led4 = P1^4;

sbit led5 = P1^3;

sbit led6 = P1^2;

sbit led7 = P1^1;

sbit led8 = P1^0;


uchar dt_1;  //1楼电梯标志位

uchar dt_2;  //2楼电梯标志位

uchar dt_3;  //3楼电梯标志位

uchar dt_4;  //4楼电梯标志位

uchar dt_5;  //5楼电梯标志位

uchar dt_6;  //6楼电梯标志位

uchar dt_7;  //7楼电梯标志位

uchar dt_8;  //8楼电梯标志位


uchar dt_value = 1;  //电梯到哪一层的变量

uchar dt_s_x ;    //电梯上下的标志位


/***********************1ms延时函数*****************************/

void delay_1ms(uint q)

{

        uint i,j;

        for(i=0;i                for(j=0;j<120;j++);

}



/********************独立按键程序*****************/

uchar key_can;         //按键值


void key()         //独立按键程序

{

        static uchar key_new;

        key_can = 20;                   //按键值还原

        P3 |= 0xff;

        if(P3 != 0xff)                //按键按下

        {

                delay_1ms(1);                     //按键消抖动

                if((P3 != 0xff) && (key_new == 1))

                {                                                //确认是按键按下

                        key_new = 0;

                        switch(P3)

                        {

                                case 0xfe: key_can = 1; break;          //得到按键值 

                                case 0xfd: key_can = 2; break;          //得到按键值 

                                case 0xfb: key_can = 3; break;          //得到按键值 

                                case 0xf7: key_can = 4; break;          //得到按键值 

                                case 0xef: key_can = 5; break;          //得到按键值 

                                case 0xdf: key_can = 6; break;          //得到按键值 

                                case 0xbf: key_can = 7; break;          //得到按键值 

                                case 0x7f: key_can = 8; break;          //得到按键值 

                        }

                }                        

        }

        else 

                key_new = 1;        

}


void key_with()

{

        if(key_can == 1)

        {

                led1 = 1;         //点亮发光二极管

                dt_1 = 1;         //

        }                

        if(key_can == 2)

        {

                led2 = 1;         //点亮发光二极管

                dt_2 = 1;

        }        

        if(key_can == 3)

        {

                led3 = 1;        //点亮发光二极管

                dt_3 = 1;

        }        

        if(key_can == 4)

        {

                led4 = 1;        //点亮发光二极管

                dt_4 = 1;

        }        

        if(key_can == 5)

        {

                led5 = 1;        //点亮发光二极管

                dt_5 = 1;

        }        

        if(key_can == 6)

        {

                led6 = 1;        //点亮发光二极管

                dt_6 = 1;

        }        

        if(key_can == 7)

        {

                led7 = 1;        

                dt_7 = 1;

        }        

        if(key_can == 8)

        {

                led8 = 1;        

                dt_8 = 1;

        }        

}

/*********************当电梯不动时、判断是向上、还是向下**********************/

void tiandi_shang_xia()

{

        static uchar value;

        if(dt_s_x == 0)

        {

                

                flag_stop = 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 = 1;   //电梯向上        

                                shang = 0;          //显示上

                                zhong = 0;        

                                xia = 1;                                         

                        }

                }                        

                if(dt_value == 2)         //电梯在第2层停下不走了

                {

                        value = dt_3 + dt_4 + dt_5 + dt_6 + dt_7 + dt_8; 

                        if(value != 0)

                        {

推荐阅读

史海拾趣

上海超致公司的发展小趣事

作为一家有社会责任感的企业,上海超致始终关注环境保护和可持续发展。公司积极推广绿色生产技术和资源循环利用方案,减少生产过程中的能源消耗和废弃物排放。同时,上海超致还积极参与社会公益活动,为社区和环境贡献自己的力量。这种对社会责任的关注和担当使得上海超致在电子行业中树立了良好的形象。

Herth+Buss Fahrzeugteile GmbH & Co KG公司的发展小趣事
如博物馆、图书馆等,监测人员活动,防止盗窃或破坏。
Eurotech公司的发展小趣事

为了满足不断变化的市场需求,Eurofarad公司始终保持着对产品创新的热情。公司不断投入研发资源,开发出了一系列具有竞争力的新产品。这些新产品不仅涵盖了不同规格和性能的电容器,还包括了一些与电容器相关的配套产品和解决方案。这些创新产品的推出,让Eurofarad公司在市场中保持了领先地位。

Epitex Inc公司的发展小趣事

随着全球环保意识的不断提高,Epitex也积极响应环保号召,将环保理念融入到公司的生产经营中。他们采用环保材料和生产工艺,减少对环境的影响。同时,Epitex还积极参与环保公益活动,推动电子行业的绿色发展。

在可持续发展方面,Epitex也做出了积极努力。他们通过技术创新和产业升级,不断提高资源利用效率和产品附加值。同时,Epitex还注重与供应商和客户的合作,共同推动产业链的可持续发展。

CUI Devices公司的发展小趣事

在COVID-19全球大流行期间,CUI Devices展现出了高度的社会责任感。公司决定向那些致力于设计和制造抗击疫情关键医疗设备的OEM、制造商、志愿者和组织提供免费的产品样本。这些样本涵盖了呼吸器、呼吸机、血液分析仪、测试设备、患者监护仪、成像系统和家庭医用器材等多个领域。此外,公司还与全球的制造设施和分销合作伙伴紧密合作,以确保其多样化的产品组合能够随时满足市场需求。

Galaxy Semi-Conductor Co Ltd公司的发展小趣事

作为国内专业从事半导体分立器件的高新技术企业,飞虹电子科技一直致力于一线电子产品的生产、研发和销售。在第84届中国电子展上,飞虹电子展示了其新近研发的场效应管元器件和音响对管元器件,这些产品在家电制造领域有着广泛应用。飞虹电子通过引进国际前沿科技,结合市场需求进行战略性部署,不断提升产品科技含量,成为国内电子元器件行业的佼佼者。

问答坊 | AI 解惑

Vishay 推出新型超薄电感器

Vishay Intertechnology宣布推出占位面积为 2525,厚度仅为 3.0 毫米并且具有 1.0μH~22 μH 电感值的新型器件,从而扩展了其超薄、高电流的 IHLP 电感器系列。    凭借在各自封装尺寸类 ...…

查看全部问答>

matlab第二课---逻辑指令的用法!

逻辑就是或与非,位运算等等看看怎么回事!…

查看全部问答>

嵌入式系统SQLite开发

嵌入式系统应用SQLite开发需要注意那些问题? 另:    招聘,我公司(www.congxing.com.cn)招聘熟悉SQLite嵌入式开发的软件工程师。…

查看全部问答>

程序员的年龄限制

参加开发将近三个月了,却越来越困惑,首先是担心自己做程序员发展,其次感觉自己做的东西真是没什么深度,自己压根没用到任何什么算法什么东西的,大牛们给我指个路,程序这个路值的走下去么?…

查看全部问答>

求助—关于将st语言转化为plcopen的xml

大家好,现在开始做一个项目,涉及到将structure text语言转化为plcopen定义的xml文件,由于之前没有这方面经验,所以不知道有没有什么工具进行此方面工作,借此宝地特向各位高手求教,谢谢了。…

查看全部问答>

设计一个产品,最花精力是哪一部分?

最好说说是哪类产品. 主要是设计阶段,比如,方案,硬件,软件,调试,测试等等,可以补充, 调研,售后,维护这些可能伸缩性太大,不好比较. …

查看全部问答>

IAR中如何在C程序中定义section,以及在icf中初始化段

AR中如何在C程序中定义section,以及在icf中初始化段 比如我想在IAR的C程序中定义一个section,这个section只有一个函数 然后我想在icf中来初始化section,再在C程序中把这个section 的程序copy到ram中运行 实现步骤是 1)在C程序中定义一 ...…

查看全部问答>

关于输入捕获模式下数脉冲的个数,请大家帮忙啊

                                 输入捕获模式下数脉冲的个数时,频率大于20khz的就出错了,试图改变捕获的预分频值,结果是一样的,不知道怎么解决 ...…

查看全部问答>

SysTickPeriodSet();函数用法

请教高手 SysTickPeriodSet(1000)是多少秒?SysTickPeriodSet()的参数跟哪些配置有关?…

查看全部问答>

web版本Quartus ii 如何新建时序仿真文件(vector waveform file )

在ALTERA官网下载的web版本Quartus ii 如何新建时序仿真文件(vector waveform file )?是不是不能生成啊?  求解答…

查看全部问答>