智能洗衣機控制器設計verilog編程_第1頁
智能洗衣機控制器設計verilog編程_第2頁
智能洗衣機控制器設計verilog編程_第3頁
智能洗衣機控制器設計verilog編程_第4頁
智能洗衣機控制器設計verilog編程_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、智能洗衣機控制器設計報告鑫鑫出品2010-3-18目錄一設計背景2二.功能簡介基本功能2擴展功能3三.模塊設計及端口設置主模塊main3工作模式設定模塊mode4進水量設定模塊Water_t無供水信號產生模塊waterless5危險信號產生模塊Unsafe5洗衣過程控制模塊wash6報警模塊alart7LED燈狀態(tài)模塊LEDs7模塊級連線圖8四電路工作原1以s的值為主要狀態(tài)標志的基本工作流程圖10五Verilog源程序及注釋11六小結18一.設計背景。如今,帶有微型控制芯片的家用電器迅速普及。通過用戶簡單的設定,這些智能家電能自動完成家務,并向用戶及時提供反饋信息。這極大地方便了人們的生活。智

2、能洗衣機是智能家電的代表。用戶只需按幾個鍵,智能洗衣機就能自動完成注水、洗衣、排水、甩干等一系列工作,并在發(fā)生事故時給予用戶報警并作出正確反應,極大減輕用戶的洗衣負擔,同時保障用戶安全?;谝陨瞎δ芤?,本人進行了智能洗衣機控制器的設計,并作出此設計報告。二.功能簡介?;竟δ埽篴,可選5種洗衣模式,列舉如下1>強力洗衣模式:工作程序為,注水,洗衣,排水,甩干- >注水->漂洗->排水->甩干- >注水->漂洗->排水->甩干。其中洗衣為30分鐘;2>普通洗衣模式:工作程序為,注水,洗衣,排水,甩- >注水->漂洗->

3、;排水->甩干- >注水->漂洗->排水->甩干。其中洗衣為20分鐘;3>強力洗衣模式:工作程序為,注水,洗衣,排水,甩干- >注水->漂洗->排水->甩干->注水->漂洗->排水->甩干。其中洗衣為10分鐘;4>漂洗模式:工作程序為,注水,漂洗,排水,甩干->注水->漂洗->排水->甩干。5>甩干模式:工作程序為,甩干。以上五種模式中,進水時間為1-3分鐘,漂洗為5分鐘,排水2分鐘,甩干3分鐘b,顯示洗衣完成所需時間。c,用不同LED丁顯示洗衣機當前的工作狀態(tài)(注水、洗衣、

4、排水、甩干)。d.完成洗衣任務時蜂鳴3聲提示。擴展功能:a,進水量可調。根據(jù)衣物的多少,進水時間有1分鐘、2分鐘、3分鐘三個檔位,并用一個數(shù)碼管顯示所設時間。b,進水時無水報警。蜂鳴器發(fā)出2秒的報警聲,并中止洗衣工作。供水正常后恢復工作。c, 甩干時洗衣機蓋被打開則報警。2秒報警聲,同時中止甩干操作。重新蓋上蓋子后恢復工作。d, 有按鍵音。e, 設有暫停/繼續(xù)鍵??呻S時按下暫停洗衣機的工作。再次按下則繼續(xù)工作。f, 用兩個LED燈標志給電機的控制信號。在洗衣或漂洗時交替閃亮,象征電機順時針/逆時針轉動的轉換。g,用數(shù)碼管顯示當前工作狀態(tài)(注水、洗衣、排水、甩干)所剩時間。三.模塊設計及端口設置

5、。為完成預定功能,設置1個主模塊,7個子模塊;使用2個時鐘信號端口,6個按鍵,6個數(shù)碼管和7個LED主模塊main:調用其他模塊,共同完成預定功能CF-lkD1隊二13ter匚LOdcdO也USE。一機產皿N叫l(wèi)fD.ilIZD,舊T*田川力0'01E7rL7Sd1r3-ri*rnT-1皿也一D,D-D-D-D_D_-nm3:3:KIEIIIEHIE邛TlTihlvDDDDDDDDDDDD輸入端口:CP_1k,CP分別為1kHz和1Hz方波,分別用于產生蜂鳴信號和系統(tǒng)狀態(tài)轉換及計時的時鐘信號;Start,Pause:開始鍵和暫停/繼續(xù)鍵;Set,Speed:功能設定,分別用來設定工作模

