數(shù)字電路實驗洗衣機程序設計_第1頁
數(shù)字電路實驗洗衣機程序設計_第2頁
數(shù)字電路實驗洗衣機程序設計_第3頁
數(shù)字電路實驗洗衣機程序設計_第4頁
數(shù)字電路實驗洗衣機程序設計_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字電路與邏輯設計實驗報告題目: 洗衣機控制器設計 一、洗衣機控制器要求設計制作一個全自動洗衣機的控制器:_ 洗衣機的工作步驟為洗衣、漂洗和脫水三個過程,工作時間分別為:洗衣20秒,漂洗30 秒,脫水15 秒;_ 用一個按鍵實現(xiàn)洗衣程序的手動選擇:A、單洗滌;B、單漂洗;C、單脫水;D、漂洗和脫水;E、洗滌、漂洗和脫水全過程;_ 用顯示器件顯示洗衣機的工作狀態(tài)(洗衣、漂洗和脫水),并倒計時顯示每個狀態(tài)的工作時間,全部過程結束后,應提示使用者;_ 用一個按鍵實現(xiàn)暫停洗衣和繼續(xù)洗衣的控制,暫停后繼續(xù)洗衣應回到暫停之前保留的狀態(tài);_ 選做:三個過程的時間有多個選項供使用者選擇。_ 選做:可以預約洗衣

2、時間。_ 選做:自擬其它功能。二、系統(tǒng)設計基本思想電路由模式選擇、計數(shù)器、報警模塊以及譯碼驅動電路和數(shù)字顯示電路等模塊組成。1、模式選擇模塊五種洗衣模式可供用戶選擇,模式選擇模塊將用戶的選擇信息傳遞到控制模塊。2、減計數(shù)計數(shù)器模塊計數(shù)器洗衣以倒計時模塊的方式提示用戶當前剩余的洗衣時間,該計數(shù)器能讀取不同的模值進行計數(shù)。計時單位為一秒鐘。3、譯碼和數(shù)碼顯示電路譯碼和數(shù)碼顯示電路是將計時狀態(tài)直觀清晰地反映出來,被人們的視覺器官所接受。顯示器件選用LED 七段數(shù)碼管。在譯碼顯示電路輸出的驅動下,顯示出清晰、直觀的數(shù)字符號。4、報警模塊當系統(tǒng)運行到“報警”狀態(tài)時,蜂鳴器將會報警,時間為5 秒。4、分頻

3、器模塊設計一個大小合適的分頻器使得系統(tǒng)能夠正確的實現(xiàn)一秒的計時。三、總體設計圖以及轉移圖流程圖示:狀態(tài)選擇開始信號輸入變量A為1YESNO進行洗滌變量B為1YESNO進行漂洗變量C為1YES進行脫水NO完成洗衣后報警提示完成總體邏輯設計圖:控制器分頻器OSC時間計數(shù)器洗滌漂洗脫水譯碼時間顯示ClkClk1料庫Clk2T15 T20T25Cnt clr報警Pause 狀態(tài)選擇譯碼狀態(tài)轉移圖示:WAITA1進行洗滌進行漂洗A0B=1B0B1進行脫水A0B=0C1C0完成洗衣報警提示管腳設計圖:仿真情況:簡要說明:本次仿真執(zhí)行的是第五個狀態(tài)即洗滌、漂洗和脫水全過程。通過此仿真可以發(fā)現(xiàn)當輸出選擇模式信

4、號change時,洗衣機模式開始發(fā)生變化。輸入第一個change信號的時候進入單洗滌狀態(tài),輸入第二個change信號進入單漂洗狀態(tài),輸入第三個change信號進入了單脫水的狀態(tài),輸入第四個change信號進入了脫水和漂洗的狀態(tài),當輸入最后一個change信號的時候進入洗滌、漂洗和脫水的全狀態(tài)。而在選擇每個狀態(tài)的同時時間信號(q0、q1、q2、q3、q4、q5、q6)也發(fā)生變化,顯示出每個狀態(tài)時的時間。而設定的led燈(cat0、cat1)則依次閃亮。當start開始后change信號不再起作用,而系統(tǒng)進入了運行狀態(tài),時間開始逐秒變化。當程序最終運行結束后,進入報警狀態(tài),sound開始顯示為高電

