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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3095|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

求一基于90c51單片機(jī)簡(jiǎn)易四層電梯程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:209556 發(fā)表于 2017-6-21 17:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
3黑幣
能夠通過(guò)4*4按鍵到達(dá)指定樓層   也可通過(guò)紅外遙控控制
LCD1602顯示當(dāng)前樓層數(shù)   每到一層實(shí)現(xiàn)蜂鳴器提示
在普中的盒子上做

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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:82765 發(fā)表于 2017-6-21 19:24 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

板凳
ID:209556 發(fā)表于 2017-6-21 20:16 來(lái)自手機(jī) | 只看該作者
通過(guò)按鍵選擇一二三四樓,也可通過(guò)紅外按鍵控制,只顯示樓層和上下樓狀態(tài)
回復(fù)

使用道具 舉報(bào)

地板
ID:209556 發(fā)表于 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;
        }
}


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产乱码精品1区2区3区 | 羞羞的视频免费观看 | 一区二区三区在线 | 欧 | 羞羞网站在线观看 | 成人在线国产 | 日本不卡一区二区 | 午夜av电影院 | 午夜精品久久久 | 一区二区三区电影网 | 波霸ol一区二区 | 九色一区 | 国产精品一区二区av | 欧美淫 | 一区视频在线播放 | 久久久免费少妇高潮毛片 | 亚洲日本一区二区 | 欧美精品一二区 | 国产高清性xxxxxxxx | 中文字幕成人 | 福利视频网站 | 亚洲精品在线免费看 | 蜜桃精品噜噜噜成人av | 久久久久一区二区三区四区 | 999久久久| 中文字幕一区二区三区在线乱码 | 日韩欧美在线一区 | 久久国产高清视频 | 久久大陆 | 国产日韩精品在线 | 91伊人网| 欧美性生活一区二区三区 | 成人在线视频观看 | 国产精品一区二区三 | 国产在线一区二区三区 | 久久五月婷 | 亚洲国产专区 | 伊人一二三 | 91在线色视频 | 日本不卡一区 | www.奇米| 狠狠久|