6、式和進水量;Open,No_water:警報信號,用來模擬打開洗衣機蓋和供水中斷事件的發(fā)生。輸出端口:m3:0,v3:0:數(shù)碼管顯示信號,分別指示工作模式和進水量;Timer7:0,Timera7:0:數(shù)碼管顯示信號,分別表示當前過程剩余時間和完成所有工作剩余時間。LED_s,LED_wi,LED_wo,LED_w,LED_d和LED_l,LED_r:LED驅動彳t號,分別指示正在工作、進水、出水、洗衣、甩干和電機的順時針、逆時針旋轉狀態(tài)。a:蜂鳴信號。用于報警、提示有鍵按下和洗衣完成。工作模式設定模塊mode:設定工作模式I'TERFACESetySttm3:0'm3:0mo

7、de輸入端口:Set:設定工作模式模式的按鍵;輸出端口:m3:0:所設定的模式,BCD碼,可取1到5的整數(shù);進水量設定模塊Water_t:設定進水量。INTERFACESpeedSpeedv3;0|>v3:0lEaler輸入端口:Speed:設定進水量,按鍵;輸出端口:V3:0:所設定的進水時間,BCD碼,可取取1到3的整數(shù);無供水信號產生模塊waterless:產生無水報警信號INIKRFACEXRTLNowater匚NnMaterwatercutwa.tctless輸入端口:No_water:供水中斷/恢復信號,按鍵;輸出端口:water_out:供水情況指示量,值為1表水無供水,0

8、表不供水正常;危險信號產生模塊Unsafe:產生危險報警信號。NTERHCT_XRTLOpenOpell(UngerdauguiUnsaf#輸入端口:Open:洗衣機蓋開/合信號,按鍵;輸出端口:danger:洗衣機蓋狀態(tài)指示量,值為1表示打開,0表示關閉;DD111JoOVSiartdaijg?rR力【3力1Wiit氮jut團打1U,IDDDcpi'.erdgsttlneraT:Dl洗衣過程控制模塊wash:控制洗衣過程的轉換PP匚ds:o一.Y加劃Cfinis卜匚)tiwer7:01二)timer_8匕:0Cpwash輸入端口:CP:1Hz時鐘信號,來自時鐘信號發(fā)生器;Start:

9、開始工作命令信號,按鍵;m工作模式,來自模塊modev:進水時間,來自模塊Water_t;water_out:供水情況,來自模塊waterless;danger:危險狀態(tài),來自模塊Unsafe;tp:暫停/繼續(xù)的命令信號;輸出端口:p:運行/暫停工作狀態(tài)量,1表示正在運行,0表示暫停;finish:工作結束狀態(tài)量,由0變?yōu)?表示工作結束;timer7:0:當前工作過程剩余時間,向上傳給main中的Timer;timer_a7:0:完成全部工作剩余時間,傳給main中的Timer_a;s2:0:工作狀態(tài)指示量,從0到5分別指示進水、洗衣、出水、甩干和完成信號有效;c2:0:取1到4,表示當前工作

10、是第幾輪;報警模塊alart:產生報警蜂鳴信號CP_lkNo_waterOpenPauseSetSpeedStartfinishbLz-.q!outAmLWTERFAC口IQLCPcr_lkN。沖3t加enPauseSetaSpeedtpStart.dnncnrfinish;。1N21-t"父.d!_1,alartI?a1>tp輸入端口:CP_1k:1kHz方波信號,用于產生蜂鳴信號,來自信號發(fā)生器;CR1Hz方波信號,用于產生間斷的蜂鳴信號,來自信號發(fā)生器;Start,Set,Pause,Speed:按鍵音有效信號。另外Pause還用于發(fā)情況時人為控制暫停/繼續(xù)的控制鍵;No

