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

下載本文檔

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

文檔簡介

東北石油大學課程設(shè)計課 程 EDA技術(shù)課程設(shè)計題 目 洗衣機控制器 院 系 電子科學學院 專業(yè)班級 電子信息工程 學生姓名 學生學號 指導教師 2014年3月7日東北石油大學課程設(shè)計任務(wù)書課程EDA技術(shù)課程設(shè)計 題目洗衣機控制器 專業(yè) 學號 主要容、基本要求、主要參考資料等主要容:設(shè)計一個洗衣機控制器,要求洗衣機有正轉(zhuǎn)、反轉(zhuǎn)、暫停三種狀態(tài)。設(shè)定洗衣機的工作時間,要洗衣機在工作時間完成:定時啟動T正轉(zhuǎn)20秒T暫停10秒T反轉(zhuǎn)20秒T暫停10秒T定時未到回到“正轉(zhuǎn)20秒T暫停10秒T ",定時到則停止,同時發(fā)出提示音?;疽螅?、 設(shè)計一個電子定時器,控制洗衣機作如下運轉(zhuǎn):定時啟動T正轉(zhuǎn)20秒T暫停10秒T反轉(zhuǎn)20秒T暫停10秒T定時未到回到“正轉(zhuǎn)20秒T暫停10秒T ",定時到則停止;2、 若定時到,則停機發(fā)出音響信號;3、 用兩個數(shù)碼管顯示洗滌的預置時間(分鐘數(shù)),按倒計時方式對洗滌過程作計時顯示,直到時間到停機;洗滌過程由“開始”信號開始;4、 三只LED燈表示“正轉(zhuǎn)”、“反轉(zhuǎn)”、“暫?!比齻€狀態(tài)。主要參考資料:松著.EDA技術(shù)實用教程(第二版).:科學,2005.康華光主編.電子技術(shù)基礎(chǔ)模擬部分.:高教,2006.閻石主編.數(shù)字電子技術(shù)基礎(chǔ).:高教,2003.完成期限 指導教師 專業(yè)負責人 2014年3月3日一、設(shè)計思想1.基本原理洗衣機控制器的設(shè)計主要是定時器的設(shè)計。由一片F(xiàn)PGA和外圍電路構(gòu)成了電器控制部分。FPGA接收鍵盤的控制命令,控制洗衣機的進水、排水、水位和洗衣機的工作狀態(tài)、并控制顯示工作狀態(tài)以及設(shè)定直流電機速度、正反轉(zhuǎn)控制、制動控制、起停控制和運動狀態(tài)控制。對芯片的編程采用模塊化的VHDL(硬件描述語言)進行設(shè)計,設(shè)計分為三層實現(xiàn),頂層實現(xiàn)整個芯片的功能。頂層和中間層多數(shù)是由VHDL的元件例化語句實現(xiàn)。中間層由無刷直流電機控制、運行模式選擇、洗滌模式選擇、定時器、顯示控制、鍵盤掃描、水位控制以及對直流電機控制板進行速度設(shè)定、正反轉(zhuǎn)控制、啟停控制等模塊組成,它們分別調(diào)用底層模塊。2.設(shè)計框圖圖1設(shè)計框圖用兩位數(shù)碼管預置洗滌時間(分鐘數(shù)),洗滌過程在送入預置時間后開始運轉(zhuǎn),洗滌中按倒計時方式對洗滌過程作計時顯示,用LED表示電動機的正、反轉(zhuǎn),如果定時時間到,則停機并發(fā)出音響信號。二、設(shè)計步驟和調(diào)試過程1、模塊設(shè)計和相應(yīng)模塊代碼洗衣機控制器電路主要有五大部分組成,包括:減法計數(shù)器、時序控制電路、預置時間和編碼電路、數(shù)碼管顯示、譯碼器組成。(1)預設(shè)時間和編碼電路:本模塊將輸入的四位時間信號編碼成八位二進制數(shù)輸出到減法計數(shù)器電路。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysettimeisport(load:instd_logic;time_input:instd_logic_vector(3downto0);time_set:outstd_logic_vector(7downto0));endsettime;architecturesettimeofsettimeissignalp1:std_logic_vector(7downto0);beginprocess(load)beginif(load'eventandload='1')thencasetime_inputiswhen"0000"=>pl〈二"00000000";when"0001"=>pl〈二"00000001";when"0010"=>p1〈二"00000010";when"0011"=>p1<="00000011";when"0100"=>p1<="00000100";when"0101"=>p1<="00000101";when"0110"=>p1<="00000110";when"0111"=>p1<="00000111";when"1000"=>p1<="00001000";when"1001"=>p1<="00001001";whenothers二〉p1〈二"00000000";endcase;endif;endprocesstime_set<二p1;endsettime;tpMmitaBTm Dgn 丄皿帀 bfilnrri 749m: ftari! End圖2預設(shè)時間和編碼仿真用K1、K2、K3、K4給time_input輸入一個二進制數(shù)0111,讓load有效,輸出time_set為00000111。減法計數(shù)器模塊:由于洗衣機有工作時間,必須要一模塊來控制它的工作時間圍,當洗衣機開始工作后,減法計數(shù)器即會實現(xiàn)減數(shù)功能,直到時間減到零,洗衣機便停止工作。當出現(xiàn)系統(tǒng)運行結(jié)束信號time_over時,蜂鳴器報警洗衣機工作結(jié)束。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycounterisport(clk,start:instd_logic;time_set:instd_logic_vector(7downto0);time_remain:bufferstd_logic_vector(7downto0);time_over:bufferstd_logic);endcounter;architecturecounterofcounterisbeginprocess(clk)variabletime_second:integerrange0to59:=59;beginif(clk'eventandclk='1')thenif(start='0')thenif(time_remain(7downto0)=0)thentime_remain<=time_set;elsetime_remain(7downto4)<=time_remain(3downto0);time_remain(3downto0)<=time_set(3downto0);endif;time_second:=59;time_over<='1';elseif(time_over='1')thenif(time_second=0andtime_remain(7downto0)=0)thentime_over<='0';elseif(time_second=0)thenif(time_remain(3downto0)=0)thentime_remain(7downto4)<=time_remain(7downto4)-1;time_remain(3downto0)<="1001";time_second:=59;elsetime_remain(7downto4)<=time_remain(7downto4);time_remain(3downto0)<=time_remain(3downto0)-1;time_second:=59;endif;elsetime_second:=time_second-1;endif;endif;endif;endif;endif;endprocess;

