《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é),2008
[2] 焦素敏.EDA應(yīng)用技術(shù).北京:清華學(xué)出版社,
2、2005
[3] 朱正偉.EDA技術(shù)及應(yīng)用.北京:北京大學(xué)出版社,2005
[4] 曹昕臣,聶春燕EDA技術(shù)實驗與課程設(shè)計.北京:清華大學(xué)出版社,2007
審查意見
指導(dǎo)教師簽字:
教研室主任簽字: 年 月 日
1 設(shè)計任務(wù)及要求
隨著時間的發(fā)展,家用電器越來越智能化,而定時,模式選擇和智能控溫只是其中最常見的功能。
定時的時間分為30分鐘,一小時,一個半小時和和兩個小時。
溫度設(shè)置可由一個計數(shù)器實現(xiàn),由于空調(diào)的可調(diào)溫度有限制,所以計數(shù)器的計數(shù)范圍也是有限的,我設(shè)定的溫度為10到26攝氏度。
溫度控制是把
3、溫度控制在一定范圍內(nèi)的功能,當(dāng)室內(nèi)溫度高于或低于這個溫度時,控制器都將會給空調(diào)一個信號使其工作,當(dāng)溫度達(dá)到這一溫度時,空調(diào)停止工作。
模式設(shè)置共有四個選擇:強,弱,自然和睡眠。模式的控制可以是一個兩位二進(jìn)制計數(shù)器,四個狀態(tài)與四種模式相對應(yīng),而且四個模式循環(huán)顯示
2設(shè)計原理及總體框圖
總體框圖
模式選擇模塊
模式選擇模塊由一個選擇模塊和四個控制模塊組成。
選擇模塊是一個二進(jìn)制計數(shù)器和一個二四譯碼器,二四譯碼器控制四個控制模塊。控制模塊的主要功能是控制空調(diào)的電動機的工作速度,模式一最大,然后依次減小。
溫度選擇和控制模塊
溫度選擇模塊由一個計數(shù)器構(gòu)成,計數(shù)范圍為10到26??刂?/p>
4、模塊的作用是和室溫的比較,若設(shè)置的溫度和當(dāng)前室溫不相同,則空調(diào)開始工作,當(dāng)溫度相同時,空調(diào)停止工作。
3 程序設(shè)計
Vhdl語言概述
Vhdl是一種硬件描述語言,所謂的硬件描述語言,實際就是一個描述工具,描述的對象是帶設(shè)計的電路系統(tǒng)的邏輯功能、實現(xiàn)該功能的算法、選用電路的結(jié)構(gòu)以及其他各種約束條件。與其他的硬件描述語言相比較,vhdl在進(jìn)行工程設(shè)計時有許多的優(yōu)點。如:vhdl的的行為,描述強于其他的硬件描述語言,可以直接從行為邏輯上直接對線路進(jìn)行描述。
模式選擇器
由一個二進(jìn)制計數(shù)器構(gòu)成
library ieee;
use ieee.std_logic_1164.all;
use
5、 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: std_logic_vector(1 downto 0);
begin
process(en)
begin if en 'event and en='1' then
c<=c
6、+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
port(clk,clr:in std_logic;
o,t:out std_logic_vector(
7、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
8、cnt0:=cnt0+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
9、 if cin='1' then
if cnt1="0010" then
cnt1:="0000";c<='1';
else cnt1:=cnt1+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 di
10、ngshiqi 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 dingshiqi is
signal cin: std_logic;
begin
process(clk,clr)
variable cnt0:std_logic_vector(3 downto 0);
begin
if clr='1' then
11、cnt0:="0000";
elsif clk 'event and clk='1' then
if cnt0="1000" then
cnt0:=cnt0+1;cin<='1';
elsif cnt0="1001" then
cin<='0'; cnt0:="0000"; else cnt0:=cnt0+1;cin<='0';
end if;
end if;
one<=cnt0;
end process;
process(clk,clr,cin)
variable cnt1:std_logic_vector(3 downto 0);
12、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
13、 ieee;
use ieee.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 is
signal t10:std_logic_vector(3 downto 0);
signa
14、l o1:std_logic_vector(3 downto 0);
signal cin:std_logic;
begin
ten<=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;
15、cin<='1';
else o1<=o1+1;cin<='0';
end if;
end if;end process;
process(cin,inc,clr)
begin
if clr='1' then
t10<="0000";
elsif inc 'event and inc='1' then
if(t10="0010" and o1="0110") then
t10<="0001";
end if;
if cin='1' then
t10<=t10+1;
end if;
end if;
end process;
end arc;
仿
16、真波形見圖四
開關(guān)控制模塊
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity kaiguan is
port(shuru1,shuru2,ting:in std_logic;
laoban:out std_logic);
end entity;
architecture one of kaiguan is
begin
process(shuru1,shuru2,ting)
begin
if shuru1='1' or shuru2='1' th
17、en
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和
18、zhuansu1分別顯示出60、45、30、15不同的轉(zhuǎn)速,溫度控制器從10開始一直到26,最后的溫度為25,當(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é),2008
[2] 焦素敏.EDA應(yīng)用技術(shù).北京:清華學(xué)出版社,2005
[3] 朱正偉.EDA技術(shù)及應(yīng)用.北京:北京大學(xué)出版社,2005
[4] 曹昕臣,聶春燕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é)省許多時間和精力。