11、_water,water_out,Open,danger:控制報警音開始/結束的信號,來自模塊waterless和Unsafe;finish:完成工作后提示音有效信號,來自模塊wash;輸入端口:a:報警音驅動信號tp:暫停/繼續(xù)信號。tp=1時暫停,tp=0時繼續(xù)。LED燈狀態(tài)模塊LEDs:控制LED的亮滅INTERFACEXRT1LED_dCPLED.J(L2:LED_rpLBD_sLBD_wiLED_wo_J>LE)_d_>LED_1>LED_t_J>LED_sZZ>LED_wLED_wi>LED_wo口1一、。1c:U1|pDs2:0口:LEDs輸入

12、端口:s,c:洗衣機的工作狀態(tài)指示量,用作那個燈亮的判斷條件,來自模塊wash;p:運行/暫停狀態(tài)標志量,用于暫停時的閃亮效果,來自模塊alart;CR1Hz方波信號,造成閃亮效果,來自信號發(fā)生器。輸出端口:LEK旨示燈驅動信號。LED_wi進水;LED_wq出水;LED_w洗衣;LED_d:甩干;LED_s:正在運行;LED_l:電機順時針轉;LED_r:逆時針轉。用Leonardo綜合出的模塊級連線圖如下:V:cfDStart匚3小印r>CF.:tDPause匚3SFt。SpeedF>ISnafawater.essfLIUitJTL3Jnl=)_i心:ULH)_rtLEB_tf

13、Jl*LEC.wcDv(3;cdigETi3:D密t±3世varhLEDs1F"小阿CT仃技BeEeyfcet我舊50itpjilif=tfi前市曲R勒njoirnods泥alailQ2電dTildLtDDDDDDDLELELE位LELELEODDDDDDT-:”:先匚以上子模塊端口具體用途在電工作原理中涉及四.電路工作原理。下面按電路的使用過程對電路工作原理進行描述。1.按下Set鍵,在Set上升沿作用下,mode莫塊被調用,執(zhí)行的操作是工作模式m增加1。其狀態(tài)變化如下:設定好工作模式后,按Speed鍵設定進水時間,water_t10模塊被調用,執(zhí)行的操作是進水時間v增加

14、1。其變化原理與m類似,只是變化范圍是1-3分鐘。2.設定完畢,按Start鍵,洗衣過程開始,這時是wash模塊被調用,wash模塊中,由狀態(tài)變量c記錄洗衣的輪數(shù)(以進水到甩干為一輪),狀態(tài)變量s代表當前的工作方式,即s=0為進水,s=1為洗衣,s=2為排水,s=3為甩干,s=4時進行完成提示音信號的延時其狀態(tài)轉變流程如下:其中,ok=1是上一任務完成的標志,模式1,2,3中,c初值為4。輪回3次后c=1,s由3變?yōu)?,finish置1有效,完成提示音響(由modulealart實現(xiàn)),同時延時計時器啟動,計時完畢后,finish=0,提示音停。s=4狀態(tài)的工作完成后,ok=0,s保持,直到下

15、次啟動(Start)再初始化。以s的值為主要狀態(tài)標志的基本工作流程圖:11123.報警功能,主要由alart模塊實現(xiàn)。按No_water鍵,供水中斷信號water_out=1有效。如果這時正在進水,則置c_e=1使報警音延時計時器開始計時,同時c_t=1使報警信號有效,開始發(fā)出報警音。延時器計時完畢,c_e、c_t復位,報警音關閉,報警結束。但進水工作仍處于中斷狀態(tài)。只有再此按下No_water鍵,表示供水恢復,則繼續(xù)進水。甩干過程中由Open鍵觸發(fā)的洗衣機蓋被打開的報警原理同上。工作結束后的提示音由輸入的finish信號控制。finish會有3個CP有效,和CP相與后,產生三聲提示音。暫停功

