風扇自動程序控制器設計_第1頁
風扇自動程序控制器設計_第2頁
風扇自動程序控制器設計_第3頁
風扇自動程序控制器設計_第4頁
風扇自動程序控制器設計_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 課 程 設 計 -電風扇自動程序控制器設計 學生姓名: 熊偉 學 院: 信息工程學院 班 級: 12應用電子技術 學 號: 2012011862 指導教師: 鄧鴻甫 日 期: 2014 年 12 月 目 錄摘 要.11 總體設計思想.22 硬件設計.3 2.1硬件設計基本概要.3 2.2 8255A的設計.4 2.3 8253的設計.4 2.4步進電機的設計.5 2.5硬件系統原理圖.53 軟件設計.6 3.1風扇運行控制模塊.7 3.2按鍵判斷控制模塊.7 3.3風速控制模塊.9 3.4類型控制模塊.10 3.5定時控制模塊.10 3.6停止控制模塊.114 系統調試及仿真.125 心得與

2、體會.14參考文獻.15附錄 源程序及其說明.16 1 總體設計思想本次課程設計任務主要基于8086以及各種接口芯片結合匯編語言實現對家用風扇控制器的模擬,運用8086CPU結合匯編語言編寫的軟件來實現各種信號的處理與變換,以得到想要的控制信號。8255A接收開關信號,驅動風扇的轉動信號輸出,并接收8253產生的控制信號。8253主要實現各種風種的控制信號,從而得到自然、睡眠的類型風。在模擬中通過開關來實現各種控制信號的輸入,再通過8255的端口進行讀取,再由8086通過軟件對采入的信號進行辨別進而轉入到相應的功能子程序中以實現各種功能。在各種功能的背后,通過8086驅動相應功能的硬件設備實現

3、各種功能的切換。  圖1-1 硬件設計框圖 此任務控制器已基本實現所有風扇控制功能,而現在幾乎所有的風扇都能實現定時功能,故可以在控制器的設計中擴展定時功能以達到全面控制的目的。風扇控制停止后,后續狀態任務書上未作要求,現設計其能在停止后處于等待狀態,當且僅當有風速鍵按下后,控制器可恢復繼續控制風扇的運行,實現控制器的循環控制。2 硬件設計2.1 硬件設計基本概要根據設計要求和內容,用可編程并行接口芯片8255A PC口低四位接收4個按鍵(分別表示風速、風種、定時、停止)的狀態以啟動電扇或設置相應的工作狀態。這樣就需要4個按鍵,因此可以用實驗箱上的某一列的4個按鍵,可以將此

4、列的列選擇線直接接為低電平,4個行輸入線接到8255的C口。這樣可以直接從8255的口讀取按鍵的狀態,從而執行相應的操作。要通過一個按鍵來控制2個以上的狀態,可以通過按鍵的次數來控制第幾種狀態,比如風速有三種狀態(弱、中、強),可以用按鍵1次控制弱,按鍵2次控制中,按鍵3次控制強,這樣就可以實現一鍵控制多鐘狀態了。 控制器的指示燈,使用六個LED燈進行顯示,分別顯示不同風速、類型等6個指示信號。顯示模塊狀態表示如下表2-1所示。用四相步進電動機作為電風扇,其轉速可通過改變其驅動電平的頻率來改變步進電機的速度。利用8255A的PC口高四位對步進電機進行四相四拍驅動。風種時間控制可由可編

5、程計數器/定時器 8253來實現。可選用8253工作在方式3。在這種方式下,當CPU輸入控制字后,輸出將為高,在寫入計數值后計數器將立即自動對輸入時鐘CLK計數,計數器減為1時,輸出將變低,方式2時8253不可用重新設置計數值就能連續工作,保證了定時的精確。 表2-1 顯示模塊代碼狀態表示按鍵狀態 相應LED燈顯示器風速弱1中2強3類型正常4自然5睡眠62.2 8255A的設計8255A的PA工作在方式0的基本輸入方式作為控制信號的輸入,接收8253的信號來控制步進電機的轉動與停止。PC低四位工作在方式0的基本輸入方式,用來接收四個開關的開關信號,高四位工作在方式0的基本輸出方式作為四相步進電

