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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機(jī)的電子膨脹閥試驗(yàn)機(jī)的軟硬件設(shè)計

          基于單片機(jī)的電子膨脹閥試驗(yàn)機(jī)的軟硬件設(shè)計

          作者: 時間:2012-02-11 來源:網(wǎng)絡(luò) 收藏

          工作原理大致如下:通過154控制燈位、通過8255的B口輸出當(dāng)前的段碼值來定時刷新顯示,通過8255C口定時掃描鍵盤。當(dāng)有鍵按下時,如“位置1”鍵按下,CPU通過掃描8255C口狀態(tài)且延時去鍵抖動后,確認(rèn)是“位置1”鍵按下,于是,系統(tǒng)就進(jìn)入“控制”模塊中的“位置1”子程序。系統(tǒng)根據(jù)設(shè)置的膨脹閥轉(zhuǎn)到“位置1”所需的脈沖數(shù)和當(dāng)前的脈沖數(shù)循環(huán)調(diào)用單步轉(zhuǎn)動子程序。在單步轉(zhuǎn)動子程序中,軟件把電機(jī)控制字節(jié)寫到8255,并通過 8255的A口,經(jīng)過光耦的隔離,輸入步進(jìn)電機(jī)驅(qū)動電路,通過控制功率開關(guān)三極管的開斷,進(jìn)而控制步進(jìn)電機(jī)的正反轉(zhuǎn)動,實(shí)現(xiàn)膨脹閥的開閉,同時系統(tǒng)更改當(dāng)前的“實(shí)時脈沖”值,并通過LED顯示出來。這樣,通過全程脈沖數(shù)和“實(shí)時脈沖”值就可知道當(dāng)前的閥的開度。在電機(jī)轉(zhuǎn)動的過程中,通過采樣電路把采集到的驅(qū)動相電壓值送入,并通過LED實(shí)時顯示。

          2軟件設(shè)計

          在本程序設(shè)計中,采用置事件標(biāo)志和分時控制的辦法對事件進(jìn)行處理。如在T0中斷子程序中,每隔lms進(jìn)行LED動態(tài)掃描,每隔60ms對鍵盤進(jìn)行掃描。當(dāng)通過EX0外部中斷子程序得到某“控制”鍵鍵值時,在主程序中則置一相應(yīng)的標(biāo)志位。當(dāng)進(jìn)入下一T0中斷時,T0中斷子程序中除了對LED動態(tài)掃描事件進(jìn)行處理外,還對步進(jìn)電機(jī)驅(qū)動脈沖寬度進(jìn)行控制;若此時的時間片為60ms,則還對鍵盤掃描事件進(jìn)行處理。此外,為了提高事件的實(shí)時響應(yīng)程度,我們把中斷子程序中耗時長的部分交給主程序來做(主程序把處理的結(jié)果放到相應(yīng)的緩沖區(qū))。當(dāng)中斷子程序處理到相應(yīng)的事件時,只需從緩沖區(qū)把數(shù)據(jù)讀入,并把數(shù)據(jù)放到相應(yīng)的數(shù)據(jù)區(qū)即可。如在本系統(tǒng)中,經(jīng)常要通過鍵盤對LED顯示的參數(shù)數(shù)值進(jìn)行更改,則系統(tǒng)需要對參數(shù)所對應(yīng)的以二進(jìn)制形式存儲的內(nèi)部數(shù)據(jù)進(jìn)行相應(yīng)的更改操作,并把它轉(zhuǎn)換為相應(yīng)的七段碼和顯示在 LED上,此時可把數(shù)據(jù)轉(zhuǎn)換這一耗時長的程序交給主程序來做,主程序把得到的相應(yīng)的七段碼放到一個緩沖區(qū)中,當(dāng)進(jìn)入T0中斷子程序?qū)ED內(nèi)容刷新時,只需把緩沖區(qū)中的數(shù)據(jù)寫入到8255的相應(yīng)口。運(yùn)用這種處理方法,使系統(tǒng)可以實(shí)時有序地處理各種事件。

          整個軟件采用結(jié)構(gòu)化的程序設(shè)計方法設(shè)計。程序分為三大模塊:主程序模塊、EX0中斷服務(wù)子程序模塊、T0中斷服務(wù)子程序模塊。

          主程序模塊按照功能又分為三大子程序:初始化子程序、設(shè)置顯示子程序、控制子程序。由于的操作都由鍵盤中斷來控制,所以,在主程序中通過查詢鍵值來進(jìn)入相應(yīng)的子程序。其流程圖如圖2所示。在初始化子程序中,主要對AT89C52的系統(tǒng)資源,如定時器、寄存器等的初始化,把EEPROM存儲的參數(shù)寫入到相應(yīng)的RAM、8255、參數(shù)寄存器等。

          在設(shè)置顯示子程序中,主要根據(jù)讀入的鍵值顯示設(shè)置的參數(shù)或進(jìn)行更改并保存到相應(yīng)的EEPROM和RAM。

          在控制子程序中,根據(jù)讀入的鍵值和設(shè)置的參數(shù)驅(qū)動電機(jī)作相應(yīng)的動作,循環(huán)轉(zhuǎn)動或復(fù)位。同時采集相應(yīng)的相電壓,并把電壓值存儲到相應(yīng)的緩存區(qū)。

          3結(jié)束語

          目前,該已成功用于某空調(diào)制冷企業(yè)測試系統(tǒng)中。經(jīng)過幾個月的運(yùn)行,情況良好,達(dá)到了客戶的要求。

          參考文獻(xiàn)

          [1] 翁文兵,王瑾竹.的制冷劑流量特性的實(shí)驗(yàn)研究[J].流體機(jī)械.1998,26(10):58~61.
          [2] 仲華,陳芝久.的動態(tài)特性的辨識[J].上海交通大學(xué)學(xué)報,1999,33(8):942~944.
          [3] 何立民.MCS51系列應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,


          上一頁 1 2 下一頁

          評論


          相關(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); })();