非接觸式給液的單片機(jī)應(yīng)用設(shè)計(jì)
3 系統(tǒng)軟件結(jié)構(gòu)
3.1 主程序流程圖
主程序流程框圖如圖2所示,他主要完成初始化工作,進(jìn)行目標(biāo)檢測(cè),控制出液,并且顯示液位情況,整個(gè)程序中大量地調(diào)用了其他子程序,為了方便不再一一列出其他子程序框圖,主程序采用查詢方式,初始化完成后一直處在等待響應(yīng)狀態(tài)。
定時(shí)器中斷子程序,本子程序在整個(gè)系統(tǒng)中承擔(dān)了紅外檢測(cè)的設(shè)置工作,單片機(jī)的設(shè)計(jì)中,定時(shí)器是個(gè)重要環(huán)節(jié),本設(shè)計(jì)中采用定時(shí)器0中斷的工作方式,中斷程序流程圖如圖3所示。
出液控制子程序是本設(shè)計(jì)中的重要部分,他根據(jù)目標(biāo)檢測(cè)的結(jié)果控制步進(jìn)電機(jī)的工作,程序流程圖大致如圖4所示。
3.2 MCU內(nèi)部RAM分配
AT89C2051內(nèi)部共有128 B的RAM,做如下分配:
00H~07H:工作寄存器組(R0~R7),作為通用寄存器使用。
10H~14H:液面高度采樣數(shù)據(jù)緩沖區(qū)(ADCBuff)。
16H:軟件定時(shí)器(SoftTimel)。
17H:液面高度值(OldADCOut)。
1FH:鍵值(KeyValue)。
20H:工作標(biāo)志組0(WF0)。
5FH:流量控制值(FluxValue)。
60H~7H:32 B的系統(tǒng)堆棧(STACK)。
3.3 標(biāo)志位的分配
F_Xms:WF0.0,定時(shí)器0中斷服務(wù)標(biāo)志,在定時(shí)器0中斷服務(wù)程序結(jié)束時(shí)置位,在軟件定時(shí)器操作程序中查詢?cè)摌?biāo)志后復(fù)位。該標(biāo)志位主要用于通知系統(tǒng)程序一次定時(shí)器中斷已經(jīng)處理完畢。
SendEN:WF0.1,主動(dòng)紅外探測(cè)器發(fā)射開(kāi)關(guān),該標(biāo)志置位時(shí)允許紅外探測(cè)器向外發(fā)射38.4 kHz紅外探測(cè)信號(hào),復(fù)位時(shí)則不允許發(fā)射。該標(biāo)志在紅外探測(cè)器啟動(dòng)時(shí)置位,在探測(cè)器關(guān)閉時(shí)復(fù)位。
DetEN:WF0.2,紅外探測(cè)開(kāi)關(guān),該標(biāo)志置位時(shí)系統(tǒng)啟動(dòng)紅外探測(cè)器探測(cè)目標(biāo),復(fù)位時(shí)系統(tǒng)不啟動(dòng)探測(cè)器。該標(biāo)志在系統(tǒng)退出守候模式時(shí)置位,在探測(cè)到目標(biāo)后復(fù)位。
MTCEN:WF0.3,電機(jī)運(yùn)轉(zhuǎn),標(biāo)志置位時(shí)表明電機(jī)處于運(yùn)轉(zhuǎn)狀態(tài),系統(tǒng)檢查運(yùn)轉(zhuǎn)時(shí)間是否結(jié)束,如果MTCEN和DetEN都復(fù)位,系統(tǒng)將進(jìn)入守候式:既不探測(cè)目標(biāo),也不啟動(dòng)電機(jī),3 s后自動(dòng)退出守候模式。該標(biāo)志在紅外探測(cè)器探測(cè)到目標(biāo)并啟動(dòng)電機(jī)后置位,電機(jī)運(yùn)轉(zhuǎn)時(shí)間結(jié)束后復(fù)位。
WashMode:WF0.4,清洗標(biāo)志,標(biāo)志置位時(shí)表明系統(tǒng)處于清洗模式下,系統(tǒng)的其他功能將被關(guān)閉,復(fù)位時(shí)關(guān)閉清洗功能。該標(biāo)志在用戶啟動(dòng)清洗功能時(shí)置位,關(guān)閉清洗功能時(shí)復(fù)位。
KeyST:WF0.5,按鍵狀態(tài)標(biāo)志,標(biāo)志置位時(shí)表明按鍵處于釋放狀態(tài),系統(tǒng)檢測(cè)按鍵是否按下,復(fù)位時(shí)表明按鍵已經(jīng)按下,系統(tǒng)等待按鍵釋放。該標(biāo)志在檢測(cè)到按鍵釋放時(shí)置位,在檢測(cè)到按鍵按下時(shí)復(fù)位。
KeyLPF:WF0.6,按鍵檢測(cè)消除抖動(dòng)控制位。
4 結(jié) 語(yǔ)
該設(shè)計(jì)的通用性很強(qiáng),性價(jià)比高,可以應(yīng)用于許多非接觸式的給液系統(tǒng),如:水龍頭自動(dòng)給水感應(yīng)器;感應(yīng)洗手器;自動(dòng)控制感應(yīng)水龍頭;自動(dòng)淋浴器;自動(dòng)給皂器;感應(yīng)烘手機(jī)等。本文介紹的設(shè)計(jì)思想可以推廣到其他類似的液位及出液量控制系統(tǒng)中。
評(píng)論