16、能也有alart模塊參與,按Pause鍵后,tp變化,會導致暫停有效信號取反,實現(xiàn)暫停/繼續(xù)的功能。等指小狀態(tài)共用到7個LED來代表系統(tǒng)的工作狀態(tài)。其驅動信號有效與否由系統(tǒng)目前的工作狀態(tài)來判斷。其具體代表的狀態(tài)和實現(xiàn)方法已在端口介紹和源程序注釋中說明,不另贅述。五.Verilog源程序及注釋。1.主模塊main:modulemain(CP_1k,CP,Start,Pause,Set,Speed,Open,No_water,Timer,Timer_a,m,v,LEDwi,LEDwo,LEDw,LEDd,LEDs,LEDl,LEDr,a);inputCP_1k,CP,Start,Pause,Set

17、,Speed,Open,No_water;式選擇模塊modemodulemode(Set,m);inputSet;水時間設定模塊water_t:moduleWater_t(Speed,v);inputSpeed;衣過程控制模塊wash:modulewash(CP,Start,m,v,water_out,danger,tp,p,finish,timer,timer_a,s,c);inputCP,Start,tp,water_out,danger;水,卜青況感應模塊13Waterless:modulewaterless(No_water,water_out);inputNo_water;衣機蓋開合

18、狀態(tài)感應模塊Unsafe:moduleUnsafe(Open,danger);inputOpen;警模塊alart:modulealart(CP_1k,CP,Start,Set,Pause,Speed,No_water,water_out,Open,danger,finish,s,a,tp);inputCP1k,CP,Start,Set,Pause,Speed,Nowater,waterout,Open,danger,finish;input2:0s;/outputa,tp;regc_e,c_t,tp;reg2:0count;always(posedgePause)begin下,if(tp=1

19、)tp=0;elsetp=tp+1;end/輸入時鐘信號及報警音控制信號輸入當前工作狀態(tài)/輸出報警信號和暫停允許信號/暫停/繼續(xù)鍵Pause上升沿觸發(fā)暫停允許信號改變;always(posedgeCPorposedgeNo_waterorposedgeOpenorposedgeStart)beginif(Start)c_e=0;/啟動時,延時計時器使能位c_e復位為0elseif(No_water|Open)beginif(water_out=1&&s2:0=3'b000)|(danger=1&&s2:0=3'b011)c_e=1;/發(fā)生危險事件

20、,使能端c_e置1elsec_e=0;endelseif(CP)begin/c_e=1,以CP為時鐘信號開始計時if(count2:0=3'b010)beginc_t=0;c_e=0;count2:0=0;endelseif(c_e=1)begincount2:0=count2:0+3'b001;c_t=1;end計時中,計時進行標志位c_t=1elseif(c_e=0)count=0;endendassigna=(c_t|CP&finish)|(Start|Set|Pause|Speed)&CP_1k;/若警報延時計時器正在計時(c_t=1)或工作完成14提示

21、信號有效(finish=1)或有鍵按下(Start、Set、Pause、Speecl)則發(fā)出相應報警音。enCmoCule驅動模塊LEDsmoduleLEDs(s,p,c,CP,LED_wi,LED_wo,LED_w,LED_d,LED_s,LED_l,LED_r);inputp,CP;輸入暫停允許信號p、時鐘信號CPinput2:0s,c;/輸入工作狀態(tài)標志位s、coutputLED_wi,LED_wo,LED_w,LED_C,LED_s,LED_l,LED_r;/輸出各LED燈驅動電平assignLED_wi=p(s=3'b000&&c>1):CP&(

22、s=3'b000&&c>0);/進水時,LED_wi燈亮;暫停時閃爍assignLED_w=p(s=3'b001&&c>1):CP&(s=3'b001&&c>1);/洗衣時,led_wt亮;暫停時閃爍assignLED_wo=p(s=3'b010&&c>1):CP&(s=3'b010&&c>0);排水時,LED_wd丁亮;暫停時閃爍assignLED_C=p(s=3'b011&&c>1):CP&

23、;(s=3'b011&&c>0);/甩干時,LED_wi燈亮;暫停時閃爍assignLED_s=p(s!=3'b100&&c>1):CP&(s!=3'b100&&c>1);/運行時,LED_sff亮;暫停時閃爍assignLED_l=(s=3'b00111s=3'b011)&&c>1)&p&CP;assignLED_r=(s=3'b001&&c>1)&p&!CP;/LED_l與LED_r交替亮,表示電

溫馨提示

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

評論

0/150

提交評論