<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于雙模式USB接口的便攜式比色計設(shè)計

          基于雙模式USB接口的便攜式比色計設(shè)計

          作者: 時間:2009-09-01 來源:網(wǎng)絡(luò) 收藏

            2.單片機(jī)通過CH375芯片發(fā)送數(shù)據(jù)的處理步驟:

            (1)單片機(jī)執(zhí)行 WR__DATA命令向 CH375寫入要發(fā)送的數(shù)據(jù);

            (2)CH375被動地等待 主機(jī)在需要時取走數(shù)據(jù);

            (3)當(dāng) 主機(jī)取走數(shù)據(jù)后,CH375首先鎖定當(dāng)前 USB緩沖區(qū),防止重復(fù)發(fā)送數(shù)據(jù),然后將中斷引腳置低,向單片機(jī)請求中斷; (4)單片機(jī)進(jìn)入中斷服務(wù)程序,獲取中斷狀態(tài),然后將中斷引腳恢復(fù)高電平,取消中斷;

            (5)判斷中斷狀態(tài),為“上傳成功”,單片機(jī)執(zhí)行 WR_USB_DATA命令向 CH375寫入另一組要發(fā)送的數(shù)據(jù),若沒有不執(zhí)行。

           ?。?)單片機(jī)執(zhí)行 UNLOCK_USB命令,完成后釋放緩沖區(qū),繼續(xù) USB通訊;

           ?。?)退出中斷服務(wù)程序。 單片機(jī)主要在中斷中完成數(shù)據(jù)收發(fā)與處理,中斷服務(wù)程序流程圖如圖 4所示。

            3.2.2 計算機(jī)端的軟件 CH375在計算機(jī)端提供了應(yīng)用層,該是 CH375動態(tài)鏈接庫 DLL面向功能應(yīng)用的API,包括:設(shè)備管理API、數(shù)據(jù)傳輸API、中斷處理 API。 設(shè)計中采用 VC++6.0作為 PC端應(yīng)用軟件的開發(fā)平臺。首先在計算機(jī)上安裝 CH375器件的驅(qū)動程序,然后將動態(tài)鏈接庫 DLL拷貝到計算機(jī)中,最后將 DLL的訪問入口添加到 VC項(xiàng)目中,這樣就可以實(shí)現(xiàn)對 USB設(shè)備的應(yīng)用程序編程。

            4.結(jié)束語

            本文將 USB數(shù)據(jù)傳輸方式應(yīng)用于比色計儀器中,充分體現(xiàn)了便攜、靈活和可靠的優(yōu)點(diǎn)。該設(shè)備既可以直接與 PC機(jī)進(jìn)行數(shù)據(jù)通訊,工作于有計算機(jī)的實(shí)驗(yàn)室測試環(huán)境,也可以通過 U盤作為數(shù)據(jù)傳輸中介,使設(shè)備工作于在線檢測。本方案有效解決了傳統(tǒng)比色計儀器的局限,可以滿足不同測試環(huán)境的要求,并且數(shù)據(jù)存儲方便快速,具有廣闊的應(yīng)用前景。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: USB 雙模式 接口 便攜式

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();