6、機的四相線路輸出電路用來驅動步進電機的轉動。PB口工作在方式0的基本輸出方式,用低六位來控制六個LED燈的亮和滅。2.3 8253的設計 先利用通道0對時鐘進行分頻,已獲得可較好利用的時鐘,得到周期為四秒的方波為后面能自然和睡眠的狀態產生八秒高電平四秒低電平以及周期為十六秒的方波做準備。使用通道2用來產生類型風的狀態信號,在自然風類型時,讓其工作在方式2產生八秒高電平四秒低電平,當高電平時驅動步進電機轉動,低電平則返回繼續檢測,以實現自然風的模擬;在睡眠的類型時,通道2工作在方式3產生周期為十六秒的方波,當高電平時驅動步進電機轉動,低電平則返回繼續檢測,以實現睡眠風的模擬。2.4 步進電機的設

7、計步進電機可接受數字控制信號(電脈沖信號)并轉化成與之相對應的角位移或直線位移,因而本身就是一個完成數字模擬轉化的執行元件。而且它能進行開環位置控制,輸入一個脈沖信號就得到一個規定的位置增量。本次課程設計使用的電機為四相步進電機,采用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉動。步進電機的轉速取決于脈沖頻率、轉子齒數和拍數。其角速度與脈沖頻率成正比,而且在時間上與脈沖同步。因而在轉子齒數和運行拍數一定的情況下,只要控制脈沖頻率即可獲得所需速度。2.5 系統硬件原理圖 圖2-1 系統硬件原理圖3 軟件設計 硬件的設計完成后,運用匯編語言編寫軟件部分通過80

8、86CPU實現各種信號的輸入/輸出以及相關信號的處理,從而控制步進電機的各種轉態的轉換控制。 軟件設計主體流程圖如圖3-1所示。Y開始初始化8255A,8253通道1風速鍵是否按下初始化風速:弱,類型:正常風扇運行子模塊風速鍵是否按下下類型鍵是否按下停止鍵是否按下風扇控制子模塊類型控制子模塊停止子模塊YNYNY圖3-1風扇控制器軟件總流程圖3.1 風扇運行控制模塊 此模塊主要控制步進電機的轉動以及轉速,亦是整個控制器的主控部分。實現風扇各種功能的“CPU”。其中主要部分是驅動電機轉動的子程序,每次依次對四相電路驅動一次,由于8086處理速度非常快在肉眼看來電機沒有微停抖動的情況,步進

9、電機就是在連續的轉動。步進電機轉動需要判斷兩個控制信號,一個是類型信號PA0另一個是定時信號PA1,當兩者都是高電平時才去驅動步進電機轉動。風扇運行控制模塊流程圖如圖3-2所示:PA0是高電平PA1是高電平驅動步進電機顯示當前狀態NNYY停止控制模塊風扇運行模塊子程序子程序返回圖3-2風扇運行控制模塊流程圖3.2 按鍵判斷控制模塊常用風扇開關是彈簧式,但平臺上是單刀單擲的開關,若用常用方法判斷其是高電平(或低電平)每次撥完開關后需對開關撥回原來的狀態下次才能正常撥動開關,相當不方便。我采用另一種判斷方法,每次有按鍵按下后后保存他們的開關狀態當下次有開關狀態變化時就可以知道有按鍵按下進行按鍵判斷

10、。首先判斷上一次的開關狀態與此次檢測的狀態是否相同,不同則分別判斷四個開關狀態是否變化,若有就轉入相應的子模塊中。按鍵判斷控制模塊圖如圖3-3所示。開關狀態是否變化保存此次開關狀態風速開關狀態變化停止開關狀態變化定時開關狀態變化類型開關狀態變化NNNNNY風速控制模塊YYY類型控制模塊定時控制模塊停止控制模塊開關模塊子程序Y子程序返回 圖3-3按鍵控制模流程圖3.3 風速控制模塊此次任務中使用步進電機進行模擬,步進電機的速度控制運用PWM方法,通過改變頻率來實現速度控制。在軟件編程中,通過8255A的PB口輸出驅動步進電機,通過改變單拍輸出的延時時間來改變速度,延時越短速度越快。在設計中,置一

