基于SPCE061A 單片機(jī)的紅外泵液器的設(shè)計(jì)
圖2中,SPCE06lA的IOB2口用于檢測(cè)接收信號(hào)(該信號(hào)的兩種狀態(tài)高低電平表明伸手縮手動(dòng)作),IOB8口用于控制紅外發(fā)射,IOA4控制微電機(jī),IOA5是工作指示燈,IOA0—2可控制1*3鍵盤,IOA9口是低壓檢測(cè),DACl口接語(yǔ)音播報(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í)對(duì)相應(yīng)中斷寄存器進(jìn)行設(shè)置。然后在計(jì)時(shí)中斷的中斷服務(wù)子程序中通過語(yǔ)句IOB8=!IOB8來控制該IO口以輸出8 kHz的方波。
其次是紅外信號(hào)的接收處理。在硬件部分已經(jīng)說明,本裝置在伸手時(shí),IOB2將出現(xiàn)高電平,其它情況該引腳輸出為低電平,由此可通過IOB2的中斷功能實(shí)現(xiàn)對(duì)高電平的檢測(cè),當(dāng)IOB2出現(xiàn)上升沿時(shí),表明此時(shí)伸手,系統(tǒng)進(jìn)入IOB2的中斷服務(wù)程序,該中斷服務(wù)程序可完成控制水泵和指示燈的功能。
再就是鍵盤掃描程序。可采用查詢方法循環(huán)檢測(cè)是否有鍵按下,當(dāng)檢測(cè)到按鍵端口有低電平時(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)語(yǔ)音輸出等。
圖3所示是本系統(tǒng)的軟件流程圖。首先是系統(tǒng)的初始化,然后是各個(gè)IO端口的初始化,最后執(zhí)行系統(tǒng)任務(wù)。主任務(wù)的流程是IOA0-2口都處于高電平,當(dāng)按下哪個(gè)鍵時(shí),哪個(gè)端口變?yōu)榈碗娖?,然后檢測(cè)IOA0—2端口的電平值,如果發(fā)現(xiàn)有端口變?yōu)榈碗娖?,則把信息送到主任務(wù)那邊的等待鍵盤信息,當(dāng)人使用完后結(jié)束,系統(tǒng)返回上面一層,繼續(xù)等待鍵盤信息;如果發(fā)現(xiàn)鍵盤的各端口都是高電平,沒有變?yōu)榈碗娖降亩丝?,則返回,然后繼續(xù)鍵盤掃描任務(wù)。
3 結(jié)束語(yǔ)
本文給出了一種由凌陽(yáng)公司生產(chǎn)的單片機(jī)芯片SPCE061A控制的紅外泵液器的改進(jìn)設(shè)計(jì)方法。經(jīng)改進(jìn)后的泵液器增加了手動(dòng)和自動(dòng)模式轉(zhuǎn)換、低電壓檢測(cè)報(bào)警以及使用完畢后語(yǔ)音提示等三項(xiàng)功能。實(shí)測(cè)證明:該裝置還具有抗干擾能力強(qiáng),無誤操作且省電節(jié)能等特點(diǎn)。
評(píng)論