畜舍通風換氣風機自動控制設計_第1頁
畜舍通風換氣風機自動控制設計_第2頁
畜舍通風換氣風機自動控制設計_第3頁
畜舍通風換氣風機自動控制設計_第4頁
畜舍通風換氣風機自動控制設計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、題 目: 畜舍通風換氣風機自動控制設計 學生姓名: 劉桂奇 學 號: 200817010121 專業(yè)班級: 計算機科學與技術08101班 同組姓名: 王國策 指導教師: 楊紅杰 設計時間:目錄一、設計前言 . 21.1設計目的意義 . 21.2設計任務 . 21.3設計要求 . 2二、總體設計 . 22.1溫度數(shù)據(jù)采集模塊. 32.2 溫度轉換及顯示模塊 . 32.3 LED顯示控制模塊. 42.4蜂鳴器控制模塊 . 42.5直流電機控制模塊. 4三、課程設計過程 . 53.1硬件設計 . 53.2軟件設計 . 5四、系統(tǒng)測試 . 64.1系統(tǒng)調試 . 64.2過程調試 . 6五、程序代碼清單

2、 . 7六、課程設計總結 . 151一、設計前言1.1設計目的意義隨著智能畜禽農(nóng)業(yè)規(guī)模的不斷擴大,環(huán)境的好壞對農(nóng)業(yè)產(chǎn)品健康的影響逐步地體現(xiàn)出來,只有創(chuàng)造一個空氣新鮮,溫、濕度適宜,干暖舒適的環(huán)境條件,才能讓農(nóng)業(yè)產(chǎn)品更好的生長,保持旺盛,發(fā)病率降低,獲得較高的增長速度和轉換率,創(chuàng)造較高的經(jīng)濟效益。因此,調控好室內空氣、濕度和溫度等環(huán)境,是農(nóng)業(yè)產(chǎn)品管理的最根本問題 。1.2設計任務通過A/D采集并存儲蓄舍溫度,根據(jù)蓄舍溫度要求,通過D/A輸出控制信號,控制風機的轉速及風機的啟動、停止,實現(xiàn)蓄舍溫度及空氣的自動調節(jié)。1.3設計要求(1)當 溫度18,風機不轉動,并且四個紅燈閃爍。(2)當18 溫度

3、20,啟動風機低速轉動。(3)當20 溫度 25,啟動風機中速轉動。(4)當25 溫度 30,啟動風機高速轉動。(5)當溫度超過30,紅色發(fā)光二極管全亮、喇叭連續(xù)發(fā)聲報警。(6)用直流電機帶動風機,計算機輸出的數(shù)字量經(jīng)D/A轉換后變?yōu)楦?、中、低三種電壓,控制直流風機的三種轉速。二、總體設計使用可編程并行接口8255對實驗箱上的溫度檢測芯片DS18B20進行控制和數(shù)據(jù)傳輸,編寫程序對數(shù)據(jù)進行讀取并轉換為相應的BCD碼,判斷從外界采集的溫度并根據(jù)此溫度與所在的不同區(qū)間的溫度來調用的相應的子程序,并利用DA0832進行數(shù)模轉換來控制風機的轉動。利用8255PA端口控制LED燈的顯示、2PC端口(C1

4、)進行蜂鳴器的控制,并提取溫度轉換為非壓縮的BCD碼,顯示到八段數(shù)碼管上。該設計主要分為以下幾個主要功能模塊:2.1溫度數(shù)據(jù)采集模塊本模塊利用實驗箱自帶的數(shù)字溫度計DS18B20測量溫度,程序通過可編程并行接口8255的PC0口對DS18B20寫讀寫命令,并將讀到的溫度數(shù)據(jù)從PC0口按位讀取出來,存放在AX寄存器內。2.2 溫度轉換及顯示模塊本模塊將數(shù)據(jù)采集模塊得到的溫度數(shù)值首先轉換為BCD碼,提取溫度數(shù)據(jù),轉換為非壓縮型BCD碼。具體轉換過程可參考附錄II的核心代碼的BCD轉換部分。轉換完后調用Display8在八段數(shù)碼管上顯示溫度。32.3 LED顯示控制模塊根據(jù)此次課程設計的目的與要求,

5、當溫度超過30時,紅色發(fā)光二極管閃爍。 用8255的PA端口來控制紅燈亮,中間再調用一個延時,可以從視覺上 看出紅燈閃爍。具體過程可參考附錄中的程度代碼。2.4蜂鳴器控制模塊根據(jù)此次課程設計的目的與要求,當溫度值大于30時,要控制蜂鳴器做出報警。本程序是利用8255PC端口(PC1)來控制蜂鳴器發(fā)出報警聲音。2.5直流電機控制模塊根據(jù)此次課程設計的目的與要求,當溫度超過20小于25時,要控制風機低速轉動。當溫度超過25小于30時,要控制風機中速轉動,當溫度超過30時,要控制風機高速轉動。設計中通過不同區(qū)間數(shù)據(jù)的比較,給低、中、高三種不同的轉速賦予不同的電壓值傳送給DA0832,利用DA0832