11、數據BUF1單元保存延時時間,不同的速度選擇時,置不同數據來改變延時的長短從而實現速度的控制。另置一數據單元BUF2保存當前風速狀態,BUF2在1、2、3之間循環,分別代表弱、中、強并作為狀態數據顯示。風速控制模塊流程圖如圖3-4所示。BUF2為弱風狀態BUF2加1BUF2為中速狀態BUF2為強風狀態BUF1置弱風延時時間數據BUF1置中風延時時間數據BUF1置強風延時時間數據 BUF2清零YYYNNN風速控制模塊子程序子程序返回圖3-4風速控制模塊流程圖3.4 類型控制模塊類型的控制主要運用8253來產生各種狀態波形信號,通過檢測信號的高低電平來控制步進電機的運轉。此模塊主要來初始化8253

12、通道1的工作狀態。在數據段中置一數據單元BUF3來存儲類型的狀態數據,BUF3在1、2、3之間循環分別代表類型中的正常、自然以及睡眠三種類型并作為狀態數據顯示。類型控制模塊流程圖如圖3-5所示。BUF3為正常狀態BUF3加1BUF3為自然狀態BUF3為睡眠狀態PC0、PC1、PC2輸出0 ,8253所有通道門控置0PC0、PC1輸出1通道2初始化工作在方式2PC0、PC1輸出1通道2初始化工作在方式3 BUF3清零YYYNNN類型控制模塊子程序子程序返回圖3-5類型控制模塊流程圖3.5 定時控制模塊定時也是通過8253產生控制信號來控制,通過8253的通道2工作在方式4實現定時,在定時完后會在

13、風扇運行控制模塊中轉到停止模塊中。在數據段中置一數據單元BUF4來存儲定時類型的狀態數據,BUF4在1、2、3之間循環分別代表類型中的8秒、16秒以及32秒三種類型并作為狀態數據顯示。定時控制模塊流程圖如圖3-6所示。BUF4為8S狀態BUF4加1BUF4為16S狀態BUF4為32S狀態PC5輸出1 ,初始化通道38S的計數初值PC5輸出1 ,初始化通道316S的計數初值PC5輸出1 ,初始化通道332S的計數初值BUF4清零YYYNNN定時控制模塊子程序子程序返回圖3-6定時控制模塊流程圖3.6 停止控制模塊停止狀態主要實現風扇暫時性的停止運行,在某個鍵按下后又能繼續運轉。按要求只有在風速鍵

14、按下才能繼續運行。此模塊主要對已運行的風扇停止后所有狀態進行清零,以保證再次運行后能按初始狀態運行。停止模塊流程圖如圖3-7所示。BUF1、BUF2、BUF3、BUF4清零PC0、PC1、PC2輸出為08253所有通道門控清零停止模塊子程序子程序返回圖3-7停止控制模塊流程圖4 系統調試及仿真1、當程序運行時,進入DOS狀態下控制器面板的菜單選項:按鈕為三個,分別為“風速”、“類型”和“停止”,LED指示燈共六個,分別指示風速“強”、“中”、“弱”,類型分別為“睡眠”、“自然”和“正常”。2、電扇處于停轉狀態時:所有指示燈不亮,只有按下“風速”鍵時,其狀態由“弱” “中” “強” “弱” 往復

15、循環改變,每按一下按鍵改變一次;按“類型”鍵時,其狀態由“正常” “睡眠” “自然” “正常” 往復循環改變;電扇在任何狀態,只要按停止鍵,則進入停轉狀態。系統利用proteus進行仿真,仿真圖詳見下圖4-1 圖4-1 系統仿真圖5. 實驗結果實驗結果圖如圖6.1所示圖 5.1 實驗結果5 心得與體會通過此次的課程設計任務,我加深了自己對匯編語言以及各接口芯片使用方法的理解,在實踐中體會到各芯片的工作的狀態及使用方法。本學期學習過的8255A和8253芯片的相關內容,通過這次課程設計,通過設計,看書,也有了比較深刻地了解。與此同時還加深了對匯編程序結構,指令,調用等基礎知識的認識。在實踐中充分

