新聞中心

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

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

        作者: 時間:2016-12-01 來源:網絡 收藏
        #include //包含頭文件,一般情況不需要改動,
        //頭文件包含特殊功能寄存器的定義
        sbit SCL=P2^0;
        sbit SDA=P2^1;
        sbit led=P2^2;
        sbit led1=P1^5;
        sbit tz=P2^3; //停止按鈕
        sbit lc1=P2^4; //一層樓按鈕
        sbit lc2=P2^5; //二層樓按鈕
        sbit lc3=P2^6; //三層樓按鈕
        sbit lc4=P2^7; //四層樓按鈕
        sbit mb=P0^0; //門保險傳感器處理
        sbit dw1=P0^1; //一層樓到位處理
        sbit dw2x=P0^2; //一層樓到位處理
        sbit dw2s=P0^3; //一層樓到位處理
        sbit dw3x=P0^4; //一層樓到位處理
        sbit dw3s=P0^5; //一層樓到位處理
        sbit dw4=P0^6; //一層樓到位處理
        sbit jd1=P3^5; // 停止總電源常閉繼電器
        sbit jd2=P3^6; //上升繼電器
        sbit jd3=P3^7; //下降繼電器
        bit fg,fg1,fg2; //位處理
        bit sb,jb; // 上升標志位 下降標志位
        bit dw2,dw3; //二樓 三樓到位標志
        bit lch12; // 1-2樓層之間標志
        bit lch23; // 2-3樓層之間標志
        bit lch34; // 3-4樓層之間標志
        unsigned char num,num1,num2;
        unsigned char jylc; // 記憶層號變量
        void Delay(unsigned int t); //函數聲明
        void Init_Timer0(void);
        /*------------------------------------------------
        主函數
        ------------------------------------------------*/
        void main (void)
        {
        char i,a;
        char lch,lch1; // 樓層號變量 ,lch1 用在數碼管掃描時只掃描一次
        SDA=0;
        lch=2; fg=1;
        Delay(60);
        if(dw1==0)
        { lch=1;fg=1;lc1=1; }
        if(dw2x==0||dw2s==0)
        { lch=2;fg=1;lc2=1;}
        if(dw3x==0||dw3s==0)
        { lch=3;fg=1;lc3=1;}
        if(dw4==0)
        { lch=4;fg=1;lc4=1; }
        Init_Timer0(); //定時器初始化
        while (1) //主循環
        {
        if(lc1==1&&lc2==1&&lc3==1&&lc4==1)
        a=1;
        if(lc1==0&&a==1&&dw1!=0) //樓層選擇
        { a=0;jylc=1;lc1=0; }
        if(lc2==0&&a==1&&dw2!=0)
        { a=0;jylc=2;lc2=0; }
        if(lc3==0&&a==1&&dw3!=0)
        { a=0;jylc=3;lc3=0; }
        if(lc4==0&&a==1&&dw4!=0)
        { a=0;jylc=4;lc4=0; }
        if(tz==0||mb==1) //停止按鈕按下
        {
        lc1=1;lc2=1;lc3=1;lc4=1; //樓層按鈕復位
        jylc=0; //記憶樓層復位
        if(lch12==0&&lch23==0&&lch34==0&&(sb==1||jb==1))
        {
        fg1=1;
        if(lch==1&&sb==1)
        lch12=1;
        if(lch==2&&sb==1)
        lch23=1;
        if(lch==2&&jb==1)
        lch12=1;
        if(lch==3&&sb==1)
        lch34=1;
        if(lch==3&&jb==1)
        lch23=1;
        if(lch==4&&jb==1)
        lch34=1;
        }
        jd2=1;jd3=1; // 繼電器停止通電 電梯停止
        }

        上一頁 1 2 下一頁

        關鍵詞: 單片機電梯控

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 长阳| 太谷县| 五大连池市| 商洛市| 云阳县| 昆山市| 留坝县| 米泉市| 于都县| 香格里拉县| 忻州市| 莲花县| 托克托县| 佛山市| 深泽县| 南雄市| 邵武市| 鄂尔多斯市| 和平区| 双江| 皋兰县| 新余市| 天祝| 溆浦县| 潮安县| 逊克县| 吕梁市| 怀来县| 重庆市| 连云港市| 昌都县| 宿迁市| 栖霞市| 大方县| 东乌珠穆沁旗| 甘肃省| 伊通| 峨边| 福海县| 拉萨市| 道真|