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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于凌陽單片機SPCE061A的紅外泵液器的設(shè)計

          基于凌陽單片機SPCE061A的紅外泵液器的設(shè)計

          作者: 時間:2010-09-18 來源:網(wǎng)絡(luò) 收藏

            O 引言

            通常用于完成“伸手出水,縮手停水”功能,一般可提供手動和自動兩種泵液模式,同時具有低電壓檢測報警以及使用完畢后語音提示等功能。在工作時,一般首先通過傳感器將伸手出水動作轉(zhuǎn)換成電信號,并通過發(fā)射二極管發(fā)出紅外光去控制受控裝置中的紅外接收二極管,再利用光照強弱來改變電路中的電流。當(dāng)伸出手時,接收部分收到的紅外線強度降低,轉(zhuǎn)換的電流強度減弱,拿開手時,紅外直射到光敏管上,輸出電流增強;之后的第二步,再將電流信號的強弱轉(zhuǎn)換為能被SPCE06lA識別的高低電平。由此需要電路具有流控電壓源的功能,高電平約為5V,低電平為0V,為此,可采用雙極性三極管的共射極接法來實現(xiàn);第三步,則是通過對高低電壓信號的判斷來輸出控制信號,并將控制信號輸出給電機,再通過電機控制水泵。這部分主要是對IOB2的中斷檢測,伸手時紅外線被擋住,三極管截止,IOB2得到高電平,即利用IOB2的上升沿中斷申請功能(或者使用查詢方法)來向SPCE06lA提出放水的中斷請求。

            通過以上三個操作步驟,僅僅可以基本完成設(shè)計功能,而本文對上述傳統(tǒng)設(shè)計的改進之處有以下三點:

            (1)使用1*3鍵盤提供自動與手動切換。在自動模式下,手伸到儀器出水,手離開停止;手動模式下,按下2鍵出水,按3鍵停止。

            (2)改進了工作指示燈電路模塊。當(dāng)電路處于工作狀態(tài)時,指示燈亮。

            (3)改進了語音播報,由于SPCE061A集成了2個10位DAC(數(shù)一模轉(zhuǎn)換)模塊,因此,利用這部分資源可以方便地實現(xiàn)數(shù)字到模擬信號的轉(zhuǎn)換,從而使人機交互更友好,同時也可以表明當(dāng)前系統(tǒng)的工作狀態(tài)。

            1 紅外的硬件設(shè)計

            本系統(tǒng)的工作組成原理如圖1所示。

          本系統(tǒng)的工作組成原理

            本方案采用凌陽SPCE061A單片機。并選用GR4010l紅外發(fā)射二極管作為紅外發(fā)射器件.GDl6ll硅PIN型光敏二極管作為紅外接收器件。微型電機選用QDB一30—3.0作為泵液器的驅(qū)動。紅外傳感部分可用來檢測是否有人需要使用泵液器,它分為紅外發(fā)射和紅外接收兩部分。紅外發(fā)射管采用GR40101,主要通過IOB8輸出一定頻率的脈沖來控制紅外發(fā)射管的發(fā)射頻率。紅外接收管則采用GD1611,可利用IOB2的外部中斷功能來進行檢測。語音播報部分采用SPCE061A內(nèi)部的DACl輸出信號到語音電路,再使用A2000格式放音。本系統(tǒng)提供3個按鍵,可用來設(shè)定出液量、自動、手動泵液等,他們占用SPCE06lA的IOA0—2共3根I/O線。系統(tǒng)選用微型電機來作為泵液的驅(qū)動,電機的控制是由一個三極管作為電子開關(guān)完成的??赏ㄟ^IOB4控制三極管,從而控制電機。利用SPCE061A內(nèi)部的LVD單元可以完成低電壓檢測,而不需要外接其它組件。此外,系統(tǒng)還提供了一個發(fā)光二極管作為工作指示燈,并可用IOA5來控制。

            圖2所示是系統(tǒng)的控制電路原理圖。電路中,SPCE061A為主控制芯片,IOA5控制工作指示燈。當(dāng)系統(tǒng)接上電源時,可通過過程控制IOA5輸出高電平,工作指示燈一直亮著。1*3鍵盤的功能是分別設(shè)定自動與手動模式的切換、手動下出水、手動下停水,其占用IOA0-2三個端口。當(dāng)?shù)谝淮伟聪?鍵時,默認為自動模式,即當(dāng)手伸到儀器時,IOB2口接收不到IOB8口發(fā)射出來的紅外控制信號,則單片機控制IOA4口并控制電機轉(zhuǎn)動泵水,當(dāng)手離開時,IOB2口接收到紅外信號,控制電機停止出水。當(dāng)再次按下1鍵,則切換到手動模式,這時按下2鍵開始出水,按3鍵停止出水。當(dāng)電機由轉(zhuǎn)動轉(zhuǎn)變?yōu)橥V箷r,單片機控制DACl口播放“謝謝”。當(dāng)電壓低于開始設(shè)定的電壓值時,系統(tǒng)播放聲音報警。

          系統(tǒng)的控制電路原理圖

            圖2中,SPCE06lA的IOB2口用于檢測接收信號(該信號的兩種狀態(tài)高低電平表明伸手縮手動作),IOB8口用于控制紅外發(fā)射,IOA4控制微電機,IOA5是工作指示燈,IOA0—2可控制1*3鍵盤,IOA9口是低壓檢測,DACl口接語音播報。引腳12、13是振蕩器的輸出和輸入,引腳16、17、18分別接在線調(diào)試器的使能端、時鐘腳和數(shù)據(jù)腳。

            2 紅外泵液器的軟件設(shè)計

            根據(jù)設(shè)計的功能以及硬件電路,本系統(tǒng)的軟件部分共需要如下幾部分控制程序:

            第一是發(fā)射紅外信號。由紅外發(fā)射二極管GR40101可知,SPCE06lA單片機的IOB8應(yīng)輸出固定頻率的脈沖,以激勵器件發(fā)射紅外線,因此程序首先需要完成此項功能。實際的程序應(yīng)通過SPCE061A單片機內(nèi)部的計時中斷產(chǎn)生8 kHz的脈沖。具體的操作是通過SPCE061A單片機工作的晶振頻率來計算經(jīng)過多少分頻才能將頻率降低至8 kHz,由此得到計數(shù)值并將計數(shù)值填入計數(shù)器,同時對相應(yīng)中斷寄存器進行設(shè)置。然后在計時中斷的中斷服務(wù)子程序中通過語句IOB8=!IOB8來控制該IO口以輸出8 kHz的方波。

            其次是紅外信號的接收處理。在硬件部分已經(jīng)說明,本裝置在伸手時,IOB2將出現(xiàn)高電平,其它情況該引腳輸出為低電平,由此可通過IOB2的中斷功能實現(xiàn)對高電平的檢測,當(dāng)IOB2出現(xiàn)上升沿時,表明此時伸手,系統(tǒng)進入IOB2的中斷服務(wù)程序,該中斷服務(wù)程序可完成控制水泵和指示燈的功能。

            再就是鍵盤掃描程序??刹捎貌樵兎椒ㄑh(huán)檢測是否有鍵按下,當(dāng)檢測到按鍵端口有低電平時,便進入相應(yīng)的處理程序,其中管理自動手動模式的按鍵是通過這樣的方法實現(xiàn)的,即每次有鍵按下,標志位變化,原來為0就置位,為1就清零,從而控制手動和自動的選擇。其它的按鍵進入按鍵處理程序后作相應(yīng)的處理,同時啟動語音輸出等。

            圖3所示是本系統(tǒng)的軟件流程圖。首先是系統(tǒng)的初始化,然后是各個IO端口的初始化,最后執(zhí)行系統(tǒng)任務(wù)。主任務(wù)的流程是IOA0-2口都處于高電平,當(dāng)按下哪個鍵時,哪個端口變?yōu)榈碗娖?,然后檢測IOA0—2端口的電平值,如果發(fā)現(xiàn)有端口變?yōu)榈碗娖?,則把信息送到主任務(wù)那邊的等待鍵盤信息,當(dāng)人使用完后結(jié)束,系統(tǒng)返回上面一層,繼續(xù)等待鍵盤信息;如果發(fā)現(xiàn)鍵盤的各端口都是高電平,沒有變?yōu)榈碗娖降亩丝?,則返回,然后繼續(xù)鍵盤掃描任務(wù)。

          本系統(tǒng)的軟件流程圖

            3 結(jié)束語

            本文給出了一種由凌陽公司生產(chǎn)的單片機芯片SPCE061A控制的紅外泵液器的改進設(shè)計方法。經(jīng)改進后的泵液器增加了手動和自動模式轉(zhuǎn)換、低電壓檢測報警以及使用完畢后語音提示等三項功能。實測證明:該裝置還具有抗干擾能力強,無誤操作且省電節(jié)能等特點。



          關(guān)鍵詞: 紅外 泵液器 單片機

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();