洗衣機(jī)控制器課程設(shè)計_第1頁
洗衣機(jī)控制器課程設(shè)計_第2頁
洗衣機(jī)控制器課程設(shè)計_第3頁
洗衣機(jī)控制器課程設(shè)計_第4頁
洗衣機(jī)控制器課程設(shè)計_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、九江學(xué)院課 程 設(shè) 計課 程 EDA技術(shù)課程設(shè)計 題 目 洗衣機(jī)控制器 院 系 電子信息學(xué)院 專業(yè)班級 電子信息工程技術(shù) 學(xué)生姓名 張翁生 學(xué)生學(xué)號 37 指導(dǎo)教師 高玉寶 一、設(shè)計要求與原理設(shè)計一個洗衣機(jī)控制器,要求洗衣機(jī)有正轉(zhuǎn)、反轉(zhuǎn)、暫停三種狀態(tài)。設(shè)定洗衣機(jī)的工作時間,要洗衣機(jī)在工作時間內(nèi)完成:定時啟動正轉(zhuǎn)20秒暫停10秒反轉(zhuǎn)20秒暫停10秒定時未到回到“正轉(zhuǎn)20秒暫停10秒”,定時到則停止,同時發(fā)出提示音?;疽螅?、設(shè)計一個電子定時器,控制洗衣機(jī)作如下運(yùn)轉(zhuǎn):定時啟動正轉(zhuǎn)20秒暫停10秒反轉(zhuǎn)20秒暫停10秒定時未到回到“正轉(zhuǎn)20秒暫停10秒”,定時到則停止;2、若定時到,則停機(jī)發(fā)出音響

2、信號;3、用兩個數(shù)碼管顯示洗滌的預(yù)置時間(分鐘數(shù)),按倒計時方式對洗滌過程作計時顯示,直到時間到停機(jī);洗滌過程由“開始”信號開始;4、三只LED燈表示“正轉(zhuǎn)”、“反轉(zhuǎn)”、“暫?!比齻€狀態(tài)。二、洗衣機(jī)的工作過程首先用電路控制三只LED顯示洗衣機(jī)正轉(zhuǎn)、反轉(zhuǎn)、暫停三種狀態(tài)。然后用電子定時器控制洗衣機(jī)設(shè)定的工作時間,以及正傳和反轉(zhuǎn)運(yùn)行時間的控制。同時用兩個數(shù)碼管顯示洗滌的預(yù)置時間(按分鐘計數(shù)),按倒計時方式對洗滌過程作計時顯示,直到時間到停機(jī);洗滌過程由“開始”信號開始;最后定時到則停止,同時用蜂鳴器發(fā)出提示音。通過各種開關(guān)組成控制電路,使洗衣機(jī)實(shí)現(xiàn)程序運(yùn)轉(zhuǎn)。 直至結(jié)束為止。三、各模塊圖洗衣機(jī)控制電路

3、由定時輸入模塊,電機(jī)輸出模塊,電機(jī)時間控制模塊,數(shù)字顯示電路,倒計時模塊以及報警器模塊組成。 循環(huán)控制電路,使其在三個狀態(tài)轉(zhuǎn)換按鍵控制模塊控制循環(huán)時間數(shù)字顯示模塊 報警電路定時輸入模塊 倒計時模塊 圖一 四、各模塊的VHDL代碼與仿真結(jié)果1、輸入定時模塊,此模塊是為了實(shí)現(xiàn)希望讓洗衣機(jī)工作多少個分鐘,有兩個數(shù)碼管顯示工作時間,所以可以不同要求輸入要洗衣的時間,可以輸入159分鐘不等時間,人性化控制,與實(shí)際的洗衣機(jī)工作是一樣的。程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.ST