16、利用所學知識結合實際情況作出符合要求的設計。在具體的調試過程中遇到了很多問題,我們小組通過查找各方面資料解決了這些問題。在這我學到了部分proteus仿真中及硬件調試方面常出現的問題及解決方法。而在軟件設計方面我也學到常見邏輯錯誤及其解決方法。能在實踐中磨礪自己的意志以及鍛煉自己的動手操作能力,提升自己獨立完成小型系統的設計任務能力。為以后在大型系統設計中能奠定一定的基礎知識及實際操作能力,并為自己積累了許多寶貴的經驗教訓。通過這次短暫的課程設計,不僅使我加深了對接口程序設計的認識,對接口各部件的工作原理也有了進一步的了解,也增強了分析故障以及獨立處理問題的能力。 參考文獻1 彭虎. 微機原理

17、與接口技術. 機械工業出版社,2001年3月2 雷麗文. 微機原理與接口技術. 電子工業出版社 1999年第一版3 韓海編著. 匯編語言程序設計. 西安:西安電子科技大學出版社,20004 胡壽松. 自動控制原理. 科學出版社,1999 5 劉樂善. 微型計算機接口技術及應用. 武漢:華中科技大學出版社,20046 沈美明. IBM PC機匯編語言程序設計. 清華大學出版社,1991年第一版附錄 源程序及其說明說明:DS:077AH存儲延時時間控制步進電機速度DATA0存儲當前狀態顯示數據DATA存儲當前狀態類型數據源程序:CODES SEGMENT ASSUME CS:CODES;8253端

18、口地址IOCON8253 EQU 43H IO08253 EQU 40H IO18253 EQU 41H IO28253 EQU 42H ;8255端口地址IOCON8255 EQU 0FF2BH IOB8255 EQU 0FF29H IOC8255 EQU 0FF2AH ORG 1000HSTART: MOV CS:DATA0,0H MOV CS:DATA01,0H MOV CS:DATA02,0H;8255初始化MOV AL,10000011B MOV DX,IOCON8255 OUT DX,AL;按鍵狀態數據 MOV WORD PTR DS:077AH,09FFH;控制器啟動程序;判斷是

19、否是風速按鍵按下QD: MOV DX,IOC8255 IN AL,DX CMP AL,01 JNE QD MOV BYTE PTR DS:077CH,01H JMP STYLEPRO;檢查是否有鍵鍵入CHECK: MOV DX,IOC8255 IN AL,DX AND AL,0FH CMP AL,BYTE PTR DS:077CH;沒有則跳出返回JZ CHECKOUT ;判斷輸入鍵的類型MOV AH,AL MOV BL,BYTE PTR DS:077CH MOV BYTE PTR DS:077CH,AL MOV BH,BL AND BL,01H AND AL,01H XOR AL,BL;風速選

20、擇鍵鍵入JNZ SPEEDPRO MOV AL,AH MOV BL,BH AND BL,02H AND AL,02H XOR AL,BL;風類型選擇鍵鍵入JNZ STYLEPRO MOV AL,AH MOV BL,BH AND BL,04H AND AL,04H XOR AL,BL;定時選擇鍵鍵入JNZ L1 MOV AL,AH MOV BL,BH AND BL,08H AND AL,08H XOR AL,BL;停止鍵鍵入JNZ L2 L1: JMP TIMEPRO L2: JMP PAUSEPRO CHECKOUT: RET;風速選擇程序模塊SPEEDPRO: MOV AL,CS:DATA

21、ADD AL,1 MOV CS:DATA,AL MOV AL,CS:DATA CMP AL,1 JZ L CMP AL,2 JZ MID ;強風MOV CS:DATA,0MOV WORDPTRDS:077AH,00FFHMOV CS:DATA0,03HJMP BACK;弱風 L:MOV WORD PTR DS:077AH,09FFH MOV CS:DATA0,01H JMP BACK;中風MID:MOVWORD PTR DS:077AH,04FFH MOV CS:DATA0,02H JMP BACK BACK:JMP CHECKOUT;類型選擇程序模塊STYLEPRO: MOV CS:DATA

