全自動洗衣機控制器的設計與仿真_第1頁
全自動洗衣機控制器的設計與仿真_第2頁
全自動洗衣機控制器的設計與仿真_第3頁
全自動洗衣機控制器的設計與仿真_第4頁
全自動洗衣機控制器的設計與仿真_第5頁
已閱讀5頁,還剩4頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 課程設計任務書學生姓名: 專業班級: 指導教師: 工作單位: 信息工程學院 題 目: 全自動洗衣機控制器的設計與仿真 初始條件: 設計一個全自動洗衣機控制器,功能為:1. 具備水位設定開關一個:普通(進水閥開啟3分鐘)臟(進水閥開啟4分鐘)極臟(進水閥開啟5分鐘);2. 具備模式設定開關一個:輕柔(電機單次正反轉時間均為10秒)標準(電機單次正反轉時間均為20秒)增強(電機單次正反轉時間均為30秒);3. 洗衣流程為;(電機的暫停時間均為2秒) 浸泡:進水浸泡(5分鐘) 清洗:正轉暫停反轉(前三個步驟循環5次)排水 漂洗:進水正轉暫停反轉(后三個步驟循環3次)排水(整個漂洗過程循環2次) 脫

2、水:電機正轉同時排水(5分鐘),完成后停止并發出報警信號。過程由“開始”按鈕啟動,按下該鈕后,自動按4個流程執行,無需人工干預。 要求完成的主要任務: 1. 以XX方式顯示運行時間,以指示燈方式表示進水閥、排水閥、電機的正反轉、結束報警等信號。電機和閥門的驅動電路另行設計(本次省略)2廣泛調研,提出幾種可行的方案,多方論證,確定設計方案,用EDA軟件仿真;3. 按格式要求撰寫課程設計說明書一份;4提供程序代碼一份;5. 參考文獻不少于5篇,其中期刊文獻不少于2篇。時間安排:1. 06月28日 布置設計任務;2. 07月02日 收集資料并確定設計方案;3. 07月0304日 系統設計、仿真和調試

3、; 4. 07月05日 撰寫課程設計報告; 5. 07月06日 答辯;課設答疑/答辯地點:鑒主15樓實驗室指導教師簽名: 2012年 6 月 25 日系主任(或責任教師)簽名: 2012年 6 月 25 日1緒論2.設計任務及完成的功能2.1設計任務:設計一個全自動洗衣機。2. 2功能:具備水位設定開關一個:普通(進水閥開啟3分鐘)臟(進水閥開啟4分鐘)極臟(進水閥開啟5分鐘);具備模式設定開關一個:輕柔(電機單次正反轉時間均為10秒)標準(電機單次正反轉時間均為20秒)增強(電機單次正反轉時間均為30秒);洗衣流程為;(電機的暫停時間均為2秒) 浸泡:進水浸泡(5分鐘) 清洗:正轉暫停反轉(

4、前三個步驟循環5次)排水 漂洗:進水正轉暫停反轉(后三個步驟循環3次)排水(整個漂洗過程循環2次) 脫水:電機正轉同時排水(5分鐘),完成后停止并發出報警信號。過程由“開始”按鈕啟動,按下該鈕后,自動按4個流程執行,無需人工干預。3設計原理及模塊實現 3.1設計原理及整體框圖根據設計的要求需要分頻器、循環計數、譯碼顯示三部分組成。整體框圖如下圖31所示:顯示譯碼 循環計數分頻器時鐘信號 圖31設計方案總方框圖3.2單元模塊設計模塊一:分頻器 由于設計要求計數單元屬于秒脈沖技術單元而CPLD器件給出的時鐘信號為50MHZ故需要一個分頻器對50MHZ的頻率進行分頻所以需要設計一個50M分頻器其VH

5、DL源程序如下所示:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;entity clk_div isport( clk : in std_logic; clk1:out std_logic);end clk_div;architecture mix of clk_div issignal count :integer range 0 to 49999999;begin clk_div_proc:process(clk) begin if

6、rising_edge(clk) then if count=49999999 then count<=0; else count<=count+1; end if; if count>24999999 then-?±è50% clk1<='1' else clk1<='0' end if; end if; end process clk_div_proc;end mix;該程序生成的元件符號如圖32所示圖32分頻器元器件符號3.2.2模塊二:循環計數循環計數模塊是本設計的骨干精髓部分,分別用兩個信號控制水位設定

7、和模式設定兩個鍵位然后組合形成九中工作方式,通過計算九中方式的時間,循環計數然后編寫程序。其VHDL源程序如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY xiyiji IS PORT(WSET,PDES,START,CLK,SG:IN STD_LOGIC; COME,DOUT:BUFFER STD_LOGIC_VECTOR(1 DOWNTO 0); MIU2,MIU1,SEC2,SEC1:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); BAOJ:B

8、UFFER STD_LOGIC);END xiyiji;ARCHITECTURE BEHAV OF xiyiji ISSIGNAL DT1,DT2:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL DICSOUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL COUNT0,COUNT1:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL TIM3,TIM4,TIM5,TIM6:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL TIM1,TIM2,TIM7,TIM8:STD_LOGIC_VECTOR(8

9、DOWNTO 0);SIGNAL CMKS:STD_LOGIC;BEGINPROCESS(WSET,SG) BEGINIF SG='0' THENDT1<="00"ELSIF WSET'EVENT AND WSET='1' THENIF DT1=0 THENDT1<="01"ELSEDT1<=DT1+1;END IF;END IF;END PROCESS;PROCESS(PDES,SG)BEGINIF SG='0' THENDT2<="00"ELSIF P

