《eda課程設(shè)計基于VHDL 的智能空調(diào)控制器》由會員分享,可在線閱讀,更多相關(guān)《eda課程設(shè)計基于VHDL 的智能空調(diào)控制器(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 電子科學(xué)與技術(shù) 專業(yè)課程設(shè)計任務(wù)書學(xué)生姓名專業(yè)班級學(xué)號題 目智能空調(diào)控制器課題性質(zhì)工程設(shè)計課題來源自擬課題指導(dǎo)教師同組姓名主要內(nèi)容1. 可自動調(diào)節(jié)溫度2. 可設(shè)定工作時間3. 可進(jìn)行模式設(shè)置:強,弱,自然,睡眠4. 可進(jìn)行溫度的設(shè)置任務(wù)要求1根據(jù)設(shè)計題目要求編寫相應(yīng)程序代碼2對編寫的VHDL程序代碼進(jìn)行編譯和仿真3總結(jié)設(shè)計內(nèi)容,完成課程設(shè)計說明書 參考文獻(xiàn)1 焦素敏.EDA課程設(shè)計指導(dǎo)書.鄭州:河南工業(yè)大學(xué),20082 焦素敏.EDA應(yīng)用技術(shù).北京:清華學(xué)出版社,20053 朱正偉.EDA技術(shù)及應(yīng)用.北京:北京大學(xué)出版社,20054 曹昕臣,聶春燕EDA技術(shù)實驗與課程設(shè)計.北京:清華大學(xué)出版
2、社,2007審查意見指導(dǎo)教師簽字:教研室主任簽字: 年 月 日 1 設(shè)計任務(wù)及要求隨著時間的發(fā)展,家用電器越來越智能化,而定時,模式選擇和智能控溫只是其中最常見的功能。定時的時間分為30分鐘,一小時,一個半小時和和兩個小時。溫度設(shè)置可由一個計數(shù)器實現(xiàn),由于空調(diào)的可調(diào)溫度有限制,所以計數(shù)器的計數(shù)范圍也是有限的,我設(shè)定的溫度為10到26攝氏度。溫度控制是把溫度控制在一定范圍內(nèi)的功能,當(dāng)室內(nèi)溫度高于或低于這個溫度時,控制器都將會給空調(diào)一個信號使其工作,當(dāng)溫度達(dá)到這一溫度時,空調(diào)停止工作。模式設(shè)置共有四個選擇:強,弱,自然和睡眠。模式的控制可以是一個兩位二進(jìn)制計數(shù)器,四個狀態(tài)與四種模式相對應(yīng),而且四個
3、模式循環(huán)顯示2設(shè)計原理及總體框圖總體框圖模式選擇模塊模式選擇模塊由一個選擇模塊和四個控制模塊組成。選擇模塊是一個二進(jìn)制計數(shù)器和一個二四譯碼器,二四譯碼器控制四個控制模塊??刂颇K的主要功能是控制空調(diào)的電動機(jī)的工作速度,模式一最大,然后依次減小。溫度選擇和控制模塊溫度選擇模塊由一個計數(shù)器構(gòu)成,計數(shù)范圍為10到26??刂颇K的作用是和室溫的比較,若設(shè)置的溫度和當(dāng)前室溫不相同,則空調(diào)開始工作,當(dāng)溫度相同時,空調(diào)停止工作。3 程序設(shè)計Vhdl語言概述Vhdl是一種硬件描述語言,所謂的硬件描述語言,實際就是一個描述工具,描述的對象是帶設(shè)計的電路系統(tǒng)的邏輯功能、實現(xiàn)該功能的算法、選用電路的結(jié)構(gòu)以及其他各種
4、約束條件。與其他的硬件描述語言相比較,vhdl在進(jìn)行工程設(shè)計時有許多的優(yōu)點。如:vhdl的的行為,描述強于其他的硬件描述語言,可以直接從行為邏輯上直接對線路進(jìn)行描述。模式選擇器由一個二進(jìn)制計數(shù)器構(gòu)成library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xuanzhe is port( en: in std_logic; b: out std_logic_vector(1 downto 0);end entity;architecture one of xuanzhe is signal c
5、: std_logic_vector(1 downto 0); begin process(en) begin if en event and en=1 then c=c+1; end if;b=c;end process;end one;定時器設(shè)計如下圖主要功能設(shè)計在設(shè)計計數(shù)器時,要特別注意個位的進(jìn)位時間,當(dāng)各位計數(shù)到8時,同時個位變9,進(jìn)位產(chǎn)生,在下一個高電平的時候,進(jìn)位進(jìn)到十位,個位變成0。30進(jìn)制計數(shù)器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sanshi is por
6、t(clk,clr:in std_logic; o,t:out std_logic_vector(3 downto 0); c:out std_logic);end entity;architecture arc of sanshi is signal cin: std_logic; begin process(clk,clr) variable cnt0:std_logic_vector(3 downto 0); begin if clr=1 then cnt0:=0000; elsif clk event and clk=1 then if cnt0=1000 then cnt0:=cnt
7、0+1;cin=1; elsif cnt0=1001 then cnt0:=0000; cin=0; else cnt0:=cnt0+1;cin=0;end if; end if;o=cnt0;end process;process(clk,clr,cin) variable cnt1:std_logic_vector(3 downto 0); begin if clr=1 then cnt1:=0000; elsif clk event and clk=1 then if cin=1 then if cnt1=0010 then cnt1:=0000;c=1; else cnt1:=cnt1
8、+1;c=0; end if; end if; else cnt1:=cnt1;end if;t=cnt1;end process;end arc;仿真波形見圖二60進(jìn)制計數(shù)器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dingshiqi is port(clk,clr:in std_logic; one,ten:out std_logic_vector(3 downto 0); co:out std_logic);end entity;architecture arc of d
9、ingshiqi is signal cin: std_logic; begin process(clk,clr) variable cnt0:std_logic_vector(3 downto 0); begin if clr=1 then cnt0:=0000; elsif clk event and clk=1 then if cnt0=1000 then cnt0:=cnt0+1;cin=1; elsif cnt0=1001 thencin=0; cnt0:=0000; else cnt0:=cnt0+1;cin=0;end if; end if;one=cnt0;end proces
10、s;process(clk,clr,cin) variable cnt1:std_logic_vector(3 downto 0); begin if clr=1 then cnt1:=0000; elsif clk event and clk=1 then if cin=1 then if cnt1=0101 then cnt1:=0000;co=1; else cnt1:=cnt1+1;co=0; end if; end if; else cnt1:=cnt1;end if;ten=cnt1;end process;end arc;仿真波形見圖三溫度設(shè)置library ieee;use i
11、eee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity shezhiqi is port( inc,clr: in std_logic; one,ten: out std_logic_vector(3 downto 0);end entity;architecture arc of shezhiqi issignal t10:std_logic_vector(3 downto 0);signal o1:std_logic_vector(3 downto 0);signa
12、l cin:std_logic;beginten=t10;one=o1;process(inc,clr)begin if clr=1 then o1=0000; elsif inc event and inc=1 then if(o1=1001) or (t10=0010 and o1=0110) then o1=0000;cin=0; elsif o1=1000 then o1=o1+1;cin=1; else o1=o1+1;cin=0;end if;end if;end process;process(cin,inc,clr)beginif clr=1 thent10=0000;elsi
13、f inc event and inc=1 then if(t10=0010 and o1=0110) then t10=0001;end if;if cin=1 thent10=t10+1;end if;end if;end process;end arc;仿真波形見圖四開關(guān)控制模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity kaiguan isport(shuru1,shuru2,ting:in std_logic; laoban:out std_logic);end ent
14、ity;architecture one of kaiguan isbeginprocess(shuru1,shuru2,ting)beginif shuru1=1 or shuru2=1 then laoban=1; elsif ting=1 then laoban=0;end if;end process;end one;仿真波形見圖五4 編譯及仿真 圖1 圖二 圖三 圖四 圖五5 硬件調(diào)試與結(jié)果分析仿真結(jié)果如上圖所示。當(dāng)選擇器的電平high為高時,兩個顯示轉(zhuǎn)速的zhuanshu和zhuansu1分別顯示出60、45、30、15不同的轉(zhuǎn)速,溫度控制器從10開始一直到26,最后的溫度為25,
15、當(dāng)室溫為10的時候,空調(diào)開關(guān)顯示開,當(dāng)溫度到達(dá)25時,空調(diào)開關(guān)成低電平,空調(diào)關(guān)閉。6 參考文獻(xiàn)1 焦素敏.EDA課程設(shè)計指導(dǎo)書.鄭州:河南工業(yè)大學(xué),20082 焦素敏.EDA應(yīng)用技術(shù).北京:清華學(xué)出版社,20053 朱正偉.EDA技術(shù)及應(yīng)用.北京:北京大學(xué)出版社,20054 曹昕臣,聶春燕EDA技術(shù)實驗與課程設(shè)計.北京:清華大學(xué)出版社,2007 心得體會經(jīng)過這次EDA課程設(shè)計,我對vhdl有了更深的認(rèn)識,熟練了max+plus2的使用,而且學(xué)會了quartus2的基本使用方法。很多以前沒注意的細(xì)節(jié)在這次課程設(shè)計的過程中沒少給自己制造麻煩,雖然走了不少彎路,浪費了許多時間,但經(jīng)過努力,還是完成了這次課程設(shè)計。都說實踐才是檢驗真理的唯一標(biāo)準(zhǔn),在學(xué)習(xí)的時候馬馬虎虎、眼高手低,到了真正進(jìn)行設(shè)計的時候勢必不會順順利利。在這次課程設(shè)計中我也認(rèn)識到,在設(shè)計之前深思熟慮的重要性,因為在設(shè)計的時候?qū)崿F(xiàn)功能的途徑有很多種,多思考可以避免將簡單的問題復(fù)雜化,可以節(jié)省許多時間和精力。