【正文】
。ENTITY SHOW ISPORT(A:IN STD_LOGIC_VECTOR(4 DOWNTO 0)。 五位二進(jìn)制 B:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)。 C:OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。END。ARCHITECTURE ONE OF SHOW ISBEGIN PROCESS(A) BEGIN CASE A IS WHEN 00000 = B=0111111。C=0000000。 WHEN 00001 = B=0000110。C=0000000。 WHEN 00010 = B=1011011。C=0000000。 WHEN 00011 = B=1001111。C=0000000。 WHEN 00100 = B=1100110。C=0000000。 WHEN 00101 = B=1101101。C=0000000。 WHEN 00110 = B=1111101。C=0000000。 WHEN 00111 = B=0000111。C=0000000。 WHEN 01000 = B=1111111。C=0000000。 WHEN 01001 = B=1101111。C=0000000。 WHEN 01010 = B=0000000。C=0000110。 WHEN 01011 = B=0000110。C=0000110。 WHEN 01100 = B=1011011。C=0000110。 WHEN 01101 = B=1001111。C=0000110。 WHEN 01110 = B=1100110。C=0000110。 WHEN 01111 = B=1101101。C=0000110。 WHEN 10000 = B=1111101。C=0000110。 WHEN 10001 = B=0000111。C=0000110。 WHEN 10010 = B=1111111。C=0000110。 WHEN 10011 = B=1101111。C=0000110。 WHEN 10100 = B=0000000。C=1011011。 WHEN 10101 = B=0000110。C=1011011。 WHEN 10110 = B=1011011。C=1011011。 WHEN 10111 = B=1001111。C=1011011。 WHEN 11000 = B=1100110。C=1011011。 WHEN 11001 = B=1101101。C=1011011。 WHEN 11010 = B=1111101。C=1011011。 WHEN 11011 = B=0000111。C=1011011。 WHEN 11100 = B=1111111。C=1011011。 WHEN 11101 = B=1101111。C=1011011。 WHEN 11110 = B=0000000。C=1001111。 WHEN 11111 = B=0000110。C=1001111。 WHEN OTHERS = NULL。 END CASE。 END PROCESS。 END。3)顯示模塊的時(shí)序仿真波形如圖所示:圖510顯示模塊時(shí)序仿真波形 輸入信號(hào)A為五位二進(jìn)制信號(hào),即23,譯碼之后,輸出信號(hào)B顯示2,輸出信號(hào)C顯示3。 分頻模塊 圖511 分頻模塊電路1)端口說(shuō)明Clk:輸入晶振頻率;En:使能信號(hào)。Clk_out1:分頻后的輸出時(shí)鐘。2)原理分析 本設(shè)計(jì)以1s為例進(jìn)行說(shuō)明。分頻模塊用VHDL語(yǔ)言描述:LIBRARY IEEE。 20MHZ晶振輸出頻率為1sUSE 。 ENTITY FENPIN ISPORT(CLK :IN STD_LOGIC。 EN :IN STD_LOGIC。 CLK_OUT1:OUT STD_LOGIC)。END。ARCHITECTURE ONE OF FENPIN ISBEGIN PROCESS(CLK,EN) VARIABLE COUNT:INTEGER RANGE 0 TO 20000000。 BEGIN IF CLK39。EVENT AND CLK=39。139。 THEN IF EN=39。139。 THEN IF COUNT=1999999 THEN COUNT := 0。 ELSE COUNT := COUNT+1。 END IF。 CASE COUNT IS WHEN 0 TO 9999999 = CLK_OUT1 = 39。139。 WHEN 10000000 TO 19999999 = CLK_OUT1 = 39。039。 WHEN OTHERS = NULL。 END CASE。 END IF。 END IF。 END PROCESS。END。分頻模塊的時(shí)序仿真波形如圖512所示: 圖512 分頻模塊時(shí)序仿真波形 基于FPGA的空調(diào)控制系統(tǒng)綜合仿真 綜合以上各個(gè)模塊成功的基礎(chǔ)上,整個(gè)空調(diào)控制系統(tǒng)的VHDL描述詳見(jiàn)附錄,整個(gè)空調(diào)控制系統(tǒng)的時(shí)序仿真如圖513所示:圖56 空調(diào)控制系統(tǒng)時(shí)序仿真波形 系統(tǒng)時(shí)鐘信號(hào)CLKI上升沿到來(lái),系統(tǒng)使能信號(hào)ENI為‘1’,按鈕KEYI為2,系統(tǒng)定時(shí)使能信號(hào)ENBI為‘1’,定時(shí)1小時(shí),B1O顯示為1,C1O顯示0,系統(tǒng)輸入信號(hào)DOWNI為20℃,BDO顯示2,CDO顯示0,系統(tǒng)測(cè)量溫度信號(hào)TEMPIN為27℃,BO顯示2,CO顯示7,加熱信號(hào)HEAT輸出高電平。當(dāng)系統(tǒng)復(fù)位信號(hào)RESI為高電平時(shí),默認(rèn)為22℃。綜和本章節(jié)各個(gè)模塊設(shè)計(jì)步驟,采用了VHDL的設(shè)計(jì)步驟,按要求的功能模塊劃分;VHDL的設(shè)計(jì)描述;代碼仿真模擬;設(shè)計(jì)綜合、優(yōu)化和布局布線;布局布線后的仿真模擬;設(shè)計(jì)的實(shí)現(xiàn)??? 結(jié) 本設(shè)計(jì)以EP1K30TC1443芯片和DS18B20傳感器為硬件設(shè)計(jì)平臺(tái),很好的對(duì)溫度數(shù)據(jù)進(jìn)行了采集,比較,處理等功能,同時(shí)也具有很好的移植性,能應(yīng)與用于現(xiàn)今大部分系統(tǒng)與場(chǎng)所。提高了溫度采集系統(tǒng)的可靠性,且硬件電路簡(jiǎn)單,工作溫度,可靠,線路簡(jiǎn)單,成本低,應(yīng)用靈活,測(cè)溫精度和實(shí)現(xiàn)轉(zhuǎn)換速度足以保證大多數(shù)測(cè)溫系統(tǒng)的工作的需求。 雖然我的設(shè)計(jì)基本實(shí)現(xiàn)了我計(jì)劃的功能,但是還是有很多的不足,比如說(shuō)在定時(shí)模 塊上再加以細(xì)化,改善成1分鐘,將更適合生活所用。 通過(guò)這次較完整的FPGA空調(diào)控制系統(tǒng)設(shè)計(jì),我擺脫了單純的理論知識(shí)學(xué)習(xí)狀態(tài),和實(shí)際設(shè)計(jì)的結(jié)合鍛煉了我的綜合運(yùn)用所學(xué)的專業(yè)基礎(chǔ)知識(shí),解決實(shí)際工程問(wèn)題的能力,同時(shí)也提高我查閱文獻(xiàn)資料、設(shè)計(jì)規(guī)范以及電腦編程等專業(yè)能力水平,而且通過(guò)對(duì)整體的掌控,對(duì)局部的取舍,以及對(duì)細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗(yàn)得到了豐富。各種系統(tǒng)的適用條件,各種元器件的選用標(biāo)準(zhǔn),各種程序的實(shí)用算法,我都是隨著設(shè)計(jì)的深入學(xué)會(huì)應(yīng)用的。和老師的溝通交流更使我從經(jīng)濟(jì)和實(shí)用性的角度對(duì)設(shè)計(jì)有了新的認(rèn)識(shí)也對(duì)自己提出了新的要求。 致 謝 在本人的論文寫(xiě)作過(guò)程中,董素鴿老師給予了大力的幫助和指導(dǎo),在此深表感謝!同時(shí)也感謝其他幫助和指導(dǎo)過(guò)我的老師和同學(xué)。 首先,也是最主要感謝的是我的指導(dǎo)老師,董老師。在整個(gè)過(guò)程中她給了我很大的幫助,在論文題目制定時(shí),她首先肯定了我的題目大方向,同時(shí)又幫我具體分析使我最后選擇基于FPGA的空調(diào)控制系統(tǒng)設(shè)計(jì)這個(gè)具體目標(biāo),特別是我在編寫(xiě)調(diào)試程序時(shí),對(duì)于我程序編譯的錯(cuò)誤,董老師給了我很多幫助。在完成初稿后,老師認(rèn)真查看了我的文章,指出了我存在的很多問(wèn)題。在此十分感謝董老師的細(xì)心指導(dǎo),才能讓我順利完成畢業(yè)論文。 其次,要感謝幫我查資料的肖文政同學(xué),后期因?yàn)閷?shí)習(xí)的關(guān)系,不能隨時(shí)去學(xué)校的圖書(shū)館查閱資料,在此也十分感謝他能抽出時(shí)間幫我找的一些外文資料。最后,再次感謝董老師和幫助我完成設(shè)計(jì)的同學(xué)。謝謝! 參考文獻(xiàn) [1] [M].北京:電子工業(yè)出版社,2005. [2] 潘松,[M].北京:清華大學(xué)出版社,2005.[3] 周啟,[J].山西建筑,2007,(3):159160.[4] 袁偉亭,[J].內(nèi)蒙古大學(xué)學(xué)報(bào),2006,(4):459463[5] DS18B20 Programmable Resolution 1wire Digital Thermometer [EB/OL].2006,.[6] 黃正瑾,電子工業(yè)出版社,2002,203209[7] 潘松,科學(xué)出版社,2002,1015[8] 潘明,2008[9] 邊計(jì)年,2000[10] 李宗波,2002 [11] [12] 姜雪松, 2007.[13]Altera Digital ,2002. [14](美) Stephen Brown , Zvonko Vranesic of Digital Logic with VHDL —Hill Education(Asia),.附 錄本設(shè)計(jì)整個(gè)系統(tǒng)用VHDL語(yǔ)言描述如下:LIBRARY IEEE。 溫度設(shè)置USE 。ENTITY TIAOJIE ISPORT(CLK :IN BIT。 RES :IN STD_LOGIC。 RISE :IN INTEGER RANGE 30 DOWNTO 16。 DOWN :IN INTEGER RANGE 30 DOWNTO 16。 DOUT :BUFFER INTEGER RANGE 30 DOWNTO 16)。END。ARCHITECTURE ONE OF TIAOJIE ISBEGIN PROCESS(CLK,RISE,DOWN,RES) BEGIN IF RES39。EVENT AND RES =39。139。 THEN DOUT = 22。 默認(rèn)初始值為22℃ ELSIF CLK39。EVENT AND CLK = 39。139。 THEN IF RISE30 THEN DOUT = DOUT+1。 END IF。 IF DOWN16 THEN DOUT = DOUT1。 END IF。 IF (RISE30) AND (DOWN16) THEN DOUT=22。 END IF。 END IF。 END PROCESS。END。 LIBRARY IEEE。 定時(shí)設(shè)置USE 。ENTITY TIM ISPORT( CLK :IN STD_LOGIC。 ENA :IN STD_LOGIC。 ENB :IN STD_LOGIC。 ENC :IN STD_LOGIC。 ENE :IN STD_LOGIC。 KEY :IN INTEGER RANGE 1 TO 4。 Y :OUT STD_LOGIC。 LED :OUT INTEGER RANGE 0 TO 25)。END。ARCHITECTURE ONE OF TIM ISSIGNAL C1:STD_LOGIC。SIGNAL C2:STD_LOGIC。SIGNAL C3:STD_LOGIC。SIGNAL C4:STD_LOGIC。SIGNAL A:INTEGER。SIGNAL B:INTEGER。SIGNAL C:INTEGER。SIGNAL D:INTEGER。BEGIN P_A :PROCESS(CLK,ENA,ENB,ENC,ENE) VARIABLE QA,QB,QC,QE:INTEGER。 BEGIN IF CLK39。EVENT AND CLK=39。139。 THEN IF ENA=39。139。 THEN IF QA1799 THEN QA:=QA+1。C1=39。139。 ELSE IF QA=1799 THEN QA:=0。C1=39。039。 END IF。 END IF。 END IF。 IF ENB=39。139。 THEN IF QB1799 THEN QB:=QB+1。C2=39。139。 ELSE IF QB=1799 THEN QB:=0。C2=39。039。 END IF。 END IF。 END IF。 IF ENC=39。139。 THEN IF QC1799 THEN QC:=QC+1。C3=39。13