10、DES'EVENT AND PDES='1' THENIF DT2=0 THENDT2<="01"ELSEDT2<=DT2+1;END IF;END IF;END PROCESS; PROCESS(START,SG)BEGINIF SG='0' THENCMKS<='0'ELSIF START'EVENT AND START='1' THEN DICSOUNT<=DT1&DT2;CMKS<=CMKS XOR '1'END IF;END PRO

11、CESS; PROCESS(SG,CLK,CMKS,BAOJ)BEGINIF CMKS='0'THEN SEC1<="0000"elsIF CLK'EVENT AND CLK='1' THEN IF BAOJ='1' THEN SEC1<=SEC1;SEC2<=SEC2;MIU1<=MIU1;MIU2<=MIU2;ELSIF SEC1<9 THENSEC1<=SEC1+1;ELSIF SEC1=9 AND SEC2<5 THENSEC2<=SEC2+1;SEC1&l

12、t;="0000"ELSIF SEC1=9 AND SEC2=5 AND MIU1<9 THENMIU1<=MIU1+1;SEC1<="0000"SEC2<="0000"ELSIF SEC1=9 AND SEC2=5 AND MIU1=9 AND MIU2<5 THENMIU2<=MIU2+1;SEC1<="0000"SEC2<="0000"MIU1<="0000"END IF;END IF;END PROCESS;PRO

13、CESS(CLK,CMKS,DICSOUNT)VARIABLE N1,N2,DATA1:INTEGER;BEGIN CASE DICSOUNT ISWHEN "0101"=>N1:=180;N2:=10;WHEN "0110"=>N1:=180;N2:=20;WHEN "0111"=>N1:=180;N2:=30;WHEN "1001"=>N1:=240;N2:=10;WHEN "1010"=>N1:=240;N2:=20;WHEN "1011"

14、=>N1:=240;N2:=30;WHEN "1101"=>N1:=300;N2:=10;WHEN "1110"=>N1:=300;N2:=20;WHEN "1111"=>N1:=300;N2:=30;WHEN OTHERS=>N1:=0;N2:=0;END CASE;IF CMKS='0' THENCOME<="00"DOUT<="00"ELSIF CLK'EVENT AND CLK='1' THENIF COU

15、NT0<3 THENIF COUNT0=0 THEN DATA1:=5;ELSIF COUNT0>0 THEN DATA1:=3;END IF;IF TIM1<N1 THEN COME<="10"TIM1<=TIM1+1;ELSIF TIM1=N1 AND COUNT0="000" AND TIM2<300 THENCOME<="00"DOUT<="00"TIM2<=TIM2+1;ELSIF TIM1=N1 AND TIM2=300 THENCOME<=&

16、quot;00"DOUT<="00" IF COUNT1<DATA1 THENIF TIM3<N2 THENDOUT<="10"TIM3<=TIM3+1;ELSIF TIM3=N2 AND TIM4<2 THENTIM4<=TIM4+1;DOUT<="00"ELSIF TIM4=2 AND TIM5<N2 THENTIM5<=TIM5+1;DOUT<="01"ELSIF TIM5=N2 AND TIM6<2 THENTIM6<=

17、TIM6+1;DOUT<="00"ELSIF TIM6=2 THENCOUNT1<=COUNT1+1;TIM3<="00000"TIM4<="00000"TIM5<="00000"TIM6<="00000"END IF;ELSIF COUNT1=DATA1 AND TIM7<N1 THENTIM7<=TIM7+1;DOUT<="00"COME<="01"ELSIF TIM7=N1 THENCOUN

18、T0<=COUNT0+1;TIM1<="000000000"TIM7<="000000000"COME<="00"COUNT1<="000"END IF;END IF;ELSIF COUNT0=3 AND TIM8<300 THENTIM8<=TIM8+1;COME<="01"DOUT<="10"ELSIF TIM8=300 THENCOME<="00"DOUT<="00"

19、;END IF;END IF;END PROCESS;PROCESS(SG,TIM8)BEGIN IF TIM8=300 and count0=3 THEN BAOJ<='1'ELSE BAOJ<='0'END IF;END PROCESS;END BEHAV;生成的元件符號如圖33所示圖33循環計數元器件符號3.2.2模塊三:譯碼顯示模塊該模塊需要做四個譯碼顯示分別顯示分鐘十位、分鐘個位、秒十位、秒分位顯示從開始進行的時間,其中正反轉等的顯示分別用LED燈指示(正轉燈1亮,反轉燈2亮暫停亮燈都處于熄滅狀態),在此只需要在輸出的時候一一對應即可不需要做出故只做數顯模塊。數顯的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY seg7 ISPORT(bcd:IN STD_LOGIC_VECTOR(3 DOWNTO 0); a,b,c,d,e,f,g:OUT STD_LOGIC); END ENTITY seg7; ARCHITECTURE one OF seg7 IS S

溫馨提示

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

評論

0/150

提交評論