6、控制直流電機轉動,由于輸出高電平功率較小,導致無法自動驅動電機轉動,所以在輸出之后接試驗箱的功放模塊,放大功率后,輸出高電平可自動驅動直流電機轉動。4三、課程設計過程3.1硬件設計表1 硬件連線3.2軟件設計軟件部分利用實驗箱為運行平臺,運用匯編指令編寫??刂瞥绦蛑饕?度數(shù)據(jù)采集模塊、溫度轉換及顯示模塊、LED顯示控制模塊、蜂鳴器控制模塊、風機控制模塊等。初始化程序包含:8255初始化程序、18B20初始化子程序。四、系統(tǒng)測試4.1系統(tǒng)調試按照硬件連線連接電路,為方便調試,將程序內的溫度區(qū)間作了調整。將原來設計要求里的<=10暫時設定為18到20,10到30設定為25到30。系統(tǒng)啟

7、動后,溫度傳感器得到當前室溫,但是溫度過低。之后給溫度采集模塊的Ctrl引腳一定的電壓,手動升溫,當溫度到20不超過25風機開始低速轉動,當溫度到了25但不超過30時,風機開始中速轉動,當溫度超過30時,此時蜂鳴器開始發(fā)出報警聲,紅色發(fā)光二極管開始閃爍,表示溫度過高。4.2過程調試在調試過程中,雖然遇到了很多的問題,程序代碼有錯誤,線路連接的不恰當?shù)?,通過老師和同學的幫助,出通過查一些資料,最終解決了這些問題。完成了設計。設計中,當溫度低于20或者溫度大于40時,需要控制蜂鳴器報警,設計初期想利用可編程并行接口8255的PC1口輸出低電平控制蜂鳴器,但是調試過程中發(fā)現(xiàn),由于程序運行過程中需要對

8、8255不斷的進行初始化操作,導致PC1口的電平不穩(wěn)定,使蜂鳴器不能很好的控制,通過查資料,修改設計,利用PC1、PC2 、PC3輸出高電平,接74LS138譯碼器控制蜂鳴器報警,這樣就能很好的解決該問題。調試中,由于室內的溫度過低,在要求的溫度范圍內帶動風機不能轉動,所以決定加上一定的電壓使采集的溫度不至少于太低,經(jīng)過調試后,由于輸出的功率不高,帶動風機轉動不明顯,所以在DA0832的輸出端口OUT端連上了功放電6路,這時當溫度在某個區(qū)間時,風機就可以明顯地看出轉速的快慢。由此解決了電機的控制問題。設計中,利用可編程并行接口8255的PA口控制發(fā)光管。當需要某一顏色的發(fā)光管常亮時,其他的發(fā)光

9、管需要處于熄滅狀態(tài),但通過調試發(fā)現(xiàn),實際運行過程中,當某一顏色的發(fā)光管常亮時,其他發(fā)光管長時間處于熄滅狀態(tài),但還會出現(xiàn)一個短暫的點亮的過程,導致其他發(fā)光管出現(xiàn)閃爍,后來經(jīng)過請教老師得知,由于程序運行過程中需要對8255不斷的進行初始化操作,每次初始化,8255的PA口會輸出高電平,導致某些發(fā)光管出現(xiàn)短暫的閃爍,解決方法是可以使用另外一個可編程并行接口8255,用這個8255的PA口來控制發(fā)光管,程序運行過程不會多次對這個8255初始化,所以不會再出現(xiàn)上一個問題。經(jīng)過測試,這樣做可以解決該問題。五、程序代碼清單.MODEL TINY;連線;8255 CS->CS1; A0->A0;

10、A1->A1CON_8255 EQU 0F003HPC_8255 EQU 0F002HPB_8255 EQU 0F001HPA_8255 EQU 0F000HDA0832 EQU 0D000HEXTRN DISPLAY8:NEAR.STACK 300.DATAVOLTAGE DB 0BUFFER DB 8 DUP(0) ;溫度臨時存放區(qū)7.CODESTART: MOV AX,DATAMOV DS,AXMOV ES,AXNOPCALL INIT8255MAIN: CALL START_TEMPERATURE ;向DS18B20發(fā)送讀溫度指令JB MAINCALL DELAYTIMECALL

11、 RD_TEMPERATURE ;讀出溫度值,并轉換為BCD碼CALL TEMPERATURE_CASECALL DELAYTIMECALL DAC0832CALL DIS_BCD ;提取溫度數(shù)據(jù),轉換為非壓縮型BCD碼,并顯示JMP MAIN;判斷溫度控制電機速度TEMPERATURE_CASE PROC NEARPUSH AXMOV DX,PC_8255 ;蜂鳴器不響MOV AL,03HOUT DX,ALMOV BX,AXCMP BX,0120H ;18JB CASE1CMP BX,0140H ;20JB CASE2CMP BX,0190H ;25JB CASE3CMP BX,01E0H

