久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3075|回復: 3
打印 上一主題 下一主題
收起左側

求一基于90c51單片機簡易四層電梯程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:209556 發表于 2017-6-21 17:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
3黑幣
能夠通過4*4按鍵到達指定樓層   也可通過紅外遙控控制
LCD1602顯示當前樓層數   每到一層實現蜂鳴器提示
在普中的盒子上做

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:82765 發表于 2017-6-21 19:24 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:209556 發表于 2017-6-21 20:16 來自手機 | 只看該作者
通過按鍵選擇一二三四樓,也可通過紅外按鍵控制,只顯示樓層和上下樓狀態
回復

使用道具 舉報

地板
ID:209556 發表于 2017-9-9 10:26 | 只看該作者

#include<reg51.h>
#include"lcd.h"

#define floor1 0x0C
#define floor2 0x18
#define floor3 0x5E
#define floor4 0x08
#define speed  2
#define beet   25
#define up     17
#define down   24

sbit IRIN=P3^2;
sbit beet_b=P3^7;

unsigned char code CDIS1[13]={"  it is the  "};
unsigned char code CDIS2[13]={"     floor   "};
unsigned char table2[8]={0x04,0x04,0x04,0x04,0x04,0x15,0x0e,0x04};
unsigned char table1[8]={0x04,0x0e,0x15,0x04,0x04,0x04,0x04,0x04};
unsigned char IrValue[6];
unsigned char motor_l[]={0x09,0x0a,0x06,0x05};
unsigned char motor_r[]={0x06,0x0a,0x09,0x05};
unsigned char motor_stop=0x00;
unsigned char Time=0;
unsigned char motor_Time=0;
unsigned char high=0;
unsigned char floor=1,layer=1;
unsigned char a=0,b=0;
void IrInit();
void t0init();
void lcd_init_up();
void lcd_init_down();
void DelayMs(unsigned int x);
void delay(int time);
void motor(unsigned char n,unsigned char o);
void main()
{
        unsigned char i;
        IrInit();
  t0init();
        LcdInit();
        lcd_init_up();
  lcd_init_down();
        LcdWriteCom(0x80);
        for(i=0;i<13;i++)
        {
                LcdWriteData(CDIS1[i]);
        }
        LcdWriteCom(0x80+0x40);
        for(i=0;i<13;i++)
        {
                LcdWriteData(CDIS2[i]);
        }
        while(1)
        {
                switch (IrValue[2])
                {
                        case(floor1):
                                floor=1;break;
                        case(floor2):
                                floor=2;break;
                        case(floor3):
                                floor=3;break;
                        case(floor4):
                                floor=4;break;
                }
                if(floor>layer)
                {
                        a=floor-layer;
                        b=1;
                        LcdWriteCom(0x8e);
                  LcdWriteData(0x00);
                        LcdWriteCom(0xce);
                  LcdWriteData(CDIS1[0]);
                        motor(a,b);
                        layer=floor;
                }
                if(floor<layer)
                {
                        a=layer-floor;
                        b=0;
                        LcdWriteCom(0xce);
                  LcdWriteData(0x01);
                        LcdWriteCom(0x8e);
                  LcdWriteData(CDIS1[0]);
                        motor(a,b);
                        layer=floor;
                }
                        LcdWriteCom(0xc0+0x03);                       
                        LcdWriteData(floor+0x30);
        }

}

