基于nRF24L01的礦用搜救器設(shè)計
主控制器程序
本文引用地址:http://www.biyoush.com/article/109188.htm主控制器程序完成STM32F103VE初始化、OLED顯示屏初始化、nRF24L01初始化,nRF24L01數(shù)據(jù)處理,紅外數(shù)據(jù)數(shù)據(jù)處理和顯示內(nèi)容更新等工作。其中nRF24L01數(shù)據(jù)接收,紅外數(shù)據(jù)交換,按鍵鍵碼的獲取是通過中斷方式完成的。
觸摸按鍵檢測程序
鍵值判斷程序包括主程序和中斷服務(wù)程序。單片機(jī)上電后進(jìn)入主程序先完成初始化工作(包括I/O端口、定時器、電容傳感模塊和USART的設(shè)置),然后開全局中斷,依次查詢按鍵標(biāo)記(KeyFlag)的值,如果按鍵標(biāo)記置位(KeyFlag的值等于1)則將按鍵標(biāo)記清零并調(diào)用USART發(fā)送函數(shù)將相應(yīng)的鍵碼發(fā)送給主MCU(STM32F103VE)否則查詢下一個按鍵標(biāo)記直到8個按鍵標(biāo)記查詢完后進(jìn)入休眠等待中斷程序的到來。中斷程序喚醒單片機(jī)后,先將定時器1的TMR1值讀出,接下來將TMR1值與0.85倍的平均值做比較。如果TMR1的值小于0.85倍的平均值則將按鍵標(biāo)記KeyFlag置1,接著設(shè)置成下一個觸摸傳感器;如果TMR1的值大于或等于0.85倍的平均值則將TMR1的值代入程式計算新的平均值,接著設(shè)置成下一個觸摸傳感器。最后重啟定時器并退出中斷服務(wù)程序。退出中斷服務(wù)程序后進(jìn)入主程序進(jìn)行新的一次按鍵標(biāo)記查詢。程序流程圖如圖4所示,左圖是主程序流程圖,右圖為中斷服務(wù)程序流程圖
結(jié)語
本儀器采用STM32F103VE作為主控制器,成本低,系統(tǒng)運(yùn)行穩(wěn)定,各項(xiàng)指標(biāo)達(dá)到了技術(shù)要求。通過煤炭科學(xué)院撫順分院的鑒定,已交付用戶使用。在井下沒有安裝定位分站的巷道中進(jìn)行的模擬營救中,營救距離達(dá)到規(guī)定的60米。
參考文獻(xiàn):
[1]王有緒,許杰,李拉成.PIC系列單片機(jī)接口技術(shù)及應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空大學(xué)出版社,2000
[2]王勇. 基于Microchip單片機(jī)的觸摸感應(yīng)技術(shù)[J]. 電子產(chǎn)品世界2009(7)
[3]馬忠梅.單片機(jī)的C語言應(yīng)用程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,1999
[4]Software Handling for Capacitive Sensing[D].Microchip
[5] STM32F103XX Data Sheet[D] .ST Company
[6]nRF24L01 Product Specification[D].NORDIC SEMICONDUCTOR.2007
評論