在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關(guān) 閉

            新聞中心

            EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于MDB/ICP協(xié)議的自動(dòng)售賣系統(tǒng)的主控制器

            基于MDB/ICP協(xié)議的自動(dòng)售賣系統(tǒng)的主控制器

            作者: 時(shí)間:2011-05-23 來源:網(wǎng)絡(luò) 收藏

            {
            TMOD =0xf0;
            TMOD |=0x01; //設(shè)置定時(shí)器0為方式1(16位)
            TH0=T_RESPONSE;
            TL0=0x00; //設(shè)置超時(shí)門限
            TF0=0;
            TR0=1; //定時(shí)器0使能
            While (!RI !TF0)
            ; //等待接收字節(jié)直至超時(shí)
            TF0=0;
            if(RI){ //已接收字節(jié)
            RI=0;
            *byte=SBUF; //返回字節(jié)值
            *bMode=RB8; //返回方式位
            return 1;
            }else{ //超時(shí)
            RI=0;
            return 0;
            }
            }
            (3)數(shù)據(jù)塊的傳送
            這部分與下面的會(huì)話部分放在一個(gè)函數(shù)體內(nèi)實(shí)現(xiàn)。
            (4)會(huì)話

            本文引用地址:http://www.biyoush.com/article/162064.htm

            這是MDB會(huì)話控制的核心部分。根據(jù)需要傳送數(shù)據(jù)包,計(jì)算校驗(yàn)字節(jié),控制方式位,在時(shí)序允許的響應(yīng)時(shí)間內(nèi)接愛外設(shè)返回的數(shù)據(jù),做出ACK或NAK等反應(yīng)。并且按照標(biāo)準(zhǔn)中堆薦的方式處理異常情況,當(dāng)接受數(shù)據(jù)超時(shí)或校驗(yàn)和錯(cuò)時(shí),重復(fù)發(fā)送命令多次,以增強(qiáng)容錯(cuò)性能。將接收到的數(shù)據(jù)返回給調(diào)用乾,并返回結(jié)果碼。源程序如下:
            //與外設(shè)會(huì)話,在調(diào)用之前確認(rèn)譯碼器選通MDB總線
            uchar Session(uchar add,uchar dat[],uchar count)
            //形參:add——VMC發(fā)送的地址指令字節(jié)
            // dat[]——VMC發(fā)送的數(shù)據(jù)塊
            // count——數(shù)據(jù)塊的大小
            //返回值:0——外設(shè)應(yīng)答ACK
            //非0且小于0x80——外設(shè)應(yīng)答的數(shù)據(jù)塊的大小
            //大于等于0x80——會(huì)話中出錯(cuò)
            //外設(shè)應(yīng)答的數(shù)據(jù)塊存放在全局?jǐn)?shù)組uchar recBuff[]
            {
            uchar data check,i,j,err;
            uchar data mode;
            for(j=0;j5;j++){ //最多重復(fù)發(fā)送命令5次
            check=0;
            err=0;
            TransmitByte(add,1); //發(fā)送地址字節(jié)
            Check +=add; //計(jì)算CHK
            For(i=0;icount,i++){ //發(fā)送數(shù)據(jù)字節(jié)
            TransmitByte(dat[i],0);
            check +=dat[i];
            }
            TransmitByte(check,0); //發(fā)送CHK
            for (i=0,check=0,mode=0;
            !mode iMAX_BLOCK_SIZE !err;
            i++)
            {//反復(fù)接收字節(jié)直到方式位為1或出錯(cuò)
            //接收到的數(shù)據(jù)存在全局?jǐn)?shù)組recBuff[]里
            if(!ReceiveByte(recBuff+i,mode))
            //超時(shí)。外設(shè)可用超時(shí)表示NAK
            err=i?ERR_TIME_OUT:NAK;
            else if (i= =0 recBuff[i]= =NAK mode)
            //收到NAK
            err = NAK;
            else if (!mode)
            //方式位為0表示還有數(shù)據(jù)
            check +=recBuff[i];
            } //for i
            if(!err){ //未發(fā)生錯(cuò)誤
            if (!mode){
            //收完36個(gè)字節(jié)還未結(jié)束
            TransmitByte(NAK,0);
            err=ERR_NO_MODE_BIT;
            }else if (i>1) {
            //收到數(shù)據(jù)塊
            if(check !=recBuff[i-1]){ //校驗(yàn)和錯(cuò)
            TransmitByte(NAK,0);
            err=ERR_CHECKSUM;
            } else{
            //一切正常,發(fā)送ACK后跳出循環(huán)
            TransmitByte(ACK,0);
            break;
            }
            } else
            //收到外設(shè)傳來的ACK
            break;
            }//if(!err)
            Wait(T_RESPONSE); //防止與外設(shè)數(shù)據(jù)沖突
            }//for j
            //返回接收到的數(shù)據(jù)塊大小或出錯(cuò)代碼
            return err?err:(i-1);
            }
            本文使用DS5002FP實(shí)現(xiàn)了對(duì)MDB總線的控制與訪問。通過將進(jìn)行分解,很好地實(shí)現(xiàn)了總線驅(qū)動(dòng)。實(shí)踐證明該驅(qū)動(dòng)程序穩(wěn)定、可靠,大大降低了上層界面開發(fā)的難度,提高了的可維護(hù)性,節(jié)約了成本


            上一頁 1 2 3 下一頁

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