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

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 分時操作系統思想在單片機中的實現

          分時操作系統思想在單片機中的實現

          作者: 時間:2010-12-28 來源:網絡 收藏

           2.作業(yè)流程

            為了能實現8路分時工作,最主要的工作是將這一過程細分成一個個作業(yè)。筆者通過設計把它分成8個作業(yè),各作業(yè)的流程如圖2所示。 以上每一作業(yè)返回后,“路”指針自動加1,到8后回到0,以保證分時工作合理。

          分時操作系統思想在單片機編程中的實現

            3.幾點技巧

            8路電話信息采集卡的編程中,為了使程序更精練,筆者應用以下3個技巧:

             ① 因為這8路的工作是相同的,程序可以共用,只須再構造1“路”地址表,每一表項含有本路的輸入鎖存器地址、輸出鎖存器地址、DTMF碼存放RAM地址、計 時單元地址。這樣可以省掉“路”調度表,因為各路相同作業(yè)的入口地址是相同的。根據“路”指針的不同,帶入該“路”的地址表項,即可用相同的程序對8路分 別控制操作。

            ② 定時器中斷設置成4ms一次,這是因為電話振鈴是25Hz,檢測腳保持低電平的時間為10ms,它是最低的計時值。當振鈴檢測腳低電平保持時間少于8ms 時可認為是干擾。每一路都有自己的計時單元,每次定時器中斷后,在定時服務自程序中各路計時單元自動加1。在上一次作業(yè)中將計時單元請0,下一次作業(yè)讀出 計時單元的值,延時值即為該值乘以4ms。這樣任何延時都不占用CPU機時。

           ?、? 串行數據的發(fā)送和接收是8路共有的操作,采用共同的模塊。數據的鏈接是通過開辟緩沖區(qū)實現的,有發(fā)送緩沖區(qū)和接收緩沖區(qū),采用4800baud的波特率。 一般程序的串行數據發(fā)送時,都須要檢測TI位的變化來判斷1字節(jié)數據發(fā)送是否完成,由此決定可否發(fā)下一字節(jié)數據。應用到分時系統是行不通的,這要占用 CPU機時,因為采用4800baud的波特率,則每一字節(jié)的發(fā)送時間少于4ms。當發(fā)送緩沖區(qū)有數據時,可在定時器中斷服務自程序中發(fā)送。每一次定時中 斷中發(fā)送1字節(jié)數據,當下一次定時中斷來時,上一字節(jié)數據必定已發(fā)送完畢,可發(fā)送下一字節(jié)數據。無須檢測TI位,也不占用CPU機時。數據接收采用串行中 斷,接收到的數據存放到接收緩沖區(qū)供各路查詢。

            結論

            將分時操作系統的思想引入系統,提出了一個針對多路檢測控制的系統軟件編程。大大減低了系統的設計成本,提高了系統的性能價格比,并在實際應用中獲得成功。


          上一頁 1 2 3 下一頁

          關鍵詞: 單片機

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();