void DelayMs(unsigned int x)  
{
        unsigned char i;
        while(x--)
        {
                for (i = 0; i<13; i++)
                {}
        }
}
void delay(int time)
{
  int i,j;

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

void IrInit()
{
        IT0=1;
        EX0=1;
        EA=1;       
        IRIN=1;
}

void t0init()
{
        TMOD = 0x01;
    TH0 = 0x0B8;
    TL0 = 0x00;
    EA = 1;
    ET0 = 1;
        TR0 = 0;
}

void beet_a()
{
        high=beet;
        TR0=1;
        while(TR0)
        {
                beet_b=1;
          delay(5);
          beet_b=0;
          delay(5);
  }
}

void lcd_init_up()
{

        unsigned char i;
          LcdWriteCom(0x40);
                for(i=0;i<8;i++)
                {
            LcdWriteData(table1[i]);
                }

}
void lcd_init_down()
{


  unsigned char i;
          LcdWriteCom(0x48);
                for(i=0;i<8;i++)
                {
            LcdWriteData(table2[i]);
                }
}

void motor(unsigned char n,unsigned char o)
{
        if(o==0)
        {
                unsigned char j;
                high=up;
          for(j=0;j<n;j++)
          {
            TR0=1;
            while(TR0)
            {
                                unsigned char i;
              for(i=0;i<4;i++)
              {
                      P1=motor_l[i];
                      delay(speed);
                                        //P1=motor_stop;
              }
            }
          }
        }
        if(o==1)
        {
                unsigned char j;
                high=down;
          for(j=0;j<n;j++)
          {
            TR0=1;
            while(TR0)
            {
                                unsigned char i;
              for(i=0;i<4;i++)
              {
                      P1=motor_r[i];
                      delay(speed);
                                        //P1=motor_stop;
              }
            }
          }
        }
        beet_a();
}

void ReadIr() interrupt 0
{
        unsigned char j,k;
        unsigned int err;
        Time=0;
        DelayMs(70);

        if(IRIN==0)               
        {

                err=1000;                               
                while((IRIN==0)&&(err>0))       
                {
                        DelayMs(1);
                        err--;
                }
                if(IRIN==1)                       
                {
                        err=500;
                        while((IRIN==1)&&(err>0))                 
                        {
                                DelayMs(1);
                                err--;
                        }
                        for(k=0;k<4;k++)               
                        {
                                for(j=0;j<8;j++)       
                                {
                                        err=60;
                                        while((IRIN==0)&&(err>0))
                                        {
                                                DelayMs(1);
                                                err--;
                                        }
                                        err=500;
                                        while((IRIN==1)&&(err>0))       
                                        {
                                                DelayMs(1);
                                                Time++;
                                                err--;
                                                if(Time>30)
                                                {
                                                        EX0=1;
                                                        return;
                                                }
                                        }
                                        IrValue[k]>>=1;       
                                        if(Time>=8)                       
                                        {
                                                IrValue[k]|=0x80;
                                        }
                                        Time=0;       
                                }
                        }
                }
                if(IrValue[2]!=~IrValue[3])
                {
                        return;
                }
        }
}

void motor_time1() interrupt 1
{
  TH0 = 0x0B8;
  TL0 = 0x00;
        motor_Time++;
  P1=motor_stop;
        if(motor_Time==high)
        {
                TR0=0;
                motor_Time=0;
        }
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级毛片在线播放 | 亚洲视屏 | 久久久欧洲 | 国产精品嫩草影院精东 | 亚洲精品免费在线观看 | 久久机热 | 91亚洲精品久久久电影 | 天天视频一区二区三区 | 成人免费视频 | 天天久久| 91国语清晰打电话对白 | 国产精品一区二区久久久久 | 午夜久久久久 | 国产精品日日做人人爱 | 国产精品美女久久久久久免费 | 国产农村妇女精品一区 | 精品国产31久久久久久 | 国产精品无码久久久久 | 亚洲一区二区在线免费观看 | 在线免费观看a级片 | 免费黄色大片 | 国产精品久久久久不卡 | 精品一区二区三区免费毛片 | 在线看片福利 | 久久精品日 | 欧美在线视频免费 | 欧美日韩国产一区二区三区 | 91精品久久久久久久久久入口 | 国产欧美在线一区二区 | 久久久一区二区 | 久久最新 | 亚洲a网| 免费看淫片 | 成人做爰www免费看视频网站 | 国产亚洲精品综合一区 | 成人免费共享视频 | 激情小说综合网 | 亚洲免费一区二区 | 超碰在线播 | 日韩欧美国产精品一区 | 91精品国产91久久久久久三级 |