基于凌陽單片機(jī)SPCE061A 的紅外泵液器的設(shè)計(jì)
O 引言
紅外泵液器通常用于完成“伸手出水,縮手停水”功能,一般可提供手動(dòng)和自動(dòng)兩種泵液模式,同時(shí)具有低電壓檢測報(bào)警以及使用完畢后語音提示等功能。紅外泵液器在工作時(shí),一般首先通過傳感器將伸手出水動(dòng)作轉(zhuǎn)換成電信號(hào),并通過紅外發(fā)射二極管發(fā)出紅外光去控制受控裝置中的紅外接收二極管,再利用光照強(qiáng)弱來改變電路中的電流。當(dāng)伸出手時(shí),接收部分收到的紅外線強(qiáng)度降低,轉(zhuǎn)換的電流強(qiáng)度減弱,拿開手時(shí),紅外直射到光敏管上,輸出電流增強(qiáng);之后的第二步,再將電流信號(hào)的強(qiáng)弱轉(zhuǎn)換為能被SPCE06lA單片機(jī)識(shí)別的高低電平。由此需要電路具有流控電壓源的功能,高電平約為5V,低電平為0V,為此,可采用雙極性三極管的共射極接法來實(shí)現(xiàn);第三步,則是通過對高低電壓信號(hào)的判斷來輸出控制信號(hào),并將控制信號(hào)輸出給電機(jī),再通過電機(jī)控制水泵。這部分主要是對IOB2的中斷檢測,伸手時(shí)紅外線被擋住,三極管截止,IOB2得到高電平,即利用IOB2的上升沿中斷申請功能(或者使用查詢方法)來向SPCE06lA單片機(jī)提出放水的中斷請求。
通過以上三個(gè)操作步驟,僅僅可以基本完成設(shè)計(jì)功能,而本文對上述傳統(tǒng)設(shè)計(jì)的改進(jìn)之處有以下三點(diǎn):
(1)使用1*3鍵盤提供自動(dòng)與手動(dòng)切換。在自動(dòng)模式下,手伸到儀器出水,手離開停止;手動(dòng)模式下,按下2鍵出水,按3鍵停止。
(2)改進(jìn)了工作指示燈電路模塊。當(dāng)電路處于工作狀態(tài)時(shí),指示燈亮。
(3)改進(jìn)了語音播報(bào),由于SPCE061A單片機(jī)集成了2個(gè)10位DAC(數(shù)一模轉(zhuǎn)換)模塊,因此,利用這部分資源可以方便地實(shí)現(xiàn)數(shù)字到模擬信號(hào)的轉(zhuǎn)換,從而使人機(jī)交互更友好,同時(shí)也可以表明當(dāng)前系統(tǒng)的工作狀態(tài)。
1 紅外泵液器的硬件設(shè)計(jì)
本系統(tǒng)的工作組成原理如圖1所示。
本方案采用凌陽SPCE061A單片機(jī)。并選用GR4010l紅外發(fā)射二極管作為紅外發(fā)射器件.GDl6ll硅PIN型光敏二極管作為紅外接收器件。微型電機(jī)選用QDB一30—3.0作為泵液器的驅(qū)動(dòng)。紅外傳感部分可用來檢測是否有人需要使用泵液器,它分為紅外發(fā)射和紅外接收兩部分。紅外發(fā)射管采用GR40101,主要通過IOB8輸出一定頻率的脈沖來控制紅外發(fā)射管的發(fā)射頻率。紅外接收管則采用GD1611,可利用IOB2的外部中斷功能來進(jìn)行檢測。語音播報(bào)部分采用SPCE061A內(nèi)部的DACl輸出信號(hào)到語音電路,再使用A2000格式放音。本系統(tǒng)提供3個(gè)按鍵,可用來設(shè)定出液量、自動(dòng)、手動(dòng)泵液等,他們占用SPCE06lA的IOA0—2共3根I/O線。系統(tǒng)選用微型電機(jī)來作為泵液的驅(qū)動(dòng),電機(jī)的控制是由一個(gè)三極管作為電子開關(guān)完成的??赏ㄟ^IOB4控制三極管,從而控制電機(jī)。利用SPCE061A內(nèi)部的LVD單元可以完成低電壓檢測,而不需要外接其它組件。此外,系統(tǒng)還提供了一個(gè)發(fā)光二極管作為工作指示燈,并可用IOA5來控制。
圖2所示是系統(tǒng)的控制電路原理圖。電路中,SPCE061A為主控制芯片,IOA5控制工作指示燈。當(dāng)系統(tǒng)接上電源時(shí),可通過過程控制IOA5輸出高電平,工作指示燈一直亮著。1*3鍵盤的功能是分別設(shè)定自動(dòng)與手動(dòng)模式的切換、手動(dòng)下出水、手動(dòng)下停水,其占用IOA0-2三個(gè)端口。當(dāng)?shù)谝淮伟聪?鍵時(shí),默認(rèn)為自動(dòng)模式,即當(dāng)手伸到儀器時(shí),IOB2口接收不到IOB8口發(fā)射出來的紅外控制信號(hào),則單片機(jī)控制IOA4口并控制電機(jī)轉(zhuǎn)動(dòng)泵水,當(dāng)手離開時(shí),IOB2口接收到紅外信號(hào),控制電機(jī)停止出水。當(dāng)再次按下1鍵,則切換到手動(dòng)模式,這時(shí)按下2鍵開始出水,按3鍵停止出水。當(dāng)電機(jī)由轉(zhuǎn)動(dòng)轉(zhuǎn)變?yōu)橥V箷r(shí),單片機(jī)控制DACl口播放“謝謝”。當(dāng)電壓低于開始設(shè)定的電壓值時(shí),系統(tǒng)播放聲音報(bào)警。
圖2中,SPCE06lA的IOB2口用于檢測接收信號(hào)(該信號(hào)的兩種狀態(tài)高低電平表明伸手縮手動(dòng)作),IOB8口用于控制紅外發(fā)射,IOA4控制微電機(jī),IOA5是工作指示燈,IOA0—2可控制1*3鍵盤,IOA9口是低壓檢測,DACl口接語音播報(bào)。引腳12、13是振蕩器的輸出和輸入,引腳16、17、18分別接在線調(diào)試器的使能端、時(shí)鐘腳和數(shù)據(jù)腳。
2 紅外泵液器的軟件設(shè)計(jì)
根據(jù)設(shè)計(jì)的功能以及硬件電路,本系統(tǒng)的軟件部分共需要如下幾部分控制程序:
第一是發(fā)射紅外信號(hào)。由紅外發(fā)射二極管GR40101可知,SPCE06lA單片機(jī)的IOB8應(yīng)輸出固定頻率的脈沖,以激勵(lì)器件發(fā)射紅外線,因此程序首先需要完成此項(xiàng)功能。實(shí)際的程序應(yīng)通過SPCE061A單片機(jī)內(nèi)部的計(jì)時(shí)中斷產(chǎn)生8 kHz的脈沖。具體的操作是通過SPCE061A單片機(jī)工作的晶振頻率來計(jì)算經(jīng)過多少分頻才能將頻率降低至8 kHz,由此得到計(jì)數(shù)值并將計(jì)數(shù)值填入計(jì)數(shù)器,同時(shí)對相應(yīng)中斷寄存器進(jìn)行設(shè)置。然后在計(jì)時(shí)中斷的中斷服務(wù)子程序中通過語句IOB8=!IOB8來控制該IO口以輸出8 kHz的方波。
其次是紅外信號(hào)的接收處理。在硬件部分已經(jīng)說明,本裝置在伸手時(shí),IOB2將出現(xiàn)高電平,其它情況該引腳輸出為低電平,由此可通過IOB2的中斷功能實(shí)現(xiàn)對高電平的檢測,當(dāng)IOB2出現(xiàn)上升沿時(shí),表明此時(shí)伸手,系統(tǒng)進(jìn)入IOB2的中斷服務(wù)程序,該中斷服務(wù)程序可完成控制水泵和指示燈的功能。
再就是鍵盤掃描程序??刹捎貌樵兎椒ㄑh(huán)檢測是否有鍵按下,當(dāng)檢測到按鍵端口有低電平時(shí),便進(jìn)入相應(yīng)的處理程序,其中管理自動(dòng)手動(dòng)模式的按鍵是通過這樣的方法實(shí)現(xiàn)的,即每次有鍵按下,標(biāo)志位變化,原來為0就置位,為1就清零,從而控制手動(dòng)和自動(dòng)的選擇。其它的按鍵進(jìn)入按鍵處理程序后作相應(yīng)的處理,同時(shí)啟動(dòng)語音輸出等。
圖3所示是本系統(tǒng)的軟件流程圖。首先是系統(tǒng)的初始化,然后是各個(gè)IO端口的初始化,最后執(zhí)行系統(tǒng)任務(wù)。主任務(wù)的流程是IOA0-2口都處于高電平,當(dāng)按下哪個(gè)鍵時(shí),哪個(gè)端口變?yōu)榈碗娖剑缓髾z測IOA0—2端口的電平值,如果發(fā)現(xiàn)有端口變?yōu)榈碗娖?,則把信息送到主任務(wù)那邊的等待鍵盤信息,當(dāng)人使用完后結(jié)束,系統(tǒng)返回上面一層,繼續(xù)等待鍵盤信息;如果發(fā)現(xiàn)鍵盤的各端口都是高電平,沒有變?yōu)榈?strong>電平的端口,則返回,然后繼續(xù)鍵盤掃描任務(wù)。
3 結(jié)束語
本文給出了一種由凌陽公司生產(chǎn)的單片機(jī)芯片SPCE061A控制的紅外泵液器的改進(jìn)設(shè)計(jì)方法。經(jīng)改進(jìn)后的泵液器增加了手動(dòng)和自動(dòng)模式轉(zhuǎn)換、低電壓檢測報(bào)警以及使用完畢后語音提示等三項(xiàng)功能。實(shí)測證明:該裝置還具有抗干擾能力強(qiáng),無誤操作且省電節(jié)能等特點(diǎn)。