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