新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的電梯控制程序

        基于單片機的電梯控制程序

        作者: 時間:2016-12-01 來源:網絡 收藏
        if(dw1==0&&jb==1)
        { lch=1;fg=1;lc1=1; }
        if((dw2x==0&&jb==1)||(sb==1&&dw2s==0))
        { lch=2;fg=1;lc2=1;dw2=0; }
        else
        dw2=1;
        if((dw3x==0&&jb==1)||(sb==1&&dw3s==0))
        { lch=3;fg=1;lc3=1;dw3=0; }
        else
        dw3=1;
        if(dw4==0&&sb==1)
        { lch=4;fg=1;lc4=1; }
        if(dw1==0||dw2==0||dw3==0||dw4==0)
        { fg1=0;lch12=0;lch23=0;lch34=0; }
        if(jylc!=0)
        {
        if(jylc>lch && fg1==0)
        { jd2=0;jd3=1; sb=1;jb=0; led=0; } //電梯上升
        if(jylc
        { jd3=0;jd2=1; sb=0;jb=1; led=1;} //電梯下降
        if(jylc==lch && fg1==0)
        { jd2=1;jd3=1; sb=0;jb=0;lc1=1;lc2=1;lc3=1;lc4=1; } //電梯停止
        if(lch12==1)
        {
        if(jylc==1)
        { jd3=0;jd2=1; sb=0;jb=1; led=1; } //電梯下降
        if(jylc>=2)
        { jd2=0;jd3=1; sb=1;jb=0; led=0; } //電梯上升
        }
        if(lch23==1)
        {
        if(jylc<=2)
        { jd3=0;jd2=1; sb=0;jb=1; led=1; } //電梯下降
        if(jylc>=3)
        { jd2=0;jd3=1; sb=1;jb=0; led=0; } //電梯上升
        }
        if(lch34==1)
        {
        if(jylc<=3)
        { jd3=0;jd2=1; sb=0;jb=1; led=1; } //電梯下降
        if(jylc>=4)
        { jd2=0;jd3=1; sb=1;jb=0; led=0; } //電梯上升
        }
        }
        if(lch!=lch1||fg2==1)
        {
        fg2=0;
        switch(lch)
        {
        case 1:
        {
        for(i=0;i<8;i++)
        {
        SCL=0;
        Delay(1);
        if(i==0||i==7)
        SDA=1;
        else
        SDA=0;
        SCL=1;
        Delay(1);
        }
        } break;
        case 2:
        {
        for(i=0;i<8;i++)
        {
        SCL=0;
        Delay(1);
        if(i==2||i==7)
        SDA=0;
        else
        SDA=1;
        SCL=1;
        Delay(1);
        }
        } break;
        case 3:
        {
        for(i=0;i<8;i++)
        {
        SCL=0;
        Delay(1);
        if(i==2||i==4)
        SDA=0;
        else
        SDA=1;
        SCL=1;
        Delay(1);
        }
        } break;
        case 4:
        {
        for(i=0;i<8;i++)
        {
        SCL=0;
        Delay(1);
        if(i==1||i==5||i==4)
        SDA=0;
        else
        SDA=1;
        SCL=1;
        Delay(1);
        }
        } break;
        }
        lch1=lch;
        }
        }
        }
        /*------------------------------------------------
        延時函數,含有輸入參數 unsigned int t,無返回值
        unsigned int 是定義無符號整形變量,其值的范圍是
        0~65535
        ------------------------------------------------*/
        void Delay(unsigned int t)
        {
        while(--t);
        }
        /*------------------------------------------------
        定時器初始化子程序
        ------------------------------------------------*/
        void Init_Timer0(void)
        {
        TMOD |= 0x01; //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
        //TH0=0x00; //給定初值
        //TL0=0x00;
        EA=1; //總中斷打開
        ET0=1; //定時器中斷打開
        TR0=1; //定時器開關打開
        }
        /*------------------------------------------------
        定時器中斷子程序
        ------------------------------------------------*/
        void Timer0_isr(void) interrupt 1
        {
        TH0=(65536-5000)/256; //重新賦值 5ms
        TL0=(65536-5000)%256;
        num++;
        if(num<20)
        {
        led1=0;
        if(jd2==1&&jd3==1&&mb==0)
        led=0;
        }
        else
        {
        led1=1;
        if(jd2==1&&jd3==1&&mb==0)
        led=1;
        }
        if(mb==1)
        {
        if(num%10==0)
        led=~led;
        if(num==200)
        led=1;
        }
        if(num==200)
        {
        num=0;
        num2++;
        if(num2==60)
        { num2=0;fg2=1; }
        if(tz==0) // 長按停止鍵 關閉總電源
        num1++;
        else
        num1=0;
        if(num1>2)
        jd1=0;
        }
        }
        上一頁 1 2 下一頁

        關鍵詞: 單片機電梯控

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 扬中市| 潞城市| 于田县| 江西省| 南溪县| 镇赉县| 梁平县| 溧水县| 藁城市| 定远县| 景谷| 孝感市| 岚皋县| 武邑县| 珲春市| 临沭县| 河源市| 祁阳县| 琼结县| 苍梧县| 壤塘县| 阳新县| 电白县| 威海市| 滨州市| 彰武县| 天峻县| 贞丰县| 伊春市| 大兴区| 新邵县| 武强县| 东源县| 四子王旗| 宁河县| 濮阳市| 顺义区| 奉新县| 印江| 章丘市| 榕江县|