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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 非接觸式給液的單片機應用設計

          非接觸式給液的單片機應用設計

          作者: 時間:2013-01-05 來源:網絡 收藏

          3 系統(tǒng)軟件結構

          3.1 主程序流程圖

          主程序流程框圖如圖2所示,他主要完成初始化工作,進行目標檢測,控制出液,并且顯示液位情況,整個程序中大量地調用了其他子程序,為了方便不再一一列出其他子程序框圖,主程序采用查詢方式,初始化完成后一直處在等待響應狀態(tài)。

          11.jpg

          定時器中斷子程序,本子程序在整個系統(tǒng)中承擔了紅外檢測的設置工作,中,定時器是個重要環(huán)節(jié),本中采用定時器0中斷的工作方式,中斷程序流程圖如圖3所示。

          出液控制子程序是本中的重要部分,他根據目標檢測的結果控制步進電機的工作,程序流程圖大致如圖4所示。

          3.2 MCU內部RAM分配

          AT89C2051內部共有128 B的RAM,做如下分配:

          00H~07H:工作寄存器組(R0~R7),作為通用寄存器使用。

          10H~14H:液面高度采樣數據緩沖區(qū)(ADCBuff)。

          16H:軟件定時器(SoftTimel)。

          17H:液面高度值(OldADCOut)。

          1FH:鍵值(KeyValue)。

          20H:工作標志組0(WF0)。

          5FH:流量控制值(FluxValue)。

          60H~7H:32 B的系統(tǒng)堆棧(STACK)。

          3.3 標志位的分配

          F_Xms:WF0.0,定時器0中斷服務標志,在定時器0中斷服務程序結束時置位,在軟件定時器操作程序中查詢該標志后復位。該標志位主要用于通知系統(tǒng)程序一次定時器中斷已經處理完畢。

          SendEN:WF0.1,主動紅外探測器發(fā)射開關,該標志置位時允許紅外探測器向外發(fā)射38.4 kHz紅外探測信號,復位時則不允許發(fā)射。該標志在紅外探測器啟動時置位,在探測器關閉時復位。

          DetEN:WF0.2,紅外探測開關,該標志置位時系統(tǒng)啟動紅外探測器探測目標,復位時系統(tǒng)不啟動探測器。該標志在系統(tǒng)退出守候模式時置位,在探測到目標后復位。

          MTCEN:WF0.3,電機運轉,標志置位時表明電機處于運轉狀態(tài),系統(tǒng)檢查運轉時間是否結束,如果MTCEN和DetEN都復位,系統(tǒng)將進入守候式:既不探測目標,也不啟動電機,3 s后自動退出守候模式。該標志在紅外探測器探測到目標并啟動電機后置位,電機運轉時間結束后復位。

          WashMode:WF0.4,清洗標志,標志置位時表明系統(tǒng)處于清洗模式下,系統(tǒng)的其他功能將被關閉,復位時關閉清洗功能。該標志在用戶啟動清洗功能時置位,關閉清洗功能時復位。

          KeyST:WF0.5,按鍵狀態(tài)標志,標志置位時表明按鍵處于釋放狀態(tài),系統(tǒng)檢測按鍵是否按下,復位時表明按鍵已經按下,系統(tǒng)等待按鍵釋放。該標志在檢測到按鍵釋放時置位,在檢測到按鍵按下時復位。

          KeyLPF:WF0.6,按鍵檢測消除抖動控制位。

          4 結 語

          該設計的通用性很強,性價比高,可以于許多的給液系統(tǒng),如:水龍頭自動給水感應器;感應洗手器;自動控制感應水龍頭;自動淋浴器;自動給皂器;感應烘手機等。本文介紹的設計思想可以推廣到其他類似的液位及出液量控制系統(tǒng)中。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(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); })();