12、;30JB CASE4MOV DX,PC_8255 ;超過30時,驅動蜂鳴器響MOV AL,02HOUT DX,AL8JMP CASE5RETURN: POP AXRETCASE1: MOV VOLTAGE,0FHJMP RETURNCASE2: MOV VOLTAGE,0FHJMP RETURNCASE3: MOV VOLTAGE,20H ;2025間風機開始低速轉動JMP RETURNCASE4: MOV VOLTAGE,55H ;2530間風機中速轉動 JMP RETURNcase5:MOV DX,PA_8255 ;超過30時風機高速轉動,此時紅燈閃爍MOV AL,0CCHOUT DX,

13、ALCALL DELAYTIMEMOV DX,PA_8255MOV AL,00HOUT DX,ALMOV VOLTAGE,99HJMP RETURNTEMPERATURE_CASE ENDPDAC0832 PROC NEARPUSH AXMOV DX,DA0832MOV AL,VOLTAGEOUT DX,ALPOP AXRETDAC0832 ENDP9;*;溫度轉換/顯示;*DIS_BCD PROC NEARMOV BX,AXLEA DI,BUFFER+7STDMOV AL,10H ;10H表示不需要顯示 STOSBSTOSBSTOSBSTOSBTESTJNZSTOSBJMPDIS_BCD1:

14、 MOVSTOSBNEGDIS_BCD2:SHLSHLSHLSHLMOVXCHGDIVCMPJNZ處理MOVXCHGSTOSBJMPDIS_BCD3: STOSBDIS_BCD4: MOVORSTOSBXORTESTJZMOVDIS_BCD5: TESTAH,08H DIS_BCD1 ;正數(shù) DIS_BCD2 AL,11H ;負數(shù) BX ;將溫度整數(shù)位轉換為ASCI BX,1 ;將溫度的個位與十位合在BH中 BX,1 BX,1 BX,1 AX,10 AL,BH BH AL,0 DIS_BCD3 ;判斷溫度的十位是否為0進行相應 AL,10H ;十位為0 AL,DI+1 DIS_BCD4 AL,

15、AH AL,80H ;小數(shù)點 AL,AL ;轉換小數(shù)部分 BL,10H DIS_BCD5 AL,6 BL,20H 10JZ DIS_BCD6 ADD AL,12H DAADIS_BCD6: TEST BL,40H JZ DIS_BCD7 ADD AL,25H DAADIS_BCD7: TEST BL,80H JZ DIS_BCD8 ADDDAADIS_BCD8: MOVRORANDSTOSBCLDLEACALLRETDIS_BCD ENDP;延時程序DELAYTIME PROCXORLOOPLOOPLOOPRETDELAYTIME ENDP;寫 0W_L PROCPUSHMOVMOVOUTPO

16、PRETW_L ENDP;寫 1W_H PROCPUSHMOVAL,50H CL,4 AL,CL AL,0FH SI,BUFFER ;顯示溫度DISPLAY8 NEAR CX,CX $ $ $ NEAR AX DX,CON_8255 AL,80H DX,AL AX NEAR AX DX,CON_8255 11MOV AL,01HOUT DX,ALPOP AXRETW_H ENDP;DS18B20復位初始化子程序INIT_18B20 PROC NEARCALL W_L ;主機發(fā)出501us復位低脈沖 MOV CX,136LOOP $MOV DX,CON_8255MOV AX,89HOUT DX,

17、AL ;PC輸入狀態(tài)DEC DXMOV CX,15INIT_18B20_1: IN AL,DXTEST AL,01HJZ INIT_18B20_2LOOP INIT_18B20_1STC ;置位標志位,表示DS18B20不存在 RETINIT_18B20_2: MOV CX,136LOOP $CLC ;復位標志位,表示DS18B20存在 RETINIT_18B20 ENDP;寫操作WRITE_18B20 PROC NEARMOV CX,8 ;一共8位數(shù)據(jù)WRI: CALL W_L ;0->PC0ROR AL,1JNB WRI1CALL W_HWRI2: PUSH CXMOV CX,12L

18、OOP $ ;延時55usPOP CXCALL W_HLOOP WRIRETWRI1: PUSH CXPOP CX12JMP WRI2WRITE_18B20 ENDP;讀操作READ_18B20 PROC NEARMOV CX,8 ;數(shù)據(jù)一共有8位 READ: MOV DX,CON_8255MOV AL,80HOUT DX,AL ;0->PC0MOV AL,89HOUT DX,AL ;輸入狀態(tài)NOPNOPNOPMOV DX,PC_8255IN AL,DXROR AL,1RCR BL,1MOV DX,CON_8255MOV AL,80HOUT DX,ALMOV AL,01HOUT DX,AL ;1->PC0LOOP READMOV AL,BLRETREAD_18B20 ENDP;*; 判斷DS18B20是否存在,啟動DS18B20 ;CY為判斷標志 ;*START_TEMPERATURE:CALL INIT_18B20 ;先復位DS18B20 JB GET_TMOV AL,0CCH ;跳過ROM匹配 CALL WRITE_18B20MOV AL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論