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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于ISA總線與KH-9300的數(shù)據(jù)采集系統(tǒng)軟件設(shè)計

          基于ISA總線與KH-9300的數(shù)據(jù)采集系統(tǒng)軟件設(shè)計

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

          1 引言
          該數(shù)據(jù)采集系統(tǒng)采用硬中斷方式,通過對-板卡上的8254定時器和8259中斷控制器編程定時觸發(fā)中斷并對外部脈沖計數(shù),設(shè)計中每隔1 s采集1次數(shù)據(jù),數(shù)據(jù)采集卡第0和1號通道采用串行方式并使用板卡上的內(nèi)部時鐘進行計時,第2、3、4、5號通道輸人外部計數(shù)脈沖計數(shù)。所有通道采用內(nèi)部門控信號。當串行的第0~1通道計數(shù)滿時,就向板卡上的8259中斷控制器的IN1引腳發(fā)出中斷指令。通過8259中斷控制器向計算機內(nèi)的8259A的中斷引腳(這里設(shè)計為第5號中斷引腳)發(fā)出中斷指令。CPU響應(yīng)中斷請求,執(zhí)行中斷程序,對板卡上第2、3、4、5號通道進行數(shù)據(jù)采集,并把采集后的數(shù)據(jù)寫入文件。

          本文引用地址:http://www.ex-cimer.com/article/195713.htm

          2 板卡及8254定時、計數(shù)常數(shù)的設(shè)置
          時鐘跳線的設(shè)置:0號通道選內(nèi)部時鐘,0和1兩通道級聯(lián),2~5號通道接外部脈沖,選外部時鐘。門控跳線設(shè)置為所有通道都選內(nèi)部門控;基地址設(shè)置為280H;中斷號設(shè)置為INT5(中斷向量號為13);內(nèi)部時鐘頻率設(shè)置為2 MHz。
          (1)定時常數(shù)的計算 定時系數(shù)=要求定時的時間/時鐘脈沖的周期。若定時的時間為1 s,內(nèi)部時鐘頻率為2 MHz。則時鐘脈沖的周期為1 s/2 MHz=0.5μs,定時系數(shù)為1s/0.5 μs=2×106=2 000 000。由于8254定時計數(shù)器6個通道為16位減計數(shù)器,每個通道計數(shù)值最大為216-1=65 5352 000 000。所以必須采用2個通道計時,設(shè)計中將第0通道和第1通道串聯(lián)。由2×106=1 000×2×103,則定時系數(shù):第0通道為2 000,第1通道為1 000。
          (2)計數(shù)通道的初始化 計數(shù)通道常數(shù)設(shè)置為最大值:FFFFH。最大計數(shù)頻率為65 535 Hz/s。
          (3)計數(shù)累計脈沖量計算 計數(shù)累計脈沖量=FFFFH-計數(shù)器本次讀數(shù)。

          3 用Turbo C編寫中斷服務(wù)程序的方法
          C語言中斷服務(wù)程序可由3部分實現(xiàn)。即編寫中斷服務(wù)程序、安裝中斷服務(wù)程序、激活中斷服務(wù)程序。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 9300 ISA KH 總線

          評論


          相關(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); })();