《eda課程設(shè)計(jì)基于VHDL 的智能空調(diào)控制器》由會(huì)員分享,可在線閱讀,更多相關(guān)《eda課程設(shè)計(jì)基于VHDL 的智能空調(diào)控制器(11頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 電子科學(xué)與技術(shù) 專業(yè)課程設(shè)計(jì)任務(wù)書
學(xué)生姓名
專業(yè)班級(jí)
學(xué)號(hào)
題 目
智能空調(diào)控制器
課題性質(zhì)
工程設(shè)計(jì)
課題來源
自擬課題
指導(dǎo)教師
同組姓名
主要內(nèi)容
1. 可自動(dòng)調(diào)節(jié)溫度
2. 可設(shè)定工作時(shí)間
3. 可進(jìn)行模式設(shè)置:強(qiáng),弱,自然,睡眠
4. 可進(jìn)行溫度的設(shè)置
任務(wù)要求
1根據(jù)設(shè)計(jì)題目要求編寫相應(yīng)程序代碼
2對(duì)編寫的VHDL程序代碼進(jìn)行編譯和仿真
3總結(jié)設(shè)計(jì)內(nèi)容,完成課程設(shè)計(jì)說明書
參考文獻(xiàn)
[1] 焦素敏.EDA課程設(shè)計(jì)指導(dǎo)書.鄭州:河南工業(yè)大學(xué),2008
[2] 焦素敏.EDA應(yīng)用技術(shù).北京:清華學(xué)出版社,
2、2005
[3] 朱正偉.EDA技術(shù)及應(yīng)用.北京:北京大學(xué)出版社,2005
[4] 曹昕臣,聶春燕EDA技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì).北京:清華大學(xué)出版社,2007
審查意見
指導(dǎo)教師簽字:
教研室主任簽字: 年 月 日
1 設(shè)計(jì)任務(wù)及要求
隨著時(shí)間的發(fā)展,家用電器越來越智能化,而定時(shí),模式選擇和智能控溫只是其中最常見的功能。
定時(shí)的時(shí)間分為30分鐘,一小時(shí),一個(gè)半小時(shí)和和兩個(gè)小時(shí)。
溫度設(shè)置可由一個(gè)計(jì)數(shù)器實(shí)現(xiàn),由于空調(diào)的可調(diào)溫度有限制,所以計(jì)數(shù)器的計(jì)數(shù)范圍也是有限的,我設(shè)定的溫度為10到26攝氏度。
溫度控制是把
3、溫度控制在一定范圍內(nèi)的功能,當(dāng)室內(nèi)溫度高于或低于這個(gè)溫度時(shí),控制器都將會(huì)給空調(diào)一個(gè)信號(hào)使其工作,當(dāng)溫度達(dá)到這一溫度時(shí),空調(diào)停止工作。
模式設(shè)置共有四個(gè)選擇:強(qiáng),弱,自然和睡眠。模式的控制可以是一個(gè)兩位二進(jìn)制計(jì)數(shù)器,四個(gè)狀態(tài)與四種模式相對(duì)應(yīng),而且四個(gè)模式循環(huán)顯示
2設(shè)計(jì)原理及總體框圖
總體框圖
模式選擇模塊
模式選擇模塊由一個(gè)選擇模塊和四個(gè)控制模塊組成。
選擇模塊是一個(gè)二進(jìn)制計(jì)數(shù)器和一個(gè)二四譯碼器,二四譯碼器控制四個(gè)控制模塊??刂颇K的主要功能是控制空調(diào)的電動(dòng)機(jī)的工作速度,模式一最大,然后依次減小。
溫度選擇和控制模塊
溫度選擇模塊由一個(gè)計(jì)數(shù)器構(gòu)成,計(jì)數(shù)范圍為10到26。控制
4、模塊的作用是和室溫的比較,若設(shè)置的溫度和當(dāng)前室溫不相同,則空調(diào)開始工作,當(dāng)溫度相同時(shí),空調(diào)停止工作。
3 程序設(shè)計(jì)
Vhdl語言概述
Vhdl是一種硬件描述語言,所謂的硬件描述語言,實(shí)際就是一個(gè)描述工具,描述的對(duì)象是帶設(shè)計(jì)的電路系統(tǒng)的邏輯功能、實(shí)現(xiàn)該功能的算法、選用電路的結(jié)構(gòu)以及其他各種約束條件。與其他的硬件描述語言相比較,vhdl在進(jìn)行工程設(shè)計(jì)時(shí)有許多的優(yōu)點(diǎn)。如:vhdl的的行為,描述強(qiáng)于其他的硬件描述語言,可以直接從行為邏輯上直接對(duì)線路進(jìn)行描述。
模式選擇器
由一個(gè)二進(jìn)制計(jì)數(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è)計(jì)如下圖
主要功能設(shè)計(jì)
在設(shè)計(jì)計(jì)數(shù)器時(shí),要特別注意個(gè)位的進(jìn)位時(shí)間,當(dāng)各位計(jì)數(shù)到8時(shí),同時(shí)個(gè)位變9,進(jìn)位產(chǎn)生,在下一個(gè)高電平的時(shí)候,進(jìn)位進(jìn)到十位,個(gè)位變成0。
30進(jìn)制計(jì)數(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)制計(jì)數(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為高時(shí),兩個(gè)顯示轉(zhuǎn)速的zhuanshu和
18、zhuansu1分別顯示出60、45、30、15不同的轉(zhuǎn)速,溫度控制器從10開始一直到26,最后的溫度為25,當(dāng)室溫為10的時(shí)候,空調(diào)開關(guān)顯示開,當(dāng)溫度到達(dá)25時(shí),空調(diào)開關(guān)成低電平,空調(diào)關(guān)閉。
6 參考文獻(xiàn)
[1] 焦素敏.EDA課程設(shè)計(jì)指導(dǎo)書.鄭州:河南工業(yè)大學(xué),2008
[2] 焦素敏.EDA應(yīng)用技術(shù).北京:清華學(xué)出版社,2005
[3] 朱正偉.EDA技術(shù)及應(yīng)用.北京:北京大學(xué)出版社,2005
[4] 曹昕臣,聶春燕EDA技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì).北京:清華大學(xué)出版社,2007
心得體會(huì)
經(jīng)過這次EDA課程設(shè)計(jì),我對(duì)vhdl有了更深的認(rèn)識(shí),熟練了max+plus2的使用,而且學(xué)會(huì)了quartus2的基本使用方法。很多以前沒注意的細(xì)節(jié)在這次課程設(shè)計(jì)的過程中沒少給自己制造麻煩,雖然走了不少?gòu)澛?,浪費(fèi)了許多時(shí)間,但經(jīng)過努力,還是完成了這次課程設(shè)計(jì)。都說實(shí)踐才是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),在學(xué)習(xí)的時(shí)候馬馬虎虎、眼高手低,到了真正進(jìn)行設(shè)計(jì)的時(shí)候勢(shì)必不會(huì)順順利利。
在這次課程設(shè)計(jì)中我也認(rèn)識(shí)到,在設(shè)計(jì)之前深思熟慮的重要性,因?yàn)樵谠O(shè)計(jì)的時(shí)候?qū)崿F(xiàn)功能的途徑有很多種,多思考可以避免將簡(jiǎn)單的問題復(fù)雜化,可以節(jié)省許多時(shí)間和精力。