5、平,而時間均為0。(特別說明:由于本實驗分2次去做,管腳設定的時候進行了新建工程,代碼粘貼過去的,實體名字取得和第二周驗收時候不一致,不是其他原因。)四、代碼示例LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY xiyiji ISPORT(START: INSTD_LOGIC;PAUSE: INSTD_LOGIC;-暫停信號CLOCK: INSTD_LOGIC;Q: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -數(shù)碼管顯示信號CAT: OUTSTD_LOGIC_VECTOR(5 DOWNTO 0) -數(shù)碼管選通信號); EN

6、D xiyiji;ARCHITECTURE washer OF xiyiji ISSIGNAL STATE: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL MODE: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL TEMP: INTEGER RANGE 45 DOWNTO 0; -時間中間變量SIGNAL TIME: INTEGER RANGE 60 DOWNTO 0; -倒計時時間SIGNAL TMP: INTEGER RANGE 999 DOWNTO 0; -分頻變量SIGNAL MA: INTEGER RANGE 9 DOWNTO 0;

7、 -數(shù)碼管譯碼變量SIGNAL CLK: STD_LOGIC; -分頻時鐘輸出BEGINPROCESS(CLOCK)BEGINIF (CLOCK'EVENT AND CLOCK='1') THEN -分頻模塊TMP<=TMP + 1;IF (TMP=999) THENTMP<=0;CLK<= NOT CLK;END IF;END IF;END PROCESS;PROCESS (START,CLK,PAUSE,CHANGE)-洗衣控制進程BEGINIF ( START = '0' ) THEN -開始前模式選擇模塊IF(CHANGE

8、9;EVENT AND CHANGE='1') THENCASE MODE ISWHEN "000"=>MODE<="001" WHEN "001"=>MODE<="010" WHEN "010"=>MODE<="100"WHEN "100"=>MODE<="110"WHEN "110"=>MODE<="111"WHEN

9、OTHERS=>MODE<="000"END CASE;END IF;STATE <= MODE;-選擇洗衣模式BUZZER <= '0'CASE STATE IS-設置模式時間以及中間變量的值WHEN "001" =>TEMP <= 0 ;TIME <= 20;WHEN "010" =>TEMP <= 0 ;TIME <= 25;WHEN "100" =>TEMP <= 0 ;TIME <= 15;WHEN "

10、110" =>TEMP <= 25 ;TIME <= 40;WHEN "111" =>TEMP <= 40 ; TIME <= 60;WHEN "000" =>TEMP <= 0 ;TIME <= 0;WHEN OTHERS =>TEMP<= 0 ; TIME<= 0;END CASE ;ELSE IF ( PAUSE = '0') THEN -設置暫停信號IF ( CLK'EVENT AND CLK = '1' AND TIME/=

11、0) THENTIME <= TIME - 1 ; -時間自減IF ( TIME=1 ) THENSTATE <="000"BUZZER<= '1'-蜂鳴信號啟動ELSIF ( TIME = TEMP ) THEN -洗衣中模式的切換CASE STATE ISWHEN "111" =>STATE <= "110"TEMP <= 20;WHEN "110" =>STATE <= "100"TEMP <= 0;WHEN OTHER

12、S =>TEMP <= 0 ;STATE <= "000"END CASE;END IF;END IF;END IF;END IF;MODEEND <= STATE; -中間變量賦值給結果變量END PROCESS;PROCESS (CLOCK,TIME)BEGINIF (CLOCK='1') THEN -提取十位數(shù)CAT<="111110" -數(shù)碼管選通END IF;END PROCESS;process (MA) -將數(shù)字譯碼為七段共陰數(shù)碼管碼begin case MA iswhen 1 => q

13、<= "0110000" ;when 2 => q <= "1101101" ;when 3 => q <= "1111001" ;when 4 => q <= "0110011" ;when 5 => q <= "1011011" ;when 6 => q <= "1011111" ;when 7 => q <= "1110000" ;when 8 => q <=

14、"1111111" ;when 9 => q <= "1111011" ;when others => q <= "1111110"end case;end process;end washer; -洗衣機控制器結束首先根據(jù)實驗題目的要求可以將洗衣機控制器分解成為如下的幾個模塊:洗衣機模式選擇、計數(shù)器、報警模塊以及譯碼驅動電路和數(shù)字顯示電路。1、模式選擇模塊:總共五種洗衣模式可供用戶選擇,模式選擇模塊將用戶的選擇信息傳遞到控制模塊,這個模式選擇模塊將在洗衣機的開始按鍵start按下前進行模式選擇。基本思路是每有

