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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 基于nRF24L01的礦用搜救器設計

          基于nRF24L01的礦用搜救器設計

          作者:崔玉祥 太原理工大學信息工程學院 時間:2010-05-20 來源:電子產(chǎn)品世界 收藏

            主控制器程序

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

            主控制器程序完成初始化、OLED顯示屏初始化、初始化,數(shù)據(jù)處理,紅外數(shù)據(jù)數(shù)據(jù)處理和顯示內(nèi)容更新等工作。其中數(shù)據(jù)接收,紅外數(shù)據(jù)交換,按鍵鍵碼的獲取是通過中斷方式完成的。

            觸摸按鍵檢測程序

            鍵值判斷程序包括主程序和中斷服務程序。單片機上電后進入主程序先完成初始化工作(包括I/O端口、定時器、電容傳感模塊和USART的設置),然后開全局中斷,依次查詢按鍵標記(KeyFlag)的值,如果按鍵標記置位(KeyFlag的值等于1)則將按鍵標記清零并調(diào)用USART發(fā)送函數(shù)將相應的鍵碼發(fā)送給主MCU()否則查詢下一個按鍵標記直到8個按鍵標記查詢完后進入休眠等待中斷程序的到來。中斷程序喚醒單片機后,先將定時器1的TMR1值讀出,接下來將TMR1值與0.85倍的平均值做比較。如果TMR1的值小于0.85倍的平均值則將按鍵標記KeyFlag置1,接著設置成下一個觸摸傳感器;如果TMR1的值大于或等于0.85倍的平均值則將TMR1的值代入程式計算新的平均值,接著設置成下一個觸摸傳感器。最后重啟定時器并退出中斷服務程序。退出中斷服務程序后進入主程序進行新的一次按鍵標記查詢。程序流程圖如圖4所示,左圖是主程序流程圖,右圖為中斷服務程序流程圖

            結(jié)語

            本儀器采用作為主控制器,成本低,系統(tǒng)運行穩(wěn)定,各項指標達到了技術(shù)要求。通過煤炭科學院撫順分院的鑒定,已交付用戶使用。在井下沒有安裝定位分站的巷道中進行的模擬營救中,營救距離達到規(guī)定的60米。

            參考文獻:

            [1]王有緒,許杰,李拉成.PIC系列單片機接口技術(shù)及應用系統(tǒng)設計[M].北京:北京航空大學出版社,2000

            [2]王勇. 基于Microchip單片機的觸摸感應技術(shù)[J]. 電子產(chǎn)品世界2009(7)

            [3]馬忠梅.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,1999

            [4]Software Handling for Capacitive Sensing[D].Microchip

            [5] STM32F103XX Data Sheet[D] .ST Company

            [6]nRF24L01 Product Specification[D].NORDIC SEMICONDUCTOR.2007


          上一頁 1 2 3 下一頁

          評論


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