在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于MDB/ICP協(xié)議的自動售賣系統(tǒng)的主控制器

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

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

            2 硬件結(jié)構(gòu)
            總線基礎(chǔ)上,筆者構(gòu)建了一個實際的原理圖如圖6所示。VMC通過MDB總線與投幣機(jī)、讀鈔機(jī)和讀卡器交互,控制外設(shè)的運轉(zhuǎn),并從外設(shè)獲得用戶的支持情況。同時,VMC也負(fù)責(zé)處理與用戶之間的交互,驅(qū)動液晶顯示,處理鍵盤輸入,驅(qū)動符合用戶需要的電機(jī)運轉(zhuǎn)出貨。在本項目中,VMC還需通過MODEM撥號連接公司總線的服務(wù)器,將銷售數(shù)據(jù)傳送回公司。


            如圖6所示,所有MDB外設(shè)均掛在同一總線上,由總線提供24V和5V的電源,數(shù)據(jù)線與單片機(jī)的串口相連。
            本項目中選用的單片機(jī)為DALLAS DS5002FP。該單片機(jī)代碼級兼容MCS-51系列單片機(jī),在使用外存的情況下仍然可以使用4個PO作為數(shù)據(jù)I/O,帶外設(shè)的能力較強(qiáng)。但它只有一個串口,控制MDB總線和控制MODEM都需要使用串口,因此必須將串口進(jìn)行復(fù)用。通過一個譯碼器實現(xiàn)選通功能。
            3 會話控制
            將VMC與外設(shè)之間通過MDB總線的會話分為四個層次:
            (1)串口初始化
            初始化串口時,主要工作是設(shè)置波率(9600)和傳輸方式(11位)。為順利獲得9600波特率,單片機(jī)采用的晶振為11.0592MHz。源代碼如下(采用Franklin C51語言編寫):
            // 一點常量定義
            #define uchar unsigned char
            #define T_RESPONSE 0xee //*5.0毫秒*/
            #define MAX_BLOCK_SIZF 36 /*數(shù)據(jù)塊最大長度*/
            #define ERR_TIME_OUT 0x81 /*超時*/
            #define ERR_NO_MODE_BIT 0x82*/未收到最后字節(jié)*/
            #define ERR_CHECKSUM 0x83 /*校驗和錯*/
            #define ACK 0x00
            #define RET 0xaa
            #define NAK 0xff
            //初始化串口
            void InitSerialPort()
            {
            SCON = 0xd0; //設(shè)置串口為方式3(9bit)
            TMOD =0x0f;
            TMOD I=0x20; //設(shè)置定時器1為方式2
            TR1 =1; //定時器1使能
            TH1 = 0xfd; //設(shè)定波行率:9600 NRZ
            PCON =0x7f; //Set SMOD=0
            RI=0;
            TI=0;
            }

            (2)字節(jié)的傳送
            這里需要注意的是:發(fā)送數(shù)據(jù)時要根據(jù)需要設(shè)置方式位,而接收數(shù)據(jù)時要返回方式位的值,以判斷是否收完所有數(shù)據(jù)。
            // 傳送字節(jié)
            void TransmitByte(uchar byte,bit mode)
            //形參:byte——準(zhǔn)備發(fā)送的字節(jié)
            // mode——預(yù)備要設(shè)置的方式位
            {
            TB8=mode; //設(shè)置方式位
            SBUF = byte; //發(fā)送字節(jié)
            While(!TI); //等待發(fā)送完畢
            TI=0;
            }
            //接收字節(jié)
            #pragma disable
            uchar ReceiveByte(uchar *byte,uchar *bMode)
            //形參:*byte——返回接收到的字節(jié)值
            // *bMode——返回接收到的字節(jié)的方式位
            //返回值:0—超時,1—成功接收



            評論


            相關(guān)推薦

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

            關(guān)閉