15、個脈沖模式改變一次,算上初始閑置模式共為六種其間進行循環(huán)改變,通過case語句在start為零時每接到change信號的一次改變,通過三位二進制數(shù)改變至下一狀態(tài)。如此即可實現(xiàn)循環(huán)形式的模式選擇模塊。其簡要代碼如下:If(change'event and change='1') thencase mode iswhen "000"=>mode<="001" when "001"=>mode<="010" when "010"=>mode<

16、="100"when "100"=>mode<="110"when "110"=>mode<="111"when others=>mode<="000"end case;2、減計數(shù)計數(shù)器模塊計數(shù)器洗衣以倒計時模塊的方式提示用戶當前剩余的洗衣時間,該計數(shù)器能讀取不同的模值進行計數(shù)。計時單位為一秒鐘。首先,由于需要數(shù)碼管的顯示,又要實現(xiàn)單位為一秒鐘的倒計時所以必要對于系統(tǒng)時鐘的分頻器。主要過程是設計一個總的時間變量稱之為TIME,每個時鐘上升沿

17、一到就對此變量減一,如此首先在系統(tǒng)內(nèi)部實現(xiàn)時間的自減。自減是在沒有暫停信號且開始信號為一的情況下進行的。另外我設計了一個中間變量,在不同的狀態(tài)對其進行不同的賦值,并使其與我設計的總時間變量進行比較,然后將比較結果送給模式的另一個中間變量即可實現(xiàn)洗衣過程中的狀態(tài)變化顯示。減計數(shù)器及其和中間量的比較的簡要代碼如下:if ( pause = '0') thenif ( clk'event and clk = '1' and time/=0) thentime <= time - 1 ;if ( time=1 ) then state <="

18、;000"buzzer<= '1' elsif ( time = temp ) then case state iswhen "111" =>state <= "110"temp <= 20;when "110" =>state <= "100"temp <= 0;when others =>temp <= 0 ;state <= "000"end case;3、 譯碼和數(shù)碼顯示電路:譯碼和數(shù)碼顯示電路是將計時

19、狀態(tài)直觀清晰地反映出來,被人們的視覺器官所接受。顯示器件選用LED 七段數(shù)碼管。在譯碼顯示電路輸出的驅動下,顯示出清晰、直觀的數(shù)字符號。首先,由于需要數(shù)碼管的顯示,又要實現(xiàn)單位為一秒鐘的倒計時所以必要對于系統(tǒng)時鐘的分頻器。基于上個學期進行的基礎數(shù)字電路vhdl學習,分頻器是十分基礎的模塊易于設計。又因為需要通過兩位數(shù)碼管顯示當前倒計時的時間,同時當前倒計時的時間是兩位數(shù)所以利用倒計時時間TIME除以10可以得到時間的十位,再用其MOD十即可得到時間的個位,然后將要顯示的數(shù)與七段數(shù)碼管的七個管角相匹配,最后將這兩個數(shù)分別賦給兩個數(shù)碼管并使兩個數(shù)碼管交替顯示就實現(xiàn)了對于倒計時的譯碼電路,以下是譯碼

20、和數(shù)碼顯示電路的簡要代碼:if (clock='1') then ma<=time/10; cat<="111101"else ma<=time mod 10; cat<="111110"end if;process (ma)begincase ma is when 1 => q <= "0110000" ; when 2 => q <= "1101101" ; when 3 => q <= "1111001" ; wh

21、en 4 => q <= "0110011" ; when 5 => q <= "1011011" ; when 6 => q <= "1011111" ; when 7 => q <= "1110000" ; when 8 => q <= "1111111" ; when 9 => q <= "1111011" ; when others => q <= "1111110" end case;end process;4、報警模塊:報警模塊是洗衣機系統(tǒng)的最后一個模塊,即任何一個洗衣狀態(tài)執(zhí)行完成后倒計時為零時,系統(tǒng)運行到“報警”狀態(tài),蜂鳴器將會報警,時間為5 秒。其設計相對比較簡單,只是需要加入一個蜂鳴器信號BUZZER,并且使其再TIME倒計時總時間為零時,提供一個上升沿信號即可。五、器

溫馨提示

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

評論

0/150

提交評論