endcounter;(3)數(shù)碼管顯示模塊:根據(jù)課程設(shè)計要求,必須將洗衣機的工作狀態(tài)及工endcounter;(3)數(shù)碼管顯示模塊:根據(jù)課程設(shè)計要求,必須將洗衣機的工作狀態(tài)及工作時間在數(shù)碼管和指示燈上顯示出來,此模塊是用來控制洗衣機的工作狀態(tài)及工作的頻率,并把工作狀態(tài)及工作時間顯示出來。a,b,c,d,e,f,g分別對應(yīng)數(shù)碼管的七段,minute和second分別位選兩個數(shù)碼管,顯示十位和個位。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityshowtimeisport(time_remain:instd_logic_vector(7downto0);clk:instd_logic;minute,second:outstd_logic;a,b,c,d,e,f,g:outstd_logic);endshowtime;architectureshowtimeofshowtimeissignaltemp:std_logic_vector(6downto0);signalbcd:std_logic_vector(3downto0);signalchoose:std_logic;beginprocess(clk)beginif(clk'eventandclk='1')thenchoose<=notchoose;if(choose='1')then

minute<='0';second<='1';bcd<=time_remain(7downto4);elseminute<='1';second<='0';bcd<=time_remain(3downto0);endif;endif;endprocess;process(bcd)

casebediswhen"0000"=>temp<="1111110";when"0001"=>temp<="0110000";when"0010"=>temp<="1101101";when"0011"=>temp<="1111001";when"0100"=>temp<="0110011";when"0101"=>temp<="1011011";when"0110"=>temp<="1011111";when"0111"=>temp<="1110000";when"1000"=>temp<="1111111";when"1001"=>temp<="1111011";whenothers=>temp<="1111011";e<=temp(2);endcase;e<=temp(2);a<=temp(6);b<=temp(5);c<=temp(4);d<=temp(3)f<=temp(1);g<=temp(0)endprocessendshowtime圖4數(shù)碼管模塊仿真(4)時序電路模塊:接收運行起止信號,安排電機運行狀態(tài)并編碼輸出libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityanalyseisport(clk,start,time_over:instd_logic;

out_1,out_2:outstd_logic );endanalyse;architectureanalyseofanalyseisbeginprocess(clk)variablestate:std_logic;variablewash_time:integer:=0;variablewait_time:integer:=0;if(clk'eventandclk='1')thenif(start='0')thenwash_time:=0;wait_time:=0;state:='0';out_1<='0';out_2<='0';elseif(time_over='1')thenif(wash_time=20)thenif(wait_time=10)thenwash_time:=0;state:=notstate;elsewait_time:=wait_time+1;endif;elsewash_time:=wash_time+1;

wait_time:=0;endif;endif;if(wash_time=20)thenout_l〈二'0';out_2〈二'0';elseif(state='0')thenout_1<='1';out_2<='0';elseout_1<='0';out_2<='1';endif;endif;endif;endif;endprocess;endanalyse;■I755raSuit1M.Ikl=沏endprocess;endanalyse;■I755raSuit1M.Ikl=沏L-341fl d*SB W.pm 240pm 3BDau KDQm. m 如燈口匸 ■?□曰x 13?C11. 3m EDnn. BHDDklJajinnr『1th0□.--■AQAbaJKlirert圖5時序電路模塊仿真:(5)譯碼器模塊:接收電機運行狀態(tài)信號,譯碼后實時控制電機的正傳、反轉(zhuǎn)和暫停。libraryieee;useieee.std_logic_1164.all;entitymoveisport(out_1,out_2:instd_logic;REV,RUN,PAUSE:bufferstd_logic);endmove;architecturemoveofmoveissignalchoose:std_logic_vector(1downto0);beginchoose(1)<=out_1;choose(0)<=out_2;process(choose)begincasechooseiswhen"00"=>REV<='0';RUN<='0';PAUSE<='1';when"10"=>REV<='0';RUN<='1';PAUSE<='0';when"01"=>REV<='1';RUN<='0';PAUSE<='0';whenothers=>REV<='0';RUN<='0';PAUSE<='0';endcase;REV<=out_2;RUN<=out_1;PAUSE<=not(out_1orout_2);endprocess;endmove;圖6譯碼器模塊仿真:2、仿真及仿真結(jié)果分析當預置號時間,啟動start,數(shù)碼管顯示預置時間,電機開始以正轉(zhuǎn)=>暫停二〉反轉(zhuǎn)二〉暫停為周期進行循環(huán),一個周期正好費時一分鐘,一個周期結(jié)束,數(shù)碼管顯示減一,依次循環(huán),直至數(shù)碼管顯示時間為零,洗衣結(jié)束。EmL<sgaajw.l^lAFTFIEauaiuL<sgaajw.l^lAFTFIEnnnnnnjmnnRftnjmFirwwuwiAnnnflfliwnjMinnnffiuMuiinmnfuimmnwvwwinjmumuinnnnnjuinnjuinjuimnniUUZUXruuuurLirLrLrLJjnJtrLjnjiJijriruuTiJTJTULrLrLnLruiJUT_r_rurrLi_rLn_ri-Lr_rL~vr^-LrLn^_rm_n_rLrLrL7T_HJT_n_rLrLi LrLrLr_rUWWUUVUWVj"eUWLrLSrVi_rmPVvWLrLrLrL5rL嚴■ LrLrLrLrLrLrLrLrLrLrLTLn[?ill1isR9

■SV[?ill1isR9

■SV-i*rw4jTRnj^njuiJU^rirLrLn"LrvmjvirLrirLrLruuvirLrLrLnjirLriEirLrLrLrLrLrLruuuw.rinjirLrLrLrunrwLrLrLrvLrurLrLrLrLrLrLrLrurLrLrLrLrwwwuuirLrLrLrLrLrLrLrLrLjijnji■J…L圖7總體仿真3、實驗調(diào)試結(jié)果電路設(shè)計完成以后,按照預定設(shè)計,輸入相應(yīng)數(shù)據(jù),三只LED燈按照設(shè)定時間規(guī)律間斷性亮起,數(shù)碼管也顯示輸入時間并按減數(shù)計時產(chǎn)生相應(yīng)的數(shù)字顯示,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論