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

下載本文檔

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

文檔簡介

1、東 北 石 油 大 學(xué)課 程 設(shè) 計(jì)課 程 EDA技術(shù)課程設(shè)計(jì) 題 目 洗衣機(jī)控制器 院 系 電子科學(xué)學(xué)院 專業(yè)班級 電子信息工程 學(xué)生姓名 學(xué)生學(xué)號 指導(dǎo)教師 2014年 3 月7日東北石油大學(xué)課程設(shè)計(jì)任務(wù)書課程 EDA技術(shù)課程設(shè)計(jì)題目 洗衣機(jī)控制器專業(yè) 電子信息工程 姓名 學(xué)號 主要內(nèi)容、基本要求、主要參考資料等主要內(nèi)容: 設(shè)計(jì)一個洗衣機(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秒

2、4;”,定時到則停止,同時發(fā)出提示音?;疽螅?、設(shè)計(jì)一個電子定時器,控制洗衣機(jī)作如下運(yùn)轉(zhuǎn):定時啟動®正轉(zhuǎn)20秒®暫停10秒®反轉(zhuǎn)20秒®暫停10秒®定時未到回到“正轉(zhuǎn)20秒®暫停10秒®”,定時到則停止;2、若定時到,則停機(jī)發(fā)出音響信號;3、用兩個數(shù)碼管顯示洗滌的預(yù)置時間(分鐘數(shù)),按倒計(jì)時方式對洗滌過程作計(jì)時顯示,直到時間到停機(jī);洗滌過程由“開始”信號開始;4、三只LED燈表示“正轉(zhuǎn)”、“反轉(zhuǎn)”、“暫?!比齻€狀態(tài)。主要參考資料:1 潘松著.EDA技術(shù)實(shí)用教程(第二版). 北京:科學(xué)出版社,2005.2 康華光主編.電子

3、技術(shù)基礎(chǔ) 模擬部分. 北京:高教出版社,2006.3 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,2003.完成期限 2014.3.7 指導(dǎo)教師 專業(yè)負(fù)責(zé)人 2014年 3月3日一、設(shè)計(jì)思想1.基本原理洗衣機(jī)控制器的設(shè)計(jì)主要是定時器的設(shè)計(jì)。由一片F(xiàn)PGA和外圍電路構(gòu)成了電器控制部分。FPGA接收鍵盤的控制命令,控制洗衣機(jī)的進(jìn)水、排水、水位和洗衣機(jī)的工作狀態(tài)、并控制顯示工作狀態(tài)以及設(shè)定直流電機(jī)速度、正反轉(zhuǎn)控制、制動控制、起??刂坪瓦\(yùn)動狀態(tài)控制。對芯片的編程采用模塊化的VHDL (硬件描述語言)進(jìn)行設(shè)計(jì),設(shè)計(jì)分為三層實(shí)現(xiàn),頂層實(shí)現(xiàn)整個芯片的功能。頂層和中間層多數(shù)是由VHDL的元件例化語句實(shí)現(xiàn)。

4、中間層由無刷直流電機(jī)控制、運(yùn)行模式選擇、洗滌模式選擇、定時器、顯示控制、鍵盤掃描、水位控制以及對直流電機(jī)控制板進(jìn)行速度設(shè)定、正反轉(zhuǎn)控制、啟??刂频饶K組成,它們分別調(diào)用底層模塊。定時到2.設(shè)計(jì)框圖停止暫停10s反轉(zhuǎn)20s暫停10s正轉(zhuǎn)20s定時啟動定時沒到圖1 設(shè)計(jì)框圖用兩位數(shù)碼管預(yù)置洗滌時間(分鐘數(shù)),洗滌過程在送入預(yù)置時間后開始運(yùn)轉(zhuǎn),洗滌中按倒計(jì)時方式對洗滌過程作計(jì)時顯示,用LED表示電動機(jī)的正、反轉(zhuǎn),如果定時時間到,則停機(jī)并發(fā)出音響信號。二、設(shè)計(jì)步驟和調(diào)試過程1、模塊設(shè)計(jì)和相應(yīng)模塊代碼洗衣機(jī)控制器電路主要有五大部分組成,包括:減法計(jì)數(shù)器、時序控制電路、預(yù)置時間和編碼電路、數(shù)碼管顯示、譯碼

5、器組成。(1)預(yù)設(shè)時間和編碼電路:本模塊將輸入的四位時間信號編碼成八位二進(jìn)制數(shù)輸出到減法計(jì)數(shù)器電路。library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;  entity settime is    port    (  load:in std_logic;  time_input:

6、in std_logic_vector(3 downto 0); time_set:out std_logic_vector(7 downto 0) ); end settime;  architecture settime of settime is      signal p1:std_logic_vector(7 downto 0); beg

7、in         process(load)  begin                  if(load'event and load='1')  then        

8、60;             case time_input is                      when "0000"=>p1<="00000000"  

9、; when "0001"=>p1<="00000001"   when "0010"=>p1<="00000010" when "0011"=>p1<="00000011" when "0100"=>p1<="00000100"when "0101"=>p1<=&qu

10、ot;00000101"when "0110"=>p1<="00000110"when "0111"=>p1<="00000111" when "1000"=>p1<="00001000"when "1001"=>p1<="00001001"when others=>p1<="00000000&qu

11、ot;end case; end if;end process time_set<=p1; end settime; 圖2預(yù)設(shè)時間和編碼仿真用K1、K2、K3、K4給time_input輸入一個二進(jìn)制數(shù)0111,讓load有效,輸出time_set為00000111。(2)減法計(jì)數(shù)器模塊:由于洗衣機(jī)有工作時間,必須要一模塊來控制它的工作時間范圍,當(dāng)洗衣機(jī)開始工作后,減法計(jì)數(shù)器即會實(shí)現(xiàn)減數(shù)功能,直到時間減到零,洗衣機(jī)便停止工作。當(dāng)出現(xiàn)系統(tǒng)運(yùn)行結(jié)束信號time_over時,蜂鳴器報警洗衣機(jī)工作結(jié)束。 l

12、ibrary ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter is     port     (        clk,start:in std_logic;    

13、60;   time_set:in std_logic_vector(7 downto 0);        time_remain:buffer std_logic_vector(7 downto 0); time_over:buffer std_logic  ); end counter; architecture counter o

14、f counter is     begin          process(clk)variable time_second:integer range 0 to 59 :=59;             begin  

15、60;          if(clk'event and clk='1')   then                  if(start='0')  then     

16、60;               if(time_remain(7 downto 0)=0) then                       time_remain<=time_set;

17、else                       time_remain(7 downto 4)<=time_remain(3 downto 0);              &#

18、160;       time_remain(3 downto 0)<=time_set(3 downto 0);end if;                    time_second:=59; time_over<='1' 

19、else                    if(time_over='1') then                        if

20、(time_second=0 and time_remain(7 downto 0)=0)                           then           

21、60;                 time_over<='0'else                           

22、0; if(time_second=0) then                                if(time_remain(3 downto 0)=0) thentime_remain(7 downto

23、0;4)<=time_remain(7 downto 4)-1; time_remain(3 downto 0)<="1001"time_second:=59;else  time_remain(7 downto 4)<=time_remain(7 downto 4);   time_remain(3 downto 0)<=time_remain(3 downto 0)-1;

24、0;                                    time_second:=59;           

25、 end if;                             else                  &

26、#160;            time_second:=time_second-1;                      end if;        

27、0;       end if;end if;         end if;    end if;end process; end counter; 圖3減法計(jì)數(shù)器模塊源仿真(3)數(shù)碼管顯示模塊:根據(jù)課程設(shè)計(jì)要求,必須將洗衣機(jī)的工作狀態(tài)及工作時間在數(shù)碼管和指示燈上顯示出來,此模塊是用來控制洗衣機(jī)的工作狀態(tài)及工作的頻率

28、,并把工作狀態(tài)及工作時間顯示出來。a,b,c,d,e,f,g分別對應(yīng)數(shù)碼管的七段,minute和second分別位選兩個數(shù)碼管,顯示十位和個位。library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity showtime is     port     (     

29、;  time_remain:in std_logic_vector(7 downto 0);       clk:in std_logic;       minute,second:out std_logic;       a,b,c,d,e,f,g:out std_logic  

30、60;  ); end showtime; architecture showtime of showtime is     signal temp:std_logic_vector(6 downto 0);     signal bcd:std_logic_vector(3 downto 0);    &#

31、160;signal choose:std_logic;     begin         process(clk)         begin             if(clk'event and

32、0;clk='1')                 then                 choose<=not choose;        

33、;         if(choose='1')                     then               

34、60;     minute<='0'second<='1'                     bcd<= time_remain(7 downto 4);        &

35、#160;        else                     minute<='1'second<='0'            &

36、#160;        bcd<= time_remain(3 downto 0);                 end if;             end

37、0;if;         end process;         process(bcd)             begin            

38、60;    case bcd is                 when  "0000"=>temp<="1111110"              &

39、#160; when  "0001"=>temp<="0110000"when  "0010"=>temp<="1101101"                 when  "0011"=>temp<="11110

40、01"                when  "0100"=>temp<="0110011"                when  "0101"=&g

41、t;temp<="1011011"                when  "0110"=>temp<="1011111"                 when

42、60; "0111"=>temp<="1110000"                when  "1000"=>temp<="1111111"             

43、60;  when  "1001"=>temp<="1111011"                when  others=>temp<="1111011"           

44、60;    end case; a<=temp(6);b<=temp(5);c<=temp(4);d<=temp(3);e<=temp(2);f<=temp(1);g<=temp(0)        end process end showtime圖4數(shù)碼管模塊仿真(4)時序電路模塊:接收運(yùn)行起止信號,安排電機(jī)運(yùn)行狀態(tài)并編碼輸出library ieee; use&

45、#160;ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity analyse is     port     (       clk,start,time_over:in std_logic;       out_1,ou

46、t_2:out std_logic     ); end analyse; architecture analyse of analyse is     begin         process(clk)         variable

47、  state:std_logic;         variable  wash_time:integer:=0;         variable  wait_time:integer:=0;         begin    

48、;         if(clk'event and clk='1')                  then              &#

49、160;   if(start='0')                      then                    &

50、#160; wash_time:=0;                      wait_time:=0;                      

51、;state:='0'                      out_1<='0'out_2<='0'                  

52、;else                      if(time_over='1')                       

53、   then                          if(wash_time=20)                 

54、0;            then                              if(wait_time=10)    &#

55、160;                             then                   

56、0;              wash_time:=0;                                 

57、60;state:=not state;                              else               &

58、#160;                  wait_time:=wait_time+1;                           &#

59、160;  end if;                          else                  

60、0;           wash_time:=wash_time+1;                              wait_time:=0;  

61、0;                       end if;                      end if;

62、0;                     if (wash_time=20)                         

63、 then                          out_1<='0'out_2<='0'               &#

64、160;      else                          if(state='0')             &

65、#160;                then                              out_1<='

66、1'out_2<='0'                          else                   

67、;           out_1<='0'out_2<='1'                          end if;    

68、;                  end if;                  end if;          

69、;    end if;          end process; end analyse;圖5時序電路模塊仿真:(5)譯碼器模塊:接收電機(jī)運(yùn)行狀態(tài)信號,譯碼后實(shí)時控制電機(jī)的正傳、反轉(zhuǎn)和暫停。library ieee; use ieee.std_logic_1164.all;  entity move is     port     (       out_1,out_2:in std_logic;       REV,RUN,PAUSE:buffer std_logic     ); end move;  archite

溫馨提示

  • 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

提交評論