22、02,0H MOV AL,CS:DATA1 ADD AL,1 MOV CS:DATA1,AL MOV AL,CS:DATA1 CMP AL,1 JZ NORMAL CMP AL,2 JZ NATURAL MOV CS:DATA1,0 JMP SLEEP ;正常NORMAL: MOV CS:DATA01,01H NORMAL_R: CALL DISP CALL RUN CALL CHECK JMP NORMAL_R ;自然NATURAL: CALL FORMAT8253_NATURAL MOV CS:DATA01,02H NATURAL_R: CALL DISP MOV DX,IOB8255 I

23、N AL,DX TEST AL,1 JNZ N_GO JMP N_CHECK N_GO:CALL RUN N_CHECK: CALL CHECK JMP NATURAL_R ;睡眠SLEEP: CALL FORMAT8253_SLEEP MOV CS:DATA01,03H SLEEP_R: CALL DISP MOV DX,IOB8255 IN AL,DX TEST AL,1 JNZ S_GO JMP S_CHECK S_GO:CALL RUN S_CHECK: CALL CHECK JMP SLEEP_R;定時選擇程序模塊TIMEPRO: CALL FORMAT8253 MOV CS:DAT

24、A01,0H MOV AL,CS:DATA2 ADD AL,1 MOV CS:DATA2,AL CMP AL,1 JZ TIME1 MOV AL,CS:DATA2 CMP AL,2 JE TIME2 MOV CS:DATA2,0 JMP TIME3 ;8秒定時TIME1: CALL FORMAT8253_TIME1 MOV CS:DATA02,01H TIME1_R: CALL DISP MOV DX,IOB8255 IN AL,DX NOT AL TEST AL,01 JNZ T1_GO JMP PAUSEPRO T1_GO: CALL RUN CALL CHECK JMP TIME1_R

25、;16秒定時TIME2: CALL FORMAT8253_TIME2 MOV CS:DATA02,02H TIME2_R: CALL DISP MOV DX,IOB8255 IN AL,DX NOT AL TEST AL,01 JNZ T2_GO JMP PAUSEPRO T2_GO: CALL RUN CALL CHECK JMP TIME2_R ;32秒定時TIME3: CALL FORMAT8253_TIME3 MOV CS:DATA02,03H TIME3_R: CALL DISP MOV DX,IOB8255 IN AL,DX NOT AL TEST AL,01 JNZ T3_GO

26、JMP PAUSEPRO T3_GO: CALL RUN CALL CHECK JMP TIME3_R ;停止控制模塊PAUSEPRO: PCHECK: MOV DX,IOC8255 IN AL,DX AND AL,0FH CMP AL,BYTE PTR DS:077CHJZ PCHECK;是否為風速鍵 MOV AH,AL MOV BL,BYTE PTR DS:077CH MOV BYTE PTR DS:077CH,AL MOV BH,BL AND BL,01H AND AL,01H XOR AL,BL JZ PCHECK ;狀態清零MOV CS:DATA,0H MOV CS:DATA1,0H

27、 MOV WORD PTR DS:077AH,3FFFH MOV CS:DATA0,0H MOV CS:DATA01,0H MOV CS:DATA02,0H JMP STYLEPRO;步進電機驅動轉動模塊RUN: MOV DX,IOC8255 MOV AL,30HOUT DX,ALCALL DELAYMOV AL,60HOUT DX,ALCALL DELAYMOV AL,0C0HOUT DX,ALCALL DELAYMOV AL,90HOUT DX,ALCALL DELAYRET ;延時控速DELAY: MOV CX,WORD PTR DS:077AH DELA:LOOP DELA RET ;通道0初始化FORMAT8253: MOV AL,00110111B MOV DX,IOCON8253 OUT DX,AL MOV AL,00 MOV DX,IO08253 OUT DX,AL MOV AL,10 OUT DX,ALRET;自然風通道2初始化FORMAT8253_NATURAL: MOV AL,10110111B MOV DX,IOCON8253 OUT DX,AL MOV AL,00 MOV DX,IO28253 OUT DX,AL MOV AL,10 OUT DX,ALRET;睡眠風通道2初始化FORMAT8253_SLEEP: MOV AL,10110111B MOV

溫馨提示

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

評論

0/150

提交評論