EDA 設(shè)計基于VHDL的簡易全自動控制洗衣機
《EDA 設(shè)計基于VHDL的簡易全自動控制洗衣機》由會員分享,可在線閱讀,更多相關(guān)《EDA 設(shè)計基于VHDL的簡易全自動控制洗衣機(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、信工073 余海軍 10079006 華東理工大學(xué)2009 -2010 學(xué)年第2學(xué)期 《電子綜合設(shè)計DEA》課程設(shè)計作業(yè) 2010.6 班級:XXXX 學(xué)號: XXX 姓名:XXXX 開課學(xué)院:信息學(xué)院 任課老師: XXXX 成績: 題目:1、簡易全自動洗衣機控制器設(shè)計 2、通信系統(tǒng)信道編碼器設(shè)計 作業(yè)要求: 《電子系統(tǒng)設(shè)計EDA》課程是電子信息工程、自動控制、計算機科學(xué)與工程等專業(yè)的技術(shù)課之一,具有很強的工程實踐性。課程學(xué)習要求學(xué)生:掌握現(xiàn)代硬
2、件數(shù)字電路的軟件化設(shè)計的基本方法、掌握應(yīng)用VHDL及EDA工具開發(fā)設(shè)計數(shù)字系統(tǒng)的基本方法以及對現(xiàn)代電子系統(tǒng)設(shè)計技術(shù)有一定的了解 設(shè)計報告要求:1、按照設(shè)計題目要求構(gòu)建設(shè)計框圖 2、用EDA設(shè)計軟件按照設(shè)計題目要求進行原型設(shè)計并給出仿真結(jié)果 3、對仿真結(jié)果進行一定的討論 4、原程序和仿真波形等附錄。 教師評語: 教師簽名: 年 月 日 電子綜合設(shè)計ED
3、A綜合設(shè)計題 設(shè)計一簡易全自動洗衣機控制器。該控制器由兩大狀態(tài)A和B組成,每個狀態(tài)分三個子狀態(tài),每個狀態(tài)分別由選擇A和選擇B控制。其中A為步進選擇按紐,每步跳轉(zhuǎn)一個子狀態(tài)、B也為步進選擇按紐,但每步選擇B中的所有組合中的一種。當啟動時,時間序列控制器按已選的B類子狀態(tài)順序執(zhí)行。 過程啟動由啟動/暫停鍵控制(暫停鍵在過程啟動后任意時間可暫停/恢復(fù)過程) 過程啟動后機蓋開啟應(yīng)均能暫停過程,復(fù)蓋間停30秒后重新繼續(xù)原過程。 A:強洗 標準 弱洗 B:洗滌 漂洗 甩干 (洗滌,漂洗時電機分別正轉(zhuǎn)、反轉(zhuǎn)) 強洗:(共36分鐘) 洗滌
4、 18分 漂洗 14分 甩干 4分 (洗滌時電機分別正轉(zhuǎn)4分、反轉(zhuǎn)4分,正反轉(zhuǎn)間停30秒;漂洗時電機分別正轉(zhuǎn)3分、反轉(zhuǎn)3分,正反轉(zhuǎn)間停30秒;甩干時電機分別正轉(zhuǎn)1.5分,間停30秒) 標準:(共26分鐘) 洗滌 14分 漂洗 8 分 甩干 4分 (洗滌時電機分別正轉(zhuǎn)3分、反轉(zhuǎn)3分,正反轉(zhuǎn)間停30秒;漂洗時電機分別正轉(zhuǎn)1.5分、反轉(zhuǎn)1.5分,正反轉(zhuǎn)間停30秒;甩干時電機分別正轉(zhuǎn)1.5分,間停30秒) 弱洗(共20分鐘) 洗滌 10分 漂洗 6分 甩干 4分 (洗滌時電機分別正轉(zhuǎn)2分、反轉(zhuǎn)2分,正
5、反轉(zhuǎn)間停30秒;漂洗時電機分別正轉(zhuǎn)1分、反轉(zhuǎn)1分,正反轉(zhuǎn)間停30秒;甩干時電機分別正轉(zhuǎn)1.5分,間停30秒) 設(shè)定秒脈沖已給定,指示為LED,整過程完成后,蜂鳴器響30秒。整個設(shè)計為正邏輯。 一、程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY student IS PORT(COUNT_N,COUNT_M,START,COOK,CLK:IN STD_LOGIC; LOOK:OUT STD_LOGIC; DOUT :OUT
6、 STD_LOGIC_VECTOR(1 DOWNTO 0)); END STUDENT; ARCHITECTURE BEHAV OF student IS SIGNAL DT1,DT2:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL DICSOUNT,TEM:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL DCP:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CT:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL CT1,CT2:STD_LOGIC_VECTOR(3
7、DOWNTO 0); SIGNAL SG,CMKS:STD_LOGIC; BEGIN PROCESS(COUNT_N,SG) BEGIN IF SG='1' THEN DT1<="00"; ELSIF COUNT_N'EVENT AND COUNT_N='1' THEN IF DT1=3 THEN DT1<="01"; ELSE DT1<=DT1+1; END IF; END IF; END PROCESS; PROCESS(COUN
8、T_M,SG) BEGIN IF SG='1' THEN DT2<="00"; ELSIF COUNT_M'EVENT AND COUNT_M='1' THEN IF DT2=3 THEN DT2<="01"; ELSE DT2<=DT2+1; END IF; END IF; END PROCESS; PROCESS(START) BEGIN IF SG='1' THEN CMKS<='0'; ELSIF STA
9、RT'EVENT AND START='1' THEN DICSOUNT<=DT1&DT2;CMKS<=CMKS XOR '1'; END IF; END PROCESS; PROCESS(CLK,START,COOK) BEGIN IF START='1' AND DCP="0000" THEN DCP<=DICSOUNT; ELSIF CLK'EVENT AND CLK='1' THEN IF COOK='1' THEN DOUT<="00"; ELSIF STA
10、RT='1' AND DCP>"0000" THEN DOUT<="00"; ELSIF SG='1' THEN IF CT1<"0001" THEN CT1<="0000";SG<='0'; END IF; ELSIF CMKS='1' THEN CASE DCP IS WHEN "0101"=> IF CT<35 THEN CT<=CT+1; IF CT1<8 THEN DOUT<="01";CT1<=CT1+1; ELSIF CT1=
11、8 THEN DOUT<="00";CT1<=CT1+1; ELSIF CT2<8 THEN DOUT<="10";CT2<=CT2+1; ELSIF CT2=8 THEN DOUT<="00";CT1<="0000";CT2<="0000"; END IF; ELSE DCP<="0110";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00"; END IF; WHEN "0110"=> IF CT<27 TH
12、EN CT<=CT+1; IF CT1<6 THEN DOUT<="01";CT1<=CT1+1; ELSIF CT1=6 THEN DOUT<="00";CT1<=CT1+1; ELSIF CT2<6 THEN DOUT<="10";CT2<=CT2+1; ELSIF CT2=6 THEN DOUT<="00";CT1<="0000";CT2<="0000"; END IF; ELSE DCP<="0111";CT<="000000";CT1<=
13、"0000";CT2<="0000";DOUT<="00"; END IF; WHEN "0111"=> IF CT<8 THEN CT<=CT+1; IF CT1<3 THEN DOUT<="01";CT1<=CT1+1; ELSIF CT1=3 THEN DOUT<="00";CT1<=CT1+1; ELSIF CT2<3 THEN DOUT<="10";CT2<=CT2+1; ELSIF CT2=3 THEN DOUT<="00"
14、;CT1<="0000";CT2<="0000"; END IF; ELSE DCP<="0000";CT<="000000";CT1<="0000";CT2<="0000";SG<='1'; END IF; WHEN "1001"=> IF CT<27 THEN CT<=CT+1; IF CT1<6 THEN DOUT<="01";CT1<=CT1+1; ELSIF CT1=6 THEN DOUT<="00";CT1<=CT1+1; E
15、LSIF CT2<6 THEN DOUT<="10";CT2<=CT2+1; ELSIF CT2=6 THEN DOUT<="00";CT1<="0000";CT2<="0000"; END IF; ELSE DCP<="1010";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00"; END IF; WHEN "1010"=> IF CT<15 THEN CT<=CT+1; IF CT1<3 THEN
16、 DOUT<="01";CT1<=CT1+1; ELSIF CT1=3 THEN DOUT<="00";CT1<=CT1+1; ELSIF CT2<3 THEN DOUT<="10";CT2<=CT2+1; ELSIF CT2=3 THEN DOUT<="00";CT1<="0000";CT2<="0000"; END IF; ELSE DCP<="1011";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00";
17、 END IF; WHEN "1011"=> IF CT<8 THEN CT<=CT+1; IF CT1<3 THEN DOUT<="01";CT1<=CT1+1; ELSIF CT1=3 THEN DOUT<="00";CT1<=CT1+1; ELSIF CT2<3 THEN DOUT<="10";CT2<=CT2+1; ELSIF CT2=3 THEN DOUT<="00";CT1<="0000";CT2<="0000"; E
18、ND IF; ELSE DCP<="0000";CT<="000000";CT1<="0000";CT2<="0000";SG<='1'; END IF; WHEN "1101"=> IF CT<19 THEN CT<=CT+1; IF CT1<4 THEN DOUT<="01";CT1<=CT1+1; ELSIF CT1=4 THEN DOUT<="00";CT1<=CT1+1; ELSIF CT2<4 THEN DOUT<="10";
19、CT2<=CT2+1; ELSIF CT2=4 THEN DOUT<="00";CT1<="0000";CT2<="0000"; END IF; ELSE DCP<="1110";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00"; END IF; WHEN "1110"=> IF CT<11 THEN CT<=CT+1; IF CT1<2 THEN DOUT<="01";CT1<=CT1+1;
20、 ELSIF CT1=2 THEN DOUT<="00";CT1<=CT1+1; ELSIF CT2<2 THEN DOUT<="10";CT2<=CT2+1; ELSIF CT2=2 THEN DOUT<="00";CT1<="0000";CT2<="0000"; END IF; ELSE DCP<="1111";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00"; END IF; WHEN "1111"=>
21、 IF CT<8 THEN CT<=CT+1; IF CT1<3 THEN DOUT<="01";CT1<=CT1+1; ELSIF CT1=3 THEN DOUT<="00";CT1<=CT1+1; ELSIF CT2<3 THEN DOUT<="10";CT2<=CT2+1; ELSIF CT2=3 THEN DOUT<="00";CT1<="0000";CT2<="0000"; END IF; ELSE DCP<="0000";CT<="00
22、0000";CT1<="0000";CT2<="0000";SG<='1'; END IF; WHEN OTHERS=> DOUT<="00"; END CASE; END IF; END IF; END PROCESS; LOOK<=SG; END BEHAV; 二、仿真波形如下 強洗全部過程 強洗 漂洗、甩干 強洗(甩干) 標準全部過程 標準(漂洗、甩干) 標準(甩干) 弱洗全過程 弱洗
23、(漂洗、甩干) 九、弱洗(甩干) 強開蓋子: 一、 強洗強開蓋 一、 標準強開蓋 二、 弱洗強開蓋 暫停和啟動 一、 強洗暫停 二、 強洗重新啟動 三、 標準暫停 四、 標準重新啟動 五、 弱洗暫停 六、 弱洗重新啟動 兩次洗衣 一、 兩次強洗 兩次標準(漂洗、甩干) 二、 兩次弱甩干 三、設(shè)計思想討論 設(shè)計時參考了已有程序,此芯片有五個輸入和三個輸出,輸入COUNT_M和輸入
24、COUNT_N是狀態(tài)控制鍵,輸入START是輸入啟動和暫停鍵,以及一個時鐘CLK。輸出是洗衣結(jié)束鈴聲端口和電機驅(qū)動端口。在設(shè)計中,為便于調(diào)試和觀察將時鐘周期假設(shè)為30S。本次設(shè)計大致可以分成兩個模塊來看待,控制端和工作端??刂撇糠质褂昧巳齻€進程來處理,進程一控制狀態(tài)COUNT_M,進程二控制狀態(tài)COUNT_N,進程三控制開始和暫停。工作部分使用了一個進程來處理,在該進程中主要處理強制開蓋,洗衣的各個狀態(tài),以及洗衣結(jié)束后的鈴聲??刂贫薈OUNT_M中,SG是工作結(jié)束標志信號,信號TS控制洗衣機的暫停和重新啟動,DT是狀態(tài)的中間變量。COOKK為強開洗衣機蓋子信號端,DCP輸入狀態(tài)中間信號。洗衣機
25、正常工作過程:洗衣機總共有九種工作狀態(tài),這九種狀態(tài)可以分成三大部分,強洗,標準,弱洗,此三種狀態(tài)的洗衣過程類似,因此以強洗來解釋說明。洗滌完成后,將信號TP變換到漂洗狀態(tài),然后變換到甩干,甩干結(jié)束后將TP置零,以及輸出狀態(tài)置一。然后等待下次洗滌。 CLK 主分頻器 洗滌定時器 水流控制器 正反向控制 主分頻器 四、心得體會 這次EDA對我來說是一項很大的挑戰(zhàn),看到題目后幾乎沒有思路,翻閱教材,看了下自動洗衣機那張的講解,有了眉目,但是設(shè)計的內(nèi)容過于龐雜,很難下手。這時候,我選擇從已有的程序著手,先看懂,然后和同學(xué)討論思路,最后形成了這個作業(yè)。做仿真波形的時候,就是驗證結(jié)論的時候,過程還算順利。通過這次作業(yè),我覺得許多困難的事,需要借鑒已有的經(jīng)驗,請查閱資料,和同學(xué)交流討論,就基本可以完成。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 噪聲危害和控制
- 英美短篇小 說Unit 4 A New Dress
- 10資本主義時代的曙光教學(xué)課件
- 葡萄溝PPT模版教學(xué)課件
- 第四章+厭氧生物處理課件
- 遼寧省燈塔市第二初級中學(xué)八年級語文下冊 20俗世奇人好嘴楊巴課件 新人教版
- 胖乎乎的小手--課件正式版
- 六年級科學(xué)上冊33《精彩紛呈__展示篇》-優(yōu)選課件1大象版
- 六年級數(shù)學(xué)上冊41比的意義課件2新人教版
- 人教版美術(shù)三上第8課《星空的聯(lián)想》課件
- 第三章-商事登記與商業(yè)賬簿課件
- 人教版小學(xué)數(shù)學(xué)一年級下冊《找規(guī)律》整理143508課件
- 人教版小學(xué)二年級數(shù)學(xué)下冊第三單元《平移與旋轉(zhuǎn)》課件6
- 西師版三上數(shù)學(xué)第3課時-一位數(shù)乘兩位數(shù)的筆算(不進位)課件
- (部編)人教版小學(xué)語文三年級上冊《18富饒的西沙群島》名師教學(xué)ppt課件