4、D_LOGIC_UNSIGNED.ALL;entity shuru isPort ( shu : in std_logic; hshu: in std_logic; din : in std_logic; dout:out std_logic_vector(3 downto 0); dout1:out std_logic_vector(3 downto 0); end shuru;architecture Behavioral of shuru issignal count: std_logic_vector(3 downto 0);signal count1: std_logic_vecto

5、r(3 downto 0);beginprocess(shu,hshu,din)begindout<=count;dout1<=count1; if din='0' then dout<="1111"dout1<="1111" elsif rising_edge(shu) then if count="1001" then count<="0000" else count<=count+1; end if; end if; if rising_edge(hshu)

6、 then if count1="0110" then count1<="0000" else count1<=count1+1; end if; end if;end process;end Behavioral;仿真波形如下2、產(chǎn)生1HZ頻率的信號 此程序是將學(xué)校試驗(yàn)箱上提供的48MHZ的信號分頻成1HZ頻率的信號,這樣可以一秒進(jìn)行計數(shù),程序很簡單,如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity fp48M is port

7、(clk_48MHZ: in std_logic; clk_1HZ: out std_logic );end fp48M;architecture behav of fp48M is signal clk_1HZ_r: std_logic; signal count : std_logic_vector(24 downto 0); begin process (clk_48MHZ)begin if clk_48MHZ'event and clk_48MHZ='1' then if count="1011011100011010111111111"th

8、en count<=(others=>'0'); clk_1HZ_r<=not clk_1HZ_r; else count<=count+1; clk_1HZ<=clk_1HZ_r; end if; end if;end process;end behav;3、提供定時脈沖模塊 此模塊提供1分鐘產(chǎn)生一個高電平和5秒產(chǎn)生一個高電平,這兩個脈沖為后面的循環(huán)和控制60秒減一分鐘有很多的作用,起到后面的鏈接作用,同時可以根據(jù)自己來設(shè)置各狀態(tài)工作時間,這可以和后面的循環(huán)控制一起來控制,程序如:library IEEE;use IEEE.STD_LOGIC_1

9、164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity washmachine is Port ( clk : in std_logic; c :out std_logic; d :out std_logic);end washmachine;architecture miao20 of washmachine issignal count: std_logic_vector(2 downto 0); signal shi: integer range 0 to 60;beginprocess(cl

10、k)begin if rising_edge(clk) then if shi=60 then shi<=0;c<='1' else shi<=shi+1;c<='0' end if; if count="100" then count<="000" d<='1' else count<=count+1; d<='0' end if; end if; end process;end miao20;仿真波形如下:4、循環(huán)控制模塊此模塊是為了實(shí)現(xiàn)能

11、夠控制洗衣機(jī)正轉(zhuǎn)、反轉(zhuǎn)、暫停的功能,同時也可以和前一模塊一起控制各個狀態(tài)的工作時間。library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity dianji is Port ( cc :in std_logic; deng : out std_logic_vector(2 downto 0);end dianji;architecture di of dianji is signal count : std_logic_vector(3

12、downto 0); signal deng1 : std_logic_vector(2 downto 0);begin deng<=deng1;process(cc)begin if rising_edge(cc) then if count = "1010" then count <= "0000" else count <= count+1; end if; if count="0000" then deng1<="011" elsif count="0100" t

13、hen deng1<="101" elsif count="0110" then deng1<="110" end if; end if; end process;end di ;仿真波形如下:5、分鐘的個位控制根據(jù)課程設(shè)計要求,把工作狀態(tài)及工作時間顯示出來,按下KEY5鍵就可以顯示工作時間的分鐘個位顯示在數(shù)碼管上,可以根據(jù)洗衣不同要求設(shè)置同時可以控制分鐘的十位時間,當(dāng)個位分鐘為0時下一個分鐘個位脈沖過來分鐘的十位就減1程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IE

14、EE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity fen_l is Port ( jian : in std_logic; reset : in std_logic; din : in std_logic_vector(3 downto 0); dout : out std_logic_vector(3 downto 0); c:out std_logic);end fen_l;architecture Behave of fen_l is signal count : std_logic_vector(3 downto

15、 0);begin dout <= count;process(jian,reset,din)begin if reset='0'then count <= din ; c<='0' elsif rising_edge(jian) then if count = "0000" then count <= "1001" c<='1' else count <= count-1; c<='0' end if; end if; end process;en

16、d Behave;仿真波形如下:6、分鐘的十位控制根據(jù)課程設(shè)計要求,把工作狀態(tài)及工作時間顯示出來,按下KEY5鍵就可以顯示工作時間的分鐘十位顯示在數(shù)碼管上,可以根據(jù)洗衣不同要求設(shè)置,這和上面程序相似,當(dāng)個位分鐘為0時下一個分鐘個位脈沖過來分鐘的十位就減1程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity fen_h is Port ( jian : in std_logic; reset : in std_logic;

17、din : in std_logic_vector(3 downto 0); dout : out std_logic_vector(3 downto 0); c:out std_logic);end fen_h;architecture Behave of fen_h is signal count : std_logic_vector(3 downto 0);begin dout <= count;process(jian,reset,din)begin if reset='0'then count <= din ; c<='0' elsi

18、f rising_edge(jian) then if count = "0000" then count <= "1001" c<='1' else count <= count-1; c<='0' end if; end if; end process;end Behave;7、數(shù)碼管顯示模塊 此模塊是顯示要洗衣的時間,這個時間是可以在前面的控制模塊控制的,安下KEY5鍵就可以顯示時間。LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD

19、_LOGIC_Arith.ALL;USE IEEE.STD_LOGIC_Unsigned.ALL;ENTITY xianshi_led ISPORT(clk_2k: IN STD_LOGIC;d: IN STD_LOGIC_VECTOR(7 DOWNTO 0); -輸入要顯示的數(shù)據(jù)dig: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -數(shù)碼管選擇輸出引腳seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) -數(shù)碼管段輸出引腳);END ENTITY;ARCHITECTURE one OF xianshi_led ISSIGNAL seg_r: ST

20、D_LOGIC_VECTOR(7 DOWNTO 0); -定義數(shù)碼管輸出寄存器SIGNAL dig_r: STD_LOGIC_VECTOR(7 DOWNTO 0); -定義數(shù)碼管選擇輸出寄存器SIGNAL disp_dat: STD_LOGIC_VECTOR(3 DOWNTO 0); -定義顯示數(shù)據(jù)寄存器SIGNAL count: STD_LOGIC_VECTOR(2 DOWNTO 0); -定義計數(shù)寄存器BEGINdig<=dig_r;seg<=seg_r;PROCESS(clk_2k)BEGIN IF RISING_EDGE(clk_2k) THEN count<=cou

21、nt+1; END IF;END PROCESS;PROCESS(clk_2k)BEGIN IF RISING_EDGE(clk_2k) THEN CASE count IS WHEN "000"=> disp_dat<=d(7 DOWNTO 4); -第一個數(shù)碼管 WHEN "001"=> disp_dat<=d(3 DOWNTO 0); -第二個數(shù)碼管 when others=>null; END CASE; CASE count IS -選擇數(shù)碼管顯示位 WHEN "000"=> dig_r&

22、lt;="01111111" -選擇第一個數(shù)碼管顯示 WHEN "001"=> dig_r<="10111111" -選擇第二個數(shù)碼管顯示 when others=>null; END CASE; END IF;END PROCESS;PROCESS(disp_dat)BEGIN CASE disp_dat IS WHEN X"0"=> seg_r<=X"c0"-顯示0 WHEN X"1"=> seg_r<=X"f9&quo

23、t;-顯示1 WHEN X"2"=> seg_r<=X"a4"-顯示2 WHEN X"3"=> seg_r<=X"b0"-顯示3 WHEN X"4"=> seg_r<=X"99"-顯示4 WHEN X"5"=> seg_r<=X"92"-顯示5 WHEN X"6"=> seg_r<=X"82"-顯示6 WHEN X"7"

24、;=> seg_r<=X"f8"-顯示7 WHEN X"8"=> seg_r<=X"80"-顯示8 WHEN X"9"=> seg_r<=X"90"-顯示9 WHEN X"a"=> seg_r<=X"88"-顯示a WHEN X"b"=> seg_r<=X"83"-顯示b WHEN X"c"=> seg_r<=X"c

25、6"-顯示c WHEN X"d"=> seg_r<=X"a1"-顯示d WHEN X"e"=> seg_r<=X"86"-顯示e WHEN X"f"=> seg_r<=X"8e"-顯示f END CASE;END PROCESS;END;8、提供數(shù)碼管工作頻率模塊 由于數(shù)碼管要工作在2KHZ的頻率信號下有所需要將試驗(yàn)箱48MHZ的信號分頻分頻成2KHZ,此程序和產(chǎn)生1HZ是一樣的程序如下:LIBRARY IEEE;USE IEEE

26、.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity fp2k is port(clk_48MHZ: in std_logic; clk_2KHZ: out std_logic );end fp2k;architecture behav of fp2k is signal clk_2KHZ_r: std_logic; signal count : std_logic_vector(14 downto 0); begin process (clk_48MHZ)begin if clk_48MHZ'event and clk_48MHZ='1' then if count="10111011011